{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DuplicateRecordFields #-} {-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE StrictData #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE NoImplicitPrelude #-} {-# OPTIONS_GHC -fno-warn-unused-binds #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-} {-# OPTIONS_GHC -fno-warn-unused-matches #-} -- Derived from AWS service descriptions, licensed under Apache 2.0. -- | -- Module : Amazonka.SQS.CreateQueue -- Copyright : (c) 2013-2021 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Creates a new standard or FIFO queue. You can pass one or more -- attributes in the request. Keep the following in mind: -- -- - If you don\'t specify the @FifoQueue@ attribute, Amazon SQS creates -- a standard queue. -- -- 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 -- <https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html#FIFO-queues-moving Moving From a Standard Queue to a FIFO Queue> -- in the /Amazon SQS Developer Guide/. -- -- - If you don\'t provide a value for an attribute, the queue is created -- with the default value for the attribute. -- -- - If you delete a queue, you must wait at least 60 seconds before -- creating a queue with the same name. -- -- To successfully create a new queue, you must provide a queue name that -- adheres to the -- <https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/limits-queues.html limits related to queues> -- and is unique within the scope of your queues. -- -- After you create a queue, you must wait at least one second after the -- queue is created to be able to use the queue. -- -- To get the queue URL, use the @ GetQueueUrl @ action. @ GetQueueUrl @ -- requires only the @QueueName@ parameter. be aware of existing queue -- names: -- -- - If you provide the name of an existing queue along with the exact -- names and values of all the queue\'s attributes, @CreateQueue@ -- returns the queue URL for the existing queue. -- -- - If the queue name, attribute names, or attribute values don\'t match -- an existing queue, @CreateQueue@ returns an error. -- -- Some actions take lists of parameters. These lists are specified using -- the @param.n@ notation. Values of @n@ are integers starting from 1. For -- example, a parameter list with two elements looks like this: -- -- @&AttributeName.1=first@ -- -- @&AttributeName.2=second@ -- -- Cross-account permissions don\'t apply to this action. For more -- information, see -- <https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-customer-managed-policy-examples.html#grant-cross-account-permissions-to-role-and-user-name Grant cross-account permissions to a role and a user name> -- in the /Amazon SQS Developer Guide/. module Amazonka.SQS.CreateQueue ( -- * Creating a Request CreateQueue (..), newCreateQueue, -- * Request Lenses createQueue_attributes, createQueue_tags, createQueue_queueName, -- * Destructuring the Response CreateQueueResponse (..), newCreateQueueResponse, -- * Response Lenses createQueueResponse_queueUrl, createQueueResponse_httpStatus, ) where import qualified Amazonka.Core as Core import qualified Amazonka.Lens as Lens import qualified Amazonka.Prelude as Prelude import qualified Amazonka.Request as Request import qualified Amazonka.Response as Response import Amazonka.SQS.Types -- | -- -- /See:/ 'newCreateQueue' smart constructor. data CreateQueue = CreateQueue' { -- | A map of attributes with their corresponding values. -- -- The following lists the names, descriptions, and values of the special -- request parameters that the @CreateQueue@ 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 seconds (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) 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 from 60 -- seconds (1 minute) to 1,209,600 seconds (14 days). Default: 345,600 -- (4 days). -- -- - @Policy@ – The queue\'s policy. A valid Amazon Web Services policy. -- For more information about policy structure, see -- <https://docs.aws.amazon.com/IAM/latest/UserGuide/PoliciesOverview.html Overview of Amazon Web Services IAM Policies> -- in the /Amazon IAM 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 -- <https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-visibility-timeout.html Visibility Timeout> -- in the /Amazon SQS Developer Guide/. -- -- The following attributes apply only to -- <https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-dead-letter-queues.html 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. -- 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 -- <https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html 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 -- <https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html#sqs-sse-key-terms Key Terms>. -- While the alias of the Amazon Web Services 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 -- <https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html#API_DescribeKey_RequestParameters KeyId> -- in the /Key Management Service API Reference/. -- -- - @KmsDataKeyReusePeriodSeconds@ – The length of time, in seconds, for -- which Amazon SQS can reuse a -- <https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#data-keys 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 -- <https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html#sqs-how-does-the-data-key-reuse-period-work How Does the Data Key Reuse Period Work?>. -- -- The following attributes apply only to -- <https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html FIFO (first-in-first-out) queues>: -- -- - @FifoQueue@ – Designates a queue as FIFO. Valid values are @true@ -- and @false@. If you don\'t specify the @FifoQueue@ attribute, Amazon -- SQS creates a standard queue. 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 also provide the -- @MessageGroupId@ for your messages explicitly. -- -- For more information, see -- <https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues-understanding-logic.html FIFO queue logic> -- in the /Amazon SQS Developer Guide/. -- -- - @ContentBasedDeduplication@ – Enables content-based deduplication. -- Valid values are @true@ and @false@. For more information, see -- <https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues-exactly-once-processing.html Exactly-once processing> -- in the /Amazon SQS Developer Guide/. Note the following: -- -- - Every message must have a unique @MessageDeduplicationId@. -- -- - You may provide a @MessageDeduplicationId@ explicitly. -- -- - If you aren\'t able to provide a @MessageDeduplicationId@ -- and you enable @ContentBasedDeduplication@ for your queue, -- Amazon SQS uses a SHA-256 hash to generate the -- @MessageDeduplicationId@ using the body of the message (but -- not the attributes of the message). -- -- - If you don\'t provide a @MessageDeduplicationId@ and the -- queue doesn\'t have @ContentBasedDeduplication@ set, the -- action fails with an error. -- -- - If the queue has @ContentBasedDeduplication@ set, your -- @MessageDeduplicationId@ overrides the generated one. -- -- - When @ContentBasedDeduplication@ 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. -- -- - If you send one message with @ContentBasedDeduplication@ enabled -- and then another message with a @MessageDeduplicationId@ that is -- the same as the one generated for the first -- @MessageDeduplicationId@, the two messages are treated as -- duplicates and only one copy of the message is delivered. -- -- The following attributes apply only to -- <https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/high-throughput-fifo.html 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: -- -- - Set @DeduplicationScope@ to @messageGroup@. -- -- - Set @FifoThroughputLimit@ to @perMessageGroupId@. -- -- 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 -- <https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/quotas-messages.html Quotas related to messages> -- in the /Amazon SQS Developer Guide/. CreateQueue -> Maybe (HashMap QueueAttributeName Text) attributes :: Prelude.Maybe (Prelude.HashMap QueueAttributeName Prelude.Text), -- | Add cost allocation tags to the specified Amazon SQS queue. For an -- overview, see -- <https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-queue-tags.html Tagging Your Amazon SQS Queues> -- in the /Amazon SQS Developer Guide/. -- -- When you use queue tags, keep the following guidelines in mind: -- -- - Adding more than 50 tags to a queue isn\'t recommended. -- -- - Tags don\'t have any semantic meaning. Amazon SQS interprets tags as -- character strings. -- -- - Tags are case-sensitive. -- -- - A new tag with a key identical to that of an existing tag overwrites -- the existing tag. -- -- For a full list of tag restrictions, see -- <https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-limits.html#limits-queues Quotas related to queues> -- in the /Amazon SQS Developer Guide/. -- -- To be able to tag a queue on creation, you must have the -- @sqs:CreateQueue@ and @sqs:TagQueue@ permissions. -- -- Cross-account permissions don\'t apply to this action. For more -- information, see -- <https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-customer-managed-policy-examples.html#grant-cross-account-permissions-to-role-and-user-name Grant cross-account permissions to a role and a user name> -- in the /Amazon SQS Developer Guide/. :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text), -- | The name of the new queue. The following limits apply to this name: -- -- - A queue name can have up to 80 characters. -- -- - Valid values: alphanumeric characters, hyphens (@-@), and -- underscores (@_@). -- -- - A FIFO queue name must end with the @.fifo@ suffix. -- -- Queue URLs and names are case-sensitive. CreateQueue -> Text queueName :: Prelude.Text } deriving (CreateQueue -> CreateQueue -> Bool (CreateQueue -> CreateQueue -> Bool) -> (CreateQueue -> CreateQueue -> Bool) -> Eq CreateQueue forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: CreateQueue -> CreateQueue -> Bool $c/= :: CreateQueue -> CreateQueue -> Bool == :: CreateQueue -> CreateQueue -> Bool $c== :: CreateQueue -> CreateQueue -> Bool Prelude.Eq, ReadPrec [CreateQueue] ReadPrec CreateQueue Int -> ReadS CreateQueue ReadS [CreateQueue] (Int -> ReadS CreateQueue) -> ReadS [CreateQueue] -> ReadPrec CreateQueue -> ReadPrec [CreateQueue] -> Read CreateQueue forall a. (Int -> ReadS a) -> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a readListPrec :: ReadPrec [CreateQueue] $creadListPrec :: ReadPrec [CreateQueue] readPrec :: ReadPrec CreateQueue $creadPrec :: ReadPrec CreateQueue readList :: ReadS [CreateQueue] $creadList :: ReadS [CreateQueue] readsPrec :: Int -> ReadS CreateQueue $creadsPrec :: Int -> ReadS CreateQueue Prelude.Read, Int -> CreateQueue -> ShowS [CreateQueue] -> ShowS CreateQueue -> String (Int -> CreateQueue -> ShowS) -> (CreateQueue -> String) -> ([CreateQueue] -> ShowS) -> Show CreateQueue forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [CreateQueue] -> ShowS $cshowList :: [CreateQueue] -> ShowS show :: CreateQueue -> String $cshow :: CreateQueue -> String showsPrec :: Int -> CreateQueue -> ShowS $cshowsPrec :: Int -> CreateQueue -> ShowS Prelude.Show, (forall x. CreateQueue -> Rep CreateQueue x) -> (forall x. Rep CreateQueue x -> CreateQueue) -> Generic CreateQueue forall x. Rep CreateQueue x -> CreateQueue forall x. CreateQueue -> Rep CreateQueue x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a $cto :: forall x. Rep CreateQueue x -> CreateQueue $cfrom :: forall x. CreateQueue -> Rep CreateQueue x Prelude.Generic) -- | -- Create a value of 'CreateQueue' with all optional fields omitted. -- -- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields. -- -- The following record fields are available, with the corresponding lenses provided -- for backwards compatibility: -- -- 'attributes', 'createQueue_attributes' - A map of attributes with their corresponding values. -- -- The following lists the names, descriptions, and values of the special -- request parameters that the @CreateQueue@ 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 seconds (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) 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 from 60 -- seconds (1 minute) to 1,209,600 seconds (14 days). Default: 345,600 -- (4 days). -- -- - @Policy@ – The queue\'s policy. A valid Amazon Web Services policy. -- For more information about policy structure, see -- <https://docs.aws.amazon.com/IAM/latest/UserGuide/PoliciesOverview.html Overview of Amazon Web Services IAM Policies> -- in the /Amazon IAM 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 -- <https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-visibility-timeout.html Visibility Timeout> -- in the /Amazon SQS Developer Guide/. -- -- The following attributes apply only to -- <https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-dead-letter-queues.html 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. -- 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 -- <https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html 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 -- <https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html#sqs-sse-key-terms Key Terms>. -- While the alias of the Amazon Web Services 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 -- <https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html#API_DescribeKey_RequestParameters KeyId> -- in the /Key Management Service API Reference/. -- -- - @KmsDataKeyReusePeriodSeconds@ – The length of time, in seconds, for -- which Amazon SQS can reuse a -- <https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#data-keys 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 -- <https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html#sqs-how-does-the-data-key-reuse-period-work How Does the Data Key Reuse Period Work?>. -- -- The following attributes apply only to -- <https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html FIFO (first-in-first-out) queues>: -- -- - @FifoQueue@ – Designates a queue as FIFO. Valid values are @true@ -- and @false@. If you don\'t specify the @FifoQueue@ attribute, Amazon -- SQS creates a standard queue. 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 also provide the -- @MessageGroupId@ for your messages explicitly. -- -- For more information, see -- <https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues-understanding-logic.html FIFO queue logic> -- in the /Amazon SQS Developer Guide/. -- -- - @ContentBasedDeduplication@ – Enables content-based deduplication. -- Valid values are @true@ and @false@. For more information, see -- <https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues-exactly-once-processing.html Exactly-once processing> -- in the /Amazon SQS Developer Guide/. Note the following: -- -- - Every message must have a unique @MessageDeduplicationId@. -- -- - You may provide a @MessageDeduplicationId@ explicitly. -- -- - If you aren\'t able to provide a @MessageDeduplicationId@ -- and you enable @ContentBasedDeduplication@ for your queue, -- Amazon SQS uses a SHA-256 hash to generate the -- @MessageDeduplicationId@ using the body of the message (but -- not the attributes of the message). -- -- - If you don\'t provide a @MessageDeduplicationId@ and the -- queue doesn\'t have @ContentBasedDeduplication@ set, the -- action fails with an error. -- -- - If the queue has @ContentBasedDeduplication@ set, your -- @MessageDeduplicationId@ overrides the generated one. -- -- - When @ContentBasedDeduplication@ 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. -- -- - If you send one message with @ContentBasedDeduplication@ enabled -- and then another message with a @MessageDeduplicationId@ that is -- the same as the one generated for the first -- @MessageDeduplicationId@, the two messages are treated as -- duplicates and only one copy of the message is delivered. -- -- The following attributes apply only to -- <https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/high-throughput-fifo.html 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: -- -- - Set @DeduplicationScope@ to @messageGroup@. -- -- - Set @FifoThroughputLimit@ to @perMessageGroupId@. -- -- 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 -- <https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/quotas-messages.html Quotas related to messages> -- in the /Amazon SQS Developer Guide/. -- -- 'tags', 'createQueue_tags' - Add cost allocation tags to the specified Amazon SQS queue. For an -- overview, see -- <https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-queue-tags.html Tagging Your Amazon SQS Queues> -- in the /Amazon SQS Developer Guide/. -- -- When you use queue tags, keep the following guidelines in mind: -- -- - Adding more than 50 tags to a queue isn\'t recommended. -- -- - Tags don\'t have any semantic meaning. Amazon SQS interprets tags as -- character strings. -- -- - Tags are case-sensitive. -- -- - A new tag with a key identical to that of an existing tag overwrites -- the existing tag. -- -- For a full list of tag restrictions, see -- <https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-limits.html#limits-queues Quotas related to queues> -- in the /Amazon SQS Developer Guide/. -- -- To be able to tag a queue on creation, you must have the -- @sqs:CreateQueue@ and @sqs:TagQueue@ permissions. -- -- Cross-account permissions don\'t apply to this action. For more -- information, see -- <https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-customer-managed-policy-examples.html#grant-cross-account-permissions-to-role-and-user-name Grant cross-account permissions to a role and a user name> -- in the /Amazon SQS Developer Guide/. -- -- 'queueName', 'createQueue_queueName' - The name of the new queue. The following limits apply to this name: -- -- - A queue name can have up to 80 characters. -- -- - Valid values: alphanumeric characters, hyphens (@-@), and -- underscores (@_@). -- -- - A FIFO queue name must end with the @.fifo@ suffix. -- -- Queue URLs and names are case-sensitive. newCreateQueue :: -- | 'queueName' Prelude.Text -> CreateQueue newCreateQueue :: Text -> CreateQueue newCreateQueue Text pQueueName_ = CreateQueue' :: Maybe (HashMap QueueAttributeName Text) -> Maybe (HashMap Text Text) -> Text -> CreateQueue CreateQueue' { $sel:attributes:CreateQueue' :: Maybe (HashMap QueueAttributeName Text) attributes = Maybe (HashMap QueueAttributeName Text) forall a. Maybe a Prelude.Nothing, $sel:tags:CreateQueue' :: Maybe (HashMap Text Text) tags = Maybe (HashMap Text Text) forall a. Maybe a Prelude.Nothing, $sel:queueName:CreateQueue' :: Text queueName = Text pQueueName_ } -- | A map of attributes with their corresponding values. -- -- The following lists the names, descriptions, and values of the special -- request parameters that the @CreateQueue@ 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 seconds (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) 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 from 60 -- seconds (1 minute) to 1,209,600 seconds (14 days). Default: 345,600 -- (4 days). -- -- - @Policy@ – The queue\'s policy. A valid Amazon Web Services policy. -- For more information about policy structure, see -- <https://docs.aws.amazon.com/IAM/latest/UserGuide/PoliciesOverview.html Overview of Amazon Web Services IAM Policies> -- in the /Amazon IAM 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 -- <https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-visibility-timeout.html Visibility Timeout> -- in the /Amazon SQS Developer Guide/. -- -- The following attributes apply only to -- <https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-dead-letter-queues.html 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. -- 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 -- <https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html 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 -- <https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html#sqs-sse-key-terms Key Terms>. -- While the alias of the Amazon Web Services 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 -- <https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html#API_DescribeKey_RequestParameters KeyId> -- in the /Key Management Service API Reference/. -- -- - @KmsDataKeyReusePeriodSeconds@ – The length of time, in seconds, for -- which Amazon SQS can reuse a -- <https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#data-keys 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 -- <https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html#sqs-how-does-the-data-key-reuse-period-work How Does the Data Key Reuse Period Work?>. -- -- The following attributes apply only to -- <https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html FIFO (first-in-first-out) queues>: -- -- - @FifoQueue@ – Designates a queue as FIFO. Valid values are @true@ -- and @false@. If you don\'t specify the @FifoQueue@ attribute, Amazon -- SQS creates a standard queue. 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 also provide the -- @MessageGroupId@ for your messages explicitly. -- -- For more information, see -- <https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues-understanding-logic.html FIFO queue logic> -- in the /Amazon SQS Developer Guide/. -- -- - @ContentBasedDeduplication@ – Enables content-based deduplication. -- Valid values are @true@ and @false@. For more information, see -- <https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues-exactly-once-processing.html Exactly-once processing> -- in the /Amazon SQS Developer Guide/. Note the following: -- -- - Every message must have a unique @MessageDeduplicationId@. -- -- - You may provide a @MessageDeduplicationId@ explicitly. -- -- - If you aren\'t able to provide a @MessageDeduplicationId@ -- and you enable @ContentBasedDeduplication@ for your queue, -- Amazon SQS uses a SHA-256 hash to generate the -- @MessageDeduplicationId@ using the body of the message (but -- not the attributes of the message). -- -- - If you don\'t provide a @MessageDeduplicationId@ and the -- queue doesn\'t have @ContentBasedDeduplication@ set, the -- action fails with an error. -- -- - If the queue has @ContentBasedDeduplication@ set, your -- @MessageDeduplicationId@ overrides the generated one. -- -- - When @ContentBasedDeduplication@ 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. -- -- - If you send one message with @ContentBasedDeduplication@ enabled -- and then another message with a @MessageDeduplicationId@ that is -- the same as the one generated for the first -- @MessageDeduplicationId@, the two messages are treated as -- duplicates and only one copy of the message is delivered. -- -- The following attributes apply only to -- <https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/high-throughput-fifo.html 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: -- -- - Set @DeduplicationScope@ to @messageGroup@. -- -- - Set @FifoThroughputLimit@ to @perMessageGroupId@. -- -- 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 -- <https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/quotas-messages.html Quotas related to messages> -- in the /Amazon SQS Developer Guide/. createQueue_attributes :: Lens.Lens' CreateQueue (Prelude.Maybe (Prelude.HashMap QueueAttributeName Prelude.Text)) createQueue_attributes :: (Maybe (HashMap QueueAttributeName Text) -> f (Maybe (HashMap QueueAttributeName Text))) -> CreateQueue -> f CreateQueue createQueue_attributes = (CreateQueue -> Maybe (HashMap QueueAttributeName Text)) -> (CreateQueue -> Maybe (HashMap QueueAttributeName Text) -> CreateQueue) -> Lens CreateQueue CreateQueue (Maybe (HashMap QueueAttributeName Text)) (Maybe (HashMap QueueAttributeName Text)) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\CreateQueue' {Maybe (HashMap QueueAttributeName Text) attributes :: Maybe (HashMap QueueAttributeName Text) $sel:attributes:CreateQueue' :: CreateQueue -> Maybe (HashMap QueueAttributeName Text) attributes} -> Maybe (HashMap QueueAttributeName Text) attributes) (\s :: CreateQueue s@CreateQueue' {} Maybe (HashMap QueueAttributeName Text) a -> CreateQueue s {$sel:attributes:CreateQueue' :: Maybe (HashMap QueueAttributeName Text) attributes = Maybe (HashMap QueueAttributeName Text) a} :: CreateQueue) ((Maybe (HashMap QueueAttributeName Text) -> f (Maybe (HashMap QueueAttributeName Text))) -> CreateQueue -> f CreateQueue) -> ((Maybe (HashMap QueueAttributeName Text) -> f (Maybe (HashMap QueueAttributeName Text))) -> Maybe (HashMap QueueAttributeName Text) -> f (Maybe (HashMap QueueAttributeName Text))) -> (Maybe (HashMap QueueAttributeName Text) -> f (Maybe (HashMap QueueAttributeName Text))) -> CreateQueue -> f CreateQueue forall b c a. (b -> c) -> (a -> b) -> a -> c Prelude.. AnIso (HashMap QueueAttributeName Text) (HashMap QueueAttributeName Text) (HashMap QueueAttributeName Text) (HashMap QueueAttributeName Text) -> Iso (Maybe (HashMap QueueAttributeName Text)) (Maybe (HashMap QueueAttributeName Text)) (Maybe (HashMap QueueAttributeName Text)) (Maybe (HashMap QueueAttributeName Text)) forall (f :: * -> *) (g :: * -> *) s t a b. (Functor f, Functor g) => AnIso s t a b -> Iso (f s) (g t) (f a) (g b) Lens.mapping AnIso (HashMap QueueAttributeName Text) (HashMap QueueAttributeName Text) (HashMap QueueAttributeName Text) (HashMap QueueAttributeName Text) forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b Lens.coerced -- | Add cost allocation tags to the specified Amazon SQS queue. For an -- overview, see -- <https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-queue-tags.html Tagging Your Amazon SQS Queues> -- in the /Amazon SQS Developer Guide/. -- -- When you use queue tags, keep the following guidelines in mind: -- -- - Adding more than 50 tags to a queue isn\'t recommended. -- -- - Tags don\'t have any semantic meaning. Amazon SQS interprets tags as -- character strings. -- -- - Tags are case-sensitive. -- -- - A new tag with a key identical to that of an existing tag overwrites -- the existing tag. -- -- For a full list of tag restrictions, see -- <https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-limits.html#limits-queues Quotas related to queues> -- in the /Amazon SQS Developer Guide/. -- -- To be able to tag a queue on creation, you must have the -- @sqs:CreateQueue@ and @sqs:TagQueue@ permissions. -- -- Cross-account permissions don\'t apply to this action. For more -- information, see -- <https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-customer-managed-policy-examples.html#grant-cross-account-permissions-to-role-and-user-name Grant cross-account permissions to a role and a user name> -- in the /Amazon SQS Developer Guide/. createQueue_tags :: Lens.Lens' CreateQueue (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text)) = (CreateQueue -> Maybe (HashMap Text Text)) -> (CreateQueue -> Maybe (HashMap Text Text) -> CreateQueue) -> Lens CreateQueue CreateQueue (Maybe (HashMap Text Text)) (Maybe (HashMap Text Text)) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\CreateQueue' {Maybe (HashMap Text Text) tags :: Maybe (HashMap Text Text) $sel:tags:CreateQueue' :: CreateQueue -> Maybe (HashMap Text Text) tags} -> Maybe (HashMap Text Text) tags) (\s :: CreateQueue s@CreateQueue' {} Maybe (HashMap Text Text) a -> CreateQueue s {$sel:tags:CreateQueue' :: Maybe (HashMap Text Text) tags = Maybe (HashMap Text Text) a} :: CreateQueue) ((Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text))) -> CreateQueue -> f CreateQueue) -> ((Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text))) -> Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text))) -> (Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text))) -> CreateQueue -> f CreateQueue forall b c a. (b -> c) -> (a -> b) -> a -> c Prelude.. AnIso (HashMap Text Text) (HashMap Text Text) (HashMap Text Text) (HashMap Text Text) -> Iso (Maybe (HashMap Text Text)) (Maybe (HashMap Text Text)) (Maybe (HashMap Text Text)) (Maybe (HashMap Text Text)) forall (f :: * -> *) (g :: * -> *) s t a b. (Functor f, Functor g) => AnIso s t a b -> Iso (f s) (g t) (f a) (g b) Lens.mapping AnIso (HashMap Text Text) (HashMap Text Text) (HashMap Text Text) (HashMap Text Text) forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b Lens.coerced -- | The name of the new queue. The following limits apply to this name: -- -- - A queue name can have up to 80 characters. -- -- - Valid values: alphanumeric characters, hyphens (@-@), and -- underscores (@_@). -- -- - A FIFO queue name must end with the @.fifo@ suffix. -- -- Queue URLs and names are case-sensitive. createQueue_queueName :: Lens.Lens' CreateQueue Prelude.Text createQueue_queueName :: (Text -> f Text) -> CreateQueue -> f CreateQueue createQueue_queueName = (CreateQueue -> Text) -> (CreateQueue -> Text -> CreateQueue) -> Lens CreateQueue CreateQueue Text Text forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\CreateQueue' {Text queueName :: Text $sel:queueName:CreateQueue' :: CreateQueue -> Text queueName} -> Text queueName) (\s :: CreateQueue s@CreateQueue' {} Text a -> CreateQueue s {$sel:queueName:CreateQueue' :: Text queueName = Text a} :: CreateQueue) instance Core.AWSRequest CreateQueue where type AWSResponse CreateQueue = CreateQueueResponse request :: CreateQueue -> Request CreateQueue request = Service -> CreateQueue -> Request CreateQueue forall a. ToRequest a => Service -> a -> Request a Request.postQuery Service defaultService response :: Logger -> Service -> Proxy CreateQueue -> ClientResponse ClientBody -> m (Either Error (ClientResponse (AWSResponse CreateQueue))) response = Text -> (Int -> ResponseHeaders -> [Node] -> Either String (AWSResponse CreateQueue)) -> Logger -> Service -> Proxy CreateQueue -> ClientResponse ClientBody -> m (Either Error (ClientResponse (AWSResponse CreateQueue))) forall (m :: * -> *) a. MonadResource m => Text -> (Int -> ResponseHeaders -> [Node] -> Either String (AWSResponse a)) -> Logger -> Service -> Proxy a -> ClientResponse ClientBody -> m (Either Error (ClientResponse (AWSResponse a))) Response.receiveXMLWrapper Text "CreateQueueResult" ( \Int s ResponseHeaders h [Node] x -> Maybe Text -> Int -> CreateQueueResponse CreateQueueResponse' (Maybe Text -> Int -> CreateQueueResponse) -> Either String (Maybe Text) -> Either String (Int -> CreateQueueResponse) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b Prelude.<$> ([Node] x [Node] -> Text -> Either String (Maybe Text) forall a. FromXML a => [Node] -> Text -> Either String (Maybe a) Core..@? Text "QueueUrl") Either String (Int -> CreateQueueResponse) -> Either String Int -> Either String CreateQueueResponse forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b Prelude.<*> (Int -> Either String Int forall (f :: * -> *) a. Applicative f => a -> f a Prelude.pure (Int -> Int forall a. Enum a => a -> Int Prelude.fromEnum Int s)) ) instance Prelude.Hashable CreateQueue instance Prelude.NFData CreateQueue instance Core.ToHeaders CreateQueue where toHeaders :: CreateQueue -> ResponseHeaders toHeaders = ResponseHeaders -> CreateQueue -> ResponseHeaders forall a b. a -> b -> a Prelude.const ResponseHeaders forall a. Monoid a => a Prelude.mempty instance Core.ToPath CreateQueue where toPath :: CreateQueue -> ByteString toPath = ByteString -> CreateQueue -> ByteString forall a b. a -> b -> a Prelude.const ByteString "/" instance Core.ToQuery CreateQueue where toQuery :: CreateQueue -> QueryString toQuery CreateQueue' {Maybe (HashMap Text Text) Maybe (HashMap QueueAttributeName Text) Text queueName :: Text tags :: Maybe (HashMap Text Text) attributes :: Maybe (HashMap QueueAttributeName Text) $sel:queueName:CreateQueue' :: CreateQueue -> Text $sel:tags:CreateQueue' :: CreateQueue -> Maybe (HashMap Text Text) $sel:attributes:CreateQueue' :: CreateQueue -> Maybe (HashMap QueueAttributeName Text) ..} = [QueryString] -> QueryString forall a. Monoid a => [a] -> a Prelude.mconcat [ ByteString "Action" ByteString -> ByteString -> QueryString forall a. ToQuery a => ByteString -> a -> QueryString Core.=: (ByteString "CreateQueue" :: Prelude.ByteString), ByteString "Version" ByteString -> ByteString -> QueryString forall a. ToQuery a => ByteString -> a -> QueryString Core.=: (ByteString "2012-11-05" :: Prelude.ByteString), Maybe QueryString -> QueryString forall a. ToQuery a => a -> QueryString Core.toQuery ( ByteString -> ByteString -> ByteString -> HashMap QueueAttributeName Text -> QueryString forall k v. (ToQuery k, ToQuery v) => ByteString -> ByteString -> ByteString -> HashMap k v -> QueryString Core.toQueryMap ByteString "Attribute" ByteString "Name" ByteString "Value" (HashMap QueueAttributeName Text -> QueryString) -> Maybe (HashMap QueueAttributeName Text) -> Maybe QueryString forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b Prelude.<$> Maybe (HashMap QueueAttributeName Text) attributes ), Maybe QueryString -> QueryString forall a. ToQuery a => a -> QueryString Core.toQuery ( ByteString -> ByteString -> ByteString -> HashMap Text Text -> QueryString forall k v. (ToQuery k, ToQuery v) => ByteString -> ByteString -> ByteString -> HashMap k v -> QueryString Core.toQueryMap ByteString "Tag" ByteString "Key" ByteString "Value" (HashMap Text Text -> QueryString) -> Maybe (HashMap Text Text) -> Maybe QueryString forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b Prelude.<$> Maybe (HashMap Text Text) tags ), ByteString "QueueName" ByteString -> Text -> QueryString forall a. ToQuery a => ByteString -> a -> QueryString Core.=: Text queueName ] -- | Returns the @QueueUrl@ attribute of the created queue. -- -- /See:/ 'newCreateQueueResponse' smart constructor. data CreateQueueResponse = CreateQueueResponse' { -- | The URL of the created Amazon SQS queue. CreateQueueResponse -> Maybe Text queueUrl :: Prelude.Maybe Prelude.Text, -- | The response's http status code. CreateQueueResponse -> Int httpStatus :: Prelude.Int } deriving (CreateQueueResponse -> CreateQueueResponse -> Bool (CreateQueueResponse -> CreateQueueResponse -> Bool) -> (CreateQueueResponse -> CreateQueueResponse -> Bool) -> Eq CreateQueueResponse forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: CreateQueueResponse -> CreateQueueResponse -> Bool $c/= :: CreateQueueResponse -> CreateQueueResponse -> Bool == :: CreateQueueResponse -> CreateQueueResponse -> Bool $c== :: CreateQueueResponse -> CreateQueueResponse -> Bool Prelude.Eq, ReadPrec [CreateQueueResponse] ReadPrec CreateQueueResponse Int -> ReadS CreateQueueResponse ReadS [CreateQueueResponse] (Int -> ReadS CreateQueueResponse) -> ReadS [CreateQueueResponse] -> ReadPrec CreateQueueResponse -> ReadPrec [CreateQueueResponse] -> Read CreateQueueResponse forall a. (Int -> ReadS a) -> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a readListPrec :: ReadPrec [CreateQueueResponse] $creadListPrec :: ReadPrec [CreateQueueResponse] readPrec :: ReadPrec CreateQueueResponse $creadPrec :: ReadPrec CreateQueueResponse readList :: ReadS [CreateQueueResponse] $creadList :: ReadS [CreateQueueResponse] readsPrec :: Int -> ReadS CreateQueueResponse $creadsPrec :: Int -> ReadS CreateQueueResponse Prelude.Read, Int -> CreateQueueResponse -> ShowS [CreateQueueResponse] -> ShowS CreateQueueResponse -> String (Int -> CreateQueueResponse -> ShowS) -> (CreateQueueResponse -> String) -> ([CreateQueueResponse] -> ShowS) -> Show CreateQueueResponse forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [CreateQueueResponse] -> ShowS $cshowList :: [CreateQueueResponse] -> ShowS show :: CreateQueueResponse -> String $cshow :: CreateQueueResponse -> String showsPrec :: Int -> CreateQueueResponse -> ShowS $cshowsPrec :: Int -> CreateQueueResponse -> ShowS Prelude.Show, (forall x. CreateQueueResponse -> Rep CreateQueueResponse x) -> (forall x. Rep CreateQueueResponse x -> CreateQueueResponse) -> Generic CreateQueueResponse forall x. Rep CreateQueueResponse x -> CreateQueueResponse forall x. CreateQueueResponse -> Rep CreateQueueResponse x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a $cto :: forall x. Rep CreateQueueResponse x -> CreateQueueResponse $cfrom :: forall x. CreateQueueResponse -> Rep CreateQueueResponse x Prelude.Generic) -- | -- Create a value of 'CreateQueueResponse' with all optional fields omitted. -- -- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields. -- -- The following record fields are available, with the corresponding lenses provided -- for backwards compatibility: -- -- 'queueUrl', 'createQueueResponse_queueUrl' - The URL of the created Amazon SQS queue. -- -- 'httpStatus', 'createQueueResponse_httpStatus' - The response's http status code. newCreateQueueResponse :: -- | 'httpStatus' Prelude.Int -> CreateQueueResponse newCreateQueueResponse :: Int -> CreateQueueResponse newCreateQueueResponse Int pHttpStatus_ = CreateQueueResponse' :: Maybe Text -> Int -> CreateQueueResponse CreateQueueResponse' { $sel:queueUrl:CreateQueueResponse' :: Maybe Text queueUrl = Maybe Text forall a. Maybe a Prelude.Nothing, $sel:httpStatus:CreateQueueResponse' :: Int httpStatus = Int pHttpStatus_ } -- | The URL of the created Amazon SQS queue. createQueueResponse_queueUrl :: Lens.Lens' CreateQueueResponse (Prelude.Maybe Prelude.Text) createQueueResponse_queueUrl :: (Maybe Text -> f (Maybe Text)) -> CreateQueueResponse -> f CreateQueueResponse createQueueResponse_queueUrl = (CreateQueueResponse -> Maybe Text) -> (CreateQueueResponse -> Maybe Text -> CreateQueueResponse) -> Lens CreateQueueResponse CreateQueueResponse (Maybe Text) (Maybe Text) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\CreateQueueResponse' {Maybe Text queueUrl :: Maybe Text $sel:queueUrl:CreateQueueResponse' :: CreateQueueResponse -> Maybe Text queueUrl} -> Maybe Text queueUrl) (\s :: CreateQueueResponse s@CreateQueueResponse' {} Maybe Text a -> CreateQueueResponse s {$sel:queueUrl:CreateQueueResponse' :: Maybe Text queueUrl = Maybe Text a} :: CreateQueueResponse) -- | The response's http status code. createQueueResponse_httpStatus :: Lens.Lens' CreateQueueResponse Prelude.Int createQueueResponse_httpStatus :: (Int -> f Int) -> CreateQueueResponse -> f CreateQueueResponse createQueueResponse_httpStatus = (CreateQueueResponse -> Int) -> (CreateQueueResponse -> Int -> CreateQueueResponse) -> Lens CreateQueueResponse CreateQueueResponse Int Int forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\CreateQueueResponse' {Int httpStatus :: Int $sel:httpStatus:CreateQueueResponse' :: CreateQueueResponse -> Int httpStatus} -> Int httpStatus) (\s :: CreateQueueResponse s@CreateQueueResponse' {} Int a -> CreateQueueResponse s {$sel:httpStatus:CreateQueueResponse' :: Int httpStatus = Int a} :: CreateQueueResponse) instance Prelude.NFData CreateQueueResponse