/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include namespace Aws { namespace SQS { namespace Model { /** *

See Also:

AWS * API Reference

*/ class SendMessageRequest : public SQSRequest { public: AWS_SQS_API SendMessageRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "SendMessage"; } AWS_SQS_API Aws::String SerializePayload() const override; protected: AWS_SQS_API void DumpBodyToUrl(Aws::Http::URI& uri ) const override; public: /** *

The URL of the Amazon SQS queue to which a message is sent.

Queue URLs * and names are case-sensitive.

*/ inline const Aws::String& GetQueueUrl() const{ return m_queueUrl; } /** *

The URL of the Amazon SQS queue to which a message is sent.

Queue URLs * and names are case-sensitive.

*/ inline bool QueueUrlHasBeenSet() const { return m_queueUrlHasBeenSet; } /** *

The URL of the Amazon SQS queue to which a message is sent.

Queue URLs * and names are case-sensitive.

*/ inline void SetQueueUrl(const Aws::String& value) { m_queueUrlHasBeenSet = true; m_queueUrl = value; } /** *

The URL of the Amazon SQS queue to which a message is sent.

Queue URLs * and names are case-sensitive.

*/ inline void SetQueueUrl(Aws::String&& value) { m_queueUrlHasBeenSet = true; m_queueUrl = std::move(value); } /** *

The URL of the Amazon SQS queue to which a message is sent.

Queue URLs * and names are case-sensitive.

*/ inline void SetQueueUrl(const char* value) { m_queueUrlHasBeenSet = true; m_queueUrl.assign(value); } /** *

The URL of the Amazon SQS queue to which a message is sent.

Queue URLs * and names are case-sensitive.

*/ inline SendMessageRequest& WithQueueUrl(const Aws::String& value) { SetQueueUrl(value); return *this;} /** *

The URL of the Amazon SQS queue to which a message is sent.

Queue URLs * and names are case-sensitive.

*/ inline SendMessageRequest& WithQueueUrl(Aws::String&& value) { SetQueueUrl(std::move(value)); return *this;} /** *

The URL of the Amazon SQS queue to which a message is sent.

Queue URLs * and names are case-sensitive.

*/ inline SendMessageRequest& WithQueueUrl(const char* value) { SetQueueUrl(value); return *this;} /** *

The message to send. The minimum size is one character. The maximum size is * 256 KiB.

A message can include only XML, JSON, and * unformatted text. The following Unicode characters are allowed:

* #x9 | #xA | #xD | #x20 to * #xD7FF | #xE000 to #xFFFD | * #x10000 to #x10FFFF

Any characters not * included in this list will be rejected. For more information, see the W3C specification for * characters.

*/ inline const Aws::String& GetMessageBody() const{ return m_messageBody; } /** *

The message to send. The minimum size is one character. The maximum size is * 256 KiB.

A message can include only XML, JSON, and * unformatted text. The following Unicode characters are allowed:

* #x9 | #xA | #xD | #x20 to * #xD7FF | #xE000 to #xFFFD | * #x10000 to #x10FFFF

Any characters not * included in this list will be rejected. For more information, see the W3C specification for * characters.

*/ inline bool MessageBodyHasBeenSet() const { return m_messageBodyHasBeenSet; } /** *

The message to send. The minimum size is one character. The maximum size is * 256 KiB.

A message can include only XML, JSON, and * unformatted text. The following Unicode characters are allowed:

* #x9 | #xA | #xD | #x20 to * #xD7FF | #xE000 to #xFFFD | * #x10000 to #x10FFFF

Any characters not * included in this list will be rejected. For more information, see the W3C specification for * characters.

*/ inline void SetMessageBody(const Aws::String& value) { m_messageBodyHasBeenSet = true; m_messageBody = value; } /** *

The message to send. The minimum size is one character. The maximum size is * 256 KiB.

A message can include only XML, JSON, and * unformatted text. The following Unicode characters are allowed:

* #x9 | #xA | #xD | #x20 to * #xD7FF | #xE000 to #xFFFD | * #x10000 to #x10FFFF

Any characters not * included in this list will be rejected. For more information, see the W3C specification for * characters.

*/ inline void SetMessageBody(Aws::String&& value) { m_messageBodyHasBeenSet = true; m_messageBody = std::move(value); } /** *

The message to send. The minimum size is one character. The maximum size is * 256 KiB.

A message can include only XML, JSON, and * unformatted text. The following Unicode characters are allowed:

* #x9 | #xA | #xD | #x20 to * #xD7FF | #xE000 to #xFFFD | * #x10000 to #x10FFFF

Any characters not * included in this list will be rejected. For more information, see the W3C specification for * characters.

*/ inline void SetMessageBody(const char* value) { m_messageBodyHasBeenSet = true; m_messageBody.assign(value); } /** *

The message to send. The minimum size is one character. The maximum size is * 256 KiB.

A message can include only XML, JSON, and * unformatted text. The following Unicode characters are allowed:

* #x9 | #xA | #xD | #x20 to * #xD7FF | #xE000 to #xFFFD | * #x10000 to #x10FFFF

Any characters not * included in this list will be rejected. For more information, see the W3C specification for * characters.

*/ inline SendMessageRequest& WithMessageBody(const Aws::String& value) { SetMessageBody(value); return *this;} /** *

The message to send. The minimum size is one character. The maximum size is * 256 KiB.

A message can include only XML, JSON, and * unformatted text. The following Unicode characters are allowed:

* #x9 | #xA | #xD | #x20 to * #xD7FF | #xE000 to #xFFFD | * #x10000 to #x10FFFF

Any characters not * included in this list will be rejected. For more information, see the W3C specification for * characters.

*/ inline SendMessageRequest& WithMessageBody(Aws::String&& value) { SetMessageBody(std::move(value)); return *this;} /** *

The message to send. The minimum size is one character. The maximum size is * 256 KiB.

A message can include only XML, JSON, and * unformatted text. The following Unicode characters are allowed:

* #x9 | #xA | #xD | #x20 to * #xD7FF | #xE000 to #xFFFD | * #x10000 to #x10FFFF

Any characters not * included in this list will be rejected. For more information, see the W3C specification for * characters.

*/ inline SendMessageRequest& WithMessageBody(const char* value) { SetMessageBody(value); return *this;} /** *

The length of time, in seconds, for which to delay a specific message. Valid * values: 0 to 900. Maximum: 15 minutes. Messages with a positive * DelaySeconds value become available for processing after the delay * period is finished. If you don't specify a value, the default value for the * queue applies.

When you set FifoQueue, you can't set * DelaySeconds per message. You can set this parameter only on a * queue level.

*/ inline int GetDelaySeconds() const{ return m_delaySeconds; } /** *

The length of time, in seconds, for which to delay a specific message. Valid * values: 0 to 900. Maximum: 15 minutes. Messages with a positive * DelaySeconds value become available for processing after the delay * period is finished. If you don't specify a value, the default value for the * queue applies.

When you set FifoQueue, you can't set * DelaySeconds per message. You can set this parameter only on a * queue level.

*/ inline bool DelaySecondsHasBeenSet() const { return m_delaySecondsHasBeenSet; } /** *

The length of time, in seconds, for which to delay a specific message. Valid * values: 0 to 900. Maximum: 15 minutes. Messages with a positive * DelaySeconds value become available for processing after the delay * period is finished. If you don't specify a value, the default value for the * queue applies.

When you set FifoQueue, you can't set * DelaySeconds per message. You can set this parameter only on a * queue level.

*/ inline void SetDelaySeconds(int value) { m_delaySecondsHasBeenSet = true; m_delaySeconds = value; } /** *

The length of time, in seconds, for which to delay a specific message. Valid * values: 0 to 900. Maximum: 15 minutes. Messages with a positive * DelaySeconds value become available for processing after the delay * period is finished. If you don't specify a value, the default value for the * queue applies.

When you set FifoQueue, you can't set * DelaySeconds per message. You can set this parameter only on a * queue level.

*/ inline SendMessageRequest& WithDelaySeconds(int value) { SetDelaySeconds(value); return *this;} /** *

Each message attribute consists of a Name, Type, * and Value. For more information, see Amazon * SQS message attributes in the Amazon SQS Developer Guide.

*/ inline const Aws::Map& GetMessageAttributes() const{ return m_messageAttributes; } /** *

Each message attribute consists of a Name, Type, * and Value. For more information, see Amazon * SQS message attributes in the Amazon SQS Developer Guide.

*/ inline bool MessageAttributesHasBeenSet() const { return m_messageAttributesHasBeenSet; } /** *

Each message attribute consists of a Name, Type, * and Value. For more information, see Amazon * SQS message attributes in the Amazon SQS Developer Guide.

*/ inline void SetMessageAttributes(const Aws::Map& value) { m_messageAttributesHasBeenSet = true; m_messageAttributes = value; } /** *

Each message attribute consists of a Name, Type, * and Value. For more information, see Amazon * SQS message attributes in the Amazon SQS Developer Guide.

*/ inline void SetMessageAttributes(Aws::Map&& value) { m_messageAttributesHasBeenSet = true; m_messageAttributes = std::move(value); } /** *

Each message attribute consists of a Name, Type, * and Value. For more information, see Amazon * SQS message attributes in the Amazon SQS Developer Guide.

*/ inline SendMessageRequest& WithMessageAttributes(const Aws::Map& value) { SetMessageAttributes(value); return *this;} /** *

Each message attribute consists of a Name, Type, * and Value. For more information, see Amazon * SQS message attributes in the Amazon SQS Developer Guide.

*/ inline SendMessageRequest& WithMessageAttributes(Aws::Map&& value) { SetMessageAttributes(std::move(value)); return *this;} /** *

Each message attribute consists of a Name, Type, * and Value. For more information, see Amazon * SQS message attributes in the Amazon SQS Developer Guide.

*/ inline SendMessageRequest& AddMessageAttributes(const Aws::String& key, const MessageAttributeValue& value) { m_messageAttributesHasBeenSet = true; m_messageAttributes.emplace(key, value); return *this; } /** *

Each message attribute consists of a Name, Type, * and Value. For more information, see Amazon * SQS message attributes in the Amazon SQS Developer Guide.

*/ inline SendMessageRequest& AddMessageAttributes(Aws::String&& key, const MessageAttributeValue& value) { m_messageAttributesHasBeenSet = true; m_messageAttributes.emplace(std::move(key), value); return *this; } /** *

Each message attribute consists of a Name, Type, * and Value. For more information, see Amazon * SQS message attributes in the Amazon SQS Developer Guide.

*/ inline SendMessageRequest& AddMessageAttributes(const Aws::String& key, MessageAttributeValue&& value) { m_messageAttributesHasBeenSet = true; m_messageAttributes.emplace(key, std::move(value)); return *this; } /** *

Each message attribute consists of a Name, Type, * and Value. For more information, see Amazon * SQS message attributes in the Amazon SQS Developer Guide.

*/ inline SendMessageRequest& AddMessageAttributes(Aws::String&& key, MessageAttributeValue&& value) { m_messageAttributesHasBeenSet = true; m_messageAttributes.emplace(std::move(key), std::move(value)); return *this; } /** *

Each message attribute consists of a Name, Type, * and Value. For more information, see Amazon * SQS message attributes in the Amazon SQS Developer Guide.

*/ inline SendMessageRequest& AddMessageAttributes(const char* key, MessageAttributeValue&& value) { m_messageAttributesHasBeenSet = true; m_messageAttributes.emplace(key, std::move(value)); return *this; } /** *

Each message attribute consists of a Name, Type, * and Value. For more information, see Amazon * SQS message attributes in the Amazon SQS Developer Guide.

*/ inline SendMessageRequest& AddMessageAttributes(const char* key, const MessageAttributeValue& value) { m_messageAttributesHasBeenSet = true; m_messageAttributes.emplace(key, value); return *this; } /** *

The message system attribute to send. Each message system attribute consists * of a Name, Type, and Value.

*
  • Currently, the only supported message system attribute * is AWSTraceHeader. Its type must be String and its * value must be a correctly formatted X-Ray trace header string.

  • *

    The size of a message system attribute doesn't count towards the total size * of a message.

*/ inline const Aws::Map& GetMessageSystemAttributes() const{ return m_messageSystemAttributes; } /** *

The message system attribute to send. Each message system attribute consists * of a Name, Type, and Value.

*
  • Currently, the only supported message system attribute * is AWSTraceHeader. Its type must be String and its * value must be a correctly formatted X-Ray trace header string.

  • *

    The size of a message system attribute doesn't count towards the total size * of a message.

*/ inline bool MessageSystemAttributesHasBeenSet() const { return m_messageSystemAttributesHasBeenSet; } /** *

The message system attribute to send. Each message system attribute consists * of a Name, Type, and Value.

*
  • Currently, the only supported message system attribute * is AWSTraceHeader. Its type must be String and its * value must be a correctly formatted X-Ray trace header string.

  • *

    The size of a message system attribute doesn't count towards the total size * of a message.

*/ inline void SetMessageSystemAttributes(const Aws::Map& value) { m_messageSystemAttributesHasBeenSet = true; m_messageSystemAttributes = value; } /** *

The message system attribute to send. Each message system attribute consists * of a Name, Type, and Value.

*
  • Currently, the only supported message system attribute * is AWSTraceHeader. Its type must be String and its * value must be a correctly formatted X-Ray trace header string.

  • *

    The size of a message system attribute doesn't count towards the total size * of a message.

*/ inline void SetMessageSystemAttributes(Aws::Map&& value) { m_messageSystemAttributesHasBeenSet = true; m_messageSystemAttributes = std::move(value); } /** *

The message system attribute to send. Each message system attribute consists * of a Name, Type, and Value.

*
  • Currently, the only supported message system attribute * is AWSTraceHeader. Its type must be String and its * value must be a correctly formatted X-Ray trace header string.

  • *

    The size of a message system attribute doesn't count towards the total size * of a message.

*/ inline SendMessageRequest& WithMessageSystemAttributes(const Aws::Map& value) { SetMessageSystemAttributes(value); return *this;} /** *

The message system attribute to send. Each message system attribute consists * of a Name, Type, and Value.

*
  • Currently, the only supported message system attribute * is AWSTraceHeader. Its type must be String and its * value must be a correctly formatted X-Ray trace header string.

  • *

    The size of a message system attribute doesn't count towards the total size * of a message.

*/ inline SendMessageRequest& WithMessageSystemAttributes(Aws::Map&& value) { SetMessageSystemAttributes(std::move(value)); return *this;} /** *

The message system attribute to send. Each message system attribute consists * of a Name, Type, and Value.

*
  • Currently, the only supported message system attribute * is AWSTraceHeader. Its type must be String and its * value must be a correctly formatted X-Ray trace header string.

  • *

    The size of a message system attribute doesn't count towards the total size * of a message.

*/ inline SendMessageRequest& AddMessageSystemAttributes(const MessageSystemAttributeNameForSends& key, const MessageSystemAttributeValue& value) { m_messageSystemAttributesHasBeenSet = true; m_messageSystemAttributes.emplace(key, value); return *this; } /** *

The message system attribute to send. Each message system attribute consists * of a Name, Type, and Value.

*
  • Currently, the only supported message system attribute * is AWSTraceHeader. Its type must be String and its * value must be a correctly formatted X-Ray trace header string.

  • *

    The size of a message system attribute doesn't count towards the total size * of a message.

*/ inline SendMessageRequest& AddMessageSystemAttributes(MessageSystemAttributeNameForSends&& key, const MessageSystemAttributeValue& value) { m_messageSystemAttributesHasBeenSet = true; m_messageSystemAttributes.emplace(std::move(key), value); return *this; } /** *

The message system attribute to send. Each message system attribute consists * of a Name, Type, and Value.

*
  • Currently, the only supported message system attribute * is AWSTraceHeader. Its type must be String and its * value must be a correctly formatted X-Ray trace header string.

  • *

    The size of a message system attribute doesn't count towards the total size * of a message.

*/ inline SendMessageRequest& AddMessageSystemAttributes(const MessageSystemAttributeNameForSends& key, MessageSystemAttributeValue&& value) { m_messageSystemAttributesHasBeenSet = true; m_messageSystemAttributes.emplace(key, std::move(value)); return *this; } /** *

The message system attribute to send. Each message system attribute consists * of a Name, Type, and Value.

*
  • Currently, the only supported message system attribute * is AWSTraceHeader. Its type must be String and its * value must be a correctly formatted X-Ray trace header string.

  • *

    The size of a message system attribute doesn't count towards the total size * of a message.

*/ inline SendMessageRequest& AddMessageSystemAttributes(MessageSystemAttributeNameForSends&& key, MessageSystemAttributeValue&& value) { m_messageSystemAttributesHasBeenSet = true; m_messageSystemAttributes.emplace(std::move(key), std::move(value)); return *this; } /** *

This parameter applies only to FIFO (first-in-first-out) queues.

The * token used for deduplication of sent messages. If a message with a particular * MessageDeduplicationId is sent successfully, any messages sent with * the same MessageDeduplicationId are accepted successfully but * aren't delivered during the 5-minute deduplication interval. For more * information, see * Exactly-once processing 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.

  • 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 MessageDeduplicationId is * available to the consumer of the message (this can be useful for troubleshooting * delivery issues).

If a message is sent successfully but the * acknowledgement is lost and the message is resent with the same * MessageDeduplicationId after the deduplication interval, Amazon SQS * can't detect duplicate messages.

Amazon SQS continues to keep track of * the message deduplication ID even after the message is received and deleted.

*

The maximum 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 Using * the MessageDeduplicationId Property in the Amazon SQS Developer * Guide.

*/ inline const Aws::String& GetMessageDeduplicationId() const{ return m_messageDeduplicationId; } /** *

This parameter applies only to FIFO (first-in-first-out) queues.

The * token used for deduplication of sent messages. If a message with a particular * MessageDeduplicationId is sent successfully, any messages sent with * the same MessageDeduplicationId are accepted successfully but * aren't delivered during the 5-minute deduplication interval. For more * information, see * Exactly-once processing 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.

  • 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 MessageDeduplicationId is * available to the consumer of the message (this can be useful for troubleshooting * delivery issues).

If a message is sent successfully but the * acknowledgement is lost and the message is resent with the same * MessageDeduplicationId after the deduplication interval, Amazon SQS * can't detect duplicate messages.

Amazon SQS continues to keep track of * the message deduplication ID even after the message is received and deleted.

*

The maximum 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 Using * the MessageDeduplicationId Property in the Amazon SQS Developer * Guide.

*/ inline bool MessageDeduplicationIdHasBeenSet() const { return m_messageDeduplicationIdHasBeenSet; } /** *

This parameter applies only to FIFO (first-in-first-out) queues.

The * token used for deduplication of sent messages. If a message with a particular * MessageDeduplicationId is sent successfully, any messages sent with * the same MessageDeduplicationId are accepted successfully but * aren't delivered during the 5-minute deduplication interval. For more * information, see * Exactly-once processing 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.

  • 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 MessageDeduplicationId is * available to the consumer of the message (this can be useful for troubleshooting * delivery issues).

If a message is sent successfully but the * acknowledgement is lost and the message is resent with the same * MessageDeduplicationId after the deduplication interval, Amazon SQS * can't detect duplicate messages.

Amazon SQS continues to keep track of * the message deduplication ID even after the message is received and deleted.

*

The maximum 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 Using * the MessageDeduplicationId Property in the Amazon SQS Developer * Guide.

*/ inline void SetMessageDeduplicationId(const Aws::String& value) { m_messageDeduplicationIdHasBeenSet = true; m_messageDeduplicationId = value; } /** *

This parameter applies only to FIFO (first-in-first-out) queues.

The * token used for deduplication of sent messages. If a message with a particular * MessageDeduplicationId is sent successfully, any messages sent with * the same MessageDeduplicationId are accepted successfully but * aren't delivered during the 5-minute deduplication interval. For more * information, see * Exactly-once processing 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.

  • 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 MessageDeduplicationId is * available to the consumer of the message (this can be useful for troubleshooting * delivery issues).

If a message is sent successfully but the * acknowledgement is lost and the message is resent with the same * MessageDeduplicationId after the deduplication interval, Amazon SQS * can't detect duplicate messages.

Amazon SQS continues to keep track of * the message deduplication ID even after the message is received and deleted.

*

The maximum 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 Using * the MessageDeduplicationId Property in the Amazon SQS Developer * Guide.

*/ inline void SetMessageDeduplicationId(Aws::String&& value) { m_messageDeduplicationIdHasBeenSet = true; m_messageDeduplicationId = std::move(value); } /** *

This parameter applies only to FIFO (first-in-first-out) queues.

The * token used for deduplication of sent messages. If a message with a particular * MessageDeduplicationId is sent successfully, any messages sent with * the same MessageDeduplicationId are accepted successfully but * aren't delivered during the 5-minute deduplication interval. For more * information, see * Exactly-once processing 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.

  • 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 MessageDeduplicationId is * available to the consumer of the message (this can be useful for troubleshooting * delivery issues).

If a message is sent successfully but the * acknowledgement is lost and the message is resent with the same * MessageDeduplicationId after the deduplication interval, Amazon SQS * can't detect duplicate messages.

Amazon SQS continues to keep track of * the message deduplication ID even after the message is received and deleted.

*

The maximum 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 Using * the MessageDeduplicationId Property in the Amazon SQS Developer * Guide.

*/ inline void SetMessageDeduplicationId(const char* value) { m_messageDeduplicationIdHasBeenSet = true; m_messageDeduplicationId.assign(value); } /** *

This parameter applies only to FIFO (first-in-first-out) queues.

The * token used for deduplication of sent messages. If a message with a particular * MessageDeduplicationId is sent successfully, any messages sent with * the same MessageDeduplicationId are accepted successfully but * aren't delivered during the 5-minute deduplication interval. For more * information, see * Exactly-once processing 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.

  • 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 MessageDeduplicationId is * available to the consumer of the message (this can be useful for troubleshooting * delivery issues).

If a message is sent successfully but the * acknowledgement is lost and the message is resent with the same * MessageDeduplicationId after the deduplication interval, Amazon SQS * can't detect duplicate messages.

Amazon SQS continues to keep track of * the message deduplication ID even after the message is received and deleted.

*

The maximum 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 Using * the MessageDeduplicationId Property in the Amazon SQS Developer * Guide.

*/ inline SendMessageRequest& WithMessageDeduplicationId(const Aws::String& value) { SetMessageDeduplicationId(value); return *this;} /** *

This parameter applies only to FIFO (first-in-first-out) queues.

The * token used for deduplication of sent messages. If a message with a particular * MessageDeduplicationId is sent successfully, any messages sent with * the same MessageDeduplicationId are accepted successfully but * aren't delivered during the 5-minute deduplication interval. For more * information, see * Exactly-once processing 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.

  • 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 MessageDeduplicationId is * available to the consumer of the message (this can be useful for troubleshooting * delivery issues).

If a message is sent successfully but the * acknowledgement is lost and the message is resent with the same * MessageDeduplicationId after the deduplication interval, Amazon SQS * can't detect duplicate messages.

Amazon SQS continues to keep track of * the message deduplication ID even after the message is received and deleted.

*

The maximum 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 Using * the MessageDeduplicationId Property in the Amazon SQS Developer * Guide.

*/ inline SendMessageRequest& WithMessageDeduplicationId(Aws::String&& value) { SetMessageDeduplicationId(std::move(value)); return *this;} /** *

This parameter applies only to FIFO (first-in-first-out) queues.

The * token used for deduplication of sent messages. If a message with a particular * MessageDeduplicationId is sent successfully, any messages sent with * the same MessageDeduplicationId are accepted successfully but * aren't delivered during the 5-minute deduplication interval. For more * information, see * Exactly-once processing 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.

  • 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 MessageDeduplicationId is * available to the consumer of the message (this can be useful for troubleshooting * delivery issues).

If a message is sent successfully but the * acknowledgement is lost and the message is resent with the same * MessageDeduplicationId after the deduplication interval, Amazon SQS * can't detect duplicate messages.

Amazon SQS continues to keep track of * the message deduplication ID even after the message is received and deleted.

*

The maximum 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 Using * the MessageDeduplicationId Property in the Amazon SQS Developer * Guide.

*/ inline SendMessageRequest& WithMessageDeduplicationId(const char* value) { SetMessageDeduplicationId(value); return *this;} /** *

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 consumers 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: alphanumeric * characters and punctuation * (!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~).

For best * practices of using MessageGroupId, see Using * the MessageGroupId Property in the Amazon SQS Developer Guide.

*

MessageGroupId is required for FIFO queues. You * can't use it for Standard queues.

*/ inline const Aws::String& GetMessageGroupId() const{ return m_messageGroupId; } /** *

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 consumers 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: alphanumeric * characters and punctuation * (!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~).

For best * practices of using MessageGroupId, see Using * the MessageGroupId Property in the Amazon SQS Developer Guide.

*

MessageGroupId is required for FIFO queues. You * can't use it for Standard queues.

*/ inline bool MessageGroupIdHasBeenSet() const { return m_messageGroupIdHasBeenSet; } /** *

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 consumers 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: alphanumeric * characters and punctuation * (!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~).

For best * practices of using MessageGroupId, see Using * the MessageGroupId Property in the Amazon SQS Developer Guide.

*

MessageGroupId is required for FIFO queues. You * can't use it for Standard queues.

*/ inline void SetMessageGroupId(const Aws::String& value) { m_messageGroupIdHasBeenSet = true; m_messageGroupId = value; } /** *

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 consumers 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: alphanumeric * characters and punctuation * (!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~).

For best * practices of using MessageGroupId, see Using * the MessageGroupId Property in the Amazon SQS Developer Guide.

*

MessageGroupId is required for FIFO queues. You * can't use it for Standard queues.

*/ inline void SetMessageGroupId(Aws::String&& value) { m_messageGroupIdHasBeenSet = true; m_messageGroupId = std::move(value); } /** *

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 consumers 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: alphanumeric * characters and punctuation * (!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~).

For best * practices of using MessageGroupId, see Using * the MessageGroupId Property in the Amazon SQS Developer Guide.

*

MessageGroupId is required for FIFO queues. You * can't use it for Standard queues.

*/ inline void SetMessageGroupId(const char* value) { m_messageGroupIdHasBeenSet = true; m_messageGroupId.assign(value); } /** *

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 consumers 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: alphanumeric * characters and punctuation * (!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~).

For best * practices of using MessageGroupId, see Using * the MessageGroupId Property in the Amazon SQS Developer Guide.

*

MessageGroupId is required for FIFO queues. You * can't use it for Standard queues.

*/ inline SendMessageRequest& WithMessageGroupId(const Aws::String& value) { SetMessageGroupId(value); return *this;} /** *

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 consumers 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: alphanumeric * characters and punctuation * (!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~).

For best * practices of using MessageGroupId, see Using * the MessageGroupId Property in the Amazon SQS Developer Guide.

*

MessageGroupId is required for FIFO queues. You * can't use it for Standard queues.

*/ inline SendMessageRequest& WithMessageGroupId(Aws::String&& value) { SetMessageGroupId(std::move(value)); return *this;} /** *

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 consumers 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: alphanumeric * characters and punctuation * (!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~).

For best * practices of using MessageGroupId, see Using * the MessageGroupId Property in the Amazon SQS Developer Guide.

*

MessageGroupId is required for FIFO queues. You * can't use it for Standard queues.

*/ inline SendMessageRequest& WithMessageGroupId(const char* value) { SetMessageGroupId(value); return *this;} private: Aws::String m_queueUrl; bool m_queueUrlHasBeenSet = false; Aws::String m_messageBody; bool m_messageBodyHasBeenSet = false; int m_delaySeconds; bool m_delaySecondsHasBeenSet = false; Aws::Map m_messageAttributes; bool m_messageAttributesHasBeenSet = false; Aws::Map m_messageSystemAttributes; bool m_messageSystemAttributesHasBeenSet = false; Aws::String m_messageDeduplicationId; bool m_messageDeduplicationIdHasBeenSet = false; Aws::String m_messageGroupId; bool m_messageGroupIdHasBeenSet = false; }; } // namespace Model } // namespace SQS } // namespace Aws