packages feed

stratosphere-cloudfront-1.0.0: gen/Stratosphere/CloudFront/CachePolicy/CachePolicyConfigProperty.hs

module Stratosphere.CloudFront.CachePolicy.CachePolicyConfigProperty (
        module Exports, CachePolicyConfigProperty(..),
        mkCachePolicyConfigProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.CloudFront.CachePolicy.ParametersInCacheKeyAndForwardedToOriginProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Value
data CachePolicyConfigProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-cachepolicyconfig.html>
    CachePolicyConfigProperty {haddock_workaround_ :: (),
                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-cachepolicyconfig.html#cfn-cloudfront-cachepolicy-cachepolicyconfig-comment>
                               comment :: (Prelude.Maybe (Value Prelude.Text)),
                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-cachepolicyconfig.html#cfn-cloudfront-cachepolicy-cachepolicyconfig-defaultttl>
                               defaultTTL :: (Value Prelude.Double),
                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-cachepolicyconfig.html#cfn-cloudfront-cachepolicy-cachepolicyconfig-maxttl>
                               maxTTL :: (Value Prelude.Double),
                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-cachepolicyconfig.html#cfn-cloudfront-cachepolicy-cachepolicyconfig-minttl>
                               minTTL :: (Value Prelude.Double),
                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-cachepolicyconfig.html#cfn-cloudfront-cachepolicy-cachepolicyconfig-name>
                               name :: (Value Prelude.Text),
                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-cachepolicyconfig.html#cfn-cloudfront-cachepolicy-cachepolicyconfig-parametersincachekeyandforwardedtoorigin>
                               parametersInCacheKeyAndForwardedToOrigin :: ParametersInCacheKeyAndForwardedToOriginProperty}
  deriving stock (Prelude.Eq, Prelude.Show)
mkCachePolicyConfigProperty ::
  Value Prelude.Double
  -> Value Prelude.Double
     -> Value Prelude.Double
        -> Value Prelude.Text
           -> ParametersInCacheKeyAndForwardedToOriginProperty
              -> CachePolicyConfigProperty
mkCachePolicyConfigProperty
  defaultTTL
  maxTTL
  minTTL
  name
  parametersInCacheKeyAndForwardedToOrigin
  = CachePolicyConfigProperty
      {haddock_workaround_ = (), defaultTTL = defaultTTL,
       maxTTL = maxTTL, minTTL = minTTL, name = name,
       parametersInCacheKeyAndForwardedToOrigin = parametersInCacheKeyAndForwardedToOrigin,
       comment = Prelude.Nothing}
instance ToResourceProperties CachePolicyConfigProperty where
  toResourceProperties CachePolicyConfigProperty {..}
    = ResourceProperties
        {awsType = "AWS::CloudFront::CachePolicy.CachePolicyConfig",
         supportsTags = Prelude.False,
         properties = Prelude.fromList
                        ((Prelude.<>)
                           ["DefaultTTL" JSON..= defaultTTL, "MaxTTL" JSON..= maxTTL,
                            "MinTTL" JSON..= minTTL, "Name" JSON..= name,
                            "ParametersInCacheKeyAndForwardedToOrigin"
                              JSON..= parametersInCacheKeyAndForwardedToOrigin]
                           (Prelude.catMaybes [(JSON..=) "Comment" Prelude.<$> comment]))}
instance JSON.ToJSON CachePolicyConfigProperty where
  toJSON CachePolicyConfigProperty {..}
    = JSON.object
        (Prelude.fromList
           ((Prelude.<>)
              ["DefaultTTL" JSON..= defaultTTL, "MaxTTL" JSON..= maxTTL,
               "MinTTL" JSON..= minTTL, "Name" JSON..= name,
               "ParametersInCacheKeyAndForwardedToOrigin"
                 JSON..= parametersInCacheKeyAndForwardedToOrigin]
              (Prelude.catMaybes [(JSON..=) "Comment" Prelude.<$> comment])))
instance Property "Comment" CachePolicyConfigProperty where
  type PropertyType "Comment" CachePolicyConfigProperty = Value Prelude.Text
  set newValue CachePolicyConfigProperty {..}
    = CachePolicyConfigProperty {comment = Prelude.pure newValue, ..}
instance Property "DefaultTTL" CachePolicyConfigProperty where
  type PropertyType "DefaultTTL" CachePolicyConfigProperty = Value Prelude.Double
  set newValue CachePolicyConfigProperty {..}
    = CachePolicyConfigProperty {defaultTTL = newValue, ..}
instance Property "MaxTTL" CachePolicyConfigProperty where
  type PropertyType "MaxTTL" CachePolicyConfigProperty = Value Prelude.Double
  set newValue CachePolicyConfigProperty {..}
    = CachePolicyConfigProperty {maxTTL = newValue, ..}
instance Property "MinTTL" CachePolicyConfigProperty where
  type PropertyType "MinTTL" CachePolicyConfigProperty = Value Prelude.Double
  set newValue CachePolicyConfigProperty {..}
    = CachePolicyConfigProperty {minTTL = newValue, ..}
instance Property "Name" CachePolicyConfigProperty where
  type PropertyType "Name" CachePolicyConfigProperty = Value Prelude.Text
  set newValue CachePolicyConfigProperty {..}
    = CachePolicyConfigProperty {name = newValue, ..}
instance Property "ParametersInCacheKeyAndForwardedToOrigin" CachePolicyConfigProperty where
  type PropertyType "ParametersInCacheKeyAndForwardedToOrigin" CachePolicyConfigProperty = ParametersInCacheKeyAndForwardedToOriginProperty
  set newValue CachePolicyConfigProperty {..}
    = CachePolicyConfigProperty
        {parametersInCacheKeyAndForwardedToOrigin = newValue, ..}