{-# 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.CloudFront.Types.ViewerCertificate where
import Amazonka.CloudFront.Types.CertificateSource
import Amazonka.CloudFront.Types.MinimumProtocolVersion
import Amazonka.CloudFront.Types.SSLSupportMethod
import qualified Amazonka.Core as Core
import qualified Amazonka.Lens as Lens
import qualified Amazonka.Prelude as Prelude
data ViewerCertificate = ViewerCertificate'
{
ViewerCertificate -> Maybe SSLSupportMethod
sSLSupportMethod :: Prelude.Maybe SSLSupportMethod,
ViewerCertificate -> Maybe Text
aCMCertificateArn :: Prelude.Maybe Prelude.Text,
ViewerCertificate -> Maybe CertificateSource
certificateSource :: Prelude.Maybe CertificateSource,
ViewerCertificate -> Maybe MinimumProtocolVersion
minimumProtocolVersion :: Prelude.Maybe MinimumProtocolVersion,
ViewerCertificate -> Maybe Text
certificate :: Prelude.Maybe Prelude.Text,
ViewerCertificate -> Maybe Text
iAMCertificateId :: Prelude.Maybe Prelude.Text,
ViewerCertificate -> Maybe Bool
cloudFrontDefaultCertificate :: Prelude.Maybe Prelude.Bool
}
deriving (ViewerCertificate -> ViewerCertificate -> Bool
(ViewerCertificate -> ViewerCertificate -> Bool)
-> (ViewerCertificate -> ViewerCertificate -> Bool)
-> Eq ViewerCertificate
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ViewerCertificate -> ViewerCertificate -> Bool
$c/= :: ViewerCertificate -> ViewerCertificate -> Bool
== :: ViewerCertificate -> ViewerCertificate -> Bool
$c== :: ViewerCertificate -> ViewerCertificate -> Bool
Prelude.Eq, ReadPrec [ViewerCertificate]
ReadPrec ViewerCertificate
Int -> ReadS ViewerCertificate
ReadS [ViewerCertificate]
(Int -> ReadS ViewerCertificate)
-> ReadS [ViewerCertificate]
-> ReadPrec ViewerCertificate
-> ReadPrec [ViewerCertificate]
-> Read ViewerCertificate
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ViewerCertificate]
$creadListPrec :: ReadPrec [ViewerCertificate]
readPrec :: ReadPrec ViewerCertificate
$creadPrec :: ReadPrec ViewerCertificate
readList :: ReadS [ViewerCertificate]
$creadList :: ReadS [ViewerCertificate]
readsPrec :: Int -> ReadS ViewerCertificate
$creadsPrec :: Int -> ReadS ViewerCertificate
Prelude.Read, Int -> ViewerCertificate -> ShowS
[ViewerCertificate] -> ShowS
ViewerCertificate -> String
(Int -> ViewerCertificate -> ShowS)
-> (ViewerCertificate -> String)
-> ([ViewerCertificate] -> ShowS)
-> Show ViewerCertificate
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ViewerCertificate] -> ShowS
$cshowList :: [ViewerCertificate] -> ShowS
show :: ViewerCertificate -> String
$cshow :: ViewerCertificate -> String
showsPrec :: Int -> ViewerCertificate -> ShowS
$cshowsPrec :: Int -> ViewerCertificate -> ShowS
Prelude.Show, (forall x. ViewerCertificate -> Rep ViewerCertificate x)
-> (forall x. Rep ViewerCertificate x -> ViewerCertificate)
-> Generic ViewerCertificate
forall x. Rep ViewerCertificate x -> ViewerCertificate
forall x. ViewerCertificate -> Rep ViewerCertificate x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ViewerCertificate x -> ViewerCertificate
$cfrom :: forall x. ViewerCertificate -> Rep ViewerCertificate x
Prelude.Generic)
newViewerCertificate ::
ViewerCertificate
newViewerCertificate :: ViewerCertificate
newViewerCertificate =
ViewerCertificate' :: Maybe SSLSupportMethod
-> Maybe Text
-> Maybe CertificateSource
-> Maybe MinimumProtocolVersion
-> Maybe Text
-> Maybe Text
-> Maybe Bool
-> ViewerCertificate
ViewerCertificate'
{ $sel:sSLSupportMethod:ViewerCertificate' :: Maybe SSLSupportMethod
sSLSupportMethod =
Maybe SSLSupportMethod
forall a. Maybe a
Prelude.Nothing,
$sel:aCMCertificateArn:ViewerCertificate' :: Maybe Text
aCMCertificateArn = Maybe Text
forall a. Maybe a
Prelude.Nothing,
$sel:certificateSource:ViewerCertificate' :: Maybe CertificateSource
certificateSource = Maybe CertificateSource
forall a. Maybe a
Prelude.Nothing,
$sel:minimumProtocolVersion:ViewerCertificate' :: Maybe MinimumProtocolVersion
minimumProtocolVersion = Maybe MinimumProtocolVersion
forall a. Maybe a
Prelude.Nothing,
$sel:certificate:ViewerCertificate' :: Maybe Text
certificate = Maybe Text
forall a. Maybe a
Prelude.Nothing,
$sel:iAMCertificateId:ViewerCertificate' :: Maybe Text
iAMCertificateId = Maybe Text
forall a. Maybe a
Prelude.Nothing,
$sel:cloudFrontDefaultCertificate:ViewerCertificate' :: Maybe Bool
cloudFrontDefaultCertificate = Maybe Bool
forall a. Maybe a
Prelude.Nothing
}
viewerCertificate_sSLSupportMethod :: Lens.Lens' ViewerCertificate (Prelude.Maybe SSLSupportMethod)
viewerCertificate_sSLSupportMethod :: (Maybe SSLSupportMethod -> f (Maybe SSLSupportMethod))
-> ViewerCertificate -> f ViewerCertificate
viewerCertificate_sSLSupportMethod = (ViewerCertificate -> Maybe SSLSupportMethod)
-> (ViewerCertificate
-> Maybe SSLSupportMethod -> ViewerCertificate)
-> Lens
ViewerCertificate
ViewerCertificate
(Maybe SSLSupportMethod)
(Maybe SSLSupportMethod)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ViewerCertificate' {Maybe SSLSupportMethod
sSLSupportMethod :: Maybe SSLSupportMethod
$sel:sSLSupportMethod:ViewerCertificate' :: ViewerCertificate -> Maybe SSLSupportMethod
sSLSupportMethod} -> Maybe SSLSupportMethod
sSLSupportMethod) (\s :: ViewerCertificate
s@ViewerCertificate' {} Maybe SSLSupportMethod
a -> ViewerCertificate
s {$sel:sSLSupportMethod:ViewerCertificate' :: Maybe SSLSupportMethod
sSLSupportMethod = Maybe SSLSupportMethod
a} :: ViewerCertificate)
viewerCertificate_aCMCertificateArn :: Lens.Lens' ViewerCertificate (Prelude.Maybe Prelude.Text)
viewerCertificate_aCMCertificateArn :: (Maybe Text -> f (Maybe Text))
-> ViewerCertificate -> f ViewerCertificate
viewerCertificate_aCMCertificateArn = (ViewerCertificate -> Maybe Text)
-> (ViewerCertificate -> Maybe Text -> ViewerCertificate)
-> Lens
ViewerCertificate ViewerCertificate (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ViewerCertificate' {Maybe Text
aCMCertificateArn :: Maybe Text
$sel:aCMCertificateArn:ViewerCertificate' :: ViewerCertificate -> Maybe Text
aCMCertificateArn} -> Maybe Text
aCMCertificateArn) (\s :: ViewerCertificate
s@ViewerCertificate' {} Maybe Text
a -> ViewerCertificate
s {$sel:aCMCertificateArn:ViewerCertificate' :: Maybe Text
aCMCertificateArn = Maybe Text
a} :: ViewerCertificate)
viewerCertificate_certificateSource :: Lens.Lens' ViewerCertificate (Prelude.Maybe CertificateSource)
viewerCertificate_certificateSource :: (Maybe CertificateSource -> f (Maybe CertificateSource))
-> ViewerCertificate -> f ViewerCertificate
viewerCertificate_certificateSource = (ViewerCertificate -> Maybe CertificateSource)
-> (ViewerCertificate
-> Maybe CertificateSource -> ViewerCertificate)
-> Lens
ViewerCertificate
ViewerCertificate
(Maybe CertificateSource)
(Maybe CertificateSource)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ViewerCertificate' {Maybe CertificateSource
certificateSource :: Maybe CertificateSource
$sel:certificateSource:ViewerCertificate' :: ViewerCertificate -> Maybe CertificateSource
certificateSource} -> Maybe CertificateSource
certificateSource) (\s :: ViewerCertificate
s@ViewerCertificate' {} Maybe CertificateSource
a -> ViewerCertificate
s {$sel:certificateSource:ViewerCertificate' :: Maybe CertificateSource
certificateSource = Maybe CertificateSource
a} :: ViewerCertificate)
viewerCertificate_minimumProtocolVersion :: Lens.Lens' ViewerCertificate (Prelude.Maybe MinimumProtocolVersion)
viewerCertificate_minimumProtocolVersion :: (Maybe MinimumProtocolVersion -> f (Maybe MinimumProtocolVersion))
-> ViewerCertificate -> f ViewerCertificate
viewerCertificate_minimumProtocolVersion = (ViewerCertificate -> Maybe MinimumProtocolVersion)
-> (ViewerCertificate
-> Maybe MinimumProtocolVersion -> ViewerCertificate)
-> Lens
ViewerCertificate
ViewerCertificate
(Maybe MinimumProtocolVersion)
(Maybe MinimumProtocolVersion)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ViewerCertificate' {Maybe MinimumProtocolVersion
minimumProtocolVersion :: Maybe MinimumProtocolVersion
$sel:minimumProtocolVersion:ViewerCertificate' :: ViewerCertificate -> Maybe MinimumProtocolVersion
minimumProtocolVersion} -> Maybe MinimumProtocolVersion
minimumProtocolVersion) (\s :: ViewerCertificate
s@ViewerCertificate' {} Maybe MinimumProtocolVersion
a -> ViewerCertificate
s {$sel:minimumProtocolVersion:ViewerCertificate' :: Maybe MinimumProtocolVersion
minimumProtocolVersion = Maybe MinimumProtocolVersion
a} :: ViewerCertificate)
viewerCertificate_certificate :: Lens.Lens' ViewerCertificate (Prelude.Maybe Prelude.Text)
viewerCertificate_certificate :: (Maybe Text -> f (Maybe Text))
-> ViewerCertificate -> f ViewerCertificate
viewerCertificate_certificate = (ViewerCertificate -> Maybe Text)
-> (ViewerCertificate -> Maybe Text -> ViewerCertificate)
-> Lens
ViewerCertificate ViewerCertificate (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ViewerCertificate' {Maybe Text
certificate :: Maybe Text
$sel:certificate:ViewerCertificate' :: ViewerCertificate -> Maybe Text
certificate} -> Maybe Text
certificate) (\s :: ViewerCertificate
s@ViewerCertificate' {} Maybe Text
a -> ViewerCertificate
s {$sel:certificate:ViewerCertificate' :: Maybe Text
certificate = Maybe Text
a} :: ViewerCertificate)
viewerCertificate_iAMCertificateId :: Lens.Lens' ViewerCertificate (Prelude.Maybe Prelude.Text)
viewerCertificate_iAMCertificateId :: (Maybe Text -> f (Maybe Text))
-> ViewerCertificate -> f ViewerCertificate
viewerCertificate_iAMCertificateId = (ViewerCertificate -> Maybe Text)
-> (ViewerCertificate -> Maybe Text -> ViewerCertificate)
-> Lens
ViewerCertificate ViewerCertificate (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ViewerCertificate' {Maybe Text
iAMCertificateId :: Maybe Text
$sel:iAMCertificateId:ViewerCertificate' :: ViewerCertificate -> Maybe Text
iAMCertificateId} -> Maybe Text
iAMCertificateId) (\s :: ViewerCertificate
s@ViewerCertificate' {} Maybe Text
a -> ViewerCertificate
s {$sel:iAMCertificateId:ViewerCertificate' :: Maybe Text
iAMCertificateId = Maybe Text
a} :: ViewerCertificate)
viewerCertificate_cloudFrontDefaultCertificate :: Lens.Lens' ViewerCertificate (Prelude.Maybe Prelude.Bool)
viewerCertificate_cloudFrontDefaultCertificate :: (Maybe Bool -> f (Maybe Bool))
-> ViewerCertificate -> f ViewerCertificate
viewerCertificate_cloudFrontDefaultCertificate = (ViewerCertificate -> Maybe Bool)
-> (ViewerCertificate -> Maybe Bool -> ViewerCertificate)
-> Lens
ViewerCertificate ViewerCertificate (Maybe Bool) (Maybe Bool)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ViewerCertificate' {Maybe Bool
cloudFrontDefaultCertificate :: Maybe Bool
$sel:cloudFrontDefaultCertificate:ViewerCertificate' :: ViewerCertificate -> Maybe Bool
cloudFrontDefaultCertificate} -> Maybe Bool
cloudFrontDefaultCertificate) (\s :: ViewerCertificate
s@ViewerCertificate' {} Maybe Bool
a -> ViewerCertificate
s {$sel:cloudFrontDefaultCertificate:ViewerCertificate' :: Maybe Bool
cloudFrontDefaultCertificate = Maybe Bool
a} :: ViewerCertificate)
instance Core.FromXML ViewerCertificate where
parseXML :: [Node] -> Either String ViewerCertificate
parseXML [Node]
x =
Maybe SSLSupportMethod
-> Maybe Text
-> Maybe CertificateSource
-> Maybe MinimumProtocolVersion
-> Maybe Text
-> Maybe Text
-> Maybe Bool
-> ViewerCertificate
ViewerCertificate'
(Maybe SSLSupportMethod
-> Maybe Text
-> Maybe CertificateSource
-> Maybe MinimumProtocolVersion
-> Maybe Text
-> Maybe Text
-> Maybe Bool
-> ViewerCertificate)
-> Either String (Maybe SSLSupportMethod)
-> Either
String
(Maybe Text
-> Maybe CertificateSource
-> Maybe MinimumProtocolVersion
-> Maybe Text
-> Maybe Text
-> Maybe Bool
-> ViewerCertificate)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> ([Node]
x [Node] -> Text -> Either String (Maybe SSLSupportMethod)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"SSLSupportMethod")
Either
String
(Maybe Text
-> Maybe CertificateSource
-> Maybe MinimumProtocolVersion
-> Maybe Text
-> Maybe Text
-> Maybe Bool
-> ViewerCertificate)
-> Either String (Maybe Text)
-> Either
String
(Maybe CertificateSource
-> Maybe MinimumProtocolVersion
-> Maybe Text
-> Maybe Text
-> Maybe Bool
-> ViewerCertificate)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Text)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"ACMCertificateArn")
Either
String
(Maybe CertificateSource
-> Maybe MinimumProtocolVersion
-> Maybe Text
-> Maybe Text
-> Maybe Bool
-> ViewerCertificate)
-> Either String (Maybe CertificateSource)
-> Either
String
(Maybe MinimumProtocolVersion
-> Maybe Text -> Maybe Text -> Maybe Bool -> ViewerCertificate)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe CertificateSource)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"CertificateSource")
Either
String
(Maybe MinimumProtocolVersion
-> Maybe Text -> Maybe Text -> Maybe Bool -> ViewerCertificate)
-> Either String (Maybe MinimumProtocolVersion)
-> Either
String
(Maybe Text -> Maybe Text -> Maybe Bool -> ViewerCertificate)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe MinimumProtocolVersion)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"MinimumProtocolVersion")
Either
String
(Maybe Text -> Maybe Text -> Maybe Bool -> ViewerCertificate)
-> Either String (Maybe Text)
-> Either String (Maybe Text -> Maybe Bool -> ViewerCertificate)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Text)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"Certificate")
Either String (Maybe Text -> Maybe Bool -> ViewerCertificate)
-> Either String (Maybe Text)
-> Either String (Maybe Bool -> ViewerCertificate)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Text)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"IAMCertificateId")
Either String (Maybe Bool -> ViewerCertificate)
-> Either String (Maybe Bool) -> Either String ViewerCertificate
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Bool)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"CloudFrontDefaultCertificate")
instance Prelude.Hashable ViewerCertificate
instance Prelude.NFData ViewerCertificate
instance Core.ToXML ViewerCertificate where
toXML :: ViewerCertificate -> XML
toXML ViewerCertificate' {Maybe Bool
Maybe Text
Maybe CertificateSource
Maybe MinimumProtocolVersion
Maybe SSLSupportMethod
cloudFrontDefaultCertificate :: Maybe Bool
iAMCertificateId :: Maybe Text
certificate :: Maybe Text
minimumProtocolVersion :: Maybe MinimumProtocolVersion
certificateSource :: Maybe CertificateSource
aCMCertificateArn :: Maybe Text
sSLSupportMethod :: Maybe SSLSupportMethod
$sel:cloudFrontDefaultCertificate:ViewerCertificate' :: ViewerCertificate -> Maybe Bool
$sel:iAMCertificateId:ViewerCertificate' :: ViewerCertificate -> Maybe Text
$sel:certificate:ViewerCertificate' :: ViewerCertificate -> Maybe Text
$sel:minimumProtocolVersion:ViewerCertificate' :: ViewerCertificate -> Maybe MinimumProtocolVersion
$sel:certificateSource:ViewerCertificate' :: ViewerCertificate -> Maybe CertificateSource
$sel:aCMCertificateArn:ViewerCertificate' :: ViewerCertificate -> Maybe Text
$sel:sSLSupportMethod:ViewerCertificate' :: ViewerCertificate -> Maybe SSLSupportMethod
..} =
[XML] -> XML
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ Name
"SSLSupportMethod" Name -> Maybe SSLSupportMethod -> XML
forall a. ToXML a => Name -> a -> XML
Core.@= Maybe SSLSupportMethod
sSLSupportMethod,
Name
"ACMCertificateArn" Name -> Maybe Text -> XML
forall a. ToXML a => Name -> a -> XML
Core.@= Maybe Text
aCMCertificateArn,
Name
"CertificateSource" Name -> Maybe CertificateSource -> XML
forall a. ToXML a => Name -> a -> XML
Core.@= Maybe CertificateSource
certificateSource,
Name
"MinimumProtocolVersion"
Name -> Maybe MinimumProtocolVersion -> XML
forall a. ToXML a => Name -> a -> XML
Core.@= Maybe MinimumProtocolVersion
minimumProtocolVersion,
Name
"Certificate" Name -> Maybe Text -> XML
forall a. ToXML a => Name -> a -> XML
Core.@= Maybe Text
certificate,
Name
"IAMCertificateId" Name -> Maybe Text -> XML
forall a. ToXML a => Name -> a -> XML
Core.@= Maybe Text
iAMCertificateId,
Name
"CloudFrontDefaultCertificate"
Name -> Maybe Bool -> XML
forall a. ToXML a => Name -> a -> XML
Core.@= Maybe Bool
cloudFrontDefaultCertificate
]