{-# 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.AlexaBusiness.CreateAddressBook
(
CreateAddressBook (..),
newCreateAddressBook,
createAddressBook_clientRequestToken,
createAddressBook_description,
createAddressBook_tags,
createAddressBook_name,
CreateAddressBookResponse (..),
newCreateAddressBookResponse,
createAddressBookResponse_addressBookArn,
createAddressBookResponse_httpStatus,
)
where
import Amazonka.AlexaBusiness.Types
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
data CreateAddressBook = CreateAddressBook'
{
CreateAddressBook -> Maybe Text
clientRequestToken :: Prelude.Maybe Prelude.Text,
CreateAddressBook -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
CreateAddressBook -> Maybe [Tag]
tags :: Prelude.Maybe [Tag],
CreateAddressBook -> Text
name :: Prelude.Text
}
deriving (CreateAddressBook -> CreateAddressBook -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateAddressBook -> CreateAddressBook -> Bool
$c/= :: CreateAddressBook -> CreateAddressBook -> Bool
== :: CreateAddressBook -> CreateAddressBook -> Bool
$c== :: CreateAddressBook -> CreateAddressBook -> Bool
Prelude.Eq, ReadPrec [CreateAddressBook]
ReadPrec CreateAddressBook
Int -> ReadS CreateAddressBook
ReadS [CreateAddressBook]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateAddressBook]
$creadListPrec :: ReadPrec [CreateAddressBook]
readPrec :: ReadPrec CreateAddressBook
$creadPrec :: ReadPrec CreateAddressBook
readList :: ReadS [CreateAddressBook]
$creadList :: ReadS [CreateAddressBook]
readsPrec :: Int -> ReadS CreateAddressBook
$creadsPrec :: Int -> ReadS CreateAddressBook
Prelude.Read, Int -> CreateAddressBook -> ShowS
[CreateAddressBook] -> ShowS
CreateAddressBook -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateAddressBook] -> ShowS
$cshowList :: [CreateAddressBook] -> ShowS
show :: CreateAddressBook -> String
$cshow :: CreateAddressBook -> String
showsPrec :: Int -> CreateAddressBook -> ShowS
$cshowsPrec :: Int -> CreateAddressBook -> ShowS
Prelude.Show, forall x. Rep CreateAddressBook x -> CreateAddressBook
forall x. CreateAddressBook -> Rep CreateAddressBook x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateAddressBook x -> CreateAddressBook
$cfrom :: forall x. CreateAddressBook -> Rep CreateAddressBook x
Prelude.Generic)
newCreateAddressBook ::
Prelude.Text ->
CreateAddressBook
newCreateAddressBook :: Text -> CreateAddressBook
newCreateAddressBook Text
pName_ =
CreateAddressBook'
{ $sel:clientRequestToken:CreateAddressBook' :: Maybe Text
clientRequestToken =
forall a. Maybe a
Prelude.Nothing,
$sel:description:CreateAddressBook' :: Maybe Text
description = forall a. Maybe a
Prelude.Nothing,
$sel:tags:CreateAddressBook' :: Maybe [Tag]
tags = forall a. Maybe a
Prelude.Nothing,
$sel:name:CreateAddressBook' :: Text
name = Text
pName_
}
createAddressBook_clientRequestToken :: Lens.Lens' CreateAddressBook (Prelude.Maybe Prelude.Text)
createAddressBook_clientRequestToken :: Lens' CreateAddressBook (Maybe Text)
createAddressBook_clientRequestToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateAddressBook' {Maybe Text
clientRequestToken :: Maybe Text
$sel:clientRequestToken:CreateAddressBook' :: CreateAddressBook -> Maybe Text
clientRequestToken} -> Maybe Text
clientRequestToken) (\s :: CreateAddressBook
s@CreateAddressBook' {} Maybe Text
a -> CreateAddressBook
s {$sel:clientRequestToken:CreateAddressBook' :: Maybe Text
clientRequestToken = Maybe Text
a} :: CreateAddressBook)
createAddressBook_description :: Lens.Lens' CreateAddressBook (Prelude.Maybe Prelude.Text)
createAddressBook_description :: Lens' CreateAddressBook (Maybe Text)
createAddressBook_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateAddressBook' {Maybe Text
description :: Maybe Text
$sel:description:CreateAddressBook' :: CreateAddressBook -> Maybe Text
description} -> Maybe Text
description) (\s :: CreateAddressBook
s@CreateAddressBook' {} Maybe Text
a -> CreateAddressBook
s {$sel:description:CreateAddressBook' :: Maybe Text
description = Maybe Text
a} :: CreateAddressBook)
createAddressBook_tags :: Lens.Lens' CreateAddressBook (Prelude.Maybe [Tag])
createAddressBook_tags :: Lens' CreateAddressBook (Maybe [Tag])
createAddressBook_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateAddressBook' {Maybe [Tag]
tags :: Maybe [Tag]
$sel:tags:CreateAddressBook' :: CreateAddressBook -> Maybe [Tag]
tags} -> Maybe [Tag]
tags) (\s :: CreateAddressBook
s@CreateAddressBook' {} Maybe [Tag]
a -> CreateAddressBook
s {$sel:tags:CreateAddressBook' :: Maybe [Tag]
tags = Maybe [Tag]
a} :: CreateAddressBook) 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
createAddressBook_name :: Lens.Lens' CreateAddressBook Prelude.Text
createAddressBook_name :: Lens' CreateAddressBook Text
createAddressBook_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateAddressBook' {Text
name :: Text
$sel:name:CreateAddressBook' :: CreateAddressBook -> Text
name} -> Text
name) (\s :: CreateAddressBook
s@CreateAddressBook' {} Text
a -> CreateAddressBook
s {$sel:name:CreateAddressBook' :: Text
name = Text
a} :: CreateAddressBook)
instance Core.AWSRequest CreateAddressBook where
type
AWSResponse CreateAddressBook =
CreateAddressBookResponse
request :: (Service -> Service)
-> CreateAddressBook -> Request CreateAddressBook
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 CreateAddressBook
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse CreateAddressBook)))
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 Text -> Int -> CreateAddressBookResponse
CreateAddressBookResponse'
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
"AddressBookArn")
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 CreateAddressBook where
hashWithSalt :: Int -> CreateAddressBook -> Int
hashWithSalt Int
_salt CreateAddressBook' {Maybe [Tag]
Maybe Text
Text
name :: Text
tags :: Maybe [Tag]
description :: Maybe Text
clientRequestToken :: Maybe Text
$sel:name:CreateAddressBook' :: CreateAddressBook -> Text
$sel:tags:CreateAddressBook' :: CreateAddressBook -> Maybe [Tag]
$sel:description:CreateAddressBook' :: CreateAddressBook -> Maybe Text
$sel:clientRequestToken:CreateAddressBook' :: CreateAddressBook -> Maybe Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
clientRequestToken
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
description
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Tag]
tags
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
name
instance Prelude.NFData CreateAddressBook where
rnf :: CreateAddressBook -> ()
rnf CreateAddressBook' {Maybe [Tag]
Maybe Text
Text
name :: Text
tags :: Maybe [Tag]
description :: Maybe Text
clientRequestToken :: Maybe Text
$sel:name:CreateAddressBook' :: CreateAddressBook -> Text
$sel:tags:CreateAddressBook' :: CreateAddressBook -> Maybe [Tag]
$sel:description:CreateAddressBook' :: CreateAddressBook -> Maybe Text
$sel:clientRequestToken:CreateAddressBook' :: CreateAddressBook -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
clientRequestToken
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
description
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
name
instance Data.ToHeaders CreateAddressBook where
toHeaders :: CreateAddressBook -> 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
"AlexaForBusiness.CreateAddressBook" ::
Prelude.ByteString
),
HeaderName
"Content-Type"
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
Prelude.ByteString
)
]
)
instance Data.ToJSON CreateAddressBook where
toJSON :: CreateAddressBook -> Value
toJSON CreateAddressBook' {Maybe [Tag]
Maybe Text
Text
name :: Text
tags :: Maybe [Tag]
description :: Maybe Text
clientRequestToken :: Maybe Text
$sel:name:CreateAddressBook' :: CreateAddressBook -> Text
$sel:tags:CreateAddressBook' :: CreateAddressBook -> Maybe [Tag]
$sel:description:CreateAddressBook' :: CreateAddressBook -> Maybe Text
$sel:clientRequestToken:CreateAddressBook' :: CreateAddressBook -> Maybe Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"ClientRequestToken" 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
clientRequestToken,
(Key
"Description" 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
description,
(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
"Name" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
name)
]
)
instance Data.ToPath CreateAddressBook where
toPath :: CreateAddressBook -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery CreateAddressBook where
toQuery :: CreateAddressBook -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data CreateAddressBookResponse = CreateAddressBookResponse'
{
CreateAddressBookResponse -> Maybe Text
addressBookArn :: Prelude.Maybe Prelude.Text,
CreateAddressBookResponse -> Int
httpStatus :: Prelude.Int
}
deriving (CreateAddressBookResponse -> CreateAddressBookResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateAddressBookResponse -> CreateAddressBookResponse -> Bool
$c/= :: CreateAddressBookResponse -> CreateAddressBookResponse -> Bool
== :: CreateAddressBookResponse -> CreateAddressBookResponse -> Bool
$c== :: CreateAddressBookResponse -> CreateAddressBookResponse -> Bool
Prelude.Eq, ReadPrec [CreateAddressBookResponse]
ReadPrec CreateAddressBookResponse
Int -> ReadS CreateAddressBookResponse
ReadS [CreateAddressBookResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateAddressBookResponse]
$creadListPrec :: ReadPrec [CreateAddressBookResponse]
readPrec :: ReadPrec CreateAddressBookResponse
$creadPrec :: ReadPrec CreateAddressBookResponse
readList :: ReadS [CreateAddressBookResponse]
$creadList :: ReadS [CreateAddressBookResponse]
readsPrec :: Int -> ReadS CreateAddressBookResponse
$creadsPrec :: Int -> ReadS CreateAddressBookResponse
Prelude.Read, Int -> CreateAddressBookResponse -> ShowS
[CreateAddressBookResponse] -> ShowS
CreateAddressBookResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateAddressBookResponse] -> ShowS
$cshowList :: [CreateAddressBookResponse] -> ShowS
show :: CreateAddressBookResponse -> String
$cshow :: CreateAddressBookResponse -> String
showsPrec :: Int -> CreateAddressBookResponse -> ShowS
$cshowsPrec :: Int -> CreateAddressBookResponse -> ShowS
Prelude.Show, forall x.
Rep CreateAddressBookResponse x -> CreateAddressBookResponse
forall x.
CreateAddressBookResponse -> Rep CreateAddressBookResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep CreateAddressBookResponse x -> CreateAddressBookResponse
$cfrom :: forall x.
CreateAddressBookResponse -> Rep CreateAddressBookResponse x
Prelude.Generic)
newCreateAddressBookResponse ::
Prelude.Int ->
CreateAddressBookResponse
newCreateAddressBookResponse :: Int -> CreateAddressBookResponse
newCreateAddressBookResponse Int
pHttpStatus_ =
CreateAddressBookResponse'
{ $sel:addressBookArn:CreateAddressBookResponse' :: Maybe Text
addressBookArn =
forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:CreateAddressBookResponse' :: Int
httpStatus = Int
pHttpStatus_
}
createAddressBookResponse_addressBookArn :: Lens.Lens' CreateAddressBookResponse (Prelude.Maybe Prelude.Text)
createAddressBookResponse_addressBookArn :: Lens' CreateAddressBookResponse (Maybe Text)
createAddressBookResponse_addressBookArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateAddressBookResponse' {Maybe Text
addressBookArn :: Maybe Text
$sel:addressBookArn:CreateAddressBookResponse' :: CreateAddressBookResponse -> Maybe Text
addressBookArn} -> Maybe Text
addressBookArn) (\s :: CreateAddressBookResponse
s@CreateAddressBookResponse' {} Maybe Text
a -> CreateAddressBookResponse
s {$sel:addressBookArn:CreateAddressBookResponse' :: Maybe Text
addressBookArn = Maybe Text
a} :: CreateAddressBookResponse)
createAddressBookResponse_httpStatus :: Lens.Lens' CreateAddressBookResponse Prelude.Int
createAddressBookResponse_httpStatus :: Lens' CreateAddressBookResponse Int
createAddressBookResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateAddressBookResponse' {Int
httpStatus :: Int
$sel:httpStatus:CreateAddressBookResponse' :: CreateAddressBookResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: CreateAddressBookResponse
s@CreateAddressBookResponse' {} Int
a -> CreateAddressBookResponse
s {$sel:httpStatus:CreateAddressBookResponse' :: Int
httpStatus = Int
a} :: CreateAddressBookResponse)
instance Prelude.NFData CreateAddressBookResponse where
rnf :: CreateAddressBookResponse -> ()
rnf CreateAddressBookResponse' {Int
Maybe Text
httpStatus :: Int
addressBookArn :: Maybe Text
$sel:httpStatus:CreateAddressBookResponse' :: CreateAddressBookResponse -> Int
$sel:addressBookArn:CreateAddressBookResponse' :: CreateAddressBookResponse -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
addressBookArn
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus