{-# LANGUAGE DeriveDataTypeable #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-} -- Derived from AWS service descriptions, licensed under Apache 2.0. -- | -- Module : Network.AWS.SQS.Types.Product -- Copyright : (c) 2013-2016 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- module Network.AWS.SQS.Types.Product where import Network.AWS.Lens import Network.AWS.Prelude import Network.AWS.SQS.Types.Sum -- | This is used in the responses of batch API to give a detailed description of the result of an action on each entry in the request. -- -- -- -- /See:/ 'batchResultErrorEntry' smart constructor. data BatchResultErrorEntry = BatchResultErrorEntry' { _breeMessage :: !(Maybe Text) , _breeId :: !Text , _breeSenderFault :: !Bool , _breeCode :: !Text } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'BatchResultErrorEntry' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'breeMessage' - A message explaining why the action failed on this entry. -- -- * 'breeId' - The id of an entry in a batch request. -- -- * 'breeSenderFault' - Whether the error happened due to the sender's fault. -- -- * 'breeCode' - An error code representing why the action failed on this entry. batchResultErrorEntry :: Text -- ^ 'breeId' -> Bool -- ^ 'breeSenderFault' -> Text -- ^ 'breeCode' -> BatchResultErrorEntry batchResultErrorEntry pId_ pSenderFault_ pCode_ = BatchResultErrorEntry' { _breeMessage = Nothing , _breeId = pId_ , _breeSenderFault = pSenderFault_ , _breeCode = pCode_ } -- | A message explaining why the action failed on this entry. breeMessage :: Lens' BatchResultErrorEntry (Maybe Text) breeMessage = lens _breeMessage (\ s a -> s{_breeMessage = a}); -- | The id of an entry in a batch request. breeId :: Lens' BatchResultErrorEntry Text breeId = lens _breeId (\ s a -> s{_breeId = a}); -- | Whether the error happened due to the sender's fault. breeSenderFault :: Lens' BatchResultErrorEntry Bool breeSenderFault = lens _breeSenderFault (\ s a -> s{_breeSenderFault = a}); -- | An error code representing why the action failed on this entry. breeCode :: Lens' BatchResultErrorEntry Text breeCode = lens _breeCode (\ s a -> s{_breeCode = a}); instance FromXML BatchResultErrorEntry where parseXML x = BatchResultErrorEntry' <$> (x .@? "Message") <*> (x .@ "Id") <*> (x .@ "SenderFault") <*> (x .@ "Code") instance Hashable BatchResultErrorEntry instance NFData BatchResultErrorEntry -- | Encloses a receipt handle and an entry id for each message in 'ChangeMessageVisibilityBatch' . -- -- -- /Important:/ All of the following parameters are list parameters that must be prefixed with @ChangeMessageVisibilityBatchRequestEntry.n@ , where @n@ is an integer value starting with 1. For example, a parameter list for this action might look like this: -- -- @&ChangeMessageVisibilityBatchRequestEntry.1.Id=change_visibility_msg_2@ -- -- @&ChangeMessageVisibilityBatchRequestEntry.1.ReceiptHandle=Your_Receipt_Handle@ -- -- @&ChangeMessageVisibilityBatchRequestEntry.1.VisibilityTimeout=45@ -- -- -- /See:/ 'changeMessageVisibilityBatchRequestEntry' smart constructor. data ChangeMessageVisibilityBatchRequestEntry = ChangeMessageVisibilityBatchRequestEntry' { _cVisibilityTimeout :: !(Maybe Int) , _cId :: !Text , _cReceiptHandle :: !Text } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'ChangeMessageVisibilityBatchRequestEntry' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'cVisibilityTimeout' - The new value (in seconds) for the message's visibility timeout. -- -- * 'cId' - An identifier for this particular receipt handle. This is used to communicate the result. Note that the @Id@ s of a batch request need to be unique within the request. -- -- * 'cReceiptHandle' - A receipt handle. changeMessageVisibilityBatchRequestEntry :: Text -- ^ 'cId' -> Text -- ^ 'cReceiptHandle' -> ChangeMessageVisibilityBatchRequestEntry changeMessageVisibilityBatchRequestEntry pId_ pReceiptHandle_ = ChangeMessageVisibilityBatchRequestEntry' { _cVisibilityTimeout = Nothing , _cId = pId_ , _cReceiptHandle = pReceiptHandle_ } -- | The new value (in seconds) for the message's visibility timeout. cVisibilityTimeout :: Lens' ChangeMessageVisibilityBatchRequestEntry (Maybe Int) cVisibilityTimeout = lens _cVisibilityTimeout (\ s a -> s{_cVisibilityTimeout = a}); -- | An identifier for this particular receipt handle. This is used to communicate the result. Note that the @Id@ s of a batch request need to be unique within the request. cId :: Lens' ChangeMessageVisibilityBatchRequestEntry Text cId = lens _cId (\ s a -> s{_cId = a}); -- | A receipt handle. cReceiptHandle :: Lens' ChangeMessageVisibilityBatchRequestEntry Text cReceiptHandle = lens _cReceiptHandle (\ s a -> s{_cReceiptHandle = a}); instance Hashable ChangeMessageVisibilityBatchRequestEntry instance NFData ChangeMessageVisibilityBatchRequestEntry instance ToQuery ChangeMessageVisibilityBatchRequestEntry where toQuery ChangeMessageVisibilityBatchRequestEntry'{..} = mconcat ["VisibilityTimeout" =: _cVisibilityTimeout, "Id" =: _cId, "ReceiptHandle" =: _cReceiptHandle] -- | Encloses the id of an entry in 'ChangeMessageVisibilityBatch' . -- -- -- -- /See:/ 'changeMessageVisibilityBatchResultEntry' smart constructor. newtype ChangeMessageVisibilityBatchResultEntry = ChangeMessageVisibilityBatchResultEntry' { _cmvbreId :: Text } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'ChangeMessageVisibilityBatchResultEntry' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'cmvbreId' - Represents a message whose visibility timeout has been changed successfully. changeMessageVisibilityBatchResultEntry :: Text -- ^ 'cmvbreId' -> ChangeMessageVisibilityBatchResultEntry changeMessageVisibilityBatchResultEntry pId_ = ChangeMessageVisibilityBatchResultEntry' { _cmvbreId = pId_ } -- | Represents a message whose visibility timeout has been changed successfully. cmvbreId :: Lens' ChangeMessageVisibilityBatchResultEntry Text cmvbreId = lens _cmvbreId (\ s a -> s{_cmvbreId = a}); instance FromXML ChangeMessageVisibilityBatchResultEntry where parseXML x = ChangeMessageVisibilityBatchResultEntry' <$> (x .@ "Id") instance Hashable ChangeMessageVisibilityBatchResultEntry instance NFData ChangeMessageVisibilityBatchResultEntry -- | Encloses a receipt handle and an identifier for it. -- -- -- -- /See:/ 'deleteMessageBatchRequestEntry' smart constructor. data DeleteMessageBatchRequestEntry = DeleteMessageBatchRequestEntry' { _dmbreId :: !Text , _dmbreReceiptHandle :: !Text } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'DeleteMessageBatchRequestEntry' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'dmbreId' - An identifier for this particular receipt handle. This is used to communicate the result. Note that the @Id@ s of a batch request need to be unique within the request. -- -- * 'dmbreReceiptHandle' - A receipt handle. deleteMessageBatchRequestEntry :: Text -- ^ 'dmbreId' -> Text -- ^ 'dmbreReceiptHandle' -> DeleteMessageBatchRequestEntry deleteMessageBatchRequestEntry pId_ pReceiptHandle_ = DeleteMessageBatchRequestEntry' { _dmbreId = pId_ , _dmbreReceiptHandle = pReceiptHandle_ } -- | An identifier for this particular receipt handle. This is used to communicate the result. Note that the @Id@ s of a batch request need to be unique within the request. dmbreId :: Lens' DeleteMessageBatchRequestEntry Text dmbreId = lens _dmbreId (\ s a -> s{_dmbreId = a}); -- | A receipt handle. dmbreReceiptHandle :: Lens' DeleteMessageBatchRequestEntry Text dmbreReceiptHandle = lens _dmbreReceiptHandle (\ s a -> s{_dmbreReceiptHandle = a}); instance Hashable DeleteMessageBatchRequestEntry instance NFData DeleteMessageBatchRequestEntry instance ToQuery DeleteMessageBatchRequestEntry where toQuery DeleteMessageBatchRequestEntry'{..} = mconcat ["Id" =: _dmbreId, "ReceiptHandle" =: _dmbreReceiptHandle] -- | Encloses the id an entry in 'DeleteMessageBatch' . -- -- -- -- /See:/ 'deleteMessageBatchResultEntry' smart constructor. newtype DeleteMessageBatchResultEntry = DeleteMessageBatchResultEntry' { _dId :: Text } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'DeleteMessageBatchResultEntry' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'dId' - Represents a successfully deleted message. deleteMessageBatchResultEntry :: Text -- ^ 'dId' -> DeleteMessageBatchResultEntry deleteMessageBatchResultEntry pId_ = DeleteMessageBatchResultEntry' { _dId = pId_ } -- | Represents a successfully deleted message. dId :: Lens' DeleteMessageBatchResultEntry Text dId = lens _dId (\ s a -> s{_dId = a}); instance FromXML DeleteMessageBatchResultEntry where parseXML x = DeleteMessageBatchResultEntry' <$> (x .@ "Id") instance Hashable DeleteMessageBatchResultEntry instance NFData DeleteMessageBatchResultEntry -- | An Amazon SQS message. -- -- -- -- /See:/ 'message' smart constructor. data Message = Message' { _mMessageAttributes :: !(Maybe (Map Text MessageAttributeValue)) , _mMD5OfBody :: !(Maybe Text) , _mBody :: !(Maybe Text) , _mAttributes :: !(Maybe (Map MessageAttribute Text)) , _mReceiptHandle :: !(Maybe Text) , _mMessageId :: !(Maybe Text) , _mMD5OfMessageAttributes :: !(Maybe Text) } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'Message' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'mMessageAttributes' - Each message attribute consists of a Name, Type, and Value. For more information, see in the /Amazon SQS Developer Guide/ . -- -- * 'mMD5OfBody' - An MD5 digest of the non-URL-encoded message body string. -- -- * 'mBody' - The message's contents (not URL-encoded). -- -- * 'mAttributes' - @SenderId@ , @SentTimestamp@ , @ApproximateReceiveCount@ , and/or @ApproximateFirstReceiveTimestamp@ . @SentTimestamp@ and @ApproximateFirstReceiveTimestamp@ are each returned as an integer representing the in milliseconds. -- -- * 'mReceiptHandle' - An identifier associated with the act of receiving the message. A new receipt handle is returned every time you receive a message. When deleting a message, you provide the last received receipt handle to delete the message. -- -- * 'mMessageId' - A unique identifier for the message. Message IDs are considered unique across all AWS accounts for an extended period of time. -- -- * 'mMD5OfMessageAttributes' - An MD5 digest of the non-URL-encoded message attribute string. This can be used to verify that Amazon SQS received the message correctly. Amazon SQS first URL decodes the message before creating the MD5 digest. For information about MD5, see . message :: Message message = Message' { _mMessageAttributes = Nothing , _mMD5OfBody = Nothing , _mBody = Nothing , _mAttributes = Nothing , _mReceiptHandle = Nothing , _mMessageId = Nothing , _mMD5OfMessageAttributes = Nothing } -- | Each message attribute consists of a Name, Type, and Value. For more information, see in the /Amazon SQS Developer Guide/ . mMessageAttributes :: Lens' Message (HashMap Text MessageAttributeValue) mMessageAttributes = lens _mMessageAttributes (\ s a -> s{_mMessageAttributes = a}) . _Default . _Map; -- | An MD5 digest of the non-URL-encoded message body string. mMD5OfBody :: Lens' Message (Maybe Text) mMD5OfBody = lens _mMD5OfBody (\ s a -> s{_mMD5OfBody = a}); -- | The message's contents (not URL-encoded). mBody :: Lens' Message (Maybe Text) mBody = lens _mBody (\ s a -> s{_mBody = a}); -- | @SenderId@ , @SentTimestamp@ , @ApproximateReceiveCount@ , and/or @ApproximateFirstReceiveTimestamp@ . @SentTimestamp@ and @ApproximateFirstReceiveTimestamp@ are each returned as an integer representing the in milliseconds. mAttributes :: Lens' Message (HashMap MessageAttribute Text) mAttributes = lens _mAttributes (\ s a -> s{_mAttributes = a}) . _Default . _Map; -- | An identifier associated with the act of receiving the message. A new receipt handle is returned every time you receive a message. When deleting a message, you provide the last received receipt handle to delete the message. mReceiptHandle :: Lens' Message (Maybe Text) mReceiptHandle = lens _mReceiptHandle (\ s a -> s{_mReceiptHandle = a}); -- | A unique identifier for the message. Message IDs are considered unique across all AWS accounts for an extended period of time. mMessageId :: Lens' Message (Maybe Text) mMessageId = lens _mMessageId (\ s a -> s{_mMessageId = a}); -- | An MD5 digest of the non-URL-encoded message attribute string. This can be used to verify that Amazon SQS received the message correctly. Amazon SQS first URL decodes the message before creating the MD5 digest. For information about MD5, see . mMD5OfMessageAttributes :: Lens' Message (Maybe Text) mMD5OfMessageAttributes = lens _mMD5OfMessageAttributes (\ s a -> s{_mMD5OfMessageAttributes = a}); instance FromXML Message where parseXML x = Message' <$> (may (parseXMLMap "MessageAttribute" "Name" "Value") x) <*> (x .@? "MD5OfBody") <*> (x .@? "Body") <*> (may (parseXMLMap "Attribute" "Name" "Value") x) <*> (x .@? "ReceiptHandle") <*> (x .@? "MessageId") <*> (x .@? "MD5OfMessageAttributes") instance Hashable Message instance NFData Message -- | The user-specified message attribute value. For string data types, the value attribute has the same restrictions on the content as the message body. For more information, see 'SendMessage' . -- -- -- Name, type, and value must not be empty or null. In addition, the message body should not be empty or null. All parts of the message attribute, including name, type, and value, are included in the message size restriction, which is currently 256 KB (262,144 bytes). -- -- -- /See:/ 'messageAttributeValue' smart constructor. data MessageAttributeValue = MessageAttributeValue' { _mavBinaryValue :: !(Maybe Base64) , _mavStringListValues :: !(Maybe [Text]) , _mavStringValue :: !(Maybe Text) , _mavBinaryListValues :: !(Maybe [Base64]) , _mavDataType :: !Text } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'MessageAttributeValue' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'mavBinaryValue' - Binary type attributes can store any binary data, for example, compressed data, encrypted data, or images.-- /Note:/ This 'Lens' automatically encodes and decodes Base64 data. The underlying isomorphism will encode to Base64 representation during serialisation, and decode from Base64 representation during deserialisation. This 'Lens' accepts and returns only raw unencoded data. -- -- * 'mavStringListValues' - Not implemented. Reserved for future use. -- -- * 'mavStringValue' - Strings are Unicode with UTF8 binary encoding. For a list of code values, see . -- -- * 'mavBinaryListValues' - Not implemented. Reserved for future use. -- -- * 'mavDataType' - Amazon SQS supports the following logical data types: String, Number, and Binary. For the Number data type, you must use StringValue. You can also append custom labels. For more information, see in the /Amazon SQS Developer Guide/ . messageAttributeValue :: Text -- ^ 'mavDataType' -> MessageAttributeValue messageAttributeValue pDataType_ = MessageAttributeValue' { _mavBinaryValue = Nothing , _mavStringListValues = Nothing , _mavStringValue = Nothing , _mavBinaryListValues = Nothing , _mavDataType = pDataType_ } -- | Binary type attributes can store any binary data, for example, compressed data, encrypted data, or images.-- /Note:/ This 'Lens' automatically encodes and decodes Base64 data. The underlying isomorphism will encode to Base64 representation during serialisation, and decode from Base64 representation during deserialisation. This 'Lens' accepts and returns only raw unencoded data. mavBinaryValue :: Lens' MessageAttributeValue (Maybe ByteString) mavBinaryValue = lens _mavBinaryValue (\ s a -> s{_mavBinaryValue = a}) . mapping _Base64; -- | Not implemented. Reserved for future use. mavStringListValues :: Lens' MessageAttributeValue [Text] mavStringListValues = lens _mavStringListValues (\ s a -> s{_mavStringListValues = a}) . _Default . _Coerce; -- | Strings are Unicode with UTF8 binary encoding. For a list of code values, see . mavStringValue :: Lens' MessageAttributeValue (Maybe Text) mavStringValue = lens _mavStringValue (\ s a -> s{_mavStringValue = a}); -- | Not implemented. Reserved for future use. mavBinaryListValues :: Lens' MessageAttributeValue [ByteString] mavBinaryListValues = lens _mavBinaryListValues (\ s a -> s{_mavBinaryListValues = a}) . _Default . _Coerce; -- | Amazon SQS supports the following logical data types: String, Number, and Binary. For the Number data type, you must use StringValue. You can also append custom labels. For more information, see in the /Amazon SQS Developer Guide/ . mavDataType :: Lens' MessageAttributeValue Text mavDataType = lens _mavDataType (\ s a -> s{_mavDataType = a}); instance FromXML MessageAttributeValue where parseXML x = MessageAttributeValue' <$> (x .@? "BinaryValue") <*> (x .@? "StringListValue" .!@ mempty >>= may (parseXMLList "StringListValue")) <*> (x .@? "StringValue") <*> (x .@? "BinaryListValue" .!@ mempty >>= may (parseXMLList "BinaryListValue")) <*> (x .@ "DataType") instance Hashable MessageAttributeValue instance NFData MessageAttributeValue instance ToQuery MessageAttributeValue where toQuery MessageAttributeValue'{..} = mconcat ["BinaryValue" =: _mavBinaryValue, "StringListValue" =: toQuery (toQueryList "StringListValue" <$> _mavStringListValues), "StringValue" =: _mavStringValue, "BinaryListValue" =: toQuery (toQueryList "BinaryListValue" <$> _mavBinaryListValues), "DataType" =: _mavDataType] -- | Contains the details of a single Amazon SQS message along with a @Id@ . -- -- -- -- /See:/ 'sendMessageBatchRequestEntry' smart constructor. data SendMessageBatchRequestEntry = SendMessageBatchRequestEntry' { _sMessageAttributes :: !(Maybe (Map Text MessageAttributeValue)) , _sDelaySeconds :: !(Maybe Int) , _sMessageDeduplicationId :: !(Maybe Text) , _sMessageGroupId :: !(Maybe Text) , _sId :: !Text , _sMessageBody :: !Text } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'SendMessageBatchRequestEntry' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'sMessageAttributes' - Each message attribute consists of a Name, Type, and Value. For more information, see in the /Amazon SQS Developer Guide/ . -- -- * 'sDelaySeconds' - The number of seconds (0 to 900 - 15 minutes) to delay a specific message. Messages with a positive @DelaySeconds@ value become available for processing after the delay time is finished. If you don't specify a value, the default value for the queue applies. -- -- * 'sMessageDeduplicationId' - This parameter applies only to FIFO (first-in-first-out) queues. The token used for deduplication of messages within a 5-minute minimum deduplication interval. If a message with a particular @MessageDeduplicationId@ is sent successfully, subsequent messages with the same @MessageDeduplicationId@ are accepted successfully but aren't delivered. For more information, see in the /Amazon SQS Developer Guide/ . * Every message must have a unique @MessageDeduplicationId@ , * You may provide a @MessageDeduplicationId@ explicitly. * If you aren't able to provide a @MessageDeduplicationId@ and you enable @ContentBasedDeduplication@ for your queue, Amazon SQS uses a SHA-256 hash to generate the @MessageDeduplicationId@ using the body of the message (but not the attributes of the message). * If you don't provide a @MessageDeduplicationId@ and the queue doesn't have @ContentBasedDeduplication@ set, the action fails with an error. * If the queue has @ContentBasedDeduplication@ set, your @MessageDeduplicationId@ overrides the generated one. * When @ContentBasedDeduplication@ is in effect, messages with identical content sent within the deduplication interval are treated as duplicates and only one copy of the message is delivered. * You can also use @ContentBasedDeduplication@ for messages with identical content to be treated as duplicates. * If you send one message with @ContentBasedDeduplication@ enabled and then another message with a @MessageDeduplicationId@ that is the same as the one generated for the first @MessageDeduplicationId@ , the two messages are treated as duplicates and only one copy of the message is delivered. The length of @MessageDeduplicationId@ is 128 characters. @MessageDeduplicationId@ can contain alphanumeric characters (@a-z@ , @A-Z@ , @0-9@ ) and punctuation (@!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~@ ). For best practices of using @MessageDeduplicationId@ , see in the /Amazon Simple Queue Service Developer Guide/ . -- -- * 'sMessageGroupId' - This parameter applies only to FIFO (first-in-first-out) queues. The tag that specifies that a message belongs to a specific message group. Messages that belong to the same message group are processed in a FIFO manner (however, messages in different message groups might be processed out of order). To interleave multiple ordered streams within a single queue, use @MessageGroupId@ values (for example, session data for multiple users). In this scenario, multiple readers can process the queue, but the session data of each user is processed in a FIFO fashion. * You must associate a non-empty @MessageGroupId@ with a message. If you don't provide a @MessageGroupId@ , the action fails. * @ReceiveMessage@ might return messages with multiple @MessageGroupId@ values. For each @MessageGroupId@ , the messages are sorted by time sent. The caller can't specify a @MessageGroupId@ . The length of @MessageGroupId@ is 128 characters. Valid values are alphanumeric characters and punctuation @(!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~)@ . For best practices of using @MessageGroupId@ , see in the /Amazon Simple Queue Service Developer Guide/ . -- -- * 'sId' - An identifier for the message in this batch. This is used to communicate the result. Note that the @Id@ s of a batch request need to be unique within the request. -- -- * 'sMessageBody' - Body of the message. sendMessageBatchRequestEntry :: Text -- ^ 'sId' -> Text -- ^ 'sMessageBody' -> SendMessageBatchRequestEntry sendMessageBatchRequestEntry pId_ pMessageBody_ = SendMessageBatchRequestEntry' { _sMessageAttributes = Nothing , _sDelaySeconds = Nothing , _sMessageDeduplicationId = Nothing , _sMessageGroupId = Nothing , _sId = pId_ , _sMessageBody = pMessageBody_ } -- | Each message attribute consists of a Name, Type, and Value. For more information, see in the /Amazon SQS Developer Guide/ . sMessageAttributes :: Lens' SendMessageBatchRequestEntry (HashMap Text MessageAttributeValue) sMessageAttributes = lens _sMessageAttributes (\ s a -> s{_sMessageAttributes = a}) . _Default . _Map; -- | The number of seconds (0 to 900 - 15 minutes) to delay a specific message. Messages with a positive @DelaySeconds@ value become available for processing after the delay time is finished. If you don't specify a value, the default value for the queue applies. sDelaySeconds :: Lens' SendMessageBatchRequestEntry (Maybe Int) sDelaySeconds = lens _sDelaySeconds (\ s a -> s{_sDelaySeconds = a}); -- | This parameter applies only to FIFO (first-in-first-out) queues. The token used for deduplication of messages within a 5-minute minimum deduplication interval. If a message with a particular @MessageDeduplicationId@ is sent successfully, subsequent messages with the same @MessageDeduplicationId@ are accepted successfully but aren't delivered. For more information, see in the /Amazon SQS Developer Guide/ . * Every message must have a unique @MessageDeduplicationId@ , * You may provide a @MessageDeduplicationId@ explicitly. * If you aren't able to provide a @MessageDeduplicationId@ and you enable @ContentBasedDeduplication@ for your queue, Amazon SQS uses a SHA-256 hash to generate the @MessageDeduplicationId@ using the body of the message (but not the attributes of the message). * If you don't provide a @MessageDeduplicationId@ and the queue doesn't have @ContentBasedDeduplication@ set, the action fails with an error. * If the queue has @ContentBasedDeduplication@ set, your @MessageDeduplicationId@ overrides the generated one. * When @ContentBasedDeduplication@ is in effect, messages with identical content sent within the deduplication interval are treated as duplicates and only one copy of the message is delivered. * You can also use @ContentBasedDeduplication@ for messages with identical content to be treated as duplicates. * If you send one message with @ContentBasedDeduplication@ enabled and then another message with a @MessageDeduplicationId@ that is the same as the one generated for the first @MessageDeduplicationId@ , the two messages are treated as duplicates and only one copy of the message is delivered. The length of @MessageDeduplicationId@ is 128 characters. @MessageDeduplicationId@ can contain alphanumeric characters (@a-z@ , @A-Z@ , @0-9@ ) and punctuation (@!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~@ ). For best practices of using @MessageDeduplicationId@ , see in the /Amazon Simple Queue Service Developer Guide/ . sMessageDeduplicationId :: Lens' SendMessageBatchRequestEntry (Maybe Text) sMessageDeduplicationId = lens _sMessageDeduplicationId (\ s a -> s{_sMessageDeduplicationId = a}); -- | This parameter applies only to FIFO (first-in-first-out) queues. The tag that specifies that a message belongs to a specific message group. Messages that belong to the same message group are processed in a FIFO manner (however, messages in different message groups might be processed out of order). To interleave multiple ordered streams within a single queue, use @MessageGroupId@ values (for example, session data for multiple users). In this scenario, multiple readers can process the queue, but the session data of each user is processed in a FIFO fashion. * You must associate a non-empty @MessageGroupId@ with a message. If you don't provide a @MessageGroupId@ , the action fails. * @ReceiveMessage@ might return messages with multiple @MessageGroupId@ values. For each @MessageGroupId@ , the messages are sorted by time sent. The caller can't specify a @MessageGroupId@ . The length of @MessageGroupId@ is 128 characters. Valid values are alphanumeric characters and punctuation @(!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~)@ . For best practices of using @MessageGroupId@ , see in the /Amazon Simple Queue Service Developer Guide/ . sMessageGroupId :: Lens' SendMessageBatchRequestEntry (Maybe Text) sMessageGroupId = lens _sMessageGroupId (\ s a -> s{_sMessageGroupId = a}); -- | An identifier for the message in this batch. This is used to communicate the result. Note that the @Id@ s of a batch request need to be unique within the request. sId :: Lens' SendMessageBatchRequestEntry Text sId = lens _sId (\ s a -> s{_sId = a}); -- | Body of the message. sMessageBody :: Lens' SendMessageBatchRequestEntry Text sMessageBody = lens _sMessageBody (\ s a -> s{_sMessageBody = a}); instance Hashable SendMessageBatchRequestEntry instance NFData SendMessageBatchRequestEntry instance ToQuery SendMessageBatchRequestEntry where toQuery SendMessageBatchRequestEntry'{..} = mconcat [toQuery (toQueryMap "MessageAttribute" "Name" "Value" <$> _sMessageAttributes), "DelaySeconds" =: _sDelaySeconds, "MessageDeduplicationId" =: _sMessageDeduplicationId, "MessageGroupId" =: _sMessageGroupId, "Id" =: _sId, "MessageBody" =: _sMessageBody] -- | Encloses a message ID for successfully enqueued message of a 'SendMessageBatch' . -- -- -- -- /See:/ 'sendMessageBatchResultEntry' smart constructor. data SendMessageBatchResultEntry = SendMessageBatchResultEntry' { _smbreSequenceNumber :: !(Maybe Text) , _smbreMD5OfMessageAttributes :: !(Maybe Text) , _smbreId :: !Text , _smbreMessageId :: !Text , _smbreMD5OfMessageBody :: !Text } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'SendMessageBatchResultEntry' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'smbreSequenceNumber' - /This element applies only to FIFO (first-in-first-out) queues./ A large, non-consecutive number that Amazon SQS assigns to each message. The length of @SequenceNumber@ is 128 bits. As @SequenceNumber@ continues to increase for a particular @MessageGroupId@ . -- -- * 'smbreMD5OfMessageAttributes' - An MD5 digest of the non-URL-encoded message attribute string. This can be used to verify that Amazon SQS received the message batch correctly. Amazon SQS first URL decodes the message before creating the MD5 digest. For information about MD5, see . -- -- * 'smbreId' - An identifier for the message in this batch. -- -- * 'smbreMessageId' - An identifier for the message. -- -- * 'smbreMD5OfMessageBody' - An MD5 digest of the non-URL-encoded message body string. This can be used to verify that Amazon SQS received the message correctly. Amazon SQS first URL decodes the message before creating the MD5 digest. For information about MD5, see . sendMessageBatchResultEntry :: Text -- ^ 'smbreId' -> Text -- ^ 'smbreMessageId' -> Text -- ^ 'smbreMD5OfMessageBody' -> SendMessageBatchResultEntry sendMessageBatchResultEntry pId_ pMessageId_ pMD5OfMessageBody_ = SendMessageBatchResultEntry' { _smbreSequenceNumber = Nothing , _smbreMD5OfMessageAttributes = Nothing , _smbreId = pId_ , _smbreMessageId = pMessageId_ , _smbreMD5OfMessageBody = pMD5OfMessageBody_ } -- | /This element applies only to FIFO (first-in-first-out) queues./ A large, non-consecutive number that Amazon SQS assigns to each message. The length of @SequenceNumber@ is 128 bits. As @SequenceNumber@ continues to increase for a particular @MessageGroupId@ . smbreSequenceNumber :: Lens' SendMessageBatchResultEntry (Maybe Text) smbreSequenceNumber = lens _smbreSequenceNumber (\ s a -> s{_smbreSequenceNumber = a}); -- | An MD5 digest of the non-URL-encoded message attribute string. This can be used to verify that Amazon SQS received the message batch correctly. Amazon SQS first URL decodes the message before creating the MD5 digest. For information about MD5, see . smbreMD5OfMessageAttributes :: Lens' SendMessageBatchResultEntry (Maybe Text) smbreMD5OfMessageAttributes = lens _smbreMD5OfMessageAttributes (\ s a -> s{_smbreMD5OfMessageAttributes = a}); -- | An identifier for the message in this batch. smbreId :: Lens' SendMessageBatchResultEntry Text smbreId = lens _smbreId (\ s a -> s{_smbreId = a}); -- | An identifier for the message. smbreMessageId :: Lens' SendMessageBatchResultEntry Text smbreMessageId = lens _smbreMessageId (\ s a -> s{_smbreMessageId = a}); -- | An MD5 digest of the non-URL-encoded message body string. This can be used to verify that Amazon SQS received the message correctly. Amazon SQS first URL decodes the message before creating the MD5 digest. For information about MD5, see . smbreMD5OfMessageBody :: Lens' SendMessageBatchResultEntry Text smbreMD5OfMessageBody = lens _smbreMD5OfMessageBody (\ s a -> s{_smbreMD5OfMessageBody = a}); instance FromXML SendMessageBatchResultEntry where parseXML x = SendMessageBatchResultEntry' <$> (x .@? "SequenceNumber") <*> (x .@? "MD5OfMessageAttributes") <*> (x .@ "Id") <*> (x .@ "MessageId") <*> (x .@ "MD5OfMessageBody") instance Hashable SendMessageBatchResultEntry instance NFData SendMessageBatchResultEntry