stratosphere-0.38.0: library-gen/Stratosphere/ResourceProperties/MediaStoreContainerCorsRule.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TupleSections #-}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediastore-container-corsrule.html
module Stratosphere.ResourceProperties.MediaStoreContainerCorsRule where
import Stratosphere.ResourceImports
-- | Full data type definition for MediaStoreContainerCorsRule. See
-- 'mediaStoreContainerCorsRule' for a more convenient constructor.
data MediaStoreContainerCorsRule =
MediaStoreContainerCorsRule
{ _mediaStoreContainerCorsRuleAllowedHeaders :: Maybe (ValList Text)
, _mediaStoreContainerCorsRuleAllowedMethods :: Maybe (ValList Text)
, _mediaStoreContainerCorsRuleAllowedOrigins :: Maybe (ValList Text)
, _mediaStoreContainerCorsRuleExposeHeaders :: Maybe (ValList Text)
, _mediaStoreContainerCorsRuleMaxAgeSeconds :: Maybe (Val Integer)
} deriving (Show, Eq)
instance ToJSON MediaStoreContainerCorsRule where
toJSON MediaStoreContainerCorsRule{..} =
object $
catMaybes
[ fmap (("AllowedHeaders",) . toJSON) _mediaStoreContainerCorsRuleAllowedHeaders
, fmap (("AllowedMethods",) . toJSON) _mediaStoreContainerCorsRuleAllowedMethods
, fmap (("AllowedOrigins",) . toJSON) _mediaStoreContainerCorsRuleAllowedOrigins
, fmap (("ExposeHeaders",) . toJSON) _mediaStoreContainerCorsRuleExposeHeaders
, fmap (("MaxAgeSeconds",) . toJSON) _mediaStoreContainerCorsRuleMaxAgeSeconds
]
-- | Constructor for 'MediaStoreContainerCorsRule' containing required fields
-- as arguments.
mediaStoreContainerCorsRule
:: MediaStoreContainerCorsRule
mediaStoreContainerCorsRule =
MediaStoreContainerCorsRule
{ _mediaStoreContainerCorsRuleAllowedHeaders = Nothing
, _mediaStoreContainerCorsRuleAllowedMethods = Nothing
, _mediaStoreContainerCorsRuleAllowedOrigins = Nothing
, _mediaStoreContainerCorsRuleExposeHeaders = Nothing
, _mediaStoreContainerCorsRuleMaxAgeSeconds = Nothing
}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediastore-container-corsrule.html#cfn-mediastore-container-corsrule-allowedheaders
msccrAllowedHeaders :: Lens' MediaStoreContainerCorsRule (Maybe (ValList Text))
msccrAllowedHeaders = lens _mediaStoreContainerCorsRuleAllowedHeaders (\s a -> s { _mediaStoreContainerCorsRuleAllowedHeaders = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediastore-container-corsrule.html#cfn-mediastore-container-corsrule-allowedmethods
msccrAllowedMethods :: Lens' MediaStoreContainerCorsRule (Maybe (ValList Text))
msccrAllowedMethods = lens _mediaStoreContainerCorsRuleAllowedMethods (\s a -> s { _mediaStoreContainerCorsRuleAllowedMethods = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediastore-container-corsrule.html#cfn-mediastore-container-corsrule-allowedorigins
msccrAllowedOrigins :: Lens' MediaStoreContainerCorsRule (Maybe (ValList Text))
msccrAllowedOrigins = lens _mediaStoreContainerCorsRuleAllowedOrigins (\s a -> s { _mediaStoreContainerCorsRuleAllowedOrigins = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediastore-container-corsrule.html#cfn-mediastore-container-corsrule-exposeheaders
msccrExposeHeaders :: Lens' MediaStoreContainerCorsRule (Maybe (ValList Text))
msccrExposeHeaders = lens _mediaStoreContainerCorsRuleExposeHeaders (\s a -> s { _mediaStoreContainerCorsRuleExposeHeaders = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediastore-container-corsrule.html#cfn-mediastore-container-corsrule-maxageseconds
msccrMaxAgeSeconds :: Lens' MediaStoreContainerCorsRule (Maybe (Val Integer))
msccrMaxAgeSeconds = lens _mediaStoreContainerCorsRuleMaxAgeSeconds (\s a -> s { _mediaStoreContainerCorsRuleMaxAgeSeconds = a })