{-# 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.Distribution where
import Amazonka.CloudFront.Types.ActiveTrustedKeyGroups
import Amazonka.CloudFront.Types.ActiveTrustedSigners
import Amazonka.CloudFront.Types.AliasICPRecordal
import Amazonka.CloudFront.Types.DistributionConfig
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 Distribution = Distribution'
{
Distribution -> Maybe ActiveTrustedKeyGroups
activeTrustedKeyGroups :: Prelude.Maybe ActiveTrustedKeyGroups,
Distribution -> Maybe ActiveTrustedSigners
activeTrustedSigners :: Prelude.Maybe ActiveTrustedSigners,
Distribution -> Maybe [AliasICPRecordal]
aliasICPRecordals :: Prelude.Maybe [AliasICPRecordal],
Distribution -> Text
id :: Prelude.Text,
Distribution -> Text
arn :: Prelude.Text,
Distribution -> Text
status :: Prelude.Text,
Distribution -> ISO8601
lastModifiedTime :: Data.ISO8601,
Distribution -> Int
inProgressInvalidationBatches :: Prelude.Int,
Distribution -> Text
domainName :: Prelude.Text,
Distribution -> DistributionConfig
distributionConfig :: DistributionConfig
}
deriving (Distribution -> Distribution -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Distribution -> Distribution -> Bool
$c/= :: Distribution -> Distribution -> Bool
== :: Distribution -> Distribution -> Bool
$c== :: Distribution -> Distribution -> Bool
Prelude.Eq, Int -> Distribution -> ShowS
[Distribution] -> ShowS
Distribution -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Distribution] -> ShowS
$cshowList :: [Distribution] -> ShowS
show :: Distribution -> String
$cshow :: Distribution -> String
showsPrec :: Int -> Distribution -> ShowS
$cshowsPrec :: Int -> Distribution -> ShowS
Prelude.Show, forall x. Rep Distribution x -> Distribution
forall x. Distribution -> Rep Distribution x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep Distribution x -> Distribution
$cfrom :: forall x. Distribution -> Rep Distribution x
Prelude.Generic)
newDistribution ::
Prelude.Text ->
Prelude.Text ->
Prelude.Text ->
Prelude.UTCTime ->
Prelude.Int ->
Prelude.Text ->
DistributionConfig ->
Distribution
newDistribution :: Text
-> Text
-> Text
-> UTCTime
-> Int
-> Text
-> DistributionConfig
-> Distribution
newDistribution
Text
pId_
Text
pARN_
Text
pStatus_
UTCTime
pLastModifiedTime_
Int
pInProgressInvalidationBatches_
Text
pDomainName_
DistributionConfig
pDistributionConfig_ =
Distribution'
{ $sel:activeTrustedKeyGroups:Distribution' :: Maybe ActiveTrustedKeyGroups
activeTrustedKeyGroups =
forall a. Maybe a
Prelude.Nothing,
$sel:activeTrustedSigners:Distribution' :: Maybe ActiveTrustedSigners
activeTrustedSigners = forall a. Maybe a
Prelude.Nothing,
$sel:aliasICPRecordals:Distribution' :: Maybe [AliasICPRecordal]
aliasICPRecordals = forall a. Maybe a
Prelude.Nothing,
$sel:id:Distribution' :: Text
id = Text
pId_,
$sel:arn:Distribution' :: Text
arn = Text
pARN_,
$sel:status:Distribution' :: Text
status = Text
pStatus_,
$sel:lastModifiedTime:Distribution' :: ISO8601
lastModifiedTime =
forall (a :: Format). Iso' (Time a) UTCTime
Data._Time forall t b. AReview t b -> b -> t
Lens.# UTCTime
pLastModifiedTime_,
$sel:inProgressInvalidationBatches:Distribution' :: Int
inProgressInvalidationBatches =
Int
pInProgressInvalidationBatches_,
$sel:domainName:Distribution' :: Text
domainName = Text
pDomainName_,
$sel:distributionConfig:Distribution' :: DistributionConfig
distributionConfig = DistributionConfig
pDistributionConfig_
}
distribution_activeTrustedKeyGroups :: Lens.Lens' Distribution (Prelude.Maybe ActiveTrustedKeyGroups)
distribution_activeTrustedKeyGroups :: Lens' Distribution (Maybe ActiveTrustedKeyGroups)
distribution_activeTrustedKeyGroups = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Distribution' {Maybe ActiveTrustedKeyGroups
activeTrustedKeyGroups :: Maybe ActiveTrustedKeyGroups
$sel:activeTrustedKeyGroups:Distribution' :: Distribution -> Maybe ActiveTrustedKeyGroups
activeTrustedKeyGroups} -> Maybe ActiveTrustedKeyGroups
activeTrustedKeyGroups) (\s :: Distribution
s@Distribution' {} Maybe ActiveTrustedKeyGroups
a -> Distribution
s {$sel:activeTrustedKeyGroups:Distribution' :: Maybe ActiveTrustedKeyGroups
activeTrustedKeyGroups = Maybe ActiveTrustedKeyGroups
a} :: Distribution)
distribution_activeTrustedSigners :: Lens.Lens' Distribution (Prelude.Maybe ActiveTrustedSigners)
distribution_activeTrustedSigners :: Lens' Distribution (Maybe ActiveTrustedSigners)
distribution_activeTrustedSigners = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Distribution' {Maybe ActiveTrustedSigners
activeTrustedSigners :: Maybe ActiveTrustedSigners
$sel:activeTrustedSigners:Distribution' :: Distribution -> Maybe ActiveTrustedSigners
activeTrustedSigners} -> Maybe ActiveTrustedSigners
activeTrustedSigners) (\s :: Distribution
s@Distribution' {} Maybe ActiveTrustedSigners
a -> Distribution
s {$sel:activeTrustedSigners:Distribution' :: Maybe ActiveTrustedSigners
activeTrustedSigners = Maybe ActiveTrustedSigners
a} :: Distribution)
distribution_aliasICPRecordals :: Lens.Lens' Distribution (Prelude.Maybe [AliasICPRecordal])
distribution_aliasICPRecordals :: Lens' Distribution (Maybe [AliasICPRecordal])
distribution_aliasICPRecordals = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Distribution' {Maybe [AliasICPRecordal]
aliasICPRecordals :: Maybe [AliasICPRecordal]
$sel:aliasICPRecordals:Distribution' :: Distribution -> Maybe [AliasICPRecordal]
aliasICPRecordals} -> Maybe [AliasICPRecordal]
aliasICPRecordals) (\s :: Distribution
s@Distribution' {} Maybe [AliasICPRecordal]
a -> Distribution
s {$sel:aliasICPRecordals:Distribution' :: Maybe [AliasICPRecordal]
aliasICPRecordals = Maybe [AliasICPRecordal]
a} :: Distribution) 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
distribution_id :: Lens.Lens' Distribution Prelude.Text
distribution_id :: Lens' Distribution Text
distribution_id = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Distribution' {Text
id :: Text
$sel:id:Distribution' :: Distribution -> Text
id} -> Text
id) (\s :: Distribution
s@Distribution' {} Text
a -> Distribution
s {$sel:id:Distribution' :: Text
id = Text
a} :: Distribution)
distribution_arn :: Lens.Lens' Distribution Prelude.Text
distribution_arn :: Lens' Distribution Text
distribution_arn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Distribution' {Text
arn :: Text
$sel:arn:Distribution' :: Distribution -> Text
arn} -> Text
arn) (\s :: Distribution
s@Distribution' {} Text
a -> Distribution
s {$sel:arn:Distribution' :: Text
arn = Text
a} :: Distribution)
distribution_status :: Lens.Lens' Distribution Prelude.Text
distribution_status :: Lens' Distribution Text
distribution_status = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Distribution' {Text
status :: Text
$sel:status:Distribution' :: Distribution -> Text
status} -> Text
status) (\s :: Distribution
s@Distribution' {} Text
a -> Distribution
s {$sel:status:Distribution' :: Text
status = Text
a} :: Distribution)
distribution_lastModifiedTime :: Lens.Lens' Distribution Prelude.UTCTime
distribution_lastModifiedTime :: Lens' Distribution UTCTime
distribution_lastModifiedTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Distribution' {ISO8601
lastModifiedTime :: ISO8601
$sel:lastModifiedTime:Distribution' :: Distribution -> ISO8601
lastModifiedTime} -> ISO8601
lastModifiedTime) (\s :: Distribution
s@Distribution' {} ISO8601
a -> Distribution
s {$sel:lastModifiedTime:Distribution' :: ISO8601
lastModifiedTime = ISO8601
a} :: Distribution) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (a :: Format). Iso' (Time a) UTCTime
Data._Time
distribution_inProgressInvalidationBatches :: Lens.Lens' Distribution Prelude.Int
distribution_inProgressInvalidationBatches :: Lens' Distribution Int
distribution_inProgressInvalidationBatches = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Distribution' {Int
inProgressInvalidationBatches :: Int
$sel:inProgressInvalidationBatches:Distribution' :: Distribution -> Int
inProgressInvalidationBatches} -> Int
inProgressInvalidationBatches) (\s :: Distribution
s@Distribution' {} Int
a -> Distribution
s {$sel:inProgressInvalidationBatches:Distribution' :: Int
inProgressInvalidationBatches = Int
a} :: Distribution)
distribution_domainName :: Lens.Lens' Distribution Prelude.Text
distribution_domainName :: Lens' Distribution Text
distribution_domainName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Distribution' {Text
domainName :: Text
$sel:domainName:Distribution' :: Distribution -> Text
domainName} -> Text
domainName) (\s :: Distribution
s@Distribution' {} Text
a -> Distribution
s {$sel:domainName:Distribution' :: Text
domainName = Text
a} :: Distribution)
distribution_distributionConfig :: Lens.Lens' Distribution DistributionConfig
distribution_distributionConfig :: Lens' Distribution DistributionConfig
distribution_distributionConfig = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Distribution' {DistributionConfig
distributionConfig :: DistributionConfig
$sel:distributionConfig:Distribution' :: Distribution -> DistributionConfig
distributionConfig} -> DistributionConfig
distributionConfig) (\s :: Distribution
s@Distribution' {} DistributionConfig
a -> Distribution
s {$sel:distributionConfig:Distribution' :: DistributionConfig
distributionConfig = DistributionConfig
a} :: Distribution)
instance Data.FromXML Distribution where
parseXML :: [Node] -> Either String Distribution
parseXML [Node]
x =
Maybe ActiveTrustedKeyGroups
-> Maybe ActiveTrustedSigners
-> Maybe [AliasICPRecordal]
-> Text
-> Text
-> Text
-> ISO8601
-> Int
-> Text
-> DistributionConfig
-> Distribution
Distribution'
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"ActiveTrustedKeyGroups")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"ActiveTrustedSigners")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( [Node]
x
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"AliasICPRecordals"
forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
Prelude.>>= forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may (forall a. FromXML a => Text -> [Node] -> Either String [a]
Data.parseXMLList Text
"AliasICPRecordal")
)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String a
Data..@ Text
"Id")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String a
Data..@ Text
"ARN")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String a
Data..@ Text
"Status")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String a
Data..@ Text
"LastModifiedTime")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String a
Data..@ Text
"InProgressInvalidationBatches")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String a
Data..@ Text
"DomainName")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String a
Data..@ Text
"DistributionConfig")
instance Prelude.Hashable Distribution where
hashWithSalt :: Int -> Distribution -> Int
hashWithSalt Int
_salt Distribution' {Int
Maybe [AliasICPRecordal]
Maybe ActiveTrustedKeyGroups
Maybe ActiveTrustedSigners
Text
ISO8601
DistributionConfig
distributionConfig :: DistributionConfig
domainName :: Text
inProgressInvalidationBatches :: Int
lastModifiedTime :: ISO8601
status :: Text
arn :: Text
id :: Text
aliasICPRecordals :: Maybe [AliasICPRecordal]
activeTrustedSigners :: Maybe ActiveTrustedSigners
activeTrustedKeyGroups :: Maybe ActiveTrustedKeyGroups
$sel:distributionConfig:Distribution' :: Distribution -> DistributionConfig
$sel:domainName:Distribution' :: Distribution -> Text
$sel:inProgressInvalidationBatches:Distribution' :: Distribution -> Int
$sel:lastModifiedTime:Distribution' :: Distribution -> ISO8601
$sel:status:Distribution' :: Distribution -> Text
$sel:arn:Distribution' :: Distribution -> Text
$sel:id:Distribution' :: Distribution -> Text
$sel:aliasICPRecordals:Distribution' :: Distribution -> Maybe [AliasICPRecordal]
$sel:activeTrustedSigners:Distribution' :: Distribution -> Maybe ActiveTrustedSigners
$sel:activeTrustedKeyGroups:Distribution' :: Distribution -> Maybe ActiveTrustedKeyGroups
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ActiveTrustedKeyGroups
activeTrustedKeyGroups
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ActiveTrustedSigners
activeTrustedSigners
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [AliasICPRecordal]
aliasICPRecordals
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
id
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
arn
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
status
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` ISO8601
lastModifiedTime
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Int
inProgressInvalidationBatches
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
domainName
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` DistributionConfig
distributionConfig
instance Prelude.NFData Distribution where
rnf :: Distribution -> ()
rnf Distribution' {Int
Maybe [AliasICPRecordal]
Maybe ActiveTrustedKeyGroups
Maybe ActiveTrustedSigners
Text
ISO8601
DistributionConfig
distributionConfig :: DistributionConfig
domainName :: Text
inProgressInvalidationBatches :: Int
lastModifiedTime :: ISO8601
status :: Text
arn :: Text
id :: Text
aliasICPRecordals :: Maybe [AliasICPRecordal]
activeTrustedSigners :: Maybe ActiveTrustedSigners
activeTrustedKeyGroups :: Maybe ActiveTrustedKeyGroups
$sel:distributionConfig:Distribution' :: Distribution -> DistributionConfig
$sel:domainName:Distribution' :: Distribution -> Text
$sel:inProgressInvalidationBatches:Distribution' :: Distribution -> Int
$sel:lastModifiedTime:Distribution' :: Distribution -> ISO8601
$sel:status:Distribution' :: Distribution -> Text
$sel:arn:Distribution' :: Distribution -> Text
$sel:id:Distribution' :: Distribution -> Text
$sel:aliasICPRecordals:Distribution' :: Distribution -> Maybe [AliasICPRecordal]
$sel:activeTrustedSigners:Distribution' :: Distribution -> Maybe ActiveTrustedSigners
$sel:activeTrustedKeyGroups:Distribution' :: Distribution -> Maybe ActiveTrustedKeyGroups
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe ActiveTrustedKeyGroups
activeTrustedKeyGroups
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ActiveTrustedSigners
activeTrustedSigners
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [AliasICPRecordal]
aliasICPRecordals
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
id
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
arn
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
status
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf ISO8601
lastModifiedTime
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
inProgressInvalidationBatches
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
domainName
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf DistributionConfig
distributionConfig