{-# 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.StreamingDistributionConfig where
import Amazonka.CloudFront.Types.Aliases
import Amazonka.CloudFront.Types.PriceClass
import Amazonka.CloudFront.Types.S3Origin
import Amazonka.CloudFront.Types.StreamingLoggingConfig
import Amazonka.CloudFront.Types.TrustedSigners
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 StreamingDistributionConfig = StreamingDistributionConfig'
{
StreamingDistributionConfig -> Maybe Aliases
aliases :: Prelude.Maybe Aliases,
StreamingDistributionConfig -> Maybe StreamingLoggingConfig
logging :: Prelude.Maybe StreamingLoggingConfig,
StreamingDistributionConfig -> Maybe PriceClass
priceClass :: Prelude.Maybe PriceClass,
StreamingDistributionConfig -> Text
callerReference :: Prelude.Text,
StreamingDistributionConfig -> S3Origin
s3Origin :: S3Origin,
:: Prelude.Text,
StreamingDistributionConfig -> TrustedSigners
trustedSigners :: TrustedSigners,
StreamingDistributionConfig -> Bool
enabled :: Prelude.Bool
}
deriving (StreamingDistributionConfig -> StreamingDistributionConfig -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: StreamingDistributionConfig -> StreamingDistributionConfig -> Bool
$c/= :: StreamingDistributionConfig -> StreamingDistributionConfig -> Bool
== :: StreamingDistributionConfig -> StreamingDistributionConfig -> Bool
$c== :: StreamingDistributionConfig -> StreamingDistributionConfig -> Bool
Prelude.Eq, ReadPrec [StreamingDistributionConfig]
ReadPrec StreamingDistributionConfig
Int -> ReadS StreamingDistributionConfig
ReadS [StreamingDistributionConfig]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [StreamingDistributionConfig]
$creadListPrec :: ReadPrec [StreamingDistributionConfig]
readPrec :: ReadPrec StreamingDistributionConfig
$creadPrec :: ReadPrec StreamingDistributionConfig
readList :: ReadS [StreamingDistributionConfig]
$creadList :: ReadS [StreamingDistributionConfig]
readsPrec :: Int -> ReadS StreamingDistributionConfig
$creadsPrec :: Int -> ReadS StreamingDistributionConfig
Prelude.Read, Int -> StreamingDistributionConfig -> ShowS
[StreamingDistributionConfig] -> ShowS
StreamingDistributionConfig -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [StreamingDistributionConfig] -> ShowS
$cshowList :: [StreamingDistributionConfig] -> ShowS
show :: StreamingDistributionConfig -> String
$cshow :: StreamingDistributionConfig -> String
showsPrec :: Int -> StreamingDistributionConfig -> ShowS
$cshowsPrec :: Int -> StreamingDistributionConfig -> ShowS
Prelude.Show, forall x.
Rep StreamingDistributionConfig x -> StreamingDistributionConfig
forall x.
StreamingDistributionConfig -> Rep StreamingDistributionConfig x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep StreamingDistributionConfig x -> StreamingDistributionConfig
$cfrom :: forall x.
StreamingDistributionConfig -> Rep StreamingDistributionConfig x
Prelude.Generic)
newStreamingDistributionConfig ::
Prelude.Text ->
S3Origin ->
Prelude.Text ->
TrustedSigners ->
Prelude.Bool ->
StreamingDistributionConfig
newStreamingDistributionConfig :: Text
-> S3Origin
-> Text
-> TrustedSigners
-> Bool
-> StreamingDistributionConfig
newStreamingDistributionConfig
Text
pCallerReference_
S3Origin
pS3Origin_
Text
pComment_
TrustedSigners
pTrustedSigners_
Bool
pEnabled_ =
StreamingDistributionConfig'
{ $sel:aliases:StreamingDistributionConfig' :: Maybe Aliases
aliases =
forall a. Maybe a
Prelude.Nothing,
$sel:logging:StreamingDistributionConfig' :: Maybe StreamingLoggingConfig
logging = forall a. Maybe a
Prelude.Nothing,
$sel:priceClass:StreamingDistributionConfig' :: Maybe PriceClass
priceClass = forall a. Maybe a
Prelude.Nothing,
$sel:callerReference:StreamingDistributionConfig' :: Text
callerReference = Text
pCallerReference_,
$sel:s3Origin:StreamingDistributionConfig' :: S3Origin
s3Origin = S3Origin
pS3Origin_,
$sel:comment:StreamingDistributionConfig' :: Text
comment = Text
pComment_,
$sel:trustedSigners:StreamingDistributionConfig' :: TrustedSigners
trustedSigners = TrustedSigners
pTrustedSigners_,
$sel:enabled:StreamingDistributionConfig' :: Bool
enabled = Bool
pEnabled_
}
streamingDistributionConfig_aliases :: Lens.Lens' StreamingDistributionConfig (Prelude.Maybe Aliases)
streamingDistributionConfig_aliases :: Lens' StreamingDistributionConfig (Maybe Aliases)
streamingDistributionConfig_aliases = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StreamingDistributionConfig' {Maybe Aliases
aliases :: Maybe Aliases
$sel:aliases:StreamingDistributionConfig' :: StreamingDistributionConfig -> Maybe Aliases
aliases} -> Maybe Aliases
aliases) (\s :: StreamingDistributionConfig
s@StreamingDistributionConfig' {} Maybe Aliases
a -> StreamingDistributionConfig
s {$sel:aliases:StreamingDistributionConfig' :: Maybe Aliases
aliases = Maybe Aliases
a} :: StreamingDistributionConfig)
streamingDistributionConfig_logging :: Lens.Lens' StreamingDistributionConfig (Prelude.Maybe StreamingLoggingConfig)
streamingDistributionConfig_logging :: Lens' StreamingDistributionConfig (Maybe StreamingLoggingConfig)
streamingDistributionConfig_logging = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StreamingDistributionConfig' {Maybe StreamingLoggingConfig
logging :: Maybe StreamingLoggingConfig
$sel:logging:StreamingDistributionConfig' :: StreamingDistributionConfig -> Maybe StreamingLoggingConfig
logging} -> Maybe StreamingLoggingConfig
logging) (\s :: StreamingDistributionConfig
s@StreamingDistributionConfig' {} Maybe StreamingLoggingConfig
a -> StreamingDistributionConfig
s {$sel:logging:StreamingDistributionConfig' :: Maybe StreamingLoggingConfig
logging = Maybe StreamingLoggingConfig
a} :: StreamingDistributionConfig)
streamingDistributionConfig_priceClass :: Lens.Lens' StreamingDistributionConfig (Prelude.Maybe PriceClass)
streamingDistributionConfig_priceClass :: Lens' StreamingDistributionConfig (Maybe PriceClass)
streamingDistributionConfig_priceClass = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StreamingDistributionConfig' {Maybe PriceClass
priceClass :: Maybe PriceClass
$sel:priceClass:StreamingDistributionConfig' :: StreamingDistributionConfig -> Maybe PriceClass
priceClass} -> Maybe PriceClass
priceClass) (\s :: StreamingDistributionConfig
s@StreamingDistributionConfig' {} Maybe PriceClass
a -> StreamingDistributionConfig
s {$sel:priceClass:StreamingDistributionConfig' :: Maybe PriceClass
priceClass = Maybe PriceClass
a} :: StreamingDistributionConfig)
streamingDistributionConfig_callerReference :: Lens.Lens' StreamingDistributionConfig Prelude.Text
streamingDistributionConfig_callerReference :: Lens' StreamingDistributionConfig Text
streamingDistributionConfig_callerReference = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StreamingDistributionConfig' {Text
callerReference :: Text
$sel:callerReference:StreamingDistributionConfig' :: StreamingDistributionConfig -> Text
callerReference} -> Text
callerReference) (\s :: StreamingDistributionConfig
s@StreamingDistributionConfig' {} Text
a -> StreamingDistributionConfig
s {$sel:callerReference:StreamingDistributionConfig' :: Text
callerReference = Text
a} :: StreamingDistributionConfig)
streamingDistributionConfig_s3Origin :: Lens.Lens' StreamingDistributionConfig S3Origin
streamingDistributionConfig_s3Origin :: Lens' StreamingDistributionConfig S3Origin
streamingDistributionConfig_s3Origin = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StreamingDistributionConfig' {S3Origin
s3Origin :: S3Origin
$sel:s3Origin:StreamingDistributionConfig' :: StreamingDistributionConfig -> S3Origin
s3Origin} -> S3Origin
s3Origin) (\s :: StreamingDistributionConfig
s@StreamingDistributionConfig' {} S3Origin
a -> StreamingDistributionConfig
s {$sel:s3Origin:StreamingDistributionConfig' :: S3Origin
s3Origin = S3Origin
a} :: StreamingDistributionConfig)
streamingDistributionConfig_comment :: Lens.Lens' StreamingDistributionConfig Prelude.Text
= forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StreamingDistributionConfig' {Text
comment :: Text
$sel:comment:StreamingDistributionConfig' :: StreamingDistributionConfig -> Text
comment} -> Text
comment) (\s :: StreamingDistributionConfig
s@StreamingDistributionConfig' {} Text
a -> StreamingDistributionConfig
s {$sel:comment:StreamingDistributionConfig' :: Text
comment = Text
a} :: StreamingDistributionConfig)
streamingDistributionConfig_trustedSigners :: Lens.Lens' StreamingDistributionConfig TrustedSigners
streamingDistributionConfig_trustedSigners :: Lens' StreamingDistributionConfig TrustedSigners
streamingDistributionConfig_trustedSigners = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StreamingDistributionConfig' {TrustedSigners
trustedSigners :: TrustedSigners
$sel:trustedSigners:StreamingDistributionConfig' :: StreamingDistributionConfig -> TrustedSigners
trustedSigners} -> TrustedSigners
trustedSigners) (\s :: StreamingDistributionConfig
s@StreamingDistributionConfig' {} TrustedSigners
a -> StreamingDistributionConfig
s {$sel:trustedSigners:StreamingDistributionConfig' :: TrustedSigners
trustedSigners = TrustedSigners
a} :: StreamingDistributionConfig)
streamingDistributionConfig_enabled :: Lens.Lens' StreamingDistributionConfig Prelude.Bool
streamingDistributionConfig_enabled :: Lens' StreamingDistributionConfig Bool
streamingDistributionConfig_enabled = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StreamingDistributionConfig' {Bool
enabled :: Bool
$sel:enabled:StreamingDistributionConfig' :: StreamingDistributionConfig -> Bool
enabled} -> Bool
enabled) (\s :: StreamingDistributionConfig
s@StreamingDistributionConfig' {} Bool
a -> StreamingDistributionConfig
s {$sel:enabled:StreamingDistributionConfig' :: Bool
enabled = Bool
a} :: StreamingDistributionConfig)
instance Data.FromXML StreamingDistributionConfig where
parseXML :: [Node] -> Either String StreamingDistributionConfig
parseXML [Node]
x =
Maybe Aliases
-> Maybe StreamingLoggingConfig
-> Maybe PriceClass
-> Text
-> S3Origin
-> Text
-> TrustedSigners
-> Bool
-> StreamingDistributionConfig
StreamingDistributionConfig'
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
"Aliases")
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
"Logging")
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
"PriceClass")
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
"CallerReference")
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
"S3Origin")
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
"Comment")
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
"TrustedSigners")
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
"Enabled")
instance Prelude.Hashable StreamingDistributionConfig where
hashWithSalt :: Int -> StreamingDistributionConfig -> Int
hashWithSalt Int
_salt StreamingDistributionConfig' {Bool
Maybe Aliases
Maybe PriceClass
Maybe StreamingLoggingConfig
Text
S3Origin
TrustedSigners
enabled :: Bool
trustedSigners :: TrustedSigners
comment :: Text
s3Origin :: S3Origin
callerReference :: Text
priceClass :: Maybe PriceClass
logging :: Maybe StreamingLoggingConfig
aliases :: Maybe Aliases
$sel:enabled:StreamingDistributionConfig' :: StreamingDistributionConfig -> Bool
$sel:trustedSigners:StreamingDistributionConfig' :: StreamingDistributionConfig -> TrustedSigners
$sel:comment:StreamingDistributionConfig' :: StreamingDistributionConfig -> Text
$sel:s3Origin:StreamingDistributionConfig' :: StreamingDistributionConfig -> S3Origin
$sel:callerReference:StreamingDistributionConfig' :: StreamingDistributionConfig -> Text
$sel:priceClass:StreamingDistributionConfig' :: StreamingDistributionConfig -> Maybe PriceClass
$sel:logging:StreamingDistributionConfig' :: StreamingDistributionConfig -> Maybe StreamingLoggingConfig
$sel:aliases:StreamingDistributionConfig' :: StreamingDistributionConfig -> Maybe Aliases
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Aliases
aliases
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe StreamingLoggingConfig
logging
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe PriceClass
priceClass
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
callerReference
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` S3Origin
s3Origin
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
comment
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` TrustedSigners
trustedSigners
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Bool
enabled
instance Prelude.NFData StreamingDistributionConfig where
rnf :: StreamingDistributionConfig -> ()
rnf StreamingDistributionConfig' {Bool
Maybe Aliases
Maybe PriceClass
Maybe StreamingLoggingConfig
Text
S3Origin
TrustedSigners
enabled :: Bool
trustedSigners :: TrustedSigners
comment :: Text
s3Origin :: S3Origin
callerReference :: Text
priceClass :: Maybe PriceClass
logging :: Maybe StreamingLoggingConfig
aliases :: Maybe Aliases
$sel:enabled:StreamingDistributionConfig' :: StreamingDistributionConfig -> Bool
$sel:trustedSigners:StreamingDistributionConfig' :: StreamingDistributionConfig -> TrustedSigners
$sel:comment:StreamingDistributionConfig' :: StreamingDistributionConfig -> Text
$sel:s3Origin:StreamingDistributionConfig' :: StreamingDistributionConfig -> S3Origin
$sel:callerReference:StreamingDistributionConfig' :: StreamingDistributionConfig -> Text
$sel:priceClass:StreamingDistributionConfig' :: StreamingDistributionConfig -> Maybe PriceClass
$sel:logging:StreamingDistributionConfig' :: StreamingDistributionConfig -> Maybe StreamingLoggingConfig
$sel:aliases:StreamingDistributionConfig' :: StreamingDistributionConfig -> Maybe Aliases
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Aliases
aliases
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe StreamingLoggingConfig
logging
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe PriceClass
priceClass
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
callerReference
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf S3Origin
s3Origin
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
comment
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf TrustedSigners
trustedSigners
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Bool
enabled
instance Data.ToXML StreamingDistributionConfig where
toXML :: StreamingDistributionConfig -> XML
toXML StreamingDistributionConfig' {Bool
Maybe Aliases
Maybe PriceClass
Maybe StreamingLoggingConfig
Text
S3Origin
TrustedSigners
enabled :: Bool
trustedSigners :: TrustedSigners
comment :: Text
s3Origin :: S3Origin
callerReference :: Text
priceClass :: Maybe PriceClass
logging :: Maybe StreamingLoggingConfig
aliases :: Maybe Aliases
$sel:enabled:StreamingDistributionConfig' :: StreamingDistributionConfig -> Bool
$sel:trustedSigners:StreamingDistributionConfig' :: StreamingDistributionConfig -> TrustedSigners
$sel:comment:StreamingDistributionConfig' :: StreamingDistributionConfig -> Text
$sel:s3Origin:StreamingDistributionConfig' :: StreamingDistributionConfig -> S3Origin
$sel:callerReference:StreamingDistributionConfig' :: StreamingDistributionConfig -> Text
$sel:priceClass:StreamingDistributionConfig' :: StreamingDistributionConfig -> Maybe PriceClass
$sel:logging:StreamingDistributionConfig' :: StreamingDistributionConfig -> Maybe StreamingLoggingConfig
$sel:aliases:StreamingDistributionConfig' :: StreamingDistributionConfig -> Maybe Aliases
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ Name
"Aliases" forall a. ToXML a => Name -> a -> XML
Data.@= Maybe Aliases
aliases,
Name
"Logging" forall a. ToXML a => Name -> a -> XML
Data.@= Maybe StreamingLoggingConfig
logging,
Name
"PriceClass" forall a. ToXML a => Name -> a -> XML
Data.@= Maybe PriceClass
priceClass,
Name
"CallerReference" forall a. ToXML a => Name -> a -> XML
Data.@= Text
callerReference,
Name
"S3Origin" forall a. ToXML a => Name -> a -> XML
Data.@= S3Origin
s3Origin,
Name
"Comment" forall a. ToXML a => Name -> a -> XML
Data.@= Text
comment,
Name
"TrustedSigners" forall a. ToXML a => Name -> a -> XML
Data.@= TrustedSigners
trustedSigners,
Name
"Enabled" forall a. ToXML a => Name -> a -> XML
Data.@= Bool
enabled
]