amazonka-keyspaces-2.0: gen/Amazonka/KeySpaces/GetTable.hs
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
-- Derived from AWS service descriptions, licensed under Apache 2.0.
-- |
-- Module : Amazonka.KeySpaces.GetTable
-- Copyright : (c) 2013-2023 Brendan Hay
-- License : Mozilla Public License, v. 2.0.
-- Maintainer : Brendan Hay
-- Stability : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Returns information about the table, including the table\'s name and
-- current status, the keyspace name, configuration settings, and metadata.
--
-- To read table metadata using @GetTable@, @Select@ action permissions for
-- the table and system tables are required to complete the operation.
module Amazonka.KeySpaces.GetTable
( -- * Creating a Request
GetTable (..),
newGetTable,
-- * Request Lenses
getTable_keyspaceName,
getTable_tableName,
-- * Destructuring the Response
GetTableResponse (..),
newGetTableResponse,
-- * Response Lenses
getTableResponse_capacitySpecification,
getTableResponse_comment,
getTableResponse_creationTimestamp,
getTableResponse_defaultTimeToLive,
getTableResponse_encryptionSpecification,
getTableResponse_pointInTimeRecovery,
getTableResponse_schemaDefinition,
getTableResponse_status,
getTableResponse_ttl,
getTableResponse_httpStatus,
getTableResponse_keyspaceName,
getTableResponse_tableName,
getTableResponse_resourceArn,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.KeySpaces.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
-- | /See:/ 'newGetTable' smart constructor.
data GetTable = GetTable'
{ -- | The name of the keyspace that the table is stored in.
keyspaceName :: Prelude.Text,
-- | The name of the table.
tableName :: Prelude.Text
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'GetTable' 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:
--
-- 'keyspaceName', 'getTable_keyspaceName' - The name of the keyspace that the table is stored in.
--
-- 'tableName', 'getTable_tableName' - The name of the table.
newGetTable ::
-- | 'keyspaceName'
Prelude.Text ->
-- | 'tableName'
Prelude.Text ->
GetTable
newGetTable pKeyspaceName_ pTableName_ =
GetTable'
{ keyspaceName = pKeyspaceName_,
tableName = pTableName_
}
-- | The name of the keyspace that the table is stored in.
getTable_keyspaceName :: Lens.Lens' GetTable Prelude.Text
getTable_keyspaceName = Lens.lens (\GetTable' {keyspaceName} -> keyspaceName) (\s@GetTable' {} a -> s {keyspaceName = a} :: GetTable)
-- | The name of the table.
getTable_tableName :: Lens.Lens' GetTable Prelude.Text
getTable_tableName = Lens.lens (\GetTable' {tableName} -> tableName) (\s@GetTable' {} a -> s {tableName = a} :: GetTable)
instance Core.AWSRequest GetTable where
type AWSResponse GetTable = GetTableResponse
request overrides =
Request.postJSON (overrides defaultService)
response =
Response.receiveJSON
( \s h x ->
GetTableResponse'
Prelude.<$> (x Data..?> "capacitySpecification")
Prelude.<*> (x Data..?> "comment")
Prelude.<*> (x Data..?> "creationTimestamp")
Prelude.<*> (x Data..?> "defaultTimeToLive")
Prelude.<*> (x Data..?> "encryptionSpecification")
Prelude.<*> (x Data..?> "pointInTimeRecovery")
Prelude.<*> (x Data..?> "schemaDefinition")
Prelude.<*> (x Data..?> "status")
Prelude.<*> (x Data..?> "ttl")
Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
Prelude.<*> (x Data..:> "keyspaceName")
Prelude.<*> (x Data..:> "tableName")
Prelude.<*> (x Data..:> "resourceArn")
)
instance Prelude.Hashable GetTable where
hashWithSalt _salt GetTable' {..} =
_salt
`Prelude.hashWithSalt` keyspaceName
`Prelude.hashWithSalt` tableName
instance Prelude.NFData GetTable where
rnf GetTable' {..} =
Prelude.rnf keyspaceName
`Prelude.seq` Prelude.rnf tableName
instance Data.ToHeaders GetTable where
toHeaders =
Prelude.const
( Prelude.mconcat
[ "X-Amz-Target"
Data.=# ("KeyspacesService.GetTable" :: Prelude.ByteString),
"Content-Type"
Data.=# ( "application/x-amz-json-1.0" ::
Prelude.ByteString
)
]
)
instance Data.ToJSON GetTable where
toJSON GetTable' {..} =
Data.object
( Prelude.catMaybes
[ Prelude.Just ("keyspaceName" Data..= keyspaceName),
Prelude.Just ("tableName" Data..= tableName)
]
)
instance Data.ToPath GetTable where
toPath = Prelude.const "/"
instance Data.ToQuery GetTable where
toQuery = Prelude.const Prelude.mempty
-- | /See:/ 'newGetTableResponse' smart constructor.
data GetTableResponse = GetTableResponse'
{ -- | The read\/write throughput capacity mode for a table. The options are:
--
-- • @throughputMode:PAY_PER_REQUEST@
--
-- • @throughputMode:PROVISIONED@
capacitySpecification :: Prelude.Maybe CapacitySpecificationSummary,
-- | The the description of the specified table.
comment :: Prelude.Maybe Comment,
-- | The creation timestamp of the specified table.
creationTimestamp :: Prelude.Maybe Data.POSIX,
-- | The default Time to Live settings of the specified table.
defaultTimeToLive :: Prelude.Maybe Prelude.Natural,
-- | The encryption settings of the specified table.
encryptionSpecification :: Prelude.Maybe EncryptionSpecification,
-- | The point-in-time recovery status of the specified table.
pointInTimeRecovery :: Prelude.Maybe PointInTimeRecoverySummary,
-- | The schema definition of the specified table.
schemaDefinition :: Prelude.Maybe SchemaDefinition,
-- | The current status of the specified table.
status :: Prelude.Maybe TableStatus,
-- | The custom Time to Live settings of the specified table.
ttl :: Prelude.Maybe TimeToLive,
-- | The response's http status code.
httpStatus :: Prelude.Int,
-- | The name of the keyspace that the specified table is stored in.
keyspaceName :: Prelude.Text,
-- | The name of the specified table.
tableName :: Prelude.Text,
-- | The Amazon Resource Name (ARN) of the specified table.
resourceArn :: Prelude.Text
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'GetTableResponse' 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:
--
-- 'capacitySpecification', 'getTableResponse_capacitySpecification' - The read\/write throughput capacity mode for a table. The options are:
--
-- • @throughputMode:PAY_PER_REQUEST@
--
-- • @throughputMode:PROVISIONED@
--
-- 'comment', 'getTableResponse_comment' - The the description of the specified table.
--
-- 'creationTimestamp', 'getTableResponse_creationTimestamp' - The creation timestamp of the specified table.
--
-- 'defaultTimeToLive', 'getTableResponse_defaultTimeToLive' - The default Time to Live settings of the specified table.
--
-- 'encryptionSpecification', 'getTableResponse_encryptionSpecification' - The encryption settings of the specified table.
--
-- 'pointInTimeRecovery', 'getTableResponse_pointInTimeRecovery' - The point-in-time recovery status of the specified table.
--
-- 'schemaDefinition', 'getTableResponse_schemaDefinition' - The schema definition of the specified table.
--
-- 'status', 'getTableResponse_status' - The current status of the specified table.
--
-- 'ttl', 'getTableResponse_ttl' - The custom Time to Live settings of the specified table.
--
-- 'httpStatus', 'getTableResponse_httpStatus' - The response's http status code.
--
-- 'keyspaceName', 'getTableResponse_keyspaceName' - The name of the keyspace that the specified table is stored in.
--
-- 'tableName', 'getTableResponse_tableName' - The name of the specified table.
--
-- 'resourceArn', 'getTableResponse_resourceArn' - The Amazon Resource Name (ARN) of the specified table.
newGetTableResponse ::
-- | 'httpStatus'
Prelude.Int ->
-- | 'keyspaceName'
Prelude.Text ->
-- | 'tableName'
Prelude.Text ->
-- | 'resourceArn'
Prelude.Text ->
GetTableResponse
newGetTableResponse
pHttpStatus_
pKeyspaceName_
pTableName_
pResourceArn_ =
GetTableResponse'
{ capacitySpecification =
Prelude.Nothing,
comment = Prelude.Nothing,
creationTimestamp = Prelude.Nothing,
defaultTimeToLive = Prelude.Nothing,
encryptionSpecification = Prelude.Nothing,
pointInTimeRecovery = Prelude.Nothing,
schemaDefinition = Prelude.Nothing,
status = Prelude.Nothing,
ttl = Prelude.Nothing,
httpStatus = pHttpStatus_,
keyspaceName = pKeyspaceName_,
tableName = pTableName_,
resourceArn = pResourceArn_
}
-- | The read\/write throughput capacity mode for a table. The options are:
--
-- • @throughputMode:PAY_PER_REQUEST@
--
-- • @throughputMode:PROVISIONED@
getTableResponse_capacitySpecification :: Lens.Lens' GetTableResponse (Prelude.Maybe CapacitySpecificationSummary)
getTableResponse_capacitySpecification = Lens.lens (\GetTableResponse' {capacitySpecification} -> capacitySpecification) (\s@GetTableResponse' {} a -> s {capacitySpecification = a} :: GetTableResponse)
-- | The the description of the specified table.
getTableResponse_comment :: Lens.Lens' GetTableResponse (Prelude.Maybe Comment)
getTableResponse_comment = Lens.lens (\GetTableResponse' {comment} -> comment) (\s@GetTableResponse' {} a -> s {comment = a} :: GetTableResponse)
-- | The creation timestamp of the specified table.
getTableResponse_creationTimestamp :: Lens.Lens' GetTableResponse (Prelude.Maybe Prelude.UTCTime)
getTableResponse_creationTimestamp = Lens.lens (\GetTableResponse' {creationTimestamp} -> creationTimestamp) (\s@GetTableResponse' {} a -> s {creationTimestamp = a} :: GetTableResponse) Prelude.. Lens.mapping Data._Time
-- | The default Time to Live settings of the specified table.
getTableResponse_defaultTimeToLive :: Lens.Lens' GetTableResponse (Prelude.Maybe Prelude.Natural)
getTableResponse_defaultTimeToLive = Lens.lens (\GetTableResponse' {defaultTimeToLive} -> defaultTimeToLive) (\s@GetTableResponse' {} a -> s {defaultTimeToLive = a} :: GetTableResponse)
-- | The encryption settings of the specified table.
getTableResponse_encryptionSpecification :: Lens.Lens' GetTableResponse (Prelude.Maybe EncryptionSpecification)
getTableResponse_encryptionSpecification = Lens.lens (\GetTableResponse' {encryptionSpecification} -> encryptionSpecification) (\s@GetTableResponse' {} a -> s {encryptionSpecification = a} :: GetTableResponse)
-- | The point-in-time recovery status of the specified table.
getTableResponse_pointInTimeRecovery :: Lens.Lens' GetTableResponse (Prelude.Maybe PointInTimeRecoverySummary)
getTableResponse_pointInTimeRecovery = Lens.lens (\GetTableResponse' {pointInTimeRecovery} -> pointInTimeRecovery) (\s@GetTableResponse' {} a -> s {pointInTimeRecovery = a} :: GetTableResponse)
-- | The schema definition of the specified table.
getTableResponse_schemaDefinition :: Lens.Lens' GetTableResponse (Prelude.Maybe SchemaDefinition)
getTableResponse_schemaDefinition = Lens.lens (\GetTableResponse' {schemaDefinition} -> schemaDefinition) (\s@GetTableResponse' {} a -> s {schemaDefinition = a} :: GetTableResponse)
-- | The current status of the specified table.
getTableResponse_status :: Lens.Lens' GetTableResponse (Prelude.Maybe TableStatus)
getTableResponse_status = Lens.lens (\GetTableResponse' {status} -> status) (\s@GetTableResponse' {} a -> s {status = a} :: GetTableResponse)
-- | The custom Time to Live settings of the specified table.
getTableResponse_ttl :: Lens.Lens' GetTableResponse (Prelude.Maybe TimeToLive)
getTableResponse_ttl = Lens.lens (\GetTableResponse' {ttl} -> ttl) (\s@GetTableResponse' {} a -> s {ttl = a} :: GetTableResponse)
-- | The response's http status code.
getTableResponse_httpStatus :: Lens.Lens' GetTableResponse Prelude.Int
getTableResponse_httpStatus = Lens.lens (\GetTableResponse' {httpStatus} -> httpStatus) (\s@GetTableResponse' {} a -> s {httpStatus = a} :: GetTableResponse)
-- | The name of the keyspace that the specified table is stored in.
getTableResponse_keyspaceName :: Lens.Lens' GetTableResponse Prelude.Text
getTableResponse_keyspaceName = Lens.lens (\GetTableResponse' {keyspaceName} -> keyspaceName) (\s@GetTableResponse' {} a -> s {keyspaceName = a} :: GetTableResponse)
-- | The name of the specified table.
getTableResponse_tableName :: Lens.Lens' GetTableResponse Prelude.Text
getTableResponse_tableName = Lens.lens (\GetTableResponse' {tableName} -> tableName) (\s@GetTableResponse' {} a -> s {tableName = a} :: GetTableResponse)
-- | The Amazon Resource Name (ARN) of the specified table.
getTableResponse_resourceArn :: Lens.Lens' GetTableResponse Prelude.Text
getTableResponse_resourceArn = Lens.lens (\GetTableResponse' {resourceArn} -> resourceArn) (\s@GetTableResponse' {} a -> s {resourceArn = a} :: GetTableResponse)
instance Prelude.NFData GetTableResponse where
rnf GetTableResponse' {..} =
Prelude.rnf capacitySpecification
`Prelude.seq` Prelude.rnf comment
`Prelude.seq` Prelude.rnf creationTimestamp
`Prelude.seq` Prelude.rnf defaultTimeToLive
`Prelude.seq` Prelude.rnf encryptionSpecification
`Prelude.seq` Prelude.rnf pointInTimeRecovery
`Prelude.seq` Prelude.rnf schemaDefinition
`Prelude.seq` Prelude.rnf status
`Prelude.seq` Prelude.rnf ttl
`Prelude.seq` Prelude.rnf httpStatus
`Prelude.seq` Prelude.rnf keyspaceName
`Prelude.seq` Prelude.rnf tableName
`Prelude.seq` Prelude.rnf resourceArn