/* * Copyright 2018-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ package com.amazonaws.services.sqs.model; import java.io.Serializable; import javax.annotation.Generated; import com.amazonaws.AmazonWebServiceRequest; /** *
* * @see AWS API * Documentation */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class ReceiveMessageRequest extends com.amazonaws.AmazonWebServiceRequest implements Serializable, Cloneable { /** ** The URL of the Amazon SQS queue from which messages are received. *
** Queue URLs and names are case-sensitive. *
*/ private String queueUrl; /** ** 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.
*
* 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.*.
*
* 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. *
*/ private Integer maxNumberOfMessages; /** *
* The duration (in seconds) that the received messages are hidden from subsequent retrieve requests after being
* retrieved by a ReceiveMessage request.
*
* 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.
*
* 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.
*
* Queue URLs and names are case-sensitive. */ public ReceiveMessageRequest(String queueUrl) { setQueueUrl(queueUrl); } /** *
* The URL of the Amazon SQS queue from which messages are received. *
** Queue URLs and names are case-sensitive. *
* * @param queueUrl * The URL of the Amazon SQS queue from which messages are received. ** Queue URLs and names are case-sensitive. */ public void setQueueUrl(String queueUrl) { this.queueUrl = queueUrl; } /** *
* The URL of the Amazon SQS queue from which messages are received. *
** Queue URLs and names are case-sensitive. *
* * @return The URL of the Amazon SQS queue from which messages are received. ** Queue URLs and names are case-sensitive. */ public String getQueueUrl() { return this.queueUrl; } /** *
* The URL of the Amazon SQS queue from which messages are received. *
** Queue URLs and names are case-sensitive. *
* * @param queueUrl * The URL of the Amazon SQS queue from which messages are received. ** Queue URLs and names are case-sensitive. * @return Returns a reference to this object so that method calls can be chained together. */ public ReceiveMessageRequest withQueueUrl(String queueUrl) { setQueueUrl(queueUrl); 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.
*
* 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.
*
* 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.
*
* 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.
*
* 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.
*
* NOTE: This method appends the values to the existing list (if any). Use * {@link #setAttributeNames(java.util.Collection)} or {@link #withAttributeNames(java.util.Collection)} if you want * to override the existing values. *
* * @param 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.
*
* 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.
*
* 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.
*
* 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.
*
* 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.
*
* 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.*.
*
* 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
* The name of the message attribute, where N is the index.
*
* The name can contain alphanumeric characters and the underscore (
* 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
* The name must not start or end with a period (
* 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.*.
*/
public java.util.List
*
* _), hyphen (-), and
* period (.).
* AWS. or Amazon. (or any
* casing variants).
* .), and it should not have periods in succession (
* ..).
* 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.*.
*
* 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
* The name of the message attribute, where N is the index.
*
* The name can contain alphanumeric characters and the underscore (
* 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
* The name must not start or end with a period (
* The name can be up to 256 characters long.
*
* When using
* NOTE: This method appends the values to the existing list (if any). Use
* {@link #setMessageAttributeNames(java.util.Collection)} or
* {@link #withMessageAttributeNames(java.util.Collection)} if you want to override the existing values.
* 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.*.
*/
public void setMessageAttributeNames(java.util.Collection
*
* _), hyphen (-), and
* period (.).
* AWS. or Amazon. (or any
* casing variants).
* .), and it should not have periods in succession (
* ..).
* 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.*.
*
* 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
* The name of the message attribute, where N is the index.
*
* The name can contain alphanumeric characters and the underscore (
* 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
* The name must not start or end with a period (
* 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.*.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public ReceiveMessageRequest withMessageAttributeNames(String... messageAttributeNames) {
if (this.messageAttributeNames == null) {
setMessageAttributeNames(new com.amazonaws.internal.SdkInternalList
*
* _), hyphen (-), and
* period (.).
* AWS. or Amazon. (or any
* casing variants).
* .), and it should not have periods in succession (
* ..).
* 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.*.
*
* 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
* 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.
*
* 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.
*
* 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.
*
* The duration (in seconds) that the received messages are hidden from subsequent retrieve requests after being
* retrieved by a
* The duration (in seconds) that the received messages are hidden from subsequent retrieve requests after being
* retrieved by a
* The duration (in seconds) that the received messages are hidden from subsequent retrieve requests after being
* retrieved by a
* 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
* To avoid HTTP errors, ensure that the HTTP response timeout for 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.*.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public ReceiveMessageRequest withMessageAttributeNames(java.util.CollectionReceiveMessage request.
* ReceiveMessage request.
*/
public void setVisibilityTimeout(Integer visibilityTimeout) {
this.visibilityTimeout = visibilityTimeout;
}
/**
* ReceiveMessage request.
* ReceiveMessage request.
*/
public Integer getVisibilityTimeout() {
return this.visibilityTimeout;
}
/**
* ReceiveMessage request.
* ReceiveMessage request.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public ReceiveMessageRequest withVisibilityTimeout(Integer visibilityTimeout) {
setVisibilityTimeout(visibilityTimeout);
return this;
}
/**
* WaitTimeSeconds. If no messages are available and
* the wait time expires, the call returns successfully with an empty list of messages.
* 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.
* 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.
*
* 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.
*
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.
*
* 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.
*
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.
*
* 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.
*
* 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.
*/
public void setReceiveRequestAttemptId(String receiveRequestAttemptId) {
this.receiveRequestAttemptId = 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.
*
* 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.
*/
public String getReceiveRequestAttemptId() {
return this.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.
*
* 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.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public ReceiveMessageRequest withReceiveRequestAttemptId(String receiveRequestAttemptId) {
setReceiveRequestAttemptId(receiveRequestAttemptId);
return this;
}
/**
* Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be
* redacted from this string using a placeholder value.
*
* @return A string representation of this object.
*
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("{");
if (getQueueUrl() != null)
sb.append("QueueUrl: ").append(getQueueUrl()).append(",");
if (getAttributeNames() != null)
sb.append("AttributeNames: ").append(getAttributeNames()).append(",");
if (getMessageAttributeNames() != null)
sb.append("MessageAttributeNames: ").append(getMessageAttributeNames()).append(",");
if (getMaxNumberOfMessages() != null)
sb.append("MaxNumberOfMessages: ").append(getMaxNumberOfMessages()).append(",");
if (getVisibilityTimeout() != null)
sb.append("VisibilityTimeout: ").append(getVisibilityTimeout()).append(",");
if (getWaitTimeSeconds() != null)
sb.append("WaitTimeSeconds: ").append(getWaitTimeSeconds()).append(",");
if (getReceiveRequestAttemptId() != null)
sb.append("ReceiveRequestAttemptId: ").append(getReceiveRequestAttemptId());
sb.append("}");
return sb.toString();
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (obj instanceof ReceiveMessageRequest == false)
return false;
ReceiveMessageRequest other = (ReceiveMessageRequest) obj;
if (other.getQueueUrl() == null ^ this.getQueueUrl() == null)
return false;
if (other.getQueueUrl() != null && other.getQueueUrl().equals(this.getQueueUrl()) == false)
return false;
if (other.getAttributeNames() == null ^ this.getAttributeNames() == null)
return false;
if (other.getAttributeNames() != null && other.getAttributeNames().equals(this.getAttributeNames()) == false)
return false;
if (other.getMessageAttributeNames() == null ^ this.getMessageAttributeNames() == null)
return false;
if (other.getMessageAttributeNames() != null && other.getMessageAttributeNames().equals(this.getMessageAttributeNames()) == false)
return false;
if (other.getMaxNumberOfMessages() == null ^ this.getMaxNumberOfMessages() == null)
return false;
if (other.getMaxNumberOfMessages() != null && other.getMaxNumberOfMessages().equals(this.getMaxNumberOfMessages()) == false)
return false;
if (other.getVisibilityTimeout() == null ^ this.getVisibilityTimeout() == null)
return false;
if (other.getVisibilityTimeout() != null && other.getVisibilityTimeout().equals(this.getVisibilityTimeout()) == false)
return false;
if (other.getWaitTimeSeconds() == null ^ this.getWaitTimeSeconds() == null)
return false;
if (other.getWaitTimeSeconds() != null && other.getWaitTimeSeconds().equals(this.getWaitTimeSeconds()) == false)
return false;
if (other.getReceiveRequestAttemptId() == null ^ this.getReceiveRequestAttemptId() == null)
return false;
if (other.getReceiveRequestAttemptId() != null && other.getReceiveRequestAttemptId().equals(this.getReceiveRequestAttemptId()) == false)
return false;
return true;
}
@Override
public int hashCode() {
final int prime = 31;
int hashCode = 1;
hashCode = prime * hashCode + ((getQueueUrl() == null) ? 0 : getQueueUrl().hashCode());
hashCode = prime * hashCode + ((getAttributeNames() == null) ? 0 : getAttributeNames().hashCode());
hashCode = prime * hashCode + ((getMessageAttributeNames() == null) ? 0 : getMessageAttributeNames().hashCode());
hashCode = prime * hashCode + ((getMaxNumberOfMessages() == null) ? 0 : getMaxNumberOfMessages().hashCode());
hashCode = prime * hashCode + ((getVisibilityTimeout() == null) ? 0 : getVisibilityTimeout().hashCode());
hashCode = prime * hashCode + ((getWaitTimeSeconds() == null) ? 0 : getWaitTimeSeconds().hashCode());
hashCode = prime * hashCode + ((getReceiveRequestAttemptId() == null) ? 0 : getReceiveRequestAttemptId().hashCode());
return hashCode;
}
@Override
public ReceiveMessageRequest clone() {
return (ReceiveMessageRequest) super.clone();
}
}