{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-sizeconstraintset-sizeconstraint.html module Stratosphere.ResourceProperties.WAFSizeConstraintSetSizeConstraint where import Control.Lens hiding ((.=)) import Data.Aeson import Data.Maybe (catMaybes) import Data.Monoid (mempty) import Data.Text import Stratosphere.Values import Stratosphere.ResourceProperties.WAFSizeConstraintSetFieldToMatch -- | Full data type definition for WAFSizeConstraintSetSizeConstraint. See -- 'wafSizeConstraintSetSizeConstraint' for a more convenient constructor. data WAFSizeConstraintSetSizeConstraint = WAFSizeConstraintSetSizeConstraint { _wAFSizeConstraintSetSizeConstraintComparisonOperator :: Val Text , _wAFSizeConstraintSetSizeConstraintFieldToMatch :: WAFSizeConstraintSetFieldToMatch , _wAFSizeConstraintSetSizeConstraintSize :: Val Integer' , _wAFSizeConstraintSetSizeConstraintTextTransformation :: Val Text } deriving (Show, Eq) instance ToJSON WAFSizeConstraintSetSizeConstraint where toJSON WAFSizeConstraintSetSizeConstraint{..} = object $ catMaybes [ Just ("ComparisonOperator" .= _wAFSizeConstraintSetSizeConstraintComparisonOperator) , Just ("FieldToMatch" .= _wAFSizeConstraintSetSizeConstraintFieldToMatch) , Just ("Size" .= _wAFSizeConstraintSetSizeConstraintSize) , Just ("TextTransformation" .= _wAFSizeConstraintSetSizeConstraintTextTransformation) ] instance FromJSON WAFSizeConstraintSetSizeConstraint where parseJSON (Object obj) = WAFSizeConstraintSetSizeConstraint <$> obj .: "ComparisonOperator" <*> obj .: "FieldToMatch" <*> obj .: "Size" <*> obj .: "TextTransformation" parseJSON _ = mempty -- | Constructor for 'WAFSizeConstraintSetSizeConstraint' containing required -- fields as arguments. wafSizeConstraintSetSizeConstraint :: Val Text -- ^ 'wafscsscComparisonOperator' -> WAFSizeConstraintSetFieldToMatch -- ^ 'wafscsscFieldToMatch' -> Val Integer' -- ^ 'wafscsscSize' -> Val Text -- ^ 'wafscsscTextTransformation' -> WAFSizeConstraintSetSizeConstraint wafSizeConstraintSetSizeConstraint comparisonOperatorarg fieldToMatcharg sizearg textTransformationarg = WAFSizeConstraintSetSizeConstraint { _wAFSizeConstraintSetSizeConstraintComparisonOperator = comparisonOperatorarg , _wAFSizeConstraintSetSizeConstraintFieldToMatch = fieldToMatcharg , _wAFSizeConstraintSetSizeConstraintSize = sizearg , _wAFSizeConstraintSetSizeConstraintTextTransformation = textTransformationarg } -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-sizeconstraintset-sizeconstraint.html#cfn-waf-sizeconstraintset-sizeconstraint-comparisonoperator wafscsscComparisonOperator :: Lens' WAFSizeConstraintSetSizeConstraint (Val Text) wafscsscComparisonOperator = lens _wAFSizeConstraintSetSizeConstraintComparisonOperator (\s a -> s { _wAFSizeConstraintSetSizeConstraintComparisonOperator = a }) -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-sizeconstraintset-sizeconstraint.html#cfn-waf-sizeconstraintset-sizeconstraint-fieldtomatch wafscsscFieldToMatch :: Lens' WAFSizeConstraintSetSizeConstraint WAFSizeConstraintSetFieldToMatch wafscsscFieldToMatch = lens _wAFSizeConstraintSetSizeConstraintFieldToMatch (\s a -> s { _wAFSizeConstraintSetSizeConstraintFieldToMatch = a }) -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-sizeconstraintset-sizeconstraint.html#cfn-waf-sizeconstraintset-sizeconstraint-size wafscsscSize :: Lens' WAFSizeConstraintSetSizeConstraint (Val Integer') wafscsscSize = lens _wAFSizeConstraintSetSizeConstraintSize (\s a -> s { _wAFSizeConstraintSetSizeConstraintSize = a }) -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-sizeconstraintset-sizeconstraint.html#cfn-waf-sizeconstraintset-sizeconstraint-texttransformation wafscsscTextTransformation :: Lens' WAFSizeConstraintSetSizeConstraint (Val Text) wafscsscTextTransformation = lens _wAFSizeConstraintSetSizeConstraintTextTransformation (\s a -> s { _wAFSizeConstraintSetSizeConstraintTextTransformation = a })