{-# 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-2021 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- 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_sendingOptions,
    getConfigurationSetResponse_configurationSetName,
    getConfigurationSetResponse_deliveryOptions,
    getConfigurationSetResponse_trackingOptions,
    getConfigurationSetResponse_reputationOptions,
    getConfigurationSetResponse_tags,
    getConfigurationSetResponse_httpStatus,
  )
where

import qualified Amazonka.Core as Core
import qualified Amazonka.Lens as Lens
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
(GetConfigurationSet -> GetConfigurationSet -> Bool)
-> (GetConfigurationSet -> GetConfigurationSet -> Bool)
-> Eq GetConfigurationSet
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]
(Int -> ReadS GetConfigurationSet)
-> ReadS [GetConfigurationSet]
-> ReadPrec GetConfigurationSet
-> ReadPrec [GetConfigurationSet]
-> Read 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
(Int -> GetConfigurationSet -> ShowS)
-> (GetConfigurationSet -> String)
-> ([GetConfigurationSet] -> ShowS)
-> Show GetConfigurationSet
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. GetConfigurationSet -> Rep GetConfigurationSet x)
-> (forall x. Rep GetConfigurationSet x -> GetConfigurationSet)
-> Generic GetConfigurationSet
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' :: Text -> GetConfigurationSet
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 :: (Text -> f Text) -> GetConfigurationSet -> f GetConfigurationSet
getConfigurationSet_configurationSetName = (GetConfigurationSet -> Text)
-> (GetConfigurationSet -> Text -> GetConfigurationSet)
-> Lens GetConfigurationSet GetConfigurationSet Text Text
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 :: GetConfigurationSet -> Request GetConfigurationSet
request = Service -> GetConfigurationSet -> Request GetConfigurationSet
forall a. ToRequest a => Service -> a -> Request a
Request.get Service
defaultService
  response :: Logger
-> Service
-> Proxy GetConfigurationSet
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse GetConfigurationSet)))
response =
    (Int
 -> ResponseHeaders
 -> Object
 -> Either String (AWSResponse GetConfigurationSet))
-> Logger
-> Service
-> Proxy GetConfigurationSet
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse GetConfigurationSet)))
forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> Logger
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
      ( \Int
s ResponseHeaders
h Object
x ->
          Maybe SendingOptions
-> Maybe Text
-> Maybe DeliveryOptions
-> Maybe TrackingOptions
-> Maybe ReputationOptions
-> Maybe [Tag]
-> Int
-> GetConfigurationSetResponse
GetConfigurationSetResponse'
            (Maybe SendingOptions
 -> Maybe Text
 -> Maybe DeliveryOptions
 -> Maybe TrackingOptions
 -> Maybe ReputationOptions
 -> Maybe [Tag]
 -> Int
 -> GetConfigurationSetResponse)
-> Either String (Maybe SendingOptions)
-> Either
     String
     (Maybe Text
      -> Maybe DeliveryOptions
      -> Maybe TrackingOptions
      -> Maybe ReputationOptions
      -> Maybe [Tag]
      -> Int
      -> GetConfigurationSetResponse)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x Object -> Text -> Either String (Maybe SendingOptions)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"SendingOptions")
            Either
  String
  (Maybe Text
   -> Maybe DeliveryOptions
   -> Maybe TrackingOptions
   -> Maybe ReputationOptions
   -> Maybe [Tag]
   -> Int
   -> GetConfigurationSetResponse)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe DeliveryOptions
      -> Maybe TrackingOptions
      -> Maybe ReputationOptions
      -> Maybe [Tag]
      -> Int
      -> GetConfigurationSetResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe Text)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"ConfigurationSetName")
            Either
  String
  (Maybe DeliveryOptions
   -> Maybe TrackingOptions
   -> Maybe ReputationOptions
   -> Maybe [Tag]
   -> Int
   -> GetConfigurationSetResponse)
-> Either String (Maybe DeliveryOptions)
-> Either
     String
     (Maybe TrackingOptions
      -> Maybe ReputationOptions
      -> Maybe [Tag]
      -> Int
      -> GetConfigurationSetResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe DeliveryOptions)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"DeliveryOptions")
            Either
  String
  (Maybe TrackingOptions
   -> Maybe ReputationOptions
   -> Maybe [Tag]
   -> Int
   -> GetConfigurationSetResponse)
-> Either String (Maybe TrackingOptions)
-> Either
     String
     (Maybe ReputationOptions
      -> Maybe [Tag] -> Int -> GetConfigurationSetResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe TrackingOptions)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"TrackingOptions")
            Either
  String
  (Maybe ReputationOptions
   -> Maybe [Tag] -> Int -> GetConfigurationSetResponse)
-> Either String (Maybe ReputationOptions)
-> Either
     String (Maybe [Tag] -> Int -> GetConfigurationSetResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe ReputationOptions)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"ReputationOptions")
            Either String (Maybe [Tag] -> Int -> GetConfigurationSetResponse)
-> Either String (Maybe [Tag])
-> Either String (Int -> GetConfigurationSetResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe (Maybe [Tag]))
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"Tags" Either String (Maybe (Maybe [Tag]))
-> Maybe [Tag] -> Either String (Maybe [Tag])
forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ Maybe [Tag]
forall a. Monoid a => a
Prelude.mempty)
            Either String (Int -> GetConfigurationSetResponse)
-> Either String Int -> Either String GetConfigurationSetResponse
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Int -> Either String Int
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 GetConfigurationSet

instance Prelude.NFData GetConfigurationSet

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

instance Core.ToPath GetConfigurationSet where
  toPath :: GetConfigurationSet -> ByteString
toPath GetConfigurationSet' {Text
configurationSetName :: Text
$sel:configurationSetName:GetConfigurationSet' :: GetConfigurationSet -> Text
..} =
    [ByteString] -> ByteString
forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"/v1/email/configuration-sets/",
        Text -> ByteString
forall a. ToByteString a => a -> ByteString
Core.toBS Text
configurationSetName
      ]

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

-- | Information about a configuration set.
--
-- /See:/ 'newGetConfigurationSetResponse' smart constructor.
data GetConfigurationSetResponse = GetConfigurationSetResponse'
  { -- | 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,
    -- | 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 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 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 array of objects that define the tags (keys and values) that are
    -- associated with the configuration set.
    GetConfigurationSetResponse -> Maybe [Tag]
tags :: Prelude.Maybe [Tag],
    -- | The response's http status code.
    GetConfigurationSetResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (GetConfigurationSetResponse -> GetConfigurationSetResponse -> Bool
(GetConfigurationSetResponse
 -> GetConfigurationSetResponse -> Bool)
-> (GetConfigurationSetResponse
    -> GetConfigurationSetResponse -> Bool)
-> Eq GetConfigurationSetResponse
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]
(Int -> ReadS GetConfigurationSetResponse)
-> ReadS [GetConfigurationSetResponse]
-> ReadPrec GetConfigurationSetResponse
-> ReadPrec [GetConfigurationSetResponse]
-> Read 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
(Int -> GetConfigurationSetResponse -> ShowS)
-> (GetConfigurationSetResponse -> String)
-> ([GetConfigurationSetResponse] -> ShowS)
-> Show GetConfigurationSetResponse
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.
 GetConfigurationSetResponse -> Rep GetConfigurationSetResponse x)
-> (forall x.
    Rep GetConfigurationSetResponse x -> GetConfigurationSetResponse)
-> Generic GetConfigurationSetResponse
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:
--
-- 'sendingOptions', 'getConfigurationSetResponse_sendingOptions' - An object that defines whether or not Amazon Pinpoint can send email
-- that you send using the configuration set.
--
-- '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.
--
-- 'trackingOptions', 'getConfigurationSetResponse_trackingOptions' - An object that defines the open and click tracking options for 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.
--
-- 'tags', 'getConfigurationSetResponse_tags' - An array of objects that define the tags (keys and values) that are
-- associated with the configuration set.
--
-- 'httpStatus', 'getConfigurationSetResponse_httpStatus' - The response's http status code.
newGetConfigurationSetResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  GetConfigurationSetResponse
newGetConfigurationSetResponse :: Int -> GetConfigurationSetResponse
newGetConfigurationSetResponse Int
pHttpStatus_ =
  GetConfigurationSetResponse' :: Maybe SendingOptions
-> Maybe Text
-> Maybe DeliveryOptions
-> Maybe TrackingOptions
-> Maybe ReputationOptions
-> Maybe [Tag]
-> Int
-> GetConfigurationSetResponse
GetConfigurationSetResponse'
    { $sel:sendingOptions:GetConfigurationSetResponse' :: Maybe SendingOptions
sendingOptions =
        Maybe SendingOptions
forall a. Maybe a
Prelude.Nothing,
      $sel:configurationSetName:GetConfigurationSetResponse' :: Maybe Text
configurationSetName = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:deliveryOptions:GetConfigurationSetResponse' :: Maybe DeliveryOptions
deliveryOptions = Maybe DeliveryOptions
forall a. Maybe a
Prelude.Nothing,
      $sel:trackingOptions:GetConfigurationSetResponse' :: Maybe TrackingOptions
trackingOptions = Maybe TrackingOptions
forall a. Maybe a
Prelude.Nothing,
      $sel:reputationOptions:GetConfigurationSetResponse' :: Maybe ReputationOptions
reputationOptions = Maybe ReputationOptions
forall a. Maybe a
Prelude.Nothing,
      $sel:tags:GetConfigurationSetResponse' :: Maybe [Tag]
tags = Maybe [Tag]
forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:GetConfigurationSetResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | 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 :: (Maybe SendingOptions -> f (Maybe SendingOptions))
-> GetConfigurationSetResponse -> f GetConfigurationSetResponse
getConfigurationSetResponse_sendingOptions = (GetConfigurationSetResponse -> Maybe SendingOptions)
-> (GetConfigurationSetResponse
    -> Maybe SendingOptions -> GetConfigurationSetResponse)
-> Lens
     GetConfigurationSetResponse
     GetConfigurationSetResponse
     (Maybe SendingOptions)
     (Maybe 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)

-- | The name of the configuration set.
getConfigurationSetResponse_configurationSetName :: Lens.Lens' GetConfigurationSetResponse (Prelude.Maybe Prelude.Text)
getConfigurationSetResponse_configurationSetName :: (Maybe Text -> f (Maybe Text))
-> GetConfigurationSetResponse -> f GetConfigurationSetResponse
getConfigurationSetResponse_configurationSetName = (GetConfigurationSetResponse -> Maybe Text)
-> (GetConfigurationSetResponse
    -> Maybe Text -> GetConfigurationSetResponse)
-> Lens
     GetConfigurationSetResponse
     GetConfigurationSetResponse
     (Maybe Text)
     (Maybe Text)
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 :: (Maybe DeliveryOptions -> f (Maybe DeliveryOptions))
-> GetConfigurationSetResponse -> f GetConfigurationSetResponse
getConfigurationSetResponse_deliveryOptions = (GetConfigurationSetResponse -> Maybe DeliveryOptions)
-> (GetConfigurationSetResponse
    -> Maybe DeliveryOptions -> GetConfigurationSetResponse)
-> Lens
     GetConfigurationSetResponse
     GetConfigurationSetResponse
     (Maybe DeliveryOptions)
     (Maybe 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 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 :: (Maybe TrackingOptions -> f (Maybe TrackingOptions))
-> GetConfigurationSetResponse -> f GetConfigurationSetResponse
getConfigurationSetResponse_trackingOptions = (GetConfigurationSetResponse -> Maybe TrackingOptions)
-> (GetConfigurationSetResponse
    -> Maybe TrackingOptions -> GetConfigurationSetResponse)
-> Lens
     GetConfigurationSetResponse
     GetConfigurationSetResponse
     (Maybe TrackingOptions)
     (Maybe 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 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 :: (Maybe ReputationOptions -> f (Maybe ReputationOptions))
-> GetConfigurationSetResponse -> f GetConfigurationSetResponse
getConfigurationSetResponse_reputationOptions = (GetConfigurationSetResponse -> Maybe ReputationOptions)
-> (GetConfigurationSetResponse
    -> Maybe ReputationOptions -> GetConfigurationSetResponse)
-> Lens
     GetConfigurationSetResponse
     GetConfigurationSetResponse
     (Maybe ReputationOptions)
     (Maybe 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 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 :: (Maybe [Tag] -> f (Maybe [Tag]))
-> GetConfigurationSetResponse -> f GetConfigurationSetResponse
getConfigurationSetResponse_tags = (GetConfigurationSetResponse -> Maybe [Tag])
-> (GetConfigurationSetResponse
    -> Maybe [Tag] -> GetConfigurationSetResponse)
-> Lens
     GetConfigurationSetResponse
     GetConfigurationSetResponse
     (Maybe [Tag])
     (Maybe [Tag])
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) ((Maybe [Tag] -> f (Maybe [Tag]))
 -> GetConfigurationSetResponse -> f GetConfigurationSetResponse)
-> ((Maybe [Tag] -> f (Maybe [Tag]))
    -> Maybe [Tag] -> f (Maybe [Tag]))
-> (Maybe [Tag] -> f (Maybe [Tag]))
-> GetConfigurationSetResponse
-> f GetConfigurationSetResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso [Tag] [Tag] [Tag] [Tag]
-> Iso (Maybe [Tag]) (Maybe [Tag]) (Maybe [Tag]) (Maybe [Tag])
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 [Tag] [Tag] [Tag] [Tag]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The response's http status code.
getConfigurationSetResponse_httpStatus :: Lens.Lens' GetConfigurationSetResponse Prelude.Int
getConfigurationSetResponse_httpStatus :: (Int -> f Int)
-> GetConfigurationSetResponse -> f GetConfigurationSetResponse
getConfigurationSetResponse_httpStatus = (GetConfigurationSetResponse -> Int)
-> (GetConfigurationSetResponse
    -> Int -> GetConfigurationSetResponse)
-> Lens
     GetConfigurationSetResponse GetConfigurationSetResponse Int Int
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