{-# 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.UpdateAddressBook
(
UpdateAddressBook (..),
newUpdateAddressBook,
updateAddressBook_description,
updateAddressBook_name,
updateAddressBook_addressBookArn,
UpdateAddressBookResponse (..),
newUpdateAddressBookResponse,
updateAddressBookResponse_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 UpdateAddressBook = UpdateAddressBook'
{
UpdateAddressBook -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
UpdateAddressBook -> Maybe Text
name :: Prelude.Maybe Prelude.Text,
UpdateAddressBook -> Text
addressBookArn :: Prelude.Text
}
deriving (UpdateAddressBook -> UpdateAddressBook -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateAddressBook -> UpdateAddressBook -> Bool
$c/= :: UpdateAddressBook -> UpdateAddressBook -> Bool
== :: UpdateAddressBook -> UpdateAddressBook -> Bool
$c== :: UpdateAddressBook -> UpdateAddressBook -> Bool
Prelude.Eq, ReadPrec [UpdateAddressBook]
ReadPrec UpdateAddressBook
Int -> ReadS UpdateAddressBook
ReadS [UpdateAddressBook]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateAddressBook]
$creadListPrec :: ReadPrec [UpdateAddressBook]
readPrec :: ReadPrec UpdateAddressBook
$creadPrec :: ReadPrec UpdateAddressBook
readList :: ReadS [UpdateAddressBook]
$creadList :: ReadS [UpdateAddressBook]
readsPrec :: Int -> ReadS UpdateAddressBook
$creadsPrec :: Int -> ReadS UpdateAddressBook
Prelude.Read, Int -> UpdateAddressBook -> ShowS
[UpdateAddressBook] -> ShowS
UpdateAddressBook -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateAddressBook] -> ShowS
$cshowList :: [UpdateAddressBook] -> ShowS
show :: UpdateAddressBook -> String
$cshow :: UpdateAddressBook -> String
showsPrec :: Int -> UpdateAddressBook -> ShowS
$cshowsPrec :: Int -> UpdateAddressBook -> ShowS
Prelude.Show, forall x. Rep UpdateAddressBook x -> UpdateAddressBook
forall x. UpdateAddressBook -> Rep UpdateAddressBook x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep UpdateAddressBook x -> UpdateAddressBook
$cfrom :: forall x. UpdateAddressBook -> Rep UpdateAddressBook x
Prelude.Generic)
newUpdateAddressBook ::
Prelude.Text ->
UpdateAddressBook
newUpdateAddressBook :: Text -> UpdateAddressBook
newUpdateAddressBook Text
pAddressBookArn_ =
UpdateAddressBook'
{ $sel:description:UpdateAddressBook' :: Maybe Text
description = forall a. Maybe a
Prelude.Nothing,
$sel:name:UpdateAddressBook' :: Maybe Text
name = forall a. Maybe a
Prelude.Nothing,
$sel:addressBookArn:UpdateAddressBook' :: Text
addressBookArn = Text
pAddressBookArn_
}
updateAddressBook_description :: Lens.Lens' UpdateAddressBook (Prelude.Maybe Prelude.Text)
updateAddressBook_description :: Lens' UpdateAddressBook (Maybe Text)
updateAddressBook_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateAddressBook' {Maybe Text
description :: Maybe Text
$sel:description:UpdateAddressBook' :: UpdateAddressBook -> Maybe Text
description} -> Maybe Text
description) (\s :: UpdateAddressBook
s@UpdateAddressBook' {} Maybe Text
a -> UpdateAddressBook
s {$sel:description:UpdateAddressBook' :: Maybe Text
description = Maybe Text
a} :: UpdateAddressBook)
updateAddressBook_name :: Lens.Lens' UpdateAddressBook (Prelude.Maybe Prelude.Text)
updateAddressBook_name :: Lens' UpdateAddressBook (Maybe Text)
updateAddressBook_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateAddressBook' {Maybe Text
name :: Maybe Text
$sel:name:UpdateAddressBook' :: UpdateAddressBook -> Maybe Text
name} -> Maybe Text
name) (\s :: UpdateAddressBook
s@UpdateAddressBook' {} Maybe Text
a -> UpdateAddressBook
s {$sel:name:UpdateAddressBook' :: Maybe Text
name = Maybe Text
a} :: UpdateAddressBook)
updateAddressBook_addressBookArn :: Lens.Lens' UpdateAddressBook Prelude.Text
updateAddressBook_addressBookArn :: Lens' UpdateAddressBook Text
updateAddressBook_addressBookArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateAddressBook' {Text
addressBookArn :: Text
$sel:addressBookArn:UpdateAddressBook' :: UpdateAddressBook -> Text
addressBookArn} -> Text
addressBookArn) (\s :: UpdateAddressBook
s@UpdateAddressBook' {} Text
a -> UpdateAddressBook
s {$sel:addressBookArn:UpdateAddressBook' :: Text
addressBookArn = Text
a} :: UpdateAddressBook)
instance Core.AWSRequest UpdateAddressBook where
type
AWSResponse UpdateAddressBook =
UpdateAddressBookResponse
request :: (Service -> Service)
-> UpdateAddressBook -> Request UpdateAddressBook
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 UpdateAddressBook
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse UpdateAddressBook)))
response =
forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> () -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveEmpty
( \Int
s ResponseHeaders
h ()
x ->
Int -> UpdateAddressBookResponse
UpdateAddressBookResponse'
forall (f :: * -> *) a b. Functor 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 UpdateAddressBook where
hashWithSalt :: Int -> UpdateAddressBook -> Int
hashWithSalt Int
_salt UpdateAddressBook' {Maybe Text
Text
addressBookArn :: Text
name :: Maybe Text
description :: Maybe Text
$sel:addressBookArn:UpdateAddressBook' :: UpdateAddressBook -> Text
$sel:name:UpdateAddressBook' :: UpdateAddressBook -> Maybe Text
$sel:description:UpdateAddressBook' :: UpdateAddressBook -> Maybe Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
description
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
name
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
addressBookArn
instance Prelude.NFData UpdateAddressBook where
rnf :: UpdateAddressBook -> ()
rnf UpdateAddressBook' {Maybe Text
Text
addressBookArn :: Text
name :: Maybe Text
description :: Maybe Text
$sel:addressBookArn:UpdateAddressBook' :: UpdateAddressBook -> Text
$sel:name:UpdateAddressBook' :: UpdateAddressBook -> Maybe Text
$sel:description:UpdateAddressBook' :: UpdateAddressBook -> Maybe Text
..} =
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 Text
name
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
addressBookArn
instance Data.ToHeaders UpdateAddressBook where
toHeaders :: UpdateAddressBook -> 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.UpdateAddressBook" ::
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 UpdateAddressBook where
toJSON :: UpdateAddressBook -> Value
toJSON UpdateAddressBook' {Maybe Text
Text
addressBookArn :: Text
name :: Maybe Text
description :: Maybe Text
$sel:addressBookArn:UpdateAddressBook' :: UpdateAddressBook -> Text
$sel:name:UpdateAddressBook' :: UpdateAddressBook -> Maybe Text
$sel:description:UpdateAddressBook' :: UpdateAddressBook -> Maybe Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (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
"Name" 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
name,
forall a. a -> Maybe a
Prelude.Just
(Key
"AddressBookArn" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
addressBookArn)
]
)
instance Data.ToPath UpdateAddressBook where
toPath :: UpdateAddressBook -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery UpdateAddressBook where
toQuery :: UpdateAddressBook -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data UpdateAddressBookResponse = UpdateAddressBookResponse'
{
UpdateAddressBookResponse -> Int
httpStatus :: Prelude.Int
}
deriving (UpdateAddressBookResponse -> UpdateAddressBookResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateAddressBookResponse -> UpdateAddressBookResponse -> Bool
$c/= :: UpdateAddressBookResponse -> UpdateAddressBookResponse -> Bool
== :: UpdateAddressBookResponse -> UpdateAddressBookResponse -> Bool
$c== :: UpdateAddressBookResponse -> UpdateAddressBookResponse -> Bool
Prelude.Eq, ReadPrec [UpdateAddressBookResponse]
ReadPrec UpdateAddressBookResponse
Int -> ReadS UpdateAddressBookResponse
ReadS [UpdateAddressBookResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateAddressBookResponse]
$creadListPrec :: ReadPrec [UpdateAddressBookResponse]
readPrec :: ReadPrec UpdateAddressBookResponse
$creadPrec :: ReadPrec UpdateAddressBookResponse
readList :: ReadS [UpdateAddressBookResponse]
$creadList :: ReadS [UpdateAddressBookResponse]
readsPrec :: Int -> ReadS UpdateAddressBookResponse
$creadsPrec :: Int -> ReadS UpdateAddressBookResponse
Prelude.Read, Int -> UpdateAddressBookResponse -> ShowS
[UpdateAddressBookResponse] -> ShowS
UpdateAddressBookResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateAddressBookResponse] -> ShowS
$cshowList :: [UpdateAddressBookResponse] -> ShowS
show :: UpdateAddressBookResponse -> String
$cshow :: UpdateAddressBookResponse -> String
showsPrec :: Int -> UpdateAddressBookResponse -> ShowS
$cshowsPrec :: Int -> UpdateAddressBookResponse -> ShowS
Prelude.Show, forall x.
Rep UpdateAddressBookResponse x -> UpdateAddressBookResponse
forall x.
UpdateAddressBookResponse -> Rep UpdateAddressBookResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep UpdateAddressBookResponse x -> UpdateAddressBookResponse
$cfrom :: forall x.
UpdateAddressBookResponse -> Rep UpdateAddressBookResponse x
Prelude.Generic)
newUpdateAddressBookResponse ::
Prelude.Int ->
UpdateAddressBookResponse
newUpdateAddressBookResponse :: Int -> UpdateAddressBookResponse
newUpdateAddressBookResponse Int
pHttpStatus_ =
UpdateAddressBookResponse'
{ $sel:httpStatus:UpdateAddressBookResponse' :: Int
httpStatus =
Int
pHttpStatus_
}
updateAddressBookResponse_httpStatus :: Lens.Lens' UpdateAddressBookResponse Prelude.Int
updateAddressBookResponse_httpStatus :: Lens' UpdateAddressBookResponse Int
updateAddressBookResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateAddressBookResponse' {Int
httpStatus :: Int
$sel:httpStatus:UpdateAddressBookResponse' :: UpdateAddressBookResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: UpdateAddressBookResponse
s@UpdateAddressBookResponse' {} Int
a -> UpdateAddressBookResponse
s {$sel:httpStatus:UpdateAddressBookResponse' :: Int
httpStatus = Int
a} :: UpdateAddressBookResponse)
instance Prelude.NFData UpdateAddressBookResponse where
rnf :: UpdateAddressBookResponse -> ()
rnf UpdateAddressBookResponse' {Int
httpStatus :: Int
$sel:httpStatus:UpdateAddressBookResponse' :: UpdateAddressBookResponse -> Int
..} =
forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus