/** * 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 ReceiveMessageRequest : public SQSRequest { public: AWS_SQS_API 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_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 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 X-Ray * trace header string.

  • SenderId

    • *

      For a user, returns the 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).

  • SqsManagedSseEnabled – Enables * server-side queue encryption using SQS owned encryption keys. Only one * server-side encryption option is supported per queue (for example, SSE-KMS * or SSE-SQS).

    *
  • 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 X-Ray * trace header string.

  • SenderId

    • *

      For a user, returns the 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).

  • SqsManagedSseEnabled – Enables * server-side queue encryption using SQS owned encryption keys. Only one * server-side encryption option is supported per queue (for example, SSE-KMS * or SSE-SQS).

    *
  • 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 X-Ray * trace header string.

  • SenderId

    • *

      For a user, returns the 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).

  • SqsManagedSseEnabled – Enables * server-side queue encryption using SQS owned encryption keys. Only one * server-side encryption option is supported per queue (for example, SSE-KMS * or SSE-SQS).

    *
  • 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 X-Ray * trace header string.

  • SenderId

    • *

      For a user, returns the 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).

  • SqsManagedSseEnabled – Enables * server-side queue encryption using SQS owned encryption keys. Only one * server-side encryption option is supported per queue (for example, SSE-KMS * or SSE-SQS).

    *
  • 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 X-Ray * trace header string.

  • SenderId

    • *

      For a user, returns the 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).

  • SqsManagedSseEnabled – Enables * server-side queue encryption using SQS owned encryption keys. Only one * server-side encryption option is supported per queue (for example, SSE-KMS * or SSE-SQS).

    *
  • 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 X-Ray * trace header string.

  • SenderId

    • *

      For a user, returns the 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).

  • SqsManagedSseEnabled – Enables * server-side queue encryption using SQS owned encryption keys. Only one * server-side encryption option is supported per queue (for example, SSE-KMS * or SSE-SQS).

    *
  • 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 X-Ray * trace header string.

  • SenderId

    • *

      For a user, returns the 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).

  • SqsManagedSseEnabled – Enables * server-side queue encryption using SQS owned encryption keys. Only one * server-side encryption option is supported per queue (for example, SSE-KMS * or SSE-SQS).

    *
  • 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 X-Ray * trace header string.

  • SenderId

    • *

      For a user, returns the 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).

  • SqsManagedSseEnabled – Enables * server-side queue encryption using SQS owned encryption keys. Only one * server-side encryption option is supported per queue (for example, SSE-KMS * or SSE-SQS).

    *
  • 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 SQS 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 SQS 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 SQS 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 SQS 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 SQS 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 SQS 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 SQS 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 SQS 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 SQS 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 SQS 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 SQS 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 SQS 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 SQS 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 SQS 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 SQS 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 SQS Developer * Guide.

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