{-# 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.WorkMail.RegisterToWorkMail
(
registerToWorkMail
, RegisterToWorkMail
, rtwmOrganizationId
, rtwmEntityId
, rtwmEmail
, registerToWorkMailResponse
, RegisterToWorkMailResponse
, rtwmrsResponseStatus
) where
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
import Network.AWS.WorkMail.Types
import Network.AWS.WorkMail.Types.Product
data RegisterToWorkMail = RegisterToWorkMail'
{ _rtwmOrganizationId :: !Text
, _rtwmEntityId :: !Text
, _rtwmEmail :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
registerToWorkMail
:: Text
-> Text
-> Text
-> RegisterToWorkMail
registerToWorkMail pOrganizationId_ pEntityId_ pEmail_ =
RegisterToWorkMail'
{ _rtwmOrganizationId = pOrganizationId_
, _rtwmEntityId = pEntityId_
, _rtwmEmail = pEmail_
}
rtwmOrganizationId :: Lens' RegisterToWorkMail Text
rtwmOrganizationId = lens _rtwmOrganizationId (\ s a -> s{_rtwmOrganizationId = a})
rtwmEntityId :: Lens' RegisterToWorkMail Text
rtwmEntityId = lens _rtwmEntityId (\ s a -> s{_rtwmEntityId = a})
rtwmEmail :: Lens' RegisterToWorkMail Text
rtwmEmail = lens _rtwmEmail (\ s a -> s{_rtwmEmail = a})
instance AWSRequest RegisterToWorkMail where
type Rs RegisterToWorkMail =
RegisterToWorkMailResponse
request = postJSON workMail
response
= receiveEmpty
(\ s h x ->
RegisterToWorkMailResponse' <$> (pure (fromEnum s)))
instance Hashable RegisterToWorkMail where
instance NFData RegisterToWorkMail where
instance ToHeaders RegisterToWorkMail where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("WorkMailService.RegisterToWorkMail" :: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON RegisterToWorkMail where
toJSON RegisterToWorkMail'{..}
= object
(catMaybes
[Just ("OrganizationId" .= _rtwmOrganizationId),
Just ("EntityId" .= _rtwmEntityId),
Just ("Email" .= _rtwmEmail)])
instance ToPath RegisterToWorkMail where
toPath = const "/"
instance ToQuery RegisterToWorkMail where
toQuery = const mempty
newtype RegisterToWorkMailResponse = RegisterToWorkMailResponse'
{ _rtwmrsResponseStatus :: Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
registerToWorkMailResponse
:: Int
-> RegisterToWorkMailResponse
registerToWorkMailResponse pResponseStatus_ =
RegisterToWorkMailResponse' {_rtwmrsResponseStatus = pResponseStatus_}
rtwmrsResponseStatus :: Lens' RegisterToWorkMailResponse Int
rtwmrsResponseStatus = lens _rtwmrsResponseStatus (\ s a -> s{_rtwmrsResponseStatus = a})
instance NFData RegisterToWorkMailResponse where