{-# 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 #-}
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
data InstanceStorageConfig = InstanceStorageConfig'
{
InstanceStorageConfig -> Maybe Text
associationId :: Prelude.Maybe Prelude.Text,
InstanceStorageConfig -> Maybe KinesisStreamConfig
kinesisStreamConfig :: Prelude.Maybe KinesisStreamConfig,
InstanceStorageConfig -> Maybe KinesisVideoStreamConfig
kinesisVideoStreamConfig :: Prelude.Maybe KinesisVideoStreamConfig,
InstanceStorageConfig -> Maybe S3Config
s3Config :: Prelude.Maybe S3Config,
InstanceStorageConfig -> Maybe KinesisFirehoseConfig
kinesisFirehoseConfig :: Prelude.Maybe KinesisFirehoseConfig,
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)
newInstanceStorageConfig ::
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_
}
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)
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)
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)
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)
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)
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)
]
)