/*
* Copyright 2010-2016 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 com.amazonaws.AmazonWebServiceRequest;
/**
* <p>
* Creates a new standard or FIFO queue or returns the URL of an existing queue.
* You can pass one or more attributes in the request.
* </p>
* <ul>
* <li>
* <p>
* If you don't specify the <code>FifoQueue</code> attribute, Amazon SQS creates
* a standard queue.
* </p>
* <note>
* <p>
* You can't change the queue type after you create it and you can't convert an
* existing standard queue into a FIFO queue. You must either create a new FIFO
* queue for your application or delete your existing standard queue and
* recreate it as a FIFO queue. For more information, see <a href=
* "http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues-moving.html"
* > Moving From a Standard Queue to a FIFO Queue</a> in the <i>Amazon SQS
* Developer Guide</i>.
* </p>
* </note></li>
* <li>
* <p>
* If you don't provide a value for an attribute, the queue is created with the
* default value for the attribute.
* </p>
* </li>
* <li>
* <p>
* If you delete a queue, you must wait at least 60 seconds before creating a
* queue with the same name.
* </p>
* </li>
* </ul>
* <p>
* To successfully create a new queue, you must provide a queue name that
* adheres to the <a href=
* "http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/limits-queues.html"
* >limits related to queues</a> and is unique within the scope of your queues.
* </p>
* <p>
* To get the queue URL, use the <a>GetQueueUrl</a> action. <a>GetQueueUrl</a>
* requires only the <code>QueueName</code> parameter.
* </p>
* <ul>
* <li>
* <p>
* If you provide the name of an existing queue along with the exact names and
* values of all the queue's attributes, <code>CreateQueue</code> returns the
* queue URL for the existing queue.
* </p>
* </li>
* <li>
* <p>
* If the queue name, attribute names, or attribute values don't match an
* existing queue, <code>CreateQueue</code> returns an error.
* </p>
* </li>
* </ul>
* <p>
* Some API actions take lists of parameters. Specify these lists using the
* <code>param.n</code> notation. Values of <code>n</code> are integers starting
* from 1. The following is an example of a parameter list with two elements:
* </p>
* <p>
* <code>&Attribute.1=this</code>
* </p>
* <p>
* <code>&Attribute.2=that</code>
* </p>
*/
public class CreateQueueRequest extends AmazonWebServiceRequest implements Serializable {
/**
* <p>
* The name of the new queue. The following limits apply to this name:
* </p>
* <ul>
* <li>
* <p>
* A queue name can have up to 80 characters.
* </p>
* </li>
* <li>
* <p>
* The following are accepted: alphanumeric chatacters, hyphens (
* <code>-</code>), and underscores (<code>_</code>).
* </p>
* </li>
* <li>
* <p>
* A FIFO queue name must end with the <code>.fifo</code> suffix.
* </p>
* </li>
* </ul>
* <p>
* Queue names are case-sensitive.
* </p>
*/
private String queueName;
/**
* <p>
* A map of attributes with their corresponding values.
* </p>
* <p>
* The following lists the names, descriptions, and values of the special
* request parameters that the <code>CreateQueue</code> action uses:
* </p>
* <ul>
* <li>
* <p>
* <code>DelaySeconds</code> - The number of seconds for which the delivery
* of all messages in the queue is delayed. An integer from 0 to 900 (15
* minutes). The default is 0 (zero).
* </p>
* </li>
* <li>
* <p>
* <code>MaximumMessageSize</code> - The limit of how many bytes a message
* can contain before Amazon SQS rejects it. An integer from 1,024 bytes (1
* KiB) up to 262,144 bytes (256 KiB). The default is 262,144 (256 KiB).
* </p>
* </li>
* <li>
* <p>
* <code>MessageRetentionPeriod</code> - The number of seconds for which
* Amazon SQS retains a message. An integer representing seconds, from 60 (1
* minute) to 120,9600 (14 days). The default is 345,600 (4 days).
* </p>
* </li>
* <li>
* <p>
* <code>Policy</code> - The queue's policy. A valid AWS policy. For more
* information about policy structure, see <a href=
* "http://docs.aws.amazon.com/IAM/latest/UserGuide/PoliciesOverview.html"
* >Overview of AWS IAM Policies</a> in the <i>Amazon IAM User Guide</i>.
* </p>
* </li>
* <li>
* <p>
* <code>ReceiveMessageWaitTimeSeconds</code> - The number of seconds for
* which a <a>ReceiveMessage</a> action will wait for a message to arrive.
* An integer from 0 to 20 (seconds). The default is 0.
* </p>
* </li>
* <li>
* <p>
* <code>RedrivePolicy</code> - The parameters for the dead letter queue
* functionality of the source queue. For more information about the redrive
* policy and dead letter queues, see <a href=
* "http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/SQSDeadLetterQueue.html"
* >Using Amazon SQS Dead Letter Queues</a> in the <i>Amazon SQS Developer
* Guide</i>.
* </p>
* <note>
* <p>
* 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.
* </p>
* </note></li>
* <li>
* <p>
* <code>VisibilityTimeout</code> - The visibility timeout for the queue. An
* integer from 0 to 43200 (12 hours). The default is 30. For more
* information about the visibility timeout, see <a href=
* "http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/AboutVT.html"
* >Visibility Timeout</a> in the <i>Amazon SQS Developer Guide</i>.
* </p>
* </li>
* </ul>
* <p>
* The following attributes apply only to <a href=
* "http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html"
* >FIFO (first-in-first-out) queues</a>:
* </p>
* <ul>
* <li>
* <p>
* <code>FifoQueue</code> - Designates a queue as FIFO. You can provide this
* attribute only during queue creation; you can't change it for an existing
* queue. When you set this attribute, you must provide a
* <code>MessageGroupId</code> explicitly.
* </p>
* <p>
* For more information, see <a href=
* "http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html#FIFO-queues-understanding-logic"
* >FIFO Queue Logic</a> in the <i>Amazon SQS Developer Guide</i>.
* </p>
* </li>
* <li>
* <p>
* <code>ContentBasedDeduplication</code> - Enables content-based
* deduplication. For more information, see <a href=
* "http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html#FIFO-queues-exactly-once-processing"
* >Exactly-Once Processing</a> in the <i>Amazon SQS Developer Guide</i>.
* </p>
* <ul>
* <li>
* <p>
* Every message must have a unique <code>MessageDeduplicationId</code>,
* </p>
* <ul>
* <li>
* <p>
* You may provide a <code>MessageDeduplicationId</code> explicitly.
* </p>
* </li>
* <li>
* <p>
* If you aren't able to provide a <code>MessageDeduplicationId</code> and
* you enable <code>ContentBasedDeduplication</code> for your queue, Amazon
* SQS uses a SHA-256 hash to generate the
* <code>MessageDeduplicationId</code> using the body of the message (but
* not the attributes of the message).
* </p>
* </li>
* <li>
* <p>
* If you don't provide a <code>MessageDeduplicationId</code> and the queue
* doesn't have <code>ContentBasedDeduplication</code> set, the action fails
* with an error.
* </p>
* </li>
* <li>
* <p>
* If the queue has <code>ContentBasedDeduplication</code> set, your
* <code>MessageDeduplicationId</code> overrides the generated one.
* </p>
* </li>
* </ul>
* </li>
* <li>
* <p>
* When <code>ContentBasedDeduplication</code> is in effect, messages with
* identical content sent within the deduplication interval are treated as
* duplicates and only one copy of the message is delivered.
* </p>
* </li>
* <li>
* <p>
* You can also use <code>ContentBasedDeduplication</code> for messages with
* identical content to be treated as duplicates.
* </p>
* </li>
* <li>
* <p>
* If you send one message with <code>ContentBasedDeduplication</code>
* enabled and then another message with a
* <code>MessageDeduplicationId</code> that is the same as the one generated
* for the first <code>MessageDeduplicationId</code>, the two messages are
* treated as duplicates and only one copy of the message is delivered.
* </p>
* </li>
* </ul>
* </li>
* </ul>
* <p>
* Any other valid special request parameters that are specified (such as
* <code>ApproximateNumberOfMessages</code>,
* <code>ApproximateNumberOfMessagesDelayed</code>,
* <code>ApproximateNumberOfMessagesNotVisible</code>,
* <code>CreatedTimestamp</code>, <code>LastModifiedTimestamp</code>, and
* <code>QueueArn</code>) will be ignored.
* </p>
*/
private java.util.Map<String, String> attributes = new java.util.HashMap<String, String>();
/**
* Default constructor for CreateQueueRequest object. Callers should use the
* setter or fluent setter (with...) methods to initialize any additional
* object members.
*/
public CreateQueueRequest() {
}
/**
* Constructs a new CreateQueueRequest object. Callers should use the setter
* or fluent setter (with...) methods to initialize any additional object
* members.
*
* @param queueName <p>
* The name of the new queue. The following limits apply to this
* name:
* </p>
* <ul>
* <li>
* <p>
* A queue name can have up to 80 characters.
* </p>
* </li>
* <li>
* <p>
* The following are accepted: alphanumeric chatacters, hyphens (
* <code>-</code>), and underscores (<code>_</code>).
* </p>
* </li>
* <li>
* <p>
* A FIFO queue name must end with the <code>.fifo</code> suffix.
* </p>
* </li>
* </ul>
* <p>
* Queue names are case-sensitive.
* </p>
*/
public CreateQueueRequest(String queueName) {
setQueueName(queueName);
}
/**
* <p>
* The name of the new queue. The following limits apply to this name:
* </p>
* <ul>
* <li>
* <p>
* A queue name can have up to 80 characters.
* </p>
* </li>
* <li>
* <p>
* The following are accepted: alphanumeric chatacters, hyphens (
* <code>-</code>), and underscores (<code>_</code>).
* </p>
* </li>
* <li>
* <p>
* A FIFO queue name must end with the <code>.fifo</code> suffix.
* </p>
* </li>
* </ul>
* <p>
* Queue names are case-sensitive.
* </p>
*
* @return <p>
* The name of the new queue. The following limits apply to this
* name:
* </p>
* <ul>
* <li>
* <p>
* A queue name can have up to 80 characters.
* </p>
* </li>
* <li>
* <p>
* The following are accepted: alphanumeric chatacters, hyphens (
* <code>-</code>), and underscores (<code>_</code>).
* </p>
* </li>
* <li>
* <p>
* A FIFO queue name must end with the <code>.fifo</code> suffix.
* </p>
* </li>
* </ul>
* <p>
* Queue names are case-sensitive.
* </p>
*/
public String getQueueName() {
return queueName;
}
/**
* <p>
* The name of the new queue. The following limits apply to this name:
* </p>
* <ul>
* <li>
* <p>
* A queue name can have up to 80 characters.
* </p>
* </li>
* <li>
* <p>
* The following are accepted: alphanumeric chatacters, hyphens (
* <code>-</code>), and underscores (<code>_</code>).
* </p>
* </li>
* <li>
* <p>
* A FIFO queue name must end with the <code>.fifo</code> suffix.
* </p>
* </li>
* </ul>
* <p>
* Queue names are case-sensitive.
* </p>
*
* @param queueName <p>
* The name of the new queue. The following limits apply to this
* name:
* </p>
* <ul>
* <li>
* <p>
* A queue name can have up to 80 characters.
* </p>
* </li>
* <li>
* <p>
* The following are accepted: alphanumeric chatacters, hyphens (
* <code>-</code>), and underscores (<code>_</code>).
* </p>
* </li>
* <li>
* <p>
* A FIFO queue name must end with the <code>.fifo</code> suffix.
* </p>
* </li>
* </ul>
* <p>
* Queue names are case-sensitive.
* </p>
*/
public void setQueueName(String queueName) {
this.queueName = queueName;
}
/**
* <p>
* The name of the new queue. The following limits apply to this name:
* </p>
* <ul>
* <li>
* <p>
* A queue name can have up to 80 characters.
* </p>
* </li>
* <li>
* <p>
* The following are accepted: alphanumeric chatacters, hyphens (
* <code>-</code>), and underscores (<code>_</code>).
* </p>
* </li>
* <li>
* <p>
* A FIFO queue name must end with the <code>.fifo</code> suffix.
* </p>
* </li>
* </ul>
* <p>
* Queue names are case-sensitive.
* </p>
* <p>
* Returns a reference to this object so that method calls can be chained
* together.
*
* @param queueName <p>
* The name of the new queue. The following limits apply to this
* name:
* </p>
* <ul>
* <li>
* <p>
* A queue name can have up to 80 characters.
* </p>
* </li>
* <li>
* <p>
* The following are accepted: alphanumeric chatacters, hyphens (
* <code>-</code>), and underscores (<code>_</code>).
* </p>
* </li>
* <li>
* <p>
* A FIFO queue name must end with the <code>.fifo</code> suffix.
* </p>
* </li>
* </ul>
* <p>
* Queue names are case-sensitive.
* </p>
* @return A reference to this updated object so that method calls can be
* chained together.
*/
public CreateQueueRequest withQueueName(String queueName) {
this.queueName = queueName;
return this;
}
/**
* <p>
* A map of attributes with their corresponding values.
* </p>
* <p>
* The following lists the names, descriptions, and values of the special
* request parameters that the <code>CreateQueue</code> action uses:
* </p>
* <ul>
* <li>
* <p>
* <code>DelaySeconds</code> - The number of seconds for which the delivery
* of all messages in the queue is delayed. An integer from 0 to 900 (15
* minutes). The default is 0 (zero).
* </p>
* </li>
* <li>
* <p>
* <code>MaximumMessageSize</code> - The limit of how many bytes a message
* can contain before Amazon SQS rejects it. An integer from 1,024 bytes (1
* KiB) up to 262,144 bytes (256 KiB). The default is 262,144 (256 KiB).
* </p>
* </li>
* <li>
* <p>
* <code>MessageRetentionPeriod</code> - The number of seconds for which
* Amazon SQS retains a message. An integer representing seconds, from 60 (1
* minute) to 120,9600 (14 days). The default is 345,600 (4 days).
* </p>
* </li>
* <li>
* <p>
* <code>Policy</code> - The queue's policy. A valid AWS policy. For more
* information about policy structure, see <a href=
* "http://docs.aws.amazon.com/IAM/latest/UserGuide/PoliciesOverview.html"
* >Overview of AWS IAM Policies</a> in the <i>Amazon IAM User Guide</i>.
* </p>
* </li>
* <li>
* <p>
* <code>ReceiveMessageWaitTimeSeconds</code> - The number of seconds for
* which a <a>ReceiveMessage</a> action will wait for a message to arrive.
* An integer from 0 to 20 (seconds). The default is 0.
* </p>
* </li>
* <li>
* <p>
* <code>RedrivePolicy</code> - The parameters for the dead letter queue
* functionality of the source queue. For more information about the redrive
* policy and dead letter queues, see <a href=
* "http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/SQSDeadLetterQueue.html"
* >Using Amazon SQS Dead Letter Queues</a> in the <i>Amazon SQS Developer
* Guide</i>.
* </p>
* <note>
* <p>
* 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.
* </p>
* </note></li>
* <li>
* <p>
* <code>VisibilityTimeout</code> - The visibility timeout for the queue. An
* integer from 0 to 43200 (12 hours). The default is 30. For more
* information about the visibility timeout, see <a href=
* "http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/AboutVT.html"
* >Visibility Timeout</a> in the <i>Amazon SQS Developer Guide</i>.
* </p>
* </li>
* </ul>
* <p>
* The following attributes apply only to <a href=
* "http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html"
* >FIFO (first-in-first-out) queues</a>:
* </p>
* <ul>
* <li>
* <p>
* <code>FifoQueue</code> - Designates a queue as FIFO. You can provide this
* attribute only during queue creation; you can't change it for an existing
* queue. When you set this attribute, you must provide a
* <code>MessageGroupId</code> explicitly.
* </p>
* <p>
* For more information, see <a href=
* "http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html#FIFO-queues-understanding-logic"
* >FIFO Queue Logic</a> in the <i>Amazon SQS Developer Guide</i>.
* </p>
* </li>
* <li>
* <p>
* <code>ContentBasedDeduplication</code> - Enables content-based
* deduplication. For more information, see <a href=
* "http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html#FIFO-queues-exactly-once-processing"
* >Exactly-Once Processing</a> in the <i>Amazon SQS Developer Guide</i>.
* </p>
* <ul>
* <li>
* <p>
* Every message must have a unique <code>MessageDeduplicationId</code>,
* </p>
* <ul>
* <li>
* <p>
* You may provide a <code>MessageDeduplicationId</code> explicitly.
* </p>
* </li>
* <li>
* <p>
* If you aren't able to provide a <code>MessageDeduplicationId</code> and
* you enable <code>ContentBasedDeduplication</code> for your queue, Amazon
* SQS uses a SHA-256 hash to generate the
* <code>MessageDeduplicationId</code> using the body of the message (but
* not the attributes of the message).
* </p>
* </li>
* <li>
* <p>
* If you don't provide a <code>MessageDeduplicationId</code> and the queue
* doesn't have <code>ContentBasedDeduplication</code> set, the action fails
* with an error.
* </p>
* </li>
* <li>
* <p>
* If the queue has <code>ContentBasedDeduplication</code> set, your
* <code>MessageDeduplicationId</code> overrides the generated one.
* </p>
* </li>
* </ul>
* </li>
* <li>
* <p>
* When <code>ContentBasedDeduplication</code> is in effect, messages with
* identical content sent within the deduplication interval are treated as
* duplicates and only one copy of the message is delivered.
* </p>
* </li>
* <li>
* <p>
* You can also use <code>ContentBasedDeduplication</code> for messages with
* identical content to be treated as duplicates.
* </p>
* </li>
* <li>
* <p>
* If you send one message with <code>ContentBasedDeduplication</code>
* enabled and then another message with a
* <code>MessageDeduplicationId</code> that is the same as the one generated
* for the first <code>MessageDeduplicationId</code>, the two messages are
* treated as duplicates and only one copy of the message is delivered.
* </p>
* </li>
* </ul>
* </li>
* </ul>
* <p>
* Any other valid special request parameters that are specified (such as
* <code>ApproximateNumberOfMessages</code>,
* <code>ApproximateNumberOfMessagesDelayed</code>,
* <code>ApproximateNumberOfMessagesNotVisible</code>,
* <code>CreatedTimestamp</code>, <code>LastModifiedTimestamp</code>, and
* <code>QueueArn</code>) will be ignored.
* </p>
*
* @return <p>
* A map of attributes with their corresponding values.
* </p>
* <p>
* The following lists the names, descriptions, and values of the
* special request parameters that the <code>CreateQueue</code>
* action uses:
* </p>
* <ul>
* <li>
* <p>
* <code>DelaySeconds</code> - The number of seconds for which the
* delivery of all messages in the queue is delayed. An integer from
* 0 to 900 (15 minutes). The default is 0 (zero).
* </p>
* </li>
* <li>
* <p>
* <code>MaximumMessageSize</code> - The limit of how many bytes a
* message can contain before Amazon SQS rejects it. An integer from
* 1,024 bytes (1 KiB) up to 262,144 bytes (256 KiB). The default is
* 262,144 (256 KiB).
* </p>
* </li>
* <li>
* <p>
* <code>MessageRetentionPeriod</code> - The number of seconds for
* which Amazon SQS retains a message. An integer representing
* seconds, from 60 (1 minute) to 120,9600 (14 days). The default is
* 345,600 (4 days).
* </p>
* </li>
* <li>
* <p>
* <code>Policy</code> - The queue's policy. A valid AWS policy. For
* more information about policy structure, see <a href=
* "http://docs.aws.amazon.com/IAM/latest/UserGuide/PoliciesOverview.html"
* >Overview of AWS IAM Policies</a> in the <i>Amazon IAM User
* Guide</i>.
* </p>
* </li>
* <li>
* <p>
* <code>ReceiveMessageWaitTimeSeconds</code> - The number of
* seconds for which a <a>ReceiveMessage</a> action will wait for a
* message to arrive. An integer from 0 to 20 (seconds). The default
* is 0.
* </p>
* </li>
* <li>
* <p>
* <code>RedrivePolicy</code> - The parameters for the dead letter
* queue functionality of the source queue. For more information
* about the redrive policy and dead letter queues, see <a href=
* "http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/SQSDeadLetterQueue.html"
* >Using Amazon SQS Dead Letter Queues</a> in the <i>Amazon SQS
* Developer Guide</i>.
* </p>
* <note>
* <p>
* 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.
* </p>
* </note></li>
* <li>
* <p>
* <code>VisibilityTimeout</code> - The visibility timeout for the
* queue. An integer from 0 to 43200 (12 hours). The default is 30.
* For more information about the visibility timeout, see <a href=
* "http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/AboutVT.html"
* >Visibility Timeout</a> in the <i>Amazon SQS Developer Guide</i>.
* </p>
* </li>
* </ul>
* <p>
* The following attributes apply only to <a href=
* "http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html"
* >FIFO (first-in-first-out) queues</a>:
* </p>
* <ul>
* <li>
* <p>
* <code>FifoQueue</code> - Designates a queue as FIFO. You can
* provide this attribute only during queue creation; you can't
* change it for an existing queue. When you set this attribute, you
* must provide a <code>MessageGroupId</code> explicitly.
* </p>
* <p>
* For more information, see <a href=
* "http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html#FIFO-queues-understanding-logic"
* >FIFO Queue Logic</a> in the <i>Amazon SQS Developer Guide</i>.
* </p>
* </li>
* <li>
* <p>
* <code>ContentBasedDeduplication</code> - Enables content-based
* deduplication. For more information, see <a href=
* "http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html#FIFO-queues-exactly-once-processing"
* >Exactly-Once Processing</a> in the <i>Amazon SQS Developer
* Guide</i>.
* </p>
* <ul>
* <li>
* <p>
* Every message must have a unique
* <code>MessageDeduplicationId</code>,
* </p>
* <ul>
* <li>
* <p>
* You may provide a <code>MessageDeduplicationId</code> explicitly.
* </p>
* </li>
* <li>
* <p>
* If you aren't able to provide a
* <code>MessageDeduplicationId</code> and you enable
* <code>ContentBasedDeduplication</code> for your queue, Amazon SQS
* uses a SHA-256 hash to generate the
* <code>MessageDeduplicationId</code> using the body of the message
* (but not the attributes of the message).
* </p>
* </li>
* <li>
* <p>
* If you don't provide a <code>MessageDeduplicationId</code> and
* the queue doesn't have <code>ContentBasedDeduplication</code>
* set, the action fails with an error.
* </p>
* </li>
* <li>
* <p>
* If the queue has <code>ContentBasedDeduplication</code> set, your
* <code>MessageDeduplicationId</code> overrides the generated one.
* </p>
* </li>
* </ul>
* </li>
* <li>
* <p>
* When <code>ContentBasedDeduplication</code> is in effect,
* messages with identical content sent within the deduplication
* interval are treated as duplicates and only one copy of the
* message is delivered.
* </p>
* </li>
* <li>
* <p>
* You can also use <code>ContentBasedDeduplication</code> for
* messages with identical content to be treated as duplicates.
* </p>
* </li>
* <li>
* <p>
* If you send one message with
* <code>ContentBasedDeduplication</code> enabled and then another
* message with a <code>MessageDeduplicationId</code> that is the
* same as the one generated for the first
* <code>MessageDeduplicationId</code>, the two messages are treated
* as duplicates and only one copy of the message is delivered.
* </p>
* </li>
* </ul>
* </li>
* </ul>
* <p>
* Any other valid special request parameters that are specified
* (such as <code>ApproximateNumberOfMessages</code>,
* <code>ApproximateNumberOfMessagesDelayed</code>,
* <code>ApproximateNumberOfMessagesNotVisible</code>,
* <code>CreatedTimestamp</code>, <code>LastModifiedTimestamp</code>
* , and <code>QueueArn</code>) will be ignored.
* </p>
*/
public java.util.Map<String, String> getAttributes() {
return attributes;
}
/**
* <p>
* A map of attributes with their corresponding values.
* </p>
* <p>
* The following lists the names, descriptions, and values of the special
* request parameters that the <code>CreateQueue</code> action uses:
* </p>
* <ul>
* <li>
* <p>
* <code>DelaySeconds</code> - The number of seconds for which the delivery
* of all messages in the queue is delayed. An integer from 0 to 900 (15
* minutes). The default is 0 (zero).
* </p>
* </li>
* <li>
* <p>
* <code>MaximumMessageSize</code> - The limit of how many bytes a message
* can contain before Amazon SQS rejects it. An integer from 1,024 bytes (1
* KiB) up to 262,144 bytes (256 KiB). The default is 262,144 (256 KiB).
* </p>
* </li>
* <li>
* <p>
* <code>MessageRetentionPeriod</code> - The number of seconds for which
* Amazon SQS retains a message. An integer representing seconds, from 60 (1
* minute) to 120,9600 (14 days). The default is 345,600 (4 days).
* </p>
* </li>
* <li>
* <p>
* <code>Policy</code> - The queue's policy. A valid AWS policy. For more
* information about policy structure, see <a href=
* "http://docs.aws.amazon.com/IAM/latest/UserGuide/PoliciesOverview.html"
* >Overview of AWS IAM Policies</a> in the <i>Amazon IAM User Guide</i>.
* </p>
* </li>
* <li>
* <p>
* <code>ReceiveMessageWaitTimeSeconds</code> - The number of seconds for
* which a <a>ReceiveMessage</a> action will wait for a message to arrive.
* An integer from 0 to 20 (seconds). The default is 0.
* </p>
* </li>
* <li>
* <p>
* <code>RedrivePolicy</code> - The parameters for the dead letter queue
* functionality of the source queue. For more information about the redrive
* policy and dead letter queues, see <a href=
* "http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/SQSDeadLetterQueue.html"
* >Using Amazon SQS Dead Letter Queues</a> in the <i>Amazon SQS Developer
* Guide</i>.
* </p>
* <note>
* <p>
* 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.
* </p>
* </note></li>
* <li>
* <p>
* <code>VisibilityTimeout</code> - The visibility timeout for the queue. An
* integer from 0 to 43200 (12 hours). The default is 30. For more
* information about the visibility timeout, see <a href=
* "http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/AboutVT.html"
* >Visibility Timeout</a> in the <i>Amazon SQS Developer Guide</i>.
* </p>
* </li>
* </ul>
* <p>
* The following attributes apply only to <a href=
* "http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html"
* >FIFO (first-in-first-out) queues</a>:
* </p>
* <ul>
* <li>
* <p>
* <code>FifoQueue</code> - Designates a queue as FIFO. You can provide this
* attribute only during queue creation; you can't change it for an existing
* queue. When you set this attribute, you must provide a
* <code>MessageGroupId</code> explicitly.
* </p>
* <p>
* For more information, see <a href=
* "http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html#FIFO-queues-understanding-logic"
* >FIFO Queue Logic</a> in the <i>Amazon SQS Developer Guide</i>.
* </p>
* </li>
* <li>
* <p>
* <code>ContentBasedDeduplication</code> - Enables content-based
* deduplication. For more information, see <a href=
* "http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html#FIFO-queues-exactly-once-processing"
* >Exactly-Once Processing</a> in the <i>Amazon SQS Developer Guide</i>.
* </p>
* <ul>
* <li>
* <p>
* Every message must have a unique <code>MessageDeduplicationId</code>,
* </p>
* <ul>
* <li>
* <p>
* You may provide a <code>MessageDeduplicationId</code> explicitly.
* </p>
* </li>
* <li>
* <p>
* If you aren't able to provide a <code>MessageDeduplicationId</code> and
* you enable <code>ContentBasedDeduplication</code> for your queue, Amazon
* SQS uses a SHA-256 hash to generate the
* <code>MessageDeduplicationId</code> using the body of the message (but
* not the attributes of the message).
* </p>
* </li>
* <li>
* <p>
* If you don't provide a <code>MessageDeduplicationId</code> and the queue
* doesn't have <code>ContentBasedDeduplication</code> set, the action fails
* with an error.
* </p>
* </li>
* <li>
* <p>
* If the queue has <code>ContentBasedDeduplication</code> set, your
* <code>MessageDeduplicationId</code> overrides the generated one.
* </p>
* </li>
* </ul>
* </li>
* <li>
* <p>
* When <code>ContentBasedDeduplication</code> is in effect, messages with
* identical content sent within the deduplication interval are treated as
* duplicates and only one copy of the message is delivered.
* </p>
* </li>
* <li>
* <p>
* You can also use <code>ContentBasedDeduplication</code> for messages with
* identical content to be treated as duplicates.
* </p>
* </li>
* <li>
* <p>
* If you send one message with <code>ContentBasedDeduplication</code>
* enabled and then another message with a
* <code>MessageDeduplicationId</code> that is the same as the one generated
* for the first <code>MessageDeduplicationId</code>, the two messages are
* treated as duplicates and only one copy of the message is delivered.
* </p>
* </li>
* </ul>
* </li>
* </ul>
* <p>
* Any other valid special request parameters that are specified (such as
* <code>ApproximateNumberOfMessages</code>,
* <code>ApproximateNumberOfMessagesDelayed</code>,
* <code>ApproximateNumberOfMessagesNotVisible</code>,
* <code>CreatedTimestamp</code>, <code>LastModifiedTimestamp</code>, and
* <code>QueueArn</code>) will be ignored.
* </p>
*
* @param attributes <p>
* A map of attributes with their corresponding values.
* </p>
* <p>
* The following lists the names, descriptions, and values of the
* special request parameters that the <code>CreateQueue</code>
* action uses:
* </p>
* <ul>
* <li>
* <p>
* <code>DelaySeconds</code> - The number of seconds for which
* the delivery of all messages in the queue is delayed. An
* integer from 0 to 900 (15 minutes). The default is 0 (zero).
* </p>
* </li>
* <li>
* <p>
* <code>MaximumMessageSize</code> - The limit of how many bytes
* a message can contain before Amazon SQS rejects it. An integer
* from 1,024 bytes (1 KiB) up to 262,144 bytes (256 KiB). The
* default is 262,144 (256 KiB).
* </p>
* </li>
* <li>
* <p>
* <code>MessageRetentionPeriod</code> - The number of seconds
* for which Amazon SQS retains a message. An integer
* representing seconds, from 60 (1 minute) to 120,9600 (14
* days). The default is 345,600 (4 days).
* </p>
* </li>
* <li>
* <p>
* <code>Policy</code> - The queue's policy. A valid AWS policy.
* For more information about policy structure, see <a href=
* "http://docs.aws.amazon.com/IAM/latest/UserGuide/PoliciesOverview.html"
* >Overview of AWS IAM Policies</a> in the <i>Amazon IAM User
* Guide</i>.
* </p>
* </li>
* <li>
* <p>
* <code>ReceiveMessageWaitTimeSeconds</code> - The number of
* seconds for which a <a>ReceiveMessage</a> action will wait for
* a message to arrive. An integer from 0 to 20 (seconds). The
* default is 0.
* </p>
* </li>
* <li>
* <p>
* <code>RedrivePolicy</code> - The parameters for the dead
* letter queue functionality of the source queue. For more
* information about the redrive policy and dead letter queues,
* see <a href=
* "http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/SQSDeadLetterQueue.html"
* >Using Amazon SQS Dead Letter Queues</a> in the <i>Amazon SQS
* Developer Guide</i>.
* </p>
* <note>
* <p>
* 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.
* </p>
* </note></li>
* <li>
* <p>
* <code>VisibilityTimeout</code> - The visibility timeout for
* the queue. An integer from 0 to 43200 (12 hours). The default
* is 30. For more information about the visibility timeout, see
* <a href=
* "http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/AboutVT.html"
* >Visibility Timeout</a> in the <i>Amazon SQS Developer
* Guide</i>.
* </p>
* </li>
* </ul>
* <p>
* The following attributes apply only to <a href=
* "http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html"
* >FIFO (first-in-first-out) queues</a>:
* </p>
* <ul>
* <li>
* <p>
* <code>FifoQueue</code> - Designates a queue as FIFO. You can
* provide this attribute only during queue creation; you can't
* change it for an existing queue. When you set this attribute,
* you must provide a <code>MessageGroupId</code> explicitly.
* </p>
* <p>
* For more information, see <a href=
* "http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html#FIFO-queues-understanding-logic"
* >FIFO Queue Logic</a> in the <i>Amazon SQS Developer
* Guide</i>.
* </p>
* </li>
* <li>
* <p>
* <code>ContentBasedDeduplication</code> - Enables content-based
* deduplication. For more information, see <a href=
* "http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html#FIFO-queues-exactly-once-processing"
* >Exactly-Once Processing</a> in the <i>Amazon SQS Developer
* Guide</i>.
* </p>
* <ul>
* <li>
* <p>
* Every message must have a unique
* <code>MessageDeduplicationId</code>,
* </p>
* <ul>
* <li>
* <p>
* You may provide a <code>MessageDeduplicationId</code>
* explicitly.
* </p>
* </li>
* <li>
* <p>
* If you aren't able to provide a
* <code>MessageDeduplicationId</code> and you enable
* <code>ContentBasedDeduplication</code> for your queue, Amazon
* SQS uses a SHA-256 hash to generate the
* <code>MessageDeduplicationId</code> using the body of the
* message (but not the attributes of the message).
* </p>
* </li>
* <li>
* <p>
* If you don't provide a <code>MessageDeduplicationId</code> and
* the queue doesn't have <code>ContentBasedDeduplication</code>
* set, the action fails with an error.
* </p>
* </li>
* <li>
* <p>
* If the queue has <code>ContentBasedDeduplication</code> set,
* your <code>MessageDeduplicationId</code> overrides the
* generated one.
* </p>
* </li>
* </ul>
* </li>
* <li>
* <p>
* When <code>ContentBasedDeduplication</code> is in effect,
* messages with identical content sent within the deduplication
* interval are treated as duplicates and only one copy of the
* message is delivered.
* </p>
* </li>
* <li>
* <p>
* You can also use <code>ContentBasedDeduplication</code> for
* messages with identical content to be treated as duplicates.
* </p>
* </li>
* <li>
* <p>
* If you send one message with
* <code>ContentBasedDeduplication</code> enabled and then
* another message with a <code>MessageDeduplicationId</code>
* that is the same as the one generated for the first
* <code>MessageDeduplicationId</code>, the two messages are
* treated as duplicates and only one copy of the message is
* delivered.
* </p>
* </li>
* </ul>
* </li>
* </ul>
* <p>
* Any other valid special request parameters that are specified
* (such as <code>ApproximateNumberOfMessages</code>,
* <code>ApproximateNumberOfMessagesDelayed</code>,
* <code>ApproximateNumberOfMessagesNotVisible</code>,
* <code>CreatedTimestamp</code>,
* <code>LastModifiedTimestamp</code>, and <code>QueueArn</code>)
* will be ignored.
* </p>
*/
public void setAttributes(java.util.Map<String, String> attributes) {
this.attributes = attributes;
}
/**
* <p>
* A map of attributes with their corresponding values.
* </p>
* <p>
* The following lists the names, descriptions, and values of the special
* request parameters that the <code>CreateQueue</code> action uses:
* </p>
* <ul>
* <li>
* <p>
* <code>DelaySeconds</code> - The number of seconds for which the delivery
* of all messages in the queue is delayed. An integer from 0 to 900 (15
* minutes). The default is 0 (zero).
* </p>
* </li>
* <li>
* <p>
* <code>MaximumMessageSize</code> - The limit of how many bytes a message
* can contain before Amazon SQS rejects it. An integer from 1,024 bytes (1
* KiB) up to 262,144 bytes (256 KiB). The default is 262,144 (256 KiB).
* </p>
* </li>
* <li>
* <p>
* <code>MessageRetentionPeriod</code> - The number of seconds for which
* Amazon SQS retains a message. An integer representing seconds, from 60 (1
* minute) to 120,9600 (14 days). The default is 345,600 (4 days).
* </p>
* </li>
* <li>
* <p>
* <code>Policy</code> - The queue's policy. A valid AWS policy. For more
* information about policy structure, see <a href=
* "http://docs.aws.amazon.com/IAM/latest/UserGuide/PoliciesOverview.html"
* >Overview of AWS IAM Policies</a> in the <i>Amazon IAM User Guide</i>.
* </p>
* </li>
* <li>
* <p>
* <code>ReceiveMessageWaitTimeSeconds</code> - The number of seconds for
* which a <a>ReceiveMessage</a> action will wait for a message to arrive.
* An integer from 0 to 20 (seconds). The default is 0.
* </p>
* </li>
* <li>
* <p>
* <code>RedrivePolicy</code> - The parameters for the dead letter queue
* functionality of the source queue. For more information about the redrive
* policy and dead letter queues, see <a href=
* "http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/SQSDeadLetterQueue.html"
* >Using Amazon SQS Dead Letter Queues</a> in the <i>Amazon SQS Developer
* Guide</i>.
* </p>
* <note>
* <p>
* 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.
* </p>
* </note></li>
* <li>
* <p>
* <code>VisibilityTimeout</code> - The visibility timeout for the queue. An
* integer from 0 to 43200 (12 hours). The default is 30. For more
* information about the visibility timeout, see <a href=
* "http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/AboutVT.html"
* >Visibility Timeout</a> in the <i>Amazon SQS Developer Guide</i>.
* </p>
* </li>
* </ul>
* <p>
* The following attributes apply only to <a href=
* "http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html"
* >FIFO (first-in-first-out) queues</a>:
* </p>
* <ul>
* <li>
* <p>
* <code>FifoQueue</code> - Designates a queue as FIFO. You can provide this
* attribute only during queue creation; you can't change it for an existing
* queue. When you set this attribute, you must provide a
* <code>MessageGroupId</code> explicitly.
* </p>
* <p>
* For more information, see <a href=
* "http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html#FIFO-queues-understanding-logic"
* >FIFO Queue Logic</a> in the <i>Amazon SQS Developer Guide</i>.
* </p>
* </li>
* <li>
* <p>
* <code>ContentBasedDeduplication</code> - Enables content-based
* deduplication. For more information, see <a href=
* "http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html#FIFO-queues-exactly-once-processing"
* >Exactly-Once Processing</a> in the <i>Amazon SQS Developer Guide</i>.
* </p>
* <ul>
* <li>
* <p>
* Every message must have a unique <code>MessageDeduplicationId</code>,
* </p>
* <ul>
* <li>
* <p>
* You may provide a <code>MessageDeduplicationId</code> explicitly.
* </p>
* </li>
* <li>
* <p>
* If you aren't able to provide a <code>MessageDeduplicationId</code> and
* you enable <code>ContentBasedDeduplication</code> for your queue, Amazon
* SQS uses a SHA-256 hash to generate the
* <code>MessageDeduplicationId</code> using the body of the message (but
* not the attributes of the message).
* </p>
* </li>
* <li>
* <p>
* If you don't provide a <code>MessageDeduplicationId</code> and the queue
* doesn't have <code>ContentBasedDeduplication</code> set, the action fails
* with an error.
* </p>
* </li>
* <li>
* <p>
* If the queue has <code>ContentBasedDeduplication</code> set, your
* <code>MessageDeduplicationId</code> overrides the generated one.
* </p>
* </li>
* </ul>
* </li>
* <li>
* <p>
* When <code>ContentBasedDeduplication</code> is in effect, messages with
* identical content sent within the deduplication interval are treated as
* duplicates and only one copy of the message is delivered.
* </p>
* </li>
* <li>
* <p>
* You can also use <code>ContentBasedDeduplication</code> for messages with
* identical content to be treated as duplicates.
* </p>
* </li>
* <li>
* <p>
* If you send one message with <code>ContentBasedDeduplication</code>
* enabled and then another message with a
* <code>MessageDeduplicationId</code> that is the same as the one generated
* for the first <code>MessageDeduplicationId</code>, the two messages are
* treated as duplicates and only one copy of the message is delivered.
* </p>
* </li>
* </ul>
* </li>
* </ul>
* <p>
* Any other valid special request parameters that are specified (such as
* <code>ApproximateNumberOfMessages</code>,
* <code>ApproximateNumberOfMessagesDelayed</code>,
* <code>ApproximateNumberOfMessagesNotVisible</code>,
* <code>CreatedTimestamp</code>, <code>LastModifiedTimestamp</code>, and
* <code>QueueArn</code>) will be ignored.
* </p>
* <p>
* Returns a reference to this object so that method calls can be chained
* together.
*
* @param attributes <p>
* A map of attributes with their corresponding values.
* </p>
* <p>
* The following lists the names, descriptions, and values of the
* special request parameters that the <code>CreateQueue</code>
* action uses:
* </p>
* <ul>
* <li>
* <p>
* <code>DelaySeconds</code> - The number of seconds for which
* the delivery of all messages in the queue is delayed. An
* integer from 0 to 900 (15 minutes). The default is 0 (zero).
* </p>
* </li>
* <li>
* <p>
* <code>MaximumMessageSize</code> - The limit of how many bytes
* a message can contain before Amazon SQS rejects it. An integer
* from 1,024 bytes (1 KiB) up to 262,144 bytes (256 KiB). The
* default is 262,144 (256 KiB).
* </p>
* </li>
* <li>
* <p>
* <code>MessageRetentionPeriod</code> - The number of seconds
* for which Amazon SQS retains a message. An integer
* representing seconds, from 60 (1 minute) to 120,9600 (14
* days). The default is 345,600 (4 days).
* </p>
* </li>
* <li>
* <p>
* <code>Policy</code> - The queue's policy. A valid AWS policy.
* For more information about policy structure, see <a href=
* "http://docs.aws.amazon.com/IAM/latest/UserGuide/PoliciesOverview.html"
* >Overview of AWS IAM Policies</a> in the <i>Amazon IAM User
* Guide</i>.
* </p>
* </li>
* <li>
* <p>
* <code>ReceiveMessageWaitTimeSeconds</code> - The number of
* seconds for which a <a>ReceiveMessage</a> action will wait for
* a message to arrive. An integer from 0 to 20 (seconds). The
* default is 0.
* </p>
* </li>
* <li>
* <p>
* <code>RedrivePolicy</code> - The parameters for the dead
* letter queue functionality of the source queue. For more
* information about the redrive policy and dead letter queues,
* see <a href=
* "http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/SQSDeadLetterQueue.html"
* >Using Amazon SQS Dead Letter Queues</a> in the <i>Amazon SQS
* Developer Guide</i>.
* </p>
* <note>
* <p>
* 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.
* </p>
* </note></li>
* <li>
* <p>
* <code>VisibilityTimeout</code> - The visibility timeout for
* the queue. An integer from 0 to 43200 (12 hours). The default
* is 30. For more information about the visibility timeout, see
* <a href=
* "http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/AboutVT.html"
* >Visibility Timeout</a> in the <i>Amazon SQS Developer
* Guide</i>.
* </p>
* </li>
* </ul>
* <p>
* The following attributes apply only to <a href=
* "http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html"
* >FIFO (first-in-first-out) queues</a>:
* </p>
* <ul>
* <li>
* <p>
* <code>FifoQueue</code> - Designates a queue as FIFO. You can
* provide this attribute only during queue creation; you can't
* change it for an existing queue. When you set this attribute,
* you must provide a <code>MessageGroupId</code> explicitly.
* </p>
* <p>
* For more information, see <a href=
* "http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html#FIFO-queues-understanding-logic"
* >FIFO Queue Logic</a> in the <i>Amazon SQS Developer
* Guide</i>.
* </p>
* </li>
* <li>
* <p>
* <code>ContentBasedDeduplication</code> - Enables content-based
* deduplication. For more information, see <a href=
* "http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html#FIFO-queues-exactly-once-processing"
* >Exactly-Once Processing</a> in the <i>Amazon SQS Developer
* Guide</i>.
* </p>
* <ul>
* <li>
* <p>
* Every message must have a unique
* <code>MessageDeduplicationId</code>,
* </p>
* <ul>
* <li>
* <p>
* You may provide a <code>MessageDeduplicationId</code>
* explicitly.
* </p>
* </li>
* <li>
* <p>
* If you aren't able to provide a
* <code>MessageDeduplicationId</code> and you enable
* <code>ContentBasedDeduplication</code> for your queue, Amazon
* SQS uses a SHA-256 hash to generate the
* <code>MessageDeduplicationId</code> using the body of the
* message (but not the attributes of the message).
* </p>
* </li>
* <li>
* <p>
* If you don't provide a <code>MessageDeduplicationId</code> and
* the queue doesn't have <code>ContentBasedDeduplication</code>
* set, the action fails with an error.
* </p>
* </li>
* <li>
* <p>
* If the queue has <code>ContentBasedDeduplication</code> set,
* your <code>MessageDeduplicationId</code> overrides the
* generated one.
* </p>
* </li>
* </ul>
* </li>
* <li>
* <p>
* When <code>ContentBasedDeduplication</code> is in effect,
* messages with identical content sent within the deduplication
* interval are treated as duplicates and only one copy of the
* message is delivered.
* </p>
* </li>
* <li>
* <p>
* You can also use <code>ContentBasedDeduplication</code> for
* messages with identical content to be treated as duplicates.
* </p>
* </li>
* <li>
* <p>
* If you send one message with
* <code>ContentBasedDeduplication</code> enabled and then
* another message with a <code>MessageDeduplicationId</code>
* that is the same as the one generated for the first
* <code>MessageDeduplicationId</code>, the two messages are
* treated as duplicates and only one copy of the message is
* delivered.
* </p>
* </li>
* </ul>
* </li>
* </ul>
* <p>
* Any other valid special request parameters that are specified
* (such as <code>ApproximateNumberOfMessages</code>,
* <code>ApproximateNumberOfMessagesDelayed</code>,
* <code>ApproximateNumberOfMessagesNotVisible</code>,
* <code>CreatedTimestamp</code>,
* <code>LastModifiedTimestamp</code>, and <code>QueueArn</code>)
* will be ignored.
* </p>
* @return A reference to this updated object so that method calls can be
* chained together.
*/
public CreateQueueRequest withAttributes(java.util.Map<String, String> attributes) {
this.attributes = attributes;
return this;
}
/**
* <p>
* A map of attributes with their corresponding values.
* </p>
* <p>
* The following lists the names, descriptions, and values of the special
* request parameters that the <code>CreateQueue</code> action uses:
* </p>
* <ul>
* <li>
* <p>
* <code>DelaySeconds</code> - The number of seconds for which the delivery
* of all messages in the queue is delayed. An integer from 0 to 900 (15
* minutes). The default is 0 (zero).
* </p>
* </li>
* <li>
* <p>
* <code>MaximumMessageSize</code> - The limit of how many bytes a message
* can contain before Amazon SQS rejects it. An integer from 1,024 bytes (1
* KiB) up to 262,144 bytes (256 KiB). The default is 262,144 (256 KiB).
* </p>
* </li>
* <li>
* <p>
* <code>MessageRetentionPeriod</code> - The number of seconds for which
* Amazon SQS retains a message. An integer representing seconds, from 60 (1
* minute) to 120,9600 (14 days). The default is 345,600 (4 days).
* </p>
* </li>
* <li>
* <p>
* <code>Policy</code> - The queue's policy. A valid AWS policy. For more
* information about policy structure, see <a href=
* "http://docs.aws.amazon.com/IAM/latest/UserGuide/PoliciesOverview.html"
* >Overview of AWS IAM Policies</a> in the <i>Amazon IAM User Guide</i>.
* </p>
* </li>
* <li>
* <p>
* <code>ReceiveMessageWaitTimeSeconds</code> - The number of seconds for
* which a <a>ReceiveMessage</a> action will wait for a message to arrive.
* An integer from 0 to 20 (seconds). The default is 0.
* </p>
* </li>
* <li>
* <p>
* <code>RedrivePolicy</code> - The parameters for the dead letter queue
* functionality of the source queue. For more information about the redrive
* policy and dead letter queues, see <a href=
* "http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/SQSDeadLetterQueue.html"
* >Using Amazon SQS Dead Letter Queues</a> in the <i>Amazon SQS Developer
* Guide</i>.
* </p>
* <note>
* <p>
* 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.
* </p>
* </note></li>
* <li>
* <p>
* <code>VisibilityTimeout</code> - The visibility timeout for the queue. An
* integer from 0 to 43200 (12 hours). The default is 30. For more
* information about the visibility timeout, see <a href=
* "http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/AboutVT.html"
* >Visibility Timeout</a> in the <i>Amazon SQS Developer Guide</i>.
* </p>
* </li>
* </ul>
* <p>
* The following attributes apply only to <a href=
* "http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html"
* >FIFO (first-in-first-out) queues</a>:
* </p>
* <ul>
* <li>
* <p>
* <code>FifoQueue</code> - Designates a queue as FIFO. You can provide this
* attribute only during queue creation; you can't change it for an existing
* queue. When you set this attribute, you must provide a
* <code>MessageGroupId</code> explicitly.
* </p>
* <p>
* For more information, see <a href=
* "http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html#FIFO-queues-understanding-logic"
* >FIFO Queue Logic</a> in the <i>Amazon SQS Developer Guide</i>.
* </p>
* </li>
* <li>
* <p>
* <code>ContentBasedDeduplication</code> - Enables content-based
* deduplication. For more information, see <a href=
* "http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html#FIFO-queues-exactly-once-processing"
* >Exactly-Once Processing</a> in the <i>Amazon SQS Developer Guide</i>.
* </p>
* <ul>
* <li>
* <p>
* Every message must have a unique <code>MessageDeduplicationId</code>,
* </p>
* <ul>
* <li>
* <p>
* You may provide a <code>MessageDeduplicationId</code> explicitly.
* </p>
* </li>
* <li>
* <p>
* If you aren't able to provide a <code>MessageDeduplicationId</code> and
* you enable <code>ContentBasedDeduplication</code> for your queue, Amazon
* SQS uses a SHA-256 hash to generate the
* <code>MessageDeduplicationId</code> using the body of the message (but
* not the attributes of the message).
* </p>
* </li>
* <li>
* <p>
* If you don't provide a <code>MessageDeduplicationId</code> and the queue
* doesn't have <code>ContentBasedDeduplication</code> set, the action fails
* with an error.
* </p>
* </li>
* <li>
* <p>
* If the queue has <code>ContentBasedDeduplication</code> set, your
* <code>MessageDeduplicationId</code> overrides the generated one.
* </p>
* </li>
* </ul>
* </li>
* <li>
* <p>
* When <code>ContentBasedDeduplication</code> is in effect, messages with
* identical content sent within the deduplication interval are treated as
* duplicates and only one copy of the message is delivered.
* </p>
* </li>
* <li>
* <p>
* You can also use <code>ContentBasedDeduplication</code> for messages with
* identical content to be treated as duplicates.
* </p>
* </li>
* <li>
* <p>
* If you send one message with <code>ContentBasedDeduplication</code>
* enabled and then another message with a
* <code>MessageDeduplicationId</code> that is the same as the one generated
* for the first <code>MessageDeduplicationId</code>, the two messages are
* treated as duplicates and only one copy of the message is delivered.
* </p>
* </li>
* </ul>
* </li>
* </ul>
* <p>
* Any other valid special request parameters that are specified (such as
* <code>ApproximateNumberOfMessages</code>,
* <code>ApproximateNumberOfMessagesDelayed</code>,
* <code>ApproximateNumberOfMessagesNotVisible</code>,
* <code>CreatedTimestamp</code>, <code>LastModifiedTimestamp</code>, and
* <code>QueueArn</code>) will be ignored.
* </p>
* <p>
* The method adds a new key-value pair into Attributes parameter, and
* returns a reference to this object so that method calls can be chained
* together.
*
* @param key The key of the entry to be added into Attributes.
* @param value The corresponding value of the entry to be added into
* Attributes.
* @return A reference to this updated object so that method calls can be
* chained together.
*/
public CreateQueueRequest addAttributesEntry(String key, String value) {
if (null == this.attributes) {
this.attributes = new java.util.HashMap<String, String>();
}
if (this.attributes.containsKey(key))
throw new IllegalArgumentException("Duplicated keys (" + key.toString()
+ ") are provided.");
this.attributes.put(key, value);
return this;
}
/**
* Removes all the entries added into Attributes.
* <p>
* Returns a reference to this object so that method calls can be chained
* together.
*/
public CreateQueueRequest clearAttributesEntries() {
this.attributes = null;
return this;
}
/**
* Returns a string representation of this object; useful for testing and
* debugging.
*
* @return A string representation of this object.
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("{");
if (getQueueName() != null)
sb.append("QueueName: " + getQueueName() + ",");
if (getAttributes() != null)
sb.append("Attributes: " + getAttributes());
sb.append("}");
return sb.toString();
}
@Override
public int hashCode() {
final int prime = 31;
int hashCode = 1;
hashCode = prime * hashCode + ((getQueueName() == null) ? 0 : getQueueName().hashCode());
hashCode = prime * hashCode + ((getAttributes() == null) ? 0 : getAttributes().hashCode());
return hashCode;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (obj instanceof CreateQueueRequest == false)
return false;
CreateQueueRequest other = (CreateQueueRequest) obj;
if (other.getQueueName() == null ^ this.getQueueName() == null)
return false;
if (other.getQueueName() != null
&& other.getQueueName().equals(this.getQueueName()) == false)
return false;
if (other.getAttributes() == null ^ this.getAttributes() == null)
return false;
if (other.getAttributes() != null
&& other.getAttributes().equals(this.getAttributes()) == false)
return false;
return true;
}
}