{-# 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.GetAddressBook
(
GetAddressBook (..),
newGetAddressBook,
getAddressBook_addressBookArn,
GetAddressBookResponse (..),
newGetAddressBookResponse,
getAddressBookResponse_addressBook,
getAddressBookResponse_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 GetAddressBook = GetAddressBook'
{
GetAddressBook -> Text
addressBookArn :: Prelude.Text
}
deriving (GetAddressBook -> GetAddressBook -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetAddressBook -> GetAddressBook -> Bool
$c/= :: GetAddressBook -> GetAddressBook -> Bool
== :: GetAddressBook -> GetAddressBook -> Bool
$c== :: GetAddressBook -> GetAddressBook -> Bool
Prelude.Eq, ReadPrec [GetAddressBook]
ReadPrec GetAddressBook
Int -> ReadS GetAddressBook
ReadS [GetAddressBook]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetAddressBook]
$creadListPrec :: ReadPrec [GetAddressBook]
readPrec :: ReadPrec GetAddressBook
$creadPrec :: ReadPrec GetAddressBook
readList :: ReadS [GetAddressBook]
$creadList :: ReadS [GetAddressBook]
readsPrec :: Int -> ReadS GetAddressBook
$creadsPrec :: Int -> ReadS GetAddressBook
Prelude.Read, Int -> GetAddressBook -> ShowS
[GetAddressBook] -> ShowS
GetAddressBook -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetAddressBook] -> ShowS
$cshowList :: [GetAddressBook] -> ShowS
show :: GetAddressBook -> String
$cshow :: GetAddressBook -> String
showsPrec :: Int -> GetAddressBook -> ShowS
$cshowsPrec :: Int -> GetAddressBook -> ShowS
Prelude.Show, forall x. Rep GetAddressBook x -> GetAddressBook
forall x. GetAddressBook -> Rep GetAddressBook x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GetAddressBook x -> GetAddressBook
$cfrom :: forall x. GetAddressBook -> Rep GetAddressBook x
Prelude.Generic)
newGetAddressBook ::
Prelude.Text ->
GetAddressBook
newGetAddressBook :: Text -> GetAddressBook
newGetAddressBook Text
pAddressBookArn_ =
GetAddressBook' {$sel:addressBookArn:GetAddressBook' :: Text
addressBookArn = Text
pAddressBookArn_}
getAddressBook_addressBookArn :: Lens.Lens' GetAddressBook Prelude.Text
getAddressBook_addressBookArn :: Lens' GetAddressBook Text
getAddressBook_addressBookArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetAddressBook' {Text
addressBookArn :: Text
$sel:addressBookArn:GetAddressBook' :: GetAddressBook -> Text
addressBookArn} -> Text
addressBookArn) (\s :: GetAddressBook
s@GetAddressBook' {} Text
a -> GetAddressBook
s {$sel:addressBookArn:GetAddressBook' :: Text
addressBookArn = Text
a} :: GetAddressBook)
instance Core.AWSRequest GetAddressBook where
type
AWSResponse GetAddressBook =
GetAddressBookResponse
request :: (Service -> Service) -> GetAddressBook -> Request GetAddressBook
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 GetAddressBook
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse GetAddressBook)))
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 AddressBook -> Int -> GetAddressBookResponse
GetAddressBookResponse'
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
"AddressBook")
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 GetAddressBook where
hashWithSalt :: Int -> GetAddressBook -> Int
hashWithSalt Int
_salt GetAddressBook' {Text
addressBookArn :: Text
$sel:addressBookArn:GetAddressBook' :: GetAddressBook -> Text
..} =
Int
_salt forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
addressBookArn
instance Prelude.NFData GetAddressBook where
rnf :: GetAddressBook -> ()
rnf GetAddressBook' {Text
addressBookArn :: Text
$sel:addressBookArn:GetAddressBook' :: GetAddressBook -> Text
..} = forall a. NFData a => a -> ()
Prelude.rnf Text
addressBookArn
instance Data.ToHeaders GetAddressBook where
toHeaders :: GetAddressBook -> 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.GetAddressBook" ::
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 GetAddressBook where
toJSON :: GetAddressBook -> Value
toJSON GetAddressBook' {Text
addressBookArn :: Text
$sel:addressBookArn:GetAddressBook' :: GetAddressBook -> Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ 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 GetAddressBook where
toPath :: GetAddressBook -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery GetAddressBook where
toQuery :: GetAddressBook -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data GetAddressBookResponse = GetAddressBookResponse'
{
GetAddressBookResponse -> Maybe AddressBook
addressBook :: Prelude.Maybe AddressBook,
GetAddressBookResponse -> Int
httpStatus :: Prelude.Int
}
deriving (GetAddressBookResponse -> GetAddressBookResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetAddressBookResponse -> GetAddressBookResponse -> Bool
$c/= :: GetAddressBookResponse -> GetAddressBookResponse -> Bool
== :: GetAddressBookResponse -> GetAddressBookResponse -> Bool
$c== :: GetAddressBookResponse -> GetAddressBookResponse -> Bool
Prelude.Eq, ReadPrec [GetAddressBookResponse]
ReadPrec GetAddressBookResponse
Int -> ReadS GetAddressBookResponse
ReadS [GetAddressBookResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetAddressBookResponse]
$creadListPrec :: ReadPrec [GetAddressBookResponse]
readPrec :: ReadPrec GetAddressBookResponse
$creadPrec :: ReadPrec GetAddressBookResponse
readList :: ReadS [GetAddressBookResponse]
$creadList :: ReadS [GetAddressBookResponse]
readsPrec :: Int -> ReadS GetAddressBookResponse
$creadsPrec :: Int -> ReadS GetAddressBookResponse
Prelude.Read, Int -> GetAddressBookResponse -> ShowS
[GetAddressBookResponse] -> ShowS
GetAddressBookResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetAddressBookResponse] -> ShowS
$cshowList :: [GetAddressBookResponse] -> ShowS
show :: GetAddressBookResponse -> String
$cshow :: GetAddressBookResponse -> String
showsPrec :: Int -> GetAddressBookResponse -> ShowS
$cshowsPrec :: Int -> GetAddressBookResponse -> ShowS
Prelude.Show, forall x. Rep GetAddressBookResponse x -> GetAddressBookResponse
forall x. GetAddressBookResponse -> Rep GetAddressBookResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GetAddressBookResponse x -> GetAddressBookResponse
$cfrom :: forall x. GetAddressBookResponse -> Rep GetAddressBookResponse x
Prelude.Generic)
newGetAddressBookResponse ::
Prelude.Int ->
GetAddressBookResponse
newGetAddressBookResponse :: Int -> GetAddressBookResponse
newGetAddressBookResponse Int
pHttpStatus_ =
GetAddressBookResponse'
{ $sel:addressBook:GetAddressBookResponse' :: Maybe AddressBook
addressBook =
forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:GetAddressBookResponse' :: Int
httpStatus = Int
pHttpStatus_
}
getAddressBookResponse_addressBook :: Lens.Lens' GetAddressBookResponse (Prelude.Maybe AddressBook)
getAddressBookResponse_addressBook :: Lens' GetAddressBookResponse (Maybe AddressBook)
getAddressBookResponse_addressBook = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetAddressBookResponse' {Maybe AddressBook
addressBook :: Maybe AddressBook
$sel:addressBook:GetAddressBookResponse' :: GetAddressBookResponse -> Maybe AddressBook
addressBook} -> Maybe AddressBook
addressBook) (\s :: GetAddressBookResponse
s@GetAddressBookResponse' {} Maybe AddressBook
a -> GetAddressBookResponse
s {$sel:addressBook:GetAddressBookResponse' :: Maybe AddressBook
addressBook = Maybe AddressBook
a} :: GetAddressBookResponse)
getAddressBookResponse_httpStatus :: Lens.Lens' GetAddressBookResponse Prelude.Int
getAddressBookResponse_httpStatus :: Lens' GetAddressBookResponse Int
getAddressBookResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetAddressBookResponse' {Int
httpStatus :: Int
$sel:httpStatus:GetAddressBookResponse' :: GetAddressBookResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: GetAddressBookResponse
s@GetAddressBookResponse' {} Int
a -> GetAddressBookResponse
s {$sel:httpStatus:GetAddressBookResponse' :: Int
httpStatus = Int
a} :: GetAddressBookResponse)
instance Prelude.NFData GetAddressBookResponse where
rnf :: GetAddressBookResponse -> ()
rnf GetAddressBookResponse' {Int
Maybe AddressBook
httpStatus :: Int
addressBook :: Maybe AddressBook
$sel:httpStatus:GetAddressBookResponse' :: GetAddressBookResponse -> Int
$sel:addressBook:GetAddressBookResponse' :: GetAddressBookResponse -> Maybe AddressBook
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe AddressBook
addressBook
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus