{-# 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 #-}
module Amazonka.DynamoDB.DescribeTable
(
DescribeTable (..),
newDescribeTable,
describeTable_tableName,
DescribeTableResponse (..),
newDescribeTableResponse,
describeTableResponse_table,
describeTableResponse_httpStatus,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.DynamoDB.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data DescribeTable = DescribeTable'
{
DescribeTable -> Text
tableName :: Prelude.Text
}
deriving (DescribeTable -> DescribeTable -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeTable -> DescribeTable -> Bool
$c/= :: DescribeTable -> DescribeTable -> Bool
== :: DescribeTable -> DescribeTable -> Bool
$c== :: DescribeTable -> DescribeTable -> Bool
Prelude.Eq, ReadPrec [DescribeTable]
ReadPrec DescribeTable
Int -> ReadS DescribeTable
ReadS [DescribeTable]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeTable]
$creadListPrec :: ReadPrec [DescribeTable]
readPrec :: ReadPrec DescribeTable
$creadPrec :: ReadPrec DescribeTable
readList :: ReadS [DescribeTable]
$creadList :: ReadS [DescribeTable]
readsPrec :: Int -> ReadS DescribeTable
$creadsPrec :: Int -> ReadS DescribeTable
Prelude.Read, Int -> DescribeTable -> ShowS
[DescribeTable] -> ShowS
DescribeTable -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeTable] -> ShowS
$cshowList :: [DescribeTable] -> ShowS
show :: DescribeTable -> String
$cshow :: DescribeTable -> String
showsPrec :: Int -> DescribeTable -> ShowS
$cshowsPrec :: Int -> DescribeTable -> ShowS
Prelude.Show, forall x. Rep DescribeTable x -> DescribeTable
forall x. DescribeTable -> Rep DescribeTable x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribeTable x -> DescribeTable
$cfrom :: forall x. DescribeTable -> Rep DescribeTable x
Prelude.Generic)
newDescribeTable ::
Prelude.Text ->
DescribeTable
newDescribeTable :: Text -> DescribeTable
newDescribeTable Text
pTableName_ =
DescribeTable' {$sel:tableName:DescribeTable' :: Text
tableName = Text
pTableName_}
describeTable_tableName :: Lens.Lens' DescribeTable Prelude.Text
describeTable_tableName :: Lens' DescribeTable Text
describeTable_tableName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTable' {Text
tableName :: Text
$sel:tableName:DescribeTable' :: DescribeTable -> Text
tableName} -> Text
tableName) (\s :: DescribeTable
s@DescribeTable' {} Text
a -> DescribeTable
s {$sel:tableName:DescribeTable' :: Text
tableName = Text
a} :: DescribeTable)
instance Core.AWSRequest DescribeTable where
type
AWSResponse DescribeTable =
DescribeTableResponse
request :: (Service -> Service) -> DescribeTable -> Request DescribeTable
request Service -> Service
overrides =
forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON (Service -> Service
overrides Service
defaultService)
response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy DescribeTable
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse DescribeTable)))
response =
forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
( \Int
s ResponseHeaders
h Object
x ->
Maybe TableDescription -> Int -> DescribeTableResponse
DescribeTableResponse'
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"Table")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
)
instance Prelude.Hashable DescribeTable where
hashWithSalt :: Int -> DescribeTable -> Int
hashWithSalt Int
_salt DescribeTable' {Text
tableName :: Text
$sel:tableName:DescribeTable' :: DescribeTable -> Text
..} =
Int
_salt forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
tableName
instance Prelude.NFData DescribeTable where
rnf :: DescribeTable -> ()
rnf DescribeTable' {Text
tableName :: Text
$sel:tableName:DescribeTable' :: DescribeTable -> Text
..} = forall a. NFData a => a -> ()
Prelude.rnf Text
tableName
instance Data.ToHeaders DescribeTable where
toHeaders :: DescribeTable -> ResponseHeaders
toHeaders =
forall a b. a -> b -> a
Prelude.const
( forall a. Monoid a => [a] -> a
Prelude.mconcat
[ HeaderName
"X-Amz-Target"
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"DynamoDB_20120810.DescribeTable" ::
Prelude.ByteString
),
HeaderName
"Content-Type"
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.0" ::
Prelude.ByteString
)
]
)
instance Data.ToJSON DescribeTable where
toJSON :: DescribeTable -> Value
toJSON DescribeTable' {Text
tableName :: Text
$sel:tableName:DescribeTable' :: DescribeTable -> Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[forall a. a -> Maybe a
Prelude.Just (Key
"TableName" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
tableName)]
)
instance Data.ToPath DescribeTable where
toPath :: DescribeTable -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery DescribeTable where
toQuery :: DescribeTable -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data DescribeTableResponse = DescribeTableResponse'
{
DescribeTableResponse -> Maybe TableDescription
table :: Prelude.Maybe TableDescription,
DescribeTableResponse -> Int
httpStatus :: Prelude.Int
}
deriving (DescribeTableResponse -> DescribeTableResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeTableResponse -> DescribeTableResponse -> Bool
$c/= :: DescribeTableResponse -> DescribeTableResponse -> Bool
== :: DescribeTableResponse -> DescribeTableResponse -> Bool
$c== :: DescribeTableResponse -> DescribeTableResponse -> Bool
Prelude.Eq, ReadPrec [DescribeTableResponse]
ReadPrec DescribeTableResponse
Int -> ReadS DescribeTableResponse
ReadS [DescribeTableResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeTableResponse]
$creadListPrec :: ReadPrec [DescribeTableResponse]
readPrec :: ReadPrec DescribeTableResponse
$creadPrec :: ReadPrec DescribeTableResponse
readList :: ReadS [DescribeTableResponse]
$creadList :: ReadS [DescribeTableResponse]
readsPrec :: Int -> ReadS DescribeTableResponse
$creadsPrec :: Int -> ReadS DescribeTableResponse
Prelude.Read, Int -> DescribeTableResponse -> ShowS
[DescribeTableResponse] -> ShowS
DescribeTableResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeTableResponse] -> ShowS
$cshowList :: [DescribeTableResponse] -> ShowS
show :: DescribeTableResponse -> String
$cshow :: DescribeTableResponse -> String
showsPrec :: Int -> DescribeTableResponse -> ShowS
$cshowsPrec :: Int -> DescribeTableResponse -> ShowS
Prelude.Show, forall x. Rep DescribeTableResponse x -> DescribeTableResponse
forall x. DescribeTableResponse -> Rep DescribeTableResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribeTableResponse x -> DescribeTableResponse
$cfrom :: forall x. DescribeTableResponse -> Rep DescribeTableResponse x
Prelude.Generic)
newDescribeTableResponse ::
Prelude.Int ->
DescribeTableResponse
newDescribeTableResponse :: Int -> DescribeTableResponse
newDescribeTableResponse Int
pHttpStatus_ =
DescribeTableResponse'
{ $sel:table:DescribeTableResponse' :: Maybe TableDescription
table = forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:DescribeTableResponse' :: Int
httpStatus = Int
pHttpStatus_
}
describeTableResponse_table :: Lens.Lens' DescribeTableResponse (Prelude.Maybe TableDescription)
describeTableResponse_table :: Lens' DescribeTableResponse (Maybe TableDescription)
describeTableResponse_table = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTableResponse' {Maybe TableDescription
table :: Maybe TableDescription
$sel:table:DescribeTableResponse' :: DescribeTableResponse -> Maybe TableDescription
table} -> Maybe TableDescription
table) (\s :: DescribeTableResponse
s@DescribeTableResponse' {} Maybe TableDescription
a -> DescribeTableResponse
s {$sel:table:DescribeTableResponse' :: Maybe TableDescription
table = Maybe TableDescription
a} :: DescribeTableResponse)
describeTableResponse_httpStatus :: Lens.Lens' DescribeTableResponse Prelude.Int
describeTableResponse_httpStatus :: Lens' DescribeTableResponse Int
describeTableResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTableResponse' {Int
httpStatus :: Int
$sel:httpStatus:DescribeTableResponse' :: DescribeTableResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: DescribeTableResponse
s@DescribeTableResponse' {} Int
a -> DescribeTableResponse
s {$sel:httpStatus:DescribeTableResponse' :: Int
httpStatus = Int
a} :: DescribeTableResponse)
instance Prelude.NFData DescribeTableResponse where
rnf :: DescribeTableResponse -> ()
rnf DescribeTableResponse' {Int
Maybe TableDescription
httpStatus :: Int
table :: Maybe TableDescription
$sel:httpStatus:DescribeTableResponse' :: DescribeTableResponse -> Int
$sel:table:DescribeTableResponse' :: DescribeTableResponse -> Maybe TableDescription
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe TableDescription
table
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus