stratosphere-0.50.0: library-gen/Stratosphere/ResourceProperties/WAFv2WebACLVisibilityConfig.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TupleSections #-}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-visibilityconfig.html
module Stratosphere.ResourceProperties.WAFv2WebACLVisibilityConfig where
import Stratosphere.ResourceImports
-- | Full data type definition for WAFv2WebACLVisibilityConfig. See
-- 'waFv2WebACLVisibilityConfig' for a more convenient constructor.
data WAFv2WebACLVisibilityConfig =
WAFv2WebACLVisibilityConfig
{ _wAFv2WebACLVisibilityConfigCloudWatchMetricsEnabled :: Val Bool
, _wAFv2WebACLVisibilityConfigMetricName :: Val Text
, _wAFv2WebACLVisibilityConfigSampledRequestsEnabled :: Val Bool
} deriving (Show, Eq)
instance ToJSON WAFv2WebACLVisibilityConfig where
toJSON WAFv2WebACLVisibilityConfig{..} =
object $
catMaybes
[ (Just . ("CloudWatchMetricsEnabled",) . toJSON) _wAFv2WebACLVisibilityConfigCloudWatchMetricsEnabled
, (Just . ("MetricName",) . toJSON) _wAFv2WebACLVisibilityConfigMetricName
, (Just . ("SampledRequestsEnabled",) . toJSON) _wAFv2WebACLVisibilityConfigSampledRequestsEnabled
]
-- | Constructor for 'WAFv2WebACLVisibilityConfig' containing required fields
-- as arguments.
waFv2WebACLVisibilityConfig
:: Val Bool -- ^ 'wafwaclvcCloudWatchMetricsEnabled'
-> Val Text -- ^ 'wafwaclvcMetricName'
-> Val Bool -- ^ 'wafwaclvcSampledRequestsEnabled'
-> WAFv2WebACLVisibilityConfig
waFv2WebACLVisibilityConfig cloudWatchMetricsEnabledarg metricNamearg sampledRequestsEnabledarg =
WAFv2WebACLVisibilityConfig
{ _wAFv2WebACLVisibilityConfigCloudWatchMetricsEnabled = cloudWatchMetricsEnabledarg
, _wAFv2WebACLVisibilityConfigMetricName = metricNamearg
, _wAFv2WebACLVisibilityConfigSampledRequestsEnabled = sampledRequestsEnabledarg
}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-visibilityconfig.html#cfn-wafv2-webacl-visibilityconfig-cloudwatchmetricsenabled
wafwaclvcCloudWatchMetricsEnabled :: Lens' WAFv2WebACLVisibilityConfig (Val Bool)
wafwaclvcCloudWatchMetricsEnabled = lens _wAFv2WebACLVisibilityConfigCloudWatchMetricsEnabled (\s a -> s { _wAFv2WebACLVisibilityConfigCloudWatchMetricsEnabled = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-visibilityconfig.html#cfn-wafv2-webacl-visibilityconfig-metricname
wafwaclvcMetricName :: Lens' WAFv2WebACLVisibilityConfig (Val Text)
wafwaclvcMetricName = lens _wAFv2WebACLVisibilityConfigMetricName (\s a -> s { _wAFv2WebACLVisibilityConfigMetricName = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-visibilityconfig.html#cfn-wafv2-webacl-visibilityconfig-sampledrequestsenabled
wafwaclvcSampledRequestsEnabled :: Lens' WAFv2WebACLVisibilityConfig (Val Bool)
wafwaclvcSampledRequestsEnabled = lens _wAFv2WebACLVisibilityConfigSampledRequestsEnabled (\s a -> s { _wAFv2WebACLVisibilityConfigSampledRequestsEnabled = a })