{-# 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.GetDeliverabilityDashboardOptions
-- 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)
--
-- Retrieve information about the status of the Deliverability dashboard
-- for your account. When the Deliverability dashboard is enabled, you gain
-- access to reputation, deliverability, and other metrics for the domains
-- that you use to send email. You also gain the ability to perform
-- predictive inbox placement tests.
--
-- When you use the Deliverability dashboard, you pay a monthly
-- subscription charge, in addition to any other fees that you accrue by
-- using Amazon SES and other Amazon Web Services services. For more
-- information about the features and cost of a Deliverability dashboard
-- subscription, see
-- <http://aws.amazon.com/ses/pricing/ Amazon SES Pricing>.
module Amazonka.SESV2.GetDeliverabilityDashboardOptions
  ( -- * Creating a Request
    GetDeliverabilityDashboardOptions (..),
    newGetDeliverabilityDashboardOptions,

    -- * Destructuring the Response
    GetDeliverabilityDashboardOptionsResponse (..),
    newGetDeliverabilityDashboardOptionsResponse,

    -- * Response Lenses
    getDeliverabilityDashboardOptionsResponse_accountStatus,
    getDeliverabilityDashboardOptionsResponse_subscriptionExpiryDate,
    getDeliverabilityDashboardOptionsResponse_activeSubscribedDomains,
    getDeliverabilityDashboardOptionsResponse_pendingExpirationSubscribedDomains,
    getDeliverabilityDashboardOptionsResponse_httpStatus,
    getDeliverabilityDashboardOptionsResponse_dashboardEnabled,
  )
where

import qualified Amazonka.Core as Core
import qualified Amazonka.Lens as Lens
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
import Amazonka.SESV2.Types

-- | Retrieve information about the status of the Deliverability dashboard
-- for your Amazon Web Services account. When the Deliverability dashboard
-- is enabled, you gain access to reputation, deliverability, and other
-- metrics for your domains. You also gain the ability to perform
-- predictive inbox placement tests.
--
-- When you use the Deliverability dashboard, you pay a monthly
-- subscription charge, in addition to any other fees that you accrue by
-- using Amazon SES and other Amazon Web Services services. For more
-- information about the features and cost of a Deliverability dashboard
-- subscription, see
-- <http://aws.amazon.com/pinpoint/pricing/ Amazon Pinpoint Pricing>.
--
-- /See:/ 'newGetDeliverabilityDashboardOptions' smart constructor.
data GetDeliverabilityDashboardOptions = GetDeliverabilityDashboardOptions'
  {
  }
  deriving (GetDeliverabilityDashboardOptions
-> GetDeliverabilityDashboardOptions -> Bool
(GetDeliverabilityDashboardOptions
 -> GetDeliverabilityDashboardOptions -> Bool)
-> (GetDeliverabilityDashboardOptions
    -> GetDeliverabilityDashboardOptions -> Bool)
-> Eq GetDeliverabilityDashboardOptions
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetDeliverabilityDashboardOptions
-> GetDeliverabilityDashboardOptions -> Bool
$c/= :: GetDeliverabilityDashboardOptions
-> GetDeliverabilityDashboardOptions -> Bool
== :: GetDeliverabilityDashboardOptions
-> GetDeliverabilityDashboardOptions -> Bool
$c== :: GetDeliverabilityDashboardOptions
-> GetDeliverabilityDashboardOptions -> Bool
Prelude.Eq, ReadPrec [GetDeliverabilityDashboardOptions]
ReadPrec GetDeliverabilityDashboardOptions
Int -> ReadS GetDeliverabilityDashboardOptions
ReadS [GetDeliverabilityDashboardOptions]
(Int -> ReadS GetDeliverabilityDashboardOptions)
-> ReadS [GetDeliverabilityDashboardOptions]
-> ReadPrec GetDeliverabilityDashboardOptions
-> ReadPrec [GetDeliverabilityDashboardOptions]
-> Read GetDeliverabilityDashboardOptions
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetDeliverabilityDashboardOptions]
$creadListPrec :: ReadPrec [GetDeliverabilityDashboardOptions]
readPrec :: ReadPrec GetDeliverabilityDashboardOptions
$creadPrec :: ReadPrec GetDeliverabilityDashboardOptions
readList :: ReadS [GetDeliverabilityDashboardOptions]
$creadList :: ReadS [GetDeliverabilityDashboardOptions]
readsPrec :: Int -> ReadS GetDeliverabilityDashboardOptions
$creadsPrec :: Int -> ReadS GetDeliverabilityDashboardOptions
Prelude.Read, Int -> GetDeliverabilityDashboardOptions -> ShowS
[GetDeliverabilityDashboardOptions] -> ShowS
GetDeliverabilityDashboardOptions -> String
(Int -> GetDeliverabilityDashboardOptions -> ShowS)
-> (GetDeliverabilityDashboardOptions -> String)
-> ([GetDeliverabilityDashboardOptions] -> ShowS)
-> Show GetDeliverabilityDashboardOptions
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetDeliverabilityDashboardOptions] -> ShowS
$cshowList :: [GetDeliverabilityDashboardOptions] -> ShowS
show :: GetDeliverabilityDashboardOptions -> String
$cshow :: GetDeliverabilityDashboardOptions -> String
showsPrec :: Int -> GetDeliverabilityDashboardOptions -> ShowS
$cshowsPrec :: Int -> GetDeliverabilityDashboardOptions -> ShowS
Prelude.Show, (forall x.
 GetDeliverabilityDashboardOptions
 -> Rep GetDeliverabilityDashboardOptions x)
-> (forall x.
    Rep GetDeliverabilityDashboardOptions x
    -> GetDeliverabilityDashboardOptions)
-> Generic GetDeliverabilityDashboardOptions
forall x.
Rep GetDeliverabilityDashboardOptions x
-> GetDeliverabilityDashboardOptions
forall x.
GetDeliverabilityDashboardOptions
-> Rep GetDeliverabilityDashboardOptions x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep GetDeliverabilityDashboardOptions x
-> GetDeliverabilityDashboardOptions
$cfrom :: forall x.
GetDeliverabilityDashboardOptions
-> Rep GetDeliverabilityDashboardOptions x
Prelude.Generic)

-- |
-- Create a value of 'GetDeliverabilityDashboardOptions' 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.
newGetDeliverabilityDashboardOptions ::
  GetDeliverabilityDashboardOptions
newGetDeliverabilityDashboardOptions :: GetDeliverabilityDashboardOptions
newGetDeliverabilityDashboardOptions =
  GetDeliverabilityDashboardOptions
GetDeliverabilityDashboardOptions'

instance
  Core.AWSRequest
    GetDeliverabilityDashboardOptions
  where
  type
    AWSResponse GetDeliverabilityDashboardOptions =
      GetDeliverabilityDashboardOptionsResponse
  request :: GetDeliverabilityDashboardOptions
-> Request GetDeliverabilityDashboardOptions
request = Service
-> GetDeliverabilityDashboardOptions
-> Request GetDeliverabilityDashboardOptions
forall a. ToRequest a => Service -> a -> Request a
Request.get Service
defaultService
  response :: Logger
-> Service
-> Proxy GetDeliverabilityDashboardOptions
-> ClientResponse ClientBody
-> m (Either
        Error
        (ClientResponse (AWSResponse GetDeliverabilityDashboardOptions)))
response =
    (Int
 -> ResponseHeaders
 -> Object
 -> Either String (AWSResponse GetDeliverabilityDashboardOptions))
-> Logger
-> Service
-> Proxy GetDeliverabilityDashboardOptions
-> ClientResponse ClientBody
-> m (Either
        Error
        (ClientResponse (AWSResponse GetDeliverabilityDashboardOptions)))
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 DeliverabilityDashboardAccountStatus
-> Maybe POSIX
-> Maybe [DomainDeliverabilityTrackingOption]
-> Maybe [DomainDeliverabilityTrackingOption]
-> Int
-> Bool
-> GetDeliverabilityDashboardOptionsResponse
GetDeliverabilityDashboardOptionsResponse'
            (Maybe DeliverabilityDashboardAccountStatus
 -> Maybe POSIX
 -> Maybe [DomainDeliverabilityTrackingOption]
 -> Maybe [DomainDeliverabilityTrackingOption]
 -> Int
 -> Bool
 -> GetDeliverabilityDashboardOptionsResponse)
-> Either String (Maybe DeliverabilityDashboardAccountStatus)
-> Either
     String
     (Maybe POSIX
      -> Maybe [DomainDeliverabilityTrackingOption]
      -> Maybe [DomainDeliverabilityTrackingOption]
      -> Int
      -> Bool
      -> GetDeliverabilityDashboardOptionsResponse)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x Object
-> Key
-> Either String (Maybe DeliverabilityDashboardAccountStatus)
forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Core..?> Key
"AccountStatus")
              Either
  String
  (Maybe POSIX
   -> Maybe [DomainDeliverabilityTrackingOption]
   -> Maybe [DomainDeliverabilityTrackingOption]
   -> Int
   -> Bool
   -> GetDeliverabilityDashboardOptionsResponse)
-> Either String (Maybe POSIX)
-> Either
     String
     (Maybe [DomainDeliverabilityTrackingOption]
      -> Maybe [DomainDeliverabilityTrackingOption]
      -> Int
      -> Bool
      -> GetDeliverabilityDashboardOptionsResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Key -> Either String (Maybe POSIX)
forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Core..?> Key
"SubscriptionExpiryDate")
              Either
  String
  (Maybe [DomainDeliverabilityTrackingOption]
   -> Maybe [DomainDeliverabilityTrackingOption]
   -> Int
   -> Bool
   -> GetDeliverabilityDashboardOptionsResponse)
-> Either String (Maybe [DomainDeliverabilityTrackingOption])
-> Either
     String
     (Maybe [DomainDeliverabilityTrackingOption]
      -> Int -> Bool -> GetDeliverabilityDashboardOptionsResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x Object
-> Key
-> Either
     String (Maybe (Maybe [DomainDeliverabilityTrackingOption]))
forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Core..?> Key
"ActiveSubscribedDomains"
                              Either String (Maybe (Maybe [DomainDeliverabilityTrackingOption]))
-> Maybe [DomainDeliverabilityTrackingOption]
-> Either String (Maybe [DomainDeliverabilityTrackingOption])
forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ Maybe [DomainDeliverabilityTrackingOption]
forall a. Monoid a => a
Prelude.mempty
                          )
              Either
  String
  (Maybe [DomainDeliverabilityTrackingOption]
   -> Int -> Bool -> GetDeliverabilityDashboardOptionsResponse)
-> Either String (Maybe [DomainDeliverabilityTrackingOption])
-> Either
     String (Int -> Bool -> GetDeliverabilityDashboardOptionsResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x Object
-> Key
-> Either
     String (Maybe (Maybe [DomainDeliverabilityTrackingOption]))
forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Core..?> Key
"PendingExpirationSubscribedDomains"
                              Either String (Maybe (Maybe [DomainDeliverabilityTrackingOption]))
-> Maybe [DomainDeliverabilityTrackingOption]
-> Either String (Maybe [DomainDeliverabilityTrackingOption])
forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ Maybe [DomainDeliverabilityTrackingOption]
forall a. Monoid a => a
Prelude.mempty
                          )
              Either
  String (Int -> Bool -> GetDeliverabilityDashboardOptionsResponse)
-> Either String Int
-> Either
     String (Bool -> GetDeliverabilityDashboardOptionsResponse)
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))
              Either String (Bool -> GetDeliverabilityDashboardOptionsResponse)
-> Either String Bool
-> Either String GetDeliverabilityDashboardOptionsResponse
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Key -> Either String Bool
forall a. FromJSON a => Object -> Key -> Either String a
Core..:> Key
"DashboardEnabled")
      )

instance
  Prelude.Hashable
    GetDeliverabilityDashboardOptions

instance
  Prelude.NFData
    GetDeliverabilityDashboardOptions

instance
  Core.ToHeaders
    GetDeliverabilityDashboardOptions
  where
  toHeaders :: GetDeliverabilityDashboardOptions -> ResponseHeaders
toHeaders =
    ResponseHeaders
-> GetDeliverabilityDashboardOptions -> 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
    GetDeliverabilityDashboardOptions
  where
  toPath :: GetDeliverabilityDashboardOptions -> ByteString
toPath =
    ByteString -> GetDeliverabilityDashboardOptions -> ByteString
forall a b. a -> b -> a
Prelude.const ByteString
"/v2/email/deliverability-dashboard"

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

-- | An object that shows the status of the Deliverability dashboard.
--
-- /See:/ 'newGetDeliverabilityDashboardOptionsResponse' smart constructor.
data GetDeliverabilityDashboardOptionsResponse = GetDeliverabilityDashboardOptionsResponse'
  { -- | The current status of your Deliverability dashboard subscription. If
    -- this value is @PENDING_EXPIRATION@, your subscription is scheduled to
    -- expire at the end of the current calendar month.
    GetDeliverabilityDashboardOptionsResponse
-> Maybe DeliverabilityDashboardAccountStatus
accountStatus :: Prelude.Maybe DeliverabilityDashboardAccountStatus,
    -- | The date, in Unix time format, when your current subscription to the
    -- Deliverability dashboard is scheduled to expire, if your subscription is
    -- scheduled to expire at the end of the current calendar month. This value
    -- is null if you have an active subscription that isn’t due to expire at
    -- the end of the month.
    GetDeliverabilityDashboardOptionsResponse -> Maybe POSIX
subscriptionExpiryDate :: Prelude.Maybe Core.POSIX,
    -- | An array of objects, one for each verified domain that you use to send
    -- email and currently has an active Deliverability dashboard subscription
    -- that isn’t scheduled to expire at the end of the current calendar month.
    GetDeliverabilityDashboardOptionsResponse
-> Maybe [DomainDeliverabilityTrackingOption]
activeSubscribedDomains :: Prelude.Maybe [DomainDeliverabilityTrackingOption],
    -- | An array of objects, one for each verified domain that you use to send
    -- email and currently has an active Deliverability dashboard subscription
    -- that\'s scheduled to expire at the end of the current calendar month.
    GetDeliverabilityDashboardOptionsResponse
-> Maybe [DomainDeliverabilityTrackingOption]
pendingExpirationSubscribedDomains :: Prelude.Maybe [DomainDeliverabilityTrackingOption],
    -- | The response's http status code.
    GetDeliverabilityDashboardOptionsResponse -> Int
httpStatus :: Prelude.Int,
    -- | Specifies whether the Deliverability dashboard is enabled. If this value
    -- is @true@, the dashboard is enabled.
    GetDeliverabilityDashboardOptionsResponse -> Bool
dashboardEnabled :: Prelude.Bool
  }
  deriving (GetDeliverabilityDashboardOptionsResponse
-> GetDeliverabilityDashboardOptionsResponse -> Bool
(GetDeliverabilityDashboardOptionsResponse
 -> GetDeliverabilityDashboardOptionsResponse -> Bool)
-> (GetDeliverabilityDashboardOptionsResponse
    -> GetDeliverabilityDashboardOptionsResponse -> Bool)
-> Eq GetDeliverabilityDashboardOptionsResponse
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetDeliverabilityDashboardOptionsResponse
-> GetDeliverabilityDashboardOptionsResponse -> Bool
$c/= :: GetDeliverabilityDashboardOptionsResponse
-> GetDeliverabilityDashboardOptionsResponse -> Bool
== :: GetDeliverabilityDashboardOptionsResponse
-> GetDeliverabilityDashboardOptionsResponse -> Bool
$c== :: GetDeliverabilityDashboardOptionsResponse
-> GetDeliverabilityDashboardOptionsResponse -> Bool
Prelude.Eq, ReadPrec [GetDeliverabilityDashboardOptionsResponse]
ReadPrec GetDeliverabilityDashboardOptionsResponse
Int -> ReadS GetDeliverabilityDashboardOptionsResponse
ReadS [GetDeliverabilityDashboardOptionsResponse]
(Int -> ReadS GetDeliverabilityDashboardOptionsResponse)
-> ReadS [GetDeliverabilityDashboardOptionsResponse]
-> ReadPrec GetDeliverabilityDashboardOptionsResponse
-> ReadPrec [GetDeliverabilityDashboardOptionsResponse]
-> Read GetDeliverabilityDashboardOptionsResponse
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetDeliverabilityDashboardOptionsResponse]
$creadListPrec :: ReadPrec [GetDeliverabilityDashboardOptionsResponse]
readPrec :: ReadPrec GetDeliverabilityDashboardOptionsResponse
$creadPrec :: ReadPrec GetDeliverabilityDashboardOptionsResponse
readList :: ReadS [GetDeliverabilityDashboardOptionsResponse]
$creadList :: ReadS [GetDeliverabilityDashboardOptionsResponse]
readsPrec :: Int -> ReadS GetDeliverabilityDashboardOptionsResponse
$creadsPrec :: Int -> ReadS GetDeliverabilityDashboardOptionsResponse
Prelude.Read, Int -> GetDeliverabilityDashboardOptionsResponse -> ShowS
[GetDeliverabilityDashboardOptionsResponse] -> ShowS
GetDeliverabilityDashboardOptionsResponse -> String
(Int -> GetDeliverabilityDashboardOptionsResponse -> ShowS)
-> (GetDeliverabilityDashboardOptionsResponse -> String)
-> ([GetDeliverabilityDashboardOptionsResponse] -> ShowS)
-> Show GetDeliverabilityDashboardOptionsResponse
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetDeliverabilityDashboardOptionsResponse] -> ShowS
$cshowList :: [GetDeliverabilityDashboardOptionsResponse] -> ShowS
show :: GetDeliverabilityDashboardOptionsResponse -> String
$cshow :: GetDeliverabilityDashboardOptionsResponse -> String
showsPrec :: Int -> GetDeliverabilityDashboardOptionsResponse -> ShowS
$cshowsPrec :: Int -> GetDeliverabilityDashboardOptionsResponse -> ShowS
Prelude.Show, (forall x.
 GetDeliverabilityDashboardOptionsResponse
 -> Rep GetDeliverabilityDashboardOptionsResponse x)
-> (forall x.
    Rep GetDeliverabilityDashboardOptionsResponse x
    -> GetDeliverabilityDashboardOptionsResponse)
-> Generic GetDeliverabilityDashboardOptionsResponse
forall x.
Rep GetDeliverabilityDashboardOptionsResponse x
-> GetDeliverabilityDashboardOptionsResponse
forall x.
GetDeliverabilityDashboardOptionsResponse
-> Rep GetDeliverabilityDashboardOptionsResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep GetDeliverabilityDashboardOptionsResponse x
-> GetDeliverabilityDashboardOptionsResponse
$cfrom :: forall x.
GetDeliverabilityDashboardOptionsResponse
-> Rep GetDeliverabilityDashboardOptionsResponse x
Prelude.Generic)

-- |
-- Create a value of 'GetDeliverabilityDashboardOptionsResponse' 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:
--
-- 'accountStatus', 'getDeliverabilityDashboardOptionsResponse_accountStatus' - The current status of your Deliverability dashboard subscription. If
-- this value is @PENDING_EXPIRATION@, your subscription is scheduled to
-- expire at the end of the current calendar month.
--
-- 'subscriptionExpiryDate', 'getDeliverabilityDashboardOptionsResponse_subscriptionExpiryDate' - The date, in Unix time format, when your current subscription to the
-- Deliverability dashboard is scheduled to expire, if your subscription is
-- scheduled to expire at the end of the current calendar month. This value
-- is null if you have an active subscription that isn’t due to expire at
-- the end of the month.
--
-- 'activeSubscribedDomains', 'getDeliverabilityDashboardOptionsResponse_activeSubscribedDomains' - An array of objects, one for each verified domain that you use to send
-- email and currently has an active Deliverability dashboard subscription
-- that isn’t scheduled to expire at the end of the current calendar month.
--
-- 'pendingExpirationSubscribedDomains', 'getDeliverabilityDashboardOptionsResponse_pendingExpirationSubscribedDomains' - An array of objects, one for each verified domain that you use to send
-- email and currently has an active Deliverability dashboard subscription
-- that\'s scheduled to expire at the end of the current calendar month.
--
-- 'httpStatus', 'getDeliverabilityDashboardOptionsResponse_httpStatus' - The response's http status code.
--
-- 'dashboardEnabled', 'getDeliverabilityDashboardOptionsResponse_dashboardEnabled' - Specifies whether the Deliverability dashboard is enabled. If this value
-- is @true@, the dashboard is enabled.
newGetDeliverabilityDashboardOptionsResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  -- | 'dashboardEnabled'
  Prelude.Bool ->
  GetDeliverabilityDashboardOptionsResponse
newGetDeliverabilityDashboardOptionsResponse :: Int -> Bool -> GetDeliverabilityDashboardOptionsResponse
newGetDeliverabilityDashboardOptionsResponse
  Int
pHttpStatus_
  Bool
pDashboardEnabled_ =
    GetDeliverabilityDashboardOptionsResponse' :: Maybe DeliverabilityDashboardAccountStatus
-> Maybe POSIX
-> Maybe [DomainDeliverabilityTrackingOption]
-> Maybe [DomainDeliverabilityTrackingOption]
-> Int
-> Bool
-> GetDeliverabilityDashboardOptionsResponse
GetDeliverabilityDashboardOptionsResponse'
      { $sel:accountStatus:GetDeliverabilityDashboardOptionsResponse' :: Maybe DeliverabilityDashboardAccountStatus
accountStatus =
          Maybe DeliverabilityDashboardAccountStatus
forall a. Maybe a
Prelude.Nothing,
        $sel:subscriptionExpiryDate:GetDeliverabilityDashboardOptionsResponse' :: Maybe POSIX
subscriptionExpiryDate =
          Maybe POSIX
forall a. Maybe a
Prelude.Nothing,
        $sel:activeSubscribedDomains:GetDeliverabilityDashboardOptionsResponse' :: Maybe [DomainDeliverabilityTrackingOption]
activeSubscribedDomains =
          Maybe [DomainDeliverabilityTrackingOption]
forall a. Maybe a
Prelude.Nothing,
        $sel:pendingExpirationSubscribedDomains:GetDeliverabilityDashboardOptionsResponse' :: Maybe [DomainDeliverabilityTrackingOption]
pendingExpirationSubscribedDomains =
          Maybe [DomainDeliverabilityTrackingOption]
forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:GetDeliverabilityDashboardOptionsResponse' :: Int
httpStatus = Int
pHttpStatus_,
        $sel:dashboardEnabled:GetDeliverabilityDashboardOptionsResponse' :: Bool
dashboardEnabled =
          Bool
pDashboardEnabled_
      }

-- | The current status of your Deliverability dashboard subscription. If
-- this value is @PENDING_EXPIRATION@, your subscription is scheduled to
-- expire at the end of the current calendar month.
getDeliverabilityDashboardOptionsResponse_accountStatus :: Lens.Lens' GetDeliverabilityDashboardOptionsResponse (Prelude.Maybe DeliverabilityDashboardAccountStatus)
getDeliverabilityDashboardOptionsResponse_accountStatus :: (Maybe DeliverabilityDashboardAccountStatus
 -> f (Maybe DeliverabilityDashboardAccountStatus))
-> GetDeliverabilityDashboardOptionsResponse
-> f GetDeliverabilityDashboardOptionsResponse
getDeliverabilityDashboardOptionsResponse_accountStatus = (GetDeliverabilityDashboardOptionsResponse
 -> Maybe DeliverabilityDashboardAccountStatus)
-> (GetDeliverabilityDashboardOptionsResponse
    -> Maybe DeliverabilityDashboardAccountStatus
    -> GetDeliverabilityDashboardOptionsResponse)
-> Lens
     GetDeliverabilityDashboardOptionsResponse
     GetDeliverabilityDashboardOptionsResponse
     (Maybe DeliverabilityDashboardAccountStatus)
     (Maybe DeliverabilityDashboardAccountStatus)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetDeliverabilityDashboardOptionsResponse' {Maybe DeliverabilityDashboardAccountStatus
accountStatus :: Maybe DeliverabilityDashboardAccountStatus
$sel:accountStatus:GetDeliverabilityDashboardOptionsResponse' :: GetDeliverabilityDashboardOptionsResponse
-> Maybe DeliverabilityDashboardAccountStatus
accountStatus} -> Maybe DeliverabilityDashboardAccountStatus
accountStatus) (\s :: GetDeliverabilityDashboardOptionsResponse
s@GetDeliverabilityDashboardOptionsResponse' {} Maybe DeliverabilityDashboardAccountStatus
a -> GetDeliverabilityDashboardOptionsResponse
s {$sel:accountStatus:GetDeliverabilityDashboardOptionsResponse' :: Maybe DeliverabilityDashboardAccountStatus
accountStatus = Maybe DeliverabilityDashboardAccountStatus
a} :: GetDeliverabilityDashboardOptionsResponse)

-- | The date, in Unix time format, when your current subscription to the
-- Deliverability dashboard is scheduled to expire, if your subscription is
-- scheduled to expire at the end of the current calendar month. This value
-- is null if you have an active subscription that isn’t due to expire at
-- the end of the month.
getDeliverabilityDashboardOptionsResponse_subscriptionExpiryDate :: Lens.Lens' GetDeliverabilityDashboardOptionsResponse (Prelude.Maybe Prelude.UTCTime)
getDeliverabilityDashboardOptionsResponse_subscriptionExpiryDate :: (Maybe UTCTime -> f (Maybe UTCTime))
-> GetDeliverabilityDashboardOptionsResponse
-> f GetDeliverabilityDashboardOptionsResponse
getDeliverabilityDashboardOptionsResponse_subscriptionExpiryDate = (GetDeliverabilityDashboardOptionsResponse -> Maybe POSIX)
-> (GetDeliverabilityDashboardOptionsResponse
    -> Maybe POSIX -> GetDeliverabilityDashboardOptionsResponse)
-> Lens
     GetDeliverabilityDashboardOptionsResponse
     GetDeliverabilityDashboardOptionsResponse
     (Maybe POSIX)
     (Maybe POSIX)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetDeliverabilityDashboardOptionsResponse' {Maybe POSIX
subscriptionExpiryDate :: Maybe POSIX
$sel:subscriptionExpiryDate:GetDeliverabilityDashboardOptionsResponse' :: GetDeliverabilityDashboardOptionsResponse -> Maybe POSIX
subscriptionExpiryDate} -> Maybe POSIX
subscriptionExpiryDate) (\s :: GetDeliverabilityDashboardOptionsResponse
s@GetDeliverabilityDashboardOptionsResponse' {} Maybe POSIX
a -> GetDeliverabilityDashboardOptionsResponse
s {$sel:subscriptionExpiryDate:GetDeliverabilityDashboardOptionsResponse' :: Maybe POSIX
subscriptionExpiryDate = Maybe POSIX
a} :: GetDeliverabilityDashboardOptionsResponse) ((Maybe POSIX -> f (Maybe POSIX))
 -> GetDeliverabilityDashboardOptionsResponse
 -> f GetDeliverabilityDashboardOptionsResponse)
-> ((Maybe UTCTime -> f (Maybe UTCTime))
    -> Maybe POSIX -> f (Maybe POSIX))
-> (Maybe UTCTime -> f (Maybe UTCTime))
-> GetDeliverabilityDashboardOptionsResponse
-> f GetDeliverabilityDashboardOptionsResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso POSIX POSIX UTCTime UTCTime
-> Iso (Maybe POSIX) (Maybe POSIX) (Maybe UTCTime) (Maybe UTCTime)
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 POSIX POSIX UTCTime UTCTime
forall (a :: Format). Iso' (Time a) UTCTime
Core._Time

-- | An array of objects, one for each verified domain that you use to send
-- email and currently has an active Deliverability dashboard subscription
-- that isn’t scheduled to expire at the end of the current calendar month.
getDeliverabilityDashboardOptionsResponse_activeSubscribedDomains :: Lens.Lens' GetDeliverabilityDashboardOptionsResponse (Prelude.Maybe [DomainDeliverabilityTrackingOption])
getDeliverabilityDashboardOptionsResponse_activeSubscribedDomains :: (Maybe [DomainDeliverabilityTrackingOption]
 -> f (Maybe [DomainDeliverabilityTrackingOption]))
-> GetDeliverabilityDashboardOptionsResponse
-> f GetDeliverabilityDashboardOptionsResponse
getDeliverabilityDashboardOptionsResponse_activeSubscribedDomains = (GetDeliverabilityDashboardOptionsResponse
 -> Maybe [DomainDeliverabilityTrackingOption])
-> (GetDeliverabilityDashboardOptionsResponse
    -> Maybe [DomainDeliverabilityTrackingOption]
    -> GetDeliverabilityDashboardOptionsResponse)
-> Lens
     GetDeliverabilityDashboardOptionsResponse
     GetDeliverabilityDashboardOptionsResponse
     (Maybe [DomainDeliverabilityTrackingOption])
     (Maybe [DomainDeliverabilityTrackingOption])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetDeliverabilityDashboardOptionsResponse' {Maybe [DomainDeliverabilityTrackingOption]
activeSubscribedDomains :: Maybe [DomainDeliverabilityTrackingOption]
$sel:activeSubscribedDomains:GetDeliverabilityDashboardOptionsResponse' :: GetDeliverabilityDashboardOptionsResponse
-> Maybe [DomainDeliverabilityTrackingOption]
activeSubscribedDomains} -> Maybe [DomainDeliverabilityTrackingOption]
activeSubscribedDomains) (\s :: GetDeliverabilityDashboardOptionsResponse
s@GetDeliverabilityDashboardOptionsResponse' {} Maybe [DomainDeliverabilityTrackingOption]
a -> GetDeliverabilityDashboardOptionsResponse
s {$sel:activeSubscribedDomains:GetDeliverabilityDashboardOptionsResponse' :: Maybe [DomainDeliverabilityTrackingOption]
activeSubscribedDomains = Maybe [DomainDeliverabilityTrackingOption]
a} :: GetDeliverabilityDashboardOptionsResponse) ((Maybe [DomainDeliverabilityTrackingOption]
  -> f (Maybe [DomainDeliverabilityTrackingOption]))
 -> GetDeliverabilityDashboardOptionsResponse
 -> f GetDeliverabilityDashboardOptionsResponse)
-> ((Maybe [DomainDeliverabilityTrackingOption]
     -> f (Maybe [DomainDeliverabilityTrackingOption]))
    -> Maybe [DomainDeliverabilityTrackingOption]
    -> f (Maybe [DomainDeliverabilityTrackingOption]))
-> (Maybe [DomainDeliverabilityTrackingOption]
    -> f (Maybe [DomainDeliverabilityTrackingOption]))
-> GetDeliverabilityDashboardOptionsResponse
-> f GetDeliverabilityDashboardOptionsResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  [DomainDeliverabilityTrackingOption]
  [DomainDeliverabilityTrackingOption]
  [DomainDeliverabilityTrackingOption]
  [DomainDeliverabilityTrackingOption]
-> Iso
     (Maybe [DomainDeliverabilityTrackingOption])
     (Maybe [DomainDeliverabilityTrackingOption])
     (Maybe [DomainDeliverabilityTrackingOption])
     (Maybe [DomainDeliverabilityTrackingOption])
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
  [DomainDeliverabilityTrackingOption]
  [DomainDeliverabilityTrackingOption]
  [DomainDeliverabilityTrackingOption]
  [DomainDeliverabilityTrackingOption]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | An array of objects, one for each verified domain that you use to send
-- email and currently has an active Deliverability dashboard subscription
-- that\'s scheduled to expire at the end of the current calendar month.
getDeliverabilityDashboardOptionsResponse_pendingExpirationSubscribedDomains :: Lens.Lens' GetDeliverabilityDashboardOptionsResponse (Prelude.Maybe [DomainDeliverabilityTrackingOption])
getDeliverabilityDashboardOptionsResponse_pendingExpirationSubscribedDomains :: (Maybe [DomainDeliverabilityTrackingOption]
 -> f (Maybe [DomainDeliverabilityTrackingOption]))
-> GetDeliverabilityDashboardOptionsResponse
-> f GetDeliverabilityDashboardOptionsResponse
getDeliverabilityDashboardOptionsResponse_pendingExpirationSubscribedDomains = (GetDeliverabilityDashboardOptionsResponse
 -> Maybe [DomainDeliverabilityTrackingOption])
-> (GetDeliverabilityDashboardOptionsResponse
    -> Maybe [DomainDeliverabilityTrackingOption]
    -> GetDeliverabilityDashboardOptionsResponse)
-> Lens
     GetDeliverabilityDashboardOptionsResponse
     GetDeliverabilityDashboardOptionsResponse
     (Maybe [DomainDeliverabilityTrackingOption])
     (Maybe [DomainDeliverabilityTrackingOption])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetDeliverabilityDashboardOptionsResponse' {Maybe [DomainDeliverabilityTrackingOption]
pendingExpirationSubscribedDomains :: Maybe [DomainDeliverabilityTrackingOption]
$sel:pendingExpirationSubscribedDomains:GetDeliverabilityDashboardOptionsResponse' :: GetDeliverabilityDashboardOptionsResponse
-> Maybe [DomainDeliverabilityTrackingOption]
pendingExpirationSubscribedDomains} -> Maybe [DomainDeliverabilityTrackingOption]
pendingExpirationSubscribedDomains) (\s :: GetDeliverabilityDashboardOptionsResponse
s@GetDeliverabilityDashboardOptionsResponse' {} Maybe [DomainDeliverabilityTrackingOption]
a -> GetDeliverabilityDashboardOptionsResponse
s {$sel:pendingExpirationSubscribedDomains:GetDeliverabilityDashboardOptionsResponse' :: Maybe [DomainDeliverabilityTrackingOption]
pendingExpirationSubscribedDomains = Maybe [DomainDeliverabilityTrackingOption]
a} :: GetDeliverabilityDashboardOptionsResponse) ((Maybe [DomainDeliverabilityTrackingOption]
  -> f (Maybe [DomainDeliverabilityTrackingOption]))
 -> GetDeliverabilityDashboardOptionsResponse
 -> f GetDeliverabilityDashboardOptionsResponse)
-> ((Maybe [DomainDeliverabilityTrackingOption]
     -> f (Maybe [DomainDeliverabilityTrackingOption]))
    -> Maybe [DomainDeliverabilityTrackingOption]
    -> f (Maybe [DomainDeliverabilityTrackingOption]))
-> (Maybe [DomainDeliverabilityTrackingOption]
    -> f (Maybe [DomainDeliverabilityTrackingOption]))
-> GetDeliverabilityDashboardOptionsResponse
-> f GetDeliverabilityDashboardOptionsResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  [DomainDeliverabilityTrackingOption]
  [DomainDeliverabilityTrackingOption]
  [DomainDeliverabilityTrackingOption]
  [DomainDeliverabilityTrackingOption]
-> Iso
     (Maybe [DomainDeliverabilityTrackingOption])
     (Maybe [DomainDeliverabilityTrackingOption])
     (Maybe [DomainDeliverabilityTrackingOption])
     (Maybe [DomainDeliverabilityTrackingOption])
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
  [DomainDeliverabilityTrackingOption]
  [DomainDeliverabilityTrackingOption]
  [DomainDeliverabilityTrackingOption]
  [DomainDeliverabilityTrackingOption]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

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

-- | Specifies whether the Deliverability dashboard is enabled. If this value
-- is @true@, the dashboard is enabled.
getDeliverabilityDashboardOptionsResponse_dashboardEnabled :: Lens.Lens' GetDeliverabilityDashboardOptionsResponse Prelude.Bool
getDeliverabilityDashboardOptionsResponse_dashboardEnabled :: (Bool -> f Bool)
-> GetDeliverabilityDashboardOptionsResponse
-> f GetDeliverabilityDashboardOptionsResponse
getDeliverabilityDashboardOptionsResponse_dashboardEnabled = (GetDeliverabilityDashboardOptionsResponse -> Bool)
-> (GetDeliverabilityDashboardOptionsResponse
    -> Bool -> GetDeliverabilityDashboardOptionsResponse)
-> Lens
     GetDeliverabilityDashboardOptionsResponse
     GetDeliverabilityDashboardOptionsResponse
     Bool
     Bool
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetDeliverabilityDashboardOptionsResponse' {Bool
dashboardEnabled :: Bool
$sel:dashboardEnabled:GetDeliverabilityDashboardOptionsResponse' :: GetDeliverabilityDashboardOptionsResponse -> Bool
dashboardEnabled} -> Bool
dashboardEnabled) (\s :: GetDeliverabilityDashboardOptionsResponse
s@GetDeliverabilityDashboardOptionsResponse' {} Bool
a -> GetDeliverabilityDashboardOptionsResponse
s {$sel:dashboardEnabled:GetDeliverabilityDashboardOptionsResponse' :: Bool
dashboardEnabled = Bool
a} :: GetDeliverabilityDashboardOptionsResponse)

instance
  Prelude.NFData
    GetDeliverabilityDashboardOptionsResponse