Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
software.amazon.awssdk.services.sqs.model.SetQueueAttributesRequest Maven / Gradle / Ivy
/*
* Copyright 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 software.amazon.awssdk.services.sqs.model;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.function.BiConsumer;
import java.util.function.Consumer;
import java.util.function.Function;
import software.amazon.awssdk.annotations.Generated;
import software.amazon.awssdk.awscore.AwsRequestOverrideConfiguration;
import software.amazon.awssdk.core.SdkField;
import software.amazon.awssdk.core.SdkPojo;
import software.amazon.awssdk.core.protocol.MarshallLocation;
import software.amazon.awssdk.core.protocol.MarshallingType;
import software.amazon.awssdk.core.traits.LocationTrait;
import software.amazon.awssdk.core.traits.MapTrait;
import software.amazon.awssdk.core.util.DefaultSdkAutoConstructMap;
import software.amazon.awssdk.core.util.SdkAutoConstructMap;
import software.amazon.awssdk.utils.ToString;
import software.amazon.awssdk.utils.builder.CopyableBuilder;
import software.amazon.awssdk.utils.builder.ToCopyableBuilder;
/**
*
*/
@Generated("software.amazon.awssdk:codegen")
public final class SetQueueAttributesRequest extends SqsRequest implements
ToCopyableBuilder {
private static final SdkField QUEUE_URL_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("QueueUrl").getter(getter(SetQueueAttributesRequest::queueUrl)).setter(setter(Builder::queueUrl))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("QueueUrl").build()).build();
private static final SdkField> ATTRIBUTES_FIELD = SdkField
.> builder(MarshallingType.MAP)
.memberName("Attributes")
.getter(getter(SetQueueAttributesRequest::attributesAsStrings))
.setter(setter(Builder::attributesWithStrings))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("Attributes").build(),
MapTrait.builder()
.keyLocationName("key")
.valueLocationName("value")
.valueFieldInfo(
SdkField. builder(MarshallingType.STRING)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD)
.locationName("value").build()).build()).isFlattened(true).build()).build();
private static final List> SDK_FIELDS = Collections.unmodifiableList(Arrays.asList(QUEUE_URL_FIELD,
ATTRIBUTES_FIELD));
private static final Map> SDK_NAME_TO_FIELD = Collections
.unmodifiableMap(new HashMap>() {
{
put("QueueUrl", QUEUE_URL_FIELD);
put("Attributes", ATTRIBUTES_FIELD);
}
});
private final String queueUrl;
private final Map attributes;
private SetQueueAttributesRequest(BuilderImpl builder) {
super(builder);
this.queueUrl = builder.queueUrl;
this.attributes = builder.attributes;
}
/**
*
* The URL of the Amazon SQS queue whose attributes are set.
*
*
* Queue URLs and names are case-sensitive.
*
*
* @return The URL of the Amazon SQS queue whose attributes are set.
*
* Queue URLs and names are case-sensitive.
*/
public final String queueUrl() {
return queueUrl;
}
/**
*
* A map of attributes to set.
*
*
* The following lists the names, descriptions, and values of the special request parameters that the
* SetQueueAttributes
action uses:
*
*
*
*
* DelaySeconds
– The length of time, in seconds, for which the delivery of all messages in the queue
* is delayed. Valid values: An integer from 0 to 900 (15 minutes). Default: 0.
*
*
*
*
* MaximumMessageSize
– The limit of how many bytes a message can contain before Amazon SQS rejects it.
* Valid values: An integer from 1,024 bytes (1 KiB) up to 262,144 bytes (256 KiB). Default: 262,144 (256 KiB).
*
*
*
*
* MessageRetentionPeriod
– The length of time, in seconds, for which Amazon SQS retains a message.
* Valid values: An integer representing seconds, from 60 (1 minute) to 1,209,600 (14 days). Default: 345,600 (4
* days). When you change a queue's attributes, the change can take up to 60 seconds for most of the attributes to
* propagate throughout the Amazon SQS system. Changes made to the MessageRetentionPeriod
attribute can
* take up to 15 minutes and will impact existing messages in the queue potentially causing them to be expired and
* deleted if the MessageRetentionPeriod
is reduced below the age of existing messages.
*
*
*
*
* Policy
– The queue's policy. A valid Amazon Web Services policy. For more information about policy
* structure, see Overview of
* Amazon Web Services IAM Policies in the Identity and Access Management User Guide .
*
*
*
*
* ReceiveMessageWaitTimeSeconds
– The length of time, in seconds, for which a
* ReceiveMessage
action waits for a message to arrive. Valid values: An integer from 0 to 20
* (seconds). Default: 0.
*
*
*
*
* VisibilityTimeout
– The visibility timeout for the queue, in seconds. Valid values: An integer from
* 0 to 43,200 (12 hours). Default: 30. For more information about the visibility timeout, see Visibility Timeout in the Amazon SQS Developer Guide .
*
*
*
*
* The following attributes apply only to dead-letter queues:
*
*
*
*
* RedrivePolicy
– The string that includes the parameters for the dead-letter queue functionality of
* the source queue as a JSON object. The parameters are as follows:
*
*
*
*
* deadLetterTargetArn
– The Amazon Resource Name (ARN) of the dead-letter queue to which Amazon SQS
* moves messages after the value of maxReceiveCount
is exceeded.
*
*
*
*
* maxReceiveCount
– The number of times a message is delivered to the source queue before being moved
* to the dead-letter queue. Default: 10. When the ReceiveCount
for a message exceeds the
* maxReceiveCount
for a queue, Amazon SQS moves the message to the dead-letter-queue.
*
*
*
*
*
*
* RedriveAllowPolicy
– The string that includes the parameters for the permissions for the dead-letter
* queue redrive permission and which source queues can specify dead-letter queues as a JSON object. The parameters
* are as follows:
*
*
*
*
* redrivePermission
– The permission type that defines which source queues can specify the current
* queue as the dead-letter queue. Valid values are:
*
*
*
*
* allowAll
– (Default) Any source queues in this Amazon Web Services account in the same Region can
* specify this queue as the dead-letter queue.
*
*
*
*
* denyAll
– No source queues can specify this queue as the dead-letter queue.
*
*
*
*
* byQueue
– Only queues specified by the sourceQueueArns
parameter can specify this queue
* as the dead-letter queue.
*
*
*
*
*
*
* sourceQueueArns
– The Amazon Resource Names (ARN)s of the source queues that can specify this queue
* as the dead-letter queue and redrive messages. You can specify this parameter only when the
* redrivePermission
parameter is set to byQueue
. You can specify up to 10 source queue
* ARNs. To allow more than 10 source queues to specify dead-letter queues, set the redrivePermission
* parameter to allowAll
.
*
*
*
*
*
*
*
* The dead-letter queue of a FIFO queue must also be a FIFO queue. Similarly, the dead-letter queue of a standard
* queue must also be a standard queue.
*
*
*
* The following attributes apply only to server-side-encryption :
*
*
*
*
* KmsMasterKeyId
– The ID of an Amazon Web Services managed customer master key (CMK) for Amazon SQS
* or a custom CMK. For more information, see Key Terms . While the alias of the AWS-managed CMK for Amazon SQS is always alias/aws/sqs
, the
* alias of a custom CMK can, for example, be alias/MyAlias
. For more examples, see KeyId in the Key Management Service API Reference .
*
*
*
*
* KmsDataKeyReusePeriodSeconds
– The length of time, in seconds, for which Amazon SQS can reuse a data key to encrypt or
* decrypt messages before calling KMS again. An integer representing seconds, between 60 seconds (1 minute) and
* 86,400 seconds (24 hours). Default: 300 (5 minutes). A shorter time period provides better security but results
* in more calls to KMS which might incur charges after Free Tier. For more information, see How Does the Data Key Reuse Period Work? .
*
*
*
*
* 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 ).
*
*
*
*
* The following attribute applies only to FIFO
* (first-in-first-out) queues :
*
*
*
* The following attributes apply only to high
* throughput for FIFO queues :
*
*
*
*
* DeduplicationScope
– Specifies whether message deduplication occurs at the message group or queue
* level. Valid values are messageGroup
and queue
.
*
*
*
*
* FifoThroughputLimit
– Specifies whether the FIFO queue throughput quota applies to the entire queue
* or per message group. Valid values are perQueue
and perMessageGroupId
. The
* perMessageGroupId
value is allowed only when the value for DeduplicationScope
is
* messageGroup
.
*
*
*
*
* To enable high throughput for FIFO queues, do the following:
*
*
*
* If you set these attributes to anything other than the values shown for enabling high throughput, normal
* throughput is in effect and deduplication occurs as specified.
*
*
* For information on throughput quotas, see Quotas
* related to messages in the Amazon SQS Developer Guide .
*
*
* Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.
*
*
* This method will never return null. If you would like to know whether the service returned this field (so that
* you can differentiate between null and empty), you can use the {@link #hasAttributes} method.
*
*
* @return A map of attributes to set.
*
* The following lists the names, descriptions, and values of the special request parameters that the
* SetQueueAttributes
action uses:
*
*
*
*
* DelaySeconds
– The length of time, in seconds, for which the delivery of all messages in the
* queue is delayed. Valid values: An integer from 0 to 900 (15 minutes). Default: 0.
*
*
*
*
* MaximumMessageSize
– The limit of how many bytes a message can contain before Amazon SQS
* rejects it. Valid values: An integer from 1,024 bytes (1 KiB) up to 262,144 bytes (256 KiB). Default:
* 262,144 (256 KiB).
*
*
*
*
* MessageRetentionPeriod
– The length of time, in seconds, for which Amazon SQS retains a
* message. Valid values: An integer representing seconds, from 60 (1 minute) to 1,209,600 (14 days).
* Default: 345,600 (4 days). When you change a queue's attributes, the change can take up to 60 seconds for
* most of the attributes to propagate throughout the Amazon SQS system. Changes made to the
* MessageRetentionPeriod
attribute can take up to 15 minutes and will impact existing messages
* in the queue potentially causing them to be expired and deleted if the
* MessageRetentionPeriod
is reduced below the age of existing messages.
*
*
*
*
* Policy
– The queue's policy. A valid Amazon Web Services policy. For more information about
* policy structure, see Overview of Amazon Web
* Services IAM Policies in the Identity and Access Management User Guide .
*
*
*
*
* ReceiveMessageWaitTimeSeconds
– The length of time, in seconds, for which a
* ReceiveMessage
action waits for a message to arrive. Valid values: An integer from
* 0 to 20 (seconds). Default: 0.
*
*
*
*
* VisibilityTimeout
– The visibility timeout for the queue, in seconds. Valid values: An
* integer from 0 to 43,200 (12 hours). Default: 30. For more information about the visibility timeout, see
* Visibility Timeout in the Amazon SQS Developer Guide .
*
*
*
*
* The following attributes apply only to dead-letter queues:
*
*
*
*
* RedrivePolicy
– The string that includes the parameters for the dead-letter queue
* functionality of the source queue as a JSON object. The parameters are as follows:
*
*
*
*
* deadLetterTargetArn
– The Amazon Resource Name (ARN) of the dead-letter queue to which
* Amazon SQS moves messages after the value of maxReceiveCount
is exceeded.
*
*
*
*
* maxReceiveCount
– The number of times a message is delivered to the source queue before
* being moved to the dead-letter queue. Default: 10. When the ReceiveCount
for a message
* exceeds the maxReceiveCount
for a queue, Amazon SQS moves the message to the
* dead-letter-queue.
*
*
*
*
*
*
* RedriveAllowPolicy
– The string that includes the parameters for the permissions for the
* dead-letter queue redrive permission and which source queues can specify dead-letter queues as a JSON
* object. The parameters are as follows:
*
*
*
*
* redrivePermission
– The permission type that defines which source queues can specify the
* current queue as the dead-letter queue. Valid values are:
*
*
*
*
* allowAll
– (Default) Any source queues in this Amazon Web Services account in the same
* Region can specify this queue as the dead-letter queue.
*
*
*
*
* denyAll
– No source queues can specify this queue as the dead-letter queue.
*
*
*
*
* byQueue
– Only queues specified by the sourceQueueArns
parameter can specify
* this queue as the dead-letter queue.
*
*
*
*
*
*
* sourceQueueArns
– The Amazon Resource Names (ARN)s of the source queues that can specify
* this queue as the dead-letter queue and redrive messages. You can specify this parameter only when the
* redrivePermission
parameter is set to byQueue
. You can specify up to 10 source
* queue ARNs. To allow more than 10 source queues to specify dead-letter queues, set the
* redrivePermission
parameter to allowAll
.
*
*
*
*
*
*
*
* The dead-letter queue of a FIFO queue must also be a FIFO queue. Similarly, the dead-letter queue of a
* standard queue must also be a standard queue.
*
*
*
* The following attributes apply only to server-side-encryption :
*
*
*
*
* KmsMasterKeyId
– The ID of an Amazon Web Services managed customer master key (CMK) for
* Amazon SQS or a custom CMK. For more information, see Key Terms . While the alias of the AWS-managed CMK for Amazon SQS is always
* alias/aws/sqs
, the alias of a custom CMK can, for example, be
* alias/MyAlias
. For more examples, see KeyId in the Key Management Service API Reference .
*
*
*
*
* KmsDataKeyReusePeriodSeconds
– The length of time, in seconds, for which Amazon SQS can
* reuse a data
* key to encrypt or decrypt messages before calling KMS again. An integer representing seconds, between
* 60 seconds (1 minute) and 86,400 seconds (24 hours). Default: 300 (5 minutes). A shorter time period
* provides better security but results in more calls to KMS which might incur charges after Free Tier. For
* more information, see How Does the Data Key Reuse Period Work? .
*
*
*
*
* 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 ).
*
*
*
*
* The following attribute applies only to FIFO
* (first-in-first-out) queues :
*
*
*
* The following attributes apply only to high throughput for FIFO queues :
*
*
*
*
* DeduplicationScope
– Specifies whether message deduplication occurs at the message group or
* queue level. Valid values are messageGroup
and queue
.
*
*
*
*
* FifoThroughputLimit
– Specifies whether the FIFO queue throughput quota applies to the
* entire queue or per message group. Valid values are perQueue
and
* perMessageGroupId
. The perMessageGroupId
value is allowed only when the value
* for DeduplicationScope
is messageGroup
.
*
*
*
*
* To enable high throughput for FIFO queues, do the following:
*
*
*
* If you set these attributes to anything other than the values shown for enabling high throughput, normal
* throughput is in effect and deduplication occurs as specified.
*
*
* For information on throughput quotas, see Quotas related to messages in the Amazon SQS Developer Guide .
*/
public final Map attributes() {
return QueueAttributeMapCopier.copyStringToEnum(attributes);
}
/**
* For responses, this returns true if the service returned a value for the Attributes property. This DOES NOT check
* that the value is non-empty (for which, you should check the {@code isEmpty()} method on the property). This is
* useful because the SDK will never return a null collection or map, but you may need to differentiate between the
* service returning nothing (or null) and the service returning an empty collection or map. For requests, this
* returns true if a value for the property was specified in the request builder, and false if a value was not
* specified.
*/
public final boolean hasAttributes() {
return attributes != null && !(attributes instanceof SdkAutoConstructMap);
}
/**
*
* A map of attributes to set.
*
*
* The following lists the names, descriptions, and values of the special request parameters that the
* SetQueueAttributes
action uses:
*
*
*
*
* DelaySeconds
– The length of time, in seconds, for which the delivery of all messages in the queue
* is delayed. Valid values: An integer from 0 to 900 (15 minutes). Default: 0.
*
*
*
*
* MaximumMessageSize
– The limit of how many bytes a message can contain before Amazon SQS rejects it.
* Valid values: An integer from 1,024 bytes (1 KiB) up to 262,144 bytes (256 KiB). Default: 262,144 (256 KiB).
*
*
*
*
* MessageRetentionPeriod
– The length of time, in seconds, for which Amazon SQS retains a message.
* Valid values: An integer representing seconds, from 60 (1 minute) to 1,209,600 (14 days). Default: 345,600 (4
* days). When you change a queue's attributes, the change can take up to 60 seconds for most of the attributes to
* propagate throughout the Amazon SQS system. Changes made to the MessageRetentionPeriod
attribute can
* take up to 15 minutes and will impact existing messages in the queue potentially causing them to be expired and
* deleted if the MessageRetentionPeriod
is reduced below the age of existing messages.
*
*
*
*
* Policy
– The queue's policy. A valid Amazon Web Services policy. For more information about policy
* structure, see Overview of
* Amazon Web Services IAM Policies in the Identity and Access Management User Guide .
*
*
*
*
* ReceiveMessageWaitTimeSeconds
– The length of time, in seconds, for which a
* ReceiveMessage
action waits for a message to arrive. Valid values: An integer from 0 to 20
* (seconds). Default: 0.
*
*
*
*
* VisibilityTimeout
– The visibility timeout for the queue, in seconds. Valid values: An integer from
* 0 to 43,200 (12 hours). Default: 30. For more information about the visibility timeout, see Visibility Timeout in the Amazon SQS Developer Guide .
*
*
*
*
* The following attributes apply only to dead-letter queues:
*
*
*
*
* RedrivePolicy
– The string that includes the parameters for the dead-letter queue functionality of
* the source queue as a JSON object. The parameters are as follows:
*
*
*
*
* deadLetterTargetArn
– The Amazon Resource Name (ARN) of the dead-letter queue to which Amazon SQS
* moves messages after the value of maxReceiveCount
is exceeded.
*
*
*
*
* maxReceiveCount
– The number of times a message is delivered to the source queue before being moved
* to the dead-letter queue. Default: 10. When the ReceiveCount
for a message exceeds the
* maxReceiveCount
for a queue, Amazon SQS moves the message to the dead-letter-queue.
*
*
*
*
*
*
* RedriveAllowPolicy
– The string that includes the parameters for the permissions for the dead-letter
* queue redrive permission and which source queues can specify dead-letter queues as a JSON object. The parameters
* are as follows:
*
*
*
*
* redrivePermission
– The permission type that defines which source queues can specify the current
* queue as the dead-letter queue. Valid values are:
*
*
*
*
* allowAll
– (Default) Any source queues in this Amazon Web Services account in the same Region can
* specify this queue as the dead-letter queue.
*
*
*
*
* denyAll
– No source queues can specify this queue as the dead-letter queue.
*
*
*
*
* byQueue
– Only queues specified by the sourceQueueArns
parameter can specify this queue
* as the dead-letter queue.
*
*
*
*
*
*
* sourceQueueArns
– The Amazon Resource Names (ARN)s of the source queues that can specify this queue
* as the dead-letter queue and redrive messages. You can specify this parameter only when the
* redrivePermission
parameter is set to byQueue
. You can specify up to 10 source queue
* ARNs. To allow more than 10 source queues to specify dead-letter queues, set the redrivePermission
* parameter to allowAll
.
*
*
*
*
*
*
*
* The dead-letter queue of a FIFO queue must also be a FIFO queue. Similarly, the dead-letter queue of a standard
* queue must also be a standard queue.
*
*
*
* The following attributes apply only to server-side-encryption :
*
*
*
*
* KmsMasterKeyId
– The ID of an Amazon Web Services managed customer master key (CMK) for Amazon SQS
* or a custom CMK. For more information, see Key Terms . While the alias of the AWS-managed CMK for Amazon SQS is always alias/aws/sqs
, the
* alias of a custom CMK can, for example, be alias/MyAlias
. For more examples, see KeyId in the Key Management Service API Reference .
*
*
*
*
* KmsDataKeyReusePeriodSeconds
– The length of time, in seconds, for which Amazon SQS can reuse a data key to encrypt or
* decrypt messages before calling KMS again. An integer representing seconds, between 60 seconds (1 minute) and
* 86,400 seconds (24 hours). Default: 300 (5 minutes). A shorter time period provides better security but results
* in more calls to KMS which might incur charges after Free Tier. For more information, see How Does the Data Key Reuse Period Work? .
*
*
*
*
* 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 ).
*
*
*
*
* The following attribute applies only to FIFO
* (first-in-first-out) queues :
*
*
*
* The following attributes apply only to high
* throughput for FIFO queues :
*
*
*
*
* DeduplicationScope
– Specifies whether message deduplication occurs at the message group or queue
* level. Valid values are messageGroup
and queue
.
*
*
*
*
* FifoThroughputLimit
– Specifies whether the FIFO queue throughput quota applies to the entire queue
* or per message group. Valid values are perQueue
and perMessageGroupId
. The
* perMessageGroupId
value is allowed only when the value for DeduplicationScope
is
* messageGroup
.
*
*
*
*
* To enable high throughput for FIFO queues, do the following:
*
*
*
* If you set these attributes to anything other than the values shown for enabling high throughput, normal
* throughput is in effect and deduplication occurs as specified.
*
*
* For information on throughput quotas, see Quotas
* related to messages in the Amazon SQS Developer Guide .
*
*
* Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.
*
*
* This method will never return null. If you would like to know whether the service returned this field (so that
* you can differentiate between null and empty), you can use the {@link #hasAttributes} method.
*
*
* @return A map of attributes to set.
*
* The following lists the names, descriptions, and values of the special request parameters that the
* SetQueueAttributes
action uses:
*
*
*
*
* DelaySeconds
– The length of time, in seconds, for which the delivery of all messages in the
* queue is delayed. Valid values: An integer from 0 to 900 (15 minutes). Default: 0.
*
*
*
*
* MaximumMessageSize
– The limit of how many bytes a message can contain before Amazon SQS
* rejects it. Valid values: An integer from 1,024 bytes (1 KiB) up to 262,144 bytes (256 KiB). Default:
* 262,144 (256 KiB).
*
*
*
*
* MessageRetentionPeriod
– The length of time, in seconds, for which Amazon SQS retains a
* message. Valid values: An integer representing seconds, from 60 (1 minute) to 1,209,600 (14 days).
* Default: 345,600 (4 days). When you change a queue's attributes, the change can take up to 60 seconds for
* most of the attributes to propagate throughout the Amazon SQS system. Changes made to the
* MessageRetentionPeriod
attribute can take up to 15 minutes and will impact existing messages
* in the queue potentially causing them to be expired and deleted if the
* MessageRetentionPeriod
is reduced below the age of existing messages.
*
*
*
*
* Policy
– The queue's policy. A valid Amazon Web Services policy. For more information about
* policy structure, see Overview of Amazon Web
* Services IAM Policies in the Identity and Access Management User Guide .
*
*
*
*
* ReceiveMessageWaitTimeSeconds
– The length of time, in seconds, for which a
* ReceiveMessage
action waits for a message to arrive. Valid values: An integer from
* 0 to 20 (seconds). Default: 0.
*
*
*
*
* VisibilityTimeout
– The visibility timeout for the queue, in seconds. Valid values: An
* integer from 0 to 43,200 (12 hours). Default: 30. For more information about the visibility timeout, see
* Visibility Timeout in the Amazon SQS Developer Guide .
*
*
*
*
* The following attributes apply only to dead-letter queues:
*
*
*
*
* RedrivePolicy
– The string that includes the parameters for the dead-letter queue
* functionality of the source queue as a JSON object. The parameters are as follows:
*
*
*
*
* deadLetterTargetArn
– The Amazon Resource Name (ARN) of the dead-letter queue to which
* Amazon SQS moves messages after the value of maxReceiveCount
is exceeded.
*
*
*
*
* maxReceiveCount
– The number of times a message is delivered to the source queue before
* being moved to the dead-letter queue. Default: 10. When the ReceiveCount
for a message
* exceeds the maxReceiveCount
for a queue, Amazon SQS moves the message to the
* dead-letter-queue.
*
*
*
*
*
*
* RedriveAllowPolicy
– The string that includes the parameters for the permissions for the
* dead-letter queue redrive permission and which source queues can specify dead-letter queues as a JSON
* object. The parameters are as follows:
*
*
*
*
* redrivePermission
– The permission type that defines which source queues can specify the
* current queue as the dead-letter queue. Valid values are:
*
*
*
*
* allowAll
– (Default) Any source queues in this Amazon Web Services account in the same
* Region can specify this queue as the dead-letter queue.
*
*
*
*
* denyAll
– No source queues can specify this queue as the dead-letter queue.
*
*
*
*
* byQueue
– Only queues specified by the sourceQueueArns
parameter can specify
* this queue as the dead-letter queue.
*
*
*
*
*
*
* sourceQueueArns
– The Amazon Resource Names (ARN)s of the source queues that can specify
* this queue as the dead-letter queue and redrive messages. You can specify this parameter only when the
* redrivePermission
parameter is set to byQueue
. You can specify up to 10 source
* queue ARNs. To allow more than 10 source queues to specify dead-letter queues, set the
* redrivePermission
parameter to allowAll
.
*
*
*
*
*
*
*
* The dead-letter queue of a FIFO queue must also be a FIFO queue. Similarly, the dead-letter queue of a
* standard queue must also be a standard queue.
*
*
*
* The following attributes apply only to server-side-encryption :
*
*
*
*
* KmsMasterKeyId
– The ID of an Amazon Web Services managed customer master key (CMK) for
* Amazon SQS or a custom CMK. For more information, see Key Terms . While the alias of the AWS-managed CMK for Amazon SQS is always
* alias/aws/sqs
, the alias of a custom CMK can, for example, be
* alias/MyAlias
. For more examples, see KeyId in the Key Management Service API Reference .
*
*
*
*
* KmsDataKeyReusePeriodSeconds
– The length of time, in seconds, for which Amazon SQS can
* reuse a data
* key to encrypt or decrypt messages before calling KMS again. An integer representing seconds, between
* 60 seconds (1 minute) and 86,400 seconds (24 hours). Default: 300 (5 minutes). A shorter time period
* provides better security but results in more calls to KMS which might incur charges after Free Tier. For
* more information, see How Does the Data Key Reuse Period Work? .
*
*
*
*
* 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 ).
*
*
*
*
* The following attribute applies only to FIFO
* (first-in-first-out) queues :
*
*
*
* The following attributes apply only to high throughput for FIFO queues :
*
*
*
*
* DeduplicationScope
– Specifies whether message deduplication occurs at the message group or
* queue level. Valid values are messageGroup
and queue
.
*
*
*
*
* FifoThroughputLimit
– Specifies whether the FIFO queue throughput quota applies to the
* entire queue or per message group. Valid values are perQueue
and
* perMessageGroupId
. The perMessageGroupId
value is allowed only when the value
* for DeduplicationScope
is messageGroup
.
*
*
*
*
* To enable high throughput for FIFO queues, do the following:
*
*
*
* If you set these attributes to anything other than the values shown for enabling high throughput, normal
* throughput is in effect and deduplication occurs as specified.
*
*
* For information on throughput quotas, see Quotas related to messages in the Amazon SQS Developer Guide .
*/
public final Map attributesAsStrings() {
return attributes;
}
@Override
public Builder toBuilder() {
return new BuilderImpl(this);
}
public static Builder builder() {
return new BuilderImpl();
}
public static Class extends Builder> serializableBuilderClass() {
return BuilderImpl.class;
}
@Override
public final int hashCode() {
int hashCode = 1;
hashCode = 31 * hashCode + super.hashCode();
hashCode = 31 * hashCode + Objects.hashCode(queueUrl());
hashCode = 31 * hashCode + Objects.hashCode(hasAttributes() ? attributesAsStrings() : null);
return hashCode;
}
@Override
public final boolean equals(Object obj) {
return super.equals(obj) && equalsBySdkFields(obj);
}
@Override
public final boolean equalsBySdkFields(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (!(obj instanceof SetQueueAttributesRequest)) {
return false;
}
SetQueueAttributesRequest other = (SetQueueAttributesRequest) obj;
return Objects.equals(queueUrl(), other.queueUrl()) && hasAttributes() == other.hasAttributes()
&& Objects.equals(attributesAsStrings(), other.attributesAsStrings());
}
/**
* 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.
*/
@Override
public final String toString() {
return ToString.builder("SetQueueAttributesRequest").add("QueueUrl", queueUrl())
.add("Attributes", hasAttributes() ? attributesAsStrings() : null).build();
}
public final Optional getValueForField(String fieldName, Class clazz) {
switch (fieldName) {
case "QueueUrl":
return Optional.ofNullable(clazz.cast(queueUrl()));
case "Attributes":
return Optional.ofNullable(clazz.cast(attributesAsStrings()));
default:
return Optional.empty();
}
}
@Override
public final List> sdkFields() {
return SDK_FIELDS;
}
@Override
public final Map> sdkFieldNameToField() {
return SDK_NAME_TO_FIELD;
}
private static Function getter(Function g) {
return obj -> g.apply((SetQueueAttributesRequest) obj);
}
private static BiConsumer setter(BiConsumer s) {
return (obj, val) -> s.accept((Builder) obj, val);
}
public interface Builder extends SqsRequest.Builder, SdkPojo, CopyableBuilder {
/**
*
* The URL of the Amazon SQS queue whose attributes are set.
*
*
* Queue URLs and names are case-sensitive.
*
*
* @param queueUrl
* The URL of the Amazon SQS queue whose attributes are set.
*
* Queue URLs and names are case-sensitive.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder queueUrl(String queueUrl);
/**
*
* A map of attributes to set.
*
*
* The following lists the names, descriptions, and values of the special request parameters that the
* SetQueueAttributes
action uses:
*
*
*
*
* DelaySeconds
– The length of time, in seconds, for which the delivery of all messages in the
* queue is delayed. Valid values: An integer from 0 to 900 (15 minutes). Default: 0.
*
*
*
*
* MaximumMessageSize
– The limit of how many bytes a message can contain before Amazon SQS rejects
* it. Valid values: An integer from 1,024 bytes (1 KiB) up to 262,144 bytes (256 KiB). Default: 262,144 (256
* KiB).
*
*
*
*
* MessageRetentionPeriod
– The length of time, in seconds, for which Amazon SQS retains a message.
* Valid values: An integer representing seconds, from 60 (1 minute) to 1,209,600 (14 days). Default: 345,600 (4
* days). When you change a queue's attributes, the change can take up to 60 seconds for most of the attributes
* to propagate throughout the Amazon SQS system. Changes made to the MessageRetentionPeriod
* attribute can take up to 15 minutes and will impact existing messages in the queue potentially causing them
* to be expired and deleted if the MessageRetentionPeriod
is reduced below the age of existing
* messages.
*
*
*
*
* Policy
– The queue's policy. A valid Amazon Web Services policy. For more information about
* policy structure, see Overview of Amazon Web Services
* IAM Policies in the Identity and Access Management User Guide .
*
*
*
*
* ReceiveMessageWaitTimeSeconds
– The length of time, in seconds, for which a
* ReceiveMessage
action waits for a message to arrive. Valid values: An integer from 0 to
* 20 (seconds). Default: 0.
*
*
*
*
* VisibilityTimeout
– The visibility timeout for the queue, in seconds. Valid values: An integer
* from 0 to 43,200 (12 hours). Default: 30. For more information about the visibility timeout, see Visibility Timeout in the Amazon SQS Developer Guide .
*
*
*
*
* The following attributes apply only to dead-letter queues:
*
*
*
*
* RedrivePolicy
– The string that includes the parameters for the dead-letter queue functionality
* of the source queue as a JSON object. The parameters are as follows:
*
*
*
*
* deadLetterTargetArn
– The Amazon Resource Name (ARN) of the dead-letter queue to which Amazon
* SQS moves messages after the value of maxReceiveCount
is exceeded.
*
*
*
*
* maxReceiveCount
– The number of times a message is delivered to the source queue before being
* moved to the dead-letter queue. Default: 10. When the ReceiveCount
for a message exceeds the
* maxReceiveCount
for a queue, Amazon SQS moves the message to the dead-letter-queue.
*
*
*
*
*
*
* RedriveAllowPolicy
– The string that includes the parameters for the permissions for the
* dead-letter queue redrive permission and which source queues can specify dead-letter queues as a JSON object.
* The parameters are as follows:
*
*
*
*
* redrivePermission
– The permission type that defines which source queues can specify the current
* queue as the dead-letter queue. Valid values are:
*
*
*
*
* allowAll
– (Default) Any source queues in this Amazon Web Services account in the same Region
* can specify this queue as the dead-letter queue.
*
*
*
*
* denyAll
– No source queues can specify this queue as the dead-letter queue.
*
*
*
*
* byQueue
– Only queues specified by the sourceQueueArns
parameter can specify this
* queue as the dead-letter queue.
*
*
*
*
*
*
* sourceQueueArns
– The Amazon Resource Names (ARN)s of the source queues that can specify this
* queue as the dead-letter queue and redrive messages. You can specify this parameter only when the
* redrivePermission
parameter is set to byQueue
. You can specify up to 10 source
* queue ARNs. To allow more than 10 source queues to specify dead-letter queues, set the
* redrivePermission
parameter to allowAll
.
*
*
*
*
*
*
*
* The dead-letter queue of a FIFO queue must also be a FIFO queue. Similarly, the dead-letter queue of a
* standard queue must also be a standard queue.
*
*
*
* The following attributes apply only to server-side-encryption :
*
*
*
*
* KmsMasterKeyId
– The ID of an Amazon Web Services managed customer master key (CMK) for Amazon
* SQS or a custom CMK. For more information, see Key Terms . While the alias of the AWS-managed CMK for Amazon SQS is always alias/aws/sqs
,
* the alias of a custom CMK can, for example, be alias/MyAlias
. For more examples, see KeyId in the Key Management Service API Reference .
*
*
*
*
* KmsDataKeyReusePeriodSeconds
– The length of time, in seconds, for which Amazon SQS can reuse a
* data key to
* encrypt or decrypt messages before calling KMS again. An integer representing seconds, between 60 seconds (1
* minute) and 86,400 seconds (24 hours). Default: 300 (5 minutes). A shorter time period provides better
* security but results in more calls to KMS which might incur charges after Free Tier. For more information,
* see How Does the Data Key Reuse Period Work? .
*
*
*
*
* 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 ).
*
*
*
*
* The following attribute applies only to FIFO
* (first-in-first-out) queues :
*
*
*
* The following attributes apply only to high throughput for FIFO queues :
*
*
*
*
* DeduplicationScope
– Specifies whether message deduplication occurs at the message group or
* queue level. Valid values are messageGroup
and queue
.
*
*
*
*
* FifoThroughputLimit
– Specifies whether the FIFO queue throughput quota applies to the entire
* queue or per message group. Valid values are perQueue
and perMessageGroupId
. The
* perMessageGroupId
value is allowed only when the value for DeduplicationScope
is
* messageGroup
.
*
*
*
*
* To enable high throughput for FIFO queues, do the following:
*
*
*
* If you set these attributes to anything other than the values shown for enabling high throughput, normal
* throughput is in effect and deduplication occurs as specified.
*
*
* For information on throughput quotas, see Quotas
* related to messages in the Amazon SQS Developer Guide .
*
*
* @param attributes
* A map of attributes to set.
*
* The following lists the names, descriptions, and values of the special request parameters that the
* SetQueueAttributes
action uses:
*
*
*
*
* DelaySeconds
– The length of time, in seconds, for which the delivery of all messages in
* the queue is delayed. Valid values: An integer from 0 to 900 (15 minutes). Default: 0.
*
*
*
*
* MaximumMessageSize
– The limit of how many bytes a message can contain before Amazon SQS
* rejects it. Valid values: An integer from 1,024 bytes (1 KiB) up to 262,144 bytes (256 KiB). Default:
* 262,144 (256 KiB).
*
*
*
*
* MessageRetentionPeriod
– The length of time, in seconds, for which Amazon SQS retains a
* message. Valid values: An integer representing seconds, from 60 (1 minute) to 1,209,600 (14 days).
* Default: 345,600 (4 days). When you change a queue's attributes, the change can take up to 60 seconds
* for most of the attributes to propagate throughout the Amazon SQS system. Changes made to the
* MessageRetentionPeriod
attribute can take up to 15 minutes and will impact existing
* messages in the queue potentially causing them to be expired and deleted if the
* MessageRetentionPeriod
is reduced below the age of existing messages.
*
*
*
*
* Policy
– The queue's policy. A valid Amazon Web Services policy. For more information
* about policy structure, see Overview of Amazon Web
* Services IAM Policies in the Identity and Access Management User Guide .
*
*
*
*
* ReceiveMessageWaitTimeSeconds
– The length of time, in seconds, for which a
* ReceiveMessage
action waits for a message to arrive. Valid values: An integer
* from 0 to 20 (seconds). Default: 0.
*
*
*
*
* VisibilityTimeout
– The visibility timeout for the queue, in seconds. Valid values: An
* integer from 0 to 43,200 (12 hours). Default: 30. For more information about the visibility timeout,
* see Visibility Timeout in the Amazon SQS Developer Guide .
*
*
*
*
* The following attributes apply only to dead-letter queues:
*
*
*
*
* RedrivePolicy
– The string that includes the parameters for the dead-letter queue
* functionality of the source queue as a JSON object. The parameters are as follows:
*
*
*
*
* deadLetterTargetArn
– The Amazon Resource Name (ARN) of the dead-letter queue to which
* Amazon SQS moves messages after the value of maxReceiveCount
is exceeded.
*
*
*
*
* maxReceiveCount
– The number of times a message is delivered to the source queue before
* being moved to the dead-letter queue. Default: 10. When the ReceiveCount
for a message
* exceeds the maxReceiveCount
for a queue, Amazon SQS moves the message to the
* dead-letter-queue.
*
*
*
*
*
*
* RedriveAllowPolicy
– The string that includes the parameters for the permissions for the
* dead-letter queue redrive permission and which source queues can specify dead-letter queues as a JSON
* object. The parameters are as follows:
*
*
*
*
* redrivePermission
– The permission type that defines which source queues can specify the
* current queue as the dead-letter queue. Valid values are:
*
*
*
*
* allowAll
– (Default) Any source queues in this Amazon Web Services account in the same
* Region can specify this queue as the dead-letter queue.
*
*
*
*
* denyAll
– No source queues can specify this queue as the dead-letter queue.
*
*
*
*
* byQueue
– Only queues specified by the sourceQueueArns
parameter can specify
* this queue as the dead-letter queue.
*
*
*
*
*
*
* sourceQueueArns
– The Amazon Resource Names (ARN)s of the source queues that can specify
* this queue as the dead-letter queue and redrive messages. You can specify this parameter only when the
* redrivePermission
parameter is set to byQueue
. You can specify up to 10
* source queue ARNs. To allow more than 10 source queues to specify dead-letter queues, set the
* redrivePermission
parameter to allowAll
.
*
*
*
*
*
*
*
* The dead-letter queue of a FIFO queue must also be a FIFO queue. Similarly, the dead-letter queue of a
* standard queue must also be a standard queue.
*
*
*
* The following attributes apply only to server-side-encryption :
*
*
*
*
* KmsMasterKeyId
– The ID of an Amazon Web Services managed customer master key (CMK) for
* Amazon SQS or a custom CMK. For more information, see Key Terms . While the alias of the AWS-managed CMK for Amazon SQS is always
* alias/aws/sqs
, the alias of a custom CMK can, for example, be
* alias/MyAlias
. For more examples, see KeyId in the Key Management Service API Reference .
*
*
*
*
* KmsDataKeyReusePeriodSeconds
– The length of time, in seconds, for which Amazon SQS can
* reuse a data
* key to encrypt or decrypt messages before calling KMS again. An integer representing seconds,
* between 60 seconds (1 minute) and 86,400 seconds (24 hours). Default: 300 (5 minutes). A shorter time
* period provides better security but results in more calls to KMS which might incur charges after Free
* Tier. For more information, see How Does the Data Key Reuse Period Work? .
*
*
*
*
* 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 ).
*
*
*
*
* The following attribute applies only to FIFO (first-in-first-out) queues :
*
*
*
* The following attributes apply only to high throughput for FIFO queues :
*
*
*
*
* DeduplicationScope
– Specifies whether message deduplication occurs at the message group
* or queue level. Valid values are messageGroup
and queue
.
*
*
*
*
* FifoThroughputLimit
– Specifies whether the FIFO queue throughput quota applies to the
* entire queue or per message group. Valid values are perQueue
and
* perMessageGroupId
. The perMessageGroupId
value is allowed only when the
* value for DeduplicationScope
is messageGroup
.
*
*
*
*
* To enable high throughput for FIFO queues, do the following:
*
*
*
* If you set these attributes to anything other than the values shown for enabling high throughput,
* normal throughput is in effect and deduplication occurs as specified.
*
*
* For information on throughput quotas, see Quotas related to messages in the Amazon SQS Developer Guide .
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder attributesWithStrings(Map attributes);
/**
*
* A map of attributes to set.
*
*
* The following lists the names, descriptions, and values of the special request parameters that the
* SetQueueAttributes
action uses:
*
*
*
*
* DelaySeconds
– The length of time, in seconds, for which the delivery of all messages in the
* queue is delayed. Valid values: An integer from 0 to 900 (15 minutes). Default: 0.
*
*
*
*
* MaximumMessageSize
– The limit of how many bytes a message can contain before Amazon SQS rejects
* it. Valid values: An integer from 1,024 bytes (1 KiB) up to 262,144 bytes (256 KiB). Default: 262,144 (256
* KiB).
*
*
*
*
* MessageRetentionPeriod
– The length of time, in seconds, for which Amazon SQS retains a message.
* Valid values: An integer representing seconds, from 60 (1 minute) to 1,209,600 (14 days). Default: 345,600 (4
* days). When you change a queue's attributes, the change can take up to 60 seconds for most of the attributes
* to propagate throughout the Amazon SQS system. Changes made to the MessageRetentionPeriod
* attribute can take up to 15 minutes and will impact existing messages in the queue potentially causing them
* to be expired and deleted if the MessageRetentionPeriod
is reduced below the age of existing
* messages.
*
*
*
*
* Policy
– The queue's policy. A valid Amazon Web Services policy. For more information about
* policy structure, see Overview of Amazon Web Services
* IAM Policies in the Identity and Access Management User Guide .
*
*
*
*
* ReceiveMessageWaitTimeSeconds
– The length of time, in seconds, for which a
* ReceiveMessage
action waits for a message to arrive. Valid values: An integer from 0 to
* 20 (seconds). Default: 0.
*
*
*
*
* VisibilityTimeout
– The visibility timeout for the queue, in seconds. Valid values: An integer
* from 0 to 43,200 (12 hours). Default: 30. For more information about the visibility timeout, see Visibility Timeout in the Amazon SQS Developer Guide .
*
*
*
*
* The following attributes apply only to dead-letter queues:
*
*
*
*
* RedrivePolicy
– The string that includes the parameters for the dead-letter queue functionality
* of the source queue as a JSON object. The parameters are as follows:
*
*
*
*
* deadLetterTargetArn
– The Amazon Resource Name (ARN) of the dead-letter queue to which Amazon
* SQS moves messages after the value of maxReceiveCount
is exceeded.
*
*
*
*
* maxReceiveCount
– The number of times a message is delivered to the source queue before being
* moved to the dead-letter queue. Default: 10. When the ReceiveCount
for a message exceeds the
* maxReceiveCount
for a queue, Amazon SQS moves the message to the dead-letter-queue.
*
*
*
*
*
*
* RedriveAllowPolicy
– The string that includes the parameters for the permissions for the
* dead-letter queue redrive permission and which source queues can specify dead-letter queues as a JSON object.
* The parameters are as follows:
*
*
*
*
* redrivePermission
– The permission type that defines which source queues can specify the current
* queue as the dead-letter queue. Valid values are:
*
*
*
*
* allowAll
– (Default) Any source queues in this Amazon Web Services account in the same Region
* can specify this queue as the dead-letter queue.
*
*
*
*
* denyAll
– No source queues can specify this queue as the dead-letter queue.
*
*
*
*
* byQueue
– Only queues specified by the sourceQueueArns
parameter can specify this
* queue as the dead-letter queue.
*
*
*
*
*
*
* sourceQueueArns
– The Amazon Resource Names (ARN)s of the source queues that can specify this
* queue as the dead-letter queue and redrive messages. You can specify this parameter only when the
* redrivePermission
parameter is set to byQueue
. You can specify up to 10 source
* queue ARNs. To allow more than 10 source queues to specify dead-letter queues, set the
* redrivePermission
parameter to allowAll
.
*
*
*
*
*
*
*
* The dead-letter queue of a FIFO queue must also be a FIFO queue. Similarly, the dead-letter queue of a
* standard queue must also be a standard queue.
*
*
*
* The following attributes apply only to server-side-encryption :
*
*
*
*
* KmsMasterKeyId
– The ID of an Amazon Web Services managed customer master key (CMK) for Amazon
* SQS or a custom CMK. For more information, see Key Terms . While the alias of the AWS-managed CMK for Amazon SQS is always alias/aws/sqs
,
* the alias of a custom CMK can, for example, be alias/MyAlias
. For more examples, see KeyId in the Key Management Service API Reference .
*
*
*
*
* KmsDataKeyReusePeriodSeconds
– The length of time, in seconds, for which Amazon SQS can reuse a
* data key to
* encrypt or decrypt messages before calling KMS again. An integer representing seconds, between 60 seconds (1
* minute) and 86,400 seconds (24 hours). Default: 300 (5 minutes). A shorter time period provides better
* security but results in more calls to KMS which might incur charges after Free Tier. For more information,
* see How Does the Data Key Reuse Period Work? .
*
*
*
*
* 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 ).
*
*
*
*
* The following attribute applies only to FIFO
* (first-in-first-out) queues :
*
*
*
* The following attributes apply only to high throughput for FIFO queues :
*
*
*
*
* DeduplicationScope
– Specifies whether message deduplication occurs at the message group or
* queue level. Valid values are messageGroup
and queue
.
*
*
*
*
* FifoThroughputLimit
– Specifies whether the FIFO queue throughput quota applies to the entire
* queue or per message group. Valid values are perQueue
and perMessageGroupId
. The
* perMessageGroupId
value is allowed only when the value for DeduplicationScope
is
* messageGroup
.
*
*
*
*
* To enable high throughput for FIFO queues, do the following:
*
*
*
* If you set these attributes to anything other than the values shown for enabling high throughput, normal
* throughput is in effect and deduplication occurs as specified.
*
*
* For information on throughput quotas, see Quotas
* related to messages in the Amazon SQS Developer Guide .
*
*
* @param attributes
* A map of attributes to set.
*
* The following lists the names, descriptions, and values of the special request parameters that the
* SetQueueAttributes
action uses:
*
*
*
*
* DelaySeconds
– The length of time, in seconds, for which the delivery of all messages in
* the queue is delayed. Valid values: An integer from 0 to 900 (15 minutes). Default: 0.
*
*
*
*
* MaximumMessageSize
– The limit of how many bytes a message can contain before Amazon SQS
* rejects it. Valid values: An integer from 1,024 bytes (1 KiB) up to 262,144 bytes (256 KiB). Default:
* 262,144 (256 KiB).
*
*
*
*
* MessageRetentionPeriod
– The length of time, in seconds, for which Amazon SQS retains a
* message. Valid values: An integer representing seconds, from 60 (1 minute) to 1,209,600 (14 days).
* Default: 345,600 (4 days). When you change a queue's attributes, the change can take up to 60 seconds
* for most of the attributes to propagate throughout the Amazon SQS system. Changes made to the
* MessageRetentionPeriod
attribute can take up to 15 minutes and will impact existing
* messages in the queue potentially causing them to be expired and deleted if the
* MessageRetentionPeriod
is reduced below the age of existing messages.
*
*
*
*
* Policy
– The queue's policy. A valid Amazon Web Services policy. For more information
* about policy structure, see Overview of Amazon Web
* Services IAM Policies in the Identity and Access Management User Guide .
*
*
*
*
* ReceiveMessageWaitTimeSeconds
– The length of time, in seconds, for which a
* ReceiveMessage
action waits for a message to arrive. Valid values: An integer
* from 0 to 20 (seconds). Default: 0.
*
*
*
*
* VisibilityTimeout
– The visibility timeout for the queue, in seconds. Valid values: An
* integer from 0 to 43,200 (12 hours). Default: 30. For more information about the visibility timeout,
* see Visibility Timeout in the Amazon SQS Developer Guide .
*
*
*
*
* The following attributes apply only to dead-letter queues:
*
*
*
*
* RedrivePolicy
– The string that includes the parameters for the dead-letter queue
* functionality of the source queue as a JSON object. The parameters are as follows:
*
*
*
*
* deadLetterTargetArn
– The Amazon Resource Name (ARN) of the dead-letter queue to which
* Amazon SQS moves messages after the value of maxReceiveCount
is exceeded.
*
*
*
*
* maxReceiveCount
– The number of times a message is delivered to the source queue before
* being moved to the dead-letter queue. Default: 10. When the ReceiveCount
for a message
* exceeds the maxReceiveCount
for a queue, Amazon SQS moves the message to the
* dead-letter-queue.
*
*
*
*
*
*
* RedriveAllowPolicy
– The string that includes the parameters for the permissions for the
* dead-letter queue redrive permission and which source queues can specify dead-letter queues as a JSON
* object. The parameters are as follows:
*
*
*
*
* redrivePermission
– The permission type that defines which source queues can specify the
* current queue as the dead-letter queue. Valid values are:
*
*
*
*
* allowAll
– (Default) Any source queues in this Amazon Web Services account in the same
* Region can specify this queue as the dead-letter queue.
*
*
*
*
* denyAll
– No source queues can specify this queue as the dead-letter queue.
*
*
*
*
* byQueue
– Only queues specified by the sourceQueueArns
parameter can specify
* this queue as the dead-letter queue.
*
*
*
*
*
*
* sourceQueueArns
– The Amazon Resource Names (ARN)s of the source queues that can specify
* this queue as the dead-letter queue and redrive messages. You can specify this parameter only when the
* redrivePermission
parameter is set to byQueue
. You can specify up to 10
* source queue ARNs. To allow more than 10 source queues to specify dead-letter queues, set the
* redrivePermission
parameter to allowAll
.
*
*
*
*
*
*
*
* The dead-letter queue of a FIFO queue must also be a FIFO queue. Similarly, the dead-letter queue of a
* standard queue must also be a standard queue.
*
*
*
* The following attributes apply only to server-side-encryption :
*
*
*
*
* KmsMasterKeyId
– The ID of an Amazon Web Services managed customer master key (CMK) for
* Amazon SQS or a custom CMK. For more information, see Key Terms . While the alias of the AWS-managed CMK for Amazon SQS is always
* alias/aws/sqs
, the alias of a custom CMK can, for example, be
* alias/MyAlias
. For more examples, see KeyId in the Key Management Service API Reference .
*
*
*
*
* KmsDataKeyReusePeriodSeconds
– The length of time, in seconds, for which Amazon SQS can
* reuse a data
* key to encrypt or decrypt messages before calling KMS again. An integer representing seconds,
* between 60 seconds (1 minute) and 86,400 seconds (24 hours). Default: 300 (5 minutes). A shorter time
* period provides better security but results in more calls to KMS which might incur charges after Free
* Tier. For more information, see How Does the Data Key Reuse Period Work? .
*
*
*
*
* 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 ).
*
*
*
*
* The following attribute applies only to FIFO (first-in-first-out) queues :
*
*
*
* The following attributes apply only to high throughput for FIFO queues :
*
*
*
*
* DeduplicationScope
– Specifies whether message deduplication occurs at the message group
* or queue level. Valid values are messageGroup
and queue
.
*
*
*
*
* FifoThroughputLimit
– Specifies whether the FIFO queue throughput quota applies to the
* entire queue or per message group. Valid values are perQueue
and
* perMessageGroupId
. The perMessageGroupId
value is allowed only when the
* value for DeduplicationScope
is messageGroup
.
*
*
*
*
* To enable high throughput for FIFO queues, do the following:
*
*
*
* If you set these attributes to anything other than the values shown for enabling high throughput,
* normal throughput is in effect and deduplication occurs as specified.
*
*
* For information on throughput quotas, see Quotas related to messages in the Amazon SQS Developer Guide .
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder attributes(Map attributes);
@Override
Builder overrideConfiguration(AwsRequestOverrideConfiguration overrideConfiguration);
@Override
Builder overrideConfiguration(Consumer builderConsumer);
}
static final class BuilderImpl extends SqsRequest.BuilderImpl implements Builder {
private String queueUrl;
private Map attributes = DefaultSdkAutoConstructMap.getInstance();
private BuilderImpl() {
}
private BuilderImpl(SetQueueAttributesRequest model) {
super(model);
queueUrl(model.queueUrl);
attributesWithStrings(model.attributes);
}
public final String getQueueUrl() {
return queueUrl;
}
public final void setQueueUrl(String queueUrl) {
this.queueUrl = queueUrl;
}
@Override
public final Builder queueUrl(String queueUrl) {
this.queueUrl = queueUrl;
return this;
}
public final Map getAttributes() {
if (attributes instanceof SdkAutoConstructMap) {
return null;
}
return attributes;
}
public final void setAttributes(Map attributes) {
this.attributes = QueueAttributeMapCopier.copy(attributes);
}
@Override
public final Builder attributesWithStrings(Map attributes) {
this.attributes = QueueAttributeMapCopier.copy(attributes);
return this;
}
@Override
public final Builder attributes(Map attributes) {
this.attributes = QueueAttributeMapCopier.copyEnumToString(attributes);
return this;
}
@Override
public Builder overrideConfiguration(AwsRequestOverrideConfiguration overrideConfiguration) {
super.overrideConfiguration(overrideConfiguration);
return this;
}
@Override
public Builder overrideConfiguration(Consumer builderConsumer) {
super.overrideConfiguration(builderConsumer);
return this;
}
@Override
public SetQueueAttributesRequest build() {
return new SetQueueAttributesRequest(this);
}
@Override
public List> sdkFields() {
return SDK_FIELDS;
}
@Override
public Map> sdkFieldNameToField() {
return SDK_NAME_TO_FIELD;
}
}
}