packages feed

stratosphere-cloudfront-1.0.0: gen/Stratosphere/CloudFront/ResponseHeadersPolicy/ResponseHeadersPolicyConfigProperty.hs

module Stratosphere.CloudFront.ResponseHeadersPolicy.ResponseHeadersPolicyConfigProperty (
        module Exports, ResponseHeadersPolicyConfigProperty(..),
        mkResponseHeadersPolicyConfigProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.CloudFront.ResponseHeadersPolicy.CorsConfigProperty as Exports
import {-# SOURCE #-} Stratosphere.CloudFront.ResponseHeadersPolicy.CustomHeadersConfigProperty as Exports
import {-# SOURCE #-} Stratosphere.CloudFront.ResponseHeadersPolicy.RemoveHeadersConfigProperty as Exports
import {-# SOURCE #-} Stratosphere.CloudFront.ResponseHeadersPolicy.SecurityHeadersConfigProperty as Exports
import {-# SOURCE #-} Stratosphere.CloudFront.ResponseHeadersPolicy.ServerTimingHeadersConfigProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Value
data ResponseHeadersPolicyConfigProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-responseheaderspolicyconfig.html>
    ResponseHeadersPolicyConfigProperty {haddock_workaround_ :: (),
                                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-responseheaderspolicyconfig.html#cfn-cloudfront-responseheaderspolicy-responseheaderspolicyconfig-comment>
                                         comment :: (Prelude.Maybe (Value Prelude.Text)),
                                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-responseheaderspolicyconfig.html#cfn-cloudfront-responseheaderspolicy-responseheaderspolicyconfig-corsconfig>
                                         corsConfig :: (Prelude.Maybe CorsConfigProperty),
                                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-responseheaderspolicyconfig.html#cfn-cloudfront-responseheaderspolicy-responseheaderspolicyconfig-customheadersconfig>
                                         customHeadersConfig :: (Prelude.Maybe CustomHeadersConfigProperty),
                                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-responseheaderspolicyconfig.html#cfn-cloudfront-responseheaderspolicy-responseheaderspolicyconfig-name>
                                         name :: (Value Prelude.Text),
                                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-responseheaderspolicyconfig.html#cfn-cloudfront-responseheaderspolicy-responseheaderspolicyconfig-removeheadersconfig>
                                         removeHeadersConfig :: (Prelude.Maybe RemoveHeadersConfigProperty),
                                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-responseheaderspolicyconfig.html#cfn-cloudfront-responseheaderspolicy-responseheaderspolicyconfig-securityheadersconfig>
                                         securityHeadersConfig :: (Prelude.Maybe SecurityHeadersConfigProperty),
                                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-responseheaderspolicyconfig.html#cfn-cloudfront-responseheaderspolicy-responseheaderspolicyconfig-servertimingheadersconfig>
                                         serverTimingHeadersConfig :: (Prelude.Maybe ServerTimingHeadersConfigProperty)}
  deriving stock (Prelude.Eq, Prelude.Show)
mkResponseHeadersPolicyConfigProperty ::
  Value Prelude.Text -> ResponseHeadersPolicyConfigProperty
mkResponseHeadersPolicyConfigProperty name
  = ResponseHeadersPolicyConfigProperty
      {haddock_workaround_ = (), name = name, comment = Prelude.Nothing,
       corsConfig = Prelude.Nothing,
       customHeadersConfig = Prelude.Nothing,
       removeHeadersConfig = Prelude.Nothing,
       securityHeadersConfig = Prelude.Nothing,
       serverTimingHeadersConfig = Prelude.Nothing}
instance ToResourceProperties ResponseHeadersPolicyConfigProperty where
  toResourceProperties ResponseHeadersPolicyConfigProperty {..}
    = ResourceProperties
        {awsType = "AWS::CloudFront::ResponseHeadersPolicy.ResponseHeadersPolicyConfig",
         supportsTags = Prelude.False,
         properties = Prelude.fromList
                        ((Prelude.<>)
                           ["Name" JSON..= name]
                           (Prelude.catMaybes
                              [(JSON..=) "Comment" Prelude.<$> comment,
                               (JSON..=) "CorsConfig" Prelude.<$> corsConfig,
                               (JSON..=) "CustomHeadersConfig" Prelude.<$> customHeadersConfig,
                               (JSON..=) "RemoveHeadersConfig" Prelude.<$> removeHeadersConfig,
                               (JSON..=) "SecurityHeadersConfig"
                                 Prelude.<$> securityHeadersConfig,
                               (JSON..=) "ServerTimingHeadersConfig"
                                 Prelude.<$> serverTimingHeadersConfig]))}
instance JSON.ToJSON ResponseHeadersPolicyConfigProperty where
  toJSON ResponseHeadersPolicyConfigProperty {..}
    = JSON.object
        (Prelude.fromList
           ((Prelude.<>)
              ["Name" JSON..= name]
              (Prelude.catMaybes
                 [(JSON..=) "Comment" Prelude.<$> comment,
                  (JSON..=) "CorsConfig" Prelude.<$> corsConfig,
                  (JSON..=) "CustomHeadersConfig" Prelude.<$> customHeadersConfig,
                  (JSON..=) "RemoveHeadersConfig" Prelude.<$> removeHeadersConfig,
                  (JSON..=) "SecurityHeadersConfig"
                    Prelude.<$> securityHeadersConfig,
                  (JSON..=) "ServerTimingHeadersConfig"
                    Prelude.<$> serverTimingHeadersConfig])))
instance Property "Comment" ResponseHeadersPolicyConfigProperty where
  type PropertyType "Comment" ResponseHeadersPolicyConfigProperty = Value Prelude.Text
  set newValue ResponseHeadersPolicyConfigProperty {..}
    = ResponseHeadersPolicyConfigProperty
        {comment = Prelude.pure newValue, ..}
instance Property "CorsConfig" ResponseHeadersPolicyConfigProperty where
  type PropertyType "CorsConfig" ResponseHeadersPolicyConfigProperty = CorsConfigProperty
  set newValue ResponseHeadersPolicyConfigProperty {..}
    = ResponseHeadersPolicyConfigProperty
        {corsConfig = Prelude.pure newValue, ..}
instance Property "CustomHeadersConfig" ResponseHeadersPolicyConfigProperty where
  type PropertyType "CustomHeadersConfig" ResponseHeadersPolicyConfigProperty = CustomHeadersConfigProperty
  set newValue ResponseHeadersPolicyConfigProperty {..}
    = ResponseHeadersPolicyConfigProperty
        {customHeadersConfig = Prelude.pure newValue, ..}
instance Property "Name" ResponseHeadersPolicyConfigProperty where
  type PropertyType "Name" ResponseHeadersPolicyConfigProperty = Value Prelude.Text
  set newValue ResponseHeadersPolicyConfigProperty {..}
    = ResponseHeadersPolicyConfigProperty {name = newValue, ..}
instance Property "RemoveHeadersConfig" ResponseHeadersPolicyConfigProperty where
  type PropertyType "RemoveHeadersConfig" ResponseHeadersPolicyConfigProperty = RemoveHeadersConfigProperty
  set newValue ResponseHeadersPolicyConfigProperty {..}
    = ResponseHeadersPolicyConfigProperty
        {removeHeadersConfig = Prelude.pure newValue, ..}
instance Property "SecurityHeadersConfig" ResponseHeadersPolicyConfigProperty where
  type PropertyType "SecurityHeadersConfig" ResponseHeadersPolicyConfigProperty = SecurityHeadersConfigProperty
  set newValue ResponseHeadersPolicyConfigProperty {..}
    = ResponseHeadersPolicyConfigProperty
        {securityHeadersConfig = Prelude.pure newValue, ..}
instance Property "ServerTimingHeadersConfig" ResponseHeadersPolicyConfigProperty where
  type PropertyType "ServerTimingHeadersConfig" ResponseHeadersPolicyConfigProperty = ServerTimingHeadersConfigProperty
  set newValue ResponseHeadersPolicyConfigProperty {..}
    = ResponseHeadersPolicyConfigProperty
        {serverTimingHeadersConfig = Prelude.pure newValue, ..}