module Network.AWS.SES.SendBounce
(
sendBounce
, SendBounce
, sbMessageDsn
, sbExplanation
, sbBounceSenderARN
, sbOriginalMessageId
, sbBounceSender
, sbBouncedRecipientInfoList
, sendBounceResponse
, SendBounceResponse
, sbrsMessageId
, sbrsResponseStatus
) where
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
import Network.AWS.SES.Types
import Network.AWS.SES.Types.Product
data SendBounce = SendBounce'
{ _sbMessageDsn :: !(Maybe MessageDsn)
, _sbExplanation :: !(Maybe Text)
, _sbBounceSenderARN :: !(Maybe Text)
, _sbOriginalMessageId :: !Text
, _sbBounceSender :: !Text
, _sbBouncedRecipientInfoList :: ![BouncedRecipientInfo]
} deriving (Eq,Read,Show,Data,Typeable,Generic)
sendBounce
:: Text
-> Text
-> SendBounce
sendBounce pOriginalMessageId_ pBounceSender_ =
SendBounce'
{ _sbMessageDsn = Nothing
, _sbExplanation = Nothing
, _sbBounceSenderARN = Nothing
, _sbOriginalMessageId = pOriginalMessageId_
, _sbBounceSender = pBounceSender_
, _sbBouncedRecipientInfoList = mempty
}
sbMessageDsn :: Lens' SendBounce (Maybe MessageDsn)
sbMessageDsn = lens _sbMessageDsn (\ s a -> s{_sbMessageDsn = a});
sbExplanation :: Lens' SendBounce (Maybe Text)
sbExplanation = lens _sbExplanation (\ s a -> s{_sbExplanation = a});
sbBounceSenderARN :: Lens' SendBounce (Maybe Text)
sbBounceSenderARN = lens _sbBounceSenderARN (\ s a -> s{_sbBounceSenderARN = a});
sbOriginalMessageId :: Lens' SendBounce Text
sbOriginalMessageId = lens _sbOriginalMessageId (\ s a -> s{_sbOriginalMessageId = a});
sbBounceSender :: Lens' SendBounce Text
sbBounceSender = lens _sbBounceSender (\ s a -> s{_sbBounceSender = a});
sbBouncedRecipientInfoList :: Lens' SendBounce [BouncedRecipientInfo]
sbBouncedRecipientInfoList = lens _sbBouncedRecipientInfoList (\ s a -> s{_sbBouncedRecipientInfoList = a}) . _Coerce;
instance AWSRequest SendBounce where
type Rs SendBounce = SendBounceResponse
request = postQuery ses
response
= receiveXMLWrapper "SendBounceResult"
(\ s h x ->
SendBounceResponse' <$>
(x .@? "MessageId") <*> (pure (fromEnum s)))
instance Hashable SendBounce
instance NFData SendBounce
instance ToHeaders SendBounce where
toHeaders = const mempty
instance ToPath SendBounce where
toPath = const "/"
instance ToQuery SendBounce where
toQuery SendBounce'{..}
= mconcat
["Action" =: ("SendBounce" :: ByteString),
"Version" =: ("2010-12-01" :: ByteString),
"MessageDsn" =: _sbMessageDsn,
"Explanation" =: _sbExplanation,
"BounceSenderArn" =: _sbBounceSenderARN,
"OriginalMessageId" =: _sbOriginalMessageId,
"BounceSender" =: _sbBounceSender,
"BouncedRecipientInfoList" =:
toQueryList "member" _sbBouncedRecipientInfoList]
data SendBounceResponse = SendBounceResponse'
{ _sbrsMessageId :: !(Maybe Text)
, _sbrsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
sendBounceResponse
:: Int
-> SendBounceResponse
sendBounceResponse pResponseStatus_ =
SendBounceResponse'
{ _sbrsMessageId = Nothing
, _sbrsResponseStatus = pResponseStatus_
}
sbrsMessageId :: Lens' SendBounceResponse (Maybe Text)
sbrsMessageId = lens _sbrsMessageId (\ s a -> s{_sbrsMessageId = a});
sbrsResponseStatus :: Lens' SendBounceResponse Int
sbrsResponseStatus = lens _sbrsResponseStatus (\ s a -> s{_sbrsResponseStatus = a});
instance NFData SendBounceResponse