{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# 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.Types.DkimAttributes
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.SESV2.Types.DkimAttributes where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude
import Amazonka.SESV2.Types.DkimSigningAttributesOrigin
import Amazonka.SESV2.Types.DkimSigningKeyLength
import Amazonka.SESV2.Types.DkimStatus

-- | An object that contains information about the DKIM authentication status
-- for an email identity.
--
-- Amazon SES determines the authentication status by searching for
-- specific records in the DNS configuration for the domain. If you used
-- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim.html Easy DKIM>
-- to set up DKIM authentication, Amazon SES tries to find three unique
-- CNAME records in the DNS configuration for your domain. If you provided
-- a public key to perform DKIM authentication, Amazon SES tries to find a
-- TXT record that uses the selector that you specified. The value of the
-- TXT record must be a public key that\'s paired with the private key that
-- you specified in the process of creating the identity
--
-- /See:/ 'newDkimAttributes' smart constructor.
data DkimAttributes = DkimAttributes'
  { -- | [Easy DKIM] The key length of the DKIM key pair in use.
    DkimAttributes -> Maybe DkimSigningKeyLength
currentSigningKeyLength :: Prelude.Maybe DkimSigningKeyLength,
    -- | [Easy DKIM] The last time a key pair was generated for this identity.
    DkimAttributes -> Maybe POSIX
lastKeyGenerationTimestamp :: Prelude.Maybe Data.POSIX,
    -- | [Easy DKIM] The key length of the future DKIM key pair to be generated.
    -- This can be changed at most once per day.
    DkimAttributes -> Maybe DkimSigningKeyLength
nextSigningKeyLength :: Prelude.Maybe DkimSigningKeyLength,
    -- | A string that indicates how DKIM was configured for the identity. These
    -- are the possible values:
    --
    -- -   @AWS_SES@ – Indicates that DKIM was configured for the identity by
    --     using
    --     <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim.html Easy DKIM>.
    --
    -- -   @EXTERNAL@ – Indicates that DKIM was configured for the identity by
    --     using Bring Your Own DKIM (BYODKIM).
    DkimAttributes -> Maybe DkimSigningAttributesOrigin
signingAttributesOrigin :: Prelude.Maybe DkimSigningAttributesOrigin,
    -- | If the value is @true@, then the messages that you send from the
    -- identity are signed using DKIM. If the value is @false@, then the
    -- messages that you send from the identity aren\'t DKIM-signed.
    DkimAttributes -> Maybe Bool
signingEnabled :: Prelude.Maybe Prelude.Bool,
    -- | Describes whether or not Amazon SES has successfully located the DKIM
    -- records in the DNS records for the domain. The status can be one of the
    -- following:
    --
    -- -   @PENDING@ – The verification process was initiated, but Amazon SES
    --     hasn\'t yet detected the DKIM records in the DNS configuration for
    --     the domain.
    --
    -- -   @SUCCESS@ – The verification process completed successfully.
    --
    -- -   @FAILED@ – The verification process failed. This typically occurs
    --     when Amazon SES fails to find the DKIM records in the DNS
    --     configuration of the domain.
    --
    -- -   @TEMPORARY_FAILURE@ – A temporary issue is preventing Amazon SES
    --     from determining the DKIM authentication status of the domain.
    --
    -- -   @NOT_STARTED@ – The DKIM verification process hasn\'t been initiated
    --     for the domain.
    DkimAttributes -> Maybe DkimStatus
status :: Prelude.Maybe DkimStatus,
    -- | If you used
    -- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim.html Easy DKIM>
    -- to configure DKIM authentication for the domain, then this object
    -- contains a set of unique strings that you use to create a set of CNAME
    -- records that you add to the DNS configuration for your domain. When
    -- Amazon SES detects these records in the DNS configuration for your
    -- domain, the DKIM authentication process is complete.
    --
    -- If you configured DKIM authentication for the domain by providing your
    -- own public-private key pair, then this object contains the selector for
    -- the public key.
    --
    -- Regardless of the DKIM authentication method you use, Amazon SES
    -- searches for the appropriate records in the DNS configuration of the
    -- domain for up to 72 hours.
    DkimAttributes -> Maybe [Text]
tokens :: Prelude.Maybe [Prelude.Text]
  }
  deriving (DkimAttributes -> DkimAttributes -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DkimAttributes -> DkimAttributes -> Bool
$c/= :: DkimAttributes -> DkimAttributes -> Bool
== :: DkimAttributes -> DkimAttributes -> Bool
$c== :: DkimAttributes -> DkimAttributes -> Bool
Prelude.Eq, ReadPrec [DkimAttributes]
ReadPrec DkimAttributes
Int -> ReadS DkimAttributes
ReadS [DkimAttributes]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DkimAttributes]
$creadListPrec :: ReadPrec [DkimAttributes]
readPrec :: ReadPrec DkimAttributes
$creadPrec :: ReadPrec DkimAttributes
readList :: ReadS [DkimAttributes]
$creadList :: ReadS [DkimAttributes]
readsPrec :: Int -> ReadS DkimAttributes
$creadsPrec :: Int -> ReadS DkimAttributes
Prelude.Read, Int -> DkimAttributes -> ShowS
[DkimAttributes] -> ShowS
DkimAttributes -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DkimAttributes] -> ShowS
$cshowList :: [DkimAttributes] -> ShowS
show :: DkimAttributes -> String
$cshow :: DkimAttributes -> String
showsPrec :: Int -> DkimAttributes -> ShowS
$cshowsPrec :: Int -> DkimAttributes -> ShowS
Prelude.Show, forall x. Rep DkimAttributes x -> DkimAttributes
forall x. DkimAttributes -> Rep DkimAttributes x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DkimAttributes x -> DkimAttributes
$cfrom :: forall x. DkimAttributes -> Rep DkimAttributes x
Prelude.Generic)

-- |
-- Create a value of 'DkimAttributes' 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:
--
-- 'currentSigningKeyLength', 'dkimAttributes_currentSigningKeyLength' - [Easy DKIM] The key length of the DKIM key pair in use.
--
-- 'lastKeyGenerationTimestamp', 'dkimAttributes_lastKeyGenerationTimestamp' - [Easy DKIM] The last time a key pair was generated for this identity.
--
-- 'nextSigningKeyLength', 'dkimAttributes_nextSigningKeyLength' - [Easy DKIM] The key length of the future DKIM key pair to be generated.
-- This can be changed at most once per day.
--
-- 'signingAttributesOrigin', 'dkimAttributes_signingAttributesOrigin' - A string that indicates how DKIM was configured for the identity. These
-- are the possible values:
--
-- -   @AWS_SES@ – Indicates that DKIM was configured for the identity by
--     using
--     <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim.html Easy DKIM>.
--
-- -   @EXTERNAL@ – Indicates that DKIM was configured for the identity by
--     using Bring Your Own DKIM (BYODKIM).
--
-- 'signingEnabled', 'dkimAttributes_signingEnabled' - If the value is @true@, then the messages that you send from the
-- identity are signed using DKIM. If the value is @false@, then the
-- messages that you send from the identity aren\'t DKIM-signed.
--
-- 'status', 'dkimAttributes_status' - Describes whether or not Amazon SES has successfully located the DKIM
-- records in the DNS records for the domain. The status can be one of the
-- following:
--
-- -   @PENDING@ – The verification process was initiated, but Amazon SES
--     hasn\'t yet detected the DKIM records in the DNS configuration for
--     the domain.
--
-- -   @SUCCESS@ – The verification process completed successfully.
--
-- -   @FAILED@ – The verification process failed. This typically occurs
--     when Amazon SES fails to find the DKIM records in the DNS
--     configuration of the domain.
--
-- -   @TEMPORARY_FAILURE@ – A temporary issue is preventing Amazon SES
--     from determining the DKIM authentication status of the domain.
--
-- -   @NOT_STARTED@ – The DKIM verification process hasn\'t been initiated
--     for the domain.
--
-- 'tokens', 'dkimAttributes_tokens' - If you used
-- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim.html Easy DKIM>
-- to configure DKIM authentication for the domain, then this object
-- contains a set of unique strings that you use to create a set of CNAME
-- records that you add to the DNS configuration for your domain. When
-- Amazon SES detects these records in the DNS configuration for your
-- domain, the DKIM authentication process is complete.
--
-- If you configured DKIM authentication for the domain by providing your
-- own public-private key pair, then this object contains the selector for
-- the public key.
--
-- Regardless of the DKIM authentication method you use, Amazon SES
-- searches for the appropriate records in the DNS configuration of the
-- domain for up to 72 hours.
newDkimAttributes ::
  DkimAttributes
newDkimAttributes :: DkimAttributes
newDkimAttributes =
  DkimAttributes'
    { $sel:currentSigningKeyLength:DkimAttributes' :: Maybe DkimSigningKeyLength
currentSigningKeyLength =
        forall a. Maybe a
Prelude.Nothing,
      $sel:lastKeyGenerationTimestamp:DkimAttributes' :: Maybe POSIX
lastKeyGenerationTimestamp = forall a. Maybe a
Prelude.Nothing,
      $sel:nextSigningKeyLength:DkimAttributes' :: Maybe DkimSigningKeyLength
nextSigningKeyLength = forall a. Maybe a
Prelude.Nothing,
      $sel:signingAttributesOrigin:DkimAttributes' :: Maybe DkimSigningAttributesOrigin
signingAttributesOrigin = forall a. Maybe a
Prelude.Nothing,
      $sel:signingEnabled:DkimAttributes' :: Maybe Bool
signingEnabled = forall a. Maybe a
Prelude.Nothing,
      $sel:status:DkimAttributes' :: Maybe DkimStatus
status = forall a. Maybe a
Prelude.Nothing,
      $sel:tokens:DkimAttributes' :: Maybe [Text]
tokens = forall a. Maybe a
Prelude.Nothing
    }

-- | [Easy DKIM] The key length of the DKIM key pair in use.
dkimAttributes_currentSigningKeyLength :: Lens.Lens' DkimAttributes (Prelude.Maybe DkimSigningKeyLength)
dkimAttributes_currentSigningKeyLength :: Lens' DkimAttributes (Maybe DkimSigningKeyLength)
dkimAttributes_currentSigningKeyLength = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DkimAttributes' {Maybe DkimSigningKeyLength
currentSigningKeyLength :: Maybe DkimSigningKeyLength
$sel:currentSigningKeyLength:DkimAttributes' :: DkimAttributes -> Maybe DkimSigningKeyLength
currentSigningKeyLength} -> Maybe DkimSigningKeyLength
currentSigningKeyLength) (\s :: DkimAttributes
s@DkimAttributes' {} Maybe DkimSigningKeyLength
a -> DkimAttributes
s {$sel:currentSigningKeyLength:DkimAttributes' :: Maybe DkimSigningKeyLength
currentSigningKeyLength = Maybe DkimSigningKeyLength
a} :: DkimAttributes)

-- | [Easy DKIM] The last time a key pair was generated for this identity.
dkimAttributes_lastKeyGenerationTimestamp :: Lens.Lens' DkimAttributes (Prelude.Maybe Prelude.UTCTime)
dkimAttributes_lastKeyGenerationTimestamp :: Lens' DkimAttributes (Maybe UTCTime)
dkimAttributes_lastKeyGenerationTimestamp = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DkimAttributes' {Maybe POSIX
lastKeyGenerationTimestamp :: Maybe POSIX
$sel:lastKeyGenerationTimestamp:DkimAttributes' :: DkimAttributes -> Maybe POSIX
lastKeyGenerationTimestamp} -> Maybe POSIX
lastKeyGenerationTimestamp) (\s :: DkimAttributes
s@DkimAttributes' {} Maybe POSIX
a -> DkimAttributes
s {$sel:lastKeyGenerationTimestamp:DkimAttributes' :: Maybe POSIX
lastKeyGenerationTimestamp = Maybe POSIX
a} :: DkimAttributes) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | [Easy DKIM] The key length of the future DKIM key pair to be generated.
-- This can be changed at most once per day.
dkimAttributes_nextSigningKeyLength :: Lens.Lens' DkimAttributes (Prelude.Maybe DkimSigningKeyLength)
dkimAttributes_nextSigningKeyLength :: Lens' DkimAttributes (Maybe DkimSigningKeyLength)
dkimAttributes_nextSigningKeyLength = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DkimAttributes' {Maybe DkimSigningKeyLength
nextSigningKeyLength :: Maybe DkimSigningKeyLength
$sel:nextSigningKeyLength:DkimAttributes' :: DkimAttributes -> Maybe DkimSigningKeyLength
nextSigningKeyLength} -> Maybe DkimSigningKeyLength
nextSigningKeyLength) (\s :: DkimAttributes
s@DkimAttributes' {} Maybe DkimSigningKeyLength
a -> DkimAttributes
s {$sel:nextSigningKeyLength:DkimAttributes' :: Maybe DkimSigningKeyLength
nextSigningKeyLength = Maybe DkimSigningKeyLength
a} :: DkimAttributes)

-- | A string that indicates how DKIM was configured for the identity. These
-- are the possible values:
--
-- -   @AWS_SES@ – Indicates that DKIM was configured for the identity by
--     using
--     <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim.html Easy DKIM>.
--
-- -   @EXTERNAL@ – Indicates that DKIM was configured for the identity by
--     using Bring Your Own DKIM (BYODKIM).
dkimAttributes_signingAttributesOrigin :: Lens.Lens' DkimAttributes (Prelude.Maybe DkimSigningAttributesOrigin)
dkimAttributes_signingAttributesOrigin :: Lens' DkimAttributes (Maybe DkimSigningAttributesOrigin)
dkimAttributes_signingAttributesOrigin = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DkimAttributes' {Maybe DkimSigningAttributesOrigin
signingAttributesOrigin :: Maybe DkimSigningAttributesOrigin
$sel:signingAttributesOrigin:DkimAttributes' :: DkimAttributes -> Maybe DkimSigningAttributesOrigin
signingAttributesOrigin} -> Maybe DkimSigningAttributesOrigin
signingAttributesOrigin) (\s :: DkimAttributes
s@DkimAttributes' {} Maybe DkimSigningAttributesOrigin
a -> DkimAttributes
s {$sel:signingAttributesOrigin:DkimAttributes' :: Maybe DkimSigningAttributesOrigin
signingAttributesOrigin = Maybe DkimSigningAttributesOrigin
a} :: DkimAttributes)

-- | If the value is @true@, then the messages that you send from the
-- identity are signed using DKIM. If the value is @false@, then the
-- messages that you send from the identity aren\'t DKIM-signed.
dkimAttributes_signingEnabled :: Lens.Lens' DkimAttributes (Prelude.Maybe Prelude.Bool)
dkimAttributes_signingEnabled :: Lens' DkimAttributes (Maybe Bool)
dkimAttributes_signingEnabled = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DkimAttributes' {Maybe Bool
signingEnabled :: Maybe Bool
$sel:signingEnabled:DkimAttributes' :: DkimAttributes -> Maybe Bool
signingEnabled} -> Maybe Bool
signingEnabled) (\s :: DkimAttributes
s@DkimAttributes' {} Maybe Bool
a -> DkimAttributes
s {$sel:signingEnabled:DkimAttributes' :: Maybe Bool
signingEnabled = Maybe Bool
a} :: DkimAttributes)

-- | Describes whether or not Amazon SES has successfully located the DKIM
-- records in the DNS records for the domain. The status can be one of the
-- following:
--
-- -   @PENDING@ – The verification process was initiated, but Amazon SES
--     hasn\'t yet detected the DKIM records in the DNS configuration for
--     the domain.
--
-- -   @SUCCESS@ – The verification process completed successfully.
--
-- -   @FAILED@ – The verification process failed. This typically occurs
--     when Amazon SES fails to find the DKIM records in the DNS
--     configuration of the domain.
--
-- -   @TEMPORARY_FAILURE@ – A temporary issue is preventing Amazon SES
--     from determining the DKIM authentication status of the domain.
--
-- -   @NOT_STARTED@ – The DKIM verification process hasn\'t been initiated
--     for the domain.
dkimAttributes_status :: Lens.Lens' DkimAttributes (Prelude.Maybe DkimStatus)
dkimAttributes_status :: Lens' DkimAttributes (Maybe DkimStatus)
dkimAttributes_status = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DkimAttributes' {Maybe DkimStatus
status :: Maybe DkimStatus
$sel:status:DkimAttributes' :: DkimAttributes -> Maybe DkimStatus
status} -> Maybe DkimStatus
status) (\s :: DkimAttributes
s@DkimAttributes' {} Maybe DkimStatus
a -> DkimAttributes
s {$sel:status:DkimAttributes' :: Maybe DkimStatus
status = Maybe DkimStatus
a} :: DkimAttributes)

-- | If you used
-- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim.html Easy DKIM>
-- to configure DKIM authentication for the domain, then this object
-- contains a set of unique strings that you use to create a set of CNAME
-- records that you add to the DNS configuration for your domain. When
-- Amazon SES detects these records in the DNS configuration for your
-- domain, the DKIM authentication process is complete.
--
-- If you configured DKIM authentication for the domain by providing your
-- own public-private key pair, then this object contains the selector for
-- the public key.
--
-- Regardless of the DKIM authentication method you use, Amazon SES
-- searches for the appropriate records in the DNS configuration of the
-- domain for up to 72 hours.
dkimAttributes_tokens :: Lens.Lens' DkimAttributes (Prelude.Maybe [Prelude.Text])
dkimAttributes_tokens :: Lens' DkimAttributes (Maybe [Text])
dkimAttributes_tokens = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DkimAttributes' {Maybe [Text]
tokens :: Maybe [Text]
$sel:tokens:DkimAttributes' :: DkimAttributes -> Maybe [Text]
tokens} -> Maybe [Text]
tokens) (\s :: DkimAttributes
s@DkimAttributes' {} Maybe [Text]
a -> DkimAttributes
s {$sel:tokens:DkimAttributes' :: Maybe [Text]
tokens = Maybe [Text]
a} :: DkimAttributes) 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

instance Data.FromJSON DkimAttributes where
  parseJSON :: Value -> Parser DkimAttributes
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"DkimAttributes"
      ( \Object
x ->
          Maybe DkimSigningKeyLength
-> Maybe POSIX
-> Maybe DkimSigningKeyLength
-> Maybe DkimSigningAttributesOrigin
-> Maybe Bool
-> Maybe DkimStatus
-> Maybe [Text]
-> DkimAttributes
DkimAttributes'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"CurrentSigningKeyLength")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"LastKeyGenerationTimestamp")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"NextSigningKeyLength")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"SigningAttributesOrigin")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"SigningEnabled")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"Status")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"Tokens" forall a. Parser (Maybe a) -> a -> Parser a
Data..!= forall a. Monoid a => a
Prelude.mempty)
      )

instance Prelude.Hashable DkimAttributes where
  hashWithSalt :: Int -> DkimAttributes -> Int
hashWithSalt Int
_salt DkimAttributes' {Maybe Bool
Maybe [Text]
Maybe POSIX
Maybe DkimSigningAttributesOrigin
Maybe DkimSigningKeyLength
Maybe DkimStatus
tokens :: Maybe [Text]
status :: Maybe DkimStatus
signingEnabled :: Maybe Bool
signingAttributesOrigin :: Maybe DkimSigningAttributesOrigin
nextSigningKeyLength :: Maybe DkimSigningKeyLength
lastKeyGenerationTimestamp :: Maybe POSIX
currentSigningKeyLength :: Maybe DkimSigningKeyLength
$sel:tokens:DkimAttributes' :: DkimAttributes -> Maybe [Text]
$sel:status:DkimAttributes' :: DkimAttributes -> Maybe DkimStatus
$sel:signingEnabled:DkimAttributes' :: DkimAttributes -> Maybe Bool
$sel:signingAttributesOrigin:DkimAttributes' :: DkimAttributes -> Maybe DkimSigningAttributesOrigin
$sel:nextSigningKeyLength:DkimAttributes' :: DkimAttributes -> Maybe DkimSigningKeyLength
$sel:lastKeyGenerationTimestamp:DkimAttributes' :: DkimAttributes -> Maybe POSIX
$sel:currentSigningKeyLength:DkimAttributes' :: DkimAttributes -> Maybe DkimSigningKeyLength
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe DkimSigningKeyLength
currentSigningKeyLength
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
lastKeyGenerationTimestamp
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe DkimSigningKeyLength
nextSigningKeyLength
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe DkimSigningAttributesOrigin
signingAttributesOrigin
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
signingEnabled
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe DkimStatus
status
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Text]
tokens

instance Prelude.NFData DkimAttributes where
  rnf :: DkimAttributes -> ()
rnf DkimAttributes' {Maybe Bool
Maybe [Text]
Maybe POSIX
Maybe DkimSigningAttributesOrigin
Maybe DkimSigningKeyLength
Maybe DkimStatus
tokens :: Maybe [Text]
status :: Maybe DkimStatus
signingEnabled :: Maybe Bool
signingAttributesOrigin :: Maybe DkimSigningAttributesOrigin
nextSigningKeyLength :: Maybe DkimSigningKeyLength
lastKeyGenerationTimestamp :: Maybe POSIX
currentSigningKeyLength :: Maybe DkimSigningKeyLength
$sel:tokens:DkimAttributes' :: DkimAttributes -> Maybe [Text]
$sel:status:DkimAttributes' :: DkimAttributes -> Maybe DkimStatus
$sel:signingEnabled:DkimAttributes' :: DkimAttributes -> Maybe Bool
$sel:signingAttributesOrigin:DkimAttributes' :: DkimAttributes -> Maybe DkimSigningAttributesOrigin
$sel:nextSigningKeyLength:DkimAttributes' :: DkimAttributes -> Maybe DkimSigningKeyLength
$sel:lastKeyGenerationTimestamp:DkimAttributes' :: DkimAttributes -> Maybe POSIX
$sel:currentSigningKeyLength:DkimAttributes' :: DkimAttributes -> Maybe DkimSigningKeyLength
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe DkimSigningKeyLength
currentSigningKeyLength
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
lastKeyGenerationTimestamp
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe DkimSigningKeyLength
nextSigningKeyLength
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe DkimSigningAttributesOrigin
signingAttributesOrigin
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
signingEnabled
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe DkimStatus
status
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Text]
tokens