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

See Also:

AWS * API Reference

*/ class AWS_SQS_API ReceiveMessageRequest : public SQSRequest { public: ReceiveMessageRequest(); // 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 "ReceiveMessage"; } Aws::String SerializePayload() const override; protected: void DumpBodyToUrl(Aws::Http::URI& uri ) const override; public: /** *

The URL of the Amazon SQS queue from which messages are received.

*

Queue URLs and names are case-sensitive.

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

The URL of the Amazon SQS queue from which messages are received.

*

Queue URLs and names are case-sensitive.

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

The URL of the Amazon SQS queue from which messages are received.

*

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 from which messages are received.

*

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 from which messages are received.

*

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 from which messages are received.

*

Queue URLs and names are case-sensitive.

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

The URL of the Amazon SQS queue from which messages are received.

*

Queue URLs and names are case-sensitive.

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

The URL of the Amazon SQS queue from which messages are received.

*

Queue URLs and names are case-sensitive.

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

A list of attributes that need to be returned along with each message. These * attributes include:

  • All – Returns all values.

    *
  • ApproximateFirstReceiveTimestamp – Returns the time * the message was first received from the queue (epoch time in * milliseconds).

  • ApproximateReceiveCount – Returns * the number of times a message has been received across all queues but not * deleted.

  • AWSTraceHeader – Returns the AWS X-Ray * trace header string.

  • SenderId

    • *

      For an IAM user, returns the IAM user ID, for example * ABCDEFGHI1JKLMNOPQ23R.

    • For an IAM role, returns * the IAM role ID, for example ABCDE1F2GH3I4JK5LMNOP:i-a123b456.

      *
  • SentTimestamp – Returns the time the * message was sent to the queue (epoch time in * milliseconds).

  • MessageDeduplicationId – Returns * the value provided by the producer that calls the SendMessage * action.

  • MessageGroupId – Returns the * value provided by the producer that calls the SendMessage * action. Messages with the same MessageGroupId are returned in * sequence.

  • SequenceNumber – Returns the value * provided by Amazon SQS.

*/ inline const Aws::Vector& GetAttributeNames() const{ return m_attributeNames; } /** *

A list of attributes that need to be returned along with each message. These * attributes include:

  • All – Returns all values.

    *
  • ApproximateFirstReceiveTimestamp – Returns the time * the message was first received from the queue (epoch time in * milliseconds).

  • ApproximateReceiveCount – Returns * the number of times a message has been received across all queues but not * deleted.

  • AWSTraceHeader – Returns the AWS X-Ray * trace header string.

  • SenderId

    • *

      For an IAM user, returns the IAM user ID, for example * ABCDEFGHI1JKLMNOPQ23R.

    • For an IAM role, returns * the IAM role ID, for example ABCDE1F2GH3I4JK5LMNOP:i-a123b456.

      *
  • SentTimestamp – Returns the time the * message was sent to the queue (epoch time in * milliseconds).

  • MessageDeduplicationId – Returns * the value provided by the producer that calls the SendMessage * action.

  • MessageGroupId – Returns the * value provided by the producer that calls the SendMessage * action. Messages with the same MessageGroupId are returned in * sequence.

  • SequenceNumber – Returns the value * provided by Amazon SQS.

*/ inline bool AttributeNamesHasBeenSet() const { return m_attributeNamesHasBeenSet; } /** *

A list of attributes that need to be returned along with each message. These * attributes include:

  • All – Returns all values.

    *
  • ApproximateFirstReceiveTimestamp – Returns the time * the message was first received from the queue (epoch time in * milliseconds).

  • ApproximateReceiveCount – Returns * the number of times a message has been received across all queues but not * deleted.

  • AWSTraceHeader – Returns the AWS X-Ray * trace header string.

  • SenderId

    • *

      For an IAM user, returns the IAM user ID, for example * ABCDEFGHI1JKLMNOPQ23R.

    • For an IAM role, returns * the IAM role ID, for example ABCDE1F2GH3I4JK5LMNOP:i-a123b456.

      *
  • SentTimestamp – Returns the time the * message was sent to the queue (epoch time in * milliseconds).

  • MessageDeduplicationId – Returns * the value provided by the producer that calls the SendMessage * action.

  • MessageGroupId – Returns the * value provided by the producer that calls the SendMessage * action. Messages with the same MessageGroupId are returned in * sequence.

  • SequenceNumber – Returns the value * provided by Amazon SQS.

*/ inline void SetAttributeNames(const Aws::Vector& value) { m_attributeNamesHasBeenSet = true; m_attributeNames = value; } /** *

A list of attributes that need to be returned along with each message. These * attributes include:

  • All – Returns all values.

    *
  • ApproximateFirstReceiveTimestamp – Returns the time * the message was first received from the queue (epoch time in * milliseconds).

  • ApproximateReceiveCount – Returns * the number of times a message has been received across all queues but not * deleted.

  • AWSTraceHeader – Returns the AWS X-Ray * trace header string.

  • SenderId

    • *

      For an IAM user, returns the IAM user ID, for example * ABCDEFGHI1JKLMNOPQ23R.

    • For an IAM role, returns * the IAM role ID, for example ABCDE1F2GH3I4JK5LMNOP:i-a123b456.

      *
  • SentTimestamp – Returns the time the * message was sent to the queue (epoch time in * milliseconds).

  • MessageDeduplicationId – Returns * the value provided by the producer that calls the SendMessage * action.

  • MessageGroupId – Returns the * value provided by the producer that calls the SendMessage * action. Messages with the same MessageGroupId are returned in * sequence.

  • SequenceNumber – Returns the value * provided by Amazon SQS.

*/ inline void SetAttributeNames(Aws::Vector&& value) { m_attributeNamesHasBeenSet = true; m_attributeNames = std::move(value); } /** *

A list of attributes that need to be returned along with each message. These * attributes include:

  • All – Returns all values.

    *
  • ApproximateFirstReceiveTimestamp – Returns the time * the message was first received from the queue (epoch time in * milliseconds).

  • ApproximateReceiveCount – Returns * the number of times a message has been received across all queues but not * deleted.

  • AWSTraceHeader – Returns the AWS X-Ray * trace header string.

  • SenderId

    • *

      For an IAM user, returns the IAM user ID, for example * ABCDEFGHI1JKLMNOPQ23R.

    • For an IAM role, returns * the IAM role ID, for example ABCDE1F2GH3I4JK5LMNOP:i-a123b456.

      *
  • SentTimestamp – Returns the time the * message was sent to the queue (epoch time in * milliseconds).

  • MessageDeduplicationId – Returns * the value provided by the producer that calls the SendMessage * action.

  • MessageGroupId – Returns the * value provided by the producer that calls the SendMessage * action. Messages with the same MessageGroupId are returned in * sequence.

  • SequenceNumber – Returns the value * provided by Amazon SQS.

*/ inline ReceiveMessageRequest& WithAttributeNames(const Aws::Vector& value) { SetAttributeNames(value); return *this;} /** *

A list of attributes that need to be returned along with each message. These * attributes include:

  • All – Returns all values.

    *
  • ApproximateFirstReceiveTimestamp – Returns the time * the message was first received from the queue (epoch time in * milliseconds).

  • ApproximateReceiveCount – Returns * the number of times a message has been received across all queues but not * deleted.

  • AWSTraceHeader – Returns the AWS X-Ray * trace header string.

  • SenderId

    • *

      For an IAM user, returns the IAM user ID, for example * ABCDEFGHI1JKLMNOPQ23R.

    • For an IAM role, returns * the IAM role ID, for example ABCDE1F2GH3I4JK5LMNOP:i-a123b456.

      *
  • SentTimestamp – Returns the time the * message was sent to the queue (epoch time in * milliseconds).

  • MessageDeduplicationId – Returns * the value provided by the producer that calls the SendMessage * action.

  • MessageGroupId – Returns the * value provided by the producer that calls the SendMessage * action. Messages with the same MessageGroupId are returned in * sequence.

  • SequenceNumber – Returns the value * provided by Amazon SQS.

*/ inline ReceiveMessageRequest& WithAttributeNames(Aws::Vector&& value) { SetAttributeNames(std::move(value)); return *this;} /** *

A list of attributes that need to be returned along with each message. These * attributes include:

  • All – Returns all values.

    *
  • ApproximateFirstReceiveTimestamp – Returns the time * the message was first received from the queue (epoch time in * milliseconds).

  • ApproximateReceiveCount – Returns * the number of times a message has been received across all queues but not * deleted.

  • AWSTraceHeader – Returns the AWS X-Ray * trace header string.

  • SenderId

    • *

      For an IAM user, returns the IAM user ID, for example * ABCDEFGHI1JKLMNOPQ23R.

    • For an IAM role, returns * the IAM role ID, for example ABCDE1F2GH3I4JK5LMNOP:i-a123b456.

      *
  • SentTimestamp – Returns the time the * message was sent to the queue (epoch time in * milliseconds).

  • MessageDeduplicationId – Returns * the value provided by the producer that calls the SendMessage * action.

  • MessageGroupId – Returns the * value provided by the producer that calls the SendMessage * action. Messages with the same MessageGroupId are returned in * sequence.

  • SequenceNumber – Returns the value * provided by Amazon SQS.

*/ inline ReceiveMessageRequest& AddAttributeNames(const QueueAttributeName& value) { m_attributeNamesHasBeenSet = true; m_attributeNames.push_back(value); return *this; } /** *

A list of attributes that need to be returned along with each message. These * attributes include:

  • All – Returns all values.

    *
  • ApproximateFirstReceiveTimestamp – Returns the time * the message was first received from the queue (epoch time in * milliseconds).

  • ApproximateReceiveCount – Returns * the number of times a message has been received across all queues but not * deleted.

  • AWSTraceHeader – Returns the AWS X-Ray * trace header string.

  • SenderId

    • *

      For an IAM user, returns the IAM user ID, for example * ABCDEFGHI1JKLMNOPQ23R.

    • For an IAM role, returns * the IAM role ID, for example ABCDE1F2GH3I4JK5LMNOP:i-a123b456.

      *
  • SentTimestamp – Returns the time the * message was sent to the queue (epoch time in * milliseconds).

  • MessageDeduplicationId – Returns * the value provided by the producer that calls the SendMessage * action.

  • MessageGroupId – Returns the * value provided by the producer that calls the SendMessage * action. Messages with the same MessageGroupId are returned in * sequence.

  • SequenceNumber – Returns the value * provided by Amazon SQS.

*/ inline ReceiveMessageRequest& AddAttributeNames(QueueAttributeName&& value) { m_attributeNamesHasBeenSet = true; m_attributeNames.push_back(std::move(value)); return *this; } /** *

The name of the message attribute, where N is the index.

  • *

    The name can contain alphanumeric characters and the underscore * (_), hyphen (-), and period (.).

    *
  • The name is case-sensitive and must be unique among all attribute * names for the message.

  • The name must not start with * AWS-reserved prefixes such as AWS. or Amazon. (or any * casing variants).

  • The name must not start or end with a period * (.), and it should not have periods in succession * (..).

  • The name can be up to 256 characters * long.

When using ReceiveMessage, you can send a * list of attribute names to receive, or you can return all of the attributes by * specifying All or .* in your request. You can also use * all message attributes starting with a prefix, for example * bar.*.

*/ inline const Aws::Vector& GetMessageAttributeNames() const{ return m_messageAttributeNames; } /** *

The name of the message attribute, where N is the index.

  • *

    The name can contain alphanumeric characters and the underscore * (_), hyphen (-), and period (.).

    *
  • The name is case-sensitive and must be unique among all attribute * names for the message.

  • The name must not start with * AWS-reserved prefixes such as AWS. or Amazon. (or any * casing variants).

  • The name must not start or end with a period * (.), and it should not have periods in succession * (..).

  • The name can be up to 256 characters * long.

When using ReceiveMessage, you can send a * list of attribute names to receive, or you can return all of the attributes by * specifying All or .* in your request. You can also use * all message attributes starting with a prefix, for example * bar.*.

*/ inline bool MessageAttributeNamesHasBeenSet() const { return m_messageAttributeNamesHasBeenSet; } /** *

The name of the message attribute, where N is the index.

  • *

    The name can contain alphanumeric characters and the underscore * (_), hyphen (-), and period (.).

    *
  • The name is case-sensitive and must be unique among all attribute * names for the message.

  • The name must not start with * AWS-reserved prefixes such as AWS. or Amazon. (or any * casing variants).

  • The name must not start or end with a period * (.), and it should not have periods in succession * (..).

  • The name can be up to 256 characters * long.

When using ReceiveMessage, you can send a * list of attribute names to receive, or you can return all of the attributes by * specifying All or .* in your request. You can also use * all message attributes starting with a prefix, for example * bar.*.

*/ inline void SetMessageAttributeNames(const Aws::Vector& value) { m_messageAttributeNamesHasBeenSet = true; m_messageAttributeNames = value; } /** *

The name of the message attribute, where N is the index.

  • *

    The name can contain alphanumeric characters and the underscore * (_), hyphen (-), and period (.).

    *
  • The name is case-sensitive and must be unique among all attribute * names for the message.

  • The name must not start with * AWS-reserved prefixes such as AWS. or Amazon. (or any * casing variants).

  • The name must not start or end with a period * (.), and it should not have periods in succession * (..).

  • The name can be up to 256 characters * long.

When using ReceiveMessage, you can send a * list of attribute names to receive, or you can return all of the attributes by * specifying All or .* in your request. You can also use * all message attributes starting with a prefix, for example * bar.*.

*/ inline void SetMessageAttributeNames(Aws::Vector&& value) { m_messageAttributeNamesHasBeenSet = true; m_messageAttributeNames = std::move(value); } /** *

The name of the message attribute, where N is the index.

  • *

    The name can contain alphanumeric characters and the underscore * (_), hyphen (-), and period (.).

    *
  • The name is case-sensitive and must be unique among all attribute * names for the message.

  • The name must not start with * AWS-reserved prefixes such as AWS. or Amazon. (or any * casing variants).

  • The name must not start or end with a period * (.), and it should not have periods in succession * (..).

  • The name can be up to 256 characters * long.

When using ReceiveMessage, you can send a * list of attribute names to receive, or you can return all of the attributes by * specifying All or .* in your request. You can also use * all message attributes starting with a prefix, for example * bar.*.

*/ inline ReceiveMessageRequest& WithMessageAttributeNames(const Aws::Vector& value) { SetMessageAttributeNames(value); return *this;} /** *

The name of the message attribute, where N is the index.

  • *

    The name can contain alphanumeric characters and the underscore * (_), hyphen (-), and period (.).

    *
  • The name is case-sensitive and must be unique among all attribute * names for the message.

  • The name must not start with * AWS-reserved prefixes such as AWS. or Amazon. (or any * casing variants).

  • The name must not start or end with a period * (.), and it should not have periods in succession * (..).

  • The name can be up to 256 characters * long.

When using ReceiveMessage, you can send a * list of attribute names to receive, or you can return all of the attributes by * specifying All or .* in your request. You can also use * all message attributes starting with a prefix, for example * bar.*.

*/ inline ReceiveMessageRequest& WithMessageAttributeNames(Aws::Vector&& value) { SetMessageAttributeNames(std::move(value)); return *this;} /** *

The name of the message attribute, where N is the index.

  • *

    The name can contain alphanumeric characters and the underscore * (_), hyphen (-), and period (.).

    *
  • The name is case-sensitive and must be unique among all attribute * names for the message.

  • The name must not start with * AWS-reserved prefixes such as AWS. or Amazon. (or any * casing variants).

  • The name must not start or end with a period * (.), and it should not have periods in succession * (..).

  • The name can be up to 256 characters * long.

When using ReceiveMessage, you can send a * list of attribute names to receive, or you can return all of the attributes by * specifying All or .* in your request. You can also use * all message attributes starting with a prefix, for example * bar.*.

*/ inline ReceiveMessageRequest& AddMessageAttributeNames(const Aws::String& value) { m_messageAttributeNamesHasBeenSet = true; m_messageAttributeNames.push_back(value); return *this; } /** *

The name of the message attribute, where N is the index.

  • *

    The name can contain alphanumeric characters and the underscore * (_), hyphen (-), and period (.).

    *
  • The name is case-sensitive and must be unique among all attribute * names for the message.

  • The name must not start with * AWS-reserved prefixes such as AWS. or Amazon. (or any * casing variants).

  • The name must not start or end with a period * (.), and it should not have periods in succession * (..).

  • The name can be up to 256 characters * long.

When using ReceiveMessage, you can send a * list of attribute names to receive, or you can return all of the attributes by * specifying All or .* in your request. You can also use * all message attributes starting with a prefix, for example * bar.*.

*/ inline ReceiveMessageRequest& AddMessageAttributeNames(Aws::String&& value) { m_messageAttributeNamesHasBeenSet = true; m_messageAttributeNames.push_back(std::move(value)); return *this; } /** *

The name of the message attribute, where N is the index.

  • *

    The name can contain alphanumeric characters and the underscore * (_), hyphen (-), and period (.).

    *
  • The name is case-sensitive and must be unique among all attribute * names for the message.

  • The name must not start with * AWS-reserved prefixes such as AWS. or Amazon. (or any * casing variants).

  • The name must not start or end with a period * (.), and it should not have periods in succession * (..).

  • The name can be up to 256 characters * long.

When using ReceiveMessage, you can send a * list of attribute names to receive, or you can return all of the attributes by * specifying All or .* in your request. You can also use * all message attributes starting with a prefix, for example * bar.*.

*/ inline ReceiveMessageRequest& AddMessageAttributeNames(const char* value) { m_messageAttributeNamesHasBeenSet = true; m_messageAttributeNames.push_back(value); return *this; } /** *

The maximum number of messages to return. Amazon SQS never returns more * messages than this value (however, fewer messages might be returned). Valid * values: 1 to 10. Default: 1.

*/ inline int GetMaxNumberOfMessages() const{ return m_maxNumberOfMessages; } /** *

The maximum number of messages to return. Amazon SQS never returns more * messages than this value (however, fewer messages might be returned). Valid * values: 1 to 10. Default: 1.

*/ inline bool MaxNumberOfMessagesHasBeenSet() const { return m_maxNumberOfMessagesHasBeenSet; } /** *

The maximum number of messages to return. Amazon SQS never returns more * messages than this value (however, fewer messages might be returned). Valid * values: 1 to 10. Default: 1.

*/ inline void SetMaxNumberOfMessages(int value) { m_maxNumberOfMessagesHasBeenSet = true; m_maxNumberOfMessages = value; } /** *

The maximum number of messages to return. Amazon SQS never returns more * messages than this value (however, fewer messages might be returned). Valid * values: 1 to 10. Default: 1.

*/ inline ReceiveMessageRequest& WithMaxNumberOfMessages(int value) { SetMaxNumberOfMessages(value); return *this;} /** *

The duration (in seconds) that the received messages are hidden from * subsequent retrieve requests after being retrieved by a * ReceiveMessage request.

*/ inline int GetVisibilityTimeout() const{ return m_visibilityTimeout; } /** *

The duration (in seconds) that the received messages are hidden from * subsequent retrieve requests after being retrieved by a * ReceiveMessage request.

*/ inline bool VisibilityTimeoutHasBeenSet() const { return m_visibilityTimeoutHasBeenSet; } /** *

The duration (in seconds) that the received messages are hidden from * subsequent retrieve requests after being retrieved by a * ReceiveMessage request.

*/ inline void SetVisibilityTimeout(int value) { m_visibilityTimeoutHasBeenSet = true; m_visibilityTimeout = value; } /** *

The duration (in seconds) that the received messages are hidden from * subsequent retrieve requests after being retrieved by a * ReceiveMessage request.

*/ inline ReceiveMessageRequest& WithVisibilityTimeout(int value) { SetVisibilityTimeout(value); return *this;} /** *

The duration (in seconds) for which the call waits for a message to arrive in * the queue before returning. If a message is available, the call returns sooner * than WaitTimeSeconds. If no messages are available and the wait * time expires, the call returns successfully with an empty list of messages.

*

To avoid HTTP errors, ensure that the HTTP response timeout for * ReceiveMessage requests is longer than the * WaitTimeSeconds parameter. For example, with the Java SDK, you can * set HTTP transport settings using the * NettyNioAsyncHttpClient for asynchronous clients, or the * ApacheHttpClient for synchronous clients.

*/ inline int GetWaitTimeSeconds() const{ return m_waitTimeSeconds; } /** *

The duration (in seconds) for which the call waits for a message to arrive in * the queue before returning. If a message is available, the call returns sooner * than WaitTimeSeconds. If no messages are available and the wait * time expires, the call returns successfully with an empty list of messages.

*

To avoid HTTP errors, ensure that the HTTP response timeout for * ReceiveMessage requests is longer than the * WaitTimeSeconds parameter. For example, with the Java SDK, you can * set HTTP transport settings using the * NettyNioAsyncHttpClient for asynchronous clients, or the * ApacheHttpClient for synchronous clients.

*/ inline bool WaitTimeSecondsHasBeenSet() const { return m_waitTimeSecondsHasBeenSet; } /** *

The duration (in seconds) for which the call waits for a message to arrive in * the queue before returning. If a message is available, the call returns sooner * than WaitTimeSeconds. If no messages are available and the wait * time expires, the call returns successfully with an empty list of messages.

*

To avoid HTTP errors, ensure that the HTTP response timeout for * ReceiveMessage requests is longer than the * WaitTimeSeconds parameter. For example, with the Java SDK, you can * set HTTP transport settings using the * NettyNioAsyncHttpClient for asynchronous clients, or the * ApacheHttpClient for synchronous clients.

*/ inline void SetWaitTimeSeconds(int value) { m_waitTimeSecondsHasBeenSet = true; m_waitTimeSeconds = value; } /** *

The duration (in seconds) for which the call waits for a message to arrive in * the queue before returning. If a message is available, the call returns sooner * than WaitTimeSeconds. If no messages are available and the wait * time expires, the call returns successfully with an empty list of messages.

*

To avoid HTTP errors, ensure that the HTTP response timeout for * ReceiveMessage requests is longer than the * WaitTimeSeconds parameter. For example, with the Java SDK, you can * set HTTP transport settings using the * NettyNioAsyncHttpClient for asynchronous clients, or the * ApacheHttpClient for synchronous clients.

*/ inline ReceiveMessageRequest& WithWaitTimeSeconds(int value) { SetWaitTimeSeconds(value); return *this;} /** *

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

The * token used for deduplication of ReceiveMessage calls. If a * networking issue occurs after a ReceiveMessage action, and instead * of a response you receive a generic error, it is possible to retry the same * action with an identical ReceiveRequestAttemptId to retrieve the * same set of messages, even if their visibility timeout has not yet expired.

*
  • You can use ReceiveRequestAttemptId only for 5 minutes * after a ReceiveMessage action.

  • When you set * FifoQueue, a caller of the ReceiveMessage action can * provide a ReceiveRequestAttemptId explicitly.

  • If * a caller of the ReceiveMessage action doesn't provide a * ReceiveRequestAttemptId, Amazon SQS generates a * ReceiveRequestAttemptId.

  • It is possible to retry * the ReceiveMessage action with the same * ReceiveRequestAttemptId if none of the messages have been modified * (deleted or had their visibility changes).

  • During a visibility * timeout, subsequent calls with the same ReceiveRequestAttemptId * return the same messages and receipt handles. If a retry occurs within the * deduplication interval, it resets the visibility timeout. For more information, * see Visibility * Timeout in the Amazon Simple Queue Service Developer Guide.

    *

    If a caller of the ReceiveMessage action still * processes messages when the visibility timeout expires and messages become * visible, another worker consuming from the same queue can receive the same * messages and therefore process duplicates. Also, if a consumer whose message * processing time is longer than the visibility timeout tries to delete the * processed messages, the action fails with an error.

    To mitigate this * effect, ensure that your application observes a safe threshold before the * visibility timeout expires and extend the visibility timeout as necessary.

    *
  • While messages with a particular * MessageGroupId are invisible, no more messages belonging to the * same MessageGroupId are returned until the visibility timeout * expires. You can still receive messages with another MessageGroupId * as long as it is also visible.

  • If a caller of * ReceiveMessage can't track the * ReceiveRequestAttemptId, no retries work until the original * visibility timeout expires. As a result, delays might occur but the messages in * the queue remain in a strict order.

The maximum length of * ReceiveRequestAttemptId is 128 characters. * ReceiveRequestAttemptId can contain alphanumeric characters * (a-z, A-Z, 0-9) and punctuation * (!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~).

For best * practices of using ReceiveRequestAttemptId, see Using * the ReceiveRequestAttemptId Request Parameter in the Amazon Simple Queue * Service Developer Guide.

*/ inline const Aws::String& GetReceiveRequestAttemptId() const{ return m_receiveRequestAttemptId; } /** *

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

The * token used for deduplication of ReceiveMessage calls. If a * networking issue occurs after a ReceiveMessage action, and instead * of a response you receive a generic error, it is possible to retry the same * action with an identical ReceiveRequestAttemptId to retrieve the * same set of messages, even if their visibility timeout has not yet expired.

*
  • You can use ReceiveRequestAttemptId only for 5 minutes * after a ReceiveMessage action.

  • When you set * FifoQueue, a caller of the ReceiveMessage action can * provide a ReceiveRequestAttemptId explicitly.

  • If * a caller of the ReceiveMessage action doesn't provide a * ReceiveRequestAttemptId, Amazon SQS generates a * ReceiveRequestAttemptId.

  • It is possible to retry * the ReceiveMessage action with the same * ReceiveRequestAttemptId if none of the messages have been modified * (deleted or had their visibility changes).

  • During a visibility * timeout, subsequent calls with the same ReceiveRequestAttemptId * return the same messages and receipt handles. If a retry occurs within the * deduplication interval, it resets the visibility timeout. For more information, * see Visibility * Timeout in the Amazon Simple Queue Service Developer Guide.

    *

    If a caller of the ReceiveMessage action still * processes messages when the visibility timeout expires and messages become * visible, another worker consuming from the same queue can receive the same * messages and therefore process duplicates. Also, if a consumer whose message * processing time is longer than the visibility timeout tries to delete the * processed messages, the action fails with an error.

    To mitigate this * effect, ensure that your application observes a safe threshold before the * visibility timeout expires and extend the visibility timeout as necessary.

    *
  • While messages with a particular * MessageGroupId are invisible, no more messages belonging to the * same MessageGroupId are returned until the visibility timeout * expires. You can still receive messages with another MessageGroupId * as long as it is also visible.

  • If a caller of * ReceiveMessage can't track the * ReceiveRequestAttemptId, no retries work until the original * visibility timeout expires. As a result, delays might occur but the messages in * the queue remain in a strict order.

The maximum length of * ReceiveRequestAttemptId is 128 characters. * ReceiveRequestAttemptId can contain alphanumeric characters * (a-z, A-Z, 0-9) and punctuation * (!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~).

For best * practices of using ReceiveRequestAttemptId, see Using * the ReceiveRequestAttemptId Request Parameter in the Amazon Simple Queue * Service Developer Guide.

*/ inline bool ReceiveRequestAttemptIdHasBeenSet() const { return m_receiveRequestAttemptIdHasBeenSet; } /** *

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

The * token used for deduplication of ReceiveMessage calls. If a * networking issue occurs after a ReceiveMessage action, and instead * of a response you receive a generic error, it is possible to retry the same * action with an identical ReceiveRequestAttemptId to retrieve the * same set of messages, even if their visibility timeout has not yet expired.

*
  • You can use ReceiveRequestAttemptId only for 5 minutes * after a ReceiveMessage action.

  • When you set * FifoQueue, a caller of the ReceiveMessage action can * provide a ReceiveRequestAttemptId explicitly.

  • If * a caller of the ReceiveMessage action doesn't provide a * ReceiveRequestAttemptId, Amazon SQS generates a * ReceiveRequestAttemptId.

  • It is possible to retry * the ReceiveMessage action with the same * ReceiveRequestAttemptId if none of the messages have been modified * (deleted or had their visibility changes).

  • During a visibility * timeout, subsequent calls with the same ReceiveRequestAttemptId * return the same messages and receipt handles. If a retry occurs within the * deduplication interval, it resets the visibility timeout. For more information, * see Visibility * Timeout in the Amazon Simple Queue Service Developer Guide.

    *

    If a caller of the ReceiveMessage action still * processes messages when the visibility timeout expires and messages become * visible, another worker consuming from the same queue can receive the same * messages and therefore process duplicates. Also, if a consumer whose message * processing time is longer than the visibility timeout tries to delete the * processed messages, the action fails with an error.

    To mitigate this * effect, ensure that your application observes a safe threshold before the * visibility timeout expires and extend the visibility timeout as necessary.

    *
  • While messages with a particular * MessageGroupId are invisible, no more messages belonging to the * same MessageGroupId are returned until the visibility timeout * expires. You can still receive messages with another MessageGroupId * as long as it is also visible.

  • If a caller of * ReceiveMessage can't track the * ReceiveRequestAttemptId, no retries work until the original * visibility timeout expires. As a result, delays might occur but the messages in * the queue remain in a strict order.

The maximum length of * ReceiveRequestAttemptId is 128 characters. * ReceiveRequestAttemptId can contain alphanumeric characters * (a-z, A-Z, 0-9) and punctuation * (!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~).

For best * practices of using ReceiveRequestAttemptId, see Using * the ReceiveRequestAttemptId Request Parameter in the Amazon Simple Queue * Service Developer Guide.

*/ inline void SetReceiveRequestAttemptId(const Aws::String& value) { m_receiveRequestAttemptIdHasBeenSet = true; m_receiveRequestAttemptId = value; } /** *

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

The * token used for deduplication of ReceiveMessage calls. If a * networking issue occurs after a ReceiveMessage action, and instead * of a response you receive a generic error, it is possible to retry the same * action with an identical ReceiveRequestAttemptId to retrieve the * same set of messages, even if their visibility timeout has not yet expired.

*
  • You can use ReceiveRequestAttemptId only for 5 minutes * after a ReceiveMessage action.

  • When you set * FifoQueue, a caller of the ReceiveMessage action can * provide a ReceiveRequestAttemptId explicitly.

  • If * a caller of the ReceiveMessage action doesn't provide a * ReceiveRequestAttemptId, Amazon SQS generates a * ReceiveRequestAttemptId.

  • It is possible to retry * the ReceiveMessage action with the same * ReceiveRequestAttemptId if none of the messages have been modified * (deleted or had their visibility changes).

  • During a visibility * timeout, subsequent calls with the same ReceiveRequestAttemptId * return the same messages and receipt handles. If a retry occurs within the * deduplication interval, it resets the visibility timeout. For more information, * see Visibility * Timeout in the Amazon Simple Queue Service Developer Guide.

    *

    If a caller of the ReceiveMessage action still * processes messages when the visibility timeout expires and messages become * visible, another worker consuming from the same queue can receive the same * messages and therefore process duplicates. Also, if a consumer whose message * processing time is longer than the visibility timeout tries to delete the * processed messages, the action fails with an error.

    To mitigate this * effect, ensure that your application observes a safe threshold before the * visibility timeout expires and extend the visibility timeout as necessary.

    *
  • While messages with a particular * MessageGroupId are invisible, no more messages belonging to the * same MessageGroupId are returned until the visibility timeout * expires. You can still receive messages with another MessageGroupId * as long as it is also visible.

  • If a caller of * ReceiveMessage can't track the * ReceiveRequestAttemptId, no retries work until the original * visibility timeout expires. As a result, delays might occur but the messages in * the queue remain in a strict order.

The maximum length of * ReceiveRequestAttemptId is 128 characters. * ReceiveRequestAttemptId can contain alphanumeric characters * (a-z, A-Z, 0-9) and punctuation * (!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~).

For best * practices of using ReceiveRequestAttemptId, see Using * the ReceiveRequestAttemptId Request Parameter in the Amazon Simple Queue * Service Developer Guide.

*/ inline void SetReceiveRequestAttemptId(Aws::String&& value) { m_receiveRequestAttemptIdHasBeenSet = true; m_receiveRequestAttemptId = std::move(value); } /** *

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

The * token used for deduplication of ReceiveMessage calls. If a * networking issue occurs after a ReceiveMessage action, and instead * of a response you receive a generic error, it is possible to retry the same * action with an identical ReceiveRequestAttemptId to retrieve the * same set of messages, even if their visibility timeout has not yet expired.

*
  • You can use ReceiveRequestAttemptId only for 5 minutes * after a ReceiveMessage action.

  • When you set * FifoQueue, a caller of the ReceiveMessage action can * provide a ReceiveRequestAttemptId explicitly.

  • If * a caller of the ReceiveMessage action doesn't provide a * ReceiveRequestAttemptId, Amazon SQS generates a * ReceiveRequestAttemptId.

  • It is possible to retry * the ReceiveMessage action with the same * ReceiveRequestAttemptId if none of the messages have been modified * (deleted or had their visibility changes).

  • During a visibility * timeout, subsequent calls with the same ReceiveRequestAttemptId * return the same messages and receipt handles. If a retry occurs within the * deduplication interval, it resets the visibility timeout. For more information, * see Visibility * Timeout in the Amazon Simple Queue Service Developer Guide.

    *

    If a caller of the ReceiveMessage action still * processes messages when the visibility timeout expires and messages become * visible, another worker consuming from the same queue can receive the same * messages and therefore process duplicates. Also, if a consumer whose message * processing time is longer than the visibility timeout tries to delete the * processed messages, the action fails with an error.

    To mitigate this * effect, ensure that your application observes a safe threshold before the * visibility timeout expires and extend the visibility timeout as necessary.

    *
  • While messages with a particular * MessageGroupId are invisible, no more messages belonging to the * same MessageGroupId are returned until the visibility timeout * expires. You can still receive messages with another MessageGroupId * as long as it is also visible.

  • If a caller of * ReceiveMessage can't track the * ReceiveRequestAttemptId, no retries work until the original * visibility timeout expires. As a result, delays might occur but the messages in * the queue remain in a strict order.

The maximum length of * ReceiveRequestAttemptId is 128 characters. * ReceiveRequestAttemptId can contain alphanumeric characters * (a-z, A-Z, 0-9) and punctuation * (!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~).

For best * practices of using ReceiveRequestAttemptId, see Using * the ReceiveRequestAttemptId Request Parameter in the Amazon Simple Queue * Service Developer Guide.

*/ inline void SetReceiveRequestAttemptId(const char* value) { m_receiveRequestAttemptIdHasBeenSet = true; m_receiveRequestAttemptId.assign(value); } /** *

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

The * token used for deduplication of ReceiveMessage calls. If a * networking issue occurs after a ReceiveMessage action, and instead * of a response you receive a generic error, it is possible to retry the same * action with an identical ReceiveRequestAttemptId to retrieve the * same set of messages, even if their visibility timeout has not yet expired.

*
  • You can use ReceiveRequestAttemptId only for 5 minutes * after a ReceiveMessage action.

  • When you set * FifoQueue, a caller of the ReceiveMessage action can * provide a ReceiveRequestAttemptId explicitly.

  • If * a caller of the ReceiveMessage action doesn't provide a * ReceiveRequestAttemptId, Amazon SQS generates a * ReceiveRequestAttemptId.

  • It is possible to retry * the ReceiveMessage action with the same * ReceiveRequestAttemptId if none of the messages have been modified * (deleted or had their visibility changes).

  • During a visibility * timeout, subsequent calls with the same ReceiveRequestAttemptId * return the same messages and receipt handles. If a retry occurs within the * deduplication interval, it resets the visibility timeout. For more information, * see Visibility * Timeout in the Amazon Simple Queue Service Developer Guide.

    *

    If a caller of the ReceiveMessage action still * processes messages when the visibility timeout expires and messages become * visible, another worker consuming from the same queue can receive the same * messages and therefore process duplicates. Also, if a consumer whose message * processing time is longer than the visibility timeout tries to delete the * processed messages, the action fails with an error.

    To mitigate this * effect, ensure that your application observes a safe threshold before the * visibility timeout expires and extend the visibility timeout as necessary.

    *
  • While messages with a particular * MessageGroupId are invisible, no more messages belonging to the * same MessageGroupId are returned until the visibility timeout * expires. You can still receive messages with another MessageGroupId * as long as it is also visible.

  • If a caller of * ReceiveMessage can't track the * ReceiveRequestAttemptId, no retries work until the original * visibility timeout expires. As a result, delays might occur but the messages in * the queue remain in a strict order.

The maximum length of * ReceiveRequestAttemptId is 128 characters. * ReceiveRequestAttemptId can contain alphanumeric characters * (a-z, A-Z, 0-9) and punctuation * (!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~).

For best * practices of using ReceiveRequestAttemptId, see Using * the ReceiveRequestAttemptId Request Parameter in the Amazon Simple Queue * Service Developer Guide.

*/ inline ReceiveMessageRequest& WithReceiveRequestAttemptId(const Aws::String& value) { SetReceiveRequestAttemptId(value); return *this;} /** *

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

The * token used for deduplication of ReceiveMessage calls. If a * networking issue occurs after a ReceiveMessage action, and instead * of a response you receive a generic error, it is possible to retry the same * action with an identical ReceiveRequestAttemptId to retrieve the * same set of messages, even if their visibility timeout has not yet expired.

*
  • You can use ReceiveRequestAttemptId only for 5 minutes * after a ReceiveMessage action.

  • When you set * FifoQueue, a caller of the ReceiveMessage action can * provide a ReceiveRequestAttemptId explicitly.

  • If * a caller of the ReceiveMessage action doesn't provide a * ReceiveRequestAttemptId, Amazon SQS generates a * ReceiveRequestAttemptId.

  • It is possible to retry * the ReceiveMessage action with the same * ReceiveRequestAttemptId if none of the messages have been modified * (deleted or had their visibility changes).

  • During a visibility * timeout, subsequent calls with the same ReceiveRequestAttemptId * return the same messages and receipt handles. If a retry occurs within the * deduplication interval, it resets the visibility timeout. For more information, * see Visibility * Timeout in the Amazon Simple Queue Service Developer Guide.

    *

    If a caller of the ReceiveMessage action still * processes messages when the visibility timeout expires and messages become * visible, another worker consuming from the same queue can receive the same * messages and therefore process duplicates. Also, if a consumer whose message * processing time is longer than the visibility timeout tries to delete the * processed messages, the action fails with an error.

    To mitigate this * effect, ensure that your application observes a safe threshold before the * visibility timeout expires and extend the visibility timeout as necessary.

    *
  • While messages with a particular * MessageGroupId are invisible, no more messages belonging to the * same MessageGroupId are returned until the visibility timeout * expires. You can still receive messages with another MessageGroupId * as long as it is also visible.

  • If a caller of * ReceiveMessage can't track the * ReceiveRequestAttemptId, no retries work until the original * visibility timeout expires. As a result, delays might occur but the messages in * the queue remain in a strict order.

The maximum length of * ReceiveRequestAttemptId is 128 characters. * ReceiveRequestAttemptId can contain alphanumeric characters * (a-z, A-Z, 0-9) and punctuation * (!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~).

For best * practices of using ReceiveRequestAttemptId, see Using * the ReceiveRequestAttemptId Request Parameter in the Amazon Simple Queue * Service Developer Guide.

*/ inline ReceiveMessageRequest& WithReceiveRequestAttemptId(Aws::String&& value) { SetReceiveRequestAttemptId(std::move(value)); return *this;} /** *

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

The * token used for deduplication of ReceiveMessage calls. If a * networking issue occurs after a ReceiveMessage action, and instead * of a response you receive a generic error, it is possible to retry the same * action with an identical ReceiveRequestAttemptId to retrieve the * same set of messages, even if their visibility timeout has not yet expired.

*
  • You can use ReceiveRequestAttemptId only for 5 minutes * after a ReceiveMessage action.

  • When you set * FifoQueue, a caller of the ReceiveMessage action can * provide a ReceiveRequestAttemptId explicitly.

  • If * a caller of the ReceiveMessage action doesn't provide a * ReceiveRequestAttemptId, Amazon SQS generates a * ReceiveRequestAttemptId.

  • It is possible to retry * the ReceiveMessage action with the same * ReceiveRequestAttemptId if none of the messages have been modified * (deleted or had their visibility changes).

  • During a visibility * timeout, subsequent calls with the same ReceiveRequestAttemptId * return the same messages and receipt handles. If a retry occurs within the * deduplication interval, it resets the visibility timeout. For more information, * see Visibility * Timeout in the Amazon Simple Queue Service Developer Guide.

    *

    If a caller of the ReceiveMessage action still * processes messages when the visibility timeout expires and messages become * visible, another worker consuming from the same queue can receive the same * messages and therefore process duplicates. Also, if a consumer whose message * processing time is longer than the visibility timeout tries to delete the * processed messages, the action fails with an error.

    To mitigate this * effect, ensure that your application observes a safe threshold before the * visibility timeout expires and extend the visibility timeout as necessary.

    *
  • While messages with a particular * MessageGroupId are invisible, no more messages belonging to the * same MessageGroupId are returned until the visibility timeout * expires. You can still receive messages with another MessageGroupId * as long as it is also visible.

  • If a caller of * ReceiveMessage can't track the * ReceiveRequestAttemptId, no retries work until the original * visibility timeout expires. As a result, delays might occur but the messages in * the queue remain in a strict order.

The maximum length of * ReceiveRequestAttemptId is 128 characters. * ReceiveRequestAttemptId can contain alphanumeric characters * (a-z, A-Z, 0-9) and punctuation * (!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~).

For best * practices of using ReceiveRequestAttemptId, see Using * the ReceiveRequestAttemptId Request Parameter in the Amazon Simple Queue * Service Developer Guide.

*/ inline ReceiveMessageRequest& WithReceiveRequestAttemptId(const char* value) { SetReceiveRequestAttemptId(value); return *this;} private: Aws::String m_queueUrl; bool m_queueUrlHasBeenSet; Aws::Vector m_attributeNames; bool m_attributeNamesHasBeenSet; Aws::Vector m_messageAttributeNames; bool m_messageAttributeNamesHasBeenSet; int m_maxNumberOfMessages; bool m_maxNumberOfMessagesHasBeenSet; int m_visibilityTimeout; bool m_visibilityTimeoutHasBeenSet; int m_waitTimeSeconds; bool m_waitTimeSecondsHasBeenSet; Aws::String m_receiveRequestAttemptId; bool m_receiveRequestAttemptIdHasBeenSet; }; } // namespace Model } // namespace SQS } // namespace Aws