{-# 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.ListQueues
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Returns a list of your queues in the current region. The response
-- includes a maximum of 1,000 results. If you specify a value for the
-- optional @QueueNamePrefix@ parameter, only queues with a name that
-- begins with the specified value are returned.
--
-- The @listQueues@ methods supports pagination. Set parameter @MaxResults@
-- in the request to specify the maximum number of results to be returned
-- in the response. If you do not set @MaxResults@, the response includes a
-- maximum of 1,000 results. If you set @MaxResults@ and there are
-- additional results to display, the response includes a value for
-- @NextToken@. Use @NextToken@ as a parameter in your next request to
-- @listQueues@ to receive the next page of results.
--
-- 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/.
--
-- This operation returns paginated results.
module Amazonka.SQS.ListQueues
  ( -- * Creating a Request
    ListQueues (..),
    newListQueues,

    -- * Request Lenses
    listQueues_maxResults,
    listQueues_nextToken,
    listQueues_queueNamePrefix,

    -- * Destructuring the Response
    ListQueuesResponse (..),
    newListQueuesResponse,

    -- * Response Lenses
    listQueuesResponse_nextToken,
    listQueuesResponse_queueUrls,
    listQueuesResponse_httpStatus,
  )
where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
import Amazonka.SQS.Types

-- |
--
-- /See:/ 'newListQueues' smart constructor.
data ListQueues = ListQueues'
  { -- | Maximum number of results to include in the response. Value range is 1
    -- to 1000. You must set @MaxResults@ to receive a value for @NextToken@ in
    -- the response.
    ListQueues -> Maybe Int
maxResults :: Prelude.Maybe Prelude.Int,
    -- | Pagination token to request the next set of results.
    ListQueues -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | A string to use for filtering the list results. Only those queues whose
    -- name begins with the specified string are returned.
    --
    -- Queue URLs and names are case-sensitive.
    ListQueues -> Maybe Text
queueNamePrefix :: Prelude.Maybe Prelude.Text
  }
  deriving (ListQueues -> ListQueues -> Bool
(ListQueues -> ListQueues -> Bool)
-> (ListQueues -> ListQueues -> Bool) -> Eq ListQueues
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ListQueues -> ListQueues -> Bool
== :: ListQueues -> ListQueues -> Bool
$c/= :: ListQueues -> ListQueues -> Bool
/= :: ListQueues -> ListQueues -> Bool
Prelude.Eq, ReadPrec [ListQueues]
ReadPrec ListQueues
Int -> ReadS ListQueues
ReadS [ListQueues]
(Int -> ReadS ListQueues)
-> ReadS [ListQueues]
-> ReadPrec ListQueues
-> ReadPrec [ListQueues]
-> Read ListQueues
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
$creadsPrec :: Int -> ReadS ListQueues
readsPrec :: Int -> ReadS ListQueues
$creadList :: ReadS [ListQueues]
readList :: ReadS [ListQueues]
$creadPrec :: ReadPrec ListQueues
readPrec :: ReadPrec ListQueues
$creadListPrec :: ReadPrec [ListQueues]
readListPrec :: ReadPrec [ListQueues]
Prelude.Read, Int -> ListQueues -> ShowS
[ListQueues] -> ShowS
ListQueues -> String
(Int -> ListQueues -> ShowS)
-> (ListQueues -> String)
-> ([ListQueues] -> ShowS)
-> Show ListQueues
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ListQueues -> ShowS
showsPrec :: Int -> ListQueues -> ShowS
$cshow :: ListQueues -> String
show :: ListQueues -> String
$cshowList :: [ListQueues] -> ShowS
showList :: [ListQueues] -> ShowS
Prelude.Show, (forall x. ListQueues -> Rep ListQueues x)
-> (forall x. Rep ListQueues x -> ListQueues) -> Generic ListQueues
forall x. Rep ListQueues x -> ListQueues
forall x. ListQueues -> Rep ListQueues x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. ListQueues -> Rep ListQueues x
from :: forall x. ListQueues -> Rep ListQueues x
$cto :: forall x. Rep ListQueues x -> ListQueues
to :: forall x. Rep ListQueues x -> ListQueues
Prelude.Generic)

-- |
-- Create a value of 'ListQueues' 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:
--
-- 'maxResults', 'listQueues_maxResults' - Maximum number of results to include in the response. Value range is 1
-- to 1000. You must set @MaxResults@ to receive a value for @NextToken@ in
-- the response.
--
-- 'nextToken', 'listQueues_nextToken' - Pagination token to request the next set of results.
--
-- 'queueNamePrefix', 'listQueues_queueNamePrefix' - A string to use for filtering the list results. Only those queues whose
-- name begins with the specified string are returned.
--
-- Queue URLs and names are case-sensitive.
newListQueues ::
  ListQueues
newListQueues :: ListQueues
newListQueues =
  ListQueues'
    { $sel:maxResults:ListQueues' :: Maybe Int
maxResults = Maybe Int
forall a. Maybe a
Prelude.Nothing,
      $sel:nextToken:ListQueues' :: Maybe Text
nextToken = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:queueNamePrefix:ListQueues' :: Maybe Text
queueNamePrefix = Maybe Text
forall a. Maybe a
Prelude.Nothing
    }

-- | Maximum number of results to include in the response. Value range is 1
-- to 1000. You must set @MaxResults@ to receive a value for @NextToken@ in
-- the response.
listQueues_maxResults :: Lens.Lens' ListQueues (Prelude.Maybe Prelude.Int)
listQueues_maxResults :: Lens' ListQueues (Maybe Int)
listQueues_maxResults = (ListQueues -> Maybe Int)
-> (ListQueues -> Maybe Int -> ListQueues)
-> Lens' ListQueues (Maybe Int)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListQueues' {Maybe Int
$sel:maxResults:ListQueues' :: ListQueues -> Maybe Int
maxResults :: Maybe Int
maxResults} -> Maybe Int
maxResults) (\s :: ListQueues
s@ListQueues' {} Maybe Int
a -> ListQueues
s {maxResults = a} :: ListQueues)

-- | Pagination token to request the next set of results.
listQueues_nextToken :: Lens.Lens' ListQueues (Prelude.Maybe Prelude.Text)
listQueues_nextToken :: Lens' ListQueues (Maybe Text)
listQueues_nextToken = (ListQueues -> Maybe Text)
-> (ListQueues -> Maybe Text -> ListQueues)
-> Lens' ListQueues (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListQueues' {Maybe Text
$sel:nextToken:ListQueues' :: ListQueues -> Maybe Text
nextToken :: Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: ListQueues
s@ListQueues' {} Maybe Text
a -> ListQueues
s {nextToken = a} :: ListQueues)

-- | A string to use for filtering the list results. Only those queues whose
-- name begins with the specified string are returned.
--
-- Queue URLs and names are case-sensitive.
listQueues_queueNamePrefix :: Lens.Lens' ListQueues (Prelude.Maybe Prelude.Text)
listQueues_queueNamePrefix :: Lens' ListQueues (Maybe Text)
listQueues_queueNamePrefix = (ListQueues -> Maybe Text)
-> (ListQueues -> Maybe Text -> ListQueues)
-> Lens' ListQueues (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListQueues' {Maybe Text
$sel:queueNamePrefix:ListQueues' :: ListQueues -> Maybe Text
queueNamePrefix :: Maybe Text
queueNamePrefix} -> Maybe Text
queueNamePrefix) (\s :: ListQueues
s@ListQueues' {} Maybe Text
a -> ListQueues
s {queueNamePrefix = a} :: ListQueues)

instance Core.AWSPager ListQueues where
  page :: ListQueues -> AWSResponse ListQueues -> Maybe ListQueues
page ListQueues
rq AWSResponse ListQueues
rs
    | Maybe Text -> Bool
forall a. AWSTruncated a => a -> Bool
Core.stop
        ( AWSResponse ListQueues
ListQueuesResponse
rs
            ListQueuesResponse
-> Getting (First Text) ListQueuesResponse Text -> Maybe Text
forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? (Maybe Text -> Const (First Text) (Maybe Text))
-> ListQueuesResponse -> Const (First Text) ListQueuesResponse
Lens' ListQueuesResponse (Maybe Text)
listQueuesResponse_nextToken
            ((Maybe Text -> Const (First Text) (Maybe Text))
 -> ListQueuesResponse -> Const (First Text) ListQueuesResponse)
-> ((Text -> Const (First Text) Text)
    -> Maybe Text -> Const (First Text) (Maybe Text))
-> Getting (First Text) ListQueuesResponse Text
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. (Text -> Const (First Text) Text)
-> Maybe Text -> Const (First Text) (Maybe Text)
forall a b (p :: * -> * -> *) (f :: * -> *).
(Choice p, Applicative f) =>
p a (f b) -> p (Maybe a) (f (Maybe b))
Lens._Just
        ) =
        Maybe ListQueues
forall a. Maybe a
Prelude.Nothing
    | Maybe [Text] -> Bool
forall a. AWSTruncated a => a -> Bool
Core.stop
        ( AWSResponse ListQueues
ListQueuesResponse
rs
            ListQueuesResponse
-> Getting (First [Text]) ListQueuesResponse [Text] -> Maybe [Text]
forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? (Maybe [Text] -> Const (First [Text]) (Maybe [Text]))
-> ListQueuesResponse -> Const (First [Text]) ListQueuesResponse
Lens' ListQueuesResponse (Maybe [Text])
listQueuesResponse_queueUrls
            ((Maybe [Text] -> Const (First [Text]) (Maybe [Text]))
 -> ListQueuesResponse -> Const (First [Text]) ListQueuesResponse)
-> (([Text] -> Const (First [Text]) [Text])
    -> Maybe [Text] -> Const (First [Text]) (Maybe [Text]))
-> Getting (First [Text]) ListQueuesResponse [Text]
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. ([Text] -> Const (First [Text]) [Text])
-> Maybe [Text] -> Const (First [Text]) (Maybe [Text])
forall a b (p :: * -> * -> *) (f :: * -> *).
(Choice p, Applicative f) =>
p a (f b) -> p (Maybe a) (f (Maybe b))
Lens._Just
        ) =
        Maybe ListQueues
forall a. Maybe a
Prelude.Nothing
    | Bool
Prelude.otherwise =
        ListQueues -> Maybe ListQueues
forall a. a -> Maybe a
Prelude.Just
          (ListQueues -> Maybe ListQueues) -> ListQueues -> Maybe ListQueues
forall a b. (a -> b) -> a -> b
Prelude.$ ListQueues
rq
          ListQueues -> (ListQueues -> ListQueues) -> ListQueues
forall a b. a -> (a -> b) -> b
Prelude.& (Maybe Text -> Identity (Maybe Text))
-> ListQueues -> Identity ListQueues
Lens' ListQueues (Maybe Text)
listQueues_nextToken
          ((Maybe Text -> Identity (Maybe Text))
 -> ListQueues -> Identity ListQueues)
-> Maybe Text -> ListQueues -> ListQueues
forall s t a b. ASetter s t a b -> b -> s -> t
Lens..~ AWSResponse ListQueues
ListQueuesResponse
rs
          ListQueuesResponse
-> Getting (First Text) ListQueuesResponse Text -> Maybe Text
forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? (Maybe Text -> Const (First Text) (Maybe Text))
-> ListQueuesResponse -> Const (First Text) ListQueuesResponse
Lens' ListQueuesResponse (Maybe Text)
listQueuesResponse_nextToken
          ((Maybe Text -> Const (First Text) (Maybe Text))
 -> ListQueuesResponse -> Const (First Text) ListQueuesResponse)
-> ((Text -> Const (First Text) Text)
    -> Maybe Text -> Const (First Text) (Maybe Text))
-> Getting (First Text) ListQueuesResponse Text
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. (Text -> Const (First Text) Text)
-> Maybe Text -> Const (First Text) (Maybe Text)
forall a b (p :: * -> * -> *) (f :: * -> *).
(Choice p, Applicative f) =>
p a (f b) -> p (Maybe a) (f (Maybe b))
Lens._Just

instance Core.AWSRequest ListQueues where
  type AWSResponse ListQueues = ListQueuesResponse
  request :: (Service -> Service) -> ListQueues -> Request ListQueues
request Service -> Service
overrides =
    Service -> ListQueues -> Request ListQueues
forall a. ToRequest a => Service -> a -> Request a
Request.postQuery (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy ListQueues
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse ListQueues)))
response =
    Text
-> (Int
    -> ResponseHeaders
    -> [Node]
    -> Either String (AWSResponse ListQueues))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy ListQueues
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse ListQueues)))
forall (m :: * -> *) a.
MonadResource m =>
Text
-> (Int
    -> ResponseHeaders -> [Node] -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveXMLWrapper
      Text
"ListQueuesResult"
      ( \Int
s ResponseHeaders
h [Node]
x ->
          Maybe Text -> Maybe [Text] -> Int -> ListQueuesResponse
ListQueuesResponse'
            (Maybe Text -> Maybe [Text] -> Int -> ListQueuesResponse)
-> Either String (Maybe Text)
-> Either String (Maybe [Text] -> Int -> ListQueuesResponse)
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)
Data..@? Text
"NextToken")
            Either String (Maybe [Text] -> Int -> ListQueuesResponse)
-> Either String (Maybe [Text])
-> Either String (Int -> ListQueuesResponse)
forall a b.
Either String (a -> b) -> Either String a -> Either String b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (([Node] -> Either String [Text])
-> [Node] -> Either String (Maybe [Text])
forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may (Text -> [Node] -> Either String [Text]
forall a. FromXML a => Text -> [Node] -> Either String [a]
Data.parseXMLList Text
"QueueUrl") [Node]
x)
            Either String (Int -> ListQueuesResponse)
-> Either String Int -> Either String ListQueuesResponse
forall a b.
Either String (a -> b) -> Either String a -> Either String b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Int -> Either String Int
forall a. a -> Either String a
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 ListQueues where
  hashWithSalt :: Int -> ListQueues -> Int
hashWithSalt Int
_salt ListQueues' {Maybe Int
Maybe Text
$sel:maxResults:ListQueues' :: ListQueues -> Maybe Int
$sel:nextToken:ListQueues' :: ListQueues -> Maybe Text
$sel:queueNamePrefix:ListQueues' :: ListQueues -> Maybe Text
maxResults :: Maybe Int
nextToken :: Maybe Text
queueNamePrefix :: Maybe Text
..} =
    Int
_salt
      Int -> Maybe Int -> Int
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
maxResults
      Int -> Maybe Text -> Int
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
nextToken
      Int -> Maybe Text -> Int
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
queueNamePrefix

instance Prelude.NFData ListQueues where
  rnf :: ListQueues -> ()
rnf ListQueues' {Maybe Int
Maybe Text
$sel:maxResults:ListQueues' :: ListQueues -> Maybe Int
$sel:nextToken:ListQueues' :: ListQueues -> Maybe Text
$sel:queueNamePrefix:ListQueues' :: ListQueues -> Maybe Text
maxResults :: Maybe Int
nextToken :: Maybe Text
queueNamePrefix :: Maybe Text
..} =
    Maybe Int -> ()
forall a. NFData a => a -> ()
Prelude.rnf Maybe Int
maxResults
      () -> () -> ()
forall a b. a -> b -> b
`Prelude.seq` Maybe Text -> ()
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
nextToken
      () -> () -> ()
forall a b. a -> b -> b
`Prelude.seq` Maybe Text -> ()
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
queueNamePrefix

instance Data.ToHeaders ListQueues where
  toHeaders :: ListQueues -> ResponseHeaders
toHeaders = ResponseHeaders -> ListQueues -> ResponseHeaders
forall a b. a -> b -> a
Prelude.const ResponseHeaders
forall a. Monoid a => a
Prelude.mempty

instance Data.ToPath ListQueues where
  toPath :: ListQueues -> ByteString
toPath = ByteString -> ListQueues -> ByteString
forall a b. a -> b -> a
Prelude.const ByteString
"/"

instance Data.ToQuery ListQueues where
  toQuery :: ListQueues -> QueryString
toQuery ListQueues' {Maybe Int
Maybe Text
$sel:maxResults:ListQueues' :: ListQueues -> Maybe Int
$sel:nextToken:ListQueues' :: ListQueues -> Maybe Text
$sel:queueNamePrefix:ListQueues' :: ListQueues -> Maybe Text
maxResults :: Maybe Int
nextToken :: Maybe Text
queueNamePrefix :: Maybe Text
..} =
    [QueryString] -> QueryString
forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"Action"
          ByteString -> ByteString -> QueryString
forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: (ByteString
"ListQueues" :: Prelude.ByteString),
        ByteString
"Version"
          ByteString -> ByteString -> QueryString
forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: (ByteString
"2012-11-05" :: Prelude.ByteString),
        ByteString
"MaxResults" ByteString -> Maybe Int -> QueryString
forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Int
maxResults,
        ByteString
"NextToken" ByteString -> Maybe Text -> QueryString
forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
nextToken,
        ByteString
"QueueNamePrefix" ByteString -> Maybe Text -> QueryString
forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
queueNamePrefix
      ]

-- | A list of your queues.
--
-- /See:/ 'newListQueuesResponse' smart constructor.
data ListQueuesResponse = ListQueuesResponse'
  { -- | Pagination token to include in the next request. Token value is @null@
    -- if there are no additional results to request, or if you did not set
    -- @MaxResults@ in the request.
    ListQueuesResponse -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | A list of queue URLs, up to 1,000 entries, or the value of MaxResults
    -- that you sent in the request.
    ListQueuesResponse -> Maybe [Text]
queueUrls :: Prelude.Maybe [Prelude.Text],
    -- | The response's http status code.
    ListQueuesResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (ListQueuesResponse -> ListQueuesResponse -> Bool
(ListQueuesResponse -> ListQueuesResponse -> Bool)
-> (ListQueuesResponse -> ListQueuesResponse -> Bool)
-> Eq ListQueuesResponse
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ListQueuesResponse -> ListQueuesResponse -> Bool
== :: ListQueuesResponse -> ListQueuesResponse -> Bool
$c/= :: ListQueuesResponse -> ListQueuesResponse -> Bool
/= :: ListQueuesResponse -> ListQueuesResponse -> Bool
Prelude.Eq, ReadPrec [ListQueuesResponse]
ReadPrec ListQueuesResponse
Int -> ReadS ListQueuesResponse
ReadS [ListQueuesResponse]
(Int -> ReadS ListQueuesResponse)
-> ReadS [ListQueuesResponse]
-> ReadPrec ListQueuesResponse
-> ReadPrec [ListQueuesResponse]
-> Read ListQueuesResponse
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
$creadsPrec :: Int -> ReadS ListQueuesResponse
readsPrec :: Int -> ReadS ListQueuesResponse
$creadList :: ReadS [ListQueuesResponse]
readList :: ReadS [ListQueuesResponse]
$creadPrec :: ReadPrec ListQueuesResponse
readPrec :: ReadPrec ListQueuesResponse
$creadListPrec :: ReadPrec [ListQueuesResponse]
readListPrec :: ReadPrec [ListQueuesResponse]
Prelude.Read, Int -> ListQueuesResponse -> ShowS
[ListQueuesResponse] -> ShowS
ListQueuesResponse -> String
(Int -> ListQueuesResponse -> ShowS)
-> (ListQueuesResponse -> String)
-> ([ListQueuesResponse] -> ShowS)
-> Show ListQueuesResponse
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ListQueuesResponse -> ShowS
showsPrec :: Int -> ListQueuesResponse -> ShowS
$cshow :: ListQueuesResponse -> String
show :: ListQueuesResponse -> String
$cshowList :: [ListQueuesResponse] -> ShowS
showList :: [ListQueuesResponse] -> ShowS
Prelude.Show, (forall x. ListQueuesResponse -> Rep ListQueuesResponse x)
-> (forall x. Rep ListQueuesResponse x -> ListQueuesResponse)
-> Generic ListQueuesResponse
forall x. Rep ListQueuesResponse x -> ListQueuesResponse
forall x. ListQueuesResponse -> Rep ListQueuesResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. ListQueuesResponse -> Rep ListQueuesResponse x
from :: forall x. ListQueuesResponse -> Rep ListQueuesResponse x
$cto :: forall x. Rep ListQueuesResponse x -> ListQueuesResponse
to :: forall x. Rep ListQueuesResponse x -> ListQueuesResponse
Prelude.Generic)

-- |
-- Create a value of 'ListQueuesResponse' 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:
--
-- 'nextToken', 'listQueuesResponse_nextToken' - Pagination token to include in the next request. Token value is @null@
-- if there are no additional results to request, or if you did not set
-- @MaxResults@ in the request.
--
-- 'queueUrls', 'listQueuesResponse_queueUrls' - A list of queue URLs, up to 1,000 entries, or the value of MaxResults
-- that you sent in the request.
--
-- 'httpStatus', 'listQueuesResponse_httpStatus' - The response's http status code.
newListQueuesResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  ListQueuesResponse
newListQueuesResponse :: Int -> ListQueuesResponse
newListQueuesResponse Int
pHttpStatus_ =
  ListQueuesResponse'
    { nextToken :: Maybe Text
nextToken = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:queueUrls:ListQueuesResponse' :: Maybe [Text]
queueUrls = Maybe [Text]
forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:ListQueuesResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | Pagination token to include in the next request. Token value is @null@
-- if there are no additional results to request, or if you did not set
-- @MaxResults@ in the request.
listQueuesResponse_nextToken :: Lens.Lens' ListQueuesResponse (Prelude.Maybe Prelude.Text)
listQueuesResponse_nextToken :: Lens' ListQueuesResponse (Maybe Text)
listQueuesResponse_nextToken = (ListQueuesResponse -> Maybe Text)
-> (ListQueuesResponse -> Maybe Text -> ListQueuesResponse)
-> Lens' ListQueuesResponse (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListQueuesResponse' {Maybe Text
nextToken :: ListQueuesResponse -> Maybe Text
nextToken :: Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: ListQueuesResponse
s@ListQueuesResponse' {} Maybe Text
a -> ListQueuesResponse
s {nextToken = a} :: ListQueuesResponse)

-- | A list of queue URLs, up to 1,000 entries, or the value of MaxResults
-- that you sent in the request.
listQueuesResponse_queueUrls :: Lens.Lens' ListQueuesResponse (Prelude.Maybe [Prelude.Text])
listQueuesResponse_queueUrls :: Lens' ListQueuesResponse (Maybe [Text])
listQueuesResponse_queueUrls = (ListQueuesResponse -> Maybe [Text])
-> (ListQueuesResponse -> Maybe [Text] -> ListQueuesResponse)
-> Lens' ListQueuesResponse (Maybe [Text])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListQueuesResponse' {Maybe [Text]
$sel:queueUrls:ListQueuesResponse' :: ListQueuesResponse -> Maybe [Text]
queueUrls :: Maybe [Text]
queueUrls} -> Maybe [Text]
queueUrls) (\s :: ListQueuesResponse
s@ListQueuesResponse' {} Maybe [Text]
a -> ListQueuesResponse
s {queueUrls = a} :: ListQueuesResponse) ((Maybe [Text] -> f (Maybe [Text]))
 -> ListQueuesResponse -> f ListQueuesResponse)
-> ((Maybe [Text] -> f (Maybe [Text]))
    -> Maybe [Text] -> f (Maybe [Text]))
-> (Maybe [Text] -> f (Maybe [Text]))
-> ListQueuesResponse
-> f ListQueuesResponse
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
Iso [Text] [Text] [Text] [Text]
Lens.coerced

-- | The response's http status code.
listQueuesResponse_httpStatus :: Lens.Lens' ListQueuesResponse Prelude.Int
listQueuesResponse_httpStatus :: Lens' ListQueuesResponse Int
listQueuesResponse_httpStatus = (ListQueuesResponse -> Int)
-> (ListQueuesResponse -> Int -> ListQueuesResponse)
-> Lens' ListQueuesResponse Int
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListQueuesResponse' {Int
$sel:httpStatus:ListQueuesResponse' :: ListQueuesResponse -> Int
httpStatus :: Int
httpStatus} -> Int
httpStatus) (\s :: ListQueuesResponse
s@ListQueuesResponse' {} Int
a -> ListQueuesResponse
s {httpStatus = a} :: ListQueuesResponse)

instance Prelude.NFData ListQueuesResponse where
  rnf :: ListQueuesResponse -> ()
rnf ListQueuesResponse' {Int
Maybe [Text]
Maybe Text
nextToken :: ListQueuesResponse -> Maybe Text
$sel:queueUrls:ListQueuesResponse' :: ListQueuesResponse -> Maybe [Text]
$sel:httpStatus:ListQueuesResponse' :: ListQueuesResponse -> Int
nextToken :: Maybe Text
queueUrls :: Maybe [Text]
httpStatus :: Int
..} =
    Maybe Text -> ()
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
nextToken
      () -> () -> ()
forall a b. a -> b -> b
`Prelude.seq` Maybe [Text] -> ()
forall a. NFData a => a -> ()
Prelude.rnf Maybe [Text]
queueUrls
      () -> () -> ()
forall a b. a -> b -> b
`Prelude.seq` Int -> ()
forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus