{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}

-- Derived from AWS service descriptions, licensed under Apache 2.0.

-- |
-- Module      : Amazonka.Connect.Types.InstanceStorageConfig
-- Copyright   : (c) 2013-2021 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.Connect.Types.InstanceStorageConfig where

import Amazonka.Connect.Types.KinesisFirehoseConfig
import Amazonka.Connect.Types.KinesisStreamConfig
import Amazonka.Connect.Types.KinesisVideoStreamConfig
import Amazonka.Connect.Types.S3Config
import Amazonka.Connect.Types.StorageType
import qualified Amazonka.Core as Core
import qualified Amazonka.Lens as Lens
import qualified Amazonka.Prelude as Prelude

-- | The storage configuration for the instance.
--
-- /See:/ 'newInstanceStorageConfig' smart constructor.
data InstanceStorageConfig = InstanceStorageConfig'
  { -- | The existing association identifier that uniquely identifies the
    -- resource type and storage config for the given instance ID.
    InstanceStorageConfig -> Maybe Text
associationId :: Prelude.Maybe Prelude.Text,
    -- | The configuration of the Kinesis data stream.
    InstanceStorageConfig -> Maybe KinesisStreamConfig
kinesisStreamConfig :: Prelude.Maybe KinesisStreamConfig,
    -- | The configuration of the Kinesis video stream.
    InstanceStorageConfig -> Maybe KinesisVideoStreamConfig
kinesisVideoStreamConfig :: Prelude.Maybe KinesisVideoStreamConfig,
    -- | The S3 bucket configuration.
    InstanceStorageConfig -> Maybe S3Config
s3Config :: Prelude.Maybe S3Config,
    -- | The configuration of the Kinesis Firehose delivery stream.
    InstanceStorageConfig -> Maybe KinesisFirehoseConfig
kinesisFirehoseConfig :: Prelude.Maybe KinesisFirehoseConfig,
    -- | A valid storage type.
    InstanceStorageConfig -> StorageType
storageType :: StorageType
  }
  deriving (InstanceStorageConfig -> InstanceStorageConfig -> Bool
(InstanceStorageConfig -> InstanceStorageConfig -> Bool)
-> (InstanceStorageConfig -> InstanceStorageConfig -> Bool)
-> Eq InstanceStorageConfig
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: InstanceStorageConfig -> InstanceStorageConfig -> Bool
$c/= :: InstanceStorageConfig -> InstanceStorageConfig -> Bool
== :: InstanceStorageConfig -> InstanceStorageConfig -> Bool
$c== :: InstanceStorageConfig -> InstanceStorageConfig -> Bool
Prelude.Eq, ReadPrec [InstanceStorageConfig]
ReadPrec InstanceStorageConfig
Int -> ReadS InstanceStorageConfig
ReadS [InstanceStorageConfig]
(Int -> ReadS InstanceStorageConfig)
-> ReadS [InstanceStorageConfig]
-> ReadPrec InstanceStorageConfig
-> ReadPrec [InstanceStorageConfig]
-> Read InstanceStorageConfig
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [InstanceStorageConfig]
$creadListPrec :: ReadPrec [InstanceStorageConfig]
readPrec :: ReadPrec InstanceStorageConfig
$creadPrec :: ReadPrec InstanceStorageConfig
readList :: ReadS [InstanceStorageConfig]
$creadList :: ReadS [InstanceStorageConfig]
readsPrec :: Int -> ReadS InstanceStorageConfig
$creadsPrec :: Int -> ReadS InstanceStorageConfig
Prelude.Read, Int -> InstanceStorageConfig -> ShowS
[InstanceStorageConfig] -> ShowS
InstanceStorageConfig -> String
(Int -> InstanceStorageConfig -> ShowS)
-> (InstanceStorageConfig -> String)
-> ([InstanceStorageConfig] -> ShowS)
-> Show InstanceStorageConfig
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [InstanceStorageConfig] -> ShowS
$cshowList :: [InstanceStorageConfig] -> ShowS
show :: InstanceStorageConfig -> String
$cshow :: InstanceStorageConfig -> String
showsPrec :: Int -> InstanceStorageConfig -> ShowS
$cshowsPrec :: Int -> InstanceStorageConfig -> ShowS
Prelude.Show, (forall x. InstanceStorageConfig -> Rep InstanceStorageConfig x)
-> (forall x. Rep InstanceStorageConfig x -> InstanceStorageConfig)
-> Generic InstanceStorageConfig
forall x. Rep InstanceStorageConfig x -> InstanceStorageConfig
forall x. InstanceStorageConfig -> Rep InstanceStorageConfig x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep InstanceStorageConfig x -> InstanceStorageConfig
$cfrom :: forall x. InstanceStorageConfig -> Rep InstanceStorageConfig x
Prelude.Generic)

-- |
-- Create a value of 'InstanceStorageConfig' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'associationId', 'instanceStorageConfig_associationId' - The existing association identifier that uniquely identifies the
-- resource type and storage config for the given instance ID.
--
-- 'kinesisStreamConfig', 'instanceStorageConfig_kinesisStreamConfig' - The configuration of the Kinesis data stream.
--
-- 'kinesisVideoStreamConfig', 'instanceStorageConfig_kinesisVideoStreamConfig' - The configuration of the Kinesis video stream.
--
-- 's3Config', 'instanceStorageConfig_s3Config' - The S3 bucket configuration.
--
-- 'kinesisFirehoseConfig', 'instanceStorageConfig_kinesisFirehoseConfig' - The configuration of the Kinesis Firehose delivery stream.
--
-- 'storageType', 'instanceStorageConfig_storageType' - A valid storage type.
newInstanceStorageConfig ::
  -- | 'storageType'
  StorageType ->
  InstanceStorageConfig
newInstanceStorageConfig :: StorageType -> InstanceStorageConfig
newInstanceStorageConfig StorageType
pStorageType_ =
  InstanceStorageConfig' :: Maybe Text
-> Maybe KinesisStreamConfig
-> Maybe KinesisVideoStreamConfig
-> Maybe S3Config
-> Maybe KinesisFirehoseConfig
-> StorageType
-> InstanceStorageConfig
InstanceStorageConfig'
    { $sel:associationId:InstanceStorageConfig' :: Maybe Text
associationId =
        Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:kinesisStreamConfig:InstanceStorageConfig' :: Maybe KinesisStreamConfig
kinesisStreamConfig = Maybe KinesisStreamConfig
forall a. Maybe a
Prelude.Nothing,
      $sel:kinesisVideoStreamConfig:InstanceStorageConfig' :: Maybe KinesisVideoStreamConfig
kinesisVideoStreamConfig = Maybe KinesisVideoStreamConfig
forall a. Maybe a
Prelude.Nothing,
      $sel:s3Config:InstanceStorageConfig' :: Maybe S3Config
s3Config = Maybe S3Config
forall a. Maybe a
Prelude.Nothing,
      $sel:kinesisFirehoseConfig:InstanceStorageConfig' :: Maybe KinesisFirehoseConfig
kinesisFirehoseConfig = Maybe KinesisFirehoseConfig
forall a. Maybe a
Prelude.Nothing,
      $sel:storageType:InstanceStorageConfig' :: StorageType
storageType = StorageType
pStorageType_
    }

-- | The existing association identifier that uniquely identifies the
-- resource type and storage config for the given instance ID.
instanceStorageConfig_associationId :: Lens.Lens' InstanceStorageConfig (Prelude.Maybe Prelude.Text)
instanceStorageConfig_associationId :: (Maybe Text -> f (Maybe Text))
-> InstanceStorageConfig -> f InstanceStorageConfig
instanceStorageConfig_associationId = (InstanceStorageConfig -> Maybe Text)
-> (InstanceStorageConfig -> Maybe Text -> InstanceStorageConfig)
-> Lens
     InstanceStorageConfig
     InstanceStorageConfig
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InstanceStorageConfig' {Maybe Text
associationId :: Maybe Text
$sel:associationId:InstanceStorageConfig' :: InstanceStorageConfig -> Maybe Text
associationId} -> Maybe Text
associationId) (\s :: InstanceStorageConfig
s@InstanceStorageConfig' {} Maybe Text
a -> InstanceStorageConfig
s {$sel:associationId:InstanceStorageConfig' :: Maybe Text
associationId = Maybe Text
a} :: InstanceStorageConfig)

-- | The configuration of the Kinesis data stream.
instanceStorageConfig_kinesisStreamConfig :: Lens.Lens' InstanceStorageConfig (Prelude.Maybe KinesisStreamConfig)
instanceStorageConfig_kinesisStreamConfig :: (Maybe KinesisStreamConfig -> f (Maybe KinesisStreamConfig))
-> InstanceStorageConfig -> f InstanceStorageConfig
instanceStorageConfig_kinesisStreamConfig = (InstanceStorageConfig -> Maybe KinesisStreamConfig)
-> (InstanceStorageConfig
    -> Maybe KinesisStreamConfig -> InstanceStorageConfig)
-> Lens
     InstanceStorageConfig
     InstanceStorageConfig
     (Maybe KinesisStreamConfig)
     (Maybe KinesisStreamConfig)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InstanceStorageConfig' {Maybe KinesisStreamConfig
kinesisStreamConfig :: Maybe KinesisStreamConfig
$sel:kinesisStreamConfig:InstanceStorageConfig' :: InstanceStorageConfig -> Maybe KinesisStreamConfig
kinesisStreamConfig} -> Maybe KinesisStreamConfig
kinesisStreamConfig) (\s :: InstanceStorageConfig
s@InstanceStorageConfig' {} Maybe KinesisStreamConfig
a -> InstanceStorageConfig
s {$sel:kinesisStreamConfig:InstanceStorageConfig' :: Maybe KinesisStreamConfig
kinesisStreamConfig = Maybe KinesisStreamConfig
a} :: InstanceStorageConfig)

-- | The configuration of the Kinesis video stream.
instanceStorageConfig_kinesisVideoStreamConfig :: Lens.Lens' InstanceStorageConfig (Prelude.Maybe KinesisVideoStreamConfig)
instanceStorageConfig_kinesisVideoStreamConfig :: (Maybe KinesisVideoStreamConfig
 -> f (Maybe KinesisVideoStreamConfig))
-> InstanceStorageConfig -> f InstanceStorageConfig
instanceStorageConfig_kinesisVideoStreamConfig = (InstanceStorageConfig -> Maybe KinesisVideoStreamConfig)
-> (InstanceStorageConfig
    -> Maybe KinesisVideoStreamConfig -> InstanceStorageConfig)
-> Lens
     InstanceStorageConfig
     InstanceStorageConfig
     (Maybe KinesisVideoStreamConfig)
     (Maybe KinesisVideoStreamConfig)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InstanceStorageConfig' {Maybe KinesisVideoStreamConfig
kinesisVideoStreamConfig :: Maybe KinesisVideoStreamConfig
$sel:kinesisVideoStreamConfig:InstanceStorageConfig' :: InstanceStorageConfig -> Maybe KinesisVideoStreamConfig
kinesisVideoStreamConfig} -> Maybe KinesisVideoStreamConfig
kinesisVideoStreamConfig) (\s :: InstanceStorageConfig
s@InstanceStorageConfig' {} Maybe KinesisVideoStreamConfig
a -> InstanceStorageConfig
s {$sel:kinesisVideoStreamConfig:InstanceStorageConfig' :: Maybe KinesisVideoStreamConfig
kinesisVideoStreamConfig = Maybe KinesisVideoStreamConfig
a} :: InstanceStorageConfig)

-- | The S3 bucket configuration.
instanceStorageConfig_s3Config :: Lens.Lens' InstanceStorageConfig (Prelude.Maybe S3Config)
instanceStorageConfig_s3Config :: (Maybe S3Config -> f (Maybe S3Config))
-> InstanceStorageConfig -> f InstanceStorageConfig
instanceStorageConfig_s3Config = (InstanceStorageConfig -> Maybe S3Config)
-> (InstanceStorageConfig
    -> Maybe S3Config -> InstanceStorageConfig)
-> Lens
     InstanceStorageConfig
     InstanceStorageConfig
     (Maybe S3Config)
     (Maybe S3Config)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InstanceStorageConfig' {Maybe S3Config
s3Config :: Maybe S3Config
$sel:s3Config:InstanceStorageConfig' :: InstanceStorageConfig -> Maybe S3Config
s3Config} -> Maybe S3Config
s3Config) (\s :: InstanceStorageConfig
s@InstanceStorageConfig' {} Maybe S3Config
a -> InstanceStorageConfig
s {$sel:s3Config:InstanceStorageConfig' :: Maybe S3Config
s3Config = Maybe S3Config
a} :: InstanceStorageConfig)

-- | The configuration of the Kinesis Firehose delivery stream.
instanceStorageConfig_kinesisFirehoseConfig :: Lens.Lens' InstanceStorageConfig (Prelude.Maybe KinesisFirehoseConfig)
instanceStorageConfig_kinesisFirehoseConfig :: (Maybe KinesisFirehoseConfig -> f (Maybe KinesisFirehoseConfig))
-> InstanceStorageConfig -> f InstanceStorageConfig
instanceStorageConfig_kinesisFirehoseConfig = (InstanceStorageConfig -> Maybe KinesisFirehoseConfig)
-> (InstanceStorageConfig
    -> Maybe KinesisFirehoseConfig -> InstanceStorageConfig)
-> Lens
     InstanceStorageConfig
     InstanceStorageConfig
     (Maybe KinesisFirehoseConfig)
     (Maybe KinesisFirehoseConfig)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InstanceStorageConfig' {Maybe KinesisFirehoseConfig
kinesisFirehoseConfig :: Maybe KinesisFirehoseConfig
$sel:kinesisFirehoseConfig:InstanceStorageConfig' :: InstanceStorageConfig -> Maybe KinesisFirehoseConfig
kinesisFirehoseConfig} -> Maybe KinesisFirehoseConfig
kinesisFirehoseConfig) (\s :: InstanceStorageConfig
s@InstanceStorageConfig' {} Maybe KinesisFirehoseConfig
a -> InstanceStorageConfig
s {$sel:kinesisFirehoseConfig:InstanceStorageConfig' :: Maybe KinesisFirehoseConfig
kinesisFirehoseConfig = Maybe KinesisFirehoseConfig
a} :: InstanceStorageConfig)

-- | A valid storage type.
instanceStorageConfig_storageType :: Lens.Lens' InstanceStorageConfig StorageType
instanceStorageConfig_storageType :: (StorageType -> f StorageType)
-> InstanceStorageConfig -> f InstanceStorageConfig
instanceStorageConfig_storageType = (InstanceStorageConfig -> StorageType)
-> (InstanceStorageConfig -> StorageType -> InstanceStorageConfig)
-> Lens
     InstanceStorageConfig InstanceStorageConfig StorageType StorageType
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InstanceStorageConfig' {StorageType
storageType :: StorageType
$sel:storageType:InstanceStorageConfig' :: InstanceStorageConfig -> StorageType
storageType} -> StorageType
storageType) (\s :: InstanceStorageConfig
s@InstanceStorageConfig' {} StorageType
a -> InstanceStorageConfig
s {$sel:storageType:InstanceStorageConfig' :: StorageType
storageType = StorageType
a} :: InstanceStorageConfig)

instance Core.FromJSON InstanceStorageConfig where
  parseJSON :: Value -> Parser InstanceStorageConfig
parseJSON =
    String
-> (Object -> Parser InstanceStorageConfig)
-> Value
-> Parser InstanceStorageConfig
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Core.withObject
      String
"InstanceStorageConfig"
      ( \Object
x ->
          Maybe Text
-> Maybe KinesisStreamConfig
-> Maybe KinesisVideoStreamConfig
-> Maybe S3Config
-> Maybe KinesisFirehoseConfig
-> StorageType
-> InstanceStorageConfig
InstanceStorageConfig'
            (Maybe Text
 -> Maybe KinesisStreamConfig
 -> Maybe KinesisVideoStreamConfig
 -> Maybe S3Config
 -> Maybe KinesisFirehoseConfig
 -> StorageType
 -> InstanceStorageConfig)
-> Parser (Maybe Text)
-> Parser
     (Maybe KinesisStreamConfig
      -> Maybe KinesisVideoStreamConfig
      -> Maybe S3Config
      -> Maybe KinesisFirehoseConfig
      -> StorageType
      -> InstanceStorageConfig)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"AssociationId")
            Parser
  (Maybe KinesisStreamConfig
   -> Maybe KinesisVideoStreamConfig
   -> Maybe S3Config
   -> Maybe KinesisFirehoseConfig
   -> StorageType
   -> InstanceStorageConfig)
-> Parser (Maybe KinesisStreamConfig)
-> Parser
     (Maybe KinesisVideoStreamConfig
      -> Maybe S3Config
      -> Maybe KinesisFirehoseConfig
      -> StorageType
      -> InstanceStorageConfig)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe KinesisStreamConfig)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"KinesisStreamConfig")
            Parser
  (Maybe KinesisVideoStreamConfig
   -> Maybe S3Config
   -> Maybe KinesisFirehoseConfig
   -> StorageType
   -> InstanceStorageConfig)
-> Parser (Maybe KinesisVideoStreamConfig)
-> Parser
     (Maybe S3Config
      -> Maybe KinesisFirehoseConfig
      -> StorageType
      -> InstanceStorageConfig)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe KinesisVideoStreamConfig)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"KinesisVideoStreamConfig")
            Parser
  (Maybe S3Config
   -> Maybe KinesisFirehoseConfig
   -> StorageType
   -> InstanceStorageConfig)
-> Parser (Maybe S3Config)
-> Parser
     (Maybe KinesisFirehoseConfig
      -> StorageType -> InstanceStorageConfig)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe S3Config)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"S3Config")
            Parser
  (Maybe KinesisFirehoseConfig
   -> StorageType -> InstanceStorageConfig)
-> Parser (Maybe KinesisFirehoseConfig)
-> Parser (StorageType -> InstanceStorageConfig)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe KinesisFirehoseConfig)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"KinesisFirehoseConfig")
            Parser (StorageType -> InstanceStorageConfig)
-> Parser StorageType -> Parser InstanceStorageConfig
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser StorageType
forall a. FromJSON a => Object -> Text -> Parser a
Core..: Text
"StorageType")
      )

instance Prelude.Hashable InstanceStorageConfig

instance Prelude.NFData InstanceStorageConfig

instance Core.ToJSON InstanceStorageConfig where
  toJSON :: InstanceStorageConfig -> Value
toJSON InstanceStorageConfig' {Maybe Text
Maybe KinesisFirehoseConfig
Maybe KinesisStreamConfig
Maybe KinesisVideoStreamConfig
Maybe S3Config
StorageType
storageType :: StorageType
kinesisFirehoseConfig :: Maybe KinesisFirehoseConfig
s3Config :: Maybe S3Config
kinesisVideoStreamConfig :: Maybe KinesisVideoStreamConfig
kinesisStreamConfig :: Maybe KinesisStreamConfig
associationId :: Maybe Text
$sel:storageType:InstanceStorageConfig' :: InstanceStorageConfig -> StorageType
$sel:kinesisFirehoseConfig:InstanceStorageConfig' :: InstanceStorageConfig -> Maybe KinesisFirehoseConfig
$sel:s3Config:InstanceStorageConfig' :: InstanceStorageConfig -> Maybe S3Config
$sel:kinesisVideoStreamConfig:InstanceStorageConfig' :: InstanceStorageConfig -> Maybe KinesisVideoStreamConfig
$sel:kinesisStreamConfig:InstanceStorageConfig' :: InstanceStorageConfig -> Maybe KinesisStreamConfig
$sel:associationId:InstanceStorageConfig' :: InstanceStorageConfig -> Maybe Text
..} =
    [Pair] -> Value
Core.object
      ( [Maybe Pair] -> [Pair]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Text
"AssociationId" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
associationId,
            (Text
"KinesisStreamConfig" Text -> KinesisStreamConfig -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (KinesisStreamConfig -> Pair)
-> Maybe KinesisStreamConfig -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe KinesisStreamConfig
kinesisStreamConfig,
            (Text
"KinesisVideoStreamConfig" Text -> KinesisVideoStreamConfig -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (KinesisVideoStreamConfig -> Pair)
-> Maybe KinesisVideoStreamConfig -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe KinesisVideoStreamConfig
kinesisVideoStreamConfig,
            (Text
"S3Config" Text -> S3Config -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (S3Config -> Pair) -> Maybe S3Config -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe S3Config
s3Config,
            (Text
"KinesisFirehoseConfig" Text -> KinesisFirehoseConfig -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (KinesisFirehoseConfig -> Pair)
-> Maybe KinesisFirehoseConfig -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe KinesisFirehoseConfig
kinesisFirehoseConfig,
            Pair -> Maybe Pair
forall a. a -> Maybe a
Prelude.Just (Text
"StorageType" Text -> StorageType -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..= StorageType
storageType)
          ]
      )