{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TypeFamilies #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
module Network.AWS.AlexaBusiness.GetContact
(
getContact
, GetContact
, gcContactARN
, getContactResponse
, GetContactResponse
, gcrsContact
, gcrsResponseStatus
) where
import Network.AWS.AlexaBusiness.Types
import Network.AWS.AlexaBusiness.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
newtype GetContact = GetContact'
{ _gcContactARN :: Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
getContact
:: Text
-> GetContact
getContact pContactARN_ = GetContact' {_gcContactARN = pContactARN_}
gcContactARN :: Lens' GetContact Text
gcContactARN = lens _gcContactARN (\ s a -> s{_gcContactARN = a})
instance AWSRequest GetContact where
type Rs GetContact = GetContactResponse
request = postJSON alexaBusiness
response
= receiveJSON
(\ s h x ->
GetContactResponse' <$>
(x .?> "Contact") <*> (pure (fromEnum s)))
instance Hashable GetContact where
instance NFData GetContact where
instance ToHeaders GetContact where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("AlexaForBusiness.GetContact" :: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON GetContact where
toJSON GetContact'{..}
= object
(catMaybes [Just ("ContactArn" .= _gcContactARN)])
instance ToPath GetContact where
toPath = const "/"
instance ToQuery GetContact where
toQuery = const mempty
data GetContactResponse = GetContactResponse'
{ _gcrsContact :: !(Maybe Contact)
, _gcrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
getContactResponse
:: Int
-> GetContactResponse
getContactResponse pResponseStatus_ =
GetContactResponse'
{_gcrsContact = Nothing, _gcrsResponseStatus = pResponseStatus_}
gcrsContact :: Lens' GetContactResponse (Maybe Contact)
gcrsContact = lens _gcrsContact (\ s a -> s{_gcrsContact = a})
gcrsResponseStatus :: Lens' GetContactResponse Int
gcrsResponseStatus = lens _gcrsResponseStatus (\ s a -> s{_gcrsResponseStatus = a})
instance NFData GetContactResponse where