{-# 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.SecurityHub.Types.AwsDynamoDbTableDetails
-- 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.SecurityHub.Types.AwsDynamoDbTableDetails where

import qualified Amazonka.Core as Core
import qualified Amazonka.Lens as Lens
import qualified Amazonka.Prelude as Prelude
import Amazonka.SecurityHub.Types.AwsDynamoDbTableAttributeDefinition
import Amazonka.SecurityHub.Types.AwsDynamoDbTableBillingModeSummary
import Amazonka.SecurityHub.Types.AwsDynamoDbTableGlobalSecondaryIndex
import Amazonka.SecurityHub.Types.AwsDynamoDbTableKeySchema
import Amazonka.SecurityHub.Types.AwsDynamoDbTableLocalSecondaryIndex
import Amazonka.SecurityHub.Types.AwsDynamoDbTableProvisionedThroughput
import Amazonka.SecurityHub.Types.AwsDynamoDbTableReplica
import Amazonka.SecurityHub.Types.AwsDynamoDbTableRestoreSummary
import Amazonka.SecurityHub.Types.AwsDynamoDbTableSseDescription
import Amazonka.SecurityHub.Types.AwsDynamoDbTableStreamSpecification

-- | Provides details about a DynamoDB table.
--
-- /See:/ 'newAwsDynamoDbTableDetails' smart constructor.
data AwsDynamoDbTableDetails = AwsDynamoDbTableDetails'
  { -- | Information about the restore for the table.
    AwsDynamoDbTableDetails -> Maybe AwsDynamoDbTableRestoreSummary
restoreSummary :: Prelude.Maybe AwsDynamoDbTableRestoreSummary,
    -- | The version of global tables being used.
    AwsDynamoDbTableDetails -> Maybe Text
globalTableVersion :: Prelude.Maybe Prelude.Text,
    -- | The total size of the table in bytes.
    AwsDynamoDbTableDetails -> Maybe Integer
tableSizeBytes :: Prelude.Maybe Prelude.Integer,
    -- | A list of attribute definitions for the table.
    AwsDynamoDbTableDetails
-> Maybe [AwsDynamoDbTableAttributeDefinition]
attributeDefinitions :: Prelude.Maybe [AwsDynamoDbTableAttributeDefinition],
    -- | The ARN of the latest stream for the table.
    AwsDynamoDbTableDetails -> Maybe Text
latestStreamArn :: Prelude.Maybe Prelude.Text,
    -- | Information about the provisioned throughput for the table.
    AwsDynamoDbTableDetails
-> Maybe AwsDynamoDbTableProvisionedThroughput
provisionedThroughput :: Prelude.Maybe AwsDynamoDbTableProvisionedThroughput,
    -- | The current status of the table.
    AwsDynamoDbTableDetails -> Maybe Text
tableStatus :: Prelude.Maybe Prelude.Text,
    -- | The primary key structure for the table.
    AwsDynamoDbTableDetails -> Maybe [AwsDynamoDbTableKeySchema]
keySchema :: Prelude.Maybe [AwsDynamoDbTableKeySchema],
    -- | List of global secondary indexes for the table.
    AwsDynamoDbTableDetails
-> Maybe [AwsDynamoDbTableGlobalSecondaryIndex]
globalSecondaryIndexes :: Prelude.Maybe [AwsDynamoDbTableGlobalSecondaryIndex],
    -- | The label of the latest stream. The label is not a unique identifier.
    AwsDynamoDbTableDetails -> Maybe Text
latestStreamLabel :: Prelude.Maybe Prelude.Text,
    -- | Information about the billing for read\/write capacity on the table.
    AwsDynamoDbTableDetails -> Maybe AwsDynamoDbTableBillingModeSummary
billingModeSummary :: Prelude.Maybe AwsDynamoDbTableBillingModeSummary,
    -- | The list of local secondary indexes for the table.
    AwsDynamoDbTableDetails
-> Maybe [AwsDynamoDbTableLocalSecondaryIndex]
localSecondaryIndexes :: Prelude.Maybe [AwsDynamoDbTableLocalSecondaryIndex],
    -- | Indicates when the table was created.
    --
    -- Uses the @date-time@ format specified in
    -- <https://tools.ietf.org/html/rfc3339#section-5.6 RFC 3339 section 5.6, Internet Date\/Time Format>.
    -- The value cannot contain spaces. For example,
    -- @2020-03-22T13:22:13.933Z@.
    AwsDynamoDbTableDetails -> Maybe Text
creationDateTime :: Prelude.Maybe Prelude.Text,
    -- | Information about the server-side encryption for the table.
    AwsDynamoDbTableDetails -> Maybe AwsDynamoDbTableSseDescription
sseDescription :: Prelude.Maybe AwsDynamoDbTableSseDescription,
    -- | The identifier of the table.
    AwsDynamoDbTableDetails -> Maybe Text
tableId :: Prelude.Maybe Prelude.Text,
    -- | The list of replicas of this table.
    AwsDynamoDbTableDetails -> Maybe [AwsDynamoDbTableReplica]
replicas :: Prelude.Maybe [AwsDynamoDbTableReplica],
    -- | The number of items in the table.
    AwsDynamoDbTableDetails -> Maybe Int
itemCount :: Prelude.Maybe Prelude.Int,
    -- | The name of the table.
    AwsDynamoDbTableDetails -> Maybe Text
tableName :: Prelude.Maybe Prelude.Text,
    -- | The current DynamoDB Streams configuration for the table.
    AwsDynamoDbTableDetails
-> Maybe AwsDynamoDbTableStreamSpecification
streamSpecification :: Prelude.Maybe AwsDynamoDbTableStreamSpecification
  }
  deriving (AwsDynamoDbTableDetails -> AwsDynamoDbTableDetails -> Bool
(AwsDynamoDbTableDetails -> AwsDynamoDbTableDetails -> Bool)
-> (AwsDynamoDbTableDetails -> AwsDynamoDbTableDetails -> Bool)
-> Eq AwsDynamoDbTableDetails
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AwsDynamoDbTableDetails -> AwsDynamoDbTableDetails -> Bool
$c/= :: AwsDynamoDbTableDetails -> AwsDynamoDbTableDetails -> Bool
== :: AwsDynamoDbTableDetails -> AwsDynamoDbTableDetails -> Bool
$c== :: AwsDynamoDbTableDetails -> AwsDynamoDbTableDetails -> Bool
Prelude.Eq, ReadPrec [AwsDynamoDbTableDetails]
ReadPrec AwsDynamoDbTableDetails
Int -> ReadS AwsDynamoDbTableDetails
ReadS [AwsDynamoDbTableDetails]
(Int -> ReadS AwsDynamoDbTableDetails)
-> ReadS [AwsDynamoDbTableDetails]
-> ReadPrec AwsDynamoDbTableDetails
-> ReadPrec [AwsDynamoDbTableDetails]
-> Read AwsDynamoDbTableDetails
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [AwsDynamoDbTableDetails]
$creadListPrec :: ReadPrec [AwsDynamoDbTableDetails]
readPrec :: ReadPrec AwsDynamoDbTableDetails
$creadPrec :: ReadPrec AwsDynamoDbTableDetails
readList :: ReadS [AwsDynamoDbTableDetails]
$creadList :: ReadS [AwsDynamoDbTableDetails]
readsPrec :: Int -> ReadS AwsDynamoDbTableDetails
$creadsPrec :: Int -> ReadS AwsDynamoDbTableDetails
Prelude.Read, Int -> AwsDynamoDbTableDetails -> ShowS
[AwsDynamoDbTableDetails] -> ShowS
AwsDynamoDbTableDetails -> String
(Int -> AwsDynamoDbTableDetails -> ShowS)
-> (AwsDynamoDbTableDetails -> String)
-> ([AwsDynamoDbTableDetails] -> ShowS)
-> Show AwsDynamoDbTableDetails
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [AwsDynamoDbTableDetails] -> ShowS
$cshowList :: [AwsDynamoDbTableDetails] -> ShowS
show :: AwsDynamoDbTableDetails -> String
$cshow :: AwsDynamoDbTableDetails -> String
showsPrec :: Int -> AwsDynamoDbTableDetails -> ShowS
$cshowsPrec :: Int -> AwsDynamoDbTableDetails -> ShowS
Prelude.Show, (forall x.
 AwsDynamoDbTableDetails -> Rep AwsDynamoDbTableDetails x)
-> (forall x.
    Rep AwsDynamoDbTableDetails x -> AwsDynamoDbTableDetails)
-> Generic AwsDynamoDbTableDetails
forall x. Rep AwsDynamoDbTableDetails x -> AwsDynamoDbTableDetails
forall x. AwsDynamoDbTableDetails -> Rep AwsDynamoDbTableDetails x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep AwsDynamoDbTableDetails x -> AwsDynamoDbTableDetails
$cfrom :: forall x. AwsDynamoDbTableDetails -> Rep AwsDynamoDbTableDetails x
Prelude.Generic)

-- |
-- Create a value of 'AwsDynamoDbTableDetails' 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:
--
-- 'restoreSummary', 'awsDynamoDbTableDetails_restoreSummary' - Information about the restore for the table.
--
-- 'globalTableVersion', 'awsDynamoDbTableDetails_globalTableVersion' - The version of global tables being used.
--
-- 'tableSizeBytes', 'awsDynamoDbTableDetails_tableSizeBytes' - The total size of the table in bytes.
--
-- 'attributeDefinitions', 'awsDynamoDbTableDetails_attributeDefinitions' - A list of attribute definitions for the table.
--
-- 'latestStreamArn', 'awsDynamoDbTableDetails_latestStreamArn' - The ARN of the latest stream for the table.
--
-- 'provisionedThroughput', 'awsDynamoDbTableDetails_provisionedThroughput' - Information about the provisioned throughput for the table.
--
-- 'tableStatus', 'awsDynamoDbTableDetails_tableStatus' - The current status of the table.
--
-- 'keySchema', 'awsDynamoDbTableDetails_keySchema' - The primary key structure for the table.
--
-- 'globalSecondaryIndexes', 'awsDynamoDbTableDetails_globalSecondaryIndexes' - List of global secondary indexes for the table.
--
-- 'latestStreamLabel', 'awsDynamoDbTableDetails_latestStreamLabel' - The label of the latest stream. The label is not a unique identifier.
--
-- 'billingModeSummary', 'awsDynamoDbTableDetails_billingModeSummary' - Information about the billing for read\/write capacity on the table.
--
-- 'localSecondaryIndexes', 'awsDynamoDbTableDetails_localSecondaryIndexes' - The list of local secondary indexes for the table.
--
-- 'creationDateTime', 'awsDynamoDbTableDetails_creationDateTime' - Indicates when the table was created.
--
-- Uses the @date-time@ format specified in
-- <https://tools.ietf.org/html/rfc3339#section-5.6 RFC 3339 section 5.6, Internet Date\/Time Format>.
-- The value cannot contain spaces. For example,
-- @2020-03-22T13:22:13.933Z@.
--
-- 'sseDescription', 'awsDynamoDbTableDetails_sseDescription' - Information about the server-side encryption for the table.
--
-- 'tableId', 'awsDynamoDbTableDetails_tableId' - The identifier of the table.
--
-- 'replicas', 'awsDynamoDbTableDetails_replicas' - The list of replicas of this table.
--
-- 'itemCount', 'awsDynamoDbTableDetails_itemCount' - The number of items in the table.
--
-- 'tableName', 'awsDynamoDbTableDetails_tableName' - The name of the table.
--
-- 'streamSpecification', 'awsDynamoDbTableDetails_streamSpecification' - The current DynamoDB Streams configuration for the table.
newAwsDynamoDbTableDetails ::
  AwsDynamoDbTableDetails
newAwsDynamoDbTableDetails :: AwsDynamoDbTableDetails
newAwsDynamoDbTableDetails =
  AwsDynamoDbTableDetails' :: Maybe AwsDynamoDbTableRestoreSummary
-> Maybe Text
-> Maybe Integer
-> Maybe [AwsDynamoDbTableAttributeDefinition]
-> Maybe Text
-> Maybe AwsDynamoDbTableProvisionedThroughput
-> Maybe Text
-> Maybe [AwsDynamoDbTableKeySchema]
-> Maybe [AwsDynamoDbTableGlobalSecondaryIndex]
-> Maybe Text
-> Maybe AwsDynamoDbTableBillingModeSummary
-> Maybe [AwsDynamoDbTableLocalSecondaryIndex]
-> Maybe Text
-> Maybe AwsDynamoDbTableSseDescription
-> Maybe Text
-> Maybe [AwsDynamoDbTableReplica]
-> Maybe Int
-> Maybe Text
-> Maybe AwsDynamoDbTableStreamSpecification
-> AwsDynamoDbTableDetails
AwsDynamoDbTableDetails'
    { $sel:restoreSummary:AwsDynamoDbTableDetails' :: Maybe AwsDynamoDbTableRestoreSummary
restoreSummary =
        Maybe AwsDynamoDbTableRestoreSummary
forall a. Maybe a
Prelude.Nothing,
      $sel:globalTableVersion:AwsDynamoDbTableDetails' :: Maybe Text
globalTableVersion = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:tableSizeBytes:AwsDynamoDbTableDetails' :: Maybe Integer
tableSizeBytes = Maybe Integer
forall a. Maybe a
Prelude.Nothing,
      $sel:attributeDefinitions:AwsDynamoDbTableDetails' :: Maybe [AwsDynamoDbTableAttributeDefinition]
attributeDefinitions = Maybe [AwsDynamoDbTableAttributeDefinition]
forall a. Maybe a
Prelude.Nothing,
      $sel:latestStreamArn:AwsDynamoDbTableDetails' :: Maybe Text
latestStreamArn = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:provisionedThroughput:AwsDynamoDbTableDetails' :: Maybe AwsDynamoDbTableProvisionedThroughput
provisionedThroughput = Maybe AwsDynamoDbTableProvisionedThroughput
forall a. Maybe a
Prelude.Nothing,
      $sel:tableStatus:AwsDynamoDbTableDetails' :: Maybe Text
tableStatus = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:keySchema:AwsDynamoDbTableDetails' :: Maybe [AwsDynamoDbTableKeySchema]
keySchema = Maybe [AwsDynamoDbTableKeySchema]
forall a. Maybe a
Prelude.Nothing,
      $sel:globalSecondaryIndexes:AwsDynamoDbTableDetails' :: Maybe [AwsDynamoDbTableGlobalSecondaryIndex]
globalSecondaryIndexes = Maybe [AwsDynamoDbTableGlobalSecondaryIndex]
forall a. Maybe a
Prelude.Nothing,
      $sel:latestStreamLabel:AwsDynamoDbTableDetails' :: Maybe Text
latestStreamLabel = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:billingModeSummary:AwsDynamoDbTableDetails' :: Maybe AwsDynamoDbTableBillingModeSummary
billingModeSummary = Maybe AwsDynamoDbTableBillingModeSummary
forall a. Maybe a
Prelude.Nothing,
      $sel:localSecondaryIndexes:AwsDynamoDbTableDetails' :: Maybe [AwsDynamoDbTableLocalSecondaryIndex]
localSecondaryIndexes = Maybe [AwsDynamoDbTableLocalSecondaryIndex]
forall a. Maybe a
Prelude.Nothing,
      $sel:creationDateTime:AwsDynamoDbTableDetails' :: Maybe Text
creationDateTime = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:sseDescription:AwsDynamoDbTableDetails' :: Maybe AwsDynamoDbTableSseDescription
sseDescription = Maybe AwsDynamoDbTableSseDescription
forall a. Maybe a
Prelude.Nothing,
      $sel:tableId:AwsDynamoDbTableDetails' :: Maybe Text
tableId = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:replicas:AwsDynamoDbTableDetails' :: Maybe [AwsDynamoDbTableReplica]
replicas = Maybe [AwsDynamoDbTableReplica]
forall a. Maybe a
Prelude.Nothing,
      $sel:itemCount:AwsDynamoDbTableDetails' :: Maybe Int
itemCount = Maybe Int
forall a. Maybe a
Prelude.Nothing,
      $sel:tableName:AwsDynamoDbTableDetails' :: Maybe Text
tableName = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:streamSpecification:AwsDynamoDbTableDetails' :: Maybe AwsDynamoDbTableStreamSpecification
streamSpecification = Maybe AwsDynamoDbTableStreamSpecification
forall a. Maybe a
Prelude.Nothing
    }

-- | Information about the restore for the table.
awsDynamoDbTableDetails_restoreSummary :: Lens.Lens' AwsDynamoDbTableDetails (Prelude.Maybe AwsDynamoDbTableRestoreSummary)
awsDynamoDbTableDetails_restoreSummary :: (Maybe AwsDynamoDbTableRestoreSummary
 -> f (Maybe AwsDynamoDbTableRestoreSummary))
-> AwsDynamoDbTableDetails -> f AwsDynamoDbTableDetails
awsDynamoDbTableDetails_restoreSummary = (AwsDynamoDbTableDetails -> Maybe AwsDynamoDbTableRestoreSummary)
-> (AwsDynamoDbTableDetails
    -> Maybe AwsDynamoDbTableRestoreSummary -> AwsDynamoDbTableDetails)
-> Lens
     AwsDynamoDbTableDetails
     AwsDynamoDbTableDetails
     (Maybe AwsDynamoDbTableRestoreSummary)
     (Maybe AwsDynamoDbTableRestoreSummary)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsDynamoDbTableDetails' {Maybe AwsDynamoDbTableRestoreSummary
restoreSummary :: Maybe AwsDynamoDbTableRestoreSummary
$sel:restoreSummary:AwsDynamoDbTableDetails' :: AwsDynamoDbTableDetails -> Maybe AwsDynamoDbTableRestoreSummary
restoreSummary} -> Maybe AwsDynamoDbTableRestoreSummary
restoreSummary) (\s :: AwsDynamoDbTableDetails
s@AwsDynamoDbTableDetails' {} Maybe AwsDynamoDbTableRestoreSummary
a -> AwsDynamoDbTableDetails
s {$sel:restoreSummary:AwsDynamoDbTableDetails' :: Maybe AwsDynamoDbTableRestoreSummary
restoreSummary = Maybe AwsDynamoDbTableRestoreSummary
a} :: AwsDynamoDbTableDetails)

-- | The version of global tables being used.
awsDynamoDbTableDetails_globalTableVersion :: Lens.Lens' AwsDynamoDbTableDetails (Prelude.Maybe Prelude.Text)
awsDynamoDbTableDetails_globalTableVersion :: (Maybe Text -> f (Maybe Text))
-> AwsDynamoDbTableDetails -> f AwsDynamoDbTableDetails
awsDynamoDbTableDetails_globalTableVersion = (AwsDynamoDbTableDetails -> Maybe Text)
-> (AwsDynamoDbTableDetails
    -> Maybe Text -> AwsDynamoDbTableDetails)
-> Lens
     AwsDynamoDbTableDetails
     AwsDynamoDbTableDetails
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsDynamoDbTableDetails' {Maybe Text
globalTableVersion :: Maybe Text
$sel:globalTableVersion:AwsDynamoDbTableDetails' :: AwsDynamoDbTableDetails -> Maybe Text
globalTableVersion} -> Maybe Text
globalTableVersion) (\s :: AwsDynamoDbTableDetails
s@AwsDynamoDbTableDetails' {} Maybe Text
a -> AwsDynamoDbTableDetails
s {$sel:globalTableVersion:AwsDynamoDbTableDetails' :: Maybe Text
globalTableVersion = Maybe Text
a} :: AwsDynamoDbTableDetails)

-- | The total size of the table in bytes.
awsDynamoDbTableDetails_tableSizeBytes :: Lens.Lens' AwsDynamoDbTableDetails (Prelude.Maybe Prelude.Integer)
awsDynamoDbTableDetails_tableSizeBytes :: (Maybe Integer -> f (Maybe Integer))
-> AwsDynamoDbTableDetails -> f AwsDynamoDbTableDetails
awsDynamoDbTableDetails_tableSizeBytes = (AwsDynamoDbTableDetails -> Maybe Integer)
-> (AwsDynamoDbTableDetails
    -> Maybe Integer -> AwsDynamoDbTableDetails)
-> Lens
     AwsDynamoDbTableDetails
     AwsDynamoDbTableDetails
     (Maybe Integer)
     (Maybe Integer)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsDynamoDbTableDetails' {Maybe Integer
tableSizeBytes :: Maybe Integer
$sel:tableSizeBytes:AwsDynamoDbTableDetails' :: AwsDynamoDbTableDetails -> Maybe Integer
tableSizeBytes} -> Maybe Integer
tableSizeBytes) (\s :: AwsDynamoDbTableDetails
s@AwsDynamoDbTableDetails' {} Maybe Integer
a -> AwsDynamoDbTableDetails
s {$sel:tableSizeBytes:AwsDynamoDbTableDetails' :: Maybe Integer
tableSizeBytes = Maybe Integer
a} :: AwsDynamoDbTableDetails)

-- | A list of attribute definitions for the table.
awsDynamoDbTableDetails_attributeDefinitions :: Lens.Lens' AwsDynamoDbTableDetails (Prelude.Maybe [AwsDynamoDbTableAttributeDefinition])
awsDynamoDbTableDetails_attributeDefinitions :: (Maybe [AwsDynamoDbTableAttributeDefinition]
 -> f (Maybe [AwsDynamoDbTableAttributeDefinition]))
-> AwsDynamoDbTableDetails -> f AwsDynamoDbTableDetails
awsDynamoDbTableDetails_attributeDefinitions = (AwsDynamoDbTableDetails
 -> Maybe [AwsDynamoDbTableAttributeDefinition])
-> (AwsDynamoDbTableDetails
    -> Maybe [AwsDynamoDbTableAttributeDefinition]
    -> AwsDynamoDbTableDetails)
-> Lens
     AwsDynamoDbTableDetails
     AwsDynamoDbTableDetails
     (Maybe [AwsDynamoDbTableAttributeDefinition])
     (Maybe [AwsDynamoDbTableAttributeDefinition])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsDynamoDbTableDetails' {Maybe [AwsDynamoDbTableAttributeDefinition]
attributeDefinitions :: Maybe [AwsDynamoDbTableAttributeDefinition]
$sel:attributeDefinitions:AwsDynamoDbTableDetails' :: AwsDynamoDbTableDetails
-> Maybe [AwsDynamoDbTableAttributeDefinition]
attributeDefinitions} -> Maybe [AwsDynamoDbTableAttributeDefinition]
attributeDefinitions) (\s :: AwsDynamoDbTableDetails
s@AwsDynamoDbTableDetails' {} Maybe [AwsDynamoDbTableAttributeDefinition]
a -> AwsDynamoDbTableDetails
s {$sel:attributeDefinitions:AwsDynamoDbTableDetails' :: Maybe [AwsDynamoDbTableAttributeDefinition]
attributeDefinitions = Maybe [AwsDynamoDbTableAttributeDefinition]
a} :: AwsDynamoDbTableDetails) ((Maybe [AwsDynamoDbTableAttributeDefinition]
  -> f (Maybe [AwsDynamoDbTableAttributeDefinition]))
 -> AwsDynamoDbTableDetails -> f AwsDynamoDbTableDetails)
-> ((Maybe [AwsDynamoDbTableAttributeDefinition]
     -> f (Maybe [AwsDynamoDbTableAttributeDefinition]))
    -> Maybe [AwsDynamoDbTableAttributeDefinition]
    -> f (Maybe [AwsDynamoDbTableAttributeDefinition]))
-> (Maybe [AwsDynamoDbTableAttributeDefinition]
    -> f (Maybe [AwsDynamoDbTableAttributeDefinition]))
-> AwsDynamoDbTableDetails
-> f AwsDynamoDbTableDetails
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  [AwsDynamoDbTableAttributeDefinition]
  [AwsDynamoDbTableAttributeDefinition]
  [AwsDynamoDbTableAttributeDefinition]
  [AwsDynamoDbTableAttributeDefinition]
-> Iso
     (Maybe [AwsDynamoDbTableAttributeDefinition])
     (Maybe [AwsDynamoDbTableAttributeDefinition])
     (Maybe [AwsDynamoDbTableAttributeDefinition])
     (Maybe [AwsDynamoDbTableAttributeDefinition])
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
  [AwsDynamoDbTableAttributeDefinition]
  [AwsDynamoDbTableAttributeDefinition]
  [AwsDynamoDbTableAttributeDefinition]
  [AwsDynamoDbTableAttributeDefinition]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The ARN of the latest stream for the table.
awsDynamoDbTableDetails_latestStreamArn :: Lens.Lens' AwsDynamoDbTableDetails (Prelude.Maybe Prelude.Text)
awsDynamoDbTableDetails_latestStreamArn :: (Maybe Text -> f (Maybe Text))
-> AwsDynamoDbTableDetails -> f AwsDynamoDbTableDetails
awsDynamoDbTableDetails_latestStreamArn = (AwsDynamoDbTableDetails -> Maybe Text)
-> (AwsDynamoDbTableDetails
    -> Maybe Text -> AwsDynamoDbTableDetails)
-> Lens
     AwsDynamoDbTableDetails
     AwsDynamoDbTableDetails
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsDynamoDbTableDetails' {Maybe Text
latestStreamArn :: Maybe Text
$sel:latestStreamArn:AwsDynamoDbTableDetails' :: AwsDynamoDbTableDetails -> Maybe Text
latestStreamArn} -> Maybe Text
latestStreamArn) (\s :: AwsDynamoDbTableDetails
s@AwsDynamoDbTableDetails' {} Maybe Text
a -> AwsDynamoDbTableDetails
s {$sel:latestStreamArn:AwsDynamoDbTableDetails' :: Maybe Text
latestStreamArn = Maybe Text
a} :: AwsDynamoDbTableDetails)

-- | Information about the provisioned throughput for the table.
awsDynamoDbTableDetails_provisionedThroughput :: Lens.Lens' AwsDynamoDbTableDetails (Prelude.Maybe AwsDynamoDbTableProvisionedThroughput)
awsDynamoDbTableDetails_provisionedThroughput :: (Maybe AwsDynamoDbTableProvisionedThroughput
 -> f (Maybe AwsDynamoDbTableProvisionedThroughput))
-> AwsDynamoDbTableDetails -> f AwsDynamoDbTableDetails
awsDynamoDbTableDetails_provisionedThroughput = (AwsDynamoDbTableDetails
 -> Maybe AwsDynamoDbTableProvisionedThroughput)
-> (AwsDynamoDbTableDetails
    -> Maybe AwsDynamoDbTableProvisionedThroughput
    -> AwsDynamoDbTableDetails)
-> Lens
     AwsDynamoDbTableDetails
     AwsDynamoDbTableDetails
     (Maybe AwsDynamoDbTableProvisionedThroughput)
     (Maybe AwsDynamoDbTableProvisionedThroughput)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsDynamoDbTableDetails' {Maybe AwsDynamoDbTableProvisionedThroughput
provisionedThroughput :: Maybe AwsDynamoDbTableProvisionedThroughput
$sel:provisionedThroughput:AwsDynamoDbTableDetails' :: AwsDynamoDbTableDetails
-> Maybe AwsDynamoDbTableProvisionedThroughput
provisionedThroughput} -> Maybe AwsDynamoDbTableProvisionedThroughput
provisionedThroughput) (\s :: AwsDynamoDbTableDetails
s@AwsDynamoDbTableDetails' {} Maybe AwsDynamoDbTableProvisionedThroughput
a -> AwsDynamoDbTableDetails
s {$sel:provisionedThroughput:AwsDynamoDbTableDetails' :: Maybe AwsDynamoDbTableProvisionedThroughput
provisionedThroughput = Maybe AwsDynamoDbTableProvisionedThroughput
a} :: AwsDynamoDbTableDetails)

-- | The current status of the table.
awsDynamoDbTableDetails_tableStatus :: Lens.Lens' AwsDynamoDbTableDetails (Prelude.Maybe Prelude.Text)
awsDynamoDbTableDetails_tableStatus :: (Maybe Text -> f (Maybe Text))
-> AwsDynamoDbTableDetails -> f AwsDynamoDbTableDetails
awsDynamoDbTableDetails_tableStatus = (AwsDynamoDbTableDetails -> Maybe Text)
-> (AwsDynamoDbTableDetails
    -> Maybe Text -> AwsDynamoDbTableDetails)
-> Lens
     AwsDynamoDbTableDetails
     AwsDynamoDbTableDetails
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsDynamoDbTableDetails' {Maybe Text
tableStatus :: Maybe Text
$sel:tableStatus:AwsDynamoDbTableDetails' :: AwsDynamoDbTableDetails -> Maybe Text
tableStatus} -> Maybe Text
tableStatus) (\s :: AwsDynamoDbTableDetails
s@AwsDynamoDbTableDetails' {} Maybe Text
a -> AwsDynamoDbTableDetails
s {$sel:tableStatus:AwsDynamoDbTableDetails' :: Maybe Text
tableStatus = Maybe Text
a} :: AwsDynamoDbTableDetails)

-- | The primary key structure for the table.
awsDynamoDbTableDetails_keySchema :: Lens.Lens' AwsDynamoDbTableDetails (Prelude.Maybe [AwsDynamoDbTableKeySchema])
awsDynamoDbTableDetails_keySchema :: (Maybe [AwsDynamoDbTableKeySchema]
 -> f (Maybe [AwsDynamoDbTableKeySchema]))
-> AwsDynamoDbTableDetails -> f AwsDynamoDbTableDetails
awsDynamoDbTableDetails_keySchema = (AwsDynamoDbTableDetails -> Maybe [AwsDynamoDbTableKeySchema])
-> (AwsDynamoDbTableDetails
    -> Maybe [AwsDynamoDbTableKeySchema] -> AwsDynamoDbTableDetails)
-> Lens
     AwsDynamoDbTableDetails
     AwsDynamoDbTableDetails
     (Maybe [AwsDynamoDbTableKeySchema])
     (Maybe [AwsDynamoDbTableKeySchema])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsDynamoDbTableDetails' {Maybe [AwsDynamoDbTableKeySchema]
keySchema :: Maybe [AwsDynamoDbTableKeySchema]
$sel:keySchema:AwsDynamoDbTableDetails' :: AwsDynamoDbTableDetails -> Maybe [AwsDynamoDbTableKeySchema]
keySchema} -> Maybe [AwsDynamoDbTableKeySchema]
keySchema) (\s :: AwsDynamoDbTableDetails
s@AwsDynamoDbTableDetails' {} Maybe [AwsDynamoDbTableKeySchema]
a -> AwsDynamoDbTableDetails
s {$sel:keySchema:AwsDynamoDbTableDetails' :: Maybe [AwsDynamoDbTableKeySchema]
keySchema = Maybe [AwsDynamoDbTableKeySchema]
a} :: AwsDynamoDbTableDetails) ((Maybe [AwsDynamoDbTableKeySchema]
  -> f (Maybe [AwsDynamoDbTableKeySchema]))
 -> AwsDynamoDbTableDetails -> f AwsDynamoDbTableDetails)
-> ((Maybe [AwsDynamoDbTableKeySchema]
     -> f (Maybe [AwsDynamoDbTableKeySchema]))
    -> Maybe [AwsDynamoDbTableKeySchema]
    -> f (Maybe [AwsDynamoDbTableKeySchema]))
-> (Maybe [AwsDynamoDbTableKeySchema]
    -> f (Maybe [AwsDynamoDbTableKeySchema]))
-> AwsDynamoDbTableDetails
-> f AwsDynamoDbTableDetails
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  [AwsDynamoDbTableKeySchema]
  [AwsDynamoDbTableKeySchema]
  [AwsDynamoDbTableKeySchema]
  [AwsDynamoDbTableKeySchema]
-> Iso
     (Maybe [AwsDynamoDbTableKeySchema])
     (Maybe [AwsDynamoDbTableKeySchema])
     (Maybe [AwsDynamoDbTableKeySchema])
     (Maybe [AwsDynamoDbTableKeySchema])
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
  [AwsDynamoDbTableKeySchema]
  [AwsDynamoDbTableKeySchema]
  [AwsDynamoDbTableKeySchema]
  [AwsDynamoDbTableKeySchema]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | List of global secondary indexes for the table.
awsDynamoDbTableDetails_globalSecondaryIndexes :: Lens.Lens' AwsDynamoDbTableDetails (Prelude.Maybe [AwsDynamoDbTableGlobalSecondaryIndex])
awsDynamoDbTableDetails_globalSecondaryIndexes :: (Maybe [AwsDynamoDbTableGlobalSecondaryIndex]
 -> f (Maybe [AwsDynamoDbTableGlobalSecondaryIndex]))
-> AwsDynamoDbTableDetails -> f AwsDynamoDbTableDetails
awsDynamoDbTableDetails_globalSecondaryIndexes = (AwsDynamoDbTableDetails
 -> Maybe [AwsDynamoDbTableGlobalSecondaryIndex])
-> (AwsDynamoDbTableDetails
    -> Maybe [AwsDynamoDbTableGlobalSecondaryIndex]
    -> AwsDynamoDbTableDetails)
-> Lens
     AwsDynamoDbTableDetails
     AwsDynamoDbTableDetails
     (Maybe [AwsDynamoDbTableGlobalSecondaryIndex])
     (Maybe [AwsDynamoDbTableGlobalSecondaryIndex])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsDynamoDbTableDetails' {Maybe [AwsDynamoDbTableGlobalSecondaryIndex]
globalSecondaryIndexes :: Maybe [AwsDynamoDbTableGlobalSecondaryIndex]
$sel:globalSecondaryIndexes:AwsDynamoDbTableDetails' :: AwsDynamoDbTableDetails
-> Maybe [AwsDynamoDbTableGlobalSecondaryIndex]
globalSecondaryIndexes} -> Maybe [AwsDynamoDbTableGlobalSecondaryIndex]
globalSecondaryIndexes) (\s :: AwsDynamoDbTableDetails
s@AwsDynamoDbTableDetails' {} Maybe [AwsDynamoDbTableGlobalSecondaryIndex]
a -> AwsDynamoDbTableDetails
s {$sel:globalSecondaryIndexes:AwsDynamoDbTableDetails' :: Maybe [AwsDynamoDbTableGlobalSecondaryIndex]
globalSecondaryIndexes = Maybe [AwsDynamoDbTableGlobalSecondaryIndex]
a} :: AwsDynamoDbTableDetails) ((Maybe [AwsDynamoDbTableGlobalSecondaryIndex]
  -> f (Maybe [AwsDynamoDbTableGlobalSecondaryIndex]))
 -> AwsDynamoDbTableDetails -> f AwsDynamoDbTableDetails)
-> ((Maybe [AwsDynamoDbTableGlobalSecondaryIndex]
     -> f (Maybe [AwsDynamoDbTableGlobalSecondaryIndex]))
    -> Maybe [AwsDynamoDbTableGlobalSecondaryIndex]
    -> f (Maybe [AwsDynamoDbTableGlobalSecondaryIndex]))
-> (Maybe [AwsDynamoDbTableGlobalSecondaryIndex]
    -> f (Maybe [AwsDynamoDbTableGlobalSecondaryIndex]))
-> AwsDynamoDbTableDetails
-> f AwsDynamoDbTableDetails
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  [AwsDynamoDbTableGlobalSecondaryIndex]
  [AwsDynamoDbTableGlobalSecondaryIndex]
  [AwsDynamoDbTableGlobalSecondaryIndex]
  [AwsDynamoDbTableGlobalSecondaryIndex]
-> Iso
     (Maybe [AwsDynamoDbTableGlobalSecondaryIndex])
     (Maybe [AwsDynamoDbTableGlobalSecondaryIndex])
     (Maybe [AwsDynamoDbTableGlobalSecondaryIndex])
     (Maybe [AwsDynamoDbTableGlobalSecondaryIndex])
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
  [AwsDynamoDbTableGlobalSecondaryIndex]
  [AwsDynamoDbTableGlobalSecondaryIndex]
  [AwsDynamoDbTableGlobalSecondaryIndex]
  [AwsDynamoDbTableGlobalSecondaryIndex]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The label of the latest stream. The label is not a unique identifier.
awsDynamoDbTableDetails_latestStreamLabel :: Lens.Lens' AwsDynamoDbTableDetails (Prelude.Maybe Prelude.Text)
awsDynamoDbTableDetails_latestStreamLabel :: (Maybe Text -> f (Maybe Text))
-> AwsDynamoDbTableDetails -> f AwsDynamoDbTableDetails
awsDynamoDbTableDetails_latestStreamLabel = (AwsDynamoDbTableDetails -> Maybe Text)
-> (AwsDynamoDbTableDetails
    -> Maybe Text -> AwsDynamoDbTableDetails)
-> Lens
     AwsDynamoDbTableDetails
     AwsDynamoDbTableDetails
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsDynamoDbTableDetails' {Maybe Text
latestStreamLabel :: Maybe Text
$sel:latestStreamLabel:AwsDynamoDbTableDetails' :: AwsDynamoDbTableDetails -> Maybe Text
latestStreamLabel} -> Maybe Text
latestStreamLabel) (\s :: AwsDynamoDbTableDetails
s@AwsDynamoDbTableDetails' {} Maybe Text
a -> AwsDynamoDbTableDetails
s {$sel:latestStreamLabel:AwsDynamoDbTableDetails' :: Maybe Text
latestStreamLabel = Maybe Text
a} :: AwsDynamoDbTableDetails)

-- | Information about the billing for read\/write capacity on the table.
awsDynamoDbTableDetails_billingModeSummary :: Lens.Lens' AwsDynamoDbTableDetails (Prelude.Maybe AwsDynamoDbTableBillingModeSummary)
awsDynamoDbTableDetails_billingModeSummary :: (Maybe AwsDynamoDbTableBillingModeSummary
 -> f (Maybe AwsDynamoDbTableBillingModeSummary))
-> AwsDynamoDbTableDetails -> f AwsDynamoDbTableDetails
awsDynamoDbTableDetails_billingModeSummary = (AwsDynamoDbTableDetails
 -> Maybe AwsDynamoDbTableBillingModeSummary)
-> (AwsDynamoDbTableDetails
    -> Maybe AwsDynamoDbTableBillingModeSummary
    -> AwsDynamoDbTableDetails)
-> Lens
     AwsDynamoDbTableDetails
     AwsDynamoDbTableDetails
     (Maybe AwsDynamoDbTableBillingModeSummary)
     (Maybe AwsDynamoDbTableBillingModeSummary)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsDynamoDbTableDetails' {Maybe AwsDynamoDbTableBillingModeSummary
billingModeSummary :: Maybe AwsDynamoDbTableBillingModeSummary
$sel:billingModeSummary:AwsDynamoDbTableDetails' :: AwsDynamoDbTableDetails -> Maybe AwsDynamoDbTableBillingModeSummary
billingModeSummary} -> Maybe AwsDynamoDbTableBillingModeSummary
billingModeSummary) (\s :: AwsDynamoDbTableDetails
s@AwsDynamoDbTableDetails' {} Maybe AwsDynamoDbTableBillingModeSummary
a -> AwsDynamoDbTableDetails
s {$sel:billingModeSummary:AwsDynamoDbTableDetails' :: Maybe AwsDynamoDbTableBillingModeSummary
billingModeSummary = Maybe AwsDynamoDbTableBillingModeSummary
a} :: AwsDynamoDbTableDetails)

-- | The list of local secondary indexes for the table.
awsDynamoDbTableDetails_localSecondaryIndexes :: Lens.Lens' AwsDynamoDbTableDetails (Prelude.Maybe [AwsDynamoDbTableLocalSecondaryIndex])
awsDynamoDbTableDetails_localSecondaryIndexes :: (Maybe [AwsDynamoDbTableLocalSecondaryIndex]
 -> f (Maybe [AwsDynamoDbTableLocalSecondaryIndex]))
-> AwsDynamoDbTableDetails -> f AwsDynamoDbTableDetails
awsDynamoDbTableDetails_localSecondaryIndexes = (AwsDynamoDbTableDetails
 -> Maybe [AwsDynamoDbTableLocalSecondaryIndex])
-> (AwsDynamoDbTableDetails
    -> Maybe [AwsDynamoDbTableLocalSecondaryIndex]
    -> AwsDynamoDbTableDetails)
-> Lens
     AwsDynamoDbTableDetails
     AwsDynamoDbTableDetails
     (Maybe [AwsDynamoDbTableLocalSecondaryIndex])
     (Maybe [AwsDynamoDbTableLocalSecondaryIndex])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsDynamoDbTableDetails' {Maybe [AwsDynamoDbTableLocalSecondaryIndex]
localSecondaryIndexes :: Maybe [AwsDynamoDbTableLocalSecondaryIndex]
$sel:localSecondaryIndexes:AwsDynamoDbTableDetails' :: AwsDynamoDbTableDetails
-> Maybe [AwsDynamoDbTableLocalSecondaryIndex]
localSecondaryIndexes} -> Maybe [AwsDynamoDbTableLocalSecondaryIndex]
localSecondaryIndexes) (\s :: AwsDynamoDbTableDetails
s@AwsDynamoDbTableDetails' {} Maybe [AwsDynamoDbTableLocalSecondaryIndex]
a -> AwsDynamoDbTableDetails
s {$sel:localSecondaryIndexes:AwsDynamoDbTableDetails' :: Maybe [AwsDynamoDbTableLocalSecondaryIndex]
localSecondaryIndexes = Maybe [AwsDynamoDbTableLocalSecondaryIndex]
a} :: AwsDynamoDbTableDetails) ((Maybe [AwsDynamoDbTableLocalSecondaryIndex]
  -> f (Maybe [AwsDynamoDbTableLocalSecondaryIndex]))
 -> AwsDynamoDbTableDetails -> f AwsDynamoDbTableDetails)
-> ((Maybe [AwsDynamoDbTableLocalSecondaryIndex]
     -> f (Maybe [AwsDynamoDbTableLocalSecondaryIndex]))
    -> Maybe [AwsDynamoDbTableLocalSecondaryIndex]
    -> f (Maybe [AwsDynamoDbTableLocalSecondaryIndex]))
-> (Maybe [AwsDynamoDbTableLocalSecondaryIndex]
    -> f (Maybe [AwsDynamoDbTableLocalSecondaryIndex]))
-> AwsDynamoDbTableDetails
-> f AwsDynamoDbTableDetails
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  [AwsDynamoDbTableLocalSecondaryIndex]
  [AwsDynamoDbTableLocalSecondaryIndex]
  [AwsDynamoDbTableLocalSecondaryIndex]
  [AwsDynamoDbTableLocalSecondaryIndex]
-> Iso
     (Maybe [AwsDynamoDbTableLocalSecondaryIndex])
     (Maybe [AwsDynamoDbTableLocalSecondaryIndex])
     (Maybe [AwsDynamoDbTableLocalSecondaryIndex])
     (Maybe [AwsDynamoDbTableLocalSecondaryIndex])
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
  [AwsDynamoDbTableLocalSecondaryIndex]
  [AwsDynamoDbTableLocalSecondaryIndex]
  [AwsDynamoDbTableLocalSecondaryIndex]
  [AwsDynamoDbTableLocalSecondaryIndex]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | Indicates when the table was created.
--
-- Uses the @date-time@ format specified in
-- <https://tools.ietf.org/html/rfc3339#section-5.6 RFC 3339 section 5.6, Internet Date\/Time Format>.
-- The value cannot contain spaces. For example,
-- @2020-03-22T13:22:13.933Z@.
awsDynamoDbTableDetails_creationDateTime :: Lens.Lens' AwsDynamoDbTableDetails (Prelude.Maybe Prelude.Text)
awsDynamoDbTableDetails_creationDateTime :: (Maybe Text -> f (Maybe Text))
-> AwsDynamoDbTableDetails -> f AwsDynamoDbTableDetails
awsDynamoDbTableDetails_creationDateTime = (AwsDynamoDbTableDetails -> Maybe Text)
-> (AwsDynamoDbTableDetails
    -> Maybe Text -> AwsDynamoDbTableDetails)
-> Lens
     AwsDynamoDbTableDetails
     AwsDynamoDbTableDetails
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsDynamoDbTableDetails' {Maybe Text
creationDateTime :: Maybe Text
$sel:creationDateTime:AwsDynamoDbTableDetails' :: AwsDynamoDbTableDetails -> Maybe Text
creationDateTime} -> Maybe Text
creationDateTime) (\s :: AwsDynamoDbTableDetails
s@AwsDynamoDbTableDetails' {} Maybe Text
a -> AwsDynamoDbTableDetails
s {$sel:creationDateTime:AwsDynamoDbTableDetails' :: Maybe Text
creationDateTime = Maybe Text
a} :: AwsDynamoDbTableDetails)

-- | Information about the server-side encryption for the table.
awsDynamoDbTableDetails_sseDescription :: Lens.Lens' AwsDynamoDbTableDetails (Prelude.Maybe AwsDynamoDbTableSseDescription)
awsDynamoDbTableDetails_sseDescription :: (Maybe AwsDynamoDbTableSseDescription
 -> f (Maybe AwsDynamoDbTableSseDescription))
-> AwsDynamoDbTableDetails -> f AwsDynamoDbTableDetails
awsDynamoDbTableDetails_sseDescription = (AwsDynamoDbTableDetails -> Maybe AwsDynamoDbTableSseDescription)
-> (AwsDynamoDbTableDetails
    -> Maybe AwsDynamoDbTableSseDescription -> AwsDynamoDbTableDetails)
-> Lens
     AwsDynamoDbTableDetails
     AwsDynamoDbTableDetails
     (Maybe AwsDynamoDbTableSseDescription)
     (Maybe AwsDynamoDbTableSseDescription)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsDynamoDbTableDetails' {Maybe AwsDynamoDbTableSseDescription
sseDescription :: Maybe AwsDynamoDbTableSseDescription
$sel:sseDescription:AwsDynamoDbTableDetails' :: AwsDynamoDbTableDetails -> Maybe AwsDynamoDbTableSseDescription
sseDescription} -> Maybe AwsDynamoDbTableSseDescription
sseDescription) (\s :: AwsDynamoDbTableDetails
s@AwsDynamoDbTableDetails' {} Maybe AwsDynamoDbTableSseDescription
a -> AwsDynamoDbTableDetails
s {$sel:sseDescription:AwsDynamoDbTableDetails' :: Maybe AwsDynamoDbTableSseDescription
sseDescription = Maybe AwsDynamoDbTableSseDescription
a} :: AwsDynamoDbTableDetails)

-- | The identifier of the table.
awsDynamoDbTableDetails_tableId :: Lens.Lens' AwsDynamoDbTableDetails (Prelude.Maybe Prelude.Text)
awsDynamoDbTableDetails_tableId :: (Maybe Text -> f (Maybe Text))
-> AwsDynamoDbTableDetails -> f AwsDynamoDbTableDetails
awsDynamoDbTableDetails_tableId = (AwsDynamoDbTableDetails -> Maybe Text)
-> (AwsDynamoDbTableDetails
    -> Maybe Text -> AwsDynamoDbTableDetails)
-> Lens
     AwsDynamoDbTableDetails
     AwsDynamoDbTableDetails
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsDynamoDbTableDetails' {Maybe Text
tableId :: Maybe Text
$sel:tableId:AwsDynamoDbTableDetails' :: AwsDynamoDbTableDetails -> Maybe Text
tableId} -> Maybe Text
tableId) (\s :: AwsDynamoDbTableDetails
s@AwsDynamoDbTableDetails' {} Maybe Text
a -> AwsDynamoDbTableDetails
s {$sel:tableId:AwsDynamoDbTableDetails' :: Maybe Text
tableId = Maybe Text
a} :: AwsDynamoDbTableDetails)

-- | The list of replicas of this table.
awsDynamoDbTableDetails_replicas :: Lens.Lens' AwsDynamoDbTableDetails (Prelude.Maybe [AwsDynamoDbTableReplica])
awsDynamoDbTableDetails_replicas :: (Maybe [AwsDynamoDbTableReplica]
 -> f (Maybe [AwsDynamoDbTableReplica]))
-> AwsDynamoDbTableDetails -> f AwsDynamoDbTableDetails
awsDynamoDbTableDetails_replicas = (AwsDynamoDbTableDetails -> Maybe [AwsDynamoDbTableReplica])
-> (AwsDynamoDbTableDetails
    -> Maybe [AwsDynamoDbTableReplica] -> AwsDynamoDbTableDetails)
-> Lens
     AwsDynamoDbTableDetails
     AwsDynamoDbTableDetails
     (Maybe [AwsDynamoDbTableReplica])
     (Maybe [AwsDynamoDbTableReplica])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsDynamoDbTableDetails' {Maybe [AwsDynamoDbTableReplica]
replicas :: Maybe [AwsDynamoDbTableReplica]
$sel:replicas:AwsDynamoDbTableDetails' :: AwsDynamoDbTableDetails -> Maybe [AwsDynamoDbTableReplica]
replicas} -> Maybe [AwsDynamoDbTableReplica]
replicas) (\s :: AwsDynamoDbTableDetails
s@AwsDynamoDbTableDetails' {} Maybe [AwsDynamoDbTableReplica]
a -> AwsDynamoDbTableDetails
s {$sel:replicas:AwsDynamoDbTableDetails' :: Maybe [AwsDynamoDbTableReplica]
replicas = Maybe [AwsDynamoDbTableReplica]
a} :: AwsDynamoDbTableDetails) ((Maybe [AwsDynamoDbTableReplica]
  -> f (Maybe [AwsDynamoDbTableReplica]))
 -> AwsDynamoDbTableDetails -> f AwsDynamoDbTableDetails)
-> ((Maybe [AwsDynamoDbTableReplica]
     -> f (Maybe [AwsDynamoDbTableReplica]))
    -> Maybe [AwsDynamoDbTableReplica]
    -> f (Maybe [AwsDynamoDbTableReplica]))
-> (Maybe [AwsDynamoDbTableReplica]
    -> f (Maybe [AwsDynamoDbTableReplica]))
-> AwsDynamoDbTableDetails
-> f AwsDynamoDbTableDetails
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  [AwsDynamoDbTableReplica]
  [AwsDynamoDbTableReplica]
  [AwsDynamoDbTableReplica]
  [AwsDynamoDbTableReplica]
-> Iso
     (Maybe [AwsDynamoDbTableReplica])
     (Maybe [AwsDynamoDbTableReplica])
     (Maybe [AwsDynamoDbTableReplica])
     (Maybe [AwsDynamoDbTableReplica])
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
  [AwsDynamoDbTableReplica]
  [AwsDynamoDbTableReplica]
  [AwsDynamoDbTableReplica]
  [AwsDynamoDbTableReplica]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The number of items in the table.
awsDynamoDbTableDetails_itemCount :: Lens.Lens' AwsDynamoDbTableDetails (Prelude.Maybe Prelude.Int)
awsDynamoDbTableDetails_itemCount :: (Maybe Int -> f (Maybe Int))
-> AwsDynamoDbTableDetails -> f AwsDynamoDbTableDetails
awsDynamoDbTableDetails_itemCount = (AwsDynamoDbTableDetails -> Maybe Int)
-> (AwsDynamoDbTableDetails
    -> Maybe Int -> AwsDynamoDbTableDetails)
-> Lens
     AwsDynamoDbTableDetails
     AwsDynamoDbTableDetails
     (Maybe Int)
     (Maybe Int)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsDynamoDbTableDetails' {Maybe Int
itemCount :: Maybe Int
$sel:itemCount:AwsDynamoDbTableDetails' :: AwsDynamoDbTableDetails -> Maybe Int
itemCount} -> Maybe Int
itemCount) (\s :: AwsDynamoDbTableDetails
s@AwsDynamoDbTableDetails' {} Maybe Int
a -> AwsDynamoDbTableDetails
s {$sel:itemCount:AwsDynamoDbTableDetails' :: Maybe Int
itemCount = Maybe Int
a} :: AwsDynamoDbTableDetails)

-- | The name of the table.
awsDynamoDbTableDetails_tableName :: Lens.Lens' AwsDynamoDbTableDetails (Prelude.Maybe Prelude.Text)
awsDynamoDbTableDetails_tableName :: (Maybe Text -> f (Maybe Text))
-> AwsDynamoDbTableDetails -> f AwsDynamoDbTableDetails
awsDynamoDbTableDetails_tableName = (AwsDynamoDbTableDetails -> Maybe Text)
-> (AwsDynamoDbTableDetails
    -> Maybe Text -> AwsDynamoDbTableDetails)
-> Lens
     AwsDynamoDbTableDetails
     AwsDynamoDbTableDetails
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsDynamoDbTableDetails' {Maybe Text
tableName :: Maybe Text
$sel:tableName:AwsDynamoDbTableDetails' :: AwsDynamoDbTableDetails -> Maybe Text
tableName} -> Maybe Text
tableName) (\s :: AwsDynamoDbTableDetails
s@AwsDynamoDbTableDetails' {} Maybe Text
a -> AwsDynamoDbTableDetails
s {$sel:tableName:AwsDynamoDbTableDetails' :: Maybe Text
tableName = Maybe Text
a} :: AwsDynamoDbTableDetails)

-- | The current DynamoDB Streams configuration for the table.
awsDynamoDbTableDetails_streamSpecification :: Lens.Lens' AwsDynamoDbTableDetails (Prelude.Maybe AwsDynamoDbTableStreamSpecification)
awsDynamoDbTableDetails_streamSpecification :: (Maybe AwsDynamoDbTableStreamSpecification
 -> f (Maybe AwsDynamoDbTableStreamSpecification))
-> AwsDynamoDbTableDetails -> f AwsDynamoDbTableDetails
awsDynamoDbTableDetails_streamSpecification = (AwsDynamoDbTableDetails
 -> Maybe AwsDynamoDbTableStreamSpecification)
-> (AwsDynamoDbTableDetails
    -> Maybe AwsDynamoDbTableStreamSpecification
    -> AwsDynamoDbTableDetails)
-> Lens
     AwsDynamoDbTableDetails
     AwsDynamoDbTableDetails
     (Maybe AwsDynamoDbTableStreamSpecification)
     (Maybe AwsDynamoDbTableStreamSpecification)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsDynamoDbTableDetails' {Maybe AwsDynamoDbTableStreamSpecification
streamSpecification :: Maybe AwsDynamoDbTableStreamSpecification
$sel:streamSpecification:AwsDynamoDbTableDetails' :: AwsDynamoDbTableDetails
-> Maybe AwsDynamoDbTableStreamSpecification
streamSpecification} -> Maybe AwsDynamoDbTableStreamSpecification
streamSpecification) (\s :: AwsDynamoDbTableDetails
s@AwsDynamoDbTableDetails' {} Maybe AwsDynamoDbTableStreamSpecification
a -> AwsDynamoDbTableDetails
s {$sel:streamSpecification:AwsDynamoDbTableDetails' :: Maybe AwsDynamoDbTableStreamSpecification
streamSpecification = Maybe AwsDynamoDbTableStreamSpecification
a} :: AwsDynamoDbTableDetails)

instance Core.FromJSON AwsDynamoDbTableDetails where
  parseJSON :: Value -> Parser AwsDynamoDbTableDetails
parseJSON =
    String
-> (Object -> Parser AwsDynamoDbTableDetails)
-> Value
-> Parser AwsDynamoDbTableDetails
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Core.withObject
      String
"AwsDynamoDbTableDetails"
      ( \Object
x ->
          Maybe AwsDynamoDbTableRestoreSummary
-> Maybe Text
-> Maybe Integer
-> Maybe [AwsDynamoDbTableAttributeDefinition]
-> Maybe Text
-> Maybe AwsDynamoDbTableProvisionedThroughput
-> Maybe Text
-> Maybe [AwsDynamoDbTableKeySchema]
-> Maybe [AwsDynamoDbTableGlobalSecondaryIndex]
-> Maybe Text
-> Maybe AwsDynamoDbTableBillingModeSummary
-> Maybe [AwsDynamoDbTableLocalSecondaryIndex]
-> Maybe Text
-> Maybe AwsDynamoDbTableSseDescription
-> Maybe Text
-> Maybe [AwsDynamoDbTableReplica]
-> Maybe Int
-> Maybe Text
-> Maybe AwsDynamoDbTableStreamSpecification
-> AwsDynamoDbTableDetails
AwsDynamoDbTableDetails'
            (Maybe AwsDynamoDbTableRestoreSummary
 -> Maybe Text
 -> Maybe Integer
 -> Maybe [AwsDynamoDbTableAttributeDefinition]
 -> Maybe Text
 -> Maybe AwsDynamoDbTableProvisionedThroughput
 -> Maybe Text
 -> Maybe [AwsDynamoDbTableKeySchema]
 -> Maybe [AwsDynamoDbTableGlobalSecondaryIndex]
 -> Maybe Text
 -> Maybe AwsDynamoDbTableBillingModeSummary
 -> Maybe [AwsDynamoDbTableLocalSecondaryIndex]
 -> Maybe Text
 -> Maybe AwsDynamoDbTableSseDescription
 -> Maybe Text
 -> Maybe [AwsDynamoDbTableReplica]
 -> Maybe Int
 -> Maybe Text
 -> Maybe AwsDynamoDbTableStreamSpecification
 -> AwsDynamoDbTableDetails)
-> Parser (Maybe AwsDynamoDbTableRestoreSummary)
-> Parser
     (Maybe Text
      -> Maybe Integer
      -> Maybe [AwsDynamoDbTableAttributeDefinition]
      -> Maybe Text
      -> Maybe AwsDynamoDbTableProvisionedThroughput
      -> Maybe Text
      -> Maybe [AwsDynamoDbTableKeySchema]
      -> Maybe [AwsDynamoDbTableGlobalSecondaryIndex]
      -> Maybe Text
      -> Maybe AwsDynamoDbTableBillingModeSummary
      -> Maybe [AwsDynamoDbTableLocalSecondaryIndex]
      -> Maybe Text
      -> Maybe AwsDynamoDbTableSseDescription
      -> Maybe Text
      -> Maybe [AwsDynamoDbTableReplica]
      -> Maybe Int
      -> Maybe Text
      -> Maybe AwsDynamoDbTableStreamSpecification
      -> AwsDynamoDbTableDetails)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x Object -> Text -> Parser (Maybe AwsDynamoDbTableRestoreSummary)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"RestoreSummary")
            Parser
  (Maybe Text
   -> Maybe Integer
   -> Maybe [AwsDynamoDbTableAttributeDefinition]
   -> Maybe Text
   -> Maybe AwsDynamoDbTableProvisionedThroughput
   -> Maybe Text
   -> Maybe [AwsDynamoDbTableKeySchema]
   -> Maybe [AwsDynamoDbTableGlobalSecondaryIndex]
   -> Maybe Text
   -> Maybe AwsDynamoDbTableBillingModeSummary
   -> Maybe [AwsDynamoDbTableLocalSecondaryIndex]
   -> Maybe Text
   -> Maybe AwsDynamoDbTableSseDescription
   -> Maybe Text
   -> Maybe [AwsDynamoDbTableReplica]
   -> Maybe Int
   -> Maybe Text
   -> Maybe AwsDynamoDbTableStreamSpecification
   -> AwsDynamoDbTableDetails)
-> Parser (Maybe Text)
-> Parser
     (Maybe Integer
      -> Maybe [AwsDynamoDbTableAttributeDefinition]
      -> Maybe Text
      -> Maybe AwsDynamoDbTableProvisionedThroughput
      -> Maybe Text
      -> Maybe [AwsDynamoDbTableKeySchema]
      -> Maybe [AwsDynamoDbTableGlobalSecondaryIndex]
      -> Maybe Text
      -> Maybe AwsDynamoDbTableBillingModeSummary
      -> Maybe [AwsDynamoDbTableLocalSecondaryIndex]
      -> Maybe Text
      -> Maybe AwsDynamoDbTableSseDescription
      -> Maybe Text
      -> Maybe [AwsDynamoDbTableReplica]
      -> Maybe Int
      -> Maybe Text
      -> Maybe AwsDynamoDbTableStreamSpecification
      -> AwsDynamoDbTableDetails)
forall (f :: * -> *) a b. Applicative f => 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
"GlobalTableVersion")
            Parser
  (Maybe Integer
   -> Maybe [AwsDynamoDbTableAttributeDefinition]
   -> Maybe Text
   -> Maybe AwsDynamoDbTableProvisionedThroughput
   -> Maybe Text
   -> Maybe [AwsDynamoDbTableKeySchema]
   -> Maybe [AwsDynamoDbTableGlobalSecondaryIndex]
   -> Maybe Text
   -> Maybe AwsDynamoDbTableBillingModeSummary
   -> Maybe [AwsDynamoDbTableLocalSecondaryIndex]
   -> Maybe Text
   -> Maybe AwsDynamoDbTableSseDescription
   -> Maybe Text
   -> Maybe [AwsDynamoDbTableReplica]
   -> Maybe Int
   -> Maybe Text
   -> Maybe AwsDynamoDbTableStreamSpecification
   -> AwsDynamoDbTableDetails)
-> Parser (Maybe Integer)
-> Parser
     (Maybe [AwsDynamoDbTableAttributeDefinition]
      -> Maybe Text
      -> Maybe AwsDynamoDbTableProvisionedThroughput
      -> Maybe Text
      -> Maybe [AwsDynamoDbTableKeySchema]
      -> Maybe [AwsDynamoDbTableGlobalSecondaryIndex]
      -> Maybe Text
      -> Maybe AwsDynamoDbTableBillingModeSummary
      -> Maybe [AwsDynamoDbTableLocalSecondaryIndex]
      -> Maybe Text
      -> Maybe AwsDynamoDbTableSseDescription
      -> Maybe Text
      -> Maybe [AwsDynamoDbTableReplica]
      -> Maybe Int
      -> Maybe Text
      -> Maybe AwsDynamoDbTableStreamSpecification
      -> AwsDynamoDbTableDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Integer)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"TableSizeBytes")
            Parser
  (Maybe [AwsDynamoDbTableAttributeDefinition]
   -> Maybe Text
   -> Maybe AwsDynamoDbTableProvisionedThroughput
   -> Maybe Text
   -> Maybe [AwsDynamoDbTableKeySchema]
   -> Maybe [AwsDynamoDbTableGlobalSecondaryIndex]
   -> Maybe Text
   -> Maybe AwsDynamoDbTableBillingModeSummary
   -> Maybe [AwsDynamoDbTableLocalSecondaryIndex]
   -> Maybe Text
   -> Maybe AwsDynamoDbTableSseDescription
   -> Maybe Text
   -> Maybe [AwsDynamoDbTableReplica]
   -> Maybe Int
   -> Maybe Text
   -> Maybe AwsDynamoDbTableStreamSpecification
   -> AwsDynamoDbTableDetails)
-> Parser (Maybe [AwsDynamoDbTableAttributeDefinition])
-> Parser
     (Maybe Text
      -> Maybe AwsDynamoDbTableProvisionedThroughput
      -> Maybe Text
      -> Maybe [AwsDynamoDbTableKeySchema]
      -> Maybe [AwsDynamoDbTableGlobalSecondaryIndex]
      -> Maybe Text
      -> Maybe AwsDynamoDbTableBillingModeSummary
      -> Maybe [AwsDynamoDbTableLocalSecondaryIndex]
      -> Maybe Text
      -> Maybe AwsDynamoDbTableSseDescription
      -> Maybe Text
      -> Maybe [AwsDynamoDbTableReplica]
      -> Maybe Int
      -> Maybe Text
      -> Maybe AwsDynamoDbTableStreamSpecification
      -> AwsDynamoDbTableDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x Object
-> Text
-> Parser (Maybe (Maybe [AwsDynamoDbTableAttributeDefinition]))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"AttributeDefinitions"
                            Parser (Maybe (Maybe [AwsDynamoDbTableAttributeDefinition]))
-> Maybe [AwsDynamoDbTableAttributeDefinition]
-> Parser (Maybe [AwsDynamoDbTableAttributeDefinition])
forall a. Parser (Maybe a) -> a -> Parser a
Core..!= Maybe [AwsDynamoDbTableAttributeDefinition]
forall a. Monoid a => a
Prelude.mempty
                        )
            Parser
  (Maybe Text
   -> Maybe AwsDynamoDbTableProvisionedThroughput
   -> Maybe Text
   -> Maybe [AwsDynamoDbTableKeySchema]
   -> Maybe [AwsDynamoDbTableGlobalSecondaryIndex]
   -> Maybe Text
   -> Maybe AwsDynamoDbTableBillingModeSummary
   -> Maybe [AwsDynamoDbTableLocalSecondaryIndex]
   -> Maybe Text
   -> Maybe AwsDynamoDbTableSseDescription
   -> Maybe Text
   -> Maybe [AwsDynamoDbTableReplica]
   -> Maybe Int
   -> Maybe Text
   -> Maybe AwsDynamoDbTableStreamSpecification
   -> AwsDynamoDbTableDetails)
-> Parser (Maybe Text)
-> Parser
     (Maybe AwsDynamoDbTableProvisionedThroughput
      -> Maybe Text
      -> Maybe [AwsDynamoDbTableKeySchema]
      -> Maybe [AwsDynamoDbTableGlobalSecondaryIndex]
      -> Maybe Text
      -> Maybe AwsDynamoDbTableBillingModeSummary
      -> Maybe [AwsDynamoDbTableLocalSecondaryIndex]
      -> Maybe Text
      -> Maybe AwsDynamoDbTableSseDescription
      -> Maybe Text
      -> Maybe [AwsDynamoDbTableReplica]
      -> Maybe Int
      -> Maybe Text
      -> Maybe AwsDynamoDbTableStreamSpecification
      -> AwsDynamoDbTableDetails)
forall (f :: * -> *) a b. Applicative f => 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
"LatestStreamArn")
            Parser
  (Maybe AwsDynamoDbTableProvisionedThroughput
   -> Maybe Text
   -> Maybe [AwsDynamoDbTableKeySchema]
   -> Maybe [AwsDynamoDbTableGlobalSecondaryIndex]
   -> Maybe Text
   -> Maybe AwsDynamoDbTableBillingModeSummary
   -> Maybe [AwsDynamoDbTableLocalSecondaryIndex]
   -> Maybe Text
   -> Maybe AwsDynamoDbTableSseDescription
   -> Maybe Text
   -> Maybe [AwsDynamoDbTableReplica]
   -> Maybe Int
   -> Maybe Text
   -> Maybe AwsDynamoDbTableStreamSpecification
   -> AwsDynamoDbTableDetails)
-> Parser (Maybe AwsDynamoDbTableProvisionedThroughput)
-> Parser
     (Maybe Text
      -> Maybe [AwsDynamoDbTableKeySchema]
      -> Maybe [AwsDynamoDbTableGlobalSecondaryIndex]
      -> Maybe Text
      -> Maybe AwsDynamoDbTableBillingModeSummary
      -> Maybe [AwsDynamoDbTableLocalSecondaryIndex]
      -> Maybe Text
      -> Maybe AwsDynamoDbTableSseDescription
      -> Maybe Text
      -> Maybe [AwsDynamoDbTableReplica]
      -> Maybe Int
      -> Maybe Text
      -> Maybe AwsDynamoDbTableStreamSpecification
      -> AwsDynamoDbTableDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object
-> Text -> Parser (Maybe AwsDynamoDbTableProvisionedThroughput)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"ProvisionedThroughput")
            Parser
  (Maybe Text
   -> Maybe [AwsDynamoDbTableKeySchema]
   -> Maybe [AwsDynamoDbTableGlobalSecondaryIndex]
   -> Maybe Text
   -> Maybe AwsDynamoDbTableBillingModeSummary
   -> Maybe [AwsDynamoDbTableLocalSecondaryIndex]
   -> Maybe Text
   -> Maybe AwsDynamoDbTableSseDescription
   -> Maybe Text
   -> Maybe [AwsDynamoDbTableReplica]
   -> Maybe Int
   -> Maybe Text
   -> Maybe AwsDynamoDbTableStreamSpecification
   -> AwsDynamoDbTableDetails)
-> Parser (Maybe Text)
-> Parser
     (Maybe [AwsDynamoDbTableKeySchema]
      -> Maybe [AwsDynamoDbTableGlobalSecondaryIndex]
      -> Maybe Text
      -> Maybe AwsDynamoDbTableBillingModeSummary
      -> Maybe [AwsDynamoDbTableLocalSecondaryIndex]
      -> Maybe Text
      -> Maybe AwsDynamoDbTableSseDescription
      -> Maybe Text
      -> Maybe [AwsDynamoDbTableReplica]
      -> Maybe Int
      -> Maybe Text
      -> Maybe AwsDynamoDbTableStreamSpecification
      -> AwsDynamoDbTableDetails)
forall (f :: * -> *) a b. Applicative f => 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
"TableStatus")
            Parser
  (Maybe [AwsDynamoDbTableKeySchema]
   -> Maybe [AwsDynamoDbTableGlobalSecondaryIndex]
   -> Maybe Text
   -> Maybe AwsDynamoDbTableBillingModeSummary
   -> Maybe [AwsDynamoDbTableLocalSecondaryIndex]
   -> Maybe Text
   -> Maybe AwsDynamoDbTableSseDescription
   -> Maybe Text
   -> Maybe [AwsDynamoDbTableReplica]
   -> Maybe Int
   -> Maybe Text
   -> Maybe AwsDynamoDbTableStreamSpecification
   -> AwsDynamoDbTableDetails)
-> Parser (Maybe [AwsDynamoDbTableKeySchema])
-> Parser
     (Maybe [AwsDynamoDbTableGlobalSecondaryIndex]
      -> Maybe Text
      -> Maybe AwsDynamoDbTableBillingModeSummary
      -> Maybe [AwsDynamoDbTableLocalSecondaryIndex]
      -> Maybe Text
      -> Maybe AwsDynamoDbTableSseDescription
      -> Maybe Text
      -> Maybe [AwsDynamoDbTableReplica]
      -> Maybe Int
      -> Maybe Text
      -> Maybe AwsDynamoDbTableStreamSpecification
      -> AwsDynamoDbTableDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object
-> Text -> Parser (Maybe (Maybe [AwsDynamoDbTableKeySchema]))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"KeySchema" Parser (Maybe (Maybe [AwsDynamoDbTableKeySchema]))
-> Maybe [AwsDynamoDbTableKeySchema]
-> Parser (Maybe [AwsDynamoDbTableKeySchema])
forall a. Parser (Maybe a) -> a -> Parser a
Core..!= Maybe [AwsDynamoDbTableKeySchema]
forall a. Monoid a => a
Prelude.mempty)
            Parser
  (Maybe [AwsDynamoDbTableGlobalSecondaryIndex]
   -> Maybe Text
   -> Maybe AwsDynamoDbTableBillingModeSummary
   -> Maybe [AwsDynamoDbTableLocalSecondaryIndex]
   -> Maybe Text
   -> Maybe AwsDynamoDbTableSseDescription
   -> Maybe Text
   -> Maybe [AwsDynamoDbTableReplica]
   -> Maybe Int
   -> Maybe Text
   -> Maybe AwsDynamoDbTableStreamSpecification
   -> AwsDynamoDbTableDetails)
-> Parser (Maybe [AwsDynamoDbTableGlobalSecondaryIndex])
-> Parser
     (Maybe Text
      -> Maybe AwsDynamoDbTableBillingModeSummary
      -> Maybe [AwsDynamoDbTableLocalSecondaryIndex]
      -> Maybe Text
      -> Maybe AwsDynamoDbTableSseDescription
      -> Maybe Text
      -> Maybe [AwsDynamoDbTableReplica]
      -> Maybe Int
      -> Maybe Text
      -> Maybe AwsDynamoDbTableStreamSpecification
      -> AwsDynamoDbTableDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x Object
-> Text
-> Parser (Maybe (Maybe [AwsDynamoDbTableGlobalSecondaryIndex]))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"GlobalSecondaryIndexes"
                            Parser (Maybe (Maybe [AwsDynamoDbTableGlobalSecondaryIndex]))
-> Maybe [AwsDynamoDbTableGlobalSecondaryIndex]
-> Parser (Maybe [AwsDynamoDbTableGlobalSecondaryIndex])
forall a. Parser (Maybe a) -> a -> Parser a
Core..!= Maybe [AwsDynamoDbTableGlobalSecondaryIndex]
forall a. Monoid a => a
Prelude.mempty
                        )
            Parser
  (Maybe Text
   -> Maybe AwsDynamoDbTableBillingModeSummary
   -> Maybe [AwsDynamoDbTableLocalSecondaryIndex]
   -> Maybe Text
   -> Maybe AwsDynamoDbTableSseDescription
   -> Maybe Text
   -> Maybe [AwsDynamoDbTableReplica]
   -> Maybe Int
   -> Maybe Text
   -> Maybe AwsDynamoDbTableStreamSpecification
   -> AwsDynamoDbTableDetails)
-> Parser (Maybe Text)
-> Parser
     (Maybe AwsDynamoDbTableBillingModeSummary
      -> Maybe [AwsDynamoDbTableLocalSecondaryIndex]
      -> Maybe Text
      -> Maybe AwsDynamoDbTableSseDescription
      -> Maybe Text
      -> Maybe [AwsDynamoDbTableReplica]
      -> Maybe Int
      -> Maybe Text
      -> Maybe AwsDynamoDbTableStreamSpecification
      -> AwsDynamoDbTableDetails)
forall (f :: * -> *) a b. Applicative f => 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
"LatestStreamLabel")
            Parser
  (Maybe AwsDynamoDbTableBillingModeSummary
   -> Maybe [AwsDynamoDbTableLocalSecondaryIndex]
   -> Maybe Text
   -> Maybe AwsDynamoDbTableSseDescription
   -> Maybe Text
   -> Maybe [AwsDynamoDbTableReplica]
   -> Maybe Int
   -> Maybe Text
   -> Maybe AwsDynamoDbTableStreamSpecification
   -> AwsDynamoDbTableDetails)
-> Parser (Maybe AwsDynamoDbTableBillingModeSummary)
-> Parser
     (Maybe [AwsDynamoDbTableLocalSecondaryIndex]
      -> Maybe Text
      -> Maybe AwsDynamoDbTableSseDescription
      -> Maybe Text
      -> Maybe [AwsDynamoDbTableReplica]
      -> Maybe Int
      -> Maybe Text
      -> Maybe AwsDynamoDbTableStreamSpecification
      -> AwsDynamoDbTableDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe AwsDynamoDbTableBillingModeSummary)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"BillingModeSummary")
            Parser
  (Maybe [AwsDynamoDbTableLocalSecondaryIndex]
   -> Maybe Text
   -> Maybe AwsDynamoDbTableSseDescription
   -> Maybe Text
   -> Maybe [AwsDynamoDbTableReplica]
   -> Maybe Int
   -> Maybe Text
   -> Maybe AwsDynamoDbTableStreamSpecification
   -> AwsDynamoDbTableDetails)
-> Parser (Maybe [AwsDynamoDbTableLocalSecondaryIndex])
-> Parser
     (Maybe Text
      -> Maybe AwsDynamoDbTableSseDescription
      -> Maybe Text
      -> Maybe [AwsDynamoDbTableReplica]
      -> Maybe Int
      -> Maybe Text
      -> Maybe AwsDynamoDbTableStreamSpecification
      -> AwsDynamoDbTableDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x Object
-> Text
-> Parser (Maybe (Maybe [AwsDynamoDbTableLocalSecondaryIndex]))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"LocalSecondaryIndexes"
                            Parser (Maybe (Maybe [AwsDynamoDbTableLocalSecondaryIndex]))
-> Maybe [AwsDynamoDbTableLocalSecondaryIndex]
-> Parser (Maybe [AwsDynamoDbTableLocalSecondaryIndex])
forall a. Parser (Maybe a) -> a -> Parser a
Core..!= Maybe [AwsDynamoDbTableLocalSecondaryIndex]
forall a. Monoid a => a
Prelude.mempty
                        )
            Parser
  (Maybe Text
   -> Maybe AwsDynamoDbTableSseDescription
   -> Maybe Text
   -> Maybe [AwsDynamoDbTableReplica]
   -> Maybe Int
   -> Maybe Text
   -> Maybe AwsDynamoDbTableStreamSpecification
   -> AwsDynamoDbTableDetails)
-> Parser (Maybe Text)
-> Parser
     (Maybe AwsDynamoDbTableSseDescription
      -> Maybe Text
      -> Maybe [AwsDynamoDbTableReplica]
      -> Maybe Int
      -> Maybe Text
      -> Maybe AwsDynamoDbTableStreamSpecification
      -> AwsDynamoDbTableDetails)
forall (f :: * -> *) a b. Applicative f => 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
"CreationDateTime")
            Parser
  (Maybe AwsDynamoDbTableSseDescription
   -> Maybe Text
   -> Maybe [AwsDynamoDbTableReplica]
   -> Maybe Int
   -> Maybe Text
   -> Maybe AwsDynamoDbTableStreamSpecification
   -> AwsDynamoDbTableDetails)
-> Parser (Maybe AwsDynamoDbTableSseDescription)
-> Parser
     (Maybe Text
      -> Maybe [AwsDynamoDbTableReplica]
      -> Maybe Int
      -> Maybe Text
      -> Maybe AwsDynamoDbTableStreamSpecification
      -> AwsDynamoDbTableDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe AwsDynamoDbTableSseDescription)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"SseDescription")
            Parser
  (Maybe Text
   -> Maybe [AwsDynamoDbTableReplica]
   -> Maybe Int
   -> Maybe Text
   -> Maybe AwsDynamoDbTableStreamSpecification
   -> AwsDynamoDbTableDetails)
-> Parser (Maybe Text)
-> Parser
     (Maybe [AwsDynamoDbTableReplica]
      -> Maybe Int
      -> Maybe Text
      -> Maybe AwsDynamoDbTableStreamSpecification
      -> AwsDynamoDbTableDetails)
forall (f :: * -> *) a b. Applicative f => 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
"TableId")
            Parser
  (Maybe [AwsDynamoDbTableReplica]
   -> Maybe Int
   -> Maybe Text
   -> Maybe AwsDynamoDbTableStreamSpecification
   -> AwsDynamoDbTableDetails)
-> Parser (Maybe [AwsDynamoDbTableReplica])
-> Parser
     (Maybe Int
      -> Maybe Text
      -> Maybe AwsDynamoDbTableStreamSpecification
      -> AwsDynamoDbTableDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe (Maybe [AwsDynamoDbTableReplica]))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"Replicas" Parser (Maybe (Maybe [AwsDynamoDbTableReplica]))
-> Maybe [AwsDynamoDbTableReplica]
-> Parser (Maybe [AwsDynamoDbTableReplica])
forall a. Parser (Maybe a) -> a -> Parser a
Core..!= Maybe [AwsDynamoDbTableReplica]
forall a. Monoid a => a
Prelude.mempty)
            Parser
  (Maybe Int
   -> Maybe Text
   -> Maybe AwsDynamoDbTableStreamSpecification
   -> AwsDynamoDbTableDetails)
-> Parser (Maybe Int)
-> Parser
     (Maybe Text
      -> Maybe AwsDynamoDbTableStreamSpecification
      -> AwsDynamoDbTableDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"ItemCount")
            Parser
  (Maybe Text
   -> Maybe AwsDynamoDbTableStreamSpecification
   -> AwsDynamoDbTableDetails)
-> Parser (Maybe Text)
-> Parser
     (Maybe AwsDynamoDbTableStreamSpecification
      -> AwsDynamoDbTableDetails)
forall (f :: * -> *) a b. Applicative f => 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
"TableName")
            Parser
  (Maybe AwsDynamoDbTableStreamSpecification
   -> AwsDynamoDbTableDetails)
-> Parser (Maybe AwsDynamoDbTableStreamSpecification)
-> Parser AwsDynamoDbTableDetails
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object
-> Text -> Parser (Maybe AwsDynamoDbTableStreamSpecification)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"StreamSpecification")
      )

instance Prelude.Hashable AwsDynamoDbTableDetails

instance Prelude.NFData AwsDynamoDbTableDetails

instance Core.ToJSON AwsDynamoDbTableDetails where
  toJSON :: AwsDynamoDbTableDetails -> Value
toJSON AwsDynamoDbTableDetails' {Maybe Int
Maybe Integer
Maybe [AwsDynamoDbTableAttributeDefinition]
Maybe [AwsDynamoDbTableKeySchema]
Maybe [AwsDynamoDbTableLocalSecondaryIndex]
Maybe [AwsDynamoDbTableGlobalSecondaryIndex]
Maybe [AwsDynamoDbTableReplica]
Maybe Text
Maybe AwsDynamoDbTableBillingModeSummary
Maybe AwsDynamoDbTableProvisionedThroughput
Maybe AwsDynamoDbTableRestoreSummary
Maybe AwsDynamoDbTableSseDescription
Maybe AwsDynamoDbTableStreamSpecification
streamSpecification :: Maybe AwsDynamoDbTableStreamSpecification
tableName :: Maybe Text
itemCount :: Maybe Int
replicas :: Maybe [AwsDynamoDbTableReplica]
tableId :: Maybe Text
sseDescription :: Maybe AwsDynamoDbTableSseDescription
creationDateTime :: Maybe Text
localSecondaryIndexes :: Maybe [AwsDynamoDbTableLocalSecondaryIndex]
billingModeSummary :: Maybe AwsDynamoDbTableBillingModeSummary
latestStreamLabel :: Maybe Text
globalSecondaryIndexes :: Maybe [AwsDynamoDbTableGlobalSecondaryIndex]
keySchema :: Maybe [AwsDynamoDbTableKeySchema]
tableStatus :: Maybe Text
provisionedThroughput :: Maybe AwsDynamoDbTableProvisionedThroughput
latestStreamArn :: Maybe Text
attributeDefinitions :: Maybe [AwsDynamoDbTableAttributeDefinition]
tableSizeBytes :: Maybe Integer
globalTableVersion :: Maybe Text
restoreSummary :: Maybe AwsDynamoDbTableRestoreSummary
$sel:streamSpecification:AwsDynamoDbTableDetails' :: AwsDynamoDbTableDetails
-> Maybe AwsDynamoDbTableStreamSpecification
$sel:tableName:AwsDynamoDbTableDetails' :: AwsDynamoDbTableDetails -> Maybe Text
$sel:itemCount:AwsDynamoDbTableDetails' :: AwsDynamoDbTableDetails -> Maybe Int
$sel:replicas:AwsDynamoDbTableDetails' :: AwsDynamoDbTableDetails -> Maybe [AwsDynamoDbTableReplica]
$sel:tableId:AwsDynamoDbTableDetails' :: AwsDynamoDbTableDetails -> Maybe Text
$sel:sseDescription:AwsDynamoDbTableDetails' :: AwsDynamoDbTableDetails -> Maybe AwsDynamoDbTableSseDescription
$sel:creationDateTime:AwsDynamoDbTableDetails' :: AwsDynamoDbTableDetails -> Maybe Text
$sel:localSecondaryIndexes:AwsDynamoDbTableDetails' :: AwsDynamoDbTableDetails
-> Maybe [AwsDynamoDbTableLocalSecondaryIndex]
$sel:billingModeSummary:AwsDynamoDbTableDetails' :: AwsDynamoDbTableDetails -> Maybe AwsDynamoDbTableBillingModeSummary
$sel:latestStreamLabel:AwsDynamoDbTableDetails' :: AwsDynamoDbTableDetails -> Maybe Text
$sel:globalSecondaryIndexes:AwsDynamoDbTableDetails' :: AwsDynamoDbTableDetails
-> Maybe [AwsDynamoDbTableGlobalSecondaryIndex]
$sel:keySchema:AwsDynamoDbTableDetails' :: AwsDynamoDbTableDetails -> Maybe [AwsDynamoDbTableKeySchema]
$sel:tableStatus:AwsDynamoDbTableDetails' :: AwsDynamoDbTableDetails -> Maybe Text
$sel:provisionedThroughput:AwsDynamoDbTableDetails' :: AwsDynamoDbTableDetails
-> Maybe AwsDynamoDbTableProvisionedThroughput
$sel:latestStreamArn:AwsDynamoDbTableDetails' :: AwsDynamoDbTableDetails -> Maybe Text
$sel:attributeDefinitions:AwsDynamoDbTableDetails' :: AwsDynamoDbTableDetails
-> Maybe [AwsDynamoDbTableAttributeDefinition]
$sel:tableSizeBytes:AwsDynamoDbTableDetails' :: AwsDynamoDbTableDetails -> Maybe Integer
$sel:globalTableVersion:AwsDynamoDbTableDetails' :: AwsDynamoDbTableDetails -> Maybe Text
$sel:restoreSummary:AwsDynamoDbTableDetails' :: AwsDynamoDbTableDetails -> Maybe AwsDynamoDbTableRestoreSummary
..} =
    [Pair] -> Value
Core.object
      ( [Maybe Pair] -> [Pair]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Text
"RestoreSummary" Text -> AwsDynamoDbTableRestoreSummary -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (AwsDynamoDbTableRestoreSummary -> Pair)
-> Maybe AwsDynamoDbTableRestoreSummary -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe AwsDynamoDbTableRestoreSummary
restoreSummary,
            (Text
"GlobalTableVersion" 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
globalTableVersion,
            (Text
"TableSizeBytes" Text -> Integer -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (Integer -> Pair) -> Maybe Integer -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Integer
tableSizeBytes,
            (Text
"AttributeDefinitions" Text -> [AwsDynamoDbTableAttributeDefinition] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              ([AwsDynamoDbTableAttributeDefinition] -> Pair)
-> Maybe [AwsDynamoDbTableAttributeDefinition] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [AwsDynamoDbTableAttributeDefinition]
attributeDefinitions,
            (Text
"LatestStreamArn" 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
latestStreamArn,
            (Text
"ProvisionedThroughput" Text -> AwsDynamoDbTableProvisionedThroughput -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (AwsDynamoDbTableProvisionedThroughput -> Pair)
-> Maybe AwsDynamoDbTableProvisionedThroughput -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe AwsDynamoDbTableProvisionedThroughput
provisionedThroughput,
            (Text
"TableStatus" 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
tableStatus,
            (Text
"KeySchema" Text -> [AwsDynamoDbTableKeySchema] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) ([AwsDynamoDbTableKeySchema] -> Pair)
-> Maybe [AwsDynamoDbTableKeySchema] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [AwsDynamoDbTableKeySchema]
keySchema,
            (Text
"GlobalSecondaryIndexes" Text -> [AwsDynamoDbTableGlobalSecondaryIndex] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              ([AwsDynamoDbTableGlobalSecondaryIndex] -> Pair)
-> Maybe [AwsDynamoDbTableGlobalSecondaryIndex] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [AwsDynamoDbTableGlobalSecondaryIndex]
globalSecondaryIndexes,
            (Text
"LatestStreamLabel" 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
latestStreamLabel,
            (Text
"BillingModeSummary" Text -> AwsDynamoDbTableBillingModeSummary -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (AwsDynamoDbTableBillingModeSummary -> Pair)
-> Maybe AwsDynamoDbTableBillingModeSummary -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe AwsDynamoDbTableBillingModeSummary
billingModeSummary,
            (Text
"LocalSecondaryIndexes" Text -> [AwsDynamoDbTableLocalSecondaryIndex] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              ([AwsDynamoDbTableLocalSecondaryIndex] -> Pair)
-> Maybe [AwsDynamoDbTableLocalSecondaryIndex] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [AwsDynamoDbTableLocalSecondaryIndex]
localSecondaryIndexes,
            (Text
"CreationDateTime" 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
creationDateTime,
            (Text
"SseDescription" Text -> AwsDynamoDbTableSseDescription -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (AwsDynamoDbTableSseDescription -> Pair)
-> Maybe AwsDynamoDbTableSseDescription -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe AwsDynamoDbTableSseDescription
sseDescription,
            (Text
"TableId" 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
tableId,
            (Text
"Replicas" Text -> [AwsDynamoDbTableReplica] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) ([AwsDynamoDbTableReplica] -> Pair)
-> Maybe [AwsDynamoDbTableReplica] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [AwsDynamoDbTableReplica]
replicas,
            (Text
"ItemCount" Text -> Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Int -> Pair) -> Maybe Int -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Int
itemCount,
            (Text
"TableName" 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
tableName,
            (Text
"StreamSpecification" Text -> AwsDynamoDbTableStreamSpecification -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (AwsDynamoDbTableStreamSpecification -> Pair)
-> Maybe AwsDynamoDbTableStreamSpecification -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe AwsDynamoDbTableStreamSpecification
streamSpecification
          ]
      )