{-# 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.PinpointEmail.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.
--
-- In Amazon Pinpoint, /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.PinpointEmail.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_tags,
    getConfigurationSetResponse_trackingOptions,
    getConfigurationSetResponse_httpStatus,
  )
where

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

-- | A request to obtain information about a configuration set.
--
-- /See:/ 'newGetConfigurationSet' smart constructor.
data GetConfigurationSet = GetConfigurationSet'
  { -- | The name of the configuration set that you want to obtain more
    -- information about.
    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 that you want to obtain more
-- information about.
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 that you want to obtain more
-- information about.
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 [Tag]
-> Maybe TrackingOptions
-> 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
"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.<*> (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
"/v1/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 Pinpoint 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 Pinpoint can send email
    -- that you send using the configuration set.
    GetConfigurationSetResponse -> Maybe SendingOptions
sendingOptions :: Prelude.Maybe SendingOptions,
    -- | 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,
    -- | 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 Pinpoint 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 Pinpoint can send email
-- that you send using the configuration set.
--
-- '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.
--
-- '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:tags:GetConfigurationSetResponse' :: Maybe [Tag]
tags = forall a. Maybe a
Prelude.Nothing,
      $sel:trackingOptions:GetConfigurationSetResponse' :: Maybe TrackingOptions
trackingOptions = 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 Pinpoint 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 Pinpoint 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 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)

-- | 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 DeliveryOptions
Maybe TrackingOptions
httpStatus :: Int
trackingOptions :: Maybe TrackingOptions
tags :: Maybe [Tag]
sendingOptions :: Maybe SendingOptions
reputationOptions :: Maybe ReputationOptions
deliveryOptions :: Maybe DeliveryOptions
configurationSetName :: Maybe Text
$sel:httpStatus:GetConfigurationSetResponse' :: GetConfigurationSetResponse -> Int
$sel:trackingOptions:GetConfigurationSetResponse' :: GetConfigurationSetResponse -> Maybe TrackingOptions
$sel:tags:GetConfigurationSetResponse' :: GetConfigurationSetResponse -> Maybe [Tag]
$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 [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 Int
httpStatus