{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE TupleSections #-} -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-streamingdistribution-streamingdistributionconfig.html module Stratosphere.ResourceProperties.CloudFrontStreamingDistributionStreamingDistributionConfig where import Stratosphere.ResourceImports import Stratosphere.ResourceProperties.CloudFrontStreamingDistributionLogging import Stratosphere.ResourceProperties.CloudFrontStreamingDistributionS3Origin import Stratosphere.ResourceProperties.CloudFrontStreamingDistributionTrustedSigners -- | Full data type definition for -- CloudFrontStreamingDistributionStreamingDistributionConfig. See -- 'cloudFrontStreamingDistributionStreamingDistributionConfig' for a more -- convenient constructor. data CloudFrontStreamingDistributionStreamingDistributionConfig = CloudFrontStreamingDistributionStreamingDistributionConfig { _cloudFrontStreamingDistributionStreamingDistributionConfigAliases :: Maybe (ValList Text) , _cloudFrontStreamingDistributionStreamingDistributionConfigComment :: Val Text , _cloudFrontStreamingDistributionStreamingDistributionConfigEnabled :: Val Bool , _cloudFrontStreamingDistributionStreamingDistributionConfigLogging :: Maybe CloudFrontStreamingDistributionLogging , _cloudFrontStreamingDistributionStreamingDistributionConfigPriceClass :: Maybe (Val Text) , _cloudFrontStreamingDistributionStreamingDistributionConfigS3Origin :: CloudFrontStreamingDistributionS3Origin , _cloudFrontStreamingDistributionStreamingDistributionConfigTrustedSigners :: CloudFrontStreamingDistributionTrustedSigners } deriving (Show, Eq) instance ToJSON CloudFrontStreamingDistributionStreamingDistributionConfig where toJSON CloudFrontStreamingDistributionStreamingDistributionConfig{..} = object $ catMaybes [ fmap (("Aliases",) . toJSON) _cloudFrontStreamingDistributionStreamingDistributionConfigAliases , (Just . ("Comment",) . toJSON) _cloudFrontStreamingDistributionStreamingDistributionConfigComment , (Just . ("Enabled",) . toJSON . fmap Bool') _cloudFrontStreamingDistributionStreamingDistributionConfigEnabled , fmap (("Logging",) . toJSON) _cloudFrontStreamingDistributionStreamingDistributionConfigLogging , fmap (("PriceClass",) . toJSON) _cloudFrontStreamingDistributionStreamingDistributionConfigPriceClass , (Just . ("S3Origin",) . toJSON) _cloudFrontStreamingDistributionStreamingDistributionConfigS3Origin , (Just . ("TrustedSigners",) . toJSON) _cloudFrontStreamingDistributionStreamingDistributionConfigTrustedSigners ] instance FromJSON CloudFrontStreamingDistributionStreamingDistributionConfig where parseJSON (Object obj) = CloudFrontStreamingDistributionStreamingDistributionConfig <$> (obj .:? "Aliases") <*> (obj .: "Comment") <*> fmap (fmap unBool') (obj .: "Enabled") <*> (obj .:? "Logging") <*> (obj .:? "PriceClass") <*> (obj .: "S3Origin") <*> (obj .: "TrustedSigners") parseJSON _ = mempty -- | Constructor for -- 'CloudFrontStreamingDistributionStreamingDistributionConfig' containing -- required fields as arguments. cloudFrontStreamingDistributionStreamingDistributionConfig :: Val Text -- ^ 'cfsdsdcComment' -> Val Bool -- ^ 'cfsdsdcEnabled' -> CloudFrontStreamingDistributionS3Origin -- ^ 'cfsdsdcS3Origin' -> CloudFrontStreamingDistributionTrustedSigners -- ^ 'cfsdsdcTrustedSigners' -> CloudFrontStreamingDistributionStreamingDistributionConfig cloudFrontStreamingDistributionStreamingDistributionConfig commentarg enabledarg s3Originarg trustedSignersarg = CloudFrontStreamingDistributionStreamingDistributionConfig { _cloudFrontStreamingDistributionStreamingDistributionConfigAliases = Nothing , _cloudFrontStreamingDistributionStreamingDistributionConfigComment = commentarg , _cloudFrontStreamingDistributionStreamingDistributionConfigEnabled = enabledarg , _cloudFrontStreamingDistributionStreamingDistributionConfigLogging = Nothing , _cloudFrontStreamingDistributionStreamingDistributionConfigPriceClass = Nothing , _cloudFrontStreamingDistributionStreamingDistributionConfigS3Origin = s3Originarg , _cloudFrontStreamingDistributionStreamingDistributionConfigTrustedSigners = trustedSignersarg } -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-streamingdistribution-streamingdistributionconfig.html#cfn-cloudfront-streamingdistribution-streamingdistributionconfig-aliases cfsdsdcAliases :: Lens' CloudFrontStreamingDistributionStreamingDistributionConfig (Maybe (ValList Text)) cfsdsdcAliases = lens _cloudFrontStreamingDistributionStreamingDistributionConfigAliases (\s a -> s { _cloudFrontStreamingDistributionStreamingDistributionConfigAliases = a }) -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-streamingdistribution-streamingdistributionconfig.html#cfn-cloudfront-streamingdistribution-streamingdistributionconfig-comment cfsdsdcComment :: Lens' CloudFrontStreamingDistributionStreamingDistributionConfig (Val Text) cfsdsdcComment = lens _cloudFrontStreamingDistributionStreamingDistributionConfigComment (\s a -> s { _cloudFrontStreamingDistributionStreamingDistributionConfigComment = a }) -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-streamingdistribution-streamingdistributionconfig.html#cfn-cloudfront-streamingdistribution-streamingdistributionconfig-enabled cfsdsdcEnabled :: Lens' CloudFrontStreamingDistributionStreamingDistributionConfig (Val Bool) cfsdsdcEnabled = lens _cloudFrontStreamingDistributionStreamingDistributionConfigEnabled (\s a -> s { _cloudFrontStreamingDistributionStreamingDistributionConfigEnabled = a }) -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-streamingdistribution-streamingdistributionconfig.html#cfn-cloudfront-streamingdistribution-streamingdistributionconfig-logging cfsdsdcLogging :: Lens' CloudFrontStreamingDistributionStreamingDistributionConfig (Maybe CloudFrontStreamingDistributionLogging) cfsdsdcLogging = lens _cloudFrontStreamingDistributionStreamingDistributionConfigLogging (\s a -> s { _cloudFrontStreamingDistributionStreamingDistributionConfigLogging = a }) -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-streamingdistribution-streamingdistributionconfig.html#cfn-cloudfront-streamingdistribution-streamingdistributionconfig-priceclass cfsdsdcPriceClass :: Lens' CloudFrontStreamingDistributionStreamingDistributionConfig (Maybe (Val Text)) cfsdsdcPriceClass = lens _cloudFrontStreamingDistributionStreamingDistributionConfigPriceClass (\s a -> s { _cloudFrontStreamingDistributionStreamingDistributionConfigPriceClass = a }) -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-streamingdistribution-streamingdistributionconfig.html#cfn-cloudfront-streamingdistribution-streamingdistributionconfig-s3origin cfsdsdcS3Origin :: Lens' CloudFrontStreamingDistributionStreamingDistributionConfig CloudFrontStreamingDistributionS3Origin cfsdsdcS3Origin = lens _cloudFrontStreamingDistributionStreamingDistributionConfigS3Origin (\s a -> s { _cloudFrontStreamingDistributionStreamingDistributionConfigS3Origin = a }) -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-streamingdistribution-streamingdistributionconfig.html#cfn-cloudfront-streamingdistribution-streamingdistributionconfig-trustedsigners cfsdsdcTrustedSigners :: Lens' CloudFrontStreamingDistributionStreamingDistributionConfig CloudFrontStreamingDistributionTrustedSigners cfsdsdcTrustedSigners = lens _cloudFrontStreamingDistributionStreamingDistributionConfigTrustedSigners (\s a -> s { _cloudFrontStreamingDistributionStreamingDistributionConfigTrustedSigners = a })