class Aws::SQS::Types::SendMessageRequest

@note When making an API call, you may pass SendMessageRequest

data as a hash:

    {
      queue_url: "String", # required
      message_body: "String", # required
      delay_seconds: 1,
      message_attributes: {
        "String" => {
          string_value: "String",
          binary_value: "data",
          string_list_values: ["String"],
          binary_list_values: ["data"],
          data_type: "String", # required
        },
      },
      message_system_attributes: {
        "AWSTraceHeader" => {
          string_value: "String",
          binary_value: "data",
          string_list_values: ["String"],
          binary_list_values: ["data"],
          data_type: "String", # required
        },
      },
      message_deduplication_id: "String",
      message_group_id: "String",
    }

@!attribute [rw] queue_url

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

Queue URLs and names are case-sensitive.
@return [String]

@!attribute [rw] message_body

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

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][1].

[1]: http://www.w3.org/TR/REC-xml/#charsets
@return [String]

@!attribute [rw] delay_seconds

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.

<note markdown="1"> When you set `FifoQueue`, you can't set `DelaySeconds` per message.
You can set this parameter only on a queue level.

 </note>
@return [Integer]

@!attribute [rw] message_attributes

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

[1]: https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-message-metadata.html#sqs-message-attributes
@return [Hash<String,Types::MessageAttributeValue>]

@!attribute [rw] message_system_attributes

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.
@return [Hash<String,Types::MessageSystemAttributeValue>]

@!attribute [rw] message_deduplication_id

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][1] 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.

<note markdown="1"> 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.

 </note>

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][2] in the *Amazon SQS Developer
Guide*.

[1]: https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues-exactly-once-processing.html
[2]: https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/using-messagededuplicationid-property.html
@return [String]

@!attribute [rw] message_group_id

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][1] in the *Amazon SQS Developer Guide*.

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

[1]: https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/using-messagegroupid-property.html
@return [String]

@see docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/SendMessageRequest AWS API Documentation

Constants

SENSITIVE