{-# 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.GetConfigurationSet
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Get information about an existing configuration set, including the
-- dedicated IP pool that it\'s associated with, whether or not it\'s
-- enabled for sending email, and more.
--
-- /Configuration sets/ are groups of rules that you can apply to the
-- emails you send. You apply a configuration set to an email by including
-- a reference to the configuration set in the headers of the email. When
-- you apply a configuration set to an email, all of the rules in that
-- configuration set are applied to the email.
module Amazonka.SESV2.GetConfigurationSet
  ( -- * Creating a Request
    GetConfigurationSet (..),
    newGetConfigurationSet,

    -- * Request Lenses
    getConfigurationSet_configurationSetName,

    -- * Destructuring the Response
    GetConfigurationSetResponse (..),
    newGetConfigurationSetResponse,

    -- * Response Lenses
    getConfigurationSetResponse_configurationSetName,
    getConfigurationSetResponse_deliveryOptions,
    getConfigurationSetResponse_reputationOptions,
    getConfigurationSetResponse_sendingOptions,
    getConfigurationSetResponse_suppressionOptions,
    getConfigurationSetResponse_tags,
    getConfigurationSetResponse_trackingOptions,
    getConfigurationSetResponse_vdmOptions,
    getConfigurationSetResponse_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 information about a configuration set.
--
-- /See:/ 'newGetConfigurationSet' smart constructor.
data GetConfigurationSet = GetConfigurationSet'
  { -- | The name of the configuration set.
    GetConfigurationSet -> Text
configurationSetName :: Prelude.Text
  }
  deriving (GetConfigurationSet -> GetConfigurationSet -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetConfigurationSet -> GetConfigurationSet -> Bool
$c/= :: GetConfigurationSet -> GetConfigurationSet -> Bool
== :: GetConfigurationSet -> GetConfigurationSet -> Bool
$c== :: GetConfigurationSet -> GetConfigurationSet -> Bool
Prelude.Eq, ReadPrec [GetConfigurationSet]
ReadPrec GetConfigurationSet
Int -> ReadS GetConfigurationSet
ReadS [GetConfigurationSet]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetConfigurationSet]
$creadListPrec :: ReadPrec [GetConfigurationSet]
readPrec :: ReadPrec GetConfigurationSet
$creadPrec :: ReadPrec GetConfigurationSet
readList :: ReadS [GetConfigurationSet]
$creadList :: ReadS [GetConfigurationSet]
readsPrec :: Int -> ReadS GetConfigurationSet
$creadsPrec :: Int -> ReadS GetConfigurationSet
Prelude.Read, Int -> GetConfigurationSet -> ShowS
[GetConfigurationSet] -> ShowS
GetConfigurationSet -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetConfigurationSet] -> ShowS
$cshowList :: [GetConfigurationSet] -> ShowS
show :: GetConfigurationSet -> String
$cshow :: GetConfigurationSet -> String
showsPrec :: Int -> GetConfigurationSet -> ShowS
$cshowsPrec :: Int -> GetConfigurationSet -> ShowS
Prelude.Show, forall x. Rep GetConfigurationSet x -> GetConfigurationSet
forall x. GetConfigurationSet -> Rep GetConfigurationSet x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GetConfigurationSet x -> GetConfigurationSet
$cfrom :: forall x. GetConfigurationSet -> Rep GetConfigurationSet x
Prelude.Generic)

-- |
-- Create a value of 'GetConfigurationSet' 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:
--
-- 'configurationSetName', 'getConfigurationSet_configurationSetName' - The name of the configuration set.
newGetConfigurationSet ::
  -- | 'configurationSetName'
  Prelude.Text ->
  GetConfigurationSet
newGetConfigurationSet :: Text -> GetConfigurationSet
newGetConfigurationSet Text
pConfigurationSetName_ =
  GetConfigurationSet'
    { $sel:configurationSetName:GetConfigurationSet' :: Text
configurationSetName =
        Text
pConfigurationSetName_
    }

-- | The name of the configuration set.
getConfigurationSet_configurationSetName :: Lens.Lens' GetConfigurationSet Prelude.Text
getConfigurationSet_configurationSetName :: Lens' GetConfigurationSet Text
getConfigurationSet_configurationSetName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetConfigurationSet' {Text
configurationSetName :: Text
$sel:configurationSetName:GetConfigurationSet' :: GetConfigurationSet -> Text
configurationSetName} -> Text
configurationSetName) (\s :: GetConfigurationSet
s@GetConfigurationSet' {} Text
a -> GetConfigurationSet
s {$sel:configurationSetName:GetConfigurationSet' :: Text
configurationSetName = Text
a} :: GetConfigurationSet)

instance Core.AWSRequest GetConfigurationSet where
  type
    AWSResponse GetConfigurationSet =
      GetConfigurationSetResponse
  request :: (Service -> Service)
-> GetConfigurationSet -> Request GetConfigurationSet
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 GetConfigurationSet
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse GetConfigurationSet)))
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 DeliveryOptions
-> Maybe ReputationOptions
-> Maybe SendingOptions
-> Maybe SuppressionOptions
-> Maybe [Tag]
-> Maybe TrackingOptions
-> Maybe VdmOptions
-> Int
-> GetConfigurationSetResponse
GetConfigurationSetResponse'
            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
"ConfigurationSetName")
            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
"DeliveryOptions")
            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
"ReputationOptions")
            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
"SendingOptions")
            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
"SuppressionOptions")
            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
"Tags" 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.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"TrackingOptions")
            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
"VdmOptions")
            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 GetConfigurationSet where
  hashWithSalt :: Int -> GetConfigurationSet -> Int
hashWithSalt Int
_salt GetConfigurationSet' {Text
configurationSetName :: Text
$sel:configurationSetName:GetConfigurationSet' :: GetConfigurationSet -> Text
..} =
    Int
_salt forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
configurationSetName

instance Prelude.NFData GetConfigurationSet where
  rnf :: GetConfigurationSet -> ()
rnf GetConfigurationSet' {Text
configurationSetName :: Text
$sel:configurationSetName:GetConfigurationSet' :: GetConfigurationSet -> Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Text
configurationSetName

instance Data.ToHeaders GetConfigurationSet where
  toHeaders :: GetConfigurationSet -> 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 GetConfigurationSet where
  toPath :: GetConfigurationSet -> ByteString
toPath GetConfigurationSet' {Text
configurationSetName :: Text
$sel:configurationSetName:GetConfigurationSet' :: GetConfigurationSet -> Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"/v2/email/configuration-sets/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
configurationSetName
      ]

instance Data.ToQuery GetConfigurationSet where
  toQuery :: GetConfigurationSet -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty

-- | Information about a configuration set.
--
-- /See:/ 'newGetConfigurationSetResponse' smart constructor.
data GetConfigurationSetResponse = GetConfigurationSetResponse'
  { -- | The name of the configuration set.
    GetConfigurationSetResponse -> Maybe Text
configurationSetName :: Prelude.Maybe Prelude.Text,
    -- | An object that defines the dedicated IP pool that is used to send emails
    -- that you send using the configuration set.
    GetConfigurationSetResponse -> Maybe DeliveryOptions
deliveryOptions :: Prelude.Maybe DeliveryOptions,
    -- | An object that defines whether or not Amazon SES collects reputation
    -- metrics for the emails that you send that use the configuration set.
    GetConfigurationSetResponse -> Maybe ReputationOptions
reputationOptions :: Prelude.Maybe ReputationOptions,
    -- | An object that defines whether or not Amazon SES can send email that you
    -- send using the configuration set.
    GetConfigurationSetResponse -> Maybe SendingOptions
sendingOptions :: Prelude.Maybe SendingOptions,
    -- | An object that contains information about the suppression list
    -- preferences for your account.
    GetConfigurationSetResponse -> Maybe SuppressionOptions
suppressionOptions :: Prelude.Maybe SuppressionOptions,
    -- | An array of objects that define the tags (keys and values) that are
    -- associated with the configuration set.
    GetConfigurationSetResponse -> Maybe [Tag]
tags :: Prelude.Maybe [Tag],
    -- | An object that defines the open and click tracking options for emails
    -- that you send using the configuration set.
    GetConfigurationSetResponse -> Maybe TrackingOptions
trackingOptions :: Prelude.Maybe TrackingOptions,
    -- | An object that contains information about the VDM preferences for your
    -- configuration set.
    GetConfigurationSetResponse -> Maybe VdmOptions
vdmOptions :: Prelude.Maybe VdmOptions,
    -- | The response's http status code.
    GetConfigurationSetResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (GetConfigurationSetResponse -> GetConfigurationSetResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetConfigurationSetResponse -> GetConfigurationSetResponse -> Bool
$c/= :: GetConfigurationSetResponse -> GetConfigurationSetResponse -> Bool
== :: GetConfigurationSetResponse -> GetConfigurationSetResponse -> Bool
$c== :: GetConfigurationSetResponse -> GetConfigurationSetResponse -> Bool
Prelude.Eq, ReadPrec [GetConfigurationSetResponse]
ReadPrec GetConfigurationSetResponse
Int -> ReadS GetConfigurationSetResponse
ReadS [GetConfigurationSetResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetConfigurationSetResponse]
$creadListPrec :: ReadPrec [GetConfigurationSetResponse]
readPrec :: ReadPrec GetConfigurationSetResponse
$creadPrec :: ReadPrec GetConfigurationSetResponse
readList :: ReadS [GetConfigurationSetResponse]
$creadList :: ReadS [GetConfigurationSetResponse]
readsPrec :: Int -> ReadS GetConfigurationSetResponse
$creadsPrec :: Int -> ReadS GetConfigurationSetResponse
Prelude.Read, Int -> GetConfigurationSetResponse -> ShowS
[GetConfigurationSetResponse] -> ShowS
GetConfigurationSetResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetConfigurationSetResponse] -> ShowS
$cshowList :: [GetConfigurationSetResponse] -> ShowS
show :: GetConfigurationSetResponse -> String
$cshow :: GetConfigurationSetResponse -> String
showsPrec :: Int -> GetConfigurationSetResponse -> ShowS
$cshowsPrec :: Int -> GetConfigurationSetResponse -> ShowS
Prelude.Show, forall x.
Rep GetConfigurationSetResponse x -> GetConfigurationSetResponse
forall x.
GetConfigurationSetResponse -> Rep GetConfigurationSetResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep GetConfigurationSetResponse x -> GetConfigurationSetResponse
$cfrom :: forall x.
GetConfigurationSetResponse -> Rep GetConfigurationSetResponse x
Prelude.Generic)

-- |
-- Create a value of 'GetConfigurationSetResponse' 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:
--
-- 'configurationSetName', 'getConfigurationSetResponse_configurationSetName' - The name of the configuration set.
--
-- 'deliveryOptions', 'getConfigurationSetResponse_deliveryOptions' - An object that defines the dedicated IP pool that is used to send emails
-- that you send using the configuration set.
--
-- 'reputationOptions', 'getConfigurationSetResponse_reputationOptions' - An object that defines whether or not Amazon SES collects reputation
-- metrics for the emails that you send that use the configuration set.
--
-- 'sendingOptions', 'getConfigurationSetResponse_sendingOptions' - An object that defines whether or not Amazon SES can send email that you
-- send using the configuration set.
--
-- 'suppressionOptions', 'getConfigurationSetResponse_suppressionOptions' - An object that contains information about the suppression list
-- preferences for your account.
--
-- 'tags', 'getConfigurationSetResponse_tags' - An array of objects that define the tags (keys and values) that are
-- associated with the configuration set.
--
-- 'trackingOptions', 'getConfigurationSetResponse_trackingOptions' - An object that defines the open and click tracking options for emails
-- that you send using the configuration set.
--
-- 'vdmOptions', 'getConfigurationSetResponse_vdmOptions' - An object that contains information about the VDM preferences for your
-- configuration set.
--
-- 'httpStatus', 'getConfigurationSetResponse_httpStatus' - The response's http status code.
newGetConfigurationSetResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  GetConfigurationSetResponse
newGetConfigurationSetResponse :: Int -> GetConfigurationSetResponse
newGetConfigurationSetResponse Int
pHttpStatus_ =
  GetConfigurationSetResponse'
    { $sel:configurationSetName:GetConfigurationSetResponse' :: Maybe Text
configurationSetName =
        forall a. Maybe a
Prelude.Nothing,
      $sel:deliveryOptions:GetConfigurationSetResponse' :: Maybe DeliveryOptions
deliveryOptions = forall a. Maybe a
Prelude.Nothing,
      $sel:reputationOptions:GetConfigurationSetResponse' :: Maybe ReputationOptions
reputationOptions = forall a. Maybe a
Prelude.Nothing,
      $sel:sendingOptions:GetConfigurationSetResponse' :: Maybe SendingOptions
sendingOptions = forall a. Maybe a
Prelude.Nothing,
      $sel:suppressionOptions:GetConfigurationSetResponse' :: Maybe SuppressionOptions
suppressionOptions = forall a. Maybe a
Prelude.Nothing,
      $sel:tags:GetConfigurationSetResponse' :: Maybe [Tag]
tags = forall a. Maybe a
Prelude.Nothing,
      $sel:trackingOptions:GetConfigurationSetResponse' :: Maybe TrackingOptions
trackingOptions = forall a. Maybe a
Prelude.Nothing,
      $sel:vdmOptions:GetConfigurationSetResponse' :: Maybe VdmOptions
vdmOptions = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:GetConfigurationSetResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The name of the configuration set.
getConfigurationSetResponse_configurationSetName :: Lens.Lens' GetConfigurationSetResponse (Prelude.Maybe Prelude.Text)
getConfigurationSetResponse_configurationSetName :: Lens' GetConfigurationSetResponse (Maybe Text)
getConfigurationSetResponse_configurationSetName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetConfigurationSetResponse' {Maybe Text
configurationSetName :: Maybe Text
$sel:configurationSetName:GetConfigurationSetResponse' :: GetConfigurationSetResponse -> Maybe Text
configurationSetName} -> Maybe Text
configurationSetName) (\s :: GetConfigurationSetResponse
s@GetConfigurationSetResponse' {} Maybe Text
a -> GetConfigurationSetResponse
s {$sel:configurationSetName:GetConfigurationSetResponse' :: Maybe Text
configurationSetName = Maybe Text
a} :: GetConfigurationSetResponse)

-- | An object that defines the dedicated IP pool that is used to send emails
-- that you send using the configuration set.
getConfigurationSetResponse_deliveryOptions :: Lens.Lens' GetConfigurationSetResponse (Prelude.Maybe DeliveryOptions)
getConfigurationSetResponse_deliveryOptions :: Lens' GetConfigurationSetResponse (Maybe DeliveryOptions)
getConfigurationSetResponse_deliveryOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetConfigurationSetResponse' {Maybe DeliveryOptions
deliveryOptions :: Maybe DeliveryOptions
$sel:deliveryOptions:GetConfigurationSetResponse' :: GetConfigurationSetResponse -> Maybe DeliveryOptions
deliveryOptions} -> Maybe DeliveryOptions
deliveryOptions) (\s :: GetConfigurationSetResponse
s@GetConfigurationSetResponse' {} Maybe DeliveryOptions
a -> GetConfigurationSetResponse
s {$sel:deliveryOptions:GetConfigurationSetResponse' :: Maybe DeliveryOptions
deliveryOptions = Maybe DeliveryOptions
a} :: GetConfigurationSetResponse)

-- | An object that defines whether or not Amazon SES collects reputation
-- metrics for the emails that you send that use the configuration set.
getConfigurationSetResponse_reputationOptions :: Lens.Lens' GetConfigurationSetResponse (Prelude.Maybe ReputationOptions)
getConfigurationSetResponse_reputationOptions :: Lens' GetConfigurationSetResponse (Maybe ReputationOptions)
getConfigurationSetResponse_reputationOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetConfigurationSetResponse' {Maybe ReputationOptions
reputationOptions :: Maybe ReputationOptions
$sel:reputationOptions:GetConfigurationSetResponse' :: GetConfigurationSetResponse -> Maybe ReputationOptions
reputationOptions} -> Maybe ReputationOptions
reputationOptions) (\s :: GetConfigurationSetResponse
s@GetConfigurationSetResponse' {} Maybe ReputationOptions
a -> GetConfigurationSetResponse
s {$sel:reputationOptions:GetConfigurationSetResponse' :: Maybe ReputationOptions
reputationOptions = Maybe ReputationOptions
a} :: GetConfigurationSetResponse)

-- | An object that defines whether or not Amazon SES can send email that you
-- send using the configuration set.
getConfigurationSetResponse_sendingOptions :: Lens.Lens' GetConfigurationSetResponse (Prelude.Maybe SendingOptions)
getConfigurationSetResponse_sendingOptions :: Lens' GetConfigurationSetResponse (Maybe SendingOptions)
getConfigurationSetResponse_sendingOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetConfigurationSetResponse' {Maybe SendingOptions
sendingOptions :: Maybe SendingOptions
$sel:sendingOptions:GetConfigurationSetResponse' :: GetConfigurationSetResponse -> Maybe SendingOptions
sendingOptions} -> Maybe SendingOptions
sendingOptions) (\s :: GetConfigurationSetResponse
s@GetConfigurationSetResponse' {} Maybe SendingOptions
a -> GetConfigurationSetResponse
s {$sel:sendingOptions:GetConfigurationSetResponse' :: Maybe SendingOptions
sendingOptions = Maybe SendingOptions
a} :: GetConfigurationSetResponse)

-- | An object that contains information about the suppression list
-- preferences for your account.
getConfigurationSetResponse_suppressionOptions :: Lens.Lens' GetConfigurationSetResponse (Prelude.Maybe SuppressionOptions)
getConfigurationSetResponse_suppressionOptions :: Lens' GetConfigurationSetResponse (Maybe SuppressionOptions)
getConfigurationSetResponse_suppressionOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetConfigurationSetResponse' {Maybe SuppressionOptions
suppressionOptions :: Maybe SuppressionOptions
$sel:suppressionOptions:GetConfigurationSetResponse' :: GetConfigurationSetResponse -> Maybe SuppressionOptions
suppressionOptions} -> Maybe SuppressionOptions
suppressionOptions) (\s :: GetConfigurationSetResponse
s@GetConfigurationSetResponse' {} Maybe SuppressionOptions
a -> GetConfigurationSetResponse
s {$sel:suppressionOptions:GetConfigurationSetResponse' :: Maybe SuppressionOptions
suppressionOptions = Maybe SuppressionOptions
a} :: GetConfigurationSetResponse)

-- | An array of objects that define the tags (keys and values) that are
-- associated with the configuration set.
getConfigurationSetResponse_tags :: Lens.Lens' GetConfigurationSetResponse (Prelude.Maybe [Tag])
getConfigurationSetResponse_tags :: Lens' GetConfigurationSetResponse (Maybe [Tag])
getConfigurationSetResponse_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetConfigurationSetResponse' {Maybe [Tag]
tags :: Maybe [Tag]
$sel:tags:GetConfigurationSetResponse' :: GetConfigurationSetResponse -> Maybe [Tag]
tags} -> Maybe [Tag]
tags) (\s :: GetConfigurationSetResponse
s@GetConfigurationSetResponse' {} Maybe [Tag]
a -> GetConfigurationSetResponse
s {$sel:tags:GetConfigurationSetResponse' :: Maybe [Tag]
tags = Maybe [Tag]
a} :: GetConfigurationSetResponse) 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

-- | An object that defines the open and click tracking options for emails
-- that you send using the configuration set.
getConfigurationSetResponse_trackingOptions :: Lens.Lens' GetConfigurationSetResponse (Prelude.Maybe TrackingOptions)
getConfigurationSetResponse_trackingOptions :: Lens' GetConfigurationSetResponse (Maybe TrackingOptions)
getConfigurationSetResponse_trackingOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetConfigurationSetResponse' {Maybe TrackingOptions
trackingOptions :: Maybe TrackingOptions
$sel:trackingOptions:GetConfigurationSetResponse' :: GetConfigurationSetResponse -> Maybe TrackingOptions
trackingOptions} -> Maybe TrackingOptions
trackingOptions) (\s :: GetConfigurationSetResponse
s@GetConfigurationSetResponse' {} Maybe TrackingOptions
a -> GetConfigurationSetResponse
s {$sel:trackingOptions:GetConfigurationSetResponse' :: Maybe TrackingOptions
trackingOptions = Maybe TrackingOptions
a} :: GetConfigurationSetResponse)

-- | An object that contains information about the VDM preferences for your
-- configuration set.
getConfigurationSetResponse_vdmOptions :: Lens.Lens' GetConfigurationSetResponse (Prelude.Maybe VdmOptions)
getConfigurationSetResponse_vdmOptions :: Lens' GetConfigurationSetResponse (Maybe VdmOptions)
getConfigurationSetResponse_vdmOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetConfigurationSetResponse' {Maybe VdmOptions
vdmOptions :: Maybe VdmOptions
$sel:vdmOptions:GetConfigurationSetResponse' :: GetConfigurationSetResponse -> Maybe VdmOptions
vdmOptions} -> Maybe VdmOptions
vdmOptions) (\s :: GetConfigurationSetResponse
s@GetConfigurationSetResponse' {} Maybe VdmOptions
a -> GetConfigurationSetResponse
s {$sel:vdmOptions:GetConfigurationSetResponse' :: Maybe VdmOptions
vdmOptions = Maybe VdmOptions
a} :: GetConfigurationSetResponse)

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

instance Prelude.NFData GetConfigurationSetResponse where
  rnf :: GetConfigurationSetResponse -> ()
rnf GetConfigurationSetResponse' {Int
Maybe [Tag]
Maybe Text
Maybe ReputationOptions
Maybe SendingOptions
Maybe SuppressionOptions
Maybe DeliveryOptions
Maybe TrackingOptions
Maybe VdmOptions
httpStatus :: Int
vdmOptions :: Maybe VdmOptions
trackingOptions :: Maybe TrackingOptions
tags :: Maybe [Tag]
suppressionOptions :: Maybe SuppressionOptions
sendingOptions :: Maybe SendingOptions
reputationOptions :: Maybe ReputationOptions
deliveryOptions :: Maybe DeliveryOptions
configurationSetName :: Maybe Text
$sel:httpStatus:GetConfigurationSetResponse' :: GetConfigurationSetResponse -> Int
$sel:vdmOptions:GetConfigurationSetResponse' :: GetConfigurationSetResponse -> Maybe VdmOptions
$sel:trackingOptions:GetConfigurationSetResponse' :: GetConfigurationSetResponse -> Maybe TrackingOptions
$sel:tags:GetConfigurationSetResponse' :: GetConfigurationSetResponse -> Maybe [Tag]
$sel:suppressionOptions:GetConfigurationSetResponse' :: GetConfigurationSetResponse -> Maybe SuppressionOptions
$sel:sendingOptions:GetConfigurationSetResponse' :: GetConfigurationSetResponse -> Maybe SendingOptions
$sel:reputationOptions:GetConfigurationSetResponse' :: GetConfigurationSetResponse -> Maybe ReputationOptions
$sel:deliveryOptions:GetConfigurationSetResponse' :: GetConfigurationSetResponse -> Maybe DeliveryOptions
$sel:configurationSetName:GetConfigurationSetResponse' :: GetConfigurationSetResponse -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
configurationSetName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe DeliveryOptions
deliveryOptions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ReputationOptions
reputationOptions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe SendingOptions
sendingOptions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe SuppressionOptions
suppressionOptions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Tag]
tags
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe TrackingOptions
trackingOptions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe VdmOptions
vdmOptions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus