{-# 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.GetQueueAttributes -- 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) -- -- Gets attributes for the specified queue. -- -- To determine whether a queue is -- <https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html FIFO>, -- you can check whether @QueueName@ ends with the @.fifo@ suffix. module Amazonka.SQS.GetQueueAttributes ( -- * Creating a Request GetQueueAttributes (..), newGetQueueAttributes, -- * Request Lenses getQueueAttributes_attributeNames, getQueueAttributes_queueUrl, -- * Destructuring the Response GetQueueAttributesResponse (..), newGetQueueAttributesResponse, -- * Response Lenses getQueueAttributesResponse_attributes, getQueueAttributesResponse_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:/ 'newGetQueueAttributes' smart constructor. data GetQueueAttributes = GetQueueAttributes' { -- | A list of attributes for which to retrieve information. -- -- The @AttributeName.N@ parameter is optional, but if you don\'t specify -- values for this parameter, the request returns empty results. -- -- In the future, new attributes might be added. If you write code that -- calls this action, we recommend that you structure your code so that it -- can handle new attributes gracefully. -- -- The following attributes are supported: -- -- The @ApproximateNumberOfMessagesDelayed@, -- @ApproximateNumberOfMessagesNotVisible@, and -- @ApproximateNumberOfMessagesVisible@ metrics may not achieve consistency -- until at least 1 minute after the producers stop sending messages. This -- period is required for the queue metadata to reach eventual consistency. -- -- - @All@ – Returns all values. -- -- - @ApproximateNumberOfMessages@ – Returns the approximate number of -- messages available for retrieval from the queue. -- -- - @ApproximateNumberOfMessagesDelayed@ – Returns the approximate -- number of messages in the queue that are delayed and not available -- for reading immediately. This can happen when the queue is -- configured as a delay queue or when a message has been sent with a -- delay parameter. -- -- - @ApproximateNumberOfMessagesNotVisible@ – Returns the approximate -- number of messages that are in flight. Messages are considered to be -- /in flight/ if they have been sent to a client but have not yet been -- deleted or have not yet reached the end of their visibility window. -- -- - @CreatedTimestamp@ – Returns the time when the queue was created in -- seconds (<http://en.wikipedia.org/wiki/Unix_time epoch time>). -- -- - @DelaySeconds@ – Returns the default delay on the queue in seconds. -- -- - @LastModifiedTimestamp@ – Returns the time when the queue was last -- changed in seconds -- (<http://en.wikipedia.org/wiki/Unix_time epoch time>). -- -- - @MaximumMessageSize@ – Returns the limit of how many bytes a message -- can contain before Amazon SQS rejects it. -- -- - @MessageRetentionPeriod@ – Returns the length of time, in seconds, -- for which Amazon SQS retains a message. -- -- - @Policy@ – Returns the policy of the queue. -- -- - @QueueArn@ – Returns the Amazon resource name (ARN) of the queue. -- -- - @ReceiveMessageWaitTimeSeconds@ – Returns the length of time, in -- seconds, for which the @ReceiveMessage@ action waits for a message -- to arrive. -- -- - @VisibilityTimeout@ – Returns the visibility timeout for the queue. -- 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@ – Returns 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>. -- -- - @KmsDataKeyReusePeriodSeconds@ – Returns the length of time, in -- seconds, for which Amazon SQS can reuse a data key to encrypt or -- decrypt messages before calling KMS again. 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@ – Returns information about whether the queue is FIFO. -- 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/. -- -- To determine whether a queue is -- <https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html FIFO>, -- you can check whether @QueueName@ ends with the @.fifo@ suffix. -- -- - @ContentBasedDeduplication@ – Returns whether content-based -- deduplication is enabled for the queue. 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/. -- -- 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/. GetQueueAttributes -> Maybe [QueueAttributeName] attributeNames :: Prelude.Maybe [QueueAttributeName], -- | The URL of the Amazon SQS queue whose attribute information is -- retrieved. -- -- Queue URLs and names are case-sensitive. GetQueueAttributes -> Text queueUrl :: Prelude.Text } deriving (GetQueueAttributes -> GetQueueAttributes -> Bool (GetQueueAttributes -> GetQueueAttributes -> Bool) -> (GetQueueAttributes -> GetQueueAttributes -> Bool) -> Eq GetQueueAttributes forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: GetQueueAttributes -> GetQueueAttributes -> Bool $c/= :: GetQueueAttributes -> GetQueueAttributes -> Bool == :: GetQueueAttributes -> GetQueueAttributes -> Bool $c== :: GetQueueAttributes -> GetQueueAttributes -> Bool Prelude.Eq, ReadPrec [GetQueueAttributes] ReadPrec GetQueueAttributes Int -> ReadS GetQueueAttributes ReadS [GetQueueAttributes] (Int -> ReadS GetQueueAttributes) -> ReadS [GetQueueAttributes] -> ReadPrec GetQueueAttributes -> ReadPrec [GetQueueAttributes] -> Read GetQueueAttributes forall a. (Int -> ReadS a) -> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a readListPrec :: ReadPrec [GetQueueAttributes] $creadListPrec :: ReadPrec [GetQueueAttributes] readPrec :: ReadPrec GetQueueAttributes $creadPrec :: ReadPrec GetQueueAttributes readList :: ReadS [GetQueueAttributes] $creadList :: ReadS [GetQueueAttributes] readsPrec :: Int -> ReadS GetQueueAttributes $creadsPrec :: Int -> ReadS GetQueueAttributes Prelude.Read, Int -> GetQueueAttributes -> ShowS [GetQueueAttributes] -> ShowS GetQueueAttributes -> String (Int -> GetQueueAttributes -> ShowS) -> (GetQueueAttributes -> String) -> ([GetQueueAttributes] -> ShowS) -> Show GetQueueAttributes forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [GetQueueAttributes] -> ShowS $cshowList :: [GetQueueAttributes] -> ShowS show :: GetQueueAttributes -> String $cshow :: GetQueueAttributes -> String showsPrec :: Int -> GetQueueAttributes -> ShowS $cshowsPrec :: Int -> GetQueueAttributes -> ShowS Prelude.Show, (forall x. GetQueueAttributes -> Rep GetQueueAttributes x) -> (forall x. Rep GetQueueAttributes x -> GetQueueAttributes) -> Generic GetQueueAttributes forall x. Rep GetQueueAttributes x -> GetQueueAttributes forall x. GetQueueAttributes -> Rep GetQueueAttributes x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a $cto :: forall x. Rep GetQueueAttributes x -> GetQueueAttributes $cfrom :: forall x. GetQueueAttributes -> Rep GetQueueAttributes x Prelude.Generic) -- | -- Create a value of 'GetQueueAttributes' 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: -- -- 'attributeNames', 'getQueueAttributes_attributeNames' - A list of attributes for which to retrieve information. -- -- The @AttributeName.N@ parameter is optional, but if you don\'t specify -- values for this parameter, the request returns empty results. -- -- In the future, new attributes might be added. If you write code that -- calls this action, we recommend that you structure your code so that it -- can handle new attributes gracefully. -- -- The following attributes are supported: -- -- The @ApproximateNumberOfMessagesDelayed@, -- @ApproximateNumberOfMessagesNotVisible@, and -- @ApproximateNumberOfMessagesVisible@ metrics may not achieve consistency -- until at least 1 minute after the producers stop sending messages. This -- period is required for the queue metadata to reach eventual consistency. -- -- - @All@ – Returns all values. -- -- - @ApproximateNumberOfMessages@ – Returns the approximate number of -- messages available for retrieval from the queue. -- -- - @ApproximateNumberOfMessagesDelayed@ – Returns the approximate -- number of messages in the queue that are delayed and not available -- for reading immediately. This can happen when the queue is -- configured as a delay queue or when a message has been sent with a -- delay parameter. -- -- - @ApproximateNumberOfMessagesNotVisible@ – Returns the approximate -- number of messages that are in flight. Messages are considered to be -- /in flight/ if they have been sent to a client but have not yet been -- deleted or have not yet reached the end of their visibility window. -- -- - @CreatedTimestamp@ – Returns the time when the queue was created in -- seconds (<http://en.wikipedia.org/wiki/Unix_time epoch time>). -- -- - @DelaySeconds@ – Returns the default delay on the queue in seconds. -- -- - @LastModifiedTimestamp@ – Returns the time when the queue was last -- changed in seconds -- (<http://en.wikipedia.org/wiki/Unix_time epoch time>). -- -- - @MaximumMessageSize@ – Returns the limit of how many bytes a message -- can contain before Amazon SQS rejects it. -- -- - @MessageRetentionPeriod@ – Returns the length of time, in seconds, -- for which Amazon SQS retains a message. -- -- - @Policy@ – Returns the policy of the queue. -- -- - @QueueArn@ – Returns the Amazon resource name (ARN) of the queue. -- -- - @ReceiveMessageWaitTimeSeconds@ – Returns the length of time, in -- seconds, for which the @ReceiveMessage@ action waits for a message -- to arrive. -- -- - @VisibilityTimeout@ – Returns the visibility timeout for the queue. -- 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@ – Returns 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>. -- -- - @KmsDataKeyReusePeriodSeconds@ – Returns the length of time, in -- seconds, for which Amazon SQS can reuse a data key to encrypt or -- decrypt messages before calling KMS again. 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@ – Returns information about whether the queue is FIFO. -- 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/. -- -- To determine whether a queue is -- <https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html FIFO>, -- you can check whether @QueueName@ ends with the @.fifo@ suffix. -- -- - @ContentBasedDeduplication@ – Returns whether content-based -- deduplication is enabled for the queue. 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/. -- -- 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/. -- -- 'queueUrl', 'getQueueAttributes_queueUrl' - The URL of the Amazon SQS queue whose attribute information is -- retrieved. -- -- Queue URLs and names are case-sensitive. newGetQueueAttributes :: -- | 'queueUrl' Prelude.Text -> GetQueueAttributes newGetQueueAttributes :: Text -> GetQueueAttributes newGetQueueAttributes Text pQueueUrl_ = GetQueueAttributes' :: Maybe [QueueAttributeName] -> Text -> GetQueueAttributes GetQueueAttributes' { $sel:attributeNames:GetQueueAttributes' :: Maybe [QueueAttributeName] attributeNames = Maybe [QueueAttributeName] forall a. Maybe a Prelude.Nothing, $sel:queueUrl:GetQueueAttributes' :: Text queueUrl = Text pQueueUrl_ } -- | A list of attributes for which to retrieve information. -- -- The @AttributeName.N@ parameter is optional, but if you don\'t specify -- values for this parameter, the request returns empty results. -- -- In the future, new attributes might be added. If you write code that -- calls this action, we recommend that you structure your code so that it -- can handle new attributes gracefully. -- -- The following attributes are supported: -- -- The @ApproximateNumberOfMessagesDelayed@, -- @ApproximateNumberOfMessagesNotVisible@, and -- @ApproximateNumberOfMessagesVisible@ metrics may not achieve consistency -- until at least 1 minute after the producers stop sending messages. This -- period is required for the queue metadata to reach eventual consistency. -- -- - @All@ – Returns all values. -- -- - @ApproximateNumberOfMessages@ – Returns the approximate number of -- messages available for retrieval from the queue. -- -- - @ApproximateNumberOfMessagesDelayed@ – Returns the approximate -- number of messages in the queue that are delayed and not available -- for reading immediately. This can happen when the queue is -- configured as a delay queue or when a message has been sent with a -- delay parameter. -- -- - @ApproximateNumberOfMessagesNotVisible@ – Returns the approximate -- number of messages that are in flight. Messages are considered to be -- /in flight/ if they have been sent to a client but have not yet been -- deleted or have not yet reached the end of their visibility window. -- -- - @CreatedTimestamp@ – Returns the time when the queue was created in -- seconds (<http://en.wikipedia.org/wiki/Unix_time epoch time>). -- -- - @DelaySeconds@ – Returns the default delay on the queue in seconds. -- -- - @LastModifiedTimestamp@ – Returns the time when the queue was last -- changed in seconds -- (<http://en.wikipedia.org/wiki/Unix_time epoch time>). -- -- - @MaximumMessageSize@ – Returns the limit of how many bytes a message -- can contain before Amazon SQS rejects it. -- -- - @MessageRetentionPeriod@ – Returns the length of time, in seconds, -- for which Amazon SQS retains a message. -- -- - @Policy@ – Returns the policy of the queue. -- -- - @QueueArn@ – Returns the Amazon resource name (ARN) of the queue. -- -- - @ReceiveMessageWaitTimeSeconds@ – Returns the length of time, in -- seconds, for which the @ReceiveMessage@ action waits for a message -- to arrive. -- -- - @VisibilityTimeout@ – Returns the visibility timeout for the queue. -- 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@ – Returns 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>. -- -- - @KmsDataKeyReusePeriodSeconds@ – Returns the length of time, in -- seconds, for which Amazon SQS can reuse a data key to encrypt or -- decrypt messages before calling KMS again. 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@ – Returns information about whether the queue is FIFO. -- 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/. -- -- To determine whether a queue is -- <https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html FIFO>, -- you can check whether @QueueName@ ends with the @.fifo@ suffix. -- -- - @ContentBasedDeduplication@ – Returns whether content-based -- deduplication is enabled for the queue. 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/. -- -- 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/. getQueueAttributes_attributeNames :: Lens.Lens' GetQueueAttributes (Prelude.Maybe [QueueAttributeName]) getQueueAttributes_attributeNames :: (Maybe [QueueAttributeName] -> f (Maybe [QueueAttributeName])) -> GetQueueAttributes -> f GetQueueAttributes getQueueAttributes_attributeNames = (GetQueueAttributes -> Maybe [QueueAttributeName]) -> (GetQueueAttributes -> Maybe [QueueAttributeName] -> GetQueueAttributes) -> Lens GetQueueAttributes GetQueueAttributes (Maybe [QueueAttributeName]) (Maybe [QueueAttributeName]) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\GetQueueAttributes' {Maybe [QueueAttributeName] attributeNames :: Maybe [QueueAttributeName] $sel:attributeNames:GetQueueAttributes' :: GetQueueAttributes -> Maybe [QueueAttributeName] attributeNames} -> Maybe [QueueAttributeName] attributeNames) (\s :: GetQueueAttributes s@GetQueueAttributes' {} Maybe [QueueAttributeName] a -> GetQueueAttributes s {$sel:attributeNames:GetQueueAttributes' :: Maybe [QueueAttributeName] attributeNames = Maybe [QueueAttributeName] a} :: GetQueueAttributes) ((Maybe [QueueAttributeName] -> f (Maybe [QueueAttributeName])) -> GetQueueAttributes -> f GetQueueAttributes) -> ((Maybe [QueueAttributeName] -> f (Maybe [QueueAttributeName])) -> Maybe [QueueAttributeName] -> f (Maybe [QueueAttributeName])) -> (Maybe [QueueAttributeName] -> f (Maybe [QueueAttributeName])) -> GetQueueAttributes -> f GetQueueAttributes forall b c a. (b -> c) -> (a -> b) -> a -> c Prelude.. AnIso [QueueAttributeName] [QueueAttributeName] [QueueAttributeName] [QueueAttributeName] -> Iso (Maybe [QueueAttributeName]) (Maybe [QueueAttributeName]) (Maybe [QueueAttributeName]) (Maybe [QueueAttributeName]) 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 [QueueAttributeName] [QueueAttributeName] [QueueAttributeName] [QueueAttributeName] forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b Lens.coerced -- | The URL of the Amazon SQS queue whose attribute information is -- retrieved. -- -- Queue URLs and names are case-sensitive. getQueueAttributes_queueUrl :: Lens.Lens' GetQueueAttributes Prelude.Text getQueueAttributes_queueUrl :: (Text -> f Text) -> GetQueueAttributes -> f GetQueueAttributes getQueueAttributes_queueUrl = (GetQueueAttributes -> Text) -> (GetQueueAttributes -> Text -> GetQueueAttributes) -> Lens GetQueueAttributes GetQueueAttributes Text Text forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\GetQueueAttributes' {Text queueUrl :: Text $sel:queueUrl:GetQueueAttributes' :: GetQueueAttributes -> Text queueUrl} -> Text queueUrl) (\s :: GetQueueAttributes s@GetQueueAttributes' {} Text a -> GetQueueAttributes s {$sel:queueUrl:GetQueueAttributes' :: Text queueUrl = Text a} :: GetQueueAttributes) instance Core.AWSRequest GetQueueAttributes where type AWSResponse GetQueueAttributes = GetQueueAttributesResponse request :: GetQueueAttributes -> Request GetQueueAttributes request = Service -> GetQueueAttributes -> Request GetQueueAttributes forall a. ToRequest a => Service -> a -> Request a Request.postQuery Service defaultService response :: Logger -> Service -> Proxy GetQueueAttributes -> ClientResponse ClientBody -> m (Either Error (ClientResponse (AWSResponse GetQueueAttributes))) response = Text -> (Int -> ResponseHeaders -> [Node] -> Either String (AWSResponse GetQueueAttributes)) -> Logger -> Service -> Proxy GetQueueAttributes -> ClientResponse ClientBody -> m (Either Error (ClientResponse (AWSResponse GetQueueAttributes))) 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 "GetQueueAttributesResult" ( \Int s ResponseHeaders h [Node] x -> Maybe (HashMap QueueAttributeName Text) -> Int -> GetQueueAttributesResponse GetQueueAttributesResponse' (Maybe (HashMap QueueAttributeName Text) -> Int -> GetQueueAttributesResponse) -> Either String (Maybe (HashMap QueueAttributeName Text)) -> Either String (Int -> GetQueueAttributesResponse) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b Prelude.<$> ( ([Node] -> Either String (HashMap QueueAttributeName Text)) -> [Node] -> Either String (Maybe (HashMap QueueAttributeName Text)) forall (f :: * -> *) a b. Applicative f => ([a] -> f b) -> [a] -> f (Maybe b) Core.may (Text -> Text -> Text -> [Node] -> Either String (HashMap QueueAttributeName Text) forall k v. (Eq k, Hashable k, FromText k, FromXML v) => Text -> Text -> Text -> [Node] -> Either String (HashMap k v) Core.parseXMLMap Text "Attribute" Text "Name" Text "Value") [Node] x ) Either String (Int -> GetQueueAttributesResponse) -> Either String Int -> Either String GetQueueAttributesResponse 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 GetQueueAttributes instance Prelude.NFData GetQueueAttributes instance Core.ToHeaders GetQueueAttributes where toHeaders :: GetQueueAttributes -> ResponseHeaders toHeaders = ResponseHeaders -> GetQueueAttributes -> ResponseHeaders forall a b. a -> b -> a Prelude.const ResponseHeaders forall a. Monoid a => a Prelude.mempty instance Core.ToPath GetQueueAttributes where toPath :: GetQueueAttributes -> ByteString toPath = ByteString -> GetQueueAttributes -> ByteString forall a b. a -> b -> a Prelude.const ByteString "/" instance Core.ToQuery GetQueueAttributes where toQuery :: GetQueueAttributes -> QueryString toQuery GetQueueAttributes' {Maybe [QueueAttributeName] Text queueUrl :: Text attributeNames :: Maybe [QueueAttributeName] $sel:queueUrl:GetQueueAttributes' :: GetQueueAttributes -> Text $sel:attributeNames:GetQueueAttributes' :: GetQueueAttributes -> Maybe [QueueAttributeName] ..} = [QueryString] -> QueryString forall a. Monoid a => [a] -> a Prelude.mconcat [ ByteString "Action" ByteString -> ByteString -> QueryString forall a. ToQuery a => ByteString -> a -> QueryString Core.=: (ByteString "GetQueueAttributes" :: 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 -> [QueueAttributeName] -> QueryString forall a. (IsList a, ToQuery (Item a)) => ByteString -> a -> QueryString Core.toQueryList ByteString "AttributeName" ([QueueAttributeName] -> QueryString) -> Maybe [QueueAttributeName] -> Maybe QueryString forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b Prelude.<$> Maybe [QueueAttributeName] attributeNames ), ByteString "QueueUrl" ByteString -> Text -> QueryString forall a. ToQuery a => ByteString -> a -> QueryString Core.=: Text queueUrl ] -- | A list of returned queue attributes. -- -- /See:/ 'newGetQueueAttributesResponse' smart constructor. data GetQueueAttributesResponse = GetQueueAttributesResponse' { -- | A map of attributes to their respective values. GetQueueAttributesResponse -> Maybe (HashMap QueueAttributeName Text) attributes :: Prelude.Maybe (Prelude.HashMap QueueAttributeName Prelude.Text), -- | The response's http status code. GetQueueAttributesResponse -> Int httpStatus :: Prelude.Int } deriving (GetQueueAttributesResponse -> GetQueueAttributesResponse -> Bool (GetQueueAttributesResponse -> GetQueueAttributesResponse -> Bool) -> (GetQueueAttributesResponse -> GetQueueAttributesResponse -> Bool) -> Eq GetQueueAttributesResponse forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: GetQueueAttributesResponse -> GetQueueAttributesResponse -> Bool $c/= :: GetQueueAttributesResponse -> GetQueueAttributesResponse -> Bool == :: GetQueueAttributesResponse -> GetQueueAttributesResponse -> Bool $c== :: GetQueueAttributesResponse -> GetQueueAttributesResponse -> Bool Prelude.Eq, ReadPrec [GetQueueAttributesResponse] ReadPrec GetQueueAttributesResponse Int -> ReadS GetQueueAttributesResponse ReadS [GetQueueAttributesResponse] (Int -> ReadS GetQueueAttributesResponse) -> ReadS [GetQueueAttributesResponse] -> ReadPrec GetQueueAttributesResponse -> ReadPrec [GetQueueAttributesResponse] -> Read GetQueueAttributesResponse forall a. (Int -> ReadS a) -> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a readListPrec :: ReadPrec [GetQueueAttributesResponse] $creadListPrec :: ReadPrec [GetQueueAttributesResponse] readPrec :: ReadPrec GetQueueAttributesResponse $creadPrec :: ReadPrec GetQueueAttributesResponse readList :: ReadS [GetQueueAttributesResponse] $creadList :: ReadS [GetQueueAttributesResponse] readsPrec :: Int -> ReadS GetQueueAttributesResponse $creadsPrec :: Int -> ReadS GetQueueAttributesResponse Prelude.Read, Int -> GetQueueAttributesResponse -> ShowS [GetQueueAttributesResponse] -> ShowS GetQueueAttributesResponse -> String (Int -> GetQueueAttributesResponse -> ShowS) -> (GetQueueAttributesResponse -> String) -> ([GetQueueAttributesResponse] -> ShowS) -> Show GetQueueAttributesResponse forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [GetQueueAttributesResponse] -> ShowS $cshowList :: [GetQueueAttributesResponse] -> ShowS show :: GetQueueAttributesResponse -> String $cshow :: GetQueueAttributesResponse -> String showsPrec :: Int -> GetQueueAttributesResponse -> ShowS $cshowsPrec :: Int -> GetQueueAttributesResponse -> ShowS Prelude.Show, (forall x. GetQueueAttributesResponse -> Rep GetQueueAttributesResponse x) -> (forall x. Rep GetQueueAttributesResponse x -> GetQueueAttributesResponse) -> Generic GetQueueAttributesResponse forall x. Rep GetQueueAttributesResponse x -> GetQueueAttributesResponse forall x. GetQueueAttributesResponse -> Rep GetQueueAttributesResponse x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a $cto :: forall x. Rep GetQueueAttributesResponse x -> GetQueueAttributesResponse $cfrom :: forall x. GetQueueAttributesResponse -> Rep GetQueueAttributesResponse x Prelude.Generic) -- | -- Create a value of 'GetQueueAttributesResponse' 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', 'getQueueAttributesResponse_attributes' - A map of attributes to their respective values. -- -- 'httpStatus', 'getQueueAttributesResponse_httpStatus' - The response's http status code. newGetQueueAttributesResponse :: -- | 'httpStatus' Prelude.Int -> GetQueueAttributesResponse newGetQueueAttributesResponse :: Int -> GetQueueAttributesResponse newGetQueueAttributesResponse Int pHttpStatus_ = GetQueueAttributesResponse' :: Maybe (HashMap QueueAttributeName Text) -> Int -> GetQueueAttributesResponse GetQueueAttributesResponse' { $sel:attributes:GetQueueAttributesResponse' :: Maybe (HashMap QueueAttributeName Text) attributes = Maybe (HashMap QueueAttributeName Text) forall a. Maybe a Prelude.Nothing, $sel:httpStatus:GetQueueAttributesResponse' :: Int httpStatus = Int pHttpStatus_ } -- | A map of attributes to their respective values. getQueueAttributesResponse_attributes :: Lens.Lens' GetQueueAttributesResponse (Prelude.Maybe (Prelude.HashMap QueueAttributeName Prelude.Text)) getQueueAttributesResponse_attributes :: (Maybe (HashMap QueueAttributeName Text) -> f (Maybe (HashMap QueueAttributeName Text))) -> GetQueueAttributesResponse -> f GetQueueAttributesResponse getQueueAttributesResponse_attributes = (GetQueueAttributesResponse -> Maybe (HashMap QueueAttributeName Text)) -> (GetQueueAttributesResponse -> Maybe (HashMap QueueAttributeName Text) -> GetQueueAttributesResponse) -> Lens GetQueueAttributesResponse GetQueueAttributesResponse (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 (\GetQueueAttributesResponse' {Maybe (HashMap QueueAttributeName Text) attributes :: Maybe (HashMap QueueAttributeName Text) $sel:attributes:GetQueueAttributesResponse' :: GetQueueAttributesResponse -> Maybe (HashMap QueueAttributeName Text) attributes} -> Maybe (HashMap QueueAttributeName Text) attributes) (\s :: GetQueueAttributesResponse s@GetQueueAttributesResponse' {} Maybe (HashMap QueueAttributeName Text) a -> GetQueueAttributesResponse s {$sel:attributes:GetQueueAttributesResponse' :: Maybe (HashMap QueueAttributeName Text) attributes = Maybe (HashMap QueueAttributeName Text) a} :: GetQueueAttributesResponse) ((Maybe (HashMap QueueAttributeName Text) -> f (Maybe (HashMap QueueAttributeName Text))) -> GetQueueAttributesResponse -> f GetQueueAttributesResponse) -> ((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))) -> GetQueueAttributesResponse -> f GetQueueAttributesResponse 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 -- | The response's http status code. getQueueAttributesResponse_httpStatus :: Lens.Lens' GetQueueAttributesResponse Prelude.Int getQueueAttributesResponse_httpStatus :: (Int -> f Int) -> GetQueueAttributesResponse -> f GetQueueAttributesResponse getQueueAttributesResponse_httpStatus = (GetQueueAttributesResponse -> Int) -> (GetQueueAttributesResponse -> Int -> GetQueueAttributesResponse) -> Lens GetQueueAttributesResponse GetQueueAttributesResponse Int Int forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\GetQueueAttributesResponse' {Int httpStatus :: Int $sel:httpStatus:GetQueueAttributesResponse' :: GetQueueAttributesResponse -> Int httpStatus} -> Int httpStatus) (\s :: GetQueueAttributesResponse s@GetQueueAttributesResponse' {} Int a -> GetQueueAttributesResponse s {$sel:httpStatus:GetQueueAttributesResponse' :: Int httpStatus = Int a} :: GetQueueAttributesResponse) instance Prelude.NFData GetQueueAttributesResponse