{-# 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.ReceiveMessage -- 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) -- -- Retrieves one or more messages (up to 10), from the specified queue. -- Using the @WaitTimeSeconds@ parameter enables long-poll support. For -- more information, see -- <https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-long-polling.html Amazon SQS Long Polling> -- in the /Amazon SQS Developer Guide/. -- -- Short poll is the default behavior where a weighted random set of -- machines is sampled on a @ReceiveMessage@ call. Thus, only the messages -- on the sampled machines are returned. If the number of messages in the -- queue is small (fewer than 1,000), you most likely get fewer messages -- than you requested per @ReceiveMessage@ call. If the number of messages -- in the queue is extremely small, you might not receive any messages in a -- particular @ReceiveMessage@ response. If this happens, repeat the -- request. -- -- For each message returned, the response includes the following: -- -- - The message body. -- -- - An MD5 digest of the message body. For information about MD5, see -- <https://www.ietf.org/rfc/rfc1321.txt RFC1321>. -- -- - The @MessageId@ you received when you sent the message to the queue. -- -- - The receipt handle. -- -- - The message attributes. -- -- - An MD5 digest of the message attributes. -- -- The receipt handle is the identifier you must provide when deleting the -- message. For more information, see -- <https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-queue-message-identifiers.html Queue and Message Identifiers> -- in the /Amazon SQS Developer Guide/. -- -- You can provide the @VisibilityTimeout@ parameter in your request. The -- parameter is applied to the messages that Amazon SQS returns in the -- response. If you don\'t include the parameter, the overall visibility -- timeout for the queue is used for the returned messages. For more -- information, see -- <https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-visibility-timeout.html Visibility Timeout> -- in the /Amazon SQS Developer Guide/. -- -- A message that isn\'t deleted or a message whose visibility isn\'t -- extended before the visibility timeout expires counts as a failed -- receive. Depending on the configuration of the queue, the message might -- be sent to the dead-letter queue. -- -- 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. module Amazonka.SQS.ReceiveMessage ( -- * Creating a Request ReceiveMessage (..), newReceiveMessage, -- * Request Lenses receiveMessage_receiveRequestAttemptId, receiveMessage_visibilityTimeout, receiveMessage_messageAttributeNames, receiveMessage_waitTimeSeconds, receiveMessage_attributeNames, receiveMessage_maxNumberOfMessages, receiveMessage_queueUrl, -- * Destructuring the Response ReceiveMessageResponse (..), newReceiveMessageResponse, -- * Response Lenses receiveMessageResponse_messages, receiveMessageResponse_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:/ 'newReceiveMessage' smart constructor. data ReceiveMessage = ReceiveMessage' { -- | This parameter applies only to FIFO (first-in-first-out) queues. -- -- The token used for deduplication of @ReceiveMessage@ calls. If a -- networking issue occurs after a @ReceiveMessage@ action, and instead of -- a response you receive a generic error, it is possible to retry the same -- action with an identical @ReceiveRequestAttemptId@ to retrieve the same -- set of messages, even if their visibility timeout has not yet expired. -- -- - You can use @ReceiveRequestAttemptId@ only for 5 minutes after a -- @ReceiveMessage@ action. -- -- - When you set @FifoQueue@, a caller of the @ReceiveMessage@ action -- can provide a @ReceiveRequestAttemptId@ explicitly. -- -- - If a caller of the @ReceiveMessage@ action doesn\'t provide a -- @ReceiveRequestAttemptId@, Amazon SQS generates a -- @ReceiveRequestAttemptId@. -- -- - It is possible to retry the @ReceiveMessage@ action with the same -- @ReceiveRequestAttemptId@ if none of the messages have been modified -- (deleted or had their visibility changes). -- -- - During a visibility timeout, subsequent calls with the same -- @ReceiveRequestAttemptId@ return the same messages and receipt -- handles. If a retry occurs within the deduplication interval, it -- resets the visibility timeout. For more information, see -- <https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-visibility-timeout.html Visibility Timeout> -- in the /Amazon SQS Developer Guide/. -- -- If a caller of the @ReceiveMessage@ action still processes messages -- when the visibility timeout expires and messages become visible, -- another worker consuming from the same queue can receive the same -- messages and therefore process duplicates. Also, if a consumer whose -- message processing time is longer than the visibility timeout tries -- to delete the processed messages, the action fails with an error. -- -- To mitigate this effect, ensure that your application observes a -- safe threshold before the visibility timeout expires and extend the -- visibility timeout as necessary. -- -- - While messages with a particular @MessageGroupId@ are invisible, no -- more messages belonging to the same @MessageGroupId@ are returned -- until the visibility timeout expires. You can still receive messages -- with another @MessageGroupId@ as long as it is also visible. -- -- - If a caller of @ReceiveMessage@ can\'t track the -- @ReceiveRequestAttemptId@, no retries work until the original -- visibility timeout expires. As a result, delays might occur but the -- messages in the queue remain in a strict order. -- -- The maximum length of @ReceiveRequestAttemptId@ is 128 characters. -- @ReceiveRequestAttemptId@ can contain alphanumeric characters (@a-z@, -- @A-Z@, @0-9@) and punctuation -- (@!\"#$%&\'()*+,-.\/:;\<=>?\@[\\]^_\`{|}~@). -- -- For best practices of using @ReceiveRequestAttemptId@, see -- <https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/using-receiverequestattemptid-request-parameter.html Using the ReceiveRequestAttemptId Request Parameter> -- in the /Amazon SQS Developer Guide/. ReceiveMessage -> Maybe Text receiveRequestAttemptId :: Prelude.Maybe Prelude.Text, -- | The duration (in seconds) that the received messages are hidden from -- subsequent retrieve requests after being retrieved by a @ReceiveMessage@ -- request. ReceiveMessage -> Maybe Int visibilityTimeout :: Prelude.Maybe Prelude.Int, -- | The name of the message attribute, where /N/ is the index. -- -- - The name can contain alphanumeric characters and the underscore -- (@_@), hyphen (@-@), and period (@.@). -- -- - The name is case-sensitive and must be unique among all attribute -- names for the message. -- -- - The name must not start with AWS-reserved prefixes such as @AWS.@ or -- @Amazon.@ (or any casing variants). -- -- - The name must not start or end with a period (@.@), and it should -- not have periods in succession (@..@). -- -- - The name can be up to 256 characters long. -- -- When using @ReceiveMessage@, you can send a list of attribute names to -- receive, or you can return all of the attributes by specifying @All@ or -- @.*@ in your request. You can also use all message attributes starting -- with a prefix, for example @bar.*@. ReceiveMessage -> Maybe [Text] messageAttributeNames :: Prelude.Maybe [Prelude.Text], -- | The duration (in seconds) for which the call waits for a message to -- arrive in the queue before returning. If a message is available, the -- call returns sooner than @WaitTimeSeconds@. If no messages are available -- and the wait time expires, the call returns successfully with an empty -- list of messages. -- -- To avoid HTTP errors, ensure that the HTTP response timeout for -- @ReceiveMessage@ requests is longer than the @WaitTimeSeconds@ -- parameter. For example, with the Java SDK, you can set HTTP transport -- settings using the -- <https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/http/nio/netty/NettyNioAsyncHttpClient.html NettyNioAsyncHttpClient> -- for asynchronous clients, or the -- <https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/http/apache/ApacheHttpClient.html ApacheHttpClient> -- for synchronous clients. ReceiveMessage -> Maybe Int waitTimeSeconds :: Prelude.Maybe Prelude.Int, -- | A list of attributes that need to be returned along with each message. -- These attributes include: -- -- - @All@ – Returns all values. -- -- - @ApproximateFirstReceiveTimestamp@ – Returns the time the message -- was first received from the queue -- (<http://en.wikipedia.org/wiki/Unix_time epoch time> in -- milliseconds). -- -- - @ApproximateReceiveCount@ – Returns the number of times a message -- has been received across all queues but not deleted. -- -- - @AWSTraceHeader@ – Returns the X-Ray trace header string. -- -- - @SenderId@ -- -- - For an IAM user, returns the IAM user ID, for example -- @ABCDEFGHI1JKLMNOPQ23R@. -- -- - For an IAM role, returns the IAM role ID, for example -- @ABCDE1F2GH3I4JK5LMNOP:i-a123b456@. -- -- - @SentTimestamp@ – Returns the time the message was sent to the queue -- (<http://en.wikipedia.org/wiki/Unix_time epoch time> in -- milliseconds). -- -- - @MessageDeduplicationId@ – Returns the value provided by the -- producer that calls the @ SendMessage @ action. -- -- - @MessageGroupId@ – Returns the value provided by the producer that -- calls the @ SendMessage @ action. Messages with the same -- @MessageGroupId@ are returned in sequence. -- -- - @SequenceNumber@ – Returns the value provided by Amazon SQS. ReceiveMessage -> Maybe [MessageAttribute] attributeNames :: Prelude.Maybe [MessageAttribute], -- | The maximum number of messages to return. Amazon SQS never returns more -- messages than this value (however, fewer messages might be returned). -- Valid values: 1 to 10. Default: 1. ReceiveMessage -> Maybe Int maxNumberOfMessages :: Prelude.Maybe Prelude.Int, -- | The URL of the Amazon SQS queue from which messages are received. -- -- Queue URLs and names are case-sensitive. ReceiveMessage -> Text queueUrl :: Prelude.Text } deriving (ReceiveMessage -> ReceiveMessage -> Bool (ReceiveMessage -> ReceiveMessage -> Bool) -> (ReceiveMessage -> ReceiveMessage -> Bool) -> Eq ReceiveMessage forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: ReceiveMessage -> ReceiveMessage -> Bool $c/= :: ReceiveMessage -> ReceiveMessage -> Bool == :: ReceiveMessage -> ReceiveMessage -> Bool $c== :: ReceiveMessage -> ReceiveMessage -> Bool Prelude.Eq, ReadPrec [ReceiveMessage] ReadPrec ReceiveMessage Int -> ReadS ReceiveMessage ReadS [ReceiveMessage] (Int -> ReadS ReceiveMessage) -> ReadS [ReceiveMessage] -> ReadPrec ReceiveMessage -> ReadPrec [ReceiveMessage] -> Read ReceiveMessage forall a. (Int -> ReadS a) -> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a readListPrec :: ReadPrec [ReceiveMessage] $creadListPrec :: ReadPrec [ReceiveMessage] readPrec :: ReadPrec ReceiveMessage $creadPrec :: ReadPrec ReceiveMessage readList :: ReadS [ReceiveMessage] $creadList :: ReadS [ReceiveMessage] readsPrec :: Int -> ReadS ReceiveMessage $creadsPrec :: Int -> ReadS ReceiveMessage Prelude.Read, Int -> ReceiveMessage -> ShowS [ReceiveMessage] -> ShowS ReceiveMessage -> String (Int -> ReceiveMessage -> ShowS) -> (ReceiveMessage -> String) -> ([ReceiveMessage] -> ShowS) -> Show ReceiveMessage forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [ReceiveMessage] -> ShowS $cshowList :: [ReceiveMessage] -> ShowS show :: ReceiveMessage -> String $cshow :: ReceiveMessage -> String showsPrec :: Int -> ReceiveMessage -> ShowS $cshowsPrec :: Int -> ReceiveMessage -> ShowS Prelude.Show, (forall x. ReceiveMessage -> Rep ReceiveMessage x) -> (forall x. Rep ReceiveMessage x -> ReceiveMessage) -> Generic ReceiveMessage forall x. Rep ReceiveMessage x -> ReceiveMessage forall x. ReceiveMessage -> Rep ReceiveMessage x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a $cto :: forall x. Rep ReceiveMessage x -> ReceiveMessage $cfrom :: forall x. ReceiveMessage -> Rep ReceiveMessage x Prelude.Generic) -- | -- Create a value of 'ReceiveMessage' 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: -- -- 'receiveRequestAttemptId', 'receiveMessage_receiveRequestAttemptId' - This parameter applies only to FIFO (first-in-first-out) queues. -- -- The token used for deduplication of @ReceiveMessage@ calls. If a -- networking issue occurs after a @ReceiveMessage@ action, and instead of -- a response you receive a generic error, it is possible to retry the same -- action with an identical @ReceiveRequestAttemptId@ to retrieve the same -- set of messages, even if their visibility timeout has not yet expired. -- -- - You can use @ReceiveRequestAttemptId@ only for 5 minutes after a -- @ReceiveMessage@ action. -- -- - When you set @FifoQueue@, a caller of the @ReceiveMessage@ action -- can provide a @ReceiveRequestAttemptId@ explicitly. -- -- - If a caller of the @ReceiveMessage@ action doesn\'t provide a -- @ReceiveRequestAttemptId@, Amazon SQS generates a -- @ReceiveRequestAttemptId@. -- -- - It is possible to retry the @ReceiveMessage@ action with the same -- @ReceiveRequestAttemptId@ if none of the messages have been modified -- (deleted or had their visibility changes). -- -- - During a visibility timeout, subsequent calls with the same -- @ReceiveRequestAttemptId@ return the same messages and receipt -- handles. If a retry occurs within the deduplication interval, it -- resets the visibility timeout. For more information, see -- <https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-visibility-timeout.html Visibility Timeout> -- in the /Amazon SQS Developer Guide/. -- -- If a caller of the @ReceiveMessage@ action still processes messages -- when the visibility timeout expires and messages become visible, -- another worker consuming from the same queue can receive the same -- messages and therefore process duplicates. Also, if a consumer whose -- message processing time is longer than the visibility timeout tries -- to delete the processed messages, the action fails with an error. -- -- To mitigate this effect, ensure that your application observes a -- safe threshold before the visibility timeout expires and extend the -- visibility timeout as necessary. -- -- - While messages with a particular @MessageGroupId@ are invisible, no -- more messages belonging to the same @MessageGroupId@ are returned -- until the visibility timeout expires. You can still receive messages -- with another @MessageGroupId@ as long as it is also visible. -- -- - If a caller of @ReceiveMessage@ can\'t track the -- @ReceiveRequestAttemptId@, no retries work until the original -- visibility timeout expires. As a result, delays might occur but the -- messages in the queue remain in a strict order. -- -- The maximum length of @ReceiveRequestAttemptId@ is 128 characters. -- @ReceiveRequestAttemptId@ can contain alphanumeric characters (@a-z@, -- @A-Z@, @0-9@) and punctuation -- (@!\"#$%&\'()*+,-.\/:;\<=>?\@[\\]^_\`{|}~@). -- -- For best practices of using @ReceiveRequestAttemptId@, see -- <https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/using-receiverequestattemptid-request-parameter.html Using the ReceiveRequestAttemptId Request Parameter> -- in the /Amazon SQS Developer Guide/. -- -- 'visibilityTimeout', 'receiveMessage_visibilityTimeout' - The duration (in seconds) that the received messages are hidden from -- subsequent retrieve requests after being retrieved by a @ReceiveMessage@ -- request. -- -- 'messageAttributeNames', 'receiveMessage_messageAttributeNames' - The name of the message attribute, where /N/ is the index. -- -- - The name can contain alphanumeric characters and the underscore -- (@_@), hyphen (@-@), and period (@.@). -- -- - The name is case-sensitive and must be unique among all attribute -- names for the message. -- -- - The name must not start with AWS-reserved prefixes such as @AWS.@ or -- @Amazon.@ (or any casing variants). -- -- - The name must not start or end with a period (@.@), and it should -- not have periods in succession (@..@). -- -- - The name can be up to 256 characters long. -- -- When using @ReceiveMessage@, you can send a list of attribute names to -- receive, or you can return all of the attributes by specifying @All@ or -- @.*@ in your request. You can also use all message attributes starting -- with a prefix, for example @bar.*@. -- -- 'waitTimeSeconds', 'receiveMessage_waitTimeSeconds' - The duration (in seconds) for which the call waits for a message to -- arrive in the queue before returning. If a message is available, the -- call returns sooner than @WaitTimeSeconds@. If no messages are available -- and the wait time expires, the call returns successfully with an empty -- list of messages. -- -- To avoid HTTP errors, ensure that the HTTP response timeout for -- @ReceiveMessage@ requests is longer than the @WaitTimeSeconds@ -- parameter. For example, with the Java SDK, you can set HTTP transport -- settings using the -- <https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/http/nio/netty/NettyNioAsyncHttpClient.html NettyNioAsyncHttpClient> -- for asynchronous clients, or the -- <https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/http/apache/ApacheHttpClient.html ApacheHttpClient> -- for synchronous clients. -- -- 'attributeNames', 'receiveMessage_attributeNames' - A list of attributes that need to be returned along with each message. -- These attributes include: -- -- - @All@ – Returns all values. -- -- - @ApproximateFirstReceiveTimestamp@ – Returns the time the message -- was first received from the queue -- (<http://en.wikipedia.org/wiki/Unix_time epoch time> in -- milliseconds). -- -- - @ApproximateReceiveCount@ – Returns the number of times a message -- has been received across all queues but not deleted. -- -- - @AWSTraceHeader@ – Returns the X-Ray trace header string. -- -- - @SenderId@ -- -- - For an IAM user, returns the IAM user ID, for example -- @ABCDEFGHI1JKLMNOPQ23R@. -- -- - For an IAM role, returns the IAM role ID, for example -- @ABCDE1F2GH3I4JK5LMNOP:i-a123b456@. -- -- - @SentTimestamp@ – Returns the time the message was sent to the queue -- (<http://en.wikipedia.org/wiki/Unix_time epoch time> in -- milliseconds). -- -- - @MessageDeduplicationId@ – Returns the value provided by the -- producer that calls the @ SendMessage @ action. -- -- - @MessageGroupId@ – Returns the value provided by the producer that -- calls the @ SendMessage @ action. Messages with the same -- @MessageGroupId@ are returned in sequence. -- -- - @SequenceNumber@ – Returns the value provided by Amazon SQS. -- -- 'maxNumberOfMessages', 'receiveMessage_maxNumberOfMessages' - The maximum number of messages to return. Amazon SQS never returns more -- messages than this value (however, fewer messages might be returned). -- Valid values: 1 to 10. Default: 1. -- -- 'queueUrl', 'receiveMessage_queueUrl' - The URL of the Amazon SQS queue from which messages are received. -- -- Queue URLs and names are case-sensitive. newReceiveMessage :: -- | 'queueUrl' Prelude.Text -> ReceiveMessage newReceiveMessage :: Text -> ReceiveMessage newReceiveMessage Text pQueueUrl_ = ReceiveMessage' :: Maybe Text -> Maybe Int -> Maybe [Text] -> Maybe Int -> Maybe [MessageAttribute] -> Maybe Int -> Text -> ReceiveMessage ReceiveMessage' { $sel:receiveRequestAttemptId:ReceiveMessage' :: Maybe Text receiveRequestAttemptId = Maybe Text forall a. Maybe a Prelude.Nothing, $sel:visibilityTimeout:ReceiveMessage' :: Maybe Int visibilityTimeout = Maybe Int forall a. Maybe a Prelude.Nothing, $sel:messageAttributeNames:ReceiveMessage' :: Maybe [Text] messageAttributeNames = Maybe [Text] forall a. Maybe a Prelude.Nothing, $sel:waitTimeSeconds:ReceiveMessage' :: Maybe Int waitTimeSeconds = Maybe Int forall a. Maybe a Prelude.Nothing, $sel:attributeNames:ReceiveMessage' :: Maybe [MessageAttribute] attributeNames = Maybe [MessageAttribute] forall a. Maybe a Prelude.Nothing, $sel:maxNumberOfMessages:ReceiveMessage' :: Maybe Int maxNumberOfMessages = Maybe Int forall a. Maybe a Prelude.Nothing, $sel:queueUrl:ReceiveMessage' :: Text queueUrl = Text pQueueUrl_ } -- | This parameter applies only to FIFO (first-in-first-out) queues. -- -- The token used for deduplication of @ReceiveMessage@ calls. If a -- networking issue occurs after a @ReceiveMessage@ action, and instead of -- a response you receive a generic error, it is possible to retry the same -- action with an identical @ReceiveRequestAttemptId@ to retrieve the same -- set of messages, even if their visibility timeout has not yet expired. -- -- - You can use @ReceiveRequestAttemptId@ only for 5 minutes after a -- @ReceiveMessage@ action. -- -- - When you set @FifoQueue@, a caller of the @ReceiveMessage@ action -- can provide a @ReceiveRequestAttemptId@ explicitly. -- -- - If a caller of the @ReceiveMessage@ action doesn\'t provide a -- @ReceiveRequestAttemptId@, Amazon SQS generates a -- @ReceiveRequestAttemptId@. -- -- - It is possible to retry the @ReceiveMessage@ action with the same -- @ReceiveRequestAttemptId@ if none of the messages have been modified -- (deleted or had their visibility changes). -- -- - During a visibility timeout, subsequent calls with the same -- @ReceiveRequestAttemptId@ return the same messages and receipt -- handles. If a retry occurs within the deduplication interval, it -- resets the visibility timeout. For more information, see -- <https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-visibility-timeout.html Visibility Timeout> -- in the /Amazon SQS Developer Guide/. -- -- If a caller of the @ReceiveMessage@ action still processes messages -- when the visibility timeout expires and messages become visible, -- another worker consuming from the same queue can receive the same -- messages and therefore process duplicates. Also, if a consumer whose -- message processing time is longer than the visibility timeout tries -- to delete the processed messages, the action fails with an error. -- -- To mitigate this effect, ensure that your application observes a -- safe threshold before the visibility timeout expires and extend the -- visibility timeout as necessary. -- -- - While messages with a particular @MessageGroupId@ are invisible, no -- more messages belonging to the same @MessageGroupId@ are returned -- until the visibility timeout expires. You can still receive messages -- with another @MessageGroupId@ as long as it is also visible. -- -- - If a caller of @ReceiveMessage@ can\'t track the -- @ReceiveRequestAttemptId@, no retries work until the original -- visibility timeout expires. As a result, delays might occur but the -- messages in the queue remain in a strict order. -- -- The maximum length of @ReceiveRequestAttemptId@ is 128 characters. -- @ReceiveRequestAttemptId@ can contain alphanumeric characters (@a-z@, -- @A-Z@, @0-9@) and punctuation -- (@!\"#$%&\'()*+,-.\/:;\<=>?\@[\\]^_\`{|}~@). -- -- For best practices of using @ReceiveRequestAttemptId@, see -- <https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/using-receiverequestattemptid-request-parameter.html Using the ReceiveRequestAttemptId Request Parameter> -- in the /Amazon SQS Developer Guide/. receiveMessage_receiveRequestAttemptId :: Lens.Lens' ReceiveMessage (Prelude.Maybe Prelude.Text) receiveMessage_receiveRequestAttemptId :: (Maybe Text -> f (Maybe Text)) -> ReceiveMessage -> f ReceiveMessage receiveMessage_receiveRequestAttemptId = (ReceiveMessage -> Maybe Text) -> (ReceiveMessage -> Maybe Text -> ReceiveMessage) -> Lens ReceiveMessage ReceiveMessage (Maybe Text) (Maybe Text) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\ReceiveMessage' {Maybe Text receiveRequestAttemptId :: Maybe Text $sel:receiveRequestAttemptId:ReceiveMessage' :: ReceiveMessage -> Maybe Text receiveRequestAttemptId} -> Maybe Text receiveRequestAttemptId) (\s :: ReceiveMessage s@ReceiveMessage' {} Maybe Text a -> ReceiveMessage s {$sel:receiveRequestAttemptId:ReceiveMessage' :: Maybe Text receiveRequestAttemptId = Maybe Text a} :: ReceiveMessage) -- | The duration (in seconds) that the received messages are hidden from -- subsequent retrieve requests after being retrieved by a @ReceiveMessage@ -- request. receiveMessage_visibilityTimeout :: Lens.Lens' ReceiveMessage (Prelude.Maybe Prelude.Int) receiveMessage_visibilityTimeout :: (Maybe Int -> f (Maybe Int)) -> ReceiveMessage -> f ReceiveMessage receiveMessage_visibilityTimeout = (ReceiveMessage -> Maybe Int) -> (ReceiveMessage -> Maybe Int -> ReceiveMessage) -> Lens ReceiveMessage ReceiveMessage (Maybe Int) (Maybe Int) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\ReceiveMessage' {Maybe Int visibilityTimeout :: Maybe Int $sel:visibilityTimeout:ReceiveMessage' :: ReceiveMessage -> Maybe Int visibilityTimeout} -> Maybe Int visibilityTimeout) (\s :: ReceiveMessage s@ReceiveMessage' {} Maybe Int a -> ReceiveMessage s {$sel:visibilityTimeout:ReceiveMessage' :: Maybe Int visibilityTimeout = Maybe Int a} :: ReceiveMessage) -- | The name of the message attribute, where /N/ is the index. -- -- - The name can contain alphanumeric characters and the underscore -- (@_@), hyphen (@-@), and period (@.@). -- -- - The name is case-sensitive and must be unique among all attribute -- names for the message. -- -- - The name must not start with AWS-reserved prefixes such as @AWS.@ or -- @Amazon.@ (or any casing variants). -- -- - The name must not start or end with a period (@.@), and it should -- not have periods in succession (@..@). -- -- - The name can be up to 256 characters long. -- -- When using @ReceiveMessage@, you can send a list of attribute names to -- receive, or you can return all of the attributes by specifying @All@ or -- @.*@ in your request. You can also use all message attributes starting -- with a prefix, for example @bar.*@. receiveMessage_messageAttributeNames :: Lens.Lens' ReceiveMessage (Prelude.Maybe [Prelude.Text]) receiveMessage_messageAttributeNames :: (Maybe [Text] -> f (Maybe [Text])) -> ReceiveMessage -> f ReceiveMessage receiveMessage_messageAttributeNames = (ReceiveMessage -> Maybe [Text]) -> (ReceiveMessage -> Maybe [Text] -> ReceiveMessage) -> Lens ReceiveMessage ReceiveMessage (Maybe [Text]) (Maybe [Text]) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\ReceiveMessage' {Maybe [Text] messageAttributeNames :: Maybe [Text] $sel:messageAttributeNames:ReceiveMessage' :: ReceiveMessage -> Maybe [Text] messageAttributeNames} -> Maybe [Text] messageAttributeNames) (\s :: ReceiveMessage s@ReceiveMessage' {} Maybe [Text] a -> ReceiveMessage s {$sel:messageAttributeNames:ReceiveMessage' :: Maybe [Text] messageAttributeNames = Maybe [Text] a} :: ReceiveMessage) ((Maybe [Text] -> f (Maybe [Text])) -> ReceiveMessage -> f ReceiveMessage) -> ((Maybe [Text] -> f (Maybe [Text])) -> Maybe [Text] -> f (Maybe [Text])) -> (Maybe [Text] -> f (Maybe [Text])) -> ReceiveMessage -> f ReceiveMessage forall b c a. (b -> c) -> (a -> b) -> a -> c Prelude.. AnIso [Text] [Text] [Text] [Text] -> Iso (Maybe [Text]) (Maybe [Text]) (Maybe [Text]) (Maybe [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 [Text] [Text] [Text] [Text] forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b Lens.coerced -- | The duration (in seconds) for which the call waits for a message to -- arrive in the queue before returning. If a message is available, the -- call returns sooner than @WaitTimeSeconds@. If no messages are available -- and the wait time expires, the call returns successfully with an empty -- list of messages. -- -- To avoid HTTP errors, ensure that the HTTP response timeout for -- @ReceiveMessage@ requests is longer than the @WaitTimeSeconds@ -- parameter. For example, with the Java SDK, you can set HTTP transport -- settings using the -- <https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/http/nio/netty/NettyNioAsyncHttpClient.html NettyNioAsyncHttpClient> -- for asynchronous clients, or the -- <https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/http/apache/ApacheHttpClient.html ApacheHttpClient> -- for synchronous clients. receiveMessage_waitTimeSeconds :: Lens.Lens' ReceiveMessage (Prelude.Maybe Prelude.Int) receiveMessage_waitTimeSeconds :: (Maybe Int -> f (Maybe Int)) -> ReceiveMessage -> f ReceiveMessage receiveMessage_waitTimeSeconds = (ReceiveMessage -> Maybe Int) -> (ReceiveMessage -> Maybe Int -> ReceiveMessage) -> Lens ReceiveMessage ReceiveMessage (Maybe Int) (Maybe Int) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\ReceiveMessage' {Maybe Int waitTimeSeconds :: Maybe Int $sel:waitTimeSeconds:ReceiveMessage' :: ReceiveMessage -> Maybe Int waitTimeSeconds} -> Maybe Int waitTimeSeconds) (\s :: ReceiveMessage s@ReceiveMessage' {} Maybe Int a -> ReceiveMessage s {$sel:waitTimeSeconds:ReceiveMessage' :: Maybe Int waitTimeSeconds = Maybe Int a} :: ReceiveMessage) -- | A list of attributes that need to be returned along with each message. -- These attributes include: -- -- - @All@ – Returns all values. -- -- - @ApproximateFirstReceiveTimestamp@ – Returns the time the message -- was first received from the queue -- (<http://en.wikipedia.org/wiki/Unix_time epoch time> in -- milliseconds). -- -- - @ApproximateReceiveCount@ – Returns the number of times a message -- has been received across all queues but not deleted. -- -- - @AWSTraceHeader@ – Returns the X-Ray trace header string. -- -- - @SenderId@ -- -- - For an IAM user, returns the IAM user ID, for example -- @ABCDEFGHI1JKLMNOPQ23R@. -- -- - For an IAM role, returns the IAM role ID, for example -- @ABCDE1F2GH3I4JK5LMNOP:i-a123b456@. -- -- - @SentTimestamp@ – Returns the time the message was sent to the queue -- (<http://en.wikipedia.org/wiki/Unix_time epoch time> in -- milliseconds). -- -- - @MessageDeduplicationId@ – Returns the value provided by the -- producer that calls the @ SendMessage @ action. -- -- - @MessageGroupId@ – Returns the value provided by the producer that -- calls the @ SendMessage @ action. Messages with the same -- @MessageGroupId@ are returned in sequence. -- -- - @SequenceNumber@ – Returns the value provided by Amazon SQS. receiveMessage_attributeNames :: Lens.Lens' ReceiveMessage (Prelude.Maybe [MessageAttribute]) receiveMessage_attributeNames :: (Maybe [MessageAttribute] -> f (Maybe [MessageAttribute])) -> ReceiveMessage -> f ReceiveMessage receiveMessage_attributeNames = (ReceiveMessage -> Maybe [MessageAttribute]) -> (ReceiveMessage -> Maybe [MessageAttribute] -> ReceiveMessage) -> Lens ReceiveMessage ReceiveMessage (Maybe [MessageAttribute]) (Maybe [MessageAttribute]) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\ReceiveMessage' {Maybe [MessageAttribute] attributeNames :: Maybe [MessageAttribute] $sel:attributeNames:ReceiveMessage' :: ReceiveMessage -> Maybe [MessageAttribute] attributeNames} -> Maybe [MessageAttribute] attributeNames) (\s :: ReceiveMessage s@ReceiveMessage' {} Maybe [MessageAttribute] a -> ReceiveMessage s {$sel:attributeNames:ReceiveMessage' :: Maybe [MessageAttribute] attributeNames = Maybe [MessageAttribute] a} :: ReceiveMessage) ((Maybe [MessageAttribute] -> f (Maybe [MessageAttribute])) -> ReceiveMessage -> f ReceiveMessage) -> ((Maybe [MessageAttribute] -> f (Maybe [MessageAttribute])) -> Maybe [MessageAttribute] -> f (Maybe [MessageAttribute])) -> (Maybe [MessageAttribute] -> f (Maybe [MessageAttribute])) -> ReceiveMessage -> f ReceiveMessage forall b c a. (b -> c) -> (a -> b) -> a -> c Prelude.. AnIso [MessageAttribute] [MessageAttribute] [MessageAttribute] [MessageAttribute] -> Iso (Maybe [MessageAttribute]) (Maybe [MessageAttribute]) (Maybe [MessageAttribute]) (Maybe [MessageAttribute]) 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 [MessageAttribute] [MessageAttribute] [MessageAttribute] [MessageAttribute] forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b Lens.coerced -- | The maximum number of messages to return. Amazon SQS never returns more -- messages than this value (however, fewer messages might be returned). -- Valid values: 1 to 10. Default: 1. receiveMessage_maxNumberOfMessages :: Lens.Lens' ReceiveMessage (Prelude.Maybe Prelude.Int) receiveMessage_maxNumberOfMessages :: (Maybe Int -> f (Maybe Int)) -> ReceiveMessage -> f ReceiveMessage receiveMessage_maxNumberOfMessages = (ReceiveMessage -> Maybe Int) -> (ReceiveMessage -> Maybe Int -> ReceiveMessage) -> Lens ReceiveMessage ReceiveMessage (Maybe Int) (Maybe Int) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\ReceiveMessage' {Maybe Int maxNumberOfMessages :: Maybe Int $sel:maxNumberOfMessages:ReceiveMessage' :: ReceiveMessage -> Maybe Int maxNumberOfMessages} -> Maybe Int maxNumberOfMessages) (\s :: ReceiveMessage s@ReceiveMessage' {} Maybe Int a -> ReceiveMessage s {$sel:maxNumberOfMessages:ReceiveMessage' :: Maybe Int maxNumberOfMessages = Maybe Int a} :: ReceiveMessage) -- | The URL of the Amazon SQS queue from which messages are received. -- -- Queue URLs and names are case-sensitive. receiveMessage_queueUrl :: Lens.Lens' ReceiveMessage Prelude.Text receiveMessage_queueUrl :: (Text -> f Text) -> ReceiveMessage -> f ReceiveMessage receiveMessage_queueUrl = (ReceiveMessage -> Text) -> (ReceiveMessage -> Text -> ReceiveMessage) -> Lens ReceiveMessage ReceiveMessage Text Text forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\ReceiveMessage' {Text queueUrl :: Text $sel:queueUrl:ReceiveMessage' :: ReceiveMessage -> Text queueUrl} -> Text queueUrl) (\s :: ReceiveMessage s@ReceiveMessage' {} Text a -> ReceiveMessage s {$sel:queueUrl:ReceiveMessage' :: Text queueUrl = Text a} :: ReceiveMessage) instance Core.AWSRequest ReceiveMessage where type AWSResponse ReceiveMessage = ReceiveMessageResponse request :: ReceiveMessage -> Request ReceiveMessage request = Service -> ReceiveMessage -> Request ReceiveMessage forall a. ToRequest a => Service -> a -> Request a Request.postQuery Service defaultService response :: Logger -> Service -> Proxy ReceiveMessage -> ClientResponse ClientBody -> m (Either Error (ClientResponse (AWSResponse ReceiveMessage))) response = Text -> (Int -> ResponseHeaders -> [Node] -> Either String (AWSResponse ReceiveMessage)) -> Logger -> Service -> Proxy ReceiveMessage -> ClientResponse ClientBody -> m (Either Error (ClientResponse (AWSResponse ReceiveMessage))) 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 "ReceiveMessageResult" ( \Int s ResponseHeaders h [Node] x -> Maybe [Message] -> Int -> ReceiveMessageResponse ReceiveMessageResponse' (Maybe [Message] -> Int -> ReceiveMessageResponse) -> Either String (Maybe [Message]) -> Either String (Int -> ReceiveMessageResponse) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b Prelude.<$> (([Node] -> Either String [Message]) -> [Node] -> Either String (Maybe [Message]) forall (f :: * -> *) a b. Applicative f => ([a] -> f b) -> [a] -> f (Maybe b) Core.may (Text -> [Node] -> Either String [Message] forall a. FromXML a => Text -> [Node] -> Either String [a] Core.parseXMLList Text "Message") [Node] x) Either String (Int -> ReceiveMessageResponse) -> Either String Int -> Either String ReceiveMessageResponse 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 ReceiveMessage instance Prelude.NFData ReceiveMessage instance Core.ToHeaders ReceiveMessage where toHeaders :: ReceiveMessage -> ResponseHeaders toHeaders = ResponseHeaders -> ReceiveMessage -> ResponseHeaders forall a b. a -> b -> a Prelude.const ResponseHeaders forall a. Monoid a => a Prelude.mempty instance Core.ToPath ReceiveMessage where toPath :: ReceiveMessage -> ByteString toPath = ByteString -> ReceiveMessage -> ByteString forall a b. a -> b -> a Prelude.const ByteString "/" instance Core.ToQuery ReceiveMessage where toQuery :: ReceiveMessage -> QueryString toQuery ReceiveMessage' {Maybe Int Maybe [Text] Maybe [MessageAttribute] Maybe Text Text queueUrl :: Text maxNumberOfMessages :: Maybe Int attributeNames :: Maybe [MessageAttribute] waitTimeSeconds :: Maybe Int messageAttributeNames :: Maybe [Text] visibilityTimeout :: Maybe Int receiveRequestAttemptId :: Maybe Text $sel:queueUrl:ReceiveMessage' :: ReceiveMessage -> Text $sel:maxNumberOfMessages:ReceiveMessage' :: ReceiveMessage -> Maybe Int $sel:attributeNames:ReceiveMessage' :: ReceiveMessage -> Maybe [MessageAttribute] $sel:waitTimeSeconds:ReceiveMessage' :: ReceiveMessage -> Maybe Int $sel:messageAttributeNames:ReceiveMessage' :: ReceiveMessage -> Maybe [Text] $sel:visibilityTimeout:ReceiveMessage' :: ReceiveMessage -> Maybe Int $sel:receiveRequestAttemptId:ReceiveMessage' :: ReceiveMessage -> Maybe 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 "ReceiveMessage" :: Prelude.ByteString), ByteString "Version" ByteString -> ByteString -> QueryString forall a. ToQuery a => ByteString -> a -> QueryString Core.=: (ByteString "2012-11-05" :: Prelude.ByteString), ByteString "ReceiveRequestAttemptId" ByteString -> Maybe Text -> QueryString forall a. ToQuery a => ByteString -> a -> QueryString Core.=: Maybe Text receiveRequestAttemptId, ByteString "VisibilityTimeout" ByteString -> Maybe Int -> QueryString forall a. ToQuery a => ByteString -> a -> QueryString Core.=: Maybe Int visibilityTimeout, Maybe QueryString -> QueryString forall a. ToQuery a => a -> QueryString Core.toQuery ( ByteString -> [Text] -> QueryString forall a. (IsList a, ToQuery (Item a)) => ByteString -> a -> QueryString Core.toQueryList ByteString "MessageAttributeName" ([Text] -> QueryString) -> Maybe [Text] -> Maybe QueryString forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b Prelude.<$> Maybe [Text] messageAttributeNames ), ByteString "WaitTimeSeconds" ByteString -> Maybe Int -> QueryString forall a. ToQuery a => ByteString -> a -> QueryString Core.=: Maybe Int waitTimeSeconds, Maybe QueryString -> QueryString forall a. ToQuery a => a -> QueryString Core.toQuery ( ByteString -> [MessageAttribute] -> QueryString forall a. (IsList a, ToQuery (Item a)) => ByteString -> a -> QueryString Core.toQueryList ByteString "AttributeName" ([MessageAttribute] -> QueryString) -> Maybe [MessageAttribute] -> Maybe QueryString forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b Prelude.<$> Maybe [MessageAttribute] attributeNames ), ByteString "MaxNumberOfMessages" ByteString -> Maybe Int -> QueryString forall a. ToQuery a => ByteString -> a -> QueryString Core.=: Maybe Int maxNumberOfMessages, ByteString "QueueUrl" ByteString -> Text -> QueryString forall a. ToQuery a => ByteString -> a -> QueryString Core.=: Text queueUrl ] -- | A list of received messages. -- -- /See:/ 'newReceiveMessageResponse' smart constructor. data ReceiveMessageResponse = ReceiveMessageResponse' { -- | A list of messages. ReceiveMessageResponse -> Maybe [Message] messages :: Prelude.Maybe [Message], -- | The response's http status code. ReceiveMessageResponse -> Int httpStatus :: Prelude.Int } deriving (ReceiveMessageResponse -> ReceiveMessageResponse -> Bool (ReceiveMessageResponse -> ReceiveMessageResponse -> Bool) -> (ReceiveMessageResponse -> ReceiveMessageResponse -> Bool) -> Eq ReceiveMessageResponse forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: ReceiveMessageResponse -> ReceiveMessageResponse -> Bool $c/= :: ReceiveMessageResponse -> ReceiveMessageResponse -> Bool == :: ReceiveMessageResponse -> ReceiveMessageResponse -> Bool $c== :: ReceiveMessageResponse -> ReceiveMessageResponse -> Bool Prelude.Eq, ReadPrec [ReceiveMessageResponse] ReadPrec ReceiveMessageResponse Int -> ReadS ReceiveMessageResponse ReadS [ReceiveMessageResponse] (Int -> ReadS ReceiveMessageResponse) -> ReadS [ReceiveMessageResponse] -> ReadPrec ReceiveMessageResponse -> ReadPrec [ReceiveMessageResponse] -> Read ReceiveMessageResponse forall a. (Int -> ReadS a) -> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a readListPrec :: ReadPrec [ReceiveMessageResponse] $creadListPrec :: ReadPrec [ReceiveMessageResponse] readPrec :: ReadPrec ReceiveMessageResponse $creadPrec :: ReadPrec ReceiveMessageResponse readList :: ReadS [ReceiveMessageResponse] $creadList :: ReadS [ReceiveMessageResponse] readsPrec :: Int -> ReadS ReceiveMessageResponse $creadsPrec :: Int -> ReadS ReceiveMessageResponse Prelude.Read, Int -> ReceiveMessageResponse -> ShowS [ReceiveMessageResponse] -> ShowS ReceiveMessageResponse -> String (Int -> ReceiveMessageResponse -> ShowS) -> (ReceiveMessageResponse -> String) -> ([ReceiveMessageResponse] -> ShowS) -> Show ReceiveMessageResponse forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [ReceiveMessageResponse] -> ShowS $cshowList :: [ReceiveMessageResponse] -> ShowS show :: ReceiveMessageResponse -> String $cshow :: ReceiveMessageResponse -> String showsPrec :: Int -> ReceiveMessageResponse -> ShowS $cshowsPrec :: Int -> ReceiveMessageResponse -> ShowS Prelude.Show, (forall x. ReceiveMessageResponse -> Rep ReceiveMessageResponse x) -> (forall x. Rep ReceiveMessageResponse x -> ReceiveMessageResponse) -> Generic ReceiveMessageResponse forall x. Rep ReceiveMessageResponse x -> ReceiveMessageResponse forall x. ReceiveMessageResponse -> Rep ReceiveMessageResponse x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a $cto :: forall x. Rep ReceiveMessageResponse x -> ReceiveMessageResponse $cfrom :: forall x. ReceiveMessageResponse -> Rep ReceiveMessageResponse x Prelude.Generic) -- | -- Create a value of 'ReceiveMessageResponse' 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: -- -- 'messages', 'receiveMessageResponse_messages' - A list of messages. -- -- 'httpStatus', 'receiveMessageResponse_httpStatus' - The response's http status code. newReceiveMessageResponse :: -- | 'httpStatus' Prelude.Int -> ReceiveMessageResponse newReceiveMessageResponse :: Int -> ReceiveMessageResponse newReceiveMessageResponse Int pHttpStatus_ = ReceiveMessageResponse' :: Maybe [Message] -> Int -> ReceiveMessageResponse ReceiveMessageResponse' { $sel:messages:ReceiveMessageResponse' :: Maybe [Message] messages = Maybe [Message] forall a. Maybe a Prelude.Nothing, $sel:httpStatus:ReceiveMessageResponse' :: Int httpStatus = Int pHttpStatus_ } -- | A list of messages. receiveMessageResponse_messages :: Lens.Lens' ReceiveMessageResponse (Prelude.Maybe [Message]) receiveMessageResponse_messages :: (Maybe [Message] -> f (Maybe [Message])) -> ReceiveMessageResponse -> f ReceiveMessageResponse receiveMessageResponse_messages = (ReceiveMessageResponse -> Maybe [Message]) -> (ReceiveMessageResponse -> Maybe [Message] -> ReceiveMessageResponse) -> Lens ReceiveMessageResponse ReceiveMessageResponse (Maybe [Message]) (Maybe [Message]) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\ReceiveMessageResponse' {Maybe [Message] messages :: Maybe [Message] $sel:messages:ReceiveMessageResponse' :: ReceiveMessageResponse -> Maybe [Message] messages} -> Maybe [Message] messages) (\s :: ReceiveMessageResponse s@ReceiveMessageResponse' {} Maybe [Message] a -> ReceiveMessageResponse s {$sel:messages:ReceiveMessageResponse' :: Maybe [Message] messages = Maybe [Message] a} :: ReceiveMessageResponse) ((Maybe [Message] -> f (Maybe [Message])) -> ReceiveMessageResponse -> f ReceiveMessageResponse) -> ((Maybe [Message] -> f (Maybe [Message])) -> Maybe [Message] -> f (Maybe [Message])) -> (Maybe [Message] -> f (Maybe [Message])) -> ReceiveMessageResponse -> f ReceiveMessageResponse forall b c a. (b -> c) -> (a -> b) -> a -> c Prelude.. AnIso [Message] [Message] [Message] [Message] -> Iso (Maybe [Message]) (Maybe [Message]) (Maybe [Message]) (Maybe [Message]) 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 [Message] [Message] [Message] [Message] forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b Lens.coerced -- | The response's http status code. receiveMessageResponse_httpStatus :: Lens.Lens' ReceiveMessageResponse Prelude.Int receiveMessageResponse_httpStatus :: (Int -> f Int) -> ReceiveMessageResponse -> f ReceiveMessageResponse receiveMessageResponse_httpStatus = (ReceiveMessageResponse -> Int) -> (ReceiveMessageResponse -> Int -> ReceiveMessageResponse) -> Lens ReceiveMessageResponse ReceiveMessageResponse Int Int forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\ReceiveMessageResponse' {Int httpStatus :: Int $sel:httpStatus:ReceiveMessageResponse' :: ReceiveMessageResponse -> Int httpStatus} -> Int httpStatus) (\s :: ReceiveMessageResponse s@ReceiveMessageResponse' {} Int a -> ReceiveMessageResponse s {$sel:httpStatus:ReceiveMessageResponse' :: Int httpStatus = Int a} :: ReceiveMessageResponse) instance Prelude.NFData ReceiveMessageResponse