{-# 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.SES.ListConfigurationSets
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Provides a list of the configuration sets associated with your Amazon
-- SES account in the current AWS Region. For information about using
-- configuration sets, see
-- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/monitor-sending-activity.html Monitoring Your Amazon SES Sending Activity>
-- in the /Amazon SES Developer Guide./
--
-- You can execute this operation no more than once per second. This
-- operation will return up to 1,000 configuration sets each time it is
-- run. If your Amazon SES account has more than 1,000 configuration sets,
-- this operation will also return a NextToken element. You can then
-- execute the @ListConfigurationSets@ operation again, passing the
-- @NextToken@ parameter and the value of the NextToken element to retrieve
-- additional results.
--
-- This operation returns paginated results.
module Amazonka.SES.ListConfigurationSets
  ( -- * Creating a Request
    ListConfigurationSets (..),
    newListConfigurationSets,

    -- * Request Lenses
    listConfigurationSets_maxItems,
    listConfigurationSets_nextToken,

    -- * Destructuring the Response
    ListConfigurationSetsResponse (..),
    newListConfigurationSetsResponse,

    -- * Response Lenses
    listConfigurationSetsResponse_configurationSets,
    listConfigurationSetsResponse_nextToken,
    listConfigurationSetsResponse_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.SES.Types

-- | Represents a request to list the configuration sets associated with your
-- AWS account. Configuration sets enable you to publish email sending
-- events. For information about using configuration sets, see the
-- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/monitor-sending-activity.html Amazon SES Developer Guide>.
--
-- /See:/ 'newListConfigurationSets' smart constructor.
data ListConfigurationSets = ListConfigurationSets'
  { -- | The number of configuration sets to return.
    ListConfigurationSets -> Maybe Int
maxItems :: Prelude.Maybe Prelude.Int,
    -- | A token returned from a previous call to @ListConfigurationSets@ to
    -- indicate the position of the configuration set in the configuration set
    -- list.
    ListConfigurationSets -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text
  }
  deriving (ListConfigurationSets -> ListConfigurationSets -> Bool
(ListConfigurationSets -> ListConfigurationSets -> Bool)
-> (ListConfigurationSets -> ListConfigurationSets -> Bool)
-> Eq ListConfigurationSets
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ListConfigurationSets -> ListConfigurationSets -> Bool
== :: ListConfigurationSets -> ListConfigurationSets -> Bool
$c/= :: ListConfigurationSets -> ListConfigurationSets -> Bool
/= :: ListConfigurationSets -> ListConfigurationSets -> Bool
Prelude.Eq, ReadPrec [ListConfigurationSets]
ReadPrec ListConfigurationSets
Int -> ReadS ListConfigurationSets
ReadS [ListConfigurationSets]
(Int -> ReadS ListConfigurationSets)
-> ReadS [ListConfigurationSets]
-> ReadPrec ListConfigurationSets
-> ReadPrec [ListConfigurationSets]
-> Read ListConfigurationSets
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
$creadsPrec :: Int -> ReadS ListConfigurationSets
readsPrec :: Int -> ReadS ListConfigurationSets
$creadList :: ReadS [ListConfigurationSets]
readList :: ReadS [ListConfigurationSets]
$creadPrec :: ReadPrec ListConfigurationSets
readPrec :: ReadPrec ListConfigurationSets
$creadListPrec :: ReadPrec [ListConfigurationSets]
readListPrec :: ReadPrec [ListConfigurationSets]
Prelude.Read, Int -> ListConfigurationSets -> ShowS
[ListConfigurationSets] -> ShowS
ListConfigurationSets -> String
(Int -> ListConfigurationSets -> ShowS)
-> (ListConfigurationSets -> String)
-> ([ListConfigurationSets] -> ShowS)
-> Show ListConfigurationSets
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ListConfigurationSets -> ShowS
showsPrec :: Int -> ListConfigurationSets -> ShowS
$cshow :: ListConfigurationSets -> String
show :: ListConfigurationSets -> String
$cshowList :: [ListConfigurationSets] -> ShowS
showList :: [ListConfigurationSets] -> ShowS
Prelude.Show, (forall x. ListConfigurationSets -> Rep ListConfigurationSets x)
-> (forall x. Rep ListConfigurationSets x -> ListConfigurationSets)
-> Generic ListConfigurationSets
forall x. Rep ListConfigurationSets x -> ListConfigurationSets
forall x. ListConfigurationSets -> Rep ListConfigurationSets x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. ListConfigurationSets -> Rep ListConfigurationSets x
from :: forall x. ListConfigurationSets -> Rep ListConfigurationSets x
$cto :: forall x. Rep ListConfigurationSets x -> ListConfigurationSets
to :: forall x. Rep ListConfigurationSets x -> ListConfigurationSets
Prelude.Generic)

-- |
-- Create a value of 'ListConfigurationSets' 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:
--
-- 'maxItems', 'listConfigurationSets_maxItems' - The number of configuration sets to return.
--
-- 'nextToken', 'listConfigurationSets_nextToken' - A token returned from a previous call to @ListConfigurationSets@ to
-- indicate the position of the configuration set in the configuration set
-- list.
newListConfigurationSets ::
  ListConfigurationSets
newListConfigurationSets :: ListConfigurationSets
newListConfigurationSets =
  ListConfigurationSets'
    { $sel:maxItems:ListConfigurationSets' :: Maybe Int
maxItems = Maybe Int
forall a. Maybe a
Prelude.Nothing,
      $sel:nextToken:ListConfigurationSets' :: Maybe Text
nextToken = Maybe Text
forall a. Maybe a
Prelude.Nothing
    }

-- | The number of configuration sets to return.
listConfigurationSets_maxItems :: Lens.Lens' ListConfigurationSets (Prelude.Maybe Prelude.Int)
listConfigurationSets_maxItems :: Lens' ListConfigurationSets (Maybe Int)
listConfigurationSets_maxItems = (ListConfigurationSets -> Maybe Int)
-> (ListConfigurationSets -> Maybe Int -> ListConfigurationSets)
-> Lens' ListConfigurationSets (Maybe Int)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListConfigurationSets' {Maybe Int
$sel:maxItems:ListConfigurationSets' :: ListConfigurationSets -> Maybe Int
maxItems :: Maybe Int
maxItems} -> Maybe Int
maxItems) (\s :: ListConfigurationSets
s@ListConfigurationSets' {} Maybe Int
a -> ListConfigurationSets
s {maxItems = a} :: ListConfigurationSets)

-- | A token returned from a previous call to @ListConfigurationSets@ to
-- indicate the position of the configuration set in the configuration set
-- list.
listConfigurationSets_nextToken :: Lens.Lens' ListConfigurationSets (Prelude.Maybe Prelude.Text)
listConfigurationSets_nextToken :: Lens' ListConfigurationSets (Maybe Text)
listConfigurationSets_nextToken = (ListConfigurationSets -> Maybe Text)
-> (ListConfigurationSets -> Maybe Text -> ListConfigurationSets)
-> Lens' ListConfigurationSets (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListConfigurationSets' {Maybe Text
$sel:nextToken:ListConfigurationSets' :: ListConfigurationSets -> Maybe Text
nextToken :: Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: ListConfigurationSets
s@ListConfigurationSets' {} Maybe Text
a -> ListConfigurationSets
s {nextToken = a} :: ListConfigurationSets)

instance Core.AWSPager ListConfigurationSets where
  page :: ListConfigurationSets
-> AWSResponse ListConfigurationSets -> Maybe ListConfigurationSets
page ListConfigurationSets
rq AWSResponse ListConfigurationSets
rs
    | Maybe Text -> Bool
forall a. AWSTruncated a => a -> Bool
Core.stop
        ( AWSResponse ListConfigurationSets
ListConfigurationSetsResponse
rs
            ListConfigurationSetsResponse
-> Getting (First Text) ListConfigurationSetsResponse Text
-> Maybe Text
forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? (Maybe Text -> Const (First Text) (Maybe Text))
-> ListConfigurationSetsResponse
-> Const (First Text) ListConfigurationSetsResponse
Lens' ListConfigurationSetsResponse (Maybe Text)
listConfigurationSetsResponse_nextToken
            ((Maybe Text -> Const (First Text) (Maybe Text))
 -> ListConfigurationSetsResponse
 -> Const (First Text) ListConfigurationSetsResponse)
-> ((Text -> Const (First Text) Text)
    -> Maybe Text -> Const (First Text) (Maybe Text))
-> Getting (First Text) ListConfigurationSetsResponse 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 ListConfigurationSets
forall a. Maybe a
Prelude.Nothing
    | Maybe [ConfigurationSet] -> Bool
forall a. AWSTruncated a => a -> Bool
Core.stop
        ( AWSResponse ListConfigurationSets
ListConfigurationSetsResponse
rs
            ListConfigurationSetsResponse
-> Getting
     (First [ConfigurationSet])
     ListConfigurationSetsResponse
     [ConfigurationSet]
-> Maybe [ConfigurationSet]
forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? (Maybe [ConfigurationSet]
 -> Const (First [ConfigurationSet]) (Maybe [ConfigurationSet]))
-> ListConfigurationSetsResponse
-> Const (First [ConfigurationSet]) ListConfigurationSetsResponse
Lens' ListConfigurationSetsResponse (Maybe [ConfigurationSet])
listConfigurationSetsResponse_configurationSets
            ((Maybe [ConfigurationSet]
  -> Const (First [ConfigurationSet]) (Maybe [ConfigurationSet]))
 -> ListConfigurationSetsResponse
 -> Const (First [ConfigurationSet]) ListConfigurationSetsResponse)
-> (([ConfigurationSet]
     -> Const (First [ConfigurationSet]) [ConfigurationSet])
    -> Maybe [ConfigurationSet]
    -> Const (First [ConfigurationSet]) (Maybe [ConfigurationSet]))
-> Getting
     (First [ConfigurationSet])
     ListConfigurationSetsResponse
     [ConfigurationSet]
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. ([ConfigurationSet]
 -> Const (First [ConfigurationSet]) [ConfigurationSet])
-> Maybe [ConfigurationSet]
-> Const (First [ConfigurationSet]) (Maybe [ConfigurationSet])
forall a b (p :: * -> * -> *) (f :: * -> *).
(Choice p, Applicative f) =>
p a (f b) -> p (Maybe a) (f (Maybe b))
Lens._Just
        ) =
        Maybe ListConfigurationSets
forall a. Maybe a
Prelude.Nothing
    | Bool
Prelude.otherwise =
        ListConfigurationSets -> Maybe ListConfigurationSets
forall a. a -> Maybe a
Prelude.Just
          (ListConfigurationSets -> Maybe ListConfigurationSets)
-> ListConfigurationSets -> Maybe ListConfigurationSets
forall a b. (a -> b) -> a -> b
Prelude.$ ListConfigurationSets
rq
          ListConfigurationSets
-> (ListConfigurationSets -> ListConfigurationSets)
-> ListConfigurationSets
forall a b. a -> (a -> b) -> b
Prelude.& (Maybe Text -> Identity (Maybe Text))
-> ListConfigurationSets -> Identity ListConfigurationSets
Lens' ListConfigurationSets (Maybe Text)
listConfigurationSets_nextToken
          ((Maybe Text -> Identity (Maybe Text))
 -> ListConfigurationSets -> Identity ListConfigurationSets)
-> Maybe Text -> ListConfigurationSets -> ListConfigurationSets
forall s t a b. ASetter s t a b -> b -> s -> t
Lens..~ AWSResponse ListConfigurationSets
ListConfigurationSetsResponse
rs
          ListConfigurationSetsResponse
-> Getting (First Text) ListConfigurationSetsResponse Text
-> Maybe Text
forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? (Maybe Text -> Const (First Text) (Maybe Text))
-> ListConfigurationSetsResponse
-> Const (First Text) ListConfigurationSetsResponse
Lens' ListConfigurationSetsResponse (Maybe Text)
listConfigurationSetsResponse_nextToken
          ((Maybe Text -> Const (First Text) (Maybe Text))
 -> ListConfigurationSetsResponse
 -> Const (First Text) ListConfigurationSetsResponse)
-> ((Text -> Const (First Text) Text)
    -> Maybe Text -> Const (First Text) (Maybe Text))
-> Getting (First Text) ListConfigurationSetsResponse 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 ListConfigurationSets where
  type
    AWSResponse ListConfigurationSets =
      ListConfigurationSetsResponse
  request :: (Service -> Service)
-> ListConfigurationSets -> Request ListConfigurationSets
request Service -> Service
overrides =
    Service -> ListConfigurationSets -> Request ListConfigurationSets
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 ListConfigurationSets
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse ListConfigurationSets)))
response =
    Text
-> (Int
    -> ResponseHeaders
    -> [Node]
    -> Either String (AWSResponse ListConfigurationSets))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy ListConfigurationSets
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse ListConfigurationSets)))
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
"ListConfigurationSetsResult"
      ( \Int
s ResponseHeaders
h [Node]
x ->
          Maybe [ConfigurationSet]
-> Maybe Text -> Int -> ListConfigurationSetsResponse
ListConfigurationSetsResponse'
            (Maybe [ConfigurationSet]
 -> Maybe Text -> Int -> ListConfigurationSetsResponse)
-> Either String (Maybe [ConfigurationSet])
-> Either
     String (Maybe Text -> Int -> ListConfigurationSetsResponse)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> ( [Node]
x
                            [Node] -> Text -> Either String (Maybe [Node])
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"ConfigurationSets"
                            Either String (Maybe [Node]) -> [Node] -> Either String [Node]
forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ [Node]
forall a. Monoid a => a
Prelude.mempty
                            Either String [Node]
-> ([Node] -> Either String (Maybe [ConfigurationSet]))
-> Either String (Maybe [ConfigurationSet])
forall a b.
Either String a -> (a -> Either String b) -> Either String b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
Prelude.>>= ([Node] -> Either String [ConfigurationSet])
-> [Node] -> Either String (Maybe [ConfigurationSet])
forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may (Text -> [Node] -> Either String [ConfigurationSet]
forall a. FromXML a => Text -> [Node] -> Either String [a]
Data.parseXMLList Text
"member")
                        )
            Either String (Maybe Text -> Int -> ListConfigurationSetsResponse)
-> Either String (Maybe Text)
-> Either String (Int -> ListConfigurationSetsResponse)
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]
x [Node] -> Text -> Either String (Maybe Text)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"NextToken")
            Either String (Int -> ListConfigurationSetsResponse)
-> Either String Int -> Either String ListConfigurationSetsResponse
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 ListConfigurationSets where
  hashWithSalt :: Int -> ListConfigurationSets -> Int
hashWithSalt Int
_salt ListConfigurationSets' {Maybe Int
Maybe Text
$sel:maxItems:ListConfigurationSets' :: ListConfigurationSets -> Maybe Int
$sel:nextToken:ListConfigurationSets' :: ListConfigurationSets -> Maybe Text
maxItems :: Maybe Int
nextToken :: Maybe Text
..} =
    Int
_salt
      Int -> Maybe Int -> Int
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
maxItems
      Int -> Maybe Text -> Int
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
nextToken

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

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

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

instance Data.ToQuery ListConfigurationSets where
  toQuery :: ListConfigurationSets -> QueryString
toQuery ListConfigurationSets' {Maybe Int
Maybe Text
$sel:maxItems:ListConfigurationSets' :: ListConfigurationSets -> Maybe Int
$sel:nextToken:ListConfigurationSets' :: ListConfigurationSets -> Maybe Text
maxItems :: Maybe Int
nextToken :: 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
"ListConfigurationSets" :: Prelude.ByteString),
        ByteString
"Version"
          ByteString -> ByteString -> QueryString
forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: (ByteString
"2010-12-01" :: Prelude.ByteString),
        ByteString
"MaxItems" ByteString -> Maybe Int -> QueryString
forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Int
maxItems,
        ByteString
"NextToken" ByteString -> Maybe Text -> QueryString
forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
nextToken
      ]

-- | A list of configuration sets associated with your AWS account.
-- Configuration sets enable you to publish email sending events. For
-- information about using configuration sets, see the
-- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/monitor-sending-activity.html Amazon SES Developer Guide>.
--
-- /See:/ 'newListConfigurationSetsResponse' smart constructor.
data ListConfigurationSetsResponse = ListConfigurationSetsResponse'
  { -- | A list of configuration sets.
    ListConfigurationSetsResponse -> Maybe [ConfigurationSet]
configurationSets :: Prelude.Maybe [ConfigurationSet],
    -- | A token indicating that there are additional configuration sets
    -- available to be listed. Pass this token to successive calls of
    -- @ListConfigurationSets@.
    ListConfigurationSetsResponse -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    ListConfigurationSetsResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (ListConfigurationSetsResponse
-> ListConfigurationSetsResponse -> Bool
(ListConfigurationSetsResponse
 -> ListConfigurationSetsResponse -> Bool)
-> (ListConfigurationSetsResponse
    -> ListConfigurationSetsResponse -> Bool)
-> Eq ListConfigurationSetsResponse
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ListConfigurationSetsResponse
-> ListConfigurationSetsResponse -> Bool
== :: ListConfigurationSetsResponse
-> ListConfigurationSetsResponse -> Bool
$c/= :: ListConfigurationSetsResponse
-> ListConfigurationSetsResponse -> Bool
/= :: ListConfigurationSetsResponse
-> ListConfigurationSetsResponse -> Bool
Prelude.Eq, ReadPrec [ListConfigurationSetsResponse]
ReadPrec ListConfigurationSetsResponse
Int -> ReadS ListConfigurationSetsResponse
ReadS [ListConfigurationSetsResponse]
(Int -> ReadS ListConfigurationSetsResponse)
-> ReadS [ListConfigurationSetsResponse]
-> ReadPrec ListConfigurationSetsResponse
-> ReadPrec [ListConfigurationSetsResponse]
-> Read ListConfigurationSetsResponse
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
$creadsPrec :: Int -> ReadS ListConfigurationSetsResponse
readsPrec :: Int -> ReadS ListConfigurationSetsResponse
$creadList :: ReadS [ListConfigurationSetsResponse]
readList :: ReadS [ListConfigurationSetsResponse]
$creadPrec :: ReadPrec ListConfigurationSetsResponse
readPrec :: ReadPrec ListConfigurationSetsResponse
$creadListPrec :: ReadPrec [ListConfigurationSetsResponse]
readListPrec :: ReadPrec [ListConfigurationSetsResponse]
Prelude.Read, Int -> ListConfigurationSetsResponse -> ShowS
[ListConfigurationSetsResponse] -> ShowS
ListConfigurationSetsResponse -> String
(Int -> ListConfigurationSetsResponse -> ShowS)
-> (ListConfigurationSetsResponse -> String)
-> ([ListConfigurationSetsResponse] -> ShowS)
-> Show ListConfigurationSetsResponse
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ListConfigurationSetsResponse -> ShowS
showsPrec :: Int -> ListConfigurationSetsResponse -> ShowS
$cshow :: ListConfigurationSetsResponse -> String
show :: ListConfigurationSetsResponse -> String
$cshowList :: [ListConfigurationSetsResponse] -> ShowS
showList :: [ListConfigurationSetsResponse] -> ShowS
Prelude.Show, (forall x.
 ListConfigurationSetsResponse
 -> Rep ListConfigurationSetsResponse x)
-> (forall x.
    Rep ListConfigurationSetsResponse x
    -> ListConfigurationSetsResponse)
-> Generic ListConfigurationSetsResponse
forall x.
Rep ListConfigurationSetsResponse x
-> ListConfigurationSetsResponse
forall x.
ListConfigurationSetsResponse
-> Rep ListConfigurationSetsResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x.
ListConfigurationSetsResponse
-> Rep ListConfigurationSetsResponse x
from :: forall x.
ListConfigurationSetsResponse
-> Rep ListConfigurationSetsResponse x
$cto :: forall x.
Rep ListConfigurationSetsResponse x
-> ListConfigurationSetsResponse
to :: forall x.
Rep ListConfigurationSetsResponse x
-> ListConfigurationSetsResponse
Prelude.Generic)

-- |
-- Create a value of 'ListConfigurationSetsResponse' 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:
--
-- 'configurationSets', 'listConfigurationSetsResponse_configurationSets' - A list of configuration sets.
--
-- 'nextToken', 'listConfigurationSetsResponse_nextToken' - A token indicating that there are additional configuration sets
-- available to be listed. Pass this token to successive calls of
-- @ListConfigurationSets@.
--
-- 'httpStatus', 'listConfigurationSetsResponse_httpStatus' - The response's http status code.
newListConfigurationSetsResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  ListConfigurationSetsResponse
newListConfigurationSetsResponse :: Int -> ListConfigurationSetsResponse
newListConfigurationSetsResponse Int
pHttpStatus_ =
  ListConfigurationSetsResponse'
    { $sel:configurationSets:ListConfigurationSetsResponse' :: Maybe [ConfigurationSet]
configurationSets =
        Maybe [ConfigurationSet]
forall a. Maybe a
Prelude.Nothing,
      nextToken :: Maybe Text
nextToken = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:ListConfigurationSetsResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | A list of configuration sets.
listConfigurationSetsResponse_configurationSets :: Lens.Lens' ListConfigurationSetsResponse (Prelude.Maybe [ConfigurationSet])
listConfigurationSetsResponse_configurationSets :: Lens' ListConfigurationSetsResponse (Maybe [ConfigurationSet])
listConfigurationSetsResponse_configurationSets = (ListConfigurationSetsResponse -> Maybe [ConfigurationSet])
-> (ListConfigurationSetsResponse
    -> Maybe [ConfigurationSet] -> ListConfigurationSetsResponse)
-> Lens' ListConfigurationSetsResponse (Maybe [ConfigurationSet])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListConfigurationSetsResponse' {Maybe [ConfigurationSet]
$sel:configurationSets:ListConfigurationSetsResponse' :: ListConfigurationSetsResponse -> Maybe [ConfigurationSet]
configurationSets :: Maybe [ConfigurationSet]
configurationSets} -> Maybe [ConfigurationSet]
configurationSets) (\s :: ListConfigurationSetsResponse
s@ListConfigurationSetsResponse' {} Maybe [ConfigurationSet]
a -> ListConfigurationSetsResponse
s {configurationSets = a} :: ListConfigurationSetsResponse) ((Maybe [ConfigurationSet] -> f (Maybe [ConfigurationSet]))
 -> ListConfigurationSetsResponse
 -> f ListConfigurationSetsResponse)
-> ((Maybe [ConfigurationSet] -> f (Maybe [ConfigurationSet]))
    -> Maybe [ConfigurationSet] -> f (Maybe [ConfigurationSet]))
-> (Maybe [ConfigurationSet] -> f (Maybe [ConfigurationSet]))
-> ListConfigurationSetsResponse
-> f ListConfigurationSetsResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  [ConfigurationSet]
  [ConfigurationSet]
  [ConfigurationSet]
  [ConfigurationSet]
-> Iso
     (Maybe [ConfigurationSet])
     (Maybe [ConfigurationSet])
     (Maybe [ConfigurationSet])
     (Maybe [ConfigurationSet])
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
  [ConfigurationSet]
  [ConfigurationSet]
  [ConfigurationSet]
  [ConfigurationSet]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Iso
  [ConfigurationSet]
  [ConfigurationSet]
  [ConfigurationSet]
  [ConfigurationSet]
Lens.coerced

-- | A token indicating that there are additional configuration sets
-- available to be listed. Pass this token to successive calls of
-- @ListConfigurationSets@.
listConfigurationSetsResponse_nextToken :: Lens.Lens' ListConfigurationSetsResponse (Prelude.Maybe Prelude.Text)
listConfigurationSetsResponse_nextToken :: Lens' ListConfigurationSetsResponse (Maybe Text)
listConfigurationSetsResponse_nextToken = (ListConfigurationSetsResponse -> Maybe Text)
-> (ListConfigurationSetsResponse
    -> Maybe Text -> ListConfigurationSetsResponse)
-> Lens' ListConfigurationSetsResponse (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListConfigurationSetsResponse' {Maybe Text
nextToken :: ListConfigurationSetsResponse -> Maybe Text
nextToken :: Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: ListConfigurationSetsResponse
s@ListConfigurationSetsResponse' {} Maybe Text
a -> ListConfigurationSetsResponse
s {nextToken = a} :: ListConfigurationSetsResponse)

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

instance Prelude.NFData ListConfigurationSetsResponse where
  rnf :: ListConfigurationSetsResponse -> ()
rnf ListConfigurationSetsResponse' {Int
Maybe [ConfigurationSet]
Maybe Text
nextToken :: ListConfigurationSetsResponse -> Maybe Text
$sel:configurationSets:ListConfigurationSetsResponse' :: ListConfigurationSetsResponse -> Maybe [ConfigurationSet]
$sel:httpStatus:ListConfigurationSetsResponse' :: ListConfigurationSetsResponse -> Int
configurationSets :: Maybe [ConfigurationSet]
nextToken :: Maybe Text
httpStatus :: Int
..} =
    Maybe [ConfigurationSet] -> ()
forall a. NFData a => a -> ()
Prelude.rnf Maybe [ConfigurationSet]
configurationSets
      () -> () -> ()
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` Int -> ()
forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus