module Stratosphere.CloudFront.StreamingDistribution (
module Exports, StreamingDistribution(..), mkStreamingDistribution
) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.CloudFront.StreamingDistribution.StreamingDistributionConfigProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Tag
data StreamingDistribution
=
StreamingDistribution {StreamingDistribution -> ()
haddock_workaround_ :: (),
StreamingDistribution -> StreamingDistributionConfigProperty
streamingDistributionConfig :: StreamingDistributionConfigProperty,
StreamingDistribution -> [Tag]
tags :: [Tag]}
deriving stock (StreamingDistribution -> StreamingDistribution -> Bool
(StreamingDistribution -> StreamingDistribution -> Bool)
-> (StreamingDistribution -> StreamingDistribution -> Bool)
-> Eq StreamingDistribution
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: StreamingDistribution -> StreamingDistribution -> Bool
== :: StreamingDistribution -> StreamingDistribution -> Bool
$c/= :: StreamingDistribution -> StreamingDistribution -> Bool
/= :: StreamingDistribution -> StreamingDistribution -> Bool
Prelude.Eq, Int -> StreamingDistribution -> ShowS
[StreamingDistribution] -> ShowS
StreamingDistribution -> String
(Int -> StreamingDistribution -> ShowS)
-> (StreamingDistribution -> String)
-> ([StreamingDistribution] -> ShowS)
-> Show StreamingDistribution
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> StreamingDistribution -> ShowS
showsPrec :: Int -> StreamingDistribution -> ShowS
$cshow :: StreamingDistribution -> String
show :: StreamingDistribution -> String
$cshowList :: [StreamingDistribution] -> ShowS
showList :: [StreamingDistribution] -> ShowS
Prelude.Show)
mkStreamingDistribution ::
StreamingDistributionConfigProperty
-> [Tag] -> StreamingDistribution
mkStreamingDistribution :: StreamingDistributionConfigProperty
-> [Tag] -> StreamingDistribution
mkStreamingDistribution StreamingDistributionConfigProperty
streamingDistributionConfig [Tag]
tags
= StreamingDistribution
{haddock_workaround_ :: ()
haddock_workaround_ = (),
streamingDistributionConfig :: StreamingDistributionConfigProperty
streamingDistributionConfig = StreamingDistributionConfigProperty
streamingDistributionConfig,
tags :: [Tag]
tags = [Tag]
tags}
instance ToResourceProperties StreamingDistribution where
toResourceProperties :: StreamingDistribution -> ResourceProperties
toResourceProperties StreamingDistribution {[Tag]
()
StreamingDistributionConfigProperty
haddock_workaround_ :: StreamingDistribution -> ()
streamingDistributionConfig :: StreamingDistribution -> StreamingDistributionConfigProperty
tags :: StreamingDistribution -> [Tag]
haddock_workaround_ :: ()
streamingDistributionConfig :: StreamingDistributionConfigProperty
tags :: [Tag]
..}
= ResourceProperties
{awsType :: Text
awsType = Text
"AWS::CloudFront::StreamingDistribution",
supportsTags :: Bool
supportsTags = Bool
Prelude.True,
properties :: Object
properties = [Key
"StreamingDistributionConfig"
Key -> StreamingDistributionConfigProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= StreamingDistributionConfigProperty
streamingDistributionConfig,
Key
"Tags" Key -> [Tag] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= [Tag]
tags]}
instance JSON.ToJSON StreamingDistribution where
toJSON :: StreamingDistribution -> Value
toJSON StreamingDistribution {[Tag]
()
StreamingDistributionConfigProperty
haddock_workaround_ :: StreamingDistribution -> ()
streamingDistributionConfig :: StreamingDistribution -> StreamingDistributionConfigProperty
tags :: StreamingDistribution -> [Tag]
haddock_workaround_ :: ()
streamingDistributionConfig :: StreamingDistributionConfigProperty
tags :: [Tag]
..}
= [(Key, Value)] -> Value
JSON.object
[Key
"StreamingDistributionConfig" Key -> StreamingDistributionConfigProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= StreamingDistributionConfigProperty
streamingDistributionConfig,
Key
"Tags" Key -> [Tag] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= [Tag]
tags]
instance Property "StreamingDistributionConfig" StreamingDistribution where
type PropertyType "StreamingDistributionConfig" StreamingDistribution = StreamingDistributionConfigProperty
set :: PropertyType "StreamingDistributionConfig" StreamingDistribution
-> StreamingDistribution -> StreamingDistribution
set PropertyType "StreamingDistributionConfig" StreamingDistribution
newValue StreamingDistribution {[Tag]
()
StreamingDistributionConfigProperty
haddock_workaround_ :: StreamingDistribution -> ()
streamingDistributionConfig :: StreamingDistribution -> StreamingDistributionConfigProperty
tags :: StreamingDistribution -> [Tag]
haddock_workaround_ :: ()
streamingDistributionConfig :: StreamingDistributionConfigProperty
tags :: [Tag]
..}
= StreamingDistribution
{streamingDistributionConfig :: StreamingDistributionConfigProperty
streamingDistributionConfig = PropertyType "StreamingDistributionConfig" StreamingDistribution
StreamingDistributionConfigProperty
newValue, [Tag]
()
haddock_workaround_ :: ()
tags :: [Tag]
haddock_workaround_ :: ()
tags :: [Tag]
..}
instance Property "Tags" StreamingDistribution where
type PropertyType "Tags" StreamingDistribution = [Tag]
set :: PropertyType "Tags" StreamingDistribution
-> StreamingDistribution -> StreamingDistribution
set PropertyType "Tags" StreamingDistribution
newValue StreamingDistribution {[Tag]
()
StreamingDistributionConfigProperty
haddock_workaround_ :: StreamingDistribution -> ()
streamingDistributionConfig :: StreamingDistribution -> StreamingDistributionConfigProperty
tags :: StreamingDistribution -> [Tag]
haddock_workaround_ :: ()
streamingDistributionConfig :: StreamingDistributionConfigProperty
tags :: [Tag]
..}
= StreamingDistribution {tags :: [Tag]
tags = [Tag]
PropertyType "Tags" StreamingDistribution
newValue, ()
StreamingDistributionConfigProperty
haddock_workaround_ :: ()
streamingDistributionConfig :: StreamingDistributionConfigProperty
haddock_workaround_ :: ()
streamingDistributionConfig :: StreamingDistributionConfigProperty
..}