packages feed

stratosphere-cloudfront-1.0.0: gen/Stratosphere/CloudFront/StreamingDistribution.hs

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
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-streamingdistribution.html>
    StreamingDistribution {haddock_workaround_ :: (),
                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-streamingdistribution.html#cfn-cloudfront-streamingdistribution-streamingdistributionconfig>
                           streamingDistributionConfig :: StreamingDistributionConfigProperty,
                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-streamingdistribution.html#cfn-cloudfront-streamingdistribution-tags>
                           tags :: [Tag]}
  deriving stock (Prelude.Eq, Prelude.Show)
mkStreamingDistribution ::
  StreamingDistributionConfigProperty
  -> [Tag] -> StreamingDistribution
mkStreamingDistribution streamingDistributionConfig tags
  = StreamingDistribution
      {haddock_workaround_ = (),
       streamingDistributionConfig = streamingDistributionConfig,
       tags = tags}
instance ToResourceProperties StreamingDistribution where
  toResourceProperties StreamingDistribution {..}
    = ResourceProperties
        {awsType = "AWS::CloudFront::StreamingDistribution",
         supportsTags = Prelude.True,
         properties = ["StreamingDistributionConfig"
                         JSON..= streamingDistributionConfig,
                       "Tags" JSON..= tags]}
instance JSON.ToJSON StreamingDistribution where
  toJSON StreamingDistribution {..}
    = JSON.object
        ["StreamingDistributionConfig" JSON..= streamingDistributionConfig,
         "Tags" JSON..= tags]
instance Property "StreamingDistributionConfig" StreamingDistribution where
  type PropertyType "StreamingDistributionConfig" StreamingDistribution = StreamingDistributionConfigProperty
  set newValue StreamingDistribution {..}
    = StreamingDistribution
        {streamingDistributionConfig = newValue, ..}
instance Property "Tags" StreamingDistribution where
  type PropertyType "Tags" StreamingDistribution = [Tag]
  set newValue StreamingDistribution {..}
    = StreamingDistribution {tags = newValue, ..}