{-# 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.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude
data InstanceStorageConfig = InstanceStorageConfig'
{
InstanceStorageConfig -> Maybe Text
associationId :: Prelude.Maybe Prelude.Text,
InstanceStorageConfig -> Maybe KinesisFirehoseConfig
kinesisFirehoseConfig :: Prelude.Maybe KinesisFirehoseConfig,
InstanceStorageConfig -> Maybe KinesisStreamConfig
kinesisStreamConfig :: Prelude.Maybe KinesisStreamConfig,
InstanceStorageConfig -> Maybe KinesisVideoStreamConfig
kinesisVideoStreamConfig :: Prelude.Maybe KinesisVideoStreamConfig,
InstanceStorageConfig -> Maybe S3Config
s3Config :: Prelude.Maybe S3Config,
InstanceStorageConfig -> StorageType
storageType :: StorageType
}
deriving (InstanceStorageConfig -> InstanceStorageConfig -> Bool
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]
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
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. 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'
{ $sel:associationId:InstanceStorageConfig' :: Maybe Text
associationId =
forall a. Maybe a
Prelude.Nothing,
$sel:kinesisFirehoseConfig:InstanceStorageConfig' :: Maybe KinesisFirehoseConfig
kinesisFirehoseConfig = forall a. Maybe a
Prelude.Nothing,
$sel:kinesisStreamConfig:InstanceStorageConfig' :: Maybe KinesisStreamConfig
kinesisStreamConfig = forall a. Maybe a
Prelude.Nothing,
$sel:kinesisVideoStreamConfig:InstanceStorageConfig' :: Maybe KinesisVideoStreamConfig
kinesisVideoStreamConfig = forall a. Maybe a
Prelude.Nothing,
$sel:s3Config:InstanceStorageConfig' :: Maybe S3Config
s3Config = forall a. Maybe a
Prelude.Nothing,
$sel:storageType:InstanceStorageConfig' :: StorageType
storageType = StorageType
pStorageType_
}
instanceStorageConfig_associationId :: Lens.Lens' InstanceStorageConfig (Prelude.Maybe Prelude.Text)
instanceStorageConfig_associationId :: Lens' InstanceStorageConfig (Maybe Text)
instanceStorageConfig_associationId = 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_kinesisFirehoseConfig :: Lens.Lens' InstanceStorageConfig (Prelude.Maybe KinesisFirehoseConfig)
instanceStorageConfig_kinesisFirehoseConfig :: Lens' InstanceStorageConfig (Maybe KinesisFirehoseConfig)
instanceStorageConfig_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_kinesisStreamConfig :: Lens.Lens' InstanceStorageConfig (Prelude.Maybe KinesisStreamConfig)
instanceStorageConfig_kinesisStreamConfig :: Lens' InstanceStorageConfig (Maybe KinesisStreamConfig)
instanceStorageConfig_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 :: Lens' InstanceStorageConfig (Maybe KinesisVideoStreamConfig)
instanceStorageConfig_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 :: Lens' InstanceStorageConfig (Maybe S3Config)
instanceStorageConfig_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_storageType :: Lens.Lens' InstanceStorageConfig StorageType
instanceStorageConfig_storageType :: Lens' InstanceStorageConfig StorageType
instanceStorageConfig_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 Data.FromJSON InstanceStorageConfig where
parseJSON :: Value -> Parser InstanceStorageConfig
parseJSON =
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
String
"InstanceStorageConfig"
( \Object
x ->
Maybe Text
-> Maybe KinesisFirehoseConfig
-> Maybe KinesisStreamConfig
-> Maybe KinesisVideoStreamConfig
-> Maybe S3Config
-> StorageType
-> InstanceStorageConfig
InstanceStorageConfig'
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"AssociationId")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"KinesisFirehoseConfig")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"KinesisStreamConfig")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"KinesisVideoStreamConfig")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"S3Config")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser a
Data..: Key
"StorageType")
)
instance Prelude.Hashable InstanceStorageConfig where
hashWithSalt :: Int -> InstanceStorageConfig -> Int
hashWithSalt Int
_salt InstanceStorageConfig' {Maybe Text
Maybe KinesisFirehoseConfig
Maybe KinesisStreamConfig
Maybe KinesisVideoStreamConfig
Maybe S3Config
StorageType
storageType :: StorageType
s3Config :: Maybe S3Config
kinesisVideoStreamConfig :: Maybe KinesisVideoStreamConfig
kinesisStreamConfig :: Maybe KinesisStreamConfig
kinesisFirehoseConfig :: Maybe KinesisFirehoseConfig
associationId :: Maybe Text
$sel:storageType:InstanceStorageConfig' :: InstanceStorageConfig -> StorageType
$sel:s3Config:InstanceStorageConfig' :: InstanceStorageConfig -> Maybe S3Config
$sel:kinesisVideoStreamConfig:InstanceStorageConfig' :: InstanceStorageConfig -> Maybe KinesisVideoStreamConfig
$sel:kinesisStreamConfig:InstanceStorageConfig' :: InstanceStorageConfig -> Maybe KinesisStreamConfig
$sel:kinesisFirehoseConfig:InstanceStorageConfig' :: InstanceStorageConfig -> Maybe KinesisFirehoseConfig
$sel:associationId:InstanceStorageConfig' :: InstanceStorageConfig -> Maybe Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
associationId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe KinesisFirehoseConfig
kinesisFirehoseConfig
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe KinesisStreamConfig
kinesisStreamConfig
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe KinesisVideoStreamConfig
kinesisVideoStreamConfig
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe S3Config
s3Config
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` StorageType
storageType
instance Prelude.NFData InstanceStorageConfig where
rnf :: InstanceStorageConfig -> ()
rnf InstanceStorageConfig' {Maybe Text
Maybe KinesisFirehoseConfig
Maybe KinesisStreamConfig
Maybe KinesisVideoStreamConfig
Maybe S3Config
StorageType
storageType :: StorageType
s3Config :: Maybe S3Config
kinesisVideoStreamConfig :: Maybe KinesisVideoStreamConfig
kinesisStreamConfig :: Maybe KinesisStreamConfig
kinesisFirehoseConfig :: Maybe KinesisFirehoseConfig
associationId :: Maybe Text
$sel:storageType:InstanceStorageConfig' :: InstanceStorageConfig -> StorageType
$sel:s3Config:InstanceStorageConfig' :: InstanceStorageConfig -> Maybe S3Config
$sel:kinesisVideoStreamConfig:InstanceStorageConfig' :: InstanceStorageConfig -> Maybe KinesisVideoStreamConfig
$sel:kinesisStreamConfig:InstanceStorageConfig' :: InstanceStorageConfig -> Maybe KinesisStreamConfig
$sel:kinesisFirehoseConfig:InstanceStorageConfig' :: InstanceStorageConfig -> Maybe KinesisFirehoseConfig
$sel:associationId:InstanceStorageConfig' :: InstanceStorageConfig -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
associationId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe KinesisFirehoseConfig
kinesisFirehoseConfig
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe KinesisStreamConfig
kinesisStreamConfig
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe KinesisVideoStreamConfig
kinesisVideoStreamConfig
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe S3Config
s3Config
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf StorageType
storageType
instance Data.ToJSON InstanceStorageConfig where
toJSON :: InstanceStorageConfig -> Value
toJSON InstanceStorageConfig' {Maybe Text
Maybe KinesisFirehoseConfig
Maybe KinesisStreamConfig
Maybe KinesisVideoStreamConfig
Maybe S3Config
StorageType
storageType :: StorageType
s3Config :: Maybe S3Config
kinesisVideoStreamConfig :: Maybe KinesisVideoStreamConfig
kinesisStreamConfig :: Maybe KinesisStreamConfig
kinesisFirehoseConfig :: Maybe KinesisFirehoseConfig
associationId :: Maybe Text
$sel:storageType:InstanceStorageConfig' :: InstanceStorageConfig -> StorageType
$sel:s3Config:InstanceStorageConfig' :: InstanceStorageConfig -> Maybe S3Config
$sel:kinesisVideoStreamConfig:InstanceStorageConfig' :: InstanceStorageConfig -> Maybe KinesisVideoStreamConfig
$sel:kinesisStreamConfig:InstanceStorageConfig' :: InstanceStorageConfig -> Maybe KinesisStreamConfig
$sel:kinesisFirehoseConfig:InstanceStorageConfig' :: InstanceStorageConfig -> Maybe KinesisFirehoseConfig
$sel:associationId:InstanceStorageConfig' :: InstanceStorageConfig -> Maybe Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"AssociationId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
associationId,
(Key
"KinesisFirehoseConfig" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe KinesisFirehoseConfig
kinesisFirehoseConfig,
(Key
"KinesisStreamConfig" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe KinesisStreamConfig
kinesisStreamConfig,
(Key
"KinesisVideoStreamConfig" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe KinesisVideoStreamConfig
kinesisVideoStreamConfig,
(Key
"S3Config" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe S3Config
s3Config,
forall a. a -> Maybe a
Prelude.Just (Key
"StorageType" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= StorageType
storageType)
]
)