{-# 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.TimeStreamWrite.CreateDatabase
(
CreateDatabase (..),
newCreateDatabase,
createDatabase_kmsKeyId,
createDatabase_tags,
createDatabase_databaseName,
CreateDatabaseResponse (..),
newCreateDatabaseResponse,
createDatabaseResponse_database,
createDatabaseResponse_httpStatus,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
import Amazonka.TimeStreamWrite.Types
data CreateDatabase = CreateDatabase'
{
CreateDatabase -> Maybe Text
kmsKeyId :: Prelude.Maybe Prelude.Text,
CreateDatabase -> Maybe [Tag]
tags :: Prelude.Maybe [Tag],
CreateDatabase -> Text
databaseName :: Prelude.Text
}
deriving (CreateDatabase -> CreateDatabase -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateDatabase -> CreateDatabase -> Bool
$c/= :: CreateDatabase -> CreateDatabase -> Bool
== :: CreateDatabase -> CreateDatabase -> Bool
$c== :: CreateDatabase -> CreateDatabase -> Bool
Prelude.Eq, ReadPrec [CreateDatabase]
ReadPrec CreateDatabase
Int -> ReadS CreateDatabase
ReadS [CreateDatabase]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateDatabase]
$creadListPrec :: ReadPrec [CreateDatabase]
readPrec :: ReadPrec CreateDatabase
$creadPrec :: ReadPrec CreateDatabase
readList :: ReadS [CreateDatabase]
$creadList :: ReadS [CreateDatabase]
readsPrec :: Int -> ReadS CreateDatabase
$creadsPrec :: Int -> ReadS CreateDatabase
Prelude.Read, Int -> CreateDatabase -> ShowS
[CreateDatabase] -> ShowS
CreateDatabase -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateDatabase] -> ShowS
$cshowList :: [CreateDatabase] -> ShowS
show :: CreateDatabase -> String
$cshow :: CreateDatabase -> String
showsPrec :: Int -> CreateDatabase -> ShowS
$cshowsPrec :: Int -> CreateDatabase -> ShowS
Prelude.Show, forall x. Rep CreateDatabase x -> CreateDatabase
forall x. CreateDatabase -> Rep CreateDatabase x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateDatabase x -> CreateDatabase
$cfrom :: forall x. CreateDatabase -> Rep CreateDatabase x
Prelude.Generic)
newCreateDatabase ::
Prelude.Text ->
CreateDatabase
newCreateDatabase :: Text -> CreateDatabase
newCreateDatabase Text
pDatabaseName_ =
CreateDatabase'
{ $sel:kmsKeyId:CreateDatabase' :: Maybe Text
kmsKeyId = forall a. Maybe a
Prelude.Nothing,
$sel:tags:CreateDatabase' :: Maybe [Tag]
tags = forall a. Maybe a
Prelude.Nothing,
$sel:databaseName:CreateDatabase' :: Text
databaseName = Text
pDatabaseName_
}
createDatabase_kmsKeyId :: Lens.Lens' CreateDatabase (Prelude.Maybe Prelude.Text)
createDatabase_kmsKeyId :: Lens' CreateDatabase (Maybe Text)
createDatabase_kmsKeyId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateDatabase' {Maybe Text
kmsKeyId :: Maybe Text
$sel:kmsKeyId:CreateDatabase' :: CreateDatabase -> Maybe Text
kmsKeyId} -> Maybe Text
kmsKeyId) (\s :: CreateDatabase
s@CreateDatabase' {} Maybe Text
a -> CreateDatabase
s {$sel:kmsKeyId:CreateDatabase' :: Maybe Text
kmsKeyId = Maybe Text
a} :: CreateDatabase)
createDatabase_tags :: Lens.Lens' CreateDatabase (Prelude.Maybe [Tag])
createDatabase_tags :: Lens' CreateDatabase (Maybe [Tag])
createDatabase_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateDatabase' {Maybe [Tag]
tags :: Maybe [Tag]
$sel:tags:CreateDatabase' :: CreateDatabase -> Maybe [Tag]
tags} -> Maybe [Tag]
tags) (\s :: CreateDatabase
s@CreateDatabase' {} Maybe [Tag]
a -> CreateDatabase
s {$sel:tags:CreateDatabase' :: Maybe [Tag]
tags = Maybe [Tag]
a} :: CreateDatabase) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. 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 forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced
createDatabase_databaseName :: Lens.Lens' CreateDatabase Prelude.Text
createDatabase_databaseName :: Lens' CreateDatabase Text
createDatabase_databaseName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateDatabase' {Text
databaseName :: Text
$sel:databaseName:CreateDatabase' :: CreateDatabase -> Text
databaseName} -> Text
databaseName) (\s :: CreateDatabase
s@CreateDatabase' {} Text
a -> CreateDatabase
s {$sel:databaseName:CreateDatabase' :: Text
databaseName = Text
a} :: CreateDatabase)
instance Core.AWSRequest CreateDatabase where
type
AWSResponse CreateDatabase =
CreateDatabaseResponse
request :: (Service -> Service) -> CreateDatabase -> Request CreateDatabase
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 CreateDatabase
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse CreateDatabase)))
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 Database -> Int -> CreateDatabaseResponse
CreateDatabaseResponse'
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
"Database")
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 CreateDatabase where
hashWithSalt :: Int -> CreateDatabase -> Int
hashWithSalt Int
_salt CreateDatabase' {Maybe [Tag]
Maybe Text
Text
databaseName :: Text
tags :: Maybe [Tag]
kmsKeyId :: Maybe Text
$sel:databaseName:CreateDatabase' :: CreateDatabase -> Text
$sel:tags:CreateDatabase' :: CreateDatabase -> Maybe [Tag]
$sel:kmsKeyId:CreateDatabase' :: CreateDatabase -> Maybe Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
kmsKeyId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Tag]
tags
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
databaseName
instance Prelude.NFData CreateDatabase where
rnf :: CreateDatabase -> ()
rnf CreateDatabase' {Maybe [Tag]
Maybe Text
Text
databaseName :: Text
tags :: Maybe [Tag]
kmsKeyId :: Maybe Text
$sel:databaseName:CreateDatabase' :: CreateDatabase -> Text
$sel:tags:CreateDatabase' :: CreateDatabase -> Maybe [Tag]
$sel:kmsKeyId:CreateDatabase' :: CreateDatabase -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
kmsKeyId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Tag]
tags
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
databaseName
instance Data.ToHeaders CreateDatabase where
toHeaders :: CreateDatabase -> 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
"Timestream_20181101.CreateDatabase" ::
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 CreateDatabase where
toJSON :: CreateDatabase -> Value
toJSON CreateDatabase' {Maybe [Tag]
Maybe Text
Text
databaseName :: Text
tags :: Maybe [Tag]
kmsKeyId :: Maybe Text
$sel:databaseName:CreateDatabase' :: CreateDatabase -> Text
$sel:tags:CreateDatabase' :: CreateDatabase -> Maybe [Tag]
$sel:kmsKeyId:CreateDatabase' :: CreateDatabase -> Maybe Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"KmsKeyId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
kmsKeyId,
(Key
"Tags" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [Tag]
tags,
forall a. a -> Maybe a
Prelude.Just (Key
"DatabaseName" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
databaseName)
]
)
instance Data.ToPath CreateDatabase where
toPath :: CreateDatabase -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery CreateDatabase where
toQuery :: CreateDatabase -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data CreateDatabaseResponse = CreateDatabaseResponse'
{
CreateDatabaseResponse -> Maybe Database
database :: Prelude.Maybe Database,
CreateDatabaseResponse -> Int
httpStatus :: Prelude.Int
}
deriving (CreateDatabaseResponse -> CreateDatabaseResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateDatabaseResponse -> CreateDatabaseResponse -> Bool
$c/= :: CreateDatabaseResponse -> CreateDatabaseResponse -> Bool
== :: CreateDatabaseResponse -> CreateDatabaseResponse -> Bool
$c== :: CreateDatabaseResponse -> CreateDatabaseResponse -> Bool
Prelude.Eq, ReadPrec [CreateDatabaseResponse]
ReadPrec CreateDatabaseResponse
Int -> ReadS CreateDatabaseResponse
ReadS [CreateDatabaseResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateDatabaseResponse]
$creadListPrec :: ReadPrec [CreateDatabaseResponse]
readPrec :: ReadPrec CreateDatabaseResponse
$creadPrec :: ReadPrec CreateDatabaseResponse
readList :: ReadS [CreateDatabaseResponse]
$creadList :: ReadS [CreateDatabaseResponse]
readsPrec :: Int -> ReadS CreateDatabaseResponse
$creadsPrec :: Int -> ReadS CreateDatabaseResponse
Prelude.Read, Int -> CreateDatabaseResponse -> ShowS
[CreateDatabaseResponse] -> ShowS
CreateDatabaseResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateDatabaseResponse] -> ShowS
$cshowList :: [CreateDatabaseResponse] -> ShowS
show :: CreateDatabaseResponse -> String
$cshow :: CreateDatabaseResponse -> String
showsPrec :: Int -> CreateDatabaseResponse -> ShowS
$cshowsPrec :: Int -> CreateDatabaseResponse -> ShowS
Prelude.Show, forall x. Rep CreateDatabaseResponse x -> CreateDatabaseResponse
forall x. CreateDatabaseResponse -> Rep CreateDatabaseResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateDatabaseResponse x -> CreateDatabaseResponse
$cfrom :: forall x. CreateDatabaseResponse -> Rep CreateDatabaseResponse x
Prelude.Generic)
newCreateDatabaseResponse ::
Prelude.Int ->
CreateDatabaseResponse
newCreateDatabaseResponse :: Int -> CreateDatabaseResponse
newCreateDatabaseResponse Int
pHttpStatus_ =
CreateDatabaseResponse'
{ $sel:database:CreateDatabaseResponse' :: Maybe Database
database = forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:CreateDatabaseResponse' :: Int
httpStatus = Int
pHttpStatus_
}
createDatabaseResponse_database :: Lens.Lens' CreateDatabaseResponse (Prelude.Maybe Database)
createDatabaseResponse_database :: Lens' CreateDatabaseResponse (Maybe Database)
createDatabaseResponse_database = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateDatabaseResponse' {Maybe Database
database :: Maybe Database
$sel:database:CreateDatabaseResponse' :: CreateDatabaseResponse -> Maybe Database
database} -> Maybe Database
database) (\s :: CreateDatabaseResponse
s@CreateDatabaseResponse' {} Maybe Database
a -> CreateDatabaseResponse
s {$sel:database:CreateDatabaseResponse' :: Maybe Database
database = Maybe Database
a} :: CreateDatabaseResponse)
createDatabaseResponse_httpStatus :: Lens.Lens' CreateDatabaseResponse Prelude.Int
createDatabaseResponse_httpStatus :: Lens' CreateDatabaseResponse Int
createDatabaseResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateDatabaseResponse' {Int
httpStatus :: Int
$sel:httpStatus:CreateDatabaseResponse' :: CreateDatabaseResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: CreateDatabaseResponse
s@CreateDatabaseResponse' {} Int
a -> CreateDatabaseResponse
s {$sel:httpStatus:CreateDatabaseResponse' :: Int
httpStatus = Int
a} :: CreateDatabaseResponse)
instance Prelude.NFData CreateDatabaseResponse where
rnf :: CreateDatabaseResponse -> ()
rnf CreateDatabaseResponse' {Int
Maybe Database
httpStatus :: Int
database :: Maybe Database
$sel:httpStatus:CreateDatabaseResponse' :: CreateDatabaseResponse -> Int
$sel:database:CreateDatabaseResponse' :: CreateDatabaseResponse -> Maybe Database
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Database
database
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus