{-# 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.SQS.SendMessageBatch
(
sendMessageBatch
, SendMessageBatch
, smbQueueURL
, smbEntries
, sendMessageBatchResponse
, SendMessageBatchResponse
, smbrsResponseStatus
, smbrsSuccessful
, smbrsFailed
) where
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
import Network.AWS.SQS.Types
import Network.AWS.SQS.Types.Product
data SendMessageBatch = SendMessageBatch'
{ _smbQueueURL :: !Text
, _smbEntries :: ![SendMessageBatchRequestEntry]
} deriving (Eq,Read,Show,Data,Typeable,Generic)
sendMessageBatch
:: Text
-> SendMessageBatch
sendMessageBatch pQueueURL_ =
SendMessageBatch'
{ _smbQueueURL = pQueueURL_
, _smbEntries = mempty
}
smbQueueURL :: Lens' SendMessageBatch Text
smbQueueURL = lens _smbQueueURL (\ s a -> s{_smbQueueURL = a});
smbEntries :: Lens' SendMessageBatch [SendMessageBatchRequestEntry]
smbEntries = lens _smbEntries (\ s a -> s{_smbEntries = a}) . _Coerce;
instance AWSRequest SendMessageBatch where
type Rs SendMessageBatch = SendMessageBatchResponse
request = postQuery sqs
response
= receiveXMLWrapper "SendMessageBatchResult"
(\ s h x ->
SendMessageBatchResponse' <$>
(pure (fromEnum s)) <*>
(parseXMLList "SendMessageBatchResultEntry" x)
<*> (parseXMLList "BatchResultErrorEntry" x))
instance Hashable SendMessageBatch
instance NFData SendMessageBatch
instance ToHeaders SendMessageBatch where
toHeaders = const mempty
instance ToPath SendMessageBatch where
toPath = const "/"
instance ToQuery SendMessageBatch where
toQuery SendMessageBatch'{..}
= mconcat
["Action" =: ("SendMessageBatch" :: ByteString),
"Version" =: ("2012-11-05" :: ByteString),
"QueueUrl" =: _smbQueueURL,
toQueryList "SendMessageBatchRequestEntry"
_smbEntries]
data SendMessageBatchResponse = SendMessageBatchResponse'
{ _smbrsResponseStatus :: !Int
, _smbrsSuccessful :: ![SendMessageBatchResultEntry]
, _smbrsFailed :: ![BatchResultErrorEntry]
} deriving (Eq,Read,Show,Data,Typeable,Generic)
sendMessageBatchResponse
:: Int
-> SendMessageBatchResponse
sendMessageBatchResponse pResponseStatus_ =
SendMessageBatchResponse'
{ _smbrsResponseStatus = pResponseStatus_
, _smbrsSuccessful = mempty
, _smbrsFailed = mempty
}
smbrsResponseStatus :: Lens' SendMessageBatchResponse Int
smbrsResponseStatus = lens _smbrsResponseStatus (\ s a -> s{_smbrsResponseStatus = a});
smbrsSuccessful :: Lens' SendMessageBatchResponse [SendMessageBatchResultEntry]
smbrsSuccessful = lens _smbrsSuccessful (\ s a -> s{_smbrsSuccessful = a}) . _Coerce;
smbrsFailed :: Lens' SendMessageBatchResponse [BatchResultErrorEntry]
smbrsFailed = lens _smbrsFailed (\ s a -> s{_smbrsFailed = a}) . _Coerce;
instance NFData SendMessageBatchResponse