{-# 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.DynamoDB.Types.SourceTableFeatureDetails where
import qualified Amazonka.Core as Core
import Amazonka.DynamoDB.Types.GlobalSecondaryIndexInfo
import Amazonka.DynamoDB.Types.LocalSecondaryIndexInfo
import Amazonka.DynamoDB.Types.SSEDescription
import Amazonka.DynamoDB.Types.StreamSpecification
import Amazonka.DynamoDB.Types.TimeToLiveDescription
import qualified Amazonka.Lens as Lens
import qualified Amazonka.Prelude as Prelude
data SourceTableFeatureDetails = SourceTableFeatureDetails'
{
SourceTableFeatureDetails -> Maybe StreamSpecification
streamDescription :: Prelude.Maybe StreamSpecification,
SourceTableFeatureDetails -> Maybe [GlobalSecondaryIndexInfo]
globalSecondaryIndexes :: Prelude.Maybe [GlobalSecondaryIndexInfo],
SourceTableFeatureDetails -> Maybe [LocalSecondaryIndexInfo]
localSecondaryIndexes :: Prelude.Maybe [LocalSecondaryIndexInfo],
SourceTableFeatureDetails -> Maybe SSEDescription
sSEDescription :: Prelude.Maybe SSEDescription,
SourceTableFeatureDetails -> Maybe TimeToLiveDescription
timeToLiveDescription :: Prelude.Maybe TimeToLiveDescription
}
deriving (SourceTableFeatureDetails -> SourceTableFeatureDetails -> Bool
(SourceTableFeatureDetails -> SourceTableFeatureDetails -> Bool)
-> (SourceTableFeatureDetails -> SourceTableFeatureDetails -> Bool)
-> Eq SourceTableFeatureDetails
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SourceTableFeatureDetails -> SourceTableFeatureDetails -> Bool
$c/= :: SourceTableFeatureDetails -> SourceTableFeatureDetails -> Bool
== :: SourceTableFeatureDetails -> SourceTableFeatureDetails -> Bool
$c== :: SourceTableFeatureDetails -> SourceTableFeatureDetails -> Bool
Prelude.Eq, ReadPrec [SourceTableFeatureDetails]
ReadPrec SourceTableFeatureDetails
Int -> ReadS SourceTableFeatureDetails
ReadS [SourceTableFeatureDetails]
(Int -> ReadS SourceTableFeatureDetails)
-> ReadS [SourceTableFeatureDetails]
-> ReadPrec SourceTableFeatureDetails
-> ReadPrec [SourceTableFeatureDetails]
-> Read SourceTableFeatureDetails
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [SourceTableFeatureDetails]
$creadListPrec :: ReadPrec [SourceTableFeatureDetails]
readPrec :: ReadPrec SourceTableFeatureDetails
$creadPrec :: ReadPrec SourceTableFeatureDetails
readList :: ReadS [SourceTableFeatureDetails]
$creadList :: ReadS [SourceTableFeatureDetails]
readsPrec :: Int -> ReadS SourceTableFeatureDetails
$creadsPrec :: Int -> ReadS SourceTableFeatureDetails
Prelude.Read, Int -> SourceTableFeatureDetails -> ShowS
[SourceTableFeatureDetails] -> ShowS
SourceTableFeatureDetails -> String
(Int -> SourceTableFeatureDetails -> ShowS)
-> (SourceTableFeatureDetails -> String)
-> ([SourceTableFeatureDetails] -> ShowS)
-> Show SourceTableFeatureDetails
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SourceTableFeatureDetails] -> ShowS
$cshowList :: [SourceTableFeatureDetails] -> ShowS
show :: SourceTableFeatureDetails -> String
$cshow :: SourceTableFeatureDetails -> String
showsPrec :: Int -> SourceTableFeatureDetails -> ShowS
$cshowsPrec :: Int -> SourceTableFeatureDetails -> ShowS
Prelude.Show, (forall x.
SourceTableFeatureDetails -> Rep SourceTableFeatureDetails x)
-> (forall x.
Rep SourceTableFeatureDetails x -> SourceTableFeatureDetails)
-> Generic SourceTableFeatureDetails
forall x.
Rep SourceTableFeatureDetails x -> SourceTableFeatureDetails
forall x.
SourceTableFeatureDetails -> Rep SourceTableFeatureDetails x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep SourceTableFeatureDetails x -> SourceTableFeatureDetails
$cfrom :: forall x.
SourceTableFeatureDetails -> Rep SourceTableFeatureDetails x
Prelude.Generic)
newSourceTableFeatureDetails ::
SourceTableFeatureDetails
newSourceTableFeatureDetails :: SourceTableFeatureDetails
newSourceTableFeatureDetails =
SourceTableFeatureDetails' :: Maybe StreamSpecification
-> Maybe [GlobalSecondaryIndexInfo]
-> Maybe [LocalSecondaryIndexInfo]
-> Maybe SSEDescription
-> Maybe TimeToLiveDescription
-> SourceTableFeatureDetails
SourceTableFeatureDetails'
{ $sel:streamDescription:SourceTableFeatureDetails' :: Maybe StreamSpecification
streamDescription =
Maybe StreamSpecification
forall a. Maybe a
Prelude.Nothing,
$sel:globalSecondaryIndexes:SourceTableFeatureDetails' :: Maybe [GlobalSecondaryIndexInfo]
globalSecondaryIndexes = Maybe [GlobalSecondaryIndexInfo]
forall a. Maybe a
Prelude.Nothing,
$sel:localSecondaryIndexes:SourceTableFeatureDetails' :: Maybe [LocalSecondaryIndexInfo]
localSecondaryIndexes = Maybe [LocalSecondaryIndexInfo]
forall a. Maybe a
Prelude.Nothing,
$sel:sSEDescription:SourceTableFeatureDetails' :: Maybe SSEDescription
sSEDescription = Maybe SSEDescription
forall a. Maybe a
Prelude.Nothing,
$sel:timeToLiveDescription:SourceTableFeatureDetails' :: Maybe TimeToLiveDescription
timeToLiveDescription = Maybe TimeToLiveDescription
forall a. Maybe a
Prelude.Nothing
}
sourceTableFeatureDetails_streamDescription :: Lens.Lens' SourceTableFeatureDetails (Prelude.Maybe StreamSpecification)
sourceTableFeatureDetails_streamDescription :: (Maybe StreamSpecification -> f (Maybe StreamSpecification))
-> SourceTableFeatureDetails -> f SourceTableFeatureDetails
sourceTableFeatureDetails_streamDescription = (SourceTableFeatureDetails -> Maybe StreamSpecification)
-> (SourceTableFeatureDetails
-> Maybe StreamSpecification -> SourceTableFeatureDetails)
-> Lens
SourceTableFeatureDetails
SourceTableFeatureDetails
(Maybe StreamSpecification)
(Maybe StreamSpecification)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SourceTableFeatureDetails' {Maybe StreamSpecification
streamDescription :: Maybe StreamSpecification
$sel:streamDescription:SourceTableFeatureDetails' :: SourceTableFeatureDetails -> Maybe StreamSpecification
streamDescription} -> Maybe StreamSpecification
streamDescription) (\s :: SourceTableFeatureDetails
s@SourceTableFeatureDetails' {} Maybe StreamSpecification
a -> SourceTableFeatureDetails
s {$sel:streamDescription:SourceTableFeatureDetails' :: Maybe StreamSpecification
streamDescription = Maybe StreamSpecification
a} :: SourceTableFeatureDetails)
sourceTableFeatureDetails_globalSecondaryIndexes :: Lens.Lens' SourceTableFeatureDetails (Prelude.Maybe [GlobalSecondaryIndexInfo])
sourceTableFeatureDetails_globalSecondaryIndexes :: (Maybe [GlobalSecondaryIndexInfo]
-> f (Maybe [GlobalSecondaryIndexInfo]))
-> SourceTableFeatureDetails -> f SourceTableFeatureDetails
sourceTableFeatureDetails_globalSecondaryIndexes = (SourceTableFeatureDetails -> Maybe [GlobalSecondaryIndexInfo])
-> (SourceTableFeatureDetails
-> Maybe [GlobalSecondaryIndexInfo] -> SourceTableFeatureDetails)
-> Lens
SourceTableFeatureDetails
SourceTableFeatureDetails
(Maybe [GlobalSecondaryIndexInfo])
(Maybe [GlobalSecondaryIndexInfo])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SourceTableFeatureDetails' {Maybe [GlobalSecondaryIndexInfo]
globalSecondaryIndexes :: Maybe [GlobalSecondaryIndexInfo]
$sel:globalSecondaryIndexes:SourceTableFeatureDetails' :: SourceTableFeatureDetails -> Maybe [GlobalSecondaryIndexInfo]
globalSecondaryIndexes} -> Maybe [GlobalSecondaryIndexInfo]
globalSecondaryIndexes) (\s :: SourceTableFeatureDetails
s@SourceTableFeatureDetails' {} Maybe [GlobalSecondaryIndexInfo]
a -> SourceTableFeatureDetails
s {$sel:globalSecondaryIndexes:SourceTableFeatureDetails' :: Maybe [GlobalSecondaryIndexInfo]
globalSecondaryIndexes = Maybe [GlobalSecondaryIndexInfo]
a} :: SourceTableFeatureDetails) ((Maybe [GlobalSecondaryIndexInfo]
-> f (Maybe [GlobalSecondaryIndexInfo]))
-> SourceTableFeatureDetails -> f SourceTableFeatureDetails)
-> ((Maybe [GlobalSecondaryIndexInfo]
-> f (Maybe [GlobalSecondaryIndexInfo]))
-> Maybe [GlobalSecondaryIndexInfo]
-> f (Maybe [GlobalSecondaryIndexInfo]))
-> (Maybe [GlobalSecondaryIndexInfo]
-> f (Maybe [GlobalSecondaryIndexInfo]))
-> SourceTableFeatureDetails
-> f SourceTableFeatureDetails
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
[GlobalSecondaryIndexInfo]
[GlobalSecondaryIndexInfo]
[GlobalSecondaryIndexInfo]
[GlobalSecondaryIndexInfo]
-> Iso
(Maybe [GlobalSecondaryIndexInfo])
(Maybe [GlobalSecondaryIndexInfo])
(Maybe [GlobalSecondaryIndexInfo])
(Maybe [GlobalSecondaryIndexInfo])
forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping AnIso
[GlobalSecondaryIndexInfo]
[GlobalSecondaryIndexInfo]
[GlobalSecondaryIndexInfo]
[GlobalSecondaryIndexInfo]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced
sourceTableFeatureDetails_localSecondaryIndexes :: Lens.Lens' SourceTableFeatureDetails (Prelude.Maybe [LocalSecondaryIndexInfo])
sourceTableFeatureDetails_localSecondaryIndexes :: (Maybe [LocalSecondaryIndexInfo]
-> f (Maybe [LocalSecondaryIndexInfo]))
-> SourceTableFeatureDetails -> f SourceTableFeatureDetails
sourceTableFeatureDetails_localSecondaryIndexes = (SourceTableFeatureDetails -> Maybe [LocalSecondaryIndexInfo])
-> (SourceTableFeatureDetails
-> Maybe [LocalSecondaryIndexInfo] -> SourceTableFeatureDetails)
-> Lens
SourceTableFeatureDetails
SourceTableFeatureDetails
(Maybe [LocalSecondaryIndexInfo])
(Maybe [LocalSecondaryIndexInfo])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SourceTableFeatureDetails' {Maybe [LocalSecondaryIndexInfo]
localSecondaryIndexes :: Maybe [LocalSecondaryIndexInfo]
$sel:localSecondaryIndexes:SourceTableFeatureDetails' :: SourceTableFeatureDetails -> Maybe [LocalSecondaryIndexInfo]
localSecondaryIndexes} -> Maybe [LocalSecondaryIndexInfo]
localSecondaryIndexes) (\s :: SourceTableFeatureDetails
s@SourceTableFeatureDetails' {} Maybe [LocalSecondaryIndexInfo]
a -> SourceTableFeatureDetails
s {$sel:localSecondaryIndexes:SourceTableFeatureDetails' :: Maybe [LocalSecondaryIndexInfo]
localSecondaryIndexes = Maybe [LocalSecondaryIndexInfo]
a} :: SourceTableFeatureDetails) ((Maybe [LocalSecondaryIndexInfo]
-> f (Maybe [LocalSecondaryIndexInfo]))
-> SourceTableFeatureDetails -> f SourceTableFeatureDetails)
-> ((Maybe [LocalSecondaryIndexInfo]
-> f (Maybe [LocalSecondaryIndexInfo]))
-> Maybe [LocalSecondaryIndexInfo]
-> f (Maybe [LocalSecondaryIndexInfo]))
-> (Maybe [LocalSecondaryIndexInfo]
-> f (Maybe [LocalSecondaryIndexInfo]))
-> SourceTableFeatureDetails
-> f SourceTableFeatureDetails
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
[LocalSecondaryIndexInfo]
[LocalSecondaryIndexInfo]
[LocalSecondaryIndexInfo]
[LocalSecondaryIndexInfo]
-> Iso
(Maybe [LocalSecondaryIndexInfo])
(Maybe [LocalSecondaryIndexInfo])
(Maybe [LocalSecondaryIndexInfo])
(Maybe [LocalSecondaryIndexInfo])
forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping AnIso
[LocalSecondaryIndexInfo]
[LocalSecondaryIndexInfo]
[LocalSecondaryIndexInfo]
[LocalSecondaryIndexInfo]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced
sourceTableFeatureDetails_sSEDescription :: Lens.Lens' SourceTableFeatureDetails (Prelude.Maybe SSEDescription)
sourceTableFeatureDetails_sSEDescription :: (Maybe SSEDescription -> f (Maybe SSEDescription))
-> SourceTableFeatureDetails -> f SourceTableFeatureDetails
sourceTableFeatureDetails_sSEDescription = (SourceTableFeatureDetails -> Maybe SSEDescription)
-> (SourceTableFeatureDetails
-> Maybe SSEDescription -> SourceTableFeatureDetails)
-> Lens
SourceTableFeatureDetails
SourceTableFeatureDetails
(Maybe SSEDescription)
(Maybe SSEDescription)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SourceTableFeatureDetails' {Maybe SSEDescription
sSEDescription :: Maybe SSEDescription
$sel:sSEDescription:SourceTableFeatureDetails' :: SourceTableFeatureDetails -> Maybe SSEDescription
sSEDescription} -> Maybe SSEDescription
sSEDescription) (\s :: SourceTableFeatureDetails
s@SourceTableFeatureDetails' {} Maybe SSEDescription
a -> SourceTableFeatureDetails
s {$sel:sSEDescription:SourceTableFeatureDetails' :: Maybe SSEDescription
sSEDescription = Maybe SSEDescription
a} :: SourceTableFeatureDetails)
sourceTableFeatureDetails_timeToLiveDescription :: Lens.Lens' SourceTableFeatureDetails (Prelude.Maybe TimeToLiveDescription)
sourceTableFeatureDetails_timeToLiveDescription :: (Maybe TimeToLiveDescription -> f (Maybe TimeToLiveDescription))
-> SourceTableFeatureDetails -> f SourceTableFeatureDetails
sourceTableFeatureDetails_timeToLiveDescription = (SourceTableFeatureDetails -> Maybe TimeToLiveDescription)
-> (SourceTableFeatureDetails
-> Maybe TimeToLiveDescription -> SourceTableFeatureDetails)
-> Lens
SourceTableFeatureDetails
SourceTableFeatureDetails
(Maybe TimeToLiveDescription)
(Maybe TimeToLiveDescription)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SourceTableFeatureDetails' {Maybe TimeToLiveDescription
timeToLiveDescription :: Maybe TimeToLiveDescription
$sel:timeToLiveDescription:SourceTableFeatureDetails' :: SourceTableFeatureDetails -> Maybe TimeToLiveDescription
timeToLiveDescription} -> Maybe TimeToLiveDescription
timeToLiveDescription) (\s :: SourceTableFeatureDetails
s@SourceTableFeatureDetails' {} Maybe TimeToLiveDescription
a -> SourceTableFeatureDetails
s {$sel:timeToLiveDescription:SourceTableFeatureDetails' :: Maybe TimeToLiveDescription
timeToLiveDescription = Maybe TimeToLiveDescription
a} :: SourceTableFeatureDetails)
instance Core.FromJSON SourceTableFeatureDetails where
parseJSON :: Value -> Parser SourceTableFeatureDetails
parseJSON =
String
-> (Object -> Parser SourceTableFeatureDetails)
-> Value
-> Parser SourceTableFeatureDetails
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Core.withObject
String
"SourceTableFeatureDetails"
( \Object
x ->
Maybe StreamSpecification
-> Maybe [GlobalSecondaryIndexInfo]
-> Maybe [LocalSecondaryIndexInfo]
-> Maybe SSEDescription
-> Maybe TimeToLiveDescription
-> SourceTableFeatureDetails
SourceTableFeatureDetails'
(Maybe StreamSpecification
-> Maybe [GlobalSecondaryIndexInfo]
-> Maybe [LocalSecondaryIndexInfo]
-> Maybe SSEDescription
-> Maybe TimeToLiveDescription
-> SourceTableFeatureDetails)
-> Parser (Maybe StreamSpecification)
-> Parser
(Maybe [GlobalSecondaryIndexInfo]
-> Maybe [LocalSecondaryIndexInfo]
-> Maybe SSEDescription
-> Maybe TimeToLiveDescription
-> SourceTableFeatureDetails)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x Object -> Text -> Parser (Maybe StreamSpecification)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"StreamDescription")
Parser
(Maybe [GlobalSecondaryIndexInfo]
-> Maybe [LocalSecondaryIndexInfo]
-> Maybe SSEDescription
-> Maybe TimeToLiveDescription
-> SourceTableFeatureDetails)
-> Parser (Maybe [GlobalSecondaryIndexInfo])
-> Parser
(Maybe [LocalSecondaryIndexInfo]
-> Maybe SSEDescription
-> Maybe TimeToLiveDescription
-> SourceTableFeatureDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x Object -> Text -> Parser (Maybe (Maybe [GlobalSecondaryIndexInfo]))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"GlobalSecondaryIndexes"
Parser (Maybe (Maybe [GlobalSecondaryIndexInfo]))
-> Maybe [GlobalSecondaryIndexInfo]
-> Parser (Maybe [GlobalSecondaryIndexInfo])
forall a. Parser (Maybe a) -> a -> Parser a
Core..!= Maybe [GlobalSecondaryIndexInfo]
forall a. Monoid a => a
Prelude.mempty
)
Parser
(Maybe [LocalSecondaryIndexInfo]
-> Maybe SSEDescription
-> Maybe TimeToLiveDescription
-> SourceTableFeatureDetails)
-> Parser (Maybe [LocalSecondaryIndexInfo])
-> Parser
(Maybe SSEDescription
-> Maybe TimeToLiveDescription -> SourceTableFeatureDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x Object -> Text -> Parser (Maybe (Maybe [LocalSecondaryIndexInfo]))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"LocalSecondaryIndexes"
Parser (Maybe (Maybe [LocalSecondaryIndexInfo]))
-> Maybe [LocalSecondaryIndexInfo]
-> Parser (Maybe [LocalSecondaryIndexInfo])
forall a. Parser (Maybe a) -> a -> Parser a
Core..!= Maybe [LocalSecondaryIndexInfo]
forall a. Monoid a => a
Prelude.mempty
)
Parser
(Maybe SSEDescription
-> Maybe TimeToLiveDescription -> SourceTableFeatureDetails)
-> Parser (Maybe SSEDescription)
-> Parser
(Maybe TimeToLiveDescription -> SourceTableFeatureDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe SSEDescription)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"SSEDescription")
Parser (Maybe TimeToLiveDescription -> SourceTableFeatureDetails)
-> Parser (Maybe TimeToLiveDescription)
-> Parser SourceTableFeatureDetails
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe TimeToLiveDescription)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"TimeToLiveDescription")
)
instance Prelude.Hashable SourceTableFeatureDetails
instance Prelude.NFData SourceTableFeatureDetails