{-# 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.CertificateManagerPCA.Types.GeneralName where
import Amazonka.CertificateManagerPCA.Types.ASN1Subject
import Amazonka.CertificateManagerPCA.Types.EdiPartyName
import Amazonka.CertificateManagerPCA.Types.OtherName
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 GeneralName = GeneralName'
{ GeneralName -> Maybe ASN1Subject
directoryName :: Prelude.Maybe ASN1Subject,
GeneralName -> Maybe Text
dnsName :: Prelude.Maybe Prelude.Text,
GeneralName -> Maybe EdiPartyName
ediPartyName :: Prelude.Maybe EdiPartyName,
GeneralName -> Maybe Text
ipAddress :: Prelude.Maybe Prelude.Text,
GeneralName -> Maybe OtherName
otherName :: Prelude.Maybe OtherName,
GeneralName -> Maybe Text
registeredId :: Prelude.Maybe Prelude.Text,
GeneralName -> Maybe Text
rfc822Name :: Prelude.Maybe Prelude.Text,
GeneralName -> Maybe Text
uniformResourceIdentifier :: Prelude.Maybe Prelude.Text
}
deriving (GeneralName -> GeneralName -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GeneralName -> GeneralName -> Bool
$c/= :: GeneralName -> GeneralName -> Bool
== :: GeneralName -> GeneralName -> Bool
$c== :: GeneralName -> GeneralName -> Bool
Prelude.Eq, ReadPrec [GeneralName]
ReadPrec GeneralName
Int -> ReadS GeneralName
ReadS [GeneralName]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GeneralName]
$creadListPrec :: ReadPrec [GeneralName]
readPrec :: ReadPrec GeneralName
$creadPrec :: ReadPrec GeneralName
readList :: ReadS [GeneralName]
$creadList :: ReadS [GeneralName]
readsPrec :: Int -> ReadS GeneralName
$creadsPrec :: Int -> ReadS GeneralName
Prelude.Read, Int -> GeneralName -> ShowS
[GeneralName] -> ShowS
GeneralName -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GeneralName] -> ShowS
$cshowList :: [GeneralName] -> ShowS
show :: GeneralName -> String
$cshow :: GeneralName -> String
showsPrec :: Int -> GeneralName -> ShowS
$cshowsPrec :: Int -> GeneralName -> ShowS
Prelude.Show, forall x. Rep GeneralName x -> GeneralName
forall x. GeneralName -> Rep GeneralName x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GeneralName x -> GeneralName
$cfrom :: forall x. GeneralName -> Rep GeneralName x
Prelude.Generic)
newGeneralName ::
GeneralName
newGeneralName :: GeneralName
newGeneralName =
GeneralName'
{ $sel:directoryName:GeneralName' :: Maybe ASN1Subject
directoryName = forall a. Maybe a
Prelude.Nothing,
$sel:dnsName:GeneralName' :: Maybe Text
dnsName = forall a. Maybe a
Prelude.Nothing,
$sel:ediPartyName:GeneralName' :: Maybe EdiPartyName
ediPartyName = forall a. Maybe a
Prelude.Nothing,
$sel:ipAddress:GeneralName' :: Maybe Text
ipAddress = forall a. Maybe a
Prelude.Nothing,
$sel:otherName:GeneralName' :: Maybe OtherName
otherName = forall a. Maybe a
Prelude.Nothing,
$sel:registeredId:GeneralName' :: Maybe Text
registeredId = forall a. Maybe a
Prelude.Nothing,
$sel:rfc822Name:GeneralName' :: Maybe Text
rfc822Name = forall a. Maybe a
Prelude.Nothing,
$sel:uniformResourceIdentifier:GeneralName' :: Maybe Text
uniformResourceIdentifier = forall a. Maybe a
Prelude.Nothing
}
generalName_directoryName :: Lens.Lens' GeneralName (Prelude.Maybe ASN1Subject)
generalName_directoryName :: Lens' GeneralName (Maybe ASN1Subject)
generalName_directoryName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GeneralName' {Maybe ASN1Subject
directoryName :: Maybe ASN1Subject
$sel:directoryName:GeneralName' :: GeneralName -> Maybe ASN1Subject
directoryName} -> Maybe ASN1Subject
directoryName) (\s :: GeneralName
s@GeneralName' {} Maybe ASN1Subject
a -> GeneralName
s {$sel:directoryName:GeneralName' :: Maybe ASN1Subject
directoryName = Maybe ASN1Subject
a} :: GeneralName)
generalName_dnsName :: Lens.Lens' GeneralName (Prelude.Maybe Prelude.Text)
generalName_dnsName :: Lens' GeneralName (Maybe Text)
generalName_dnsName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GeneralName' {Maybe Text
dnsName :: Maybe Text
$sel:dnsName:GeneralName' :: GeneralName -> Maybe Text
dnsName} -> Maybe Text
dnsName) (\s :: GeneralName
s@GeneralName' {} Maybe Text
a -> GeneralName
s {$sel:dnsName:GeneralName' :: Maybe Text
dnsName = Maybe Text
a} :: GeneralName)
generalName_ediPartyName :: Lens.Lens' GeneralName (Prelude.Maybe EdiPartyName)
generalName_ediPartyName :: Lens' GeneralName (Maybe EdiPartyName)
generalName_ediPartyName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GeneralName' {Maybe EdiPartyName
ediPartyName :: Maybe EdiPartyName
$sel:ediPartyName:GeneralName' :: GeneralName -> Maybe EdiPartyName
ediPartyName} -> Maybe EdiPartyName
ediPartyName) (\s :: GeneralName
s@GeneralName' {} Maybe EdiPartyName
a -> GeneralName
s {$sel:ediPartyName:GeneralName' :: Maybe EdiPartyName
ediPartyName = Maybe EdiPartyName
a} :: GeneralName)
generalName_ipAddress :: Lens.Lens' GeneralName (Prelude.Maybe Prelude.Text)
generalName_ipAddress :: Lens' GeneralName (Maybe Text)
generalName_ipAddress = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GeneralName' {Maybe Text
ipAddress :: Maybe Text
$sel:ipAddress:GeneralName' :: GeneralName -> Maybe Text
ipAddress} -> Maybe Text
ipAddress) (\s :: GeneralName
s@GeneralName' {} Maybe Text
a -> GeneralName
s {$sel:ipAddress:GeneralName' :: Maybe Text
ipAddress = Maybe Text
a} :: GeneralName)
generalName_otherName :: Lens.Lens' GeneralName (Prelude.Maybe OtherName)
generalName_otherName :: Lens' GeneralName (Maybe OtherName)
generalName_otherName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GeneralName' {Maybe OtherName
otherName :: Maybe OtherName
$sel:otherName:GeneralName' :: GeneralName -> Maybe OtherName
otherName} -> Maybe OtherName
otherName) (\s :: GeneralName
s@GeneralName' {} Maybe OtherName
a -> GeneralName
s {$sel:otherName:GeneralName' :: Maybe OtherName
otherName = Maybe OtherName
a} :: GeneralName)
generalName_registeredId :: Lens.Lens' GeneralName (Prelude.Maybe Prelude.Text)
generalName_registeredId :: Lens' GeneralName (Maybe Text)
generalName_registeredId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GeneralName' {Maybe Text
registeredId :: Maybe Text
$sel:registeredId:GeneralName' :: GeneralName -> Maybe Text
registeredId} -> Maybe Text
registeredId) (\s :: GeneralName
s@GeneralName' {} Maybe Text
a -> GeneralName
s {$sel:registeredId:GeneralName' :: Maybe Text
registeredId = Maybe Text
a} :: GeneralName)
generalName_rfc822Name :: Lens.Lens' GeneralName (Prelude.Maybe Prelude.Text)
generalName_rfc822Name :: Lens' GeneralName (Maybe Text)
generalName_rfc822Name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GeneralName' {Maybe Text
rfc822Name :: Maybe Text
$sel:rfc822Name:GeneralName' :: GeneralName -> Maybe Text
rfc822Name} -> Maybe Text
rfc822Name) (\s :: GeneralName
s@GeneralName' {} Maybe Text
a -> GeneralName
s {$sel:rfc822Name:GeneralName' :: Maybe Text
rfc822Name = Maybe Text
a} :: GeneralName)
generalName_uniformResourceIdentifier :: Lens.Lens' GeneralName (Prelude.Maybe Prelude.Text)
generalName_uniformResourceIdentifier :: Lens' GeneralName (Maybe Text)
generalName_uniformResourceIdentifier = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GeneralName' {Maybe Text
uniformResourceIdentifier :: Maybe Text
$sel:uniformResourceIdentifier:GeneralName' :: GeneralName -> Maybe Text
uniformResourceIdentifier} -> Maybe Text
uniformResourceIdentifier) (\s :: GeneralName
s@GeneralName' {} Maybe Text
a -> GeneralName
s {$sel:uniformResourceIdentifier:GeneralName' :: Maybe Text
uniformResourceIdentifier = Maybe Text
a} :: GeneralName)
instance Data.FromJSON GeneralName where
parseJSON :: Value -> Parser GeneralName
parseJSON =
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
String
"GeneralName"
( \Object
x ->
Maybe ASN1Subject
-> Maybe Text
-> Maybe EdiPartyName
-> Maybe Text
-> Maybe OtherName
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> GeneralName
GeneralName'
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
"DirectoryName")
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
"DnsName")
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
"EdiPartyName")
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
"IpAddress")
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
"OtherName")
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
"RegisteredId")
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
"Rfc822Name")
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
"UniformResourceIdentifier")
)
instance Prelude.Hashable GeneralName where
hashWithSalt :: Int -> GeneralName -> Int
hashWithSalt Int
_salt GeneralName' {Maybe Text
Maybe ASN1Subject
Maybe EdiPartyName
Maybe OtherName
uniformResourceIdentifier :: Maybe Text
rfc822Name :: Maybe Text
registeredId :: Maybe Text
otherName :: Maybe OtherName
ipAddress :: Maybe Text
ediPartyName :: Maybe EdiPartyName
dnsName :: Maybe Text
directoryName :: Maybe ASN1Subject
$sel:uniformResourceIdentifier:GeneralName' :: GeneralName -> Maybe Text
$sel:rfc822Name:GeneralName' :: GeneralName -> Maybe Text
$sel:registeredId:GeneralName' :: GeneralName -> Maybe Text
$sel:otherName:GeneralName' :: GeneralName -> Maybe OtherName
$sel:ipAddress:GeneralName' :: GeneralName -> Maybe Text
$sel:ediPartyName:GeneralName' :: GeneralName -> Maybe EdiPartyName
$sel:dnsName:GeneralName' :: GeneralName -> Maybe Text
$sel:directoryName:GeneralName' :: GeneralName -> Maybe ASN1Subject
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ASN1Subject
directoryName
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
dnsName
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe EdiPartyName
ediPartyName
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
ipAddress
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe OtherName
otherName
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
registeredId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
rfc822Name
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
uniformResourceIdentifier
instance Prelude.NFData GeneralName where
rnf :: GeneralName -> ()
rnf GeneralName' {Maybe Text
Maybe ASN1Subject
Maybe EdiPartyName
Maybe OtherName
uniformResourceIdentifier :: Maybe Text
rfc822Name :: Maybe Text
registeredId :: Maybe Text
otherName :: Maybe OtherName
ipAddress :: Maybe Text
ediPartyName :: Maybe EdiPartyName
dnsName :: Maybe Text
directoryName :: Maybe ASN1Subject
$sel:uniformResourceIdentifier:GeneralName' :: GeneralName -> Maybe Text
$sel:rfc822Name:GeneralName' :: GeneralName -> Maybe Text
$sel:registeredId:GeneralName' :: GeneralName -> Maybe Text
$sel:otherName:GeneralName' :: GeneralName -> Maybe OtherName
$sel:ipAddress:GeneralName' :: GeneralName -> Maybe Text
$sel:ediPartyName:GeneralName' :: GeneralName -> Maybe EdiPartyName
$sel:dnsName:GeneralName' :: GeneralName -> Maybe Text
$sel:directoryName:GeneralName' :: GeneralName -> Maybe ASN1Subject
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe ASN1Subject
directoryName
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
dnsName
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe EdiPartyName
ediPartyName
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
ipAddress
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe OtherName
otherName
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
registeredId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
rfc822Name
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
uniformResourceIdentifier
instance Data.ToJSON GeneralName where
toJSON :: GeneralName -> Value
toJSON GeneralName' {Maybe Text
Maybe ASN1Subject
Maybe EdiPartyName
Maybe OtherName
uniformResourceIdentifier :: Maybe Text
rfc822Name :: Maybe Text
registeredId :: Maybe Text
otherName :: Maybe OtherName
ipAddress :: Maybe Text
ediPartyName :: Maybe EdiPartyName
dnsName :: Maybe Text
directoryName :: Maybe ASN1Subject
$sel:uniformResourceIdentifier:GeneralName' :: GeneralName -> Maybe Text
$sel:rfc822Name:GeneralName' :: GeneralName -> Maybe Text
$sel:registeredId:GeneralName' :: GeneralName -> Maybe Text
$sel:otherName:GeneralName' :: GeneralName -> Maybe OtherName
$sel:ipAddress:GeneralName' :: GeneralName -> Maybe Text
$sel:ediPartyName:GeneralName' :: GeneralName -> Maybe EdiPartyName
$sel:dnsName:GeneralName' :: GeneralName -> Maybe Text
$sel:directoryName:GeneralName' :: GeneralName -> Maybe ASN1Subject
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"DirectoryName" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe ASN1Subject
directoryName,
(Key
"DnsName" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
dnsName,
(Key
"EdiPartyName" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe EdiPartyName
ediPartyName,
(Key
"IpAddress" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
ipAddress,
(Key
"OtherName" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe OtherName
otherName,
(Key
"RegisteredId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
registeredId,
(Key
"Rfc822Name" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
rfc822Name,
(Key
"UniformResourceIdentifier" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
uniformResourceIdentifier
]
)