{-# 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.SESV2.ListSuppressedDestinations
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Retrieves a list of email addresses that are on the suppression list for
-- your account.
module Amazonka.SESV2.ListSuppressedDestinations
  ( -- * Creating a Request
    ListSuppressedDestinations (..),
    newListSuppressedDestinations,

    -- * Request Lenses
    listSuppressedDestinations_endDate,
    listSuppressedDestinations_nextToken,
    listSuppressedDestinations_pageSize,
    listSuppressedDestinations_reasons,
    listSuppressedDestinations_startDate,

    -- * Destructuring the Response
    ListSuppressedDestinationsResponse (..),
    newListSuppressedDestinationsResponse,

    -- * Response Lenses
    listSuppressedDestinationsResponse_nextToken,
    listSuppressedDestinationsResponse_suppressedDestinationSummaries,
    listSuppressedDestinationsResponse_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.SESV2.Types

-- | A request to obtain a list of email destinations that are on the
-- suppression list for your account.
--
-- /See:/ 'newListSuppressedDestinations' smart constructor.
data ListSuppressedDestinations = ListSuppressedDestinations'
  { -- | Used to filter the list of suppressed email destinations so that it only
    -- includes addresses that were added to the list before a specific date.
    ListSuppressedDestinations -> Maybe POSIX
endDate :: Prelude.Maybe Data.POSIX,
    -- | A token returned from a previous call to @ListSuppressedDestinations@ to
    -- indicate the position in the list of suppressed email addresses.
    ListSuppressedDestinations -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | The number of results to show in a single call to
    -- @ListSuppressedDestinations@. If the number of results is larger than
    -- the number you specified in this parameter, then the response includes a
    -- @NextToken@ element, which you can use to obtain additional results.
    ListSuppressedDestinations -> Maybe Int
pageSize :: Prelude.Maybe Prelude.Int,
    -- | The factors that caused the email address to be added to .
    ListSuppressedDestinations -> Maybe [SuppressionListReason]
reasons :: Prelude.Maybe [SuppressionListReason],
    -- | Used to filter the list of suppressed email destinations so that it only
    -- includes addresses that were added to the list after a specific date.
    ListSuppressedDestinations -> Maybe POSIX
startDate :: Prelude.Maybe Data.POSIX
  }
  deriving (ListSuppressedDestinations -> ListSuppressedDestinations -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ListSuppressedDestinations -> ListSuppressedDestinations -> Bool
$c/= :: ListSuppressedDestinations -> ListSuppressedDestinations -> Bool
== :: ListSuppressedDestinations -> ListSuppressedDestinations -> Bool
$c== :: ListSuppressedDestinations -> ListSuppressedDestinations -> Bool
Prelude.Eq, ReadPrec [ListSuppressedDestinations]
ReadPrec ListSuppressedDestinations
Int -> ReadS ListSuppressedDestinations
ReadS [ListSuppressedDestinations]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ListSuppressedDestinations]
$creadListPrec :: ReadPrec [ListSuppressedDestinations]
readPrec :: ReadPrec ListSuppressedDestinations
$creadPrec :: ReadPrec ListSuppressedDestinations
readList :: ReadS [ListSuppressedDestinations]
$creadList :: ReadS [ListSuppressedDestinations]
readsPrec :: Int -> ReadS ListSuppressedDestinations
$creadsPrec :: Int -> ReadS ListSuppressedDestinations
Prelude.Read, Int -> ListSuppressedDestinations -> ShowS
[ListSuppressedDestinations] -> ShowS
ListSuppressedDestinations -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ListSuppressedDestinations] -> ShowS
$cshowList :: [ListSuppressedDestinations] -> ShowS
show :: ListSuppressedDestinations -> String
$cshow :: ListSuppressedDestinations -> String
showsPrec :: Int -> ListSuppressedDestinations -> ShowS
$cshowsPrec :: Int -> ListSuppressedDestinations -> ShowS
Prelude.Show, forall x.
Rep ListSuppressedDestinations x -> ListSuppressedDestinations
forall x.
ListSuppressedDestinations -> Rep ListSuppressedDestinations x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep ListSuppressedDestinations x -> ListSuppressedDestinations
$cfrom :: forall x.
ListSuppressedDestinations -> Rep ListSuppressedDestinations x
Prelude.Generic)

-- |
-- Create a value of 'ListSuppressedDestinations' 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:
--
-- 'endDate', 'listSuppressedDestinations_endDate' - Used to filter the list of suppressed email destinations so that it only
-- includes addresses that were added to the list before a specific date.
--
-- 'nextToken', 'listSuppressedDestinations_nextToken' - A token returned from a previous call to @ListSuppressedDestinations@ to
-- indicate the position in the list of suppressed email addresses.
--
-- 'pageSize', 'listSuppressedDestinations_pageSize' - The number of results to show in a single call to
-- @ListSuppressedDestinations@. If the number of results is larger than
-- the number you specified in this parameter, then the response includes a
-- @NextToken@ element, which you can use to obtain additional results.
--
-- 'reasons', 'listSuppressedDestinations_reasons' - The factors that caused the email address to be added to .
--
-- 'startDate', 'listSuppressedDestinations_startDate' - Used to filter the list of suppressed email destinations so that it only
-- includes addresses that were added to the list after a specific date.
newListSuppressedDestinations ::
  ListSuppressedDestinations
newListSuppressedDestinations :: ListSuppressedDestinations
newListSuppressedDestinations =
  ListSuppressedDestinations'
    { $sel:endDate:ListSuppressedDestinations' :: Maybe POSIX
endDate =
        forall a. Maybe a
Prelude.Nothing,
      $sel:nextToken:ListSuppressedDestinations' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing,
      $sel:pageSize:ListSuppressedDestinations' :: Maybe Int
pageSize = forall a. Maybe a
Prelude.Nothing,
      $sel:reasons:ListSuppressedDestinations' :: Maybe [SuppressionListReason]
reasons = forall a. Maybe a
Prelude.Nothing,
      $sel:startDate:ListSuppressedDestinations' :: Maybe POSIX
startDate = forall a. Maybe a
Prelude.Nothing
    }

-- | Used to filter the list of suppressed email destinations so that it only
-- includes addresses that were added to the list before a specific date.
listSuppressedDestinations_endDate :: Lens.Lens' ListSuppressedDestinations (Prelude.Maybe Prelude.UTCTime)
listSuppressedDestinations_endDate :: Lens' ListSuppressedDestinations (Maybe UTCTime)
listSuppressedDestinations_endDate = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListSuppressedDestinations' {Maybe POSIX
endDate :: Maybe POSIX
$sel:endDate:ListSuppressedDestinations' :: ListSuppressedDestinations -> Maybe POSIX
endDate} -> Maybe POSIX
endDate) (\s :: ListSuppressedDestinations
s@ListSuppressedDestinations' {} Maybe POSIX
a -> ListSuppressedDestinations
s {$sel:endDate:ListSuppressedDestinations' :: Maybe POSIX
endDate = Maybe POSIX
a} :: ListSuppressedDestinations) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. 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 forall (a :: Format). Iso' (Time a) UTCTime
Data._Time

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

-- | The number of results to show in a single call to
-- @ListSuppressedDestinations@. If the number of results is larger than
-- the number you specified in this parameter, then the response includes a
-- @NextToken@ element, which you can use to obtain additional results.
listSuppressedDestinations_pageSize :: Lens.Lens' ListSuppressedDestinations (Prelude.Maybe Prelude.Int)
listSuppressedDestinations_pageSize :: Lens' ListSuppressedDestinations (Maybe Int)
listSuppressedDestinations_pageSize = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListSuppressedDestinations' {Maybe Int
pageSize :: Maybe Int
$sel:pageSize:ListSuppressedDestinations' :: ListSuppressedDestinations -> Maybe Int
pageSize} -> Maybe Int
pageSize) (\s :: ListSuppressedDestinations
s@ListSuppressedDestinations' {} Maybe Int
a -> ListSuppressedDestinations
s {$sel:pageSize:ListSuppressedDestinations' :: Maybe Int
pageSize = Maybe Int
a} :: ListSuppressedDestinations)

-- | The factors that caused the email address to be added to .
listSuppressedDestinations_reasons :: Lens.Lens' ListSuppressedDestinations (Prelude.Maybe [SuppressionListReason])
listSuppressedDestinations_reasons :: Lens' ListSuppressedDestinations (Maybe [SuppressionListReason])
listSuppressedDestinations_reasons = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListSuppressedDestinations' {Maybe [SuppressionListReason]
reasons :: Maybe [SuppressionListReason]
$sel:reasons:ListSuppressedDestinations' :: ListSuppressedDestinations -> Maybe [SuppressionListReason]
reasons} -> Maybe [SuppressionListReason]
reasons) (\s :: ListSuppressedDestinations
s@ListSuppressedDestinations' {} Maybe [SuppressionListReason]
a -> ListSuppressedDestinations
s {$sel:reasons:ListSuppressedDestinations' :: Maybe [SuppressionListReason]
reasons = Maybe [SuppressionListReason]
a} :: ListSuppressedDestinations) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. 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 forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | Used to filter the list of suppressed email destinations so that it only
-- includes addresses that were added to the list after a specific date.
listSuppressedDestinations_startDate :: Lens.Lens' ListSuppressedDestinations (Prelude.Maybe Prelude.UTCTime)
listSuppressedDestinations_startDate :: Lens' ListSuppressedDestinations (Maybe UTCTime)
listSuppressedDestinations_startDate = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListSuppressedDestinations' {Maybe POSIX
startDate :: Maybe POSIX
$sel:startDate:ListSuppressedDestinations' :: ListSuppressedDestinations -> Maybe POSIX
startDate} -> Maybe POSIX
startDate) (\s :: ListSuppressedDestinations
s@ListSuppressedDestinations' {} Maybe POSIX
a -> ListSuppressedDestinations
s {$sel:startDate:ListSuppressedDestinations' :: Maybe POSIX
startDate = Maybe POSIX
a} :: ListSuppressedDestinations) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. 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 forall (a :: Format). Iso' (Time a) UTCTime
Data._Time

instance Core.AWSRequest ListSuppressedDestinations where
  type
    AWSResponse ListSuppressedDestinations =
      ListSuppressedDestinationsResponse
  request :: (Service -> Service)
-> ListSuppressedDestinations -> Request ListSuppressedDestinations
request Service -> Service
overrides =
    forall a. ToRequest a => Service -> a -> Request a
Request.get (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy ListSuppressedDestinations
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse ListSuppressedDestinations)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
      ( \Int
s ResponseHeaders
h Object
x ->
          Maybe Text
-> Maybe [SuppressedDestinationSummary]
-> Int
-> ListSuppressedDestinationsResponse
ListSuppressedDestinationsResponse'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"NextToken")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x
                            forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"SuppressedDestinationSummaries"
                            forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
                        )
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
      )

instance Prelude.Hashable ListSuppressedDestinations where
  hashWithSalt :: Int -> ListSuppressedDestinations -> Int
hashWithSalt Int
_salt ListSuppressedDestinations' {Maybe Int
Maybe [SuppressionListReason]
Maybe Text
Maybe POSIX
startDate :: Maybe POSIX
reasons :: Maybe [SuppressionListReason]
pageSize :: Maybe Int
nextToken :: Maybe Text
endDate :: Maybe POSIX
$sel:startDate:ListSuppressedDestinations' :: ListSuppressedDestinations -> Maybe POSIX
$sel:reasons:ListSuppressedDestinations' :: ListSuppressedDestinations -> Maybe [SuppressionListReason]
$sel:pageSize:ListSuppressedDestinations' :: ListSuppressedDestinations -> Maybe Int
$sel:nextToken:ListSuppressedDestinations' :: ListSuppressedDestinations -> Maybe Text
$sel:endDate:ListSuppressedDestinations' :: ListSuppressedDestinations -> Maybe POSIX
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
endDate
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
nextToken
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
pageSize
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [SuppressionListReason]
reasons
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
startDate

instance Prelude.NFData ListSuppressedDestinations where
  rnf :: ListSuppressedDestinations -> ()
rnf ListSuppressedDestinations' {Maybe Int
Maybe [SuppressionListReason]
Maybe Text
Maybe POSIX
startDate :: Maybe POSIX
reasons :: Maybe [SuppressionListReason]
pageSize :: Maybe Int
nextToken :: Maybe Text
endDate :: Maybe POSIX
$sel:startDate:ListSuppressedDestinations' :: ListSuppressedDestinations -> Maybe POSIX
$sel:reasons:ListSuppressedDestinations' :: ListSuppressedDestinations -> Maybe [SuppressionListReason]
$sel:pageSize:ListSuppressedDestinations' :: ListSuppressedDestinations -> Maybe Int
$sel:nextToken:ListSuppressedDestinations' :: ListSuppressedDestinations -> Maybe Text
$sel:endDate:ListSuppressedDestinations' :: ListSuppressedDestinations -> Maybe POSIX
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
endDate
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
nextToken
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Int
pageSize
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [SuppressionListReason]
reasons
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
startDate

instance Data.ToHeaders ListSuppressedDestinations where
  toHeaders :: ListSuppressedDestinations -> ResponseHeaders
toHeaders =
    forall a b. a -> b -> a
Prelude.const
      ( forall a. Monoid a => [a] -> a
Prelude.mconcat
          [ HeaderName
"Content-Type"
              forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Data.ToPath ListSuppressedDestinations where
  toPath :: ListSuppressedDestinations -> ByteString
toPath =
    forall a b. a -> b -> a
Prelude.const ByteString
"/v2/email/suppression/addresses"

instance Data.ToQuery ListSuppressedDestinations where
  toQuery :: ListSuppressedDestinations -> QueryString
toQuery ListSuppressedDestinations' {Maybe Int
Maybe [SuppressionListReason]
Maybe Text
Maybe POSIX
startDate :: Maybe POSIX
reasons :: Maybe [SuppressionListReason]
pageSize :: Maybe Int
nextToken :: Maybe Text
endDate :: Maybe POSIX
$sel:startDate:ListSuppressedDestinations' :: ListSuppressedDestinations -> Maybe POSIX
$sel:reasons:ListSuppressedDestinations' :: ListSuppressedDestinations -> Maybe [SuppressionListReason]
$sel:pageSize:ListSuppressedDestinations' :: ListSuppressedDestinations -> Maybe Int
$sel:nextToken:ListSuppressedDestinations' :: ListSuppressedDestinations -> Maybe Text
$sel:endDate:ListSuppressedDestinations' :: ListSuppressedDestinations -> Maybe POSIX
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"EndDate" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe POSIX
endDate,
        ByteString
"NextToken" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
nextToken,
        ByteString
"PageSize" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Int
pageSize,
        ByteString
"Reason"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: forall a. ToQuery a => a -> QueryString
Data.toQuery
            (forall a.
(IsList a, ToQuery (Item a)) =>
ByteString -> a -> QueryString
Data.toQueryList ByteString
"member" forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [SuppressionListReason]
reasons),
        ByteString
"StartDate" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe POSIX
startDate
      ]

-- | A list of suppressed email addresses.
--
-- /See:/ 'newListSuppressedDestinationsResponse' smart constructor.
data ListSuppressedDestinationsResponse = ListSuppressedDestinationsResponse'
  { -- | A token that indicates that there are additional email addresses on the
    -- suppression list for your account. To view additional suppressed
    -- addresses, issue another request to @ListSuppressedDestinations@, and
    -- pass this token in the @NextToken@ parameter.
    ListSuppressedDestinationsResponse -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | A list of summaries, each containing a summary for a suppressed email
    -- destination.
    ListSuppressedDestinationsResponse
-> Maybe [SuppressedDestinationSummary]
suppressedDestinationSummaries :: Prelude.Maybe [SuppressedDestinationSummary],
    -- | The response's http status code.
    ListSuppressedDestinationsResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (ListSuppressedDestinationsResponse
-> ListSuppressedDestinationsResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ListSuppressedDestinationsResponse
-> ListSuppressedDestinationsResponse -> Bool
$c/= :: ListSuppressedDestinationsResponse
-> ListSuppressedDestinationsResponse -> Bool
== :: ListSuppressedDestinationsResponse
-> ListSuppressedDestinationsResponse -> Bool
$c== :: ListSuppressedDestinationsResponse
-> ListSuppressedDestinationsResponse -> Bool
Prelude.Eq, ReadPrec [ListSuppressedDestinationsResponse]
ReadPrec ListSuppressedDestinationsResponse
Int -> ReadS ListSuppressedDestinationsResponse
ReadS [ListSuppressedDestinationsResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ListSuppressedDestinationsResponse]
$creadListPrec :: ReadPrec [ListSuppressedDestinationsResponse]
readPrec :: ReadPrec ListSuppressedDestinationsResponse
$creadPrec :: ReadPrec ListSuppressedDestinationsResponse
readList :: ReadS [ListSuppressedDestinationsResponse]
$creadList :: ReadS [ListSuppressedDestinationsResponse]
readsPrec :: Int -> ReadS ListSuppressedDestinationsResponse
$creadsPrec :: Int -> ReadS ListSuppressedDestinationsResponse
Prelude.Read, Int -> ListSuppressedDestinationsResponse -> ShowS
[ListSuppressedDestinationsResponse] -> ShowS
ListSuppressedDestinationsResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ListSuppressedDestinationsResponse] -> ShowS
$cshowList :: [ListSuppressedDestinationsResponse] -> ShowS
show :: ListSuppressedDestinationsResponse -> String
$cshow :: ListSuppressedDestinationsResponse -> String
showsPrec :: Int -> ListSuppressedDestinationsResponse -> ShowS
$cshowsPrec :: Int -> ListSuppressedDestinationsResponse -> ShowS
Prelude.Show, forall x.
Rep ListSuppressedDestinationsResponse x
-> ListSuppressedDestinationsResponse
forall x.
ListSuppressedDestinationsResponse
-> Rep ListSuppressedDestinationsResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep ListSuppressedDestinationsResponse x
-> ListSuppressedDestinationsResponse
$cfrom :: forall x.
ListSuppressedDestinationsResponse
-> Rep ListSuppressedDestinationsResponse x
Prelude.Generic)

-- |
-- Create a value of 'ListSuppressedDestinationsResponse' 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', 'listSuppressedDestinationsResponse_nextToken' - A token that indicates that there are additional email addresses on the
-- suppression list for your account. To view additional suppressed
-- addresses, issue another request to @ListSuppressedDestinations@, and
-- pass this token in the @NextToken@ parameter.
--
-- 'suppressedDestinationSummaries', 'listSuppressedDestinationsResponse_suppressedDestinationSummaries' - A list of summaries, each containing a summary for a suppressed email
-- destination.
--
-- 'httpStatus', 'listSuppressedDestinationsResponse_httpStatus' - The response's http status code.
newListSuppressedDestinationsResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  ListSuppressedDestinationsResponse
newListSuppressedDestinationsResponse :: Int -> ListSuppressedDestinationsResponse
newListSuppressedDestinationsResponse Int
pHttpStatus_ =
  ListSuppressedDestinationsResponse'
    { $sel:nextToken:ListSuppressedDestinationsResponse' :: Maybe Text
nextToken =
        forall a. Maybe a
Prelude.Nothing,
      $sel:suppressedDestinationSummaries:ListSuppressedDestinationsResponse' :: Maybe [SuppressedDestinationSummary]
suppressedDestinationSummaries =
        forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:ListSuppressedDestinationsResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | A token that indicates that there are additional email addresses on the
-- suppression list for your account. To view additional suppressed
-- addresses, issue another request to @ListSuppressedDestinations@, and
-- pass this token in the @NextToken@ parameter.
listSuppressedDestinationsResponse_nextToken :: Lens.Lens' ListSuppressedDestinationsResponse (Prelude.Maybe Prelude.Text)
listSuppressedDestinationsResponse_nextToken :: Lens' ListSuppressedDestinationsResponse (Maybe Text)
listSuppressedDestinationsResponse_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListSuppressedDestinationsResponse' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:ListSuppressedDestinationsResponse' :: ListSuppressedDestinationsResponse -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: ListSuppressedDestinationsResponse
s@ListSuppressedDestinationsResponse' {} Maybe Text
a -> ListSuppressedDestinationsResponse
s {$sel:nextToken:ListSuppressedDestinationsResponse' :: Maybe Text
nextToken = Maybe Text
a} :: ListSuppressedDestinationsResponse)

-- | A list of summaries, each containing a summary for a suppressed email
-- destination.
listSuppressedDestinationsResponse_suppressedDestinationSummaries :: Lens.Lens' ListSuppressedDestinationsResponse (Prelude.Maybe [SuppressedDestinationSummary])
listSuppressedDestinationsResponse_suppressedDestinationSummaries :: Lens'
  ListSuppressedDestinationsResponse
  (Maybe [SuppressedDestinationSummary])
listSuppressedDestinationsResponse_suppressedDestinationSummaries = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListSuppressedDestinationsResponse' {Maybe [SuppressedDestinationSummary]
suppressedDestinationSummaries :: Maybe [SuppressedDestinationSummary]
$sel:suppressedDestinationSummaries:ListSuppressedDestinationsResponse' :: ListSuppressedDestinationsResponse
-> Maybe [SuppressedDestinationSummary]
suppressedDestinationSummaries} -> Maybe [SuppressedDestinationSummary]
suppressedDestinationSummaries) (\s :: ListSuppressedDestinationsResponse
s@ListSuppressedDestinationsResponse' {} Maybe [SuppressedDestinationSummary]
a -> ListSuppressedDestinationsResponse
s {$sel:suppressedDestinationSummaries:ListSuppressedDestinationsResponse' :: Maybe [SuppressedDestinationSummary]
suppressedDestinationSummaries = Maybe [SuppressedDestinationSummary]
a} :: ListSuppressedDestinationsResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. 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 forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

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

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