module Stratosphere.CloudFront.Distribution.DistributionConfigProperty ( module Exports, DistributionConfigProperty(..), mkDistributionConfigProperty ) where import qualified Data.Aeson as JSON import qualified Stratosphere.Prelude as Prelude import Stratosphere.Property import {-# SOURCE #-} Stratosphere.CloudFront.Distribution.CacheBehaviorProperty as Exports import {-# SOURCE #-} Stratosphere.CloudFront.Distribution.CustomErrorResponseProperty as Exports import {-# SOURCE #-} Stratosphere.CloudFront.Distribution.DefaultCacheBehaviorProperty as Exports import {-# SOURCE #-} Stratosphere.CloudFront.Distribution.LegacyCustomOriginProperty as Exports import {-# SOURCE #-} Stratosphere.CloudFront.Distribution.LegacyS3OriginProperty as Exports import {-# SOURCE #-} Stratosphere.CloudFront.Distribution.LoggingProperty as Exports import {-# SOURCE #-} Stratosphere.CloudFront.Distribution.OriginProperty as Exports import {-# SOURCE #-} Stratosphere.CloudFront.Distribution.OriginGroupsProperty as Exports import {-# SOURCE #-} Stratosphere.CloudFront.Distribution.RestrictionsProperty as Exports import {-# SOURCE #-} Stratosphere.CloudFront.Distribution.TenantConfigProperty as Exports import {-# SOURCE #-} Stratosphere.CloudFront.Distribution.ViewerCertificateProperty as Exports import Stratosphere.ResourceProperties import Stratosphere.Value data DistributionConfigProperty = -- | See: DistributionConfigProperty {haddock_workaround_ :: (), -- | See: aliases :: (Prelude.Maybe (ValueList Prelude.Text)), -- | See: anycastIpListId :: (Prelude.Maybe (Value Prelude.Text)), -- | See: cNAMEs :: (Prelude.Maybe (ValueList Prelude.Text)), -- | See: cacheBehaviors :: (Prelude.Maybe [CacheBehaviorProperty]), -- | See: comment :: (Prelude.Maybe (Value Prelude.Text)), -- | See: connectionMode :: (Prelude.Maybe (Value Prelude.Text)), -- | See: continuousDeploymentPolicyId :: (Prelude.Maybe (Value Prelude.Text)), -- | See: customErrorResponses :: (Prelude.Maybe [CustomErrorResponseProperty]), -- | See: customOrigin :: (Prelude.Maybe LegacyCustomOriginProperty), -- | See: defaultCacheBehavior :: DefaultCacheBehaviorProperty, -- | See: defaultRootObject :: (Prelude.Maybe (Value Prelude.Text)), -- | See: enabled :: (Value Prelude.Bool), -- | See: httpVersion :: (Prelude.Maybe (Value Prelude.Text)), -- | See: iPV6Enabled :: (Prelude.Maybe (Value Prelude.Bool)), -- | See: logging :: (Prelude.Maybe LoggingProperty), -- | See: originGroups :: (Prelude.Maybe OriginGroupsProperty), -- | See: origins :: (Prelude.Maybe [OriginProperty]), -- | See: priceClass :: (Prelude.Maybe (Value Prelude.Text)), -- | See: restrictions :: (Prelude.Maybe RestrictionsProperty), -- | See: s3Origin :: (Prelude.Maybe LegacyS3OriginProperty), -- | See: staging :: (Prelude.Maybe (Value Prelude.Bool)), -- | See: tenantConfig :: (Prelude.Maybe TenantConfigProperty), -- | See: viewerCertificate :: (Prelude.Maybe ViewerCertificateProperty), -- | See: webACLId :: (Prelude.Maybe (Value Prelude.Text))} deriving stock (Prelude.Eq, Prelude.Show) mkDistributionConfigProperty :: DefaultCacheBehaviorProperty -> Value Prelude.Bool -> DistributionConfigProperty mkDistributionConfigProperty defaultCacheBehavior enabled = DistributionConfigProperty {haddock_workaround_ = (), defaultCacheBehavior = defaultCacheBehavior, enabled = enabled, aliases = Prelude.Nothing, anycastIpListId = Prelude.Nothing, cNAMEs = Prelude.Nothing, cacheBehaviors = Prelude.Nothing, comment = Prelude.Nothing, connectionMode = Prelude.Nothing, continuousDeploymentPolicyId = Prelude.Nothing, customErrorResponses = Prelude.Nothing, customOrigin = Prelude.Nothing, defaultRootObject = Prelude.Nothing, httpVersion = Prelude.Nothing, iPV6Enabled = Prelude.Nothing, logging = Prelude.Nothing, originGroups = Prelude.Nothing, origins = Prelude.Nothing, priceClass = Prelude.Nothing, restrictions = Prelude.Nothing, s3Origin = Prelude.Nothing, staging = Prelude.Nothing, tenantConfig = Prelude.Nothing, viewerCertificate = Prelude.Nothing, webACLId = Prelude.Nothing} instance ToResourceProperties DistributionConfigProperty where toResourceProperties DistributionConfigProperty {..} = ResourceProperties {awsType = "AWS::CloudFront::Distribution.DistributionConfig", supportsTags = Prelude.False, properties = Prelude.fromList ((Prelude.<>) ["DefaultCacheBehavior" JSON..= defaultCacheBehavior, "Enabled" JSON..= enabled] (Prelude.catMaybes [(JSON..=) "Aliases" Prelude.<$> aliases, (JSON..=) "AnycastIpListId" Prelude.<$> anycastIpListId, (JSON..=) "CNAMEs" Prelude.<$> cNAMEs, (JSON..=) "CacheBehaviors" Prelude.<$> cacheBehaviors, (JSON..=) "Comment" Prelude.<$> comment, (JSON..=) "ConnectionMode" Prelude.<$> connectionMode, (JSON..=) "ContinuousDeploymentPolicyId" Prelude.<$> continuousDeploymentPolicyId, (JSON..=) "CustomErrorResponses" Prelude.<$> customErrorResponses, (JSON..=) "CustomOrigin" Prelude.<$> customOrigin, (JSON..=) "DefaultRootObject" Prelude.<$> defaultRootObject, (JSON..=) "HttpVersion" Prelude.<$> httpVersion, (JSON..=) "IPV6Enabled" Prelude.<$> iPV6Enabled, (JSON..=) "Logging" Prelude.<$> logging, (JSON..=) "OriginGroups" Prelude.<$> originGroups, (JSON..=) "Origins" Prelude.<$> origins, (JSON..=) "PriceClass" Prelude.<$> priceClass, (JSON..=) "Restrictions" Prelude.<$> restrictions, (JSON..=) "S3Origin" Prelude.<$> s3Origin, (JSON..=) "Staging" Prelude.<$> staging, (JSON..=) "TenantConfig" Prelude.<$> tenantConfig, (JSON..=) "ViewerCertificate" Prelude.<$> viewerCertificate, (JSON..=) "WebACLId" Prelude.<$> webACLId]))} instance JSON.ToJSON DistributionConfigProperty where toJSON DistributionConfigProperty {..} = JSON.object (Prelude.fromList ((Prelude.<>) ["DefaultCacheBehavior" JSON..= defaultCacheBehavior, "Enabled" JSON..= enabled] (Prelude.catMaybes [(JSON..=) "Aliases" Prelude.<$> aliases, (JSON..=) "AnycastIpListId" Prelude.<$> anycastIpListId, (JSON..=) "CNAMEs" Prelude.<$> cNAMEs, (JSON..=) "CacheBehaviors" Prelude.<$> cacheBehaviors, (JSON..=) "Comment" Prelude.<$> comment, (JSON..=) "ConnectionMode" Prelude.<$> connectionMode, (JSON..=) "ContinuousDeploymentPolicyId" Prelude.<$> continuousDeploymentPolicyId, (JSON..=) "CustomErrorResponses" Prelude.<$> customErrorResponses, (JSON..=) "CustomOrigin" Prelude.<$> customOrigin, (JSON..=) "DefaultRootObject" Prelude.<$> defaultRootObject, (JSON..=) "HttpVersion" Prelude.<$> httpVersion, (JSON..=) "IPV6Enabled" Prelude.<$> iPV6Enabled, (JSON..=) "Logging" Prelude.<$> logging, (JSON..=) "OriginGroups" Prelude.<$> originGroups, (JSON..=) "Origins" Prelude.<$> origins, (JSON..=) "PriceClass" Prelude.<$> priceClass, (JSON..=) "Restrictions" Prelude.<$> restrictions, (JSON..=) "S3Origin" Prelude.<$> s3Origin, (JSON..=) "Staging" Prelude.<$> staging, (JSON..=) "TenantConfig" Prelude.<$> tenantConfig, (JSON..=) "ViewerCertificate" Prelude.<$> viewerCertificate, (JSON..=) "WebACLId" Prelude.<$> webACLId]))) instance Property "Aliases" DistributionConfigProperty where type PropertyType "Aliases" DistributionConfigProperty = ValueList Prelude.Text set newValue DistributionConfigProperty {..} = DistributionConfigProperty {aliases = Prelude.pure newValue, ..} instance Property "AnycastIpListId" DistributionConfigProperty where type PropertyType "AnycastIpListId" DistributionConfigProperty = Value Prelude.Text set newValue DistributionConfigProperty {..} = DistributionConfigProperty {anycastIpListId = Prelude.pure newValue, ..} instance Property "CNAMEs" DistributionConfigProperty where type PropertyType "CNAMEs" DistributionConfigProperty = ValueList Prelude.Text set newValue DistributionConfigProperty {..} = DistributionConfigProperty {cNAMEs = Prelude.pure newValue, ..} instance Property "CacheBehaviors" DistributionConfigProperty where type PropertyType "CacheBehaviors" DistributionConfigProperty = [CacheBehaviorProperty] set newValue DistributionConfigProperty {..} = DistributionConfigProperty {cacheBehaviors = Prelude.pure newValue, ..} instance Property "Comment" DistributionConfigProperty where type PropertyType "Comment" DistributionConfigProperty = Value Prelude.Text set newValue DistributionConfigProperty {..} = DistributionConfigProperty {comment = Prelude.pure newValue, ..} instance Property "ConnectionMode" DistributionConfigProperty where type PropertyType "ConnectionMode" DistributionConfigProperty = Value Prelude.Text set newValue DistributionConfigProperty {..} = DistributionConfigProperty {connectionMode = Prelude.pure newValue, ..} instance Property "ContinuousDeploymentPolicyId" DistributionConfigProperty where type PropertyType "ContinuousDeploymentPolicyId" DistributionConfigProperty = Value Prelude.Text set newValue DistributionConfigProperty {..} = DistributionConfigProperty {continuousDeploymentPolicyId = Prelude.pure newValue, ..} instance Property "CustomErrorResponses" DistributionConfigProperty where type PropertyType "CustomErrorResponses" DistributionConfigProperty = [CustomErrorResponseProperty] set newValue DistributionConfigProperty {..} = DistributionConfigProperty {customErrorResponses = Prelude.pure newValue, ..} instance Property "CustomOrigin" DistributionConfigProperty where type PropertyType "CustomOrigin" DistributionConfigProperty = LegacyCustomOriginProperty set newValue DistributionConfigProperty {..} = DistributionConfigProperty {customOrigin = Prelude.pure newValue, ..} instance Property "DefaultCacheBehavior" DistributionConfigProperty where type PropertyType "DefaultCacheBehavior" DistributionConfigProperty = DefaultCacheBehaviorProperty set newValue DistributionConfigProperty {..} = DistributionConfigProperty {defaultCacheBehavior = newValue, ..} instance Property "DefaultRootObject" DistributionConfigProperty where type PropertyType "DefaultRootObject" DistributionConfigProperty = Value Prelude.Text set newValue DistributionConfigProperty {..} = DistributionConfigProperty {defaultRootObject = Prelude.pure newValue, ..} instance Property "Enabled" DistributionConfigProperty where type PropertyType "Enabled" DistributionConfigProperty = Value Prelude.Bool set newValue DistributionConfigProperty {..} = DistributionConfigProperty {enabled = newValue, ..} instance Property "HttpVersion" DistributionConfigProperty where type PropertyType "HttpVersion" DistributionConfigProperty = Value Prelude.Text set newValue DistributionConfigProperty {..} = DistributionConfigProperty {httpVersion = Prelude.pure newValue, ..} instance Property "IPV6Enabled" DistributionConfigProperty where type PropertyType "IPV6Enabled" DistributionConfigProperty = Value Prelude.Bool set newValue DistributionConfigProperty {..} = DistributionConfigProperty {iPV6Enabled = Prelude.pure newValue, ..} instance Property "Logging" DistributionConfigProperty where type PropertyType "Logging" DistributionConfigProperty = LoggingProperty set newValue DistributionConfigProperty {..} = DistributionConfigProperty {logging = Prelude.pure newValue, ..} instance Property "OriginGroups" DistributionConfigProperty where type PropertyType "OriginGroups" DistributionConfigProperty = OriginGroupsProperty set newValue DistributionConfigProperty {..} = DistributionConfigProperty {originGroups = Prelude.pure newValue, ..} instance Property "Origins" DistributionConfigProperty where type PropertyType "Origins" DistributionConfigProperty = [OriginProperty] set newValue DistributionConfigProperty {..} = DistributionConfigProperty {origins = Prelude.pure newValue, ..} instance Property "PriceClass" DistributionConfigProperty where type PropertyType "PriceClass" DistributionConfigProperty = Value Prelude.Text set newValue DistributionConfigProperty {..} = DistributionConfigProperty {priceClass = Prelude.pure newValue, ..} instance Property "Restrictions" DistributionConfigProperty where type PropertyType "Restrictions" DistributionConfigProperty = RestrictionsProperty set newValue DistributionConfigProperty {..} = DistributionConfigProperty {restrictions = Prelude.pure newValue, ..} instance Property "S3Origin" DistributionConfigProperty where type PropertyType "S3Origin" DistributionConfigProperty = LegacyS3OriginProperty set newValue DistributionConfigProperty {..} = DistributionConfigProperty {s3Origin = Prelude.pure newValue, ..} instance Property "Staging" DistributionConfigProperty where type PropertyType "Staging" DistributionConfigProperty = Value Prelude.Bool set newValue DistributionConfigProperty {..} = DistributionConfigProperty {staging = Prelude.pure newValue, ..} instance Property "TenantConfig" DistributionConfigProperty where type PropertyType "TenantConfig" DistributionConfigProperty = TenantConfigProperty set newValue DistributionConfigProperty {..} = DistributionConfigProperty {tenantConfig = Prelude.pure newValue, ..} instance Property "ViewerCertificate" DistributionConfigProperty where type PropertyType "ViewerCertificate" DistributionConfigProperty = ViewerCertificateProperty set newValue DistributionConfigProperty {..} = DistributionConfigProperty {viewerCertificate = Prelude.pure newValue, ..} instance Property "WebACLId" DistributionConfigProperty where type PropertyType "WebACLId" DistributionConfigProperty = Value Prelude.Text set newValue DistributionConfigProperty {..} = DistributionConfigProperty {webACLId = Prelude.pure newValue, ..}