{-# 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 #-}
module Amazonka.CertificateManager.Types.DomainValidation where
import Amazonka.CertificateManager.Types.DomainStatus
import Amazonka.CertificateManager.Types.ResourceRecord
import Amazonka.CertificateManager.Types.ValidationMethod
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
data DomainValidation = DomainValidation'
{
DomainValidation -> Maybe ResourceRecord
resourceRecord :: Prelude.Maybe ResourceRecord,
DomainValidation -> Maybe Text
validationDomain :: Prelude.Maybe Prelude.Text,
DomainValidation -> Maybe [Text]
validationEmails :: Prelude.Maybe [Prelude.Text],
DomainValidation -> Maybe ValidationMethod
validationMethod :: Prelude.Maybe ValidationMethod,
DomainValidation -> Maybe DomainStatus
validationStatus :: Prelude.Maybe DomainStatus,
DomainValidation -> Text
domainName :: Prelude.Text
}
deriving (DomainValidation -> DomainValidation -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DomainValidation -> DomainValidation -> Bool
$c/= :: DomainValidation -> DomainValidation -> Bool
== :: DomainValidation -> DomainValidation -> Bool
$c== :: DomainValidation -> DomainValidation -> Bool
Prelude.Eq, ReadPrec [DomainValidation]
ReadPrec DomainValidation
Int -> ReadS DomainValidation
ReadS [DomainValidation]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DomainValidation]
$creadListPrec :: ReadPrec [DomainValidation]
readPrec :: ReadPrec DomainValidation
$creadPrec :: ReadPrec DomainValidation
readList :: ReadS [DomainValidation]
$creadList :: ReadS [DomainValidation]
readsPrec :: Int -> ReadS DomainValidation
$creadsPrec :: Int -> ReadS DomainValidation
Prelude.Read, Int -> DomainValidation -> ShowS
[DomainValidation] -> ShowS
DomainValidation -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DomainValidation] -> ShowS
$cshowList :: [DomainValidation] -> ShowS
show :: DomainValidation -> String
$cshow :: DomainValidation -> String
showsPrec :: Int -> DomainValidation -> ShowS
$cshowsPrec :: Int -> DomainValidation -> ShowS
Prelude.Show, forall x. Rep DomainValidation x -> DomainValidation
forall x. DomainValidation -> Rep DomainValidation x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DomainValidation x -> DomainValidation
$cfrom :: forall x. DomainValidation -> Rep DomainValidation x
Prelude.Generic)
newDomainValidation ::
Prelude.Text ->
DomainValidation
newDomainValidation :: Text -> DomainValidation
newDomainValidation Text
pDomainName_ =
DomainValidation'
{ $sel:resourceRecord:DomainValidation' :: Maybe ResourceRecord
resourceRecord = forall a. Maybe a
Prelude.Nothing,
$sel:validationDomain:DomainValidation' :: Maybe Text
validationDomain = forall a. Maybe a
Prelude.Nothing,
$sel:validationEmails:DomainValidation' :: Maybe [Text]
validationEmails = forall a. Maybe a
Prelude.Nothing,
$sel:validationMethod:DomainValidation' :: Maybe ValidationMethod
validationMethod = forall a. Maybe a
Prelude.Nothing,
$sel:validationStatus:DomainValidation' :: Maybe DomainStatus
validationStatus = forall a. Maybe a
Prelude.Nothing,
$sel:domainName:DomainValidation' :: Text
domainName = Text
pDomainName_
}
domainValidation_resourceRecord :: Lens.Lens' DomainValidation (Prelude.Maybe ResourceRecord)
domainValidation_resourceRecord :: Lens' DomainValidation (Maybe ResourceRecord)
domainValidation_resourceRecord = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DomainValidation' {Maybe ResourceRecord
resourceRecord :: Maybe ResourceRecord
$sel:resourceRecord:DomainValidation' :: DomainValidation -> Maybe ResourceRecord
resourceRecord} -> Maybe ResourceRecord
resourceRecord) (\s :: DomainValidation
s@DomainValidation' {} Maybe ResourceRecord
a -> DomainValidation
s {$sel:resourceRecord:DomainValidation' :: Maybe ResourceRecord
resourceRecord = Maybe ResourceRecord
a} :: DomainValidation)
domainValidation_validationDomain :: Lens.Lens' DomainValidation (Prelude.Maybe Prelude.Text)
domainValidation_validationDomain :: Lens' DomainValidation (Maybe Text)
domainValidation_validationDomain = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DomainValidation' {Maybe Text
validationDomain :: Maybe Text
$sel:validationDomain:DomainValidation' :: DomainValidation -> Maybe Text
validationDomain} -> Maybe Text
validationDomain) (\s :: DomainValidation
s@DomainValidation' {} Maybe Text
a -> DomainValidation
s {$sel:validationDomain:DomainValidation' :: Maybe Text
validationDomain = Maybe Text
a} :: DomainValidation)
domainValidation_validationEmails :: Lens.Lens' DomainValidation (Prelude.Maybe [Prelude.Text])
domainValidation_validationEmails :: Lens' DomainValidation (Maybe [Text])
domainValidation_validationEmails = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DomainValidation' {Maybe [Text]
validationEmails :: Maybe [Text]
$sel:validationEmails:DomainValidation' :: DomainValidation -> Maybe [Text]
validationEmails} -> Maybe [Text]
validationEmails) (\s :: DomainValidation
s@DomainValidation' {} Maybe [Text]
a -> DomainValidation
s {$sel:validationEmails:DomainValidation' :: Maybe [Text]
validationEmails = Maybe [Text]
a} :: DomainValidation) 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
domainValidation_validationMethod :: Lens.Lens' DomainValidation (Prelude.Maybe ValidationMethod)
domainValidation_validationMethod :: Lens' DomainValidation (Maybe ValidationMethod)
domainValidation_validationMethod = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DomainValidation' {Maybe ValidationMethod
validationMethod :: Maybe ValidationMethod
$sel:validationMethod:DomainValidation' :: DomainValidation -> Maybe ValidationMethod
validationMethod} -> Maybe ValidationMethod
validationMethod) (\s :: DomainValidation
s@DomainValidation' {} Maybe ValidationMethod
a -> DomainValidation
s {$sel:validationMethod:DomainValidation' :: Maybe ValidationMethod
validationMethod = Maybe ValidationMethod
a} :: DomainValidation)
domainValidation_validationStatus :: Lens.Lens' DomainValidation (Prelude.Maybe DomainStatus)
domainValidation_validationStatus :: Lens' DomainValidation (Maybe DomainStatus)
domainValidation_validationStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DomainValidation' {Maybe DomainStatus
validationStatus :: Maybe DomainStatus
$sel:validationStatus:DomainValidation' :: DomainValidation -> Maybe DomainStatus
validationStatus} -> Maybe DomainStatus
validationStatus) (\s :: DomainValidation
s@DomainValidation' {} Maybe DomainStatus
a -> DomainValidation
s {$sel:validationStatus:DomainValidation' :: Maybe DomainStatus
validationStatus = Maybe DomainStatus
a} :: DomainValidation)
domainValidation_domainName :: Lens.Lens' DomainValidation Prelude.Text
domainValidation_domainName :: Lens' DomainValidation Text
domainValidation_domainName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DomainValidation' {Text
domainName :: Text
$sel:domainName:DomainValidation' :: DomainValidation -> Text
domainName} -> Text
domainName) (\s :: DomainValidation
s@DomainValidation' {} Text
a -> DomainValidation
s {$sel:domainName:DomainValidation' :: Text
domainName = Text
a} :: DomainValidation)
instance Data.FromJSON DomainValidation where
parseJSON :: Value -> Parser DomainValidation
parseJSON =
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
String
"DomainValidation"
( \Object
x ->
Maybe ResourceRecord
-> Maybe Text
-> Maybe [Text]
-> Maybe ValidationMethod
-> Maybe DomainStatus
-> Text
-> DomainValidation
DomainValidation'
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
"ResourceRecord")
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
"ValidationDomain")
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
"ValidationEmails"
forall a. Parser (Maybe a) -> a -> Parser a
Data..!= forall a. Monoid a => a
Prelude.mempty
)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"ValidationMethod")
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
"ValidationStatus")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser a
Data..: Key
"DomainName")
)
instance Prelude.Hashable DomainValidation where
hashWithSalt :: Int -> DomainValidation -> Int
hashWithSalt Int
_salt DomainValidation' {Maybe [Text]
Maybe Text
Maybe DomainStatus
Maybe ResourceRecord
Maybe ValidationMethod
Text
domainName :: Text
validationStatus :: Maybe DomainStatus
validationMethod :: Maybe ValidationMethod
validationEmails :: Maybe [Text]
validationDomain :: Maybe Text
resourceRecord :: Maybe ResourceRecord
$sel:domainName:DomainValidation' :: DomainValidation -> Text
$sel:validationStatus:DomainValidation' :: DomainValidation -> Maybe DomainStatus
$sel:validationMethod:DomainValidation' :: DomainValidation -> Maybe ValidationMethod
$sel:validationEmails:DomainValidation' :: DomainValidation -> Maybe [Text]
$sel:validationDomain:DomainValidation' :: DomainValidation -> Maybe Text
$sel:resourceRecord:DomainValidation' :: DomainValidation -> Maybe ResourceRecord
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ResourceRecord
resourceRecord
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
validationDomain
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Text]
validationEmails
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ValidationMethod
validationMethod
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe DomainStatus
validationStatus
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
domainName
instance Prelude.NFData DomainValidation where
rnf :: DomainValidation -> ()
rnf DomainValidation' {Maybe [Text]
Maybe Text
Maybe DomainStatus
Maybe ResourceRecord
Maybe ValidationMethod
Text
domainName :: Text
validationStatus :: Maybe DomainStatus
validationMethod :: Maybe ValidationMethod
validationEmails :: Maybe [Text]
validationDomain :: Maybe Text
resourceRecord :: Maybe ResourceRecord
$sel:domainName:DomainValidation' :: DomainValidation -> Text
$sel:validationStatus:DomainValidation' :: DomainValidation -> Maybe DomainStatus
$sel:validationMethod:DomainValidation' :: DomainValidation -> Maybe ValidationMethod
$sel:validationEmails:DomainValidation' :: DomainValidation -> Maybe [Text]
$sel:validationDomain:DomainValidation' :: DomainValidation -> Maybe Text
$sel:resourceRecord:DomainValidation' :: DomainValidation -> Maybe ResourceRecord
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe ResourceRecord
resourceRecord
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
validationDomain
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Text]
validationEmails
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ValidationMethod
validationMethod
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe DomainStatus
validationStatus
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
domainName