stratosphere-0.50.0: library-gen/Stratosphere/ResourceProperties/WAFv2WebACLStatementOne.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TupleSections #-}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-statementone.html
module Stratosphere.ResourceProperties.WAFv2WebACLStatementOne where
import Stratosphere.ResourceImports
import Stratosphere.ResourceProperties.WAFv2WebACLAndStatementOne
import Stratosphere.ResourceProperties.WAFv2WebACLByteMatchStatement
import Stratosphere.ResourceProperties.WAFv2WebACLGeoMatchStatement
import Stratosphere.ResourceProperties.WAFv2WebACLIPSetReferenceStatement
import Stratosphere.ResourceProperties.WAFv2WebACLManagedRuleGroupStatement
import Stratosphere.ResourceProperties.WAFv2WebACLNotStatementOne
import Stratosphere.ResourceProperties.WAFv2WebACLOrStatementOne
import Stratosphere.ResourceProperties.WAFv2WebACLRateBasedStatementOne
import Stratosphere.ResourceProperties.WAFv2WebACLRegexPatternSetReferenceStatement
import Stratosphere.ResourceProperties.WAFv2WebACLRuleGroupReferenceStatement
import Stratosphere.ResourceProperties.WAFv2WebACLSizeConstraintStatement
import Stratosphere.ResourceProperties.WAFv2WebACLSqliMatchStatement
import Stratosphere.ResourceProperties.WAFv2WebACLXssMatchStatement
-- | Full data type definition for WAFv2WebACLStatementOne. See
-- 'waFv2WebACLStatementOne' for a more convenient constructor.
data WAFv2WebACLStatementOne =
WAFv2WebACLStatementOne
{ _wAFv2WebACLStatementOneAndStatement :: Maybe WAFv2WebACLAndStatementOne
, _wAFv2WebACLStatementOneByteMatchStatement :: Maybe WAFv2WebACLByteMatchStatement
, _wAFv2WebACLStatementOneGeoMatchStatement :: Maybe WAFv2WebACLGeoMatchStatement
, _wAFv2WebACLStatementOneIPSetReferenceStatement :: Maybe WAFv2WebACLIPSetReferenceStatement
, _wAFv2WebACLStatementOneManagedRuleGroupStatement :: Maybe WAFv2WebACLManagedRuleGroupStatement
, _wAFv2WebACLStatementOneNotStatement :: Maybe WAFv2WebACLNotStatementOne
, _wAFv2WebACLStatementOneOrStatement :: Maybe WAFv2WebACLOrStatementOne
, _wAFv2WebACLStatementOneRateBasedStatement :: Maybe WAFv2WebACLRateBasedStatementOne
, _wAFv2WebACLStatementOneRegexPatternSetReferenceStatement :: Maybe WAFv2WebACLRegexPatternSetReferenceStatement
, _wAFv2WebACLStatementOneRuleGroupReferenceStatement :: Maybe WAFv2WebACLRuleGroupReferenceStatement
, _wAFv2WebACLStatementOneSizeConstraintStatement :: Maybe WAFv2WebACLSizeConstraintStatement
, _wAFv2WebACLStatementOneSqliMatchStatement :: Maybe WAFv2WebACLSqliMatchStatement
, _wAFv2WebACLStatementOneXssMatchStatement :: Maybe WAFv2WebACLXssMatchStatement
} deriving (Show, Eq)
instance ToJSON WAFv2WebACLStatementOne where
toJSON WAFv2WebACLStatementOne{..} =
object $
catMaybes
[ fmap (("AndStatement",) . toJSON) _wAFv2WebACLStatementOneAndStatement
, fmap (("ByteMatchStatement",) . toJSON) _wAFv2WebACLStatementOneByteMatchStatement
, fmap (("GeoMatchStatement",) . toJSON) _wAFv2WebACLStatementOneGeoMatchStatement
, fmap (("IPSetReferenceStatement",) . toJSON) _wAFv2WebACLStatementOneIPSetReferenceStatement
, fmap (("ManagedRuleGroupStatement",) . toJSON) _wAFv2WebACLStatementOneManagedRuleGroupStatement
, fmap (("NotStatement",) . toJSON) _wAFv2WebACLStatementOneNotStatement
, fmap (("OrStatement",) . toJSON) _wAFv2WebACLStatementOneOrStatement
, fmap (("RateBasedStatement",) . toJSON) _wAFv2WebACLStatementOneRateBasedStatement
, fmap (("RegexPatternSetReferenceStatement",) . toJSON) _wAFv2WebACLStatementOneRegexPatternSetReferenceStatement
, fmap (("RuleGroupReferenceStatement",) . toJSON) _wAFv2WebACLStatementOneRuleGroupReferenceStatement
, fmap (("SizeConstraintStatement",) . toJSON) _wAFv2WebACLStatementOneSizeConstraintStatement
, fmap (("SqliMatchStatement",) . toJSON) _wAFv2WebACLStatementOneSqliMatchStatement
, fmap (("XssMatchStatement",) . toJSON) _wAFv2WebACLStatementOneXssMatchStatement
]
-- | Constructor for 'WAFv2WebACLStatementOne' containing required fields as
-- arguments.
waFv2WebACLStatementOne
:: WAFv2WebACLStatementOne
waFv2WebACLStatementOne =
WAFv2WebACLStatementOne
{ _wAFv2WebACLStatementOneAndStatement = Nothing
, _wAFv2WebACLStatementOneByteMatchStatement = Nothing
, _wAFv2WebACLStatementOneGeoMatchStatement = Nothing
, _wAFv2WebACLStatementOneIPSetReferenceStatement = Nothing
, _wAFv2WebACLStatementOneManagedRuleGroupStatement = Nothing
, _wAFv2WebACLStatementOneNotStatement = Nothing
, _wAFv2WebACLStatementOneOrStatement = Nothing
, _wAFv2WebACLStatementOneRateBasedStatement = Nothing
, _wAFv2WebACLStatementOneRegexPatternSetReferenceStatement = Nothing
, _wAFv2WebACLStatementOneRuleGroupReferenceStatement = Nothing
, _wAFv2WebACLStatementOneSizeConstraintStatement = Nothing
, _wAFv2WebACLStatementOneSqliMatchStatement = Nothing
, _wAFv2WebACLStatementOneXssMatchStatement = Nothing
}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-statementone.html#cfn-wafv2-webacl-statementone-andstatement
wafwaclsoAndStatement :: Lens' WAFv2WebACLStatementOne (Maybe WAFv2WebACLAndStatementOne)
wafwaclsoAndStatement = lens _wAFv2WebACLStatementOneAndStatement (\s a -> s { _wAFv2WebACLStatementOneAndStatement = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-statementone.html#cfn-wafv2-webacl-statementone-bytematchstatement
wafwaclsoByteMatchStatement :: Lens' WAFv2WebACLStatementOne (Maybe WAFv2WebACLByteMatchStatement)
wafwaclsoByteMatchStatement = lens _wAFv2WebACLStatementOneByteMatchStatement (\s a -> s { _wAFv2WebACLStatementOneByteMatchStatement = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-statementone.html#cfn-wafv2-webacl-statementone-geomatchstatement
wafwaclsoGeoMatchStatement :: Lens' WAFv2WebACLStatementOne (Maybe WAFv2WebACLGeoMatchStatement)
wafwaclsoGeoMatchStatement = lens _wAFv2WebACLStatementOneGeoMatchStatement (\s a -> s { _wAFv2WebACLStatementOneGeoMatchStatement = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-statementone.html#cfn-wafv2-webacl-statementone-ipsetreferencestatement
wafwaclsoIPSetReferenceStatement :: Lens' WAFv2WebACLStatementOne (Maybe WAFv2WebACLIPSetReferenceStatement)
wafwaclsoIPSetReferenceStatement = lens _wAFv2WebACLStatementOneIPSetReferenceStatement (\s a -> s { _wAFv2WebACLStatementOneIPSetReferenceStatement = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-statementone.html#cfn-wafv2-webacl-statementone-managedrulegroupstatement
wafwaclsoManagedRuleGroupStatement :: Lens' WAFv2WebACLStatementOne (Maybe WAFv2WebACLManagedRuleGroupStatement)
wafwaclsoManagedRuleGroupStatement = lens _wAFv2WebACLStatementOneManagedRuleGroupStatement (\s a -> s { _wAFv2WebACLStatementOneManagedRuleGroupStatement = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-statementone.html#cfn-wafv2-webacl-statementone-notstatement
wafwaclsoNotStatement :: Lens' WAFv2WebACLStatementOne (Maybe WAFv2WebACLNotStatementOne)
wafwaclsoNotStatement = lens _wAFv2WebACLStatementOneNotStatement (\s a -> s { _wAFv2WebACLStatementOneNotStatement = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-statementone.html#cfn-wafv2-webacl-statementone-orstatement
wafwaclsoOrStatement :: Lens' WAFv2WebACLStatementOne (Maybe WAFv2WebACLOrStatementOne)
wafwaclsoOrStatement = lens _wAFv2WebACLStatementOneOrStatement (\s a -> s { _wAFv2WebACLStatementOneOrStatement = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-statementone.html#cfn-wafv2-webacl-statementone-ratebasedstatement
wafwaclsoRateBasedStatement :: Lens' WAFv2WebACLStatementOne (Maybe WAFv2WebACLRateBasedStatementOne)
wafwaclsoRateBasedStatement = lens _wAFv2WebACLStatementOneRateBasedStatement (\s a -> s { _wAFv2WebACLStatementOneRateBasedStatement = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-statementone.html#cfn-wafv2-webacl-statementone-regexpatternsetreferencestatement
wafwaclsoRegexPatternSetReferenceStatement :: Lens' WAFv2WebACLStatementOne (Maybe WAFv2WebACLRegexPatternSetReferenceStatement)
wafwaclsoRegexPatternSetReferenceStatement = lens _wAFv2WebACLStatementOneRegexPatternSetReferenceStatement (\s a -> s { _wAFv2WebACLStatementOneRegexPatternSetReferenceStatement = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-statementone.html#cfn-wafv2-webacl-statementone-rulegroupreferencestatement
wafwaclsoRuleGroupReferenceStatement :: Lens' WAFv2WebACLStatementOne (Maybe WAFv2WebACLRuleGroupReferenceStatement)
wafwaclsoRuleGroupReferenceStatement = lens _wAFv2WebACLStatementOneRuleGroupReferenceStatement (\s a -> s { _wAFv2WebACLStatementOneRuleGroupReferenceStatement = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-statementone.html#cfn-wafv2-webacl-statementone-sizeconstraintstatement
wafwaclsoSizeConstraintStatement :: Lens' WAFv2WebACLStatementOne (Maybe WAFv2WebACLSizeConstraintStatement)
wafwaclsoSizeConstraintStatement = lens _wAFv2WebACLStatementOneSizeConstraintStatement (\s a -> s { _wAFv2WebACLStatementOneSizeConstraintStatement = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-statementone.html#cfn-wafv2-webacl-statementone-sqlimatchstatement
wafwaclsoSqliMatchStatement :: Lens' WAFv2WebACLStatementOne (Maybe WAFv2WebACLSqliMatchStatement)
wafwaclsoSqliMatchStatement = lens _wAFv2WebACLStatementOneSqliMatchStatement (\s a -> s { _wAFv2WebACLStatementOneSqliMatchStatement = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-statementone.html#cfn-wafv2-webacl-statementone-xssmatchstatement
wafwaclsoXssMatchStatement :: Lens' WAFv2WebACLStatementOne (Maybe WAFv2WebACLXssMatchStatement)
wafwaclsoXssMatchStatement = lens _wAFv2WebACLStatementOneXssMatchStatement (\s a -> s { _wAFv2WebACLStatementOneXssMatchStatement = a })