packages feed

stratosphere-0.59.0: library-gen/Stratosphere/ResourceProperties/CloudFrontCachePolicyParametersInCacheKeyAndForwardedToOrigin.hs

{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TupleSections #-}

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-parametersincachekeyandforwardedtoorigin.html

module Stratosphere.ResourceProperties.CloudFrontCachePolicyParametersInCacheKeyAndForwardedToOrigin where

import Stratosphere.ResourceImports
import Stratosphere.ResourceProperties.CloudFrontCachePolicyCookiesConfig
import Stratosphere.ResourceProperties.CloudFrontCachePolicyHeadersConfig
import Stratosphere.ResourceProperties.CloudFrontCachePolicyQueryStringsConfig

-- | Full data type definition for
-- CloudFrontCachePolicyParametersInCacheKeyAndForwardedToOrigin. See
-- 'cloudFrontCachePolicyParametersInCacheKeyAndForwardedToOrigin' for a
-- more convenient constructor.
data CloudFrontCachePolicyParametersInCacheKeyAndForwardedToOrigin =
  CloudFrontCachePolicyParametersInCacheKeyAndForwardedToOrigin
  { _cloudFrontCachePolicyParametersInCacheKeyAndForwardedToOriginCookiesConfig :: CloudFrontCachePolicyCookiesConfig
  , _cloudFrontCachePolicyParametersInCacheKeyAndForwardedToOriginEnableAcceptEncodingGzip :: Val Bool
  , _cloudFrontCachePolicyParametersInCacheKeyAndForwardedToOriginHeadersConfig :: CloudFrontCachePolicyHeadersConfig
  , _cloudFrontCachePolicyParametersInCacheKeyAndForwardedToOriginQueryStringsConfig :: CloudFrontCachePolicyQueryStringsConfig
  } deriving (Show, Eq)

instance ToJSON CloudFrontCachePolicyParametersInCacheKeyAndForwardedToOrigin where
  toJSON CloudFrontCachePolicyParametersInCacheKeyAndForwardedToOrigin{..} =
    object $
    catMaybes
    [ (Just . ("CookiesConfig",) . toJSON) _cloudFrontCachePolicyParametersInCacheKeyAndForwardedToOriginCookiesConfig
    , (Just . ("EnableAcceptEncodingGzip",) . toJSON) _cloudFrontCachePolicyParametersInCacheKeyAndForwardedToOriginEnableAcceptEncodingGzip
    , (Just . ("HeadersConfig",) . toJSON) _cloudFrontCachePolicyParametersInCacheKeyAndForwardedToOriginHeadersConfig
    , (Just . ("QueryStringsConfig",) . toJSON) _cloudFrontCachePolicyParametersInCacheKeyAndForwardedToOriginQueryStringsConfig
    ]

-- | Constructor for
-- 'CloudFrontCachePolicyParametersInCacheKeyAndForwardedToOrigin'
-- containing required fields as arguments.
cloudFrontCachePolicyParametersInCacheKeyAndForwardedToOrigin
  :: CloudFrontCachePolicyCookiesConfig -- ^ 'cfcppickaftoCookiesConfig'
  -> Val Bool -- ^ 'cfcppickaftoEnableAcceptEncodingGzip'
  -> CloudFrontCachePolicyHeadersConfig -- ^ 'cfcppickaftoHeadersConfig'
  -> CloudFrontCachePolicyQueryStringsConfig -- ^ 'cfcppickaftoQueryStringsConfig'
  -> CloudFrontCachePolicyParametersInCacheKeyAndForwardedToOrigin
cloudFrontCachePolicyParametersInCacheKeyAndForwardedToOrigin cookiesConfigarg enableAcceptEncodingGziparg headersConfigarg queryStringsConfigarg =
  CloudFrontCachePolicyParametersInCacheKeyAndForwardedToOrigin
  { _cloudFrontCachePolicyParametersInCacheKeyAndForwardedToOriginCookiesConfig = cookiesConfigarg
  , _cloudFrontCachePolicyParametersInCacheKeyAndForwardedToOriginEnableAcceptEncodingGzip = enableAcceptEncodingGziparg
  , _cloudFrontCachePolicyParametersInCacheKeyAndForwardedToOriginHeadersConfig = headersConfigarg
  , _cloudFrontCachePolicyParametersInCacheKeyAndForwardedToOriginQueryStringsConfig = queryStringsConfigarg
  }

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-parametersincachekeyandforwardedtoorigin.html#cfn-cloudfront-cachepolicy-parametersincachekeyandforwardedtoorigin-cookiesconfig
cfcppickaftoCookiesConfig :: Lens' CloudFrontCachePolicyParametersInCacheKeyAndForwardedToOrigin CloudFrontCachePolicyCookiesConfig
cfcppickaftoCookiesConfig = lens _cloudFrontCachePolicyParametersInCacheKeyAndForwardedToOriginCookiesConfig (\s a -> s { _cloudFrontCachePolicyParametersInCacheKeyAndForwardedToOriginCookiesConfig = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-parametersincachekeyandforwardedtoorigin.html#cfn-cloudfront-cachepolicy-parametersincachekeyandforwardedtoorigin-enableacceptencodinggzip
cfcppickaftoEnableAcceptEncodingGzip :: Lens' CloudFrontCachePolicyParametersInCacheKeyAndForwardedToOrigin (Val Bool)
cfcppickaftoEnableAcceptEncodingGzip = lens _cloudFrontCachePolicyParametersInCacheKeyAndForwardedToOriginEnableAcceptEncodingGzip (\s a -> s { _cloudFrontCachePolicyParametersInCacheKeyAndForwardedToOriginEnableAcceptEncodingGzip = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-parametersincachekeyandforwardedtoorigin.html#cfn-cloudfront-cachepolicy-parametersincachekeyandforwardedtoorigin-headersconfig
cfcppickaftoHeadersConfig :: Lens' CloudFrontCachePolicyParametersInCacheKeyAndForwardedToOrigin CloudFrontCachePolicyHeadersConfig
cfcppickaftoHeadersConfig = lens _cloudFrontCachePolicyParametersInCacheKeyAndForwardedToOriginHeadersConfig (\s a -> s { _cloudFrontCachePolicyParametersInCacheKeyAndForwardedToOriginHeadersConfig = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-parametersincachekeyandforwardedtoorigin.html#cfn-cloudfront-cachepolicy-parametersincachekeyandforwardedtoorigin-querystringsconfig
cfcppickaftoQueryStringsConfig :: Lens' CloudFrontCachePolicyParametersInCacheKeyAndForwardedToOrigin CloudFrontCachePolicyQueryStringsConfig
cfcppickaftoQueryStringsConfig = lens _cloudFrontCachePolicyParametersInCacheKeyAndForwardedToOriginQueryStringsConfig (\s a -> s { _cloudFrontCachePolicyParametersInCacheKeyAndForwardedToOriginQueryStringsConfig = a })