{-# 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.ListCustomVerificationEmailTemplates
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Lists the existing custom verification email templates for your account
-- in the current AWS Region.
--
-- For more information about custom verification email templates, see
-- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/custom-verification-emails.html Using Custom Verification Email Templates>
-- in the /Amazon SES Developer Guide/.
--
-- You can execute this operation no more than once per second.
--
-- This operation returns paginated results.
module Amazonka.SES.ListCustomVerificationEmailTemplates
  ( -- * Creating a Request
    ListCustomVerificationEmailTemplates (..),
    newListCustomVerificationEmailTemplates,

    -- * Request Lenses
    listCustomVerificationEmailTemplates_maxResults,
    listCustomVerificationEmailTemplates_nextToken,

    -- * Destructuring the Response
    ListCustomVerificationEmailTemplatesResponse (..),
    newListCustomVerificationEmailTemplatesResponse,

    -- * Response Lenses
    listCustomVerificationEmailTemplatesResponse_customVerificationEmailTemplates,
    listCustomVerificationEmailTemplatesResponse_nextToken,
    listCustomVerificationEmailTemplatesResponse_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 existing custom verification email
-- templates for your account.
--
-- For more information about custom verification email templates, see
-- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/custom-verification-emails.html Using Custom Verification Email Templates>
-- in the /Amazon SES Developer Guide/.
--
-- /See:/ 'newListCustomVerificationEmailTemplates' smart constructor.
data ListCustomVerificationEmailTemplates = ListCustomVerificationEmailTemplates'
  { -- | The maximum number of custom verification email templates to return.
    -- This value must be at least 1 and less than or equal to 50. If you do
    -- not specify a value, or if you specify a value less than 1 or greater
    -- than 50, the operation will return up to 50 results.
    ListCustomVerificationEmailTemplates -> Maybe Natural
maxResults :: Prelude.Maybe Prelude.Natural,
    -- | An array the contains the name and creation time stamp for each template
    -- in your Amazon SES account.
    ListCustomVerificationEmailTemplates -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text
  }
  deriving (ListCustomVerificationEmailTemplates
-> ListCustomVerificationEmailTemplates -> Bool
(ListCustomVerificationEmailTemplates
 -> ListCustomVerificationEmailTemplates -> Bool)
-> (ListCustomVerificationEmailTemplates
    -> ListCustomVerificationEmailTemplates -> Bool)
-> Eq ListCustomVerificationEmailTemplates
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ListCustomVerificationEmailTemplates
-> ListCustomVerificationEmailTemplates -> Bool
== :: ListCustomVerificationEmailTemplates
-> ListCustomVerificationEmailTemplates -> Bool
$c/= :: ListCustomVerificationEmailTemplates
-> ListCustomVerificationEmailTemplates -> Bool
/= :: ListCustomVerificationEmailTemplates
-> ListCustomVerificationEmailTemplates -> Bool
Prelude.Eq, ReadPrec [ListCustomVerificationEmailTemplates]
ReadPrec ListCustomVerificationEmailTemplates
Int -> ReadS ListCustomVerificationEmailTemplates
ReadS [ListCustomVerificationEmailTemplates]
(Int -> ReadS ListCustomVerificationEmailTemplates)
-> ReadS [ListCustomVerificationEmailTemplates]
-> ReadPrec ListCustomVerificationEmailTemplates
-> ReadPrec [ListCustomVerificationEmailTemplates]
-> Read ListCustomVerificationEmailTemplates
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
$creadsPrec :: Int -> ReadS ListCustomVerificationEmailTemplates
readsPrec :: Int -> ReadS ListCustomVerificationEmailTemplates
$creadList :: ReadS [ListCustomVerificationEmailTemplates]
readList :: ReadS [ListCustomVerificationEmailTemplates]
$creadPrec :: ReadPrec ListCustomVerificationEmailTemplates
readPrec :: ReadPrec ListCustomVerificationEmailTemplates
$creadListPrec :: ReadPrec [ListCustomVerificationEmailTemplates]
readListPrec :: ReadPrec [ListCustomVerificationEmailTemplates]
Prelude.Read, Int -> ListCustomVerificationEmailTemplates -> ShowS
[ListCustomVerificationEmailTemplates] -> ShowS
ListCustomVerificationEmailTemplates -> String
(Int -> ListCustomVerificationEmailTemplates -> ShowS)
-> (ListCustomVerificationEmailTemplates -> String)
-> ([ListCustomVerificationEmailTemplates] -> ShowS)
-> Show ListCustomVerificationEmailTemplates
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ListCustomVerificationEmailTemplates -> ShowS
showsPrec :: Int -> ListCustomVerificationEmailTemplates -> ShowS
$cshow :: ListCustomVerificationEmailTemplates -> String
show :: ListCustomVerificationEmailTemplates -> String
$cshowList :: [ListCustomVerificationEmailTemplates] -> ShowS
showList :: [ListCustomVerificationEmailTemplates] -> ShowS
Prelude.Show, (forall x.
 ListCustomVerificationEmailTemplates
 -> Rep ListCustomVerificationEmailTemplates x)
-> (forall x.
    Rep ListCustomVerificationEmailTemplates x
    -> ListCustomVerificationEmailTemplates)
-> Generic ListCustomVerificationEmailTemplates
forall x.
Rep ListCustomVerificationEmailTemplates x
-> ListCustomVerificationEmailTemplates
forall x.
ListCustomVerificationEmailTemplates
-> Rep ListCustomVerificationEmailTemplates x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x.
ListCustomVerificationEmailTemplates
-> Rep ListCustomVerificationEmailTemplates x
from :: forall x.
ListCustomVerificationEmailTemplates
-> Rep ListCustomVerificationEmailTemplates x
$cto :: forall x.
Rep ListCustomVerificationEmailTemplates x
-> ListCustomVerificationEmailTemplates
to :: forall x.
Rep ListCustomVerificationEmailTemplates x
-> ListCustomVerificationEmailTemplates
Prelude.Generic)

-- |
-- Create a value of 'ListCustomVerificationEmailTemplates' 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', 'listCustomVerificationEmailTemplates_maxResults' - The maximum number of custom verification email templates to return.
-- This value must be at least 1 and less than or equal to 50. If you do
-- not specify a value, or if you specify a value less than 1 or greater
-- than 50, the operation will return up to 50 results.
--
-- 'nextToken', 'listCustomVerificationEmailTemplates_nextToken' - An array the contains the name and creation time stamp for each template
-- in your Amazon SES account.
newListCustomVerificationEmailTemplates ::
  ListCustomVerificationEmailTemplates
newListCustomVerificationEmailTemplates :: ListCustomVerificationEmailTemplates
newListCustomVerificationEmailTemplates =
  ListCustomVerificationEmailTemplates'
    { $sel:maxResults:ListCustomVerificationEmailTemplates' :: Maybe Natural
maxResults =
        Maybe Natural
forall a. Maybe a
Prelude.Nothing,
      $sel:nextToken:ListCustomVerificationEmailTemplates' :: Maybe Text
nextToken = Maybe Text
forall a. Maybe a
Prelude.Nothing
    }

-- | The maximum number of custom verification email templates to return.
-- This value must be at least 1 and less than or equal to 50. If you do
-- not specify a value, or if you specify a value less than 1 or greater
-- than 50, the operation will return up to 50 results.
listCustomVerificationEmailTemplates_maxResults :: Lens.Lens' ListCustomVerificationEmailTemplates (Prelude.Maybe Prelude.Natural)
listCustomVerificationEmailTemplates_maxResults :: Lens' ListCustomVerificationEmailTemplates (Maybe Natural)
listCustomVerificationEmailTemplates_maxResults = (ListCustomVerificationEmailTemplates -> Maybe Natural)
-> (ListCustomVerificationEmailTemplates
    -> Maybe Natural -> ListCustomVerificationEmailTemplates)
-> Lens' ListCustomVerificationEmailTemplates (Maybe Natural)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListCustomVerificationEmailTemplates' {Maybe Natural
$sel:maxResults:ListCustomVerificationEmailTemplates' :: ListCustomVerificationEmailTemplates -> Maybe Natural
maxResults :: Maybe Natural
maxResults} -> Maybe Natural
maxResults) (\s :: ListCustomVerificationEmailTemplates
s@ListCustomVerificationEmailTemplates' {} Maybe Natural
a -> ListCustomVerificationEmailTemplates
s {maxResults = a} :: ListCustomVerificationEmailTemplates)

-- | An array the contains the name and creation time stamp for each template
-- in your Amazon SES account.
listCustomVerificationEmailTemplates_nextToken :: Lens.Lens' ListCustomVerificationEmailTemplates (Prelude.Maybe Prelude.Text)
listCustomVerificationEmailTemplates_nextToken :: Lens' ListCustomVerificationEmailTemplates (Maybe Text)
listCustomVerificationEmailTemplates_nextToken = (ListCustomVerificationEmailTemplates -> Maybe Text)
-> (ListCustomVerificationEmailTemplates
    -> Maybe Text -> ListCustomVerificationEmailTemplates)
-> Lens' ListCustomVerificationEmailTemplates (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListCustomVerificationEmailTemplates' {Maybe Text
$sel:nextToken:ListCustomVerificationEmailTemplates' :: ListCustomVerificationEmailTemplates -> Maybe Text
nextToken :: Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: ListCustomVerificationEmailTemplates
s@ListCustomVerificationEmailTemplates' {} Maybe Text
a -> ListCustomVerificationEmailTemplates
s {nextToken = a} :: ListCustomVerificationEmailTemplates)

instance
  Core.AWSPager
    ListCustomVerificationEmailTemplates
  where
  page :: ListCustomVerificationEmailTemplates
-> AWSResponse ListCustomVerificationEmailTemplates
-> Maybe ListCustomVerificationEmailTemplates
page ListCustomVerificationEmailTemplates
rq AWSResponse ListCustomVerificationEmailTemplates
rs
    | Maybe Text -> Bool
forall a. AWSTruncated a => a -> Bool
Core.stop
        ( AWSResponse ListCustomVerificationEmailTemplates
ListCustomVerificationEmailTemplatesResponse
rs
            ListCustomVerificationEmailTemplatesResponse
-> Getting
     (First Text) ListCustomVerificationEmailTemplatesResponse Text
-> Maybe Text
forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? (Maybe Text -> Const (First Text) (Maybe Text))
-> ListCustomVerificationEmailTemplatesResponse
-> Const (First Text) ListCustomVerificationEmailTemplatesResponse
Lens' ListCustomVerificationEmailTemplatesResponse (Maybe Text)
listCustomVerificationEmailTemplatesResponse_nextToken
            ((Maybe Text -> Const (First Text) (Maybe Text))
 -> ListCustomVerificationEmailTemplatesResponse
 -> Const (First Text) ListCustomVerificationEmailTemplatesResponse)
-> ((Text -> Const (First Text) Text)
    -> Maybe Text -> Const (First Text) (Maybe Text))
-> Getting
     (First Text) ListCustomVerificationEmailTemplatesResponse 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 ListCustomVerificationEmailTemplates
forall a. Maybe a
Prelude.Nothing
    | Maybe [CustomVerificationEmailTemplate] -> Bool
forall a. AWSTruncated a => a -> Bool
Core.stop
        ( AWSResponse ListCustomVerificationEmailTemplates
ListCustomVerificationEmailTemplatesResponse
rs
            ListCustomVerificationEmailTemplatesResponse
-> Getting
     (First [CustomVerificationEmailTemplate])
     ListCustomVerificationEmailTemplatesResponse
     [CustomVerificationEmailTemplate]
-> Maybe [CustomVerificationEmailTemplate]
forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? (Maybe [CustomVerificationEmailTemplate]
 -> Const
      (First [CustomVerificationEmailTemplate])
      (Maybe [CustomVerificationEmailTemplate]))
-> ListCustomVerificationEmailTemplatesResponse
-> Const
     (First [CustomVerificationEmailTemplate])
     ListCustomVerificationEmailTemplatesResponse
Lens'
  ListCustomVerificationEmailTemplatesResponse
  (Maybe [CustomVerificationEmailTemplate])
listCustomVerificationEmailTemplatesResponse_customVerificationEmailTemplates
            ((Maybe [CustomVerificationEmailTemplate]
  -> Const
       (First [CustomVerificationEmailTemplate])
       (Maybe [CustomVerificationEmailTemplate]))
 -> ListCustomVerificationEmailTemplatesResponse
 -> Const
      (First [CustomVerificationEmailTemplate])
      ListCustomVerificationEmailTemplatesResponse)
-> (([CustomVerificationEmailTemplate]
     -> Const
          (First [CustomVerificationEmailTemplate])
          [CustomVerificationEmailTemplate])
    -> Maybe [CustomVerificationEmailTemplate]
    -> Const
         (First [CustomVerificationEmailTemplate])
         (Maybe [CustomVerificationEmailTemplate]))
-> Getting
     (First [CustomVerificationEmailTemplate])
     ListCustomVerificationEmailTemplatesResponse
     [CustomVerificationEmailTemplate]
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. ([CustomVerificationEmailTemplate]
 -> Const
      (First [CustomVerificationEmailTemplate])
      [CustomVerificationEmailTemplate])
-> Maybe [CustomVerificationEmailTemplate]
-> Const
     (First [CustomVerificationEmailTemplate])
     (Maybe [CustomVerificationEmailTemplate])
forall a b (p :: * -> * -> *) (f :: * -> *).
(Choice p, Applicative f) =>
p a (f b) -> p (Maybe a) (f (Maybe b))
Lens._Just
        ) =
        Maybe ListCustomVerificationEmailTemplates
forall a. Maybe a
Prelude.Nothing
    | Bool
Prelude.otherwise =
        ListCustomVerificationEmailTemplates
-> Maybe ListCustomVerificationEmailTemplates
forall a. a -> Maybe a
Prelude.Just
          (ListCustomVerificationEmailTemplates
 -> Maybe ListCustomVerificationEmailTemplates)
-> ListCustomVerificationEmailTemplates
-> Maybe ListCustomVerificationEmailTemplates
forall a b. (a -> b) -> a -> b
Prelude.$ ListCustomVerificationEmailTemplates
rq
          ListCustomVerificationEmailTemplates
-> (ListCustomVerificationEmailTemplates
    -> ListCustomVerificationEmailTemplates)
-> ListCustomVerificationEmailTemplates
forall a b. a -> (a -> b) -> b
Prelude.& (Maybe Text -> Identity (Maybe Text))
-> ListCustomVerificationEmailTemplates
-> Identity ListCustomVerificationEmailTemplates
Lens' ListCustomVerificationEmailTemplates (Maybe Text)
listCustomVerificationEmailTemplates_nextToken
          ((Maybe Text -> Identity (Maybe Text))
 -> ListCustomVerificationEmailTemplates
 -> Identity ListCustomVerificationEmailTemplates)
-> Maybe Text
-> ListCustomVerificationEmailTemplates
-> ListCustomVerificationEmailTemplates
forall s t a b. ASetter s t a b -> b -> s -> t
Lens..~ AWSResponse ListCustomVerificationEmailTemplates
ListCustomVerificationEmailTemplatesResponse
rs
          ListCustomVerificationEmailTemplatesResponse
-> Getting
     (First Text) ListCustomVerificationEmailTemplatesResponse Text
-> Maybe Text
forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? (Maybe Text -> Const (First Text) (Maybe Text))
-> ListCustomVerificationEmailTemplatesResponse
-> Const (First Text) ListCustomVerificationEmailTemplatesResponse
Lens' ListCustomVerificationEmailTemplatesResponse (Maybe Text)
listCustomVerificationEmailTemplatesResponse_nextToken
          ((Maybe Text -> Const (First Text) (Maybe Text))
 -> ListCustomVerificationEmailTemplatesResponse
 -> Const (First Text) ListCustomVerificationEmailTemplatesResponse)
-> ((Text -> Const (First Text) Text)
    -> Maybe Text -> Const (First Text) (Maybe Text))
-> Getting
     (First Text) ListCustomVerificationEmailTemplatesResponse 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
    ListCustomVerificationEmailTemplates
  where
  type
    AWSResponse ListCustomVerificationEmailTemplates =
      ListCustomVerificationEmailTemplatesResponse
  request :: (Service -> Service)
-> ListCustomVerificationEmailTemplates
-> Request ListCustomVerificationEmailTemplates
request Service -> Service
overrides =
    Service
-> ListCustomVerificationEmailTemplates
-> Request ListCustomVerificationEmailTemplates
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 ListCustomVerificationEmailTemplates
-> ClientResponse ClientBody
-> m (Either
        Error
        (ClientResponse
           (AWSResponse ListCustomVerificationEmailTemplates)))
response =
    Text
-> (Int
    -> ResponseHeaders
    -> [Node]
    -> Either
         String (AWSResponse ListCustomVerificationEmailTemplates))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy ListCustomVerificationEmailTemplates
-> ClientResponse ClientBody
-> m (Either
        Error
        (ClientResponse
           (AWSResponse ListCustomVerificationEmailTemplates)))
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
"ListCustomVerificationEmailTemplatesResult"
      ( \Int
s ResponseHeaders
h [Node]
x ->
          Maybe [CustomVerificationEmailTemplate]
-> Maybe Text
-> Int
-> ListCustomVerificationEmailTemplatesResponse
ListCustomVerificationEmailTemplatesResponse'
            (Maybe [CustomVerificationEmailTemplate]
 -> Maybe Text
 -> Int
 -> ListCustomVerificationEmailTemplatesResponse)
-> Either String (Maybe [CustomVerificationEmailTemplate])
-> Either
     String
     (Maybe Text -> Int -> ListCustomVerificationEmailTemplatesResponse)
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
"CustomVerificationEmailTemplates"
                            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 [CustomVerificationEmailTemplate]))
-> Either String (Maybe [CustomVerificationEmailTemplate])
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 [CustomVerificationEmailTemplate])
-> [Node]
-> Either String (Maybe [CustomVerificationEmailTemplate])
forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may (Text -> [Node] -> Either String [CustomVerificationEmailTemplate]
forall a. FromXML a => Text -> [Node] -> Either String [a]
Data.parseXMLList Text
"member")
                        )
            Either
  String
  (Maybe Text -> Int -> ListCustomVerificationEmailTemplatesResponse)
-> Either String (Maybe Text)
-> Either
     String (Int -> ListCustomVerificationEmailTemplatesResponse)
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 -> ListCustomVerificationEmailTemplatesResponse)
-> Either String Int
-> Either String ListCustomVerificationEmailTemplatesResponse
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
    ListCustomVerificationEmailTemplates
  where
  hashWithSalt :: Int -> ListCustomVerificationEmailTemplates -> Int
hashWithSalt
    Int
_salt
    ListCustomVerificationEmailTemplates' {Maybe Natural
Maybe Text
$sel:maxResults:ListCustomVerificationEmailTemplates' :: ListCustomVerificationEmailTemplates -> Maybe Natural
$sel:nextToken:ListCustomVerificationEmailTemplates' :: ListCustomVerificationEmailTemplates -> Maybe Text
maxResults :: Maybe Natural
nextToken :: Maybe Text
..} =
      Int
_salt
        Int -> Maybe Natural -> Int
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Natural
maxResults
        Int -> Maybe Text -> Int
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
nextToken

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

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

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

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

-- | A paginated list of custom verification email templates.
--
-- /See:/ 'newListCustomVerificationEmailTemplatesResponse' smart constructor.
data ListCustomVerificationEmailTemplatesResponse = ListCustomVerificationEmailTemplatesResponse'
  { -- | A list of the custom verification email templates that exist in your
    -- account.
    ListCustomVerificationEmailTemplatesResponse
-> Maybe [CustomVerificationEmailTemplate]
customVerificationEmailTemplates :: Prelude.Maybe [CustomVerificationEmailTemplate],
    -- | A token indicating that there are additional custom verification email
    -- templates available to be listed. Pass this token to a subsequent call
    -- to @ListTemplates@ to retrieve the next 50 custom verification email
    -- templates.
    ListCustomVerificationEmailTemplatesResponse -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    ListCustomVerificationEmailTemplatesResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (ListCustomVerificationEmailTemplatesResponse
-> ListCustomVerificationEmailTemplatesResponse -> Bool
(ListCustomVerificationEmailTemplatesResponse
 -> ListCustomVerificationEmailTemplatesResponse -> Bool)
-> (ListCustomVerificationEmailTemplatesResponse
    -> ListCustomVerificationEmailTemplatesResponse -> Bool)
-> Eq ListCustomVerificationEmailTemplatesResponse
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ListCustomVerificationEmailTemplatesResponse
-> ListCustomVerificationEmailTemplatesResponse -> Bool
== :: ListCustomVerificationEmailTemplatesResponse
-> ListCustomVerificationEmailTemplatesResponse -> Bool
$c/= :: ListCustomVerificationEmailTemplatesResponse
-> ListCustomVerificationEmailTemplatesResponse -> Bool
/= :: ListCustomVerificationEmailTemplatesResponse
-> ListCustomVerificationEmailTemplatesResponse -> Bool
Prelude.Eq, ReadPrec [ListCustomVerificationEmailTemplatesResponse]
ReadPrec ListCustomVerificationEmailTemplatesResponse
Int -> ReadS ListCustomVerificationEmailTemplatesResponse
ReadS [ListCustomVerificationEmailTemplatesResponse]
(Int -> ReadS ListCustomVerificationEmailTemplatesResponse)
-> ReadS [ListCustomVerificationEmailTemplatesResponse]
-> ReadPrec ListCustomVerificationEmailTemplatesResponse
-> ReadPrec [ListCustomVerificationEmailTemplatesResponse]
-> Read ListCustomVerificationEmailTemplatesResponse
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
$creadsPrec :: Int -> ReadS ListCustomVerificationEmailTemplatesResponse
readsPrec :: Int -> ReadS ListCustomVerificationEmailTemplatesResponse
$creadList :: ReadS [ListCustomVerificationEmailTemplatesResponse]
readList :: ReadS [ListCustomVerificationEmailTemplatesResponse]
$creadPrec :: ReadPrec ListCustomVerificationEmailTemplatesResponse
readPrec :: ReadPrec ListCustomVerificationEmailTemplatesResponse
$creadListPrec :: ReadPrec [ListCustomVerificationEmailTemplatesResponse]
readListPrec :: ReadPrec [ListCustomVerificationEmailTemplatesResponse]
Prelude.Read, Int -> ListCustomVerificationEmailTemplatesResponse -> ShowS
[ListCustomVerificationEmailTemplatesResponse] -> ShowS
ListCustomVerificationEmailTemplatesResponse -> String
(Int -> ListCustomVerificationEmailTemplatesResponse -> ShowS)
-> (ListCustomVerificationEmailTemplatesResponse -> String)
-> ([ListCustomVerificationEmailTemplatesResponse] -> ShowS)
-> Show ListCustomVerificationEmailTemplatesResponse
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ListCustomVerificationEmailTemplatesResponse -> ShowS
showsPrec :: Int -> ListCustomVerificationEmailTemplatesResponse -> ShowS
$cshow :: ListCustomVerificationEmailTemplatesResponse -> String
show :: ListCustomVerificationEmailTemplatesResponse -> String
$cshowList :: [ListCustomVerificationEmailTemplatesResponse] -> ShowS
showList :: [ListCustomVerificationEmailTemplatesResponse] -> ShowS
Prelude.Show, (forall x.
 ListCustomVerificationEmailTemplatesResponse
 -> Rep ListCustomVerificationEmailTemplatesResponse x)
-> (forall x.
    Rep ListCustomVerificationEmailTemplatesResponse x
    -> ListCustomVerificationEmailTemplatesResponse)
-> Generic ListCustomVerificationEmailTemplatesResponse
forall x.
Rep ListCustomVerificationEmailTemplatesResponse x
-> ListCustomVerificationEmailTemplatesResponse
forall x.
ListCustomVerificationEmailTemplatesResponse
-> Rep ListCustomVerificationEmailTemplatesResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x.
ListCustomVerificationEmailTemplatesResponse
-> Rep ListCustomVerificationEmailTemplatesResponse x
from :: forall x.
ListCustomVerificationEmailTemplatesResponse
-> Rep ListCustomVerificationEmailTemplatesResponse x
$cto :: forall x.
Rep ListCustomVerificationEmailTemplatesResponse x
-> ListCustomVerificationEmailTemplatesResponse
to :: forall x.
Rep ListCustomVerificationEmailTemplatesResponse x
-> ListCustomVerificationEmailTemplatesResponse
Prelude.Generic)

-- |
-- Create a value of 'ListCustomVerificationEmailTemplatesResponse' 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:
--
-- 'customVerificationEmailTemplates', 'listCustomVerificationEmailTemplatesResponse_customVerificationEmailTemplates' - A list of the custom verification email templates that exist in your
-- account.
--
-- 'nextToken', 'listCustomVerificationEmailTemplatesResponse_nextToken' - A token indicating that there are additional custom verification email
-- templates available to be listed. Pass this token to a subsequent call
-- to @ListTemplates@ to retrieve the next 50 custom verification email
-- templates.
--
-- 'httpStatus', 'listCustomVerificationEmailTemplatesResponse_httpStatus' - The response's http status code.
newListCustomVerificationEmailTemplatesResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  ListCustomVerificationEmailTemplatesResponse
newListCustomVerificationEmailTemplatesResponse :: Int -> ListCustomVerificationEmailTemplatesResponse
newListCustomVerificationEmailTemplatesResponse
  Int
pHttpStatus_ =
    ListCustomVerificationEmailTemplatesResponse'
      { $sel:customVerificationEmailTemplates:ListCustomVerificationEmailTemplatesResponse' :: Maybe [CustomVerificationEmailTemplate]
customVerificationEmailTemplates =
          Maybe [CustomVerificationEmailTemplate]
forall a. Maybe a
Prelude.Nothing,
        nextToken :: Maybe Text
nextToken = Maybe Text
forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:ListCustomVerificationEmailTemplatesResponse' :: Int
httpStatus = Int
pHttpStatus_
      }

-- | A list of the custom verification email templates that exist in your
-- account.
listCustomVerificationEmailTemplatesResponse_customVerificationEmailTemplates :: Lens.Lens' ListCustomVerificationEmailTemplatesResponse (Prelude.Maybe [CustomVerificationEmailTemplate])
listCustomVerificationEmailTemplatesResponse_customVerificationEmailTemplates :: Lens'
  ListCustomVerificationEmailTemplatesResponse
  (Maybe [CustomVerificationEmailTemplate])
listCustomVerificationEmailTemplatesResponse_customVerificationEmailTemplates = (ListCustomVerificationEmailTemplatesResponse
 -> Maybe [CustomVerificationEmailTemplate])
-> (ListCustomVerificationEmailTemplatesResponse
    -> Maybe [CustomVerificationEmailTemplate]
    -> ListCustomVerificationEmailTemplatesResponse)
-> Lens'
     ListCustomVerificationEmailTemplatesResponse
     (Maybe [CustomVerificationEmailTemplate])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListCustomVerificationEmailTemplatesResponse' {Maybe [CustomVerificationEmailTemplate]
$sel:customVerificationEmailTemplates:ListCustomVerificationEmailTemplatesResponse' :: ListCustomVerificationEmailTemplatesResponse
-> Maybe [CustomVerificationEmailTemplate]
customVerificationEmailTemplates :: Maybe [CustomVerificationEmailTemplate]
customVerificationEmailTemplates} -> Maybe [CustomVerificationEmailTemplate]
customVerificationEmailTemplates) (\s :: ListCustomVerificationEmailTemplatesResponse
s@ListCustomVerificationEmailTemplatesResponse' {} Maybe [CustomVerificationEmailTemplate]
a -> ListCustomVerificationEmailTemplatesResponse
s {customVerificationEmailTemplates = a} :: ListCustomVerificationEmailTemplatesResponse) ((Maybe [CustomVerificationEmailTemplate]
  -> f (Maybe [CustomVerificationEmailTemplate]))
 -> ListCustomVerificationEmailTemplatesResponse
 -> f ListCustomVerificationEmailTemplatesResponse)
-> ((Maybe [CustomVerificationEmailTemplate]
     -> f (Maybe [CustomVerificationEmailTemplate]))
    -> Maybe [CustomVerificationEmailTemplate]
    -> f (Maybe [CustomVerificationEmailTemplate]))
-> (Maybe [CustomVerificationEmailTemplate]
    -> f (Maybe [CustomVerificationEmailTemplate]))
-> ListCustomVerificationEmailTemplatesResponse
-> f ListCustomVerificationEmailTemplatesResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  [CustomVerificationEmailTemplate]
  [CustomVerificationEmailTemplate]
  [CustomVerificationEmailTemplate]
  [CustomVerificationEmailTemplate]
-> Iso
     (Maybe [CustomVerificationEmailTemplate])
     (Maybe [CustomVerificationEmailTemplate])
     (Maybe [CustomVerificationEmailTemplate])
     (Maybe [CustomVerificationEmailTemplate])
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
  [CustomVerificationEmailTemplate]
  [CustomVerificationEmailTemplate]
  [CustomVerificationEmailTemplate]
  [CustomVerificationEmailTemplate]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Iso
  [CustomVerificationEmailTemplate]
  [CustomVerificationEmailTemplate]
  [CustomVerificationEmailTemplate]
  [CustomVerificationEmailTemplate]
Lens.coerced

-- | A token indicating that there are additional custom verification email
-- templates available to be listed. Pass this token to a subsequent call
-- to @ListTemplates@ to retrieve the next 50 custom verification email
-- templates.
listCustomVerificationEmailTemplatesResponse_nextToken :: Lens.Lens' ListCustomVerificationEmailTemplatesResponse (Prelude.Maybe Prelude.Text)
listCustomVerificationEmailTemplatesResponse_nextToken :: Lens' ListCustomVerificationEmailTemplatesResponse (Maybe Text)
listCustomVerificationEmailTemplatesResponse_nextToken = (ListCustomVerificationEmailTemplatesResponse -> Maybe Text)
-> (ListCustomVerificationEmailTemplatesResponse
    -> Maybe Text -> ListCustomVerificationEmailTemplatesResponse)
-> Lens' ListCustomVerificationEmailTemplatesResponse (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListCustomVerificationEmailTemplatesResponse' {Maybe Text
nextToken :: ListCustomVerificationEmailTemplatesResponse -> Maybe Text
nextToken :: Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: ListCustomVerificationEmailTemplatesResponse
s@ListCustomVerificationEmailTemplatesResponse' {} Maybe Text
a -> ListCustomVerificationEmailTemplatesResponse
s {nextToken = a} :: ListCustomVerificationEmailTemplatesResponse)

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

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