/* * 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();
}
}