amazonka-waf 1.4.5 → 1.5.0
raw patch · 110 files changed
+8982/−3022 lines, 110 filesdep ~amazonka-coredep ~amazonka-testdep ~amazonka-wafPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: amazonka-core, amazonka-test, amazonka-waf
API changes (from Hackage documentation)
+ Network.AWS.WAF: Country :: GeoMatchConstraintType
+ Network.AWS.WAF: GMCVAD :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVAE :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVAF :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVAG :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVAI :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVAL :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVAM :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVAO :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVAQ :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVAR :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVAS :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVAT :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVAU :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVAW :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVAX :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVAZ :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVBA :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVBB :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVBD :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVBE :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVBF :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVBG :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVBH :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVBI :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVBJ :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVBL :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVBM :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVBN :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVBO :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVBQ :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVBR :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVBS :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVBT :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVBV :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVBW :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVBY :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVBZ :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVCA :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVCC :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVCD :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVCF :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVCG :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVCH :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVCI :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVCK :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVCL :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVCM :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVCN :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVCO :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVCR :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVCU :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVCV :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVCW :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVCX :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVCY :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVCZ :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVDE :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVDJ :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVDK :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVDM :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVDO :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVDZ :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVEC :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVEE :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVEG :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVEH :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVER :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVES :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVET :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVFI :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVFJ :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVFK :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVFM :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVFO :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVFR :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVGA :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVGB :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVGD :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVGE :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVGF :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVGG :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVGH :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVGI :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVGL :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVGM :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVGN :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVGP :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVGQ :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVGR :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVGS :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVGT' :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVGU :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVGW :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVGY :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVHK :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVHM :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVHN :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVHR :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVHT :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVHU :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVIE :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVIL :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVIM :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVIN :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVIO :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVIQ :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVIR :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVIS :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVIT :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVId :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVJE :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVJM :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVJO :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVJP :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVKE :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVKG :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVKH :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVKI :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVKM :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVKN :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVKP :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVKR :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVKW :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVKY :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVKZ :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVLA :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVLB :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVLC :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVLI :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVLK :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVLR :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVLS :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVLT' :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVLU :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVLV :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVLY :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVMA :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVMC :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVMD :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVME :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVMF :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVMG :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVMH :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVMK :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVML :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVMM :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVMN :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVMO :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVMP :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVMQ :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVMR :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVMS :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVMT :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVMU :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVMV :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVMW :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVMX :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVMY :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVMZ :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVNA :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVNC :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVNE :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVNF :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVNG :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVNI :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVNL :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVNO :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVNP :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVNR :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVNU :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVNZ :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVOM :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVPA :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVPE :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVPF :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVPG :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVPH :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVPK :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVPL :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVPM :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVPN :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVPR :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVPS :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVPT :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVPW :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVPY :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVQA :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVRE :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVRO :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVRS :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVRU :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVRW :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVSA :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVSB :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVSC :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVSD :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVSE :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVSG :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVSH :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVSI :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVSJ :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVSK :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVSL :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVSM :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVSN :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVSO :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVSR :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVSS :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVST :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVSV :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVSX :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVSY :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVSZ :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVTC :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVTD :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVTF :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVTG :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVTH :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVTJ :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVTK :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVTL :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVTM :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVTN :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVTO :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVTR :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVTT :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVTV :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVTW :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVTZ :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVUA :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVUG :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVUM :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVUS :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVUY :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVUZ :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVVA :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVVC :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVVE :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVVG :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVVI :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVVN :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVVU :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVWF :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVWS :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVYE :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVYT :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVZA :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVZM :: GeoMatchConstraintValue
+ Network.AWS.WAF: GMCVZW :: GeoMatchConstraintValue
+ Network.AWS.WAF: GeoMatch :: PredicateType
+ Network.AWS.WAF: IP :: RateKey
+ Network.AWS.WAF: RateBased :: WafRuleType
+ Network.AWS.WAF: RegexMatch :: PredicateType
+ Network.AWS.WAF: Regular :: WafRuleType
+ Network.AWS.WAF: _WAFInvalidRegexPatternException :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.WAF: arType :: Lens' ActivatedRule (Maybe WafRuleType)
+ Network.AWS.WAF: data GeoMatchConstraint
+ Network.AWS.WAF: data GeoMatchConstraintType
+ Network.AWS.WAF: data GeoMatchConstraintValue
+ Network.AWS.WAF: data GeoMatchSet
+ Network.AWS.WAF: data GeoMatchSetSummary
+ Network.AWS.WAF: data GeoMatchSetUpdate
+ Network.AWS.WAF: data RateBasedRule
+ Network.AWS.WAF: data RateKey
+ Network.AWS.WAF: data RegexMatchSet
+ Network.AWS.WAF: data RegexMatchSetSummary
+ Network.AWS.WAF: data RegexMatchSetUpdate
+ Network.AWS.WAF: data RegexMatchTuple
+ Network.AWS.WAF: data RegexPatternSet
+ Network.AWS.WAF: data RegexPatternSetSummary
+ Network.AWS.WAF: data RegexPatternSetUpdate
+ Network.AWS.WAF: data WafRuleType
+ Network.AWS.WAF: geoMatchConstraint :: GeoMatchConstraintType -> GeoMatchConstraintValue -> GeoMatchConstraint
+ Network.AWS.WAF: geoMatchSet :: Text -> GeoMatchSet
+ Network.AWS.WAF: geoMatchSetSummary :: Text -> Text -> GeoMatchSetSummary
+ Network.AWS.WAF: geoMatchSetUpdate :: ChangeAction -> GeoMatchConstraint -> GeoMatchSetUpdate
+ Network.AWS.WAF: gmcType :: Lens' GeoMatchConstraint GeoMatchConstraintType
+ Network.AWS.WAF: gmcValue :: Lens' GeoMatchConstraint GeoMatchConstraintValue
+ Network.AWS.WAF: gmsGeoMatchConstraints :: Lens' GeoMatchSet [GeoMatchConstraint]
+ Network.AWS.WAF: gmsGeoMatchSetId :: Lens' GeoMatchSet Text
+ Network.AWS.WAF: gmsName :: Lens' GeoMatchSet (Maybe Text)
+ Network.AWS.WAF: gmssGeoMatchSetId :: Lens' GeoMatchSetSummary Text
+ Network.AWS.WAF: gmssName :: Lens' GeoMatchSetSummary Text
+ Network.AWS.WAF: gmsuAction :: Lens' GeoMatchSetUpdate ChangeAction
+ Network.AWS.WAF: gmsuGeoMatchConstraint :: Lens' GeoMatchSetUpdate GeoMatchConstraint
+ Network.AWS.WAF: rateBasedRule :: Text -> RateKey -> Natural -> RateBasedRule
+ Network.AWS.WAF: rbrMatchPredicates :: Lens' RateBasedRule [Predicate]
+ Network.AWS.WAF: rbrMetricName :: Lens' RateBasedRule (Maybe Text)
+ Network.AWS.WAF: rbrName :: Lens' RateBasedRule (Maybe Text)
+ Network.AWS.WAF: rbrRateKey :: Lens' RateBasedRule RateKey
+ Network.AWS.WAF: rbrRateLimit :: Lens' RateBasedRule Natural
+ Network.AWS.WAF: rbrRuleId :: Lens' RateBasedRule Text
+ Network.AWS.WAF: regexMatchSet :: RegexMatchSet
+ Network.AWS.WAF: regexMatchSetSummary :: Text -> Text -> RegexMatchSetSummary
+ Network.AWS.WAF: regexMatchSetUpdate :: ChangeAction -> RegexMatchTuple -> RegexMatchSetUpdate
+ Network.AWS.WAF: regexMatchTuple :: FieldToMatch -> TextTransformation -> Text -> RegexMatchTuple
+ Network.AWS.WAF: regexPatternSet :: Text -> RegexPatternSet
+ Network.AWS.WAF: regexPatternSetSummary :: Text -> Text -> RegexPatternSetSummary
+ Network.AWS.WAF: regexPatternSetUpdate :: ChangeAction -> Text -> RegexPatternSetUpdate
+ Network.AWS.WAF: rmsName :: Lens' RegexMatchSet (Maybe Text)
+ Network.AWS.WAF: rmsRegexMatchSetId :: Lens' RegexMatchSet (Maybe Text)
+ Network.AWS.WAF: rmsRegexMatchTuples :: Lens' RegexMatchSet [RegexMatchTuple]
+ Network.AWS.WAF: rmssName :: Lens' RegexMatchSetSummary Text
+ Network.AWS.WAF: rmssRegexMatchSetId :: Lens' RegexMatchSetSummary Text
+ Network.AWS.WAF: rmsuAction :: Lens' RegexMatchSetUpdate ChangeAction
+ Network.AWS.WAF: rmsuRegexMatchTuple :: Lens' RegexMatchSetUpdate RegexMatchTuple
+ Network.AWS.WAF: rmtFieldToMatch :: Lens' RegexMatchTuple FieldToMatch
+ Network.AWS.WAF: rmtRegexPatternSetId :: Lens' RegexMatchTuple Text
+ Network.AWS.WAF: rmtTextTransformation :: Lens' RegexMatchTuple TextTransformation
+ Network.AWS.WAF: rpsName :: Lens' RegexPatternSet (Maybe Text)
+ Network.AWS.WAF: rpsRegexPatternSetId :: Lens' RegexPatternSet Text
+ Network.AWS.WAF: rpsRegexPatternStrings :: Lens' RegexPatternSet [Text]
+ Network.AWS.WAF: rpssName :: Lens' RegexPatternSetSummary Text
+ Network.AWS.WAF: rpssRegexPatternSetId :: Lens' RegexPatternSetSummary Text
+ Network.AWS.WAF: rpsuAction :: Lens' RegexPatternSetUpdate ChangeAction
+ Network.AWS.WAF: rpsuRegexPatternString :: Lens' RegexPatternSetUpdate Text
+ Network.AWS.WAF.CreateGeoMatchSet: cgmsChangeToken :: Lens' CreateGeoMatchSet Text
+ Network.AWS.WAF.CreateGeoMatchSet: cgmsName :: Lens' CreateGeoMatchSet Text
+ Network.AWS.WAF.CreateGeoMatchSet: cgmsrsChangeToken :: Lens' CreateGeoMatchSetResponse (Maybe Text)
+ Network.AWS.WAF.CreateGeoMatchSet: cgmsrsGeoMatchSet :: Lens' CreateGeoMatchSetResponse (Maybe GeoMatchSet)
+ Network.AWS.WAF.CreateGeoMatchSet: cgmsrsResponseStatus :: Lens' CreateGeoMatchSetResponse Int
+ Network.AWS.WAF.CreateGeoMatchSet: createGeoMatchSet :: Text -> Text -> CreateGeoMatchSet
+ Network.AWS.WAF.CreateGeoMatchSet: createGeoMatchSetResponse :: Int -> CreateGeoMatchSetResponse
+ Network.AWS.WAF.CreateGeoMatchSet: data CreateGeoMatchSet
+ Network.AWS.WAF.CreateGeoMatchSet: data CreateGeoMatchSetResponse
+ Network.AWS.WAF.CreateGeoMatchSet: instance Control.DeepSeq.NFData Network.AWS.WAF.CreateGeoMatchSet.CreateGeoMatchSet
+ Network.AWS.WAF.CreateGeoMatchSet: instance Control.DeepSeq.NFData Network.AWS.WAF.CreateGeoMatchSet.CreateGeoMatchSetResponse
+ Network.AWS.WAF.CreateGeoMatchSet: instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.WAF.CreateGeoMatchSet.CreateGeoMatchSet
+ Network.AWS.WAF.CreateGeoMatchSet: instance Data.Data.Data Network.AWS.WAF.CreateGeoMatchSet.CreateGeoMatchSet
+ Network.AWS.WAF.CreateGeoMatchSet: instance Data.Data.Data Network.AWS.WAF.CreateGeoMatchSet.CreateGeoMatchSetResponse
+ Network.AWS.WAF.CreateGeoMatchSet: instance Data.Hashable.Class.Hashable Network.AWS.WAF.CreateGeoMatchSet.CreateGeoMatchSet
+ Network.AWS.WAF.CreateGeoMatchSet: instance GHC.Classes.Eq Network.AWS.WAF.CreateGeoMatchSet.CreateGeoMatchSet
+ Network.AWS.WAF.CreateGeoMatchSet: instance GHC.Classes.Eq Network.AWS.WAF.CreateGeoMatchSet.CreateGeoMatchSetResponse
+ Network.AWS.WAF.CreateGeoMatchSet: instance GHC.Generics.Generic Network.AWS.WAF.CreateGeoMatchSet.CreateGeoMatchSet
+ Network.AWS.WAF.CreateGeoMatchSet: instance GHC.Generics.Generic Network.AWS.WAF.CreateGeoMatchSet.CreateGeoMatchSetResponse
+ Network.AWS.WAF.CreateGeoMatchSet: instance GHC.Read.Read Network.AWS.WAF.CreateGeoMatchSet.CreateGeoMatchSet
+ Network.AWS.WAF.CreateGeoMatchSet: instance GHC.Read.Read Network.AWS.WAF.CreateGeoMatchSet.CreateGeoMatchSetResponse
+ Network.AWS.WAF.CreateGeoMatchSet: instance GHC.Show.Show Network.AWS.WAF.CreateGeoMatchSet.CreateGeoMatchSet
+ Network.AWS.WAF.CreateGeoMatchSet: instance GHC.Show.Show Network.AWS.WAF.CreateGeoMatchSet.CreateGeoMatchSetResponse
+ Network.AWS.WAF.CreateGeoMatchSet: instance Network.AWS.Data.Headers.ToHeaders Network.AWS.WAF.CreateGeoMatchSet.CreateGeoMatchSet
+ Network.AWS.WAF.CreateGeoMatchSet: instance Network.AWS.Data.Path.ToPath Network.AWS.WAF.CreateGeoMatchSet.CreateGeoMatchSet
+ Network.AWS.WAF.CreateGeoMatchSet: instance Network.AWS.Data.Query.ToQuery Network.AWS.WAF.CreateGeoMatchSet.CreateGeoMatchSet
+ Network.AWS.WAF.CreateGeoMatchSet: instance Network.AWS.Types.AWSRequest Network.AWS.WAF.CreateGeoMatchSet.CreateGeoMatchSet
+ Network.AWS.WAF.CreateRateBasedRule: crbrChangeToken :: Lens' CreateRateBasedRule Text
+ Network.AWS.WAF.CreateRateBasedRule: crbrMetricName :: Lens' CreateRateBasedRule Text
+ Network.AWS.WAF.CreateRateBasedRule: crbrName :: Lens' CreateRateBasedRule Text
+ Network.AWS.WAF.CreateRateBasedRule: crbrRateKey :: Lens' CreateRateBasedRule RateKey
+ Network.AWS.WAF.CreateRateBasedRule: crbrRateLimit :: Lens' CreateRateBasedRule Natural
+ Network.AWS.WAF.CreateRateBasedRule: crbrrsChangeToken :: Lens' CreateRateBasedRuleResponse (Maybe Text)
+ Network.AWS.WAF.CreateRateBasedRule: crbrrsResponseStatus :: Lens' CreateRateBasedRuleResponse Int
+ Network.AWS.WAF.CreateRateBasedRule: crbrrsRule :: Lens' CreateRateBasedRuleResponse (Maybe RateBasedRule)
+ Network.AWS.WAF.CreateRateBasedRule: createRateBasedRule :: Text -> Text -> RateKey -> Natural -> Text -> CreateRateBasedRule
+ Network.AWS.WAF.CreateRateBasedRule: createRateBasedRuleResponse :: Int -> CreateRateBasedRuleResponse
+ Network.AWS.WAF.CreateRateBasedRule: data CreateRateBasedRule
+ Network.AWS.WAF.CreateRateBasedRule: data CreateRateBasedRuleResponse
+ Network.AWS.WAF.CreateRateBasedRule: instance Control.DeepSeq.NFData Network.AWS.WAF.CreateRateBasedRule.CreateRateBasedRule
+ Network.AWS.WAF.CreateRateBasedRule: instance Control.DeepSeq.NFData Network.AWS.WAF.CreateRateBasedRule.CreateRateBasedRuleResponse
+ Network.AWS.WAF.CreateRateBasedRule: instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.WAF.CreateRateBasedRule.CreateRateBasedRule
+ Network.AWS.WAF.CreateRateBasedRule: instance Data.Data.Data Network.AWS.WAF.CreateRateBasedRule.CreateRateBasedRule
+ Network.AWS.WAF.CreateRateBasedRule: instance Data.Data.Data Network.AWS.WAF.CreateRateBasedRule.CreateRateBasedRuleResponse
+ Network.AWS.WAF.CreateRateBasedRule: instance Data.Hashable.Class.Hashable Network.AWS.WAF.CreateRateBasedRule.CreateRateBasedRule
+ Network.AWS.WAF.CreateRateBasedRule: instance GHC.Classes.Eq Network.AWS.WAF.CreateRateBasedRule.CreateRateBasedRule
+ Network.AWS.WAF.CreateRateBasedRule: instance GHC.Classes.Eq Network.AWS.WAF.CreateRateBasedRule.CreateRateBasedRuleResponse
+ Network.AWS.WAF.CreateRateBasedRule: instance GHC.Generics.Generic Network.AWS.WAF.CreateRateBasedRule.CreateRateBasedRule
+ Network.AWS.WAF.CreateRateBasedRule: instance GHC.Generics.Generic Network.AWS.WAF.CreateRateBasedRule.CreateRateBasedRuleResponse
+ Network.AWS.WAF.CreateRateBasedRule: instance GHC.Read.Read Network.AWS.WAF.CreateRateBasedRule.CreateRateBasedRule
+ Network.AWS.WAF.CreateRateBasedRule: instance GHC.Read.Read Network.AWS.WAF.CreateRateBasedRule.CreateRateBasedRuleResponse
+ Network.AWS.WAF.CreateRateBasedRule: instance GHC.Show.Show Network.AWS.WAF.CreateRateBasedRule.CreateRateBasedRule
+ Network.AWS.WAF.CreateRateBasedRule: instance GHC.Show.Show Network.AWS.WAF.CreateRateBasedRule.CreateRateBasedRuleResponse
+ Network.AWS.WAF.CreateRateBasedRule: instance Network.AWS.Data.Headers.ToHeaders Network.AWS.WAF.CreateRateBasedRule.CreateRateBasedRule
+ Network.AWS.WAF.CreateRateBasedRule: instance Network.AWS.Data.Path.ToPath Network.AWS.WAF.CreateRateBasedRule.CreateRateBasedRule
+ Network.AWS.WAF.CreateRateBasedRule: instance Network.AWS.Data.Query.ToQuery Network.AWS.WAF.CreateRateBasedRule.CreateRateBasedRule
+ Network.AWS.WAF.CreateRateBasedRule: instance Network.AWS.Types.AWSRequest Network.AWS.WAF.CreateRateBasedRule.CreateRateBasedRule
+ Network.AWS.WAF.CreateRegexMatchSet: createRegexMatchSet :: Text -> Text -> CreateRegexMatchSet
+ Network.AWS.WAF.CreateRegexMatchSet: createRegexMatchSetResponse :: Int -> CreateRegexMatchSetResponse
+ Network.AWS.WAF.CreateRegexMatchSet: crmsChangeToken :: Lens' CreateRegexMatchSet Text
+ Network.AWS.WAF.CreateRegexMatchSet: crmsName :: Lens' CreateRegexMatchSet Text
+ Network.AWS.WAF.CreateRegexMatchSet: crmsrsChangeToken :: Lens' CreateRegexMatchSetResponse (Maybe Text)
+ Network.AWS.WAF.CreateRegexMatchSet: crmsrsRegexMatchSet :: Lens' CreateRegexMatchSetResponse (Maybe RegexMatchSet)
+ Network.AWS.WAF.CreateRegexMatchSet: crmsrsResponseStatus :: Lens' CreateRegexMatchSetResponse Int
+ Network.AWS.WAF.CreateRegexMatchSet: data CreateRegexMatchSet
+ Network.AWS.WAF.CreateRegexMatchSet: data CreateRegexMatchSetResponse
+ Network.AWS.WAF.CreateRegexMatchSet: instance Control.DeepSeq.NFData Network.AWS.WAF.CreateRegexMatchSet.CreateRegexMatchSet
+ Network.AWS.WAF.CreateRegexMatchSet: instance Control.DeepSeq.NFData Network.AWS.WAF.CreateRegexMatchSet.CreateRegexMatchSetResponse
+ Network.AWS.WAF.CreateRegexMatchSet: instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.WAF.CreateRegexMatchSet.CreateRegexMatchSet
+ Network.AWS.WAF.CreateRegexMatchSet: instance Data.Data.Data Network.AWS.WAF.CreateRegexMatchSet.CreateRegexMatchSet
+ Network.AWS.WAF.CreateRegexMatchSet: instance Data.Data.Data Network.AWS.WAF.CreateRegexMatchSet.CreateRegexMatchSetResponse
+ Network.AWS.WAF.CreateRegexMatchSet: instance Data.Hashable.Class.Hashable Network.AWS.WAF.CreateRegexMatchSet.CreateRegexMatchSet
+ Network.AWS.WAF.CreateRegexMatchSet: instance GHC.Classes.Eq Network.AWS.WAF.CreateRegexMatchSet.CreateRegexMatchSet
+ Network.AWS.WAF.CreateRegexMatchSet: instance GHC.Classes.Eq Network.AWS.WAF.CreateRegexMatchSet.CreateRegexMatchSetResponse
+ Network.AWS.WAF.CreateRegexMatchSet: instance GHC.Generics.Generic Network.AWS.WAF.CreateRegexMatchSet.CreateRegexMatchSet
+ Network.AWS.WAF.CreateRegexMatchSet: instance GHC.Generics.Generic Network.AWS.WAF.CreateRegexMatchSet.CreateRegexMatchSetResponse
+ Network.AWS.WAF.CreateRegexMatchSet: instance GHC.Read.Read Network.AWS.WAF.CreateRegexMatchSet.CreateRegexMatchSet
+ Network.AWS.WAF.CreateRegexMatchSet: instance GHC.Read.Read Network.AWS.WAF.CreateRegexMatchSet.CreateRegexMatchSetResponse
+ Network.AWS.WAF.CreateRegexMatchSet: instance GHC.Show.Show Network.AWS.WAF.CreateRegexMatchSet.CreateRegexMatchSet
+ Network.AWS.WAF.CreateRegexMatchSet: instance GHC.Show.Show Network.AWS.WAF.CreateRegexMatchSet.CreateRegexMatchSetResponse
+ Network.AWS.WAF.CreateRegexMatchSet: instance Network.AWS.Data.Headers.ToHeaders Network.AWS.WAF.CreateRegexMatchSet.CreateRegexMatchSet
+ Network.AWS.WAF.CreateRegexMatchSet: instance Network.AWS.Data.Path.ToPath Network.AWS.WAF.CreateRegexMatchSet.CreateRegexMatchSet
+ Network.AWS.WAF.CreateRegexMatchSet: instance Network.AWS.Data.Query.ToQuery Network.AWS.WAF.CreateRegexMatchSet.CreateRegexMatchSet
+ Network.AWS.WAF.CreateRegexMatchSet: instance Network.AWS.Types.AWSRequest Network.AWS.WAF.CreateRegexMatchSet.CreateRegexMatchSet
+ Network.AWS.WAF.CreateRegexPatternSet: createRegexPatternSet :: Text -> Text -> CreateRegexPatternSet
+ Network.AWS.WAF.CreateRegexPatternSet: createRegexPatternSetResponse :: Int -> CreateRegexPatternSetResponse
+ Network.AWS.WAF.CreateRegexPatternSet: crpsChangeToken :: Lens' CreateRegexPatternSet Text
+ Network.AWS.WAF.CreateRegexPatternSet: crpsName :: Lens' CreateRegexPatternSet Text
+ Network.AWS.WAF.CreateRegexPatternSet: crpsrsChangeToken :: Lens' CreateRegexPatternSetResponse (Maybe Text)
+ Network.AWS.WAF.CreateRegexPatternSet: crpsrsRegexPatternSet :: Lens' CreateRegexPatternSetResponse (Maybe RegexPatternSet)
+ Network.AWS.WAF.CreateRegexPatternSet: crpsrsResponseStatus :: Lens' CreateRegexPatternSetResponse Int
+ Network.AWS.WAF.CreateRegexPatternSet: data CreateRegexPatternSet
+ Network.AWS.WAF.CreateRegexPatternSet: data CreateRegexPatternSetResponse
+ Network.AWS.WAF.CreateRegexPatternSet: instance Control.DeepSeq.NFData Network.AWS.WAF.CreateRegexPatternSet.CreateRegexPatternSet
+ Network.AWS.WAF.CreateRegexPatternSet: instance Control.DeepSeq.NFData Network.AWS.WAF.CreateRegexPatternSet.CreateRegexPatternSetResponse
+ Network.AWS.WAF.CreateRegexPatternSet: instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.WAF.CreateRegexPatternSet.CreateRegexPatternSet
+ Network.AWS.WAF.CreateRegexPatternSet: instance Data.Data.Data Network.AWS.WAF.CreateRegexPatternSet.CreateRegexPatternSet
+ Network.AWS.WAF.CreateRegexPatternSet: instance Data.Data.Data Network.AWS.WAF.CreateRegexPatternSet.CreateRegexPatternSetResponse
+ Network.AWS.WAF.CreateRegexPatternSet: instance Data.Hashable.Class.Hashable Network.AWS.WAF.CreateRegexPatternSet.CreateRegexPatternSet
+ Network.AWS.WAF.CreateRegexPatternSet: instance GHC.Classes.Eq Network.AWS.WAF.CreateRegexPatternSet.CreateRegexPatternSet
+ Network.AWS.WAF.CreateRegexPatternSet: instance GHC.Classes.Eq Network.AWS.WAF.CreateRegexPatternSet.CreateRegexPatternSetResponse
+ Network.AWS.WAF.CreateRegexPatternSet: instance GHC.Generics.Generic Network.AWS.WAF.CreateRegexPatternSet.CreateRegexPatternSet
+ Network.AWS.WAF.CreateRegexPatternSet: instance GHC.Generics.Generic Network.AWS.WAF.CreateRegexPatternSet.CreateRegexPatternSetResponse
+ Network.AWS.WAF.CreateRegexPatternSet: instance GHC.Read.Read Network.AWS.WAF.CreateRegexPatternSet.CreateRegexPatternSet
+ Network.AWS.WAF.CreateRegexPatternSet: instance GHC.Read.Read Network.AWS.WAF.CreateRegexPatternSet.CreateRegexPatternSetResponse
+ Network.AWS.WAF.CreateRegexPatternSet: instance GHC.Show.Show Network.AWS.WAF.CreateRegexPatternSet.CreateRegexPatternSet
+ Network.AWS.WAF.CreateRegexPatternSet: instance GHC.Show.Show Network.AWS.WAF.CreateRegexPatternSet.CreateRegexPatternSetResponse
+ Network.AWS.WAF.CreateRegexPatternSet: instance Network.AWS.Data.Headers.ToHeaders Network.AWS.WAF.CreateRegexPatternSet.CreateRegexPatternSet
+ Network.AWS.WAF.CreateRegexPatternSet: instance Network.AWS.Data.Path.ToPath Network.AWS.WAF.CreateRegexPatternSet.CreateRegexPatternSet
+ Network.AWS.WAF.CreateRegexPatternSet: instance Network.AWS.Data.Query.ToQuery Network.AWS.WAF.CreateRegexPatternSet.CreateRegexPatternSet
+ Network.AWS.WAF.CreateRegexPatternSet: instance Network.AWS.Types.AWSRequest Network.AWS.WAF.CreateRegexPatternSet.CreateRegexPatternSet
+ Network.AWS.WAF.DeleteGeoMatchSet: data DeleteGeoMatchSet
+ Network.AWS.WAF.DeleteGeoMatchSet: data DeleteGeoMatchSetResponse
+ Network.AWS.WAF.DeleteGeoMatchSet: deleteGeoMatchSet :: Text -> Text -> DeleteGeoMatchSet
+ Network.AWS.WAF.DeleteGeoMatchSet: deleteGeoMatchSetResponse :: Int -> DeleteGeoMatchSetResponse
+ Network.AWS.WAF.DeleteGeoMatchSet: dgmsChangeToken :: Lens' DeleteGeoMatchSet Text
+ Network.AWS.WAF.DeleteGeoMatchSet: dgmsGeoMatchSetId :: Lens' DeleteGeoMatchSet Text
+ Network.AWS.WAF.DeleteGeoMatchSet: dgmsrsChangeToken :: Lens' DeleteGeoMatchSetResponse (Maybe Text)
+ Network.AWS.WAF.DeleteGeoMatchSet: dgmsrsResponseStatus :: Lens' DeleteGeoMatchSetResponse Int
+ Network.AWS.WAF.DeleteGeoMatchSet: instance Control.DeepSeq.NFData Network.AWS.WAF.DeleteGeoMatchSet.DeleteGeoMatchSet
+ Network.AWS.WAF.DeleteGeoMatchSet: instance Control.DeepSeq.NFData Network.AWS.WAF.DeleteGeoMatchSet.DeleteGeoMatchSetResponse
+ Network.AWS.WAF.DeleteGeoMatchSet: instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.WAF.DeleteGeoMatchSet.DeleteGeoMatchSet
+ Network.AWS.WAF.DeleteGeoMatchSet: instance Data.Data.Data Network.AWS.WAF.DeleteGeoMatchSet.DeleteGeoMatchSet
+ Network.AWS.WAF.DeleteGeoMatchSet: instance Data.Data.Data Network.AWS.WAF.DeleteGeoMatchSet.DeleteGeoMatchSetResponse
+ Network.AWS.WAF.DeleteGeoMatchSet: instance Data.Hashable.Class.Hashable Network.AWS.WAF.DeleteGeoMatchSet.DeleteGeoMatchSet
+ Network.AWS.WAF.DeleteGeoMatchSet: instance GHC.Classes.Eq Network.AWS.WAF.DeleteGeoMatchSet.DeleteGeoMatchSet
+ Network.AWS.WAF.DeleteGeoMatchSet: instance GHC.Classes.Eq Network.AWS.WAF.DeleteGeoMatchSet.DeleteGeoMatchSetResponse
+ Network.AWS.WAF.DeleteGeoMatchSet: instance GHC.Generics.Generic Network.AWS.WAF.DeleteGeoMatchSet.DeleteGeoMatchSet
+ Network.AWS.WAF.DeleteGeoMatchSet: instance GHC.Generics.Generic Network.AWS.WAF.DeleteGeoMatchSet.DeleteGeoMatchSetResponse
+ Network.AWS.WAF.DeleteGeoMatchSet: instance GHC.Read.Read Network.AWS.WAF.DeleteGeoMatchSet.DeleteGeoMatchSet
+ Network.AWS.WAF.DeleteGeoMatchSet: instance GHC.Read.Read Network.AWS.WAF.DeleteGeoMatchSet.DeleteGeoMatchSetResponse
+ Network.AWS.WAF.DeleteGeoMatchSet: instance GHC.Show.Show Network.AWS.WAF.DeleteGeoMatchSet.DeleteGeoMatchSet
+ Network.AWS.WAF.DeleteGeoMatchSet: instance GHC.Show.Show Network.AWS.WAF.DeleteGeoMatchSet.DeleteGeoMatchSetResponse
+ Network.AWS.WAF.DeleteGeoMatchSet: instance Network.AWS.Data.Headers.ToHeaders Network.AWS.WAF.DeleteGeoMatchSet.DeleteGeoMatchSet
+ Network.AWS.WAF.DeleteGeoMatchSet: instance Network.AWS.Data.Path.ToPath Network.AWS.WAF.DeleteGeoMatchSet.DeleteGeoMatchSet
+ Network.AWS.WAF.DeleteGeoMatchSet: instance Network.AWS.Data.Query.ToQuery Network.AWS.WAF.DeleteGeoMatchSet.DeleteGeoMatchSet
+ Network.AWS.WAF.DeleteGeoMatchSet: instance Network.AWS.Types.AWSRequest Network.AWS.WAF.DeleteGeoMatchSet.DeleteGeoMatchSet
+ Network.AWS.WAF.DeleteRateBasedRule: data DeleteRateBasedRule
+ Network.AWS.WAF.DeleteRateBasedRule: data DeleteRateBasedRuleResponse
+ Network.AWS.WAF.DeleteRateBasedRule: deleteRateBasedRule :: Text -> Text -> DeleteRateBasedRule
+ Network.AWS.WAF.DeleteRateBasedRule: deleteRateBasedRuleResponse :: Int -> DeleteRateBasedRuleResponse
+ Network.AWS.WAF.DeleteRateBasedRule: drbrChangeToken :: Lens' DeleteRateBasedRule Text
+ Network.AWS.WAF.DeleteRateBasedRule: drbrRuleId :: Lens' DeleteRateBasedRule Text
+ Network.AWS.WAF.DeleteRateBasedRule: drbrrsChangeToken :: Lens' DeleteRateBasedRuleResponse (Maybe Text)
+ Network.AWS.WAF.DeleteRateBasedRule: drbrrsResponseStatus :: Lens' DeleteRateBasedRuleResponse Int
+ Network.AWS.WAF.DeleteRateBasedRule: instance Control.DeepSeq.NFData Network.AWS.WAF.DeleteRateBasedRule.DeleteRateBasedRule
+ Network.AWS.WAF.DeleteRateBasedRule: instance Control.DeepSeq.NFData Network.AWS.WAF.DeleteRateBasedRule.DeleteRateBasedRuleResponse
+ Network.AWS.WAF.DeleteRateBasedRule: instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.WAF.DeleteRateBasedRule.DeleteRateBasedRule
+ Network.AWS.WAF.DeleteRateBasedRule: instance Data.Data.Data Network.AWS.WAF.DeleteRateBasedRule.DeleteRateBasedRule
+ Network.AWS.WAF.DeleteRateBasedRule: instance Data.Data.Data Network.AWS.WAF.DeleteRateBasedRule.DeleteRateBasedRuleResponse
+ Network.AWS.WAF.DeleteRateBasedRule: instance Data.Hashable.Class.Hashable Network.AWS.WAF.DeleteRateBasedRule.DeleteRateBasedRule
+ Network.AWS.WAF.DeleteRateBasedRule: instance GHC.Classes.Eq Network.AWS.WAF.DeleteRateBasedRule.DeleteRateBasedRule
+ Network.AWS.WAF.DeleteRateBasedRule: instance GHC.Classes.Eq Network.AWS.WAF.DeleteRateBasedRule.DeleteRateBasedRuleResponse
+ Network.AWS.WAF.DeleteRateBasedRule: instance GHC.Generics.Generic Network.AWS.WAF.DeleteRateBasedRule.DeleteRateBasedRule
+ Network.AWS.WAF.DeleteRateBasedRule: instance GHC.Generics.Generic Network.AWS.WAF.DeleteRateBasedRule.DeleteRateBasedRuleResponse
+ Network.AWS.WAF.DeleteRateBasedRule: instance GHC.Read.Read Network.AWS.WAF.DeleteRateBasedRule.DeleteRateBasedRule
+ Network.AWS.WAF.DeleteRateBasedRule: instance GHC.Read.Read Network.AWS.WAF.DeleteRateBasedRule.DeleteRateBasedRuleResponse
+ Network.AWS.WAF.DeleteRateBasedRule: instance GHC.Show.Show Network.AWS.WAF.DeleteRateBasedRule.DeleteRateBasedRule
+ Network.AWS.WAF.DeleteRateBasedRule: instance GHC.Show.Show Network.AWS.WAF.DeleteRateBasedRule.DeleteRateBasedRuleResponse
+ Network.AWS.WAF.DeleteRateBasedRule: instance Network.AWS.Data.Headers.ToHeaders Network.AWS.WAF.DeleteRateBasedRule.DeleteRateBasedRule
+ Network.AWS.WAF.DeleteRateBasedRule: instance Network.AWS.Data.Path.ToPath Network.AWS.WAF.DeleteRateBasedRule.DeleteRateBasedRule
+ Network.AWS.WAF.DeleteRateBasedRule: instance Network.AWS.Data.Query.ToQuery Network.AWS.WAF.DeleteRateBasedRule.DeleteRateBasedRule
+ Network.AWS.WAF.DeleteRateBasedRule: instance Network.AWS.Types.AWSRequest Network.AWS.WAF.DeleteRateBasedRule.DeleteRateBasedRule
+ Network.AWS.WAF.DeleteRegexMatchSet: data DeleteRegexMatchSet
+ Network.AWS.WAF.DeleteRegexMatchSet: data DeleteRegexMatchSetResponse
+ Network.AWS.WAF.DeleteRegexMatchSet: deleteRegexMatchSet :: Text -> Text -> DeleteRegexMatchSet
+ Network.AWS.WAF.DeleteRegexMatchSet: deleteRegexMatchSetResponse :: Int -> DeleteRegexMatchSetResponse
+ Network.AWS.WAF.DeleteRegexMatchSet: drmsChangeToken :: Lens' DeleteRegexMatchSet Text
+ Network.AWS.WAF.DeleteRegexMatchSet: drmsRegexMatchSetId :: Lens' DeleteRegexMatchSet Text
+ Network.AWS.WAF.DeleteRegexMatchSet: drmsrsChangeToken :: Lens' DeleteRegexMatchSetResponse (Maybe Text)
+ Network.AWS.WAF.DeleteRegexMatchSet: drmsrsResponseStatus :: Lens' DeleteRegexMatchSetResponse Int
+ Network.AWS.WAF.DeleteRegexMatchSet: instance Control.DeepSeq.NFData Network.AWS.WAF.DeleteRegexMatchSet.DeleteRegexMatchSet
+ Network.AWS.WAF.DeleteRegexMatchSet: instance Control.DeepSeq.NFData Network.AWS.WAF.DeleteRegexMatchSet.DeleteRegexMatchSetResponse
+ Network.AWS.WAF.DeleteRegexMatchSet: instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.WAF.DeleteRegexMatchSet.DeleteRegexMatchSet
+ Network.AWS.WAF.DeleteRegexMatchSet: instance Data.Data.Data Network.AWS.WAF.DeleteRegexMatchSet.DeleteRegexMatchSet
+ Network.AWS.WAF.DeleteRegexMatchSet: instance Data.Data.Data Network.AWS.WAF.DeleteRegexMatchSet.DeleteRegexMatchSetResponse
+ Network.AWS.WAF.DeleteRegexMatchSet: instance Data.Hashable.Class.Hashable Network.AWS.WAF.DeleteRegexMatchSet.DeleteRegexMatchSet
+ Network.AWS.WAF.DeleteRegexMatchSet: instance GHC.Classes.Eq Network.AWS.WAF.DeleteRegexMatchSet.DeleteRegexMatchSet
+ Network.AWS.WAF.DeleteRegexMatchSet: instance GHC.Classes.Eq Network.AWS.WAF.DeleteRegexMatchSet.DeleteRegexMatchSetResponse
+ Network.AWS.WAF.DeleteRegexMatchSet: instance GHC.Generics.Generic Network.AWS.WAF.DeleteRegexMatchSet.DeleteRegexMatchSet
+ Network.AWS.WAF.DeleteRegexMatchSet: instance GHC.Generics.Generic Network.AWS.WAF.DeleteRegexMatchSet.DeleteRegexMatchSetResponse
+ Network.AWS.WAF.DeleteRegexMatchSet: instance GHC.Read.Read Network.AWS.WAF.DeleteRegexMatchSet.DeleteRegexMatchSet
+ Network.AWS.WAF.DeleteRegexMatchSet: instance GHC.Read.Read Network.AWS.WAF.DeleteRegexMatchSet.DeleteRegexMatchSetResponse
+ Network.AWS.WAF.DeleteRegexMatchSet: instance GHC.Show.Show Network.AWS.WAF.DeleteRegexMatchSet.DeleteRegexMatchSet
+ Network.AWS.WAF.DeleteRegexMatchSet: instance GHC.Show.Show Network.AWS.WAF.DeleteRegexMatchSet.DeleteRegexMatchSetResponse
+ Network.AWS.WAF.DeleteRegexMatchSet: instance Network.AWS.Data.Headers.ToHeaders Network.AWS.WAF.DeleteRegexMatchSet.DeleteRegexMatchSet
+ Network.AWS.WAF.DeleteRegexMatchSet: instance Network.AWS.Data.Path.ToPath Network.AWS.WAF.DeleteRegexMatchSet.DeleteRegexMatchSet
+ Network.AWS.WAF.DeleteRegexMatchSet: instance Network.AWS.Data.Query.ToQuery Network.AWS.WAF.DeleteRegexMatchSet.DeleteRegexMatchSet
+ Network.AWS.WAF.DeleteRegexMatchSet: instance Network.AWS.Types.AWSRequest Network.AWS.WAF.DeleteRegexMatchSet.DeleteRegexMatchSet
+ Network.AWS.WAF.DeleteRegexPatternSet: data DeleteRegexPatternSet
+ Network.AWS.WAF.DeleteRegexPatternSet: data DeleteRegexPatternSetResponse
+ Network.AWS.WAF.DeleteRegexPatternSet: deleteRegexPatternSet :: Text -> Text -> DeleteRegexPatternSet
+ Network.AWS.WAF.DeleteRegexPatternSet: deleteRegexPatternSetResponse :: Int -> DeleteRegexPatternSetResponse
+ Network.AWS.WAF.DeleteRegexPatternSet: drpsChangeToken :: Lens' DeleteRegexPatternSet Text
+ Network.AWS.WAF.DeleteRegexPatternSet: drpsRegexPatternSetId :: Lens' DeleteRegexPatternSet Text
+ Network.AWS.WAF.DeleteRegexPatternSet: drpsrsChangeToken :: Lens' DeleteRegexPatternSetResponse (Maybe Text)
+ Network.AWS.WAF.DeleteRegexPatternSet: drpsrsResponseStatus :: Lens' DeleteRegexPatternSetResponse Int
+ Network.AWS.WAF.DeleteRegexPatternSet: instance Control.DeepSeq.NFData Network.AWS.WAF.DeleteRegexPatternSet.DeleteRegexPatternSet
+ Network.AWS.WAF.DeleteRegexPatternSet: instance Control.DeepSeq.NFData Network.AWS.WAF.DeleteRegexPatternSet.DeleteRegexPatternSetResponse
+ Network.AWS.WAF.DeleteRegexPatternSet: instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.WAF.DeleteRegexPatternSet.DeleteRegexPatternSet
+ Network.AWS.WAF.DeleteRegexPatternSet: instance Data.Data.Data Network.AWS.WAF.DeleteRegexPatternSet.DeleteRegexPatternSet
+ Network.AWS.WAF.DeleteRegexPatternSet: instance Data.Data.Data Network.AWS.WAF.DeleteRegexPatternSet.DeleteRegexPatternSetResponse
+ Network.AWS.WAF.DeleteRegexPatternSet: instance Data.Hashable.Class.Hashable Network.AWS.WAF.DeleteRegexPatternSet.DeleteRegexPatternSet
+ Network.AWS.WAF.DeleteRegexPatternSet: instance GHC.Classes.Eq Network.AWS.WAF.DeleteRegexPatternSet.DeleteRegexPatternSet
+ Network.AWS.WAF.DeleteRegexPatternSet: instance GHC.Classes.Eq Network.AWS.WAF.DeleteRegexPatternSet.DeleteRegexPatternSetResponse
+ Network.AWS.WAF.DeleteRegexPatternSet: instance GHC.Generics.Generic Network.AWS.WAF.DeleteRegexPatternSet.DeleteRegexPatternSet
+ Network.AWS.WAF.DeleteRegexPatternSet: instance GHC.Generics.Generic Network.AWS.WAF.DeleteRegexPatternSet.DeleteRegexPatternSetResponse
+ Network.AWS.WAF.DeleteRegexPatternSet: instance GHC.Read.Read Network.AWS.WAF.DeleteRegexPatternSet.DeleteRegexPatternSet
+ Network.AWS.WAF.DeleteRegexPatternSet: instance GHC.Read.Read Network.AWS.WAF.DeleteRegexPatternSet.DeleteRegexPatternSetResponse
+ Network.AWS.WAF.DeleteRegexPatternSet: instance GHC.Show.Show Network.AWS.WAF.DeleteRegexPatternSet.DeleteRegexPatternSet
+ Network.AWS.WAF.DeleteRegexPatternSet: instance GHC.Show.Show Network.AWS.WAF.DeleteRegexPatternSet.DeleteRegexPatternSetResponse
+ Network.AWS.WAF.DeleteRegexPatternSet: instance Network.AWS.Data.Headers.ToHeaders Network.AWS.WAF.DeleteRegexPatternSet.DeleteRegexPatternSet
+ Network.AWS.WAF.DeleteRegexPatternSet: instance Network.AWS.Data.Path.ToPath Network.AWS.WAF.DeleteRegexPatternSet.DeleteRegexPatternSet
+ Network.AWS.WAF.DeleteRegexPatternSet: instance Network.AWS.Data.Query.ToQuery Network.AWS.WAF.DeleteRegexPatternSet.DeleteRegexPatternSet
+ Network.AWS.WAF.DeleteRegexPatternSet: instance Network.AWS.Types.AWSRequest Network.AWS.WAF.DeleteRegexPatternSet.DeleteRegexPatternSet
+ Network.AWS.WAF.GetGeoMatchSet: data GetGeoMatchSet
+ Network.AWS.WAF.GetGeoMatchSet: data GetGeoMatchSetResponse
+ Network.AWS.WAF.GetGeoMatchSet: getGeoMatchSet :: Text -> GetGeoMatchSet
+ Network.AWS.WAF.GetGeoMatchSet: getGeoMatchSetResponse :: Int -> GetGeoMatchSetResponse
+ Network.AWS.WAF.GetGeoMatchSet: ggmsGeoMatchSetId :: Lens' GetGeoMatchSet Text
+ Network.AWS.WAF.GetGeoMatchSet: ggmsrsGeoMatchSet :: Lens' GetGeoMatchSetResponse (Maybe GeoMatchSet)
+ Network.AWS.WAF.GetGeoMatchSet: ggmsrsResponseStatus :: Lens' GetGeoMatchSetResponse Int
+ Network.AWS.WAF.GetGeoMatchSet: instance Control.DeepSeq.NFData Network.AWS.WAF.GetGeoMatchSet.GetGeoMatchSet
+ Network.AWS.WAF.GetGeoMatchSet: instance Control.DeepSeq.NFData Network.AWS.WAF.GetGeoMatchSet.GetGeoMatchSetResponse
+ Network.AWS.WAF.GetGeoMatchSet: instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.WAF.GetGeoMatchSet.GetGeoMatchSet
+ Network.AWS.WAF.GetGeoMatchSet: instance Data.Data.Data Network.AWS.WAF.GetGeoMatchSet.GetGeoMatchSet
+ Network.AWS.WAF.GetGeoMatchSet: instance Data.Data.Data Network.AWS.WAF.GetGeoMatchSet.GetGeoMatchSetResponse
+ Network.AWS.WAF.GetGeoMatchSet: instance Data.Hashable.Class.Hashable Network.AWS.WAF.GetGeoMatchSet.GetGeoMatchSet
+ Network.AWS.WAF.GetGeoMatchSet: instance GHC.Classes.Eq Network.AWS.WAF.GetGeoMatchSet.GetGeoMatchSet
+ Network.AWS.WAF.GetGeoMatchSet: instance GHC.Classes.Eq Network.AWS.WAF.GetGeoMatchSet.GetGeoMatchSetResponse
+ Network.AWS.WAF.GetGeoMatchSet: instance GHC.Generics.Generic Network.AWS.WAF.GetGeoMatchSet.GetGeoMatchSet
+ Network.AWS.WAF.GetGeoMatchSet: instance GHC.Generics.Generic Network.AWS.WAF.GetGeoMatchSet.GetGeoMatchSetResponse
+ Network.AWS.WAF.GetGeoMatchSet: instance GHC.Read.Read Network.AWS.WAF.GetGeoMatchSet.GetGeoMatchSet
+ Network.AWS.WAF.GetGeoMatchSet: instance GHC.Read.Read Network.AWS.WAF.GetGeoMatchSet.GetGeoMatchSetResponse
+ Network.AWS.WAF.GetGeoMatchSet: instance GHC.Show.Show Network.AWS.WAF.GetGeoMatchSet.GetGeoMatchSet
+ Network.AWS.WAF.GetGeoMatchSet: instance GHC.Show.Show Network.AWS.WAF.GetGeoMatchSet.GetGeoMatchSetResponse
+ Network.AWS.WAF.GetGeoMatchSet: instance Network.AWS.Data.Headers.ToHeaders Network.AWS.WAF.GetGeoMatchSet.GetGeoMatchSet
+ Network.AWS.WAF.GetGeoMatchSet: instance Network.AWS.Data.Path.ToPath Network.AWS.WAF.GetGeoMatchSet.GetGeoMatchSet
+ Network.AWS.WAF.GetGeoMatchSet: instance Network.AWS.Data.Query.ToQuery Network.AWS.WAF.GetGeoMatchSet.GetGeoMatchSet
+ Network.AWS.WAF.GetGeoMatchSet: instance Network.AWS.Types.AWSRequest Network.AWS.WAF.GetGeoMatchSet.GetGeoMatchSet
+ Network.AWS.WAF.GetRateBasedRule: data GetRateBasedRule
+ Network.AWS.WAF.GetRateBasedRule: data GetRateBasedRuleResponse
+ Network.AWS.WAF.GetRateBasedRule: getRateBasedRule :: Text -> GetRateBasedRule
+ Network.AWS.WAF.GetRateBasedRule: getRateBasedRuleResponse :: Int -> GetRateBasedRuleResponse
+ Network.AWS.WAF.GetRateBasedRule: grbrRuleId :: Lens' GetRateBasedRule Text
+ Network.AWS.WAF.GetRateBasedRule: grbrrsResponseStatus :: Lens' GetRateBasedRuleResponse Int
+ Network.AWS.WAF.GetRateBasedRule: grbrrsRule :: Lens' GetRateBasedRuleResponse (Maybe RateBasedRule)
+ Network.AWS.WAF.GetRateBasedRule: instance Control.DeepSeq.NFData Network.AWS.WAF.GetRateBasedRule.GetRateBasedRule
+ Network.AWS.WAF.GetRateBasedRule: instance Control.DeepSeq.NFData Network.AWS.WAF.GetRateBasedRule.GetRateBasedRuleResponse
+ Network.AWS.WAF.GetRateBasedRule: instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.WAF.GetRateBasedRule.GetRateBasedRule
+ Network.AWS.WAF.GetRateBasedRule: instance Data.Data.Data Network.AWS.WAF.GetRateBasedRule.GetRateBasedRule
+ Network.AWS.WAF.GetRateBasedRule: instance Data.Data.Data Network.AWS.WAF.GetRateBasedRule.GetRateBasedRuleResponse
+ Network.AWS.WAF.GetRateBasedRule: instance Data.Hashable.Class.Hashable Network.AWS.WAF.GetRateBasedRule.GetRateBasedRule
+ Network.AWS.WAF.GetRateBasedRule: instance GHC.Classes.Eq Network.AWS.WAF.GetRateBasedRule.GetRateBasedRule
+ Network.AWS.WAF.GetRateBasedRule: instance GHC.Classes.Eq Network.AWS.WAF.GetRateBasedRule.GetRateBasedRuleResponse
+ Network.AWS.WAF.GetRateBasedRule: instance GHC.Generics.Generic Network.AWS.WAF.GetRateBasedRule.GetRateBasedRule
+ Network.AWS.WAF.GetRateBasedRule: instance GHC.Generics.Generic Network.AWS.WAF.GetRateBasedRule.GetRateBasedRuleResponse
+ Network.AWS.WAF.GetRateBasedRule: instance GHC.Read.Read Network.AWS.WAF.GetRateBasedRule.GetRateBasedRule
+ Network.AWS.WAF.GetRateBasedRule: instance GHC.Read.Read Network.AWS.WAF.GetRateBasedRule.GetRateBasedRuleResponse
+ Network.AWS.WAF.GetRateBasedRule: instance GHC.Show.Show Network.AWS.WAF.GetRateBasedRule.GetRateBasedRule
+ Network.AWS.WAF.GetRateBasedRule: instance GHC.Show.Show Network.AWS.WAF.GetRateBasedRule.GetRateBasedRuleResponse
+ Network.AWS.WAF.GetRateBasedRule: instance Network.AWS.Data.Headers.ToHeaders Network.AWS.WAF.GetRateBasedRule.GetRateBasedRule
+ Network.AWS.WAF.GetRateBasedRule: instance Network.AWS.Data.Path.ToPath Network.AWS.WAF.GetRateBasedRule.GetRateBasedRule
+ Network.AWS.WAF.GetRateBasedRule: instance Network.AWS.Data.Query.ToQuery Network.AWS.WAF.GetRateBasedRule.GetRateBasedRule
+ Network.AWS.WAF.GetRateBasedRule: instance Network.AWS.Types.AWSRequest Network.AWS.WAF.GetRateBasedRule.GetRateBasedRule
+ Network.AWS.WAF.GetRateBasedRuleManagedKeys: data GetRateBasedRuleManagedKeys
+ Network.AWS.WAF.GetRateBasedRuleManagedKeys: data GetRateBasedRuleManagedKeysResponse
+ Network.AWS.WAF.GetRateBasedRuleManagedKeys: getRateBasedRuleManagedKeys :: Text -> GetRateBasedRuleManagedKeys
+ Network.AWS.WAF.GetRateBasedRuleManagedKeys: getRateBasedRuleManagedKeysResponse :: Int -> GetRateBasedRuleManagedKeysResponse
+ Network.AWS.WAF.GetRateBasedRuleManagedKeys: grbrmkNextMarker :: Lens' GetRateBasedRuleManagedKeys (Maybe Text)
+ Network.AWS.WAF.GetRateBasedRuleManagedKeys: grbrmkRuleId :: Lens' GetRateBasedRuleManagedKeys Text
+ Network.AWS.WAF.GetRateBasedRuleManagedKeys: grbrmkrsManagedKeys :: Lens' GetRateBasedRuleManagedKeysResponse [Text]
+ Network.AWS.WAF.GetRateBasedRuleManagedKeys: grbrmkrsNextMarker :: Lens' GetRateBasedRuleManagedKeysResponse (Maybe Text)
+ Network.AWS.WAF.GetRateBasedRuleManagedKeys: grbrmkrsResponseStatus :: Lens' GetRateBasedRuleManagedKeysResponse Int
+ Network.AWS.WAF.GetRateBasedRuleManagedKeys: instance Control.DeepSeq.NFData Network.AWS.WAF.GetRateBasedRuleManagedKeys.GetRateBasedRuleManagedKeys
+ Network.AWS.WAF.GetRateBasedRuleManagedKeys: instance Control.DeepSeq.NFData Network.AWS.WAF.GetRateBasedRuleManagedKeys.GetRateBasedRuleManagedKeysResponse
+ Network.AWS.WAF.GetRateBasedRuleManagedKeys: instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.WAF.GetRateBasedRuleManagedKeys.GetRateBasedRuleManagedKeys
+ Network.AWS.WAF.GetRateBasedRuleManagedKeys: instance Data.Data.Data Network.AWS.WAF.GetRateBasedRuleManagedKeys.GetRateBasedRuleManagedKeys
+ Network.AWS.WAF.GetRateBasedRuleManagedKeys: instance Data.Data.Data Network.AWS.WAF.GetRateBasedRuleManagedKeys.GetRateBasedRuleManagedKeysResponse
+ Network.AWS.WAF.GetRateBasedRuleManagedKeys: instance Data.Hashable.Class.Hashable Network.AWS.WAF.GetRateBasedRuleManagedKeys.GetRateBasedRuleManagedKeys
+ Network.AWS.WAF.GetRateBasedRuleManagedKeys: instance GHC.Classes.Eq Network.AWS.WAF.GetRateBasedRuleManagedKeys.GetRateBasedRuleManagedKeys
+ Network.AWS.WAF.GetRateBasedRuleManagedKeys: instance GHC.Classes.Eq Network.AWS.WAF.GetRateBasedRuleManagedKeys.GetRateBasedRuleManagedKeysResponse
+ Network.AWS.WAF.GetRateBasedRuleManagedKeys: instance GHC.Generics.Generic Network.AWS.WAF.GetRateBasedRuleManagedKeys.GetRateBasedRuleManagedKeys
+ Network.AWS.WAF.GetRateBasedRuleManagedKeys: instance GHC.Generics.Generic Network.AWS.WAF.GetRateBasedRuleManagedKeys.GetRateBasedRuleManagedKeysResponse
+ Network.AWS.WAF.GetRateBasedRuleManagedKeys: instance GHC.Read.Read Network.AWS.WAF.GetRateBasedRuleManagedKeys.GetRateBasedRuleManagedKeys
+ Network.AWS.WAF.GetRateBasedRuleManagedKeys: instance GHC.Read.Read Network.AWS.WAF.GetRateBasedRuleManagedKeys.GetRateBasedRuleManagedKeysResponse
+ Network.AWS.WAF.GetRateBasedRuleManagedKeys: instance GHC.Show.Show Network.AWS.WAF.GetRateBasedRuleManagedKeys.GetRateBasedRuleManagedKeys
+ Network.AWS.WAF.GetRateBasedRuleManagedKeys: instance GHC.Show.Show Network.AWS.WAF.GetRateBasedRuleManagedKeys.GetRateBasedRuleManagedKeysResponse
+ Network.AWS.WAF.GetRateBasedRuleManagedKeys: instance Network.AWS.Data.Headers.ToHeaders Network.AWS.WAF.GetRateBasedRuleManagedKeys.GetRateBasedRuleManagedKeys
+ Network.AWS.WAF.GetRateBasedRuleManagedKeys: instance Network.AWS.Data.Path.ToPath Network.AWS.WAF.GetRateBasedRuleManagedKeys.GetRateBasedRuleManagedKeys
+ Network.AWS.WAF.GetRateBasedRuleManagedKeys: instance Network.AWS.Data.Query.ToQuery Network.AWS.WAF.GetRateBasedRuleManagedKeys.GetRateBasedRuleManagedKeys
+ Network.AWS.WAF.GetRateBasedRuleManagedKeys: instance Network.AWS.Types.AWSRequest Network.AWS.WAF.GetRateBasedRuleManagedKeys.GetRateBasedRuleManagedKeys
+ Network.AWS.WAF.GetRegexMatchSet: data GetRegexMatchSet
+ Network.AWS.WAF.GetRegexMatchSet: data GetRegexMatchSetResponse
+ Network.AWS.WAF.GetRegexMatchSet: getRegexMatchSet :: Text -> GetRegexMatchSet
+ Network.AWS.WAF.GetRegexMatchSet: getRegexMatchSetResponse :: Int -> GetRegexMatchSetResponse
+ Network.AWS.WAF.GetRegexMatchSet: grmsRegexMatchSetId :: Lens' GetRegexMatchSet Text
+ Network.AWS.WAF.GetRegexMatchSet: grmsrsRegexMatchSet :: Lens' GetRegexMatchSetResponse (Maybe RegexMatchSet)
+ Network.AWS.WAF.GetRegexMatchSet: grmsrsResponseStatus :: Lens' GetRegexMatchSetResponse Int
+ Network.AWS.WAF.GetRegexMatchSet: instance Control.DeepSeq.NFData Network.AWS.WAF.GetRegexMatchSet.GetRegexMatchSet
+ Network.AWS.WAF.GetRegexMatchSet: instance Control.DeepSeq.NFData Network.AWS.WAF.GetRegexMatchSet.GetRegexMatchSetResponse
+ Network.AWS.WAF.GetRegexMatchSet: instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.WAF.GetRegexMatchSet.GetRegexMatchSet
+ Network.AWS.WAF.GetRegexMatchSet: instance Data.Data.Data Network.AWS.WAF.GetRegexMatchSet.GetRegexMatchSet
+ Network.AWS.WAF.GetRegexMatchSet: instance Data.Data.Data Network.AWS.WAF.GetRegexMatchSet.GetRegexMatchSetResponse
+ Network.AWS.WAF.GetRegexMatchSet: instance Data.Hashable.Class.Hashable Network.AWS.WAF.GetRegexMatchSet.GetRegexMatchSet
+ Network.AWS.WAF.GetRegexMatchSet: instance GHC.Classes.Eq Network.AWS.WAF.GetRegexMatchSet.GetRegexMatchSet
+ Network.AWS.WAF.GetRegexMatchSet: instance GHC.Classes.Eq Network.AWS.WAF.GetRegexMatchSet.GetRegexMatchSetResponse
+ Network.AWS.WAF.GetRegexMatchSet: instance GHC.Generics.Generic Network.AWS.WAF.GetRegexMatchSet.GetRegexMatchSet
+ Network.AWS.WAF.GetRegexMatchSet: instance GHC.Generics.Generic Network.AWS.WAF.GetRegexMatchSet.GetRegexMatchSetResponse
+ Network.AWS.WAF.GetRegexMatchSet: instance GHC.Read.Read Network.AWS.WAF.GetRegexMatchSet.GetRegexMatchSet
+ Network.AWS.WAF.GetRegexMatchSet: instance GHC.Read.Read Network.AWS.WAF.GetRegexMatchSet.GetRegexMatchSetResponse
+ Network.AWS.WAF.GetRegexMatchSet: instance GHC.Show.Show Network.AWS.WAF.GetRegexMatchSet.GetRegexMatchSet
+ Network.AWS.WAF.GetRegexMatchSet: instance GHC.Show.Show Network.AWS.WAF.GetRegexMatchSet.GetRegexMatchSetResponse
+ Network.AWS.WAF.GetRegexMatchSet: instance Network.AWS.Data.Headers.ToHeaders Network.AWS.WAF.GetRegexMatchSet.GetRegexMatchSet
+ Network.AWS.WAF.GetRegexMatchSet: instance Network.AWS.Data.Path.ToPath Network.AWS.WAF.GetRegexMatchSet.GetRegexMatchSet
+ Network.AWS.WAF.GetRegexMatchSet: instance Network.AWS.Data.Query.ToQuery Network.AWS.WAF.GetRegexMatchSet.GetRegexMatchSet
+ Network.AWS.WAF.GetRegexMatchSet: instance Network.AWS.Types.AWSRequest Network.AWS.WAF.GetRegexMatchSet.GetRegexMatchSet
+ Network.AWS.WAF.GetRegexPatternSet: data GetRegexPatternSet
+ Network.AWS.WAF.GetRegexPatternSet: data GetRegexPatternSetResponse
+ Network.AWS.WAF.GetRegexPatternSet: getRegexPatternSet :: Text -> GetRegexPatternSet
+ Network.AWS.WAF.GetRegexPatternSet: getRegexPatternSetResponse :: Int -> GetRegexPatternSetResponse
+ Network.AWS.WAF.GetRegexPatternSet: grpsRegexPatternSetId :: Lens' GetRegexPatternSet Text
+ Network.AWS.WAF.GetRegexPatternSet: grpsrsRegexPatternSet :: Lens' GetRegexPatternSetResponse (Maybe RegexPatternSet)
+ Network.AWS.WAF.GetRegexPatternSet: grpsrsResponseStatus :: Lens' GetRegexPatternSetResponse Int
+ Network.AWS.WAF.GetRegexPatternSet: instance Control.DeepSeq.NFData Network.AWS.WAF.GetRegexPatternSet.GetRegexPatternSet
+ Network.AWS.WAF.GetRegexPatternSet: instance Control.DeepSeq.NFData Network.AWS.WAF.GetRegexPatternSet.GetRegexPatternSetResponse
+ Network.AWS.WAF.GetRegexPatternSet: instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.WAF.GetRegexPatternSet.GetRegexPatternSet
+ Network.AWS.WAF.GetRegexPatternSet: instance Data.Data.Data Network.AWS.WAF.GetRegexPatternSet.GetRegexPatternSet
+ Network.AWS.WAF.GetRegexPatternSet: instance Data.Data.Data Network.AWS.WAF.GetRegexPatternSet.GetRegexPatternSetResponse
+ Network.AWS.WAF.GetRegexPatternSet: instance Data.Hashable.Class.Hashable Network.AWS.WAF.GetRegexPatternSet.GetRegexPatternSet
+ Network.AWS.WAF.GetRegexPatternSet: instance GHC.Classes.Eq Network.AWS.WAF.GetRegexPatternSet.GetRegexPatternSet
+ Network.AWS.WAF.GetRegexPatternSet: instance GHC.Classes.Eq Network.AWS.WAF.GetRegexPatternSet.GetRegexPatternSetResponse
+ Network.AWS.WAF.GetRegexPatternSet: instance GHC.Generics.Generic Network.AWS.WAF.GetRegexPatternSet.GetRegexPatternSet
+ Network.AWS.WAF.GetRegexPatternSet: instance GHC.Generics.Generic Network.AWS.WAF.GetRegexPatternSet.GetRegexPatternSetResponse
+ Network.AWS.WAF.GetRegexPatternSet: instance GHC.Read.Read Network.AWS.WAF.GetRegexPatternSet.GetRegexPatternSet
+ Network.AWS.WAF.GetRegexPatternSet: instance GHC.Read.Read Network.AWS.WAF.GetRegexPatternSet.GetRegexPatternSetResponse
+ Network.AWS.WAF.GetRegexPatternSet: instance GHC.Show.Show Network.AWS.WAF.GetRegexPatternSet.GetRegexPatternSet
+ Network.AWS.WAF.GetRegexPatternSet: instance GHC.Show.Show Network.AWS.WAF.GetRegexPatternSet.GetRegexPatternSetResponse
+ Network.AWS.WAF.GetRegexPatternSet: instance Network.AWS.Data.Headers.ToHeaders Network.AWS.WAF.GetRegexPatternSet.GetRegexPatternSet
+ Network.AWS.WAF.GetRegexPatternSet: instance Network.AWS.Data.Path.ToPath Network.AWS.WAF.GetRegexPatternSet.GetRegexPatternSet
+ Network.AWS.WAF.GetRegexPatternSet: instance Network.AWS.Data.Query.ToQuery Network.AWS.WAF.GetRegexPatternSet.GetRegexPatternSet
+ Network.AWS.WAF.GetRegexPatternSet: instance Network.AWS.Types.AWSRequest Network.AWS.WAF.GetRegexPatternSet.GetRegexPatternSet
+ Network.AWS.WAF.ListGeoMatchSets: data ListGeoMatchSets
+ Network.AWS.WAF.ListGeoMatchSets: data ListGeoMatchSetsResponse
+ Network.AWS.WAF.ListGeoMatchSets: instance Control.DeepSeq.NFData Network.AWS.WAF.ListGeoMatchSets.ListGeoMatchSets
+ Network.AWS.WAF.ListGeoMatchSets: instance Control.DeepSeq.NFData Network.AWS.WAF.ListGeoMatchSets.ListGeoMatchSetsResponse
+ Network.AWS.WAF.ListGeoMatchSets: instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.WAF.ListGeoMatchSets.ListGeoMatchSets
+ Network.AWS.WAF.ListGeoMatchSets: instance Data.Data.Data Network.AWS.WAF.ListGeoMatchSets.ListGeoMatchSets
+ Network.AWS.WAF.ListGeoMatchSets: instance Data.Data.Data Network.AWS.WAF.ListGeoMatchSets.ListGeoMatchSetsResponse
+ Network.AWS.WAF.ListGeoMatchSets: instance Data.Hashable.Class.Hashable Network.AWS.WAF.ListGeoMatchSets.ListGeoMatchSets
+ Network.AWS.WAF.ListGeoMatchSets: instance GHC.Classes.Eq Network.AWS.WAF.ListGeoMatchSets.ListGeoMatchSets
+ Network.AWS.WAF.ListGeoMatchSets: instance GHC.Classes.Eq Network.AWS.WAF.ListGeoMatchSets.ListGeoMatchSetsResponse
+ Network.AWS.WAF.ListGeoMatchSets: instance GHC.Generics.Generic Network.AWS.WAF.ListGeoMatchSets.ListGeoMatchSets
+ Network.AWS.WAF.ListGeoMatchSets: instance GHC.Generics.Generic Network.AWS.WAF.ListGeoMatchSets.ListGeoMatchSetsResponse
+ Network.AWS.WAF.ListGeoMatchSets: instance GHC.Read.Read Network.AWS.WAF.ListGeoMatchSets.ListGeoMatchSets
+ Network.AWS.WAF.ListGeoMatchSets: instance GHC.Read.Read Network.AWS.WAF.ListGeoMatchSets.ListGeoMatchSetsResponse
+ Network.AWS.WAF.ListGeoMatchSets: instance GHC.Show.Show Network.AWS.WAF.ListGeoMatchSets.ListGeoMatchSets
+ Network.AWS.WAF.ListGeoMatchSets: instance GHC.Show.Show Network.AWS.WAF.ListGeoMatchSets.ListGeoMatchSetsResponse
+ Network.AWS.WAF.ListGeoMatchSets: instance Network.AWS.Data.Headers.ToHeaders Network.AWS.WAF.ListGeoMatchSets.ListGeoMatchSets
+ Network.AWS.WAF.ListGeoMatchSets: instance Network.AWS.Data.Path.ToPath Network.AWS.WAF.ListGeoMatchSets.ListGeoMatchSets
+ Network.AWS.WAF.ListGeoMatchSets: instance Network.AWS.Data.Query.ToQuery Network.AWS.WAF.ListGeoMatchSets.ListGeoMatchSets
+ Network.AWS.WAF.ListGeoMatchSets: instance Network.AWS.Types.AWSRequest Network.AWS.WAF.ListGeoMatchSets.ListGeoMatchSets
+ Network.AWS.WAF.ListGeoMatchSets: lgmsLimit :: Lens' ListGeoMatchSets (Maybe Natural)
+ Network.AWS.WAF.ListGeoMatchSets: lgmsNextMarker :: Lens' ListGeoMatchSets (Maybe Text)
+ Network.AWS.WAF.ListGeoMatchSets: lgmsrsGeoMatchSets :: Lens' ListGeoMatchSetsResponse [GeoMatchSetSummary]
+ Network.AWS.WAF.ListGeoMatchSets: lgmsrsNextMarker :: Lens' ListGeoMatchSetsResponse (Maybe Text)
+ Network.AWS.WAF.ListGeoMatchSets: lgmsrsResponseStatus :: Lens' ListGeoMatchSetsResponse Int
+ Network.AWS.WAF.ListGeoMatchSets: listGeoMatchSets :: ListGeoMatchSets
+ Network.AWS.WAF.ListGeoMatchSets: listGeoMatchSetsResponse :: Int -> ListGeoMatchSetsResponse
+ Network.AWS.WAF.ListRateBasedRules: data ListRateBasedRules
+ Network.AWS.WAF.ListRateBasedRules: data ListRateBasedRulesResponse
+ Network.AWS.WAF.ListRateBasedRules: instance Control.DeepSeq.NFData Network.AWS.WAF.ListRateBasedRules.ListRateBasedRules
+ Network.AWS.WAF.ListRateBasedRules: instance Control.DeepSeq.NFData Network.AWS.WAF.ListRateBasedRules.ListRateBasedRulesResponse
+ Network.AWS.WAF.ListRateBasedRules: instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.WAF.ListRateBasedRules.ListRateBasedRules
+ Network.AWS.WAF.ListRateBasedRules: instance Data.Data.Data Network.AWS.WAF.ListRateBasedRules.ListRateBasedRules
+ Network.AWS.WAF.ListRateBasedRules: instance Data.Data.Data Network.AWS.WAF.ListRateBasedRules.ListRateBasedRulesResponse
+ Network.AWS.WAF.ListRateBasedRules: instance Data.Hashable.Class.Hashable Network.AWS.WAF.ListRateBasedRules.ListRateBasedRules
+ Network.AWS.WAF.ListRateBasedRules: instance GHC.Classes.Eq Network.AWS.WAF.ListRateBasedRules.ListRateBasedRules
+ Network.AWS.WAF.ListRateBasedRules: instance GHC.Classes.Eq Network.AWS.WAF.ListRateBasedRules.ListRateBasedRulesResponse
+ Network.AWS.WAF.ListRateBasedRules: instance GHC.Generics.Generic Network.AWS.WAF.ListRateBasedRules.ListRateBasedRules
+ Network.AWS.WAF.ListRateBasedRules: instance GHC.Generics.Generic Network.AWS.WAF.ListRateBasedRules.ListRateBasedRulesResponse
+ Network.AWS.WAF.ListRateBasedRules: instance GHC.Read.Read Network.AWS.WAF.ListRateBasedRules.ListRateBasedRules
+ Network.AWS.WAF.ListRateBasedRules: instance GHC.Read.Read Network.AWS.WAF.ListRateBasedRules.ListRateBasedRulesResponse
+ Network.AWS.WAF.ListRateBasedRules: instance GHC.Show.Show Network.AWS.WAF.ListRateBasedRules.ListRateBasedRules
+ Network.AWS.WAF.ListRateBasedRules: instance GHC.Show.Show Network.AWS.WAF.ListRateBasedRules.ListRateBasedRulesResponse
+ Network.AWS.WAF.ListRateBasedRules: instance Network.AWS.Data.Headers.ToHeaders Network.AWS.WAF.ListRateBasedRules.ListRateBasedRules
+ Network.AWS.WAF.ListRateBasedRules: instance Network.AWS.Data.Path.ToPath Network.AWS.WAF.ListRateBasedRules.ListRateBasedRules
+ Network.AWS.WAF.ListRateBasedRules: instance Network.AWS.Data.Query.ToQuery Network.AWS.WAF.ListRateBasedRules.ListRateBasedRules
+ Network.AWS.WAF.ListRateBasedRules: instance Network.AWS.Types.AWSRequest Network.AWS.WAF.ListRateBasedRules.ListRateBasedRules
+ Network.AWS.WAF.ListRateBasedRules: listRateBasedRules :: ListRateBasedRules
+ Network.AWS.WAF.ListRateBasedRules: listRateBasedRulesResponse :: Int -> ListRateBasedRulesResponse
+ Network.AWS.WAF.ListRateBasedRules: lrbrLimit :: Lens' ListRateBasedRules (Maybe Natural)
+ Network.AWS.WAF.ListRateBasedRules: lrbrNextMarker :: Lens' ListRateBasedRules (Maybe Text)
+ Network.AWS.WAF.ListRateBasedRules: lrbrrsNextMarker :: Lens' ListRateBasedRulesResponse (Maybe Text)
+ Network.AWS.WAF.ListRateBasedRules: lrbrrsResponseStatus :: Lens' ListRateBasedRulesResponse Int
+ Network.AWS.WAF.ListRateBasedRules: lrbrrsRules :: Lens' ListRateBasedRulesResponse [RuleSummary]
+ Network.AWS.WAF.ListRegexMatchSets: data ListRegexMatchSets
+ Network.AWS.WAF.ListRegexMatchSets: data ListRegexMatchSetsResponse
+ Network.AWS.WAF.ListRegexMatchSets: instance Control.DeepSeq.NFData Network.AWS.WAF.ListRegexMatchSets.ListRegexMatchSets
+ Network.AWS.WAF.ListRegexMatchSets: instance Control.DeepSeq.NFData Network.AWS.WAF.ListRegexMatchSets.ListRegexMatchSetsResponse
+ Network.AWS.WAF.ListRegexMatchSets: instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.WAF.ListRegexMatchSets.ListRegexMatchSets
+ Network.AWS.WAF.ListRegexMatchSets: instance Data.Data.Data Network.AWS.WAF.ListRegexMatchSets.ListRegexMatchSets
+ Network.AWS.WAF.ListRegexMatchSets: instance Data.Data.Data Network.AWS.WAF.ListRegexMatchSets.ListRegexMatchSetsResponse
+ Network.AWS.WAF.ListRegexMatchSets: instance Data.Hashable.Class.Hashable Network.AWS.WAF.ListRegexMatchSets.ListRegexMatchSets
+ Network.AWS.WAF.ListRegexMatchSets: instance GHC.Classes.Eq Network.AWS.WAF.ListRegexMatchSets.ListRegexMatchSets
+ Network.AWS.WAF.ListRegexMatchSets: instance GHC.Classes.Eq Network.AWS.WAF.ListRegexMatchSets.ListRegexMatchSetsResponse
+ Network.AWS.WAF.ListRegexMatchSets: instance GHC.Generics.Generic Network.AWS.WAF.ListRegexMatchSets.ListRegexMatchSets
+ Network.AWS.WAF.ListRegexMatchSets: instance GHC.Generics.Generic Network.AWS.WAF.ListRegexMatchSets.ListRegexMatchSetsResponse
+ Network.AWS.WAF.ListRegexMatchSets: instance GHC.Read.Read Network.AWS.WAF.ListRegexMatchSets.ListRegexMatchSets
+ Network.AWS.WAF.ListRegexMatchSets: instance GHC.Read.Read Network.AWS.WAF.ListRegexMatchSets.ListRegexMatchSetsResponse
+ Network.AWS.WAF.ListRegexMatchSets: instance GHC.Show.Show Network.AWS.WAF.ListRegexMatchSets.ListRegexMatchSets
+ Network.AWS.WAF.ListRegexMatchSets: instance GHC.Show.Show Network.AWS.WAF.ListRegexMatchSets.ListRegexMatchSetsResponse
+ Network.AWS.WAF.ListRegexMatchSets: instance Network.AWS.Data.Headers.ToHeaders Network.AWS.WAF.ListRegexMatchSets.ListRegexMatchSets
+ Network.AWS.WAF.ListRegexMatchSets: instance Network.AWS.Data.Path.ToPath Network.AWS.WAF.ListRegexMatchSets.ListRegexMatchSets
+ Network.AWS.WAF.ListRegexMatchSets: instance Network.AWS.Data.Query.ToQuery Network.AWS.WAF.ListRegexMatchSets.ListRegexMatchSets
+ Network.AWS.WAF.ListRegexMatchSets: instance Network.AWS.Types.AWSRequest Network.AWS.WAF.ListRegexMatchSets.ListRegexMatchSets
+ Network.AWS.WAF.ListRegexMatchSets: listRegexMatchSets :: ListRegexMatchSets
+ Network.AWS.WAF.ListRegexMatchSets: listRegexMatchSetsResponse :: Int -> ListRegexMatchSetsResponse
+ Network.AWS.WAF.ListRegexMatchSets: lrmsLimit :: Lens' ListRegexMatchSets (Maybe Natural)
+ Network.AWS.WAF.ListRegexMatchSets: lrmsNextMarker :: Lens' ListRegexMatchSets (Maybe Text)
+ Network.AWS.WAF.ListRegexMatchSets: lrmsrsNextMarker :: Lens' ListRegexMatchSetsResponse (Maybe Text)
+ Network.AWS.WAF.ListRegexMatchSets: lrmsrsRegexMatchSets :: Lens' ListRegexMatchSetsResponse [RegexMatchSetSummary]
+ Network.AWS.WAF.ListRegexMatchSets: lrmsrsResponseStatus :: Lens' ListRegexMatchSetsResponse Int
+ Network.AWS.WAF.ListRegexPatternSets: data ListRegexPatternSets
+ Network.AWS.WAF.ListRegexPatternSets: data ListRegexPatternSetsResponse
+ Network.AWS.WAF.ListRegexPatternSets: instance Control.DeepSeq.NFData Network.AWS.WAF.ListRegexPatternSets.ListRegexPatternSets
+ Network.AWS.WAF.ListRegexPatternSets: instance Control.DeepSeq.NFData Network.AWS.WAF.ListRegexPatternSets.ListRegexPatternSetsResponse
+ Network.AWS.WAF.ListRegexPatternSets: instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.WAF.ListRegexPatternSets.ListRegexPatternSets
+ Network.AWS.WAF.ListRegexPatternSets: instance Data.Data.Data Network.AWS.WAF.ListRegexPatternSets.ListRegexPatternSets
+ Network.AWS.WAF.ListRegexPatternSets: instance Data.Data.Data Network.AWS.WAF.ListRegexPatternSets.ListRegexPatternSetsResponse
+ Network.AWS.WAF.ListRegexPatternSets: instance Data.Hashable.Class.Hashable Network.AWS.WAF.ListRegexPatternSets.ListRegexPatternSets
+ Network.AWS.WAF.ListRegexPatternSets: instance GHC.Classes.Eq Network.AWS.WAF.ListRegexPatternSets.ListRegexPatternSets
+ Network.AWS.WAF.ListRegexPatternSets: instance GHC.Classes.Eq Network.AWS.WAF.ListRegexPatternSets.ListRegexPatternSetsResponse
+ Network.AWS.WAF.ListRegexPatternSets: instance GHC.Generics.Generic Network.AWS.WAF.ListRegexPatternSets.ListRegexPatternSets
+ Network.AWS.WAF.ListRegexPatternSets: instance GHC.Generics.Generic Network.AWS.WAF.ListRegexPatternSets.ListRegexPatternSetsResponse
+ Network.AWS.WAF.ListRegexPatternSets: instance GHC.Read.Read Network.AWS.WAF.ListRegexPatternSets.ListRegexPatternSets
+ Network.AWS.WAF.ListRegexPatternSets: instance GHC.Read.Read Network.AWS.WAF.ListRegexPatternSets.ListRegexPatternSetsResponse
+ Network.AWS.WAF.ListRegexPatternSets: instance GHC.Show.Show Network.AWS.WAF.ListRegexPatternSets.ListRegexPatternSets
+ Network.AWS.WAF.ListRegexPatternSets: instance GHC.Show.Show Network.AWS.WAF.ListRegexPatternSets.ListRegexPatternSetsResponse
+ Network.AWS.WAF.ListRegexPatternSets: instance Network.AWS.Data.Headers.ToHeaders Network.AWS.WAF.ListRegexPatternSets.ListRegexPatternSets
+ Network.AWS.WAF.ListRegexPatternSets: instance Network.AWS.Data.Path.ToPath Network.AWS.WAF.ListRegexPatternSets.ListRegexPatternSets
+ Network.AWS.WAF.ListRegexPatternSets: instance Network.AWS.Data.Query.ToQuery Network.AWS.WAF.ListRegexPatternSets.ListRegexPatternSets
+ Network.AWS.WAF.ListRegexPatternSets: instance Network.AWS.Types.AWSRequest Network.AWS.WAF.ListRegexPatternSets.ListRegexPatternSets
+ Network.AWS.WAF.ListRegexPatternSets: listRegexPatternSets :: ListRegexPatternSets
+ Network.AWS.WAF.ListRegexPatternSets: listRegexPatternSetsResponse :: Int -> ListRegexPatternSetsResponse
+ Network.AWS.WAF.ListRegexPatternSets: lrpsLimit :: Lens' ListRegexPatternSets (Maybe Natural)
+ Network.AWS.WAF.ListRegexPatternSets: lrpsNextMarker :: Lens' ListRegexPatternSets (Maybe Text)
+ Network.AWS.WAF.ListRegexPatternSets: lrpsrsNextMarker :: Lens' ListRegexPatternSetsResponse (Maybe Text)
+ Network.AWS.WAF.ListRegexPatternSets: lrpsrsRegexPatternSets :: Lens' ListRegexPatternSetsResponse [RegexPatternSetSummary]
+ Network.AWS.WAF.ListRegexPatternSets: lrpsrsResponseStatus :: Lens' ListRegexPatternSetsResponse Int
+ Network.AWS.WAF.Types: Country :: GeoMatchConstraintType
+ Network.AWS.WAF.Types: GMCVAD :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVAE :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVAF :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVAG :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVAI :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVAL :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVAM :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVAO :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVAQ :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVAR :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVAS :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVAT :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVAU :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVAW :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVAX :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVAZ :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVBA :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVBB :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVBD :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVBE :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVBF :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVBG :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVBH :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVBI :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVBJ :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVBL :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVBM :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVBN :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVBO :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVBQ :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVBR :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVBS :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVBT :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVBV :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVBW :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVBY :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVBZ :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVCA :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVCC :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVCD :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVCF :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVCG :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVCH :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVCI :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVCK :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVCL :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVCM :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVCN :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVCO :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVCR :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVCU :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVCV :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVCW :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVCX :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVCY :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVCZ :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVDE :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVDJ :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVDK :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVDM :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVDO :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVDZ :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVEC :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVEE :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVEG :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVEH :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVER :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVES :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVET :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVFI :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVFJ :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVFK :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVFM :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVFO :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVFR :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVGA :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVGB :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVGD :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVGE :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVGF :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVGG :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVGH :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVGI :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVGL :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVGM :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVGN :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVGP :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVGQ :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVGR :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVGS :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVGT' :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVGU :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVGW :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVGY :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVHK :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVHM :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVHN :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVHR :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVHT :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVHU :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVIE :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVIL :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVIM :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVIN :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVIO :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVIQ :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVIR :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVIS :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVIT :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVId :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVJE :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVJM :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVJO :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVJP :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVKE :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVKG :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVKH :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVKI :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVKM :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVKN :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVKP :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVKR :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVKW :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVKY :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVKZ :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVLA :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVLB :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVLC :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVLI :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVLK :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVLR :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVLS :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVLT' :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVLU :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVLV :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVLY :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVMA :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVMC :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVMD :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVME :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVMF :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVMG :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVMH :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVMK :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVML :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVMM :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVMN :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVMO :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVMP :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVMQ :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVMR :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVMS :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVMT :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVMU :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVMV :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVMW :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVMX :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVMY :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVMZ :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVNA :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVNC :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVNE :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVNF :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVNG :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVNI :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVNL :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVNO :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVNP :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVNR :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVNU :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVNZ :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVOM :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVPA :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVPE :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVPF :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVPG :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVPH :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVPK :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVPL :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVPM :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVPN :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVPR :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVPS :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVPT :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVPW :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVPY :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVQA :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVRE :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVRO :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVRS :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVRU :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVRW :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVSA :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVSB :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVSC :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVSD :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVSE :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVSG :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVSH :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVSI :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVSJ :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVSK :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVSL :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVSM :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVSN :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVSO :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVSR :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVSS :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVST :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVSV :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVSX :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVSY :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVSZ :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVTC :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVTD :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVTF :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVTG :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVTH :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVTJ :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVTK :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVTL :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVTM :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVTN :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVTO :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVTR :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVTT :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVTV :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVTW :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVTZ :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVUA :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVUG :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVUM :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVUS :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVUY :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVUZ :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVVA :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVVC :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVVE :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVVG :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVVI :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVVN :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVVU :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVWF :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVWS :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVYE :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVYT :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVZA :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVZM :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GMCVZW :: GeoMatchConstraintValue
+ Network.AWS.WAF.Types: GeoMatch :: PredicateType
+ Network.AWS.WAF.Types: IP :: RateKey
+ Network.AWS.WAF.Types: RateBased :: WafRuleType
+ Network.AWS.WAF.Types: RegexMatch :: PredicateType
+ Network.AWS.WAF.Types: Regular :: WafRuleType
+ Network.AWS.WAF.Types: _WAFInvalidRegexPatternException :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.WAF.Types: arType :: Lens' ActivatedRule (Maybe WafRuleType)
+ Network.AWS.WAF.Types: data GeoMatchConstraint
+ Network.AWS.WAF.Types: data GeoMatchConstraintType
+ Network.AWS.WAF.Types: data GeoMatchConstraintValue
+ Network.AWS.WAF.Types: data GeoMatchSet
+ Network.AWS.WAF.Types: data GeoMatchSetSummary
+ Network.AWS.WAF.Types: data GeoMatchSetUpdate
+ Network.AWS.WAF.Types: data RateBasedRule
+ Network.AWS.WAF.Types: data RateKey
+ Network.AWS.WAF.Types: data RegexMatchSet
+ Network.AWS.WAF.Types: data RegexMatchSetSummary
+ Network.AWS.WAF.Types: data RegexMatchSetUpdate
+ Network.AWS.WAF.Types: data RegexMatchTuple
+ Network.AWS.WAF.Types: data RegexPatternSet
+ Network.AWS.WAF.Types: data RegexPatternSetSummary
+ Network.AWS.WAF.Types: data RegexPatternSetUpdate
+ Network.AWS.WAF.Types: data WafRuleType
+ Network.AWS.WAF.Types: geoMatchConstraint :: GeoMatchConstraintType -> GeoMatchConstraintValue -> GeoMatchConstraint
+ Network.AWS.WAF.Types: geoMatchSet :: Text -> GeoMatchSet
+ Network.AWS.WAF.Types: geoMatchSetSummary :: Text -> Text -> GeoMatchSetSummary
+ Network.AWS.WAF.Types: geoMatchSetUpdate :: ChangeAction -> GeoMatchConstraint -> GeoMatchSetUpdate
+ Network.AWS.WAF.Types: gmcType :: Lens' GeoMatchConstraint GeoMatchConstraintType
+ Network.AWS.WAF.Types: gmcValue :: Lens' GeoMatchConstraint GeoMatchConstraintValue
+ Network.AWS.WAF.Types: gmsGeoMatchConstraints :: Lens' GeoMatchSet [GeoMatchConstraint]
+ Network.AWS.WAF.Types: gmsGeoMatchSetId :: Lens' GeoMatchSet Text
+ Network.AWS.WAF.Types: gmsName :: Lens' GeoMatchSet (Maybe Text)
+ Network.AWS.WAF.Types: gmssGeoMatchSetId :: Lens' GeoMatchSetSummary Text
+ Network.AWS.WAF.Types: gmssName :: Lens' GeoMatchSetSummary Text
+ Network.AWS.WAF.Types: gmsuAction :: Lens' GeoMatchSetUpdate ChangeAction
+ Network.AWS.WAF.Types: gmsuGeoMatchConstraint :: Lens' GeoMatchSetUpdate GeoMatchConstraint
+ Network.AWS.WAF.Types: rateBasedRule :: Text -> RateKey -> Natural -> RateBasedRule
+ Network.AWS.WAF.Types: rbrMatchPredicates :: Lens' RateBasedRule [Predicate]
+ Network.AWS.WAF.Types: rbrMetricName :: Lens' RateBasedRule (Maybe Text)
+ Network.AWS.WAF.Types: rbrName :: Lens' RateBasedRule (Maybe Text)
+ Network.AWS.WAF.Types: rbrRateKey :: Lens' RateBasedRule RateKey
+ Network.AWS.WAF.Types: rbrRateLimit :: Lens' RateBasedRule Natural
+ Network.AWS.WAF.Types: rbrRuleId :: Lens' RateBasedRule Text
+ Network.AWS.WAF.Types: regexMatchSet :: RegexMatchSet
+ Network.AWS.WAF.Types: regexMatchSetSummary :: Text -> Text -> RegexMatchSetSummary
+ Network.AWS.WAF.Types: regexMatchSetUpdate :: ChangeAction -> RegexMatchTuple -> RegexMatchSetUpdate
+ Network.AWS.WAF.Types: regexMatchTuple :: FieldToMatch -> TextTransformation -> Text -> RegexMatchTuple
+ Network.AWS.WAF.Types: regexPatternSet :: Text -> RegexPatternSet
+ Network.AWS.WAF.Types: regexPatternSetSummary :: Text -> Text -> RegexPatternSetSummary
+ Network.AWS.WAF.Types: regexPatternSetUpdate :: ChangeAction -> Text -> RegexPatternSetUpdate
+ Network.AWS.WAF.Types: rmsName :: Lens' RegexMatchSet (Maybe Text)
+ Network.AWS.WAF.Types: rmsRegexMatchSetId :: Lens' RegexMatchSet (Maybe Text)
+ Network.AWS.WAF.Types: rmsRegexMatchTuples :: Lens' RegexMatchSet [RegexMatchTuple]
+ Network.AWS.WAF.Types: rmssName :: Lens' RegexMatchSetSummary Text
+ Network.AWS.WAF.Types: rmssRegexMatchSetId :: Lens' RegexMatchSetSummary Text
+ Network.AWS.WAF.Types: rmsuAction :: Lens' RegexMatchSetUpdate ChangeAction
+ Network.AWS.WAF.Types: rmsuRegexMatchTuple :: Lens' RegexMatchSetUpdate RegexMatchTuple
+ Network.AWS.WAF.Types: rmtFieldToMatch :: Lens' RegexMatchTuple FieldToMatch
+ Network.AWS.WAF.Types: rmtRegexPatternSetId :: Lens' RegexMatchTuple Text
+ Network.AWS.WAF.Types: rmtTextTransformation :: Lens' RegexMatchTuple TextTransformation
+ Network.AWS.WAF.Types: rpsName :: Lens' RegexPatternSet (Maybe Text)
+ Network.AWS.WAF.Types: rpsRegexPatternSetId :: Lens' RegexPatternSet Text
+ Network.AWS.WAF.Types: rpsRegexPatternStrings :: Lens' RegexPatternSet [Text]
+ Network.AWS.WAF.Types: rpssName :: Lens' RegexPatternSetSummary Text
+ Network.AWS.WAF.Types: rpssRegexPatternSetId :: Lens' RegexPatternSetSummary Text
+ Network.AWS.WAF.Types: rpsuAction :: Lens' RegexPatternSetUpdate ChangeAction
+ Network.AWS.WAF.Types: rpsuRegexPatternString :: Lens' RegexPatternSetUpdate Text
+ Network.AWS.WAF.UpdateGeoMatchSet: data UpdateGeoMatchSet
+ Network.AWS.WAF.UpdateGeoMatchSet: data UpdateGeoMatchSetResponse
+ Network.AWS.WAF.UpdateGeoMatchSet: instance Control.DeepSeq.NFData Network.AWS.WAF.UpdateGeoMatchSet.UpdateGeoMatchSet
+ Network.AWS.WAF.UpdateGeoMatchSet: instance Control.DeepSeq.NFData Network.AWS.WAF.UpdateGeoMatchSet.UpdateGeoMatchSetResponse
+ Network.AWS.WAF.UpdateGeoMatchSet: instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.WAF.UpdateGeoMatchSet.UpdateGeoMatchSet
+ Network.AWS.WAF.UpdateGeoMatchSet: instance Data.Data.Data Network.AWS.WAF.UpdateGeoMatchSet.UpdateGeoMatchSet
+ Network.AWS.WAF.UpdateGeoMatchSet: instance Data.Data.Data Network.AWS.WAF.UpdateGeoMatchSet.UpdateGeoMatchSetResponse
+ Network.AWS.WAF.UpdateGeoMatchSet: instance Data.Hashable.Class.Hashable Network.AWS.WAF.UpdateGeoMatchSet.UpdateGeoMatchSet
+ Network.AWS.WAF.UpdateGeoMatchSet: instance GHC.Classes.Eq Network.AWS.WAF.UpdateGeoMatchSet.UpdateGeoMatchSet
+ Network.AWS.WAF.UpdateGeoMatchSet: instance GHC.Classes.Eq Network.AWS.WAF.UpdateGeoMatchSet.UpdateGeoMatchSetResponse
+ Network.AWS.WAF.UpdateGeoMatchSet: instance GHC.Generics.Generic Network.AWS.WAF.UpdateGeoMatchSet.UpdateGeoMatchSet
+ Network.AWS.WAF.UpdateGeoMatchSet: instance GHC.Generics.Generic Network.AWS.WAF.UpdateGeoMatchSet.UpdateGeoMatchSetResponse
+ Network.AWS.WAF.UpdateGeoMatchSet: instance GHC.Read.Read Network.AWS.WAF.UpdateGeoMatchSet.UpdateGeoMatchSet
+ Network.AWS.WAF.UpdateGeoMatchSet: instance GHC.Read.Read Network.AWS.WAF.UpdateGeoMatchSet.UpdateGeoMatchSetResponse
+ Network.AWS.WAF.UpdateGeoMatchSet: instance GHC.Show.Show Network.AWS.WAF.UpdateGeoMatchSet.UpdateGeoMatchSet
+ Network.AWS.WAF.UpdateGeoMatchSet: instance GHC.Show.Show Network.AWS.WAF.UpdateGeoMatchSet.UpdateGeoMatchSetResponse
+ Network.AWS.WAF.UpdateGeoMatchSet: instance Network.AWS.Data.Headers.ToHeaders Network.AWS.WAF.UpdateGeoMatchSet.UpdateGeoMatchSet
+ Network.AWS.WAF.UpdateGeoMatchSet: instance Network.AWS.Data.Path.ToPath Network.AWS.WAF.UpdateGeoMatchSet.UpdateGeoMatchSet
+ Network.AWS.WAF.UpdateGeoMatchSet: instance Network.AWS.Data.Query.ToQuery Network.AWS.WAF.UpdateGeoMatchSet.UpdateGeoMatchSet
+ Network.AWS.WAF.UpdateGeoMatchSet: instance Network.AWS.Types.AWSRequest Network.AWS.WAF.UpdateGeoMatchSet.UpdateGeoMatchSet
+ Network.AWS.WAF.UpdateGeoMatchSet: ugmsChangeToken :: Lens' UpdateGeoMatchSet Text
+ Network.AWS.WAF.UpdateGeoMatchSet: ugmsGeoMatchSetId :: Lens' UpdateGeoMatchSet Text
+ Network.AWS.WAF.UpdateGeoMatchSet: ugmsUpdates :: Lens' UpdateGeoMatchSet (NonEmpty GeoMatchSetUpdate)
+ Network.AWS.WAF.UpdateGeoMatchSet: ugmsrsChangeToken :: Lens' UpdateGeoMatchSetResponse (Maybe Text)
+ Network.AWS.WAF.UpdateGeoMatchSet: ugmsrsResponseStatus :: Lens' UpdateGeoMatchSetResponse Int
+ Network.AWS.WAF.UpdateGeoMatchSet: updateGeoMatchSet :: Text -> Text -> NonEmpty GeoMatchSetUpdate -> UpdateGeoMatchSet
+ Network.AWS.WAF.UpdateGeoMatchSet: updateGeoMatchSetResponse :: Int -> UpdateGeoMatchSetResponse
+ Network.AWS.WAF.UpdateRateBasedRule: data UpdateRateBasedRule
+ Network.AWS.WAF.UpdateRateBasedRule: data UpdateRateBasedRuleResponse
+ Network.AWS.WAF.UpdateRateBasedRule: instance Control.DeepSeq.NFData Network.AWS.WAF.UpdateRateBasedRule.UpdateRateBasedRule
+ Network.AWS.WAF.UpdateRateBasedRule: instance Control.DeepSeq.NFData Network.AWS.WAF.UpdateRateBasedRule.UpdateRateBasedRuleResponse
+ Network.AWS.WAF.UpdateRateBasedRule: instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.WAF.UpdateRateBasedRule.UpdateRateBasedRule
+ Network.AWS.WAF.UpdateRateBasedRule: instance Data.Data.Data Network.AWS.WAF.UpdateRateBasedRule.UpdateRateBasedRule
+ Network.AWS.WAF.UpdateRateBasedRule: instance Data.Data.Data Network.AWS.WAF.UpdateRateBasedRule.UpdateRateBasedRuleResponse
+ Network.AWS.WAF.UpdateRateBasedRule: instance Data.Hashable.Class.Hashable Network.AWS.WAF.UpdateRateBasedRule.UpdateRateBasedRule
+ Network.AWS.WAF.UpdateRateBasedRule: instance GHC.Classes.Eq Network.AWS.WAF.UpdateRateBasedRule.UpdateRateBasedRule
+ Network.AWS.WAF.UpdateRateBasedRule: instance GHC.Classes.Eq Network.AWS.WAF.UpdateRateBasedRule.UpdateRateBasedRuleResponse
+ Network.AWS.WAF.UpdateRateBasedRule: instance GHC.Generics.Generic Network.AWS.WAF.UpdateRateBasedRule.UpdateRateBasedRule
+ Network.AWS.WAF.UpdateRateBasedRule: instance GHC.Generics.Generic Network.AWS.WAF.UpdateRateBasedRule.UpdateRateBasedRuleResponse
+ Network.AWS.WAF.UpdateRateBasedRule: instance GHC.Read.Read Network.AWS.WAF.UpdateRateBasedRule.UpdateRateBasedRule
+ Network.AWS.WAF.UpdateRateBasedRule: instance GHC.Read.Read Network.AWS.WAF.UpdateRateBasedRule.UpdateRateBasedRuleResponse
+ Network.AWS.WAF.UpdateRateBasedRule: instance GHC.Show.Show Network.AWS.WAF.UpdateRateBasedRule.UpdateRateBasedRule
+ Network.AWS.WAF.UpdateRateBasedRule: instance GHC.Show.Show Network.AWS.WAF.UpdateRateBasedRule.UpdateRateBasedRuleResponse
+ Network.AWS.WAF.UpdateRateBasedRule: instance Network.AWS.Data.Headers.ToHeaders Network.AWS.WAF.UpdateRateBasedRule.UpdateRateBasedRule
+ Network.AWS.WAF.UpdateRateBasedRule: instance Network.AWS.Data.Path.ToPath Network.AWS.WAF.UpdateRateBasedRule.UpdateRateBasedRule
+ Network.AWS.WAF.UpdateRateBasedRule: instance Network.AWS.Data.Query.ToQuery Network.AWS.WAF.UpdateRateBasedRule.UpdateRateBasedRule
+ Network.AWS.WAF.UpdateRateBasedRule: instance Network.AWS.Types.AWSRequest Network.AWS.WAF.UpdateRateBasedRule.UpdateRateBasedRule
+ Network.AWS.WAF.UpdateRateBasedRule: updateRateBasedRule :: Text -> Text -> Natural -> UpdateRateBasedRule
+ Network.AWS.WAF.UpdateRateBasedRule: updateRateBasedRuleResponse :: Int -> UpdateRateBasedRuleResponse
+ Network.AWS.WAF.UpdateRateBasedRule: urbrChangeToken :: Lens' UpdateRateBasedRule Text
+ Network.AWS.WAF.UpdateRateBasedRule: urbrRateLimit :: Lens' UpdateRateBasedRule Natural
+ Network.AWS.WAF.UpdateRateBasedRule: urbrRuleId :: Lens' UpdateRateBasedRule Text
+ Network.AWS.WAF.UpdateRateBasedRule: urbrUpdates :: Lens' UpdateRateBasedRule [RuleUpdate]
+ Network.AWS.WAF.UpdateRateBasedRule: urbrrsChangeToken :: Lens' UpdateRateBasedRuleResponse (Maybe Text)
+ Network.AWS.WAF.UpdateRateBasedRule: urbrrsResponseStatus :: Lens' UpdateRateBasedRuleResponse Int
+ Network.AWS.WAF.UpdateRegexMatchSet: data UpdateRegexMatchSet
+ Network.AWS.WAF.UpdateRegexMatchSet: data UpdateRegexMatchSetResponse
+ Network.AWS.WAF.UpdateRegexMatchSet: instance Control.DeepSeq.NFData Network.AWS.WAF.UpdateRegexMatchSet.UpdateRegexMatchSet
+ Network.AWS.WAF.UpdateRegexMatchSet: instance Control.DeepSeq.NFData Network.AWS.WAF.UpdateRegexMatchSet.UpdateRegexMatchSetResponse
+ Network.AWS.WAF.UpdateRegexMatchSet: instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.WAF.UpdateRegexMatchSet.UpdateRegexMatchSet
+ Network.AWS.WAF.UpdateRegexMatchSet: instance Data.Data.Data Network.AWS.WAF.UpdateRegexMatchSet.UpdateRegexMatchSet
+ Network.AWS.WAF.UpdateRegexMatchSet: instance Data.Data.Data Network.AWS.WAF.UpdateRegexMatchSet.UpdateRegexMatchSetResponse
+ Network.AWS.WAF.UpdateRegexMatchSet: instance Data.Hashable.Class.Hashable Network.AWS.WAF.UpdateRegexMatchSet.UpdateRegexMatchSet
+ Network.AWS.WAF.UpdateRegexMatchSet: instance GHC.Classes.Eq Network.AWS.WAF.UpdateRegexMatchSet.UpdateRegexMatchSet
+ Network.AWS.WAF.UpdateRegexMatchSet: instance GHC.Classes.Eq Network.AWS.WAF.UpdateRegexMatchSet.UpdateRegexMatchSetResponse
+ Network.AWS.WAF.UpdateRegexMatchSet: instance GHC.Generics.Generic Network.AWS.WAF.UpdateRegexMatchSet.UpdateRegexMatchSet
+ Network.AWS.WAF.UpdateRegexMatchSet: instance GHC.Generics.Generic Network.AWS.WAF.UpdateRegexMatchSet.UpdateRegexMatchSetResponse
+ Network.AWS.WAF.UpdateRegexMatchSet: instance GHC.Read.Read Network.AWS.WAF.UpdateRegexMatchSet.UpdateRegexMatchSet
+ Network.AWS.WAF.UpdateRegexMatchSet: instance GHC.Read.Read Network.AWS.WAF.UpdateRegexMatchSet.UpdateRegexMatchSetResponse
+ Network.AWS.WAF.UpdateRegexMatchSet: instance GHC.Show.Show Network.AWS.WAF.UpdateRegexMatchSet.UpdateRegexMatchSet
+ Network.AWS.WAF.UpdateRegexMatchSet: instance GHC.Show.Show Network.AWS.WAF.UpdateRegexMatchSet.UpdateRegexMatchSetResponse
+ Network.AWS.WAF.UpdateRegexMatchSet: instance Network.AWS.Data.Headers.ToHeaders Network.AWS.WAF.UpdateRegexMatchSet.UpdateRegexMatchSet
+ Network.AWS.WAF.UpdateRegexMatchSet: instance Network.AWS.Data.Path.ToPath Network.AWS.WAF.UpdateRegexMatchSet.UpdateRegexMatchSet
+ Network.AWS.WAF.UpdateRegexMatchSet: instance Network.AWS.Data.Query.ToQuery Network.AWS.WAF.UpdateRegexMatchSet.UpdateRegexMatchSet
+ Network.AWS.WAF.UpdateRegexMatchSet: instance Network.AWS.Types.AWSRequest Network.AWS.WAF.UpdateRegexMatchSet.UpdateRegexMatchSet
+ Network.AWS.WAF.UpdateRegexMatchSet: updateRegexMatchSet :: Text -> NonEmpty RegexMatchSetUpdate -> Text -> UpdateRegexMatchSet
+ Network.AWS.WAF.UpdateRegexMatchSet: updateRegexMatchSetResponse :: Int -> UpdateRegexMatchSetResponse
+ Network.AWS.WAF.UpdateRegexMatchSet: urmsChangeToken :: Lens' UpdateRegexMatchSet Text
+ Network.AWS.WAF.UpdateRegexMatchSet: urmsRegexMatchSetId :: Lens' UpdateRegexMatchSet Text
+ Network.AWS.WAF.UpdateRegexMatchSet: urmsUpdates :: Lens' UpdateRegexMatchSet (NonEmpty RegexMatchSetUpdate)
+ Network.AWS.WAF.UpdateRegexMatchSet: urmsrsChangeToken :: Lens' UpdateRegexMatchSetResponse (Maybe Text)
+ Network.AWS.WAF.UpdateRegexMatchSet: urmsrsResponseStatus :: Lens' UpdateRegexMatchSetResponse Int
+ Network.AWS.WAF.UpdateRegexPatternSet: data UpdateRegexPatternSet
+ Network.AWS.WAF.UpdateRegexPatternSet: data UpdateRegexPatternSetResponse
+ Network.AWS.WAF.UpdateRegexPatternSet: instance Control.DeepSeq.NFData Network.AWS.WAF.UpdateRegexPatternSet.UpdateRegexPatternSet
+ Network.AWS.WAF.UpdateRegexPatternSet: instance Control.DeepSeq.NFData Network.AWS.WAF.UpdateRegexPatternSet.UpdateRegexPatternSetResponse
+ Network.AWS.WAF.UpdateRegexPatternSet: instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.WAF.UpdateRegexPatternSet.UpdateRegexPatternSet
+ Network.AWS.WAF.UpdateRegexPatternSet: instance Data.Data.Data Network.AWS.WAF.UpdateRegexPatternSet.UpdateRegexPatternSet
+ Network.AWS.WAF.UpdateRegexPatternSet: instance Data.Data.Data Network.AWS.WAF.UpdateRegexPatternSet.UpdateRegexPatternSetResponse
+ Network.AWS.WAF.UpdateRegexPatternSet: instance Data.Hashable.Class.Hashable Network.AWS.WAF.UpdateRegexPatternSet.UpdateRegexPatternSet
+ Network.AWS.WAF.UpdateRegexPatternSet: instance GHC.Classes.Eq Network.AWS.WAF.UpdateRegexPatternSet.UpdateRegexPatternSet
+ Network.AWS.WAF.UpdateRegexPatternSet: instance GHC.Classes.Eq Network.AWS.WAF.UpdateRegexPatternSet.UpdateRegexPatternSetResponse
+ Network.AWS.WAF.UpdateRegexPatternSet: instance GHC.Generics.Generic Network.AWS.WAF.UpdateRegexPatternSet.UpdateRegexPatternSet
+ Network.AWS.WAF.UpdateRegexPatternSet: instance GHC.Generics.Generic Network.AWS.WAF.UpdateRegexPatternSet.UpdateRegexPatternSetResponse
+ Network.AWS.WAF.UpdateRegexPatternSet: instance GHC.Read.Read Network.AWS.WAF.UpdateRegexPatternSet.UpdateRegexPatternSet
+ Network.AWS.WAF.UpdateRegexPatternSet: instance GHC.Read.Read Network.AWS.WAF.UpdateRegexPatternSet.UpdateRegexPatternSetResponse
+ Network.AWS.WAF.UpdateRegexPatternSet: instance GHC.Show.Show Network.AWS.WAF.UpdateRegexPatternSet.UpdateRegexPatternSet
+ Network.AWS.WAF.UpdateRegexPatternSet: instance GHC.Show.Show Network.AWS.WAF.UpdateRegexPatternSet.UpdateRegexPatternSetResponse
+ Network.AWS.WAF.UpdateRegexPatternSet: instance Network.AWS.Data.Headers.ToHeaders Network.AWS.WAF.UpdateRegexPatternSet.UpdateRegexPatternSet
+ Network.AWS.WAF.UpdateRegexPatternSet: instance Network.AWS.Data.Path.ToPath Network.AWS.WAF.UpdateRegexPatternSet.UpdateRegexPatternSet
+ Network.AWS.WAF.UpdateRegexPatternSet: instance Network.AWS.Data.Query.ToQuery Network.AWS.WAF.UpdateRegexPatternSet.UpdateRegexPatternSet
+ Network.AWS.WAF.UpdateRegexPatternSet: instance Network.AWS.Types.AWSRequest Network.AWS.WAF.UpdateRegexPatternSet.UpdateRegexPatternSet
+ Network.AWS.WAF.UpdateRegexPatternSet: updateRegexPatternSet :: Text -> NonEmpty RegexPatternSetUpdate -> Text -> UpdateRegexPatternSet
+ Network.AWS.WAF.UpdateRegexPatternSet: updateRegexPatternSetResponse :: Int -> UpdateRegexPatternSetResponse
+ Network.AWS.WAF.UpdateRegexPatternSet: urpsChangeToken :: Lens' UpdateRegexPatternSet Text
+ Network.AWS.WAF.UpdateRegexPatternSet: urpsRegexPatternSetId :: Lens' UpdateRegexPatternSet Text
+ Network.AWS.WAF.UpdateRegexPatternSet: urpsUpdates :: Lens' UpdateRegexPatternSet (NonEmpty RegexPatternSetUpdate)
+ Network.AWS.WAF.UpdateRegexPatternSet: urpsrsChangeToken :: Lens' UpdateRegexPatternSetResponse (Maybe Text)
+ Network.AWS.WAF.UpdateRegexPatternSet: urpsrsResponseStatus :: Lens' UpdateRegexPatternSetResponse Int
- Network.AWS.WAF.UpdateByteMatchSet: ubmsUpdates :: Lens' UpdateByteMatchSet [ByteMatchSetUpdate]
+ Network.AWS.WAF.UpdateByteMatchSet: ubmsUpdates :: Lens' UpdateByteMatchSet (NonEmpty ByteMatchSetUpdate)
- Network.AWS.WAF.UpdateByteMatchSet: updateByteMatchSet :: Text -> Text -> UpdateByteMatchSet
+ Network.AWS.WAF.UpdateByteMatchSet: updateByteMatchSet :: Text -> Text -> NonEmpty ByteMatchSetUpdate -> UpdateByteMatchSet
- Network.AWS.WAF.UpdateIPSet: uisUpdates :: Lens' UpdateIPSet [IPSetUpdate]
+ Network.AWS.WAF.UpdateIPSet: uisUpdates :: Lens' UpdateIPSet (NonEmpty IPSetUpdate)
- Network.AWS.WAF.UpdateIPSet: updateIPSet :: Text -> Text -> UpdateIPSet
+ Network.AWS.WAF.UpdateIPSet: updateIPSet :: Text -> Text -> NonEmpty IPSetUpdate -> UpdateIPSet
- Network.AWS.WAF.UpdateSizeConstraintSet: updateSizeConstraintSet :: Text -> Text -> UpdateSizeConstraintSet
+ Network.AWS.WAF.UpdateSizeConstraintSet: updateSizeConstraintSet :: Text -> Text -> NonEmpty SizeConstraintSetUpdate -> UpdateSizeConstraintSet
- Network.AWS.WAF.UpdateSizeConstraintSet: uscsUpdates :: Lens' UpdateSizeConstraintSet [SizeConstraintSetUpdate]
+ Network.AWS.WAF.UpdateSizeConstraintSet: uscsUpdates :: Lens' UpdateSizeConstraintSet (NonEmpty SizeConstraintSetUpdate)
- Network.AWS.WAF.UpdateSqlInjectionMatchSet: updateSqlInjectionMatchSet :: Text -> Text -> UpdateSqlInjectionMatchSet
+ Network.AWS.WAF.UpdateSqlInjectionMatchSet: updateSqlInjectionMatchSet :: Text -> Text -> NonEmpty SqlInjectionMatchSetUpdate -> UpdateSqlInjectionMatchSet
- Network.AWS.WAF.UpdateSqlInjectionMatchSet: usimsUpdates :: Lens' UpdateSqlInjectionMatchSet [SqlInjectionMatchSetUpdate]
+ Network.AWS.WAF.UpdateSqlInjectionMatchSet: usimsUpdates :: Lens' UpdateSqlInjectionMatchSet (NonEmpty SqlInjectionMatchSetUpdate)
- Network.AWS.WAF.UpdateXSSMatchSet: updateXSSMatchSet :: Text -> Text -> UpdateXSSMatchSet
+ Network.AWS.WAF.UpdateXSSMatchSet: updateXSSMatchSet :: Text -> Text -> NonEmpty XSSMatchSetUpdate -> UpdateXSSMatchSet
- Network.AWS.WAF.UpdateXSSMatchSet: uxmsUpdates :: Lens' UpdateXSSMatchSet [XSSMatchSetUpdate]
+ Network.AWS.WAF.UpdateXSSMatchSet: uxmsUpdates :: Lens' UpdateXSSMatchSet (NonEmpty XSSMatchSetUpdate)
Files
- README.md +1/−1
- amazonka-waf.cabal +37/−11
- fixture/CreateGeoMatchSet.yaml +10/−0
- fixture/CreateGeoMatchSetResponse.proto +0/−0
- fixture/CreateRateBasedRule.yaml +10/−0
- fixture/CreateRateBasedRuleResponse.proto +0/−0
- fixture/CreateRegexMatchSet.yaml +10/−0
- fixture/CreateRegexMatchSetResponse.proto +0/−0
- fixture/CreateRegexPatternSet.yaml +10/−0
- fixture/CreateRegexPatternSetResponse.proto +0/−0
- fixture/DeleteGeoMatchSet.yaml +10/−0
- fixture/DeleteGeoMatchSetResponse.proto +0/−0
- fixture/DeleteRateBasedRule.yaml +10/−0
- fixture/DeleteRateBasedRuleResponse.proto +0/−0
- fixture/DeleteRegexMatchSet.yaml +10/−0
- fixture/DeleteRegexMatchSetResponse.proto +0/−0
- fixture/DeleteRegexPatternSet.yaml +10/−0
- fixture/DeleteRegexPatternSetResponse.proto +0/−0
- fixture/GetGeoMatchSet.yaml +10/−0
- fixture/GetGeoMatchSetResponse.proto +0/−0
- fixture/GetRateBasedRule.yaml +10/−0
- fixture/GetRateBasedRuleManagedKeys.yaml +10/−0
- fixture/GetRateBasedRuleManagedKeysResponse.proto +0/−0
- fixture/GetRateBasedRuleResponse.proto +0/−0
- fixture/GetRegexMatchSet.yaml +10/−0
- fixture/GetRegexMatchSetResponse.proto +0/−0
- fixture/GetRegexPatternSet.yaml +10/−0
- fixture/GetRegexPatternSetResponse.proto +0/−0
- fixture/ListGeoMatchSets.yaml +10/−0
- fixture/ListGeoMatchSetsResponse.proto +0/−0
- fixture/ListRateBasedRules.yaml +10/−0
- fixture/ListRateBasedRulesResponse.proto +0/−0
- fixture/ListRegexMatchSets.yaml +10/−0
- fixture/ListRegexMatchSetsResponse.proto +0/−0
- fixture/ListRegexPatternSets.yaml +10/−0
- fixture/ListRegexPatternSetsResponse.proto +0/−0
- fixture/UpdateGeoMatchSet.yaml +10/−0
- fixture/UpdateGeoMatchSetResponse.proto +0/−0
- fixture/UpdateRateBasedRule.yaml +10/−0
- fixture/UpdateRateBasedRuleResponse.proto +0/−0
- fixture/UpdateRegexMatchSet.yaml +10/−0
- fixture/UpdateRegexMatchSetResponse.proto +0/−0
- fixture/UpdateRegexPatternSet.yaml +10/−0
- fixture/UpdateRegexPatternSetResponse.proto +0/−0
- gen/Network/AWS/WAF.hs +223/−43
- gen/Network/AWS/WAF/CreateByteMatchSet.hs +28/−27
- gen/Network/AWS/WAF/CreateGeoMatchSet.hs +169/−0
- gen/Network/AWS/WAF/CreateIPSet.hs +28/−27
- gen/Network/AWS/WAF/CreateRateBasedRule.hs +237/−0
- gen/Network/AWS/WAF/CreateRegexMatchSet.hs +171/−0
- gen/Network/AWS/WAF/CreateRegexPatternSet.hs +171/−0
- gen/Network/AWS/WAF/CreateRule.hs +33/−29
- gen/Network/AWS/WAF/CreateSizeConstraintSet.hs +29/−27
- gen/Network/AWS/WAF/CreateSqlInjectionMatchSet.hs +29/−26
- gen/Network/AWS/WAF/CreateWebACL.hs +35/−31
- gen/Network/AWS/WAF/CreateXSSMatchSet.hs +28/−27
- gen/Network/AWS/WAF/DeleteByteMatchSet.hs +25/−25
- gen/Network/AWS/WAF/DeleteGeoMatchSet.hs +156/−0
- gen/Network/AWS/WAF/DeleteIPSet.hs +24/−25
- gen/Network/AWS/WAF/DeleteRateBasedRule.hs +158/−0
- gen/Network/AWS/WAF/DeleteRegexMatchSet.hs +158/−0
- gen/Network/AWS/WAF/DeleteRegexPatternSet.hs +149/−0
- gen/Network/AWS/WAF/DeleteRule.hs +24/−25
- gen/Network/AWS/WAF/DeleteSizeConstraintSet.hs +27/−25
- gen/Network/AWS/WAF/DeleteSqlInjectionMatchSet.hs +27/−24
- gen/Network/AWS/WAF/DeleteWebACL.hs +24/−25
- gen/Network/AWS/WAF/DeleteXSSMatchSet.hs +25/−25
- gen/Network/AWS/WAF/GetByteMatchSet.hs +23/−23
- gen/Network/AWS/WAF/GetChangeToken.hs +22/−20
- gen/Network/AWS/WAF/GetChangeTokenStatus.hs +23/−23
- gen/Network/AWS/WAF/GetGeoMatchSet.hs +133/−0
- gen/Network/AWS/WAF/GetIPSet.hs +23/−24
- gen/Network/AWS/WAF/GetRateBasedRule.hs +130/−0
- gen/Network/AWS/WAF/GetRateBasedRuleManagedKeys.hs +159/−0
- gen/Network/AWS/WAF/GetRegexMatchSet.hs +133/−0
- gen/Network/AWS/WAF/GetRegexPatternSet.hs +135/−0
- gen/Network/AWS/WAF/GetRule.hs +22/−24
- gen/Network/AWS/WAF/GetSampledRequests.hs +40/−36
- gen/Network/AWS/WAF/GetSizeConstraintSet.hs +23/−23
- gen/Network/AWS/WAF/GetSqlInjectionMatchSet.hs +26/−23
- gen/Network/AWS/WAF/GetWebACL.hs +23/−24
- gen/Network/AWS/WAF/GetXSSMatchSet.hs +23/−23
- gen/Network/AWS/WAF/ListByteMatchSets.hs +29/−28
- gen/Network/AWS/WAF/ListGeoMatchSets.hs +154/−0
- gen/Network/AWS/WAF/ListIPSets.hs +31/−31
- gen/Network/AWS/WAF/ListRateBasedRules.hs +154/−0
- gen/Network/AWS/WAF/ListRegexMatchSets.hs +155/−0
- gen/Network/AWS/WAF/ListRegexPatternSets.hs +156/−0
- gen/Network/AWS/WAF/ListRules.hs +29/−29
- gen/Network/AWS/WAF/ListSizeConstraintSets.hs +29/−28
- gen/Network/AWS/WAF/ListSqlInjectionMatchSets.hs +29/−27
- gen/Network/AWS/WAF/ListWebACLs.hs +29/−29
- gen/Network/AWS/WAF/ListXSSMatchSets.hs +29/−28
- gen/Network/AWS/WAF/Types.hs +157/−38
- gen/Network/AWS/WAF/Types/Product.hs +2534/−1841
- gen/Network/AWS/WAF/Types/Sum.hs +920/−50
- gen/Network/AWS/WAF/UpdateByteMatchSet.hs +33/−30
- gen/Network/AWS/WAF/UpdateGeoMatchSet.hs +179/−0
- gen/Network/AWS/WAF/UpdateIPSet.hs +47/−32
- gen/Network/AWS/WAF/UpdateRateBasedRule.hs +197/−0
- gen/Network/AWS/WAF/UpdateRegexMatchSet.hs +183/−0
- gen/Network/AWS/WAF/UpdateRegexPatternSet.hs +190/−0
- gen/Network/AWS/WAF/UpdateRule.hs +26/−27
- gen/Network/AWS/WAF/UpdateSizeConstraintSet.hs +33/−30
- gen/Network/AWS/WAF/UpdateSqlInjectionMatchSet.hs +33/−29
- gen/Network/AWS/WAF/UpdateWebACL.hs +37/−35
- gen/Network/AWS/WAF/UpdateXSSMatchSet.hs +33/−30
- gen/Network/AWS/WAF/Waiters.hs +6/−6
- test/Main.hs +2/−2
- test/Test/AWS/Gen/WAF.hs +384/−6
README.md view
@@ -8,7 +8,7 @@ ## Version -`1.4.5`+`1.5.0` ## Description
amazonka-waf.cabal view
@@ -1,13 +1,13 @@ name: amazonka-waf-version: 1.4.5+version: 1.5.0 synopsis: Amazon WAF SDK. homepage: https://github.com/brendanhay/amazonka bug-reports: https://github.com/brendanhay/amazonka/issues-license: OtherLicense+license: MPL-2.0 license-file: LICENSE author: Brendan Hay-maintainer: Brendan Hay <brendan.g.hay@gmail.com>-copyright: Copyright (c) 2013-2016 Brendan Hay+maintainer: Brendan Hay <brendan.g.hay+amazonka@gmail.com>+copyright: Copyright (c) 2013-2017 Brendan Hay category: Network, AWS, Cloud, Distributed Computing build-type: Simple cabal-version: >= 1.10@@ -29,26 +29,39 @@ to get started. source-repository head- type: git- location: git://github.com/brendanhay/amazonka.git+ type: git+ location: git://github.com/brendanhay/amazonka.git+ subdir: amazonka-waf library default-language: Haskell2010 hs-source-dirs: src gen - ghc-options: -Wall+ ghc-options:+ -Wall+ -fwarn-incomplete-uni-patterns+ -fwarn-incomplete-record-updates+ -funbox-strict-fields exposed-modules: Network.AWS.WAF , Network.AWS.WAF.CreateByteMatchSet+ , Network.AWS.WAF.CreateGeoMatchSet , Network.AWS.WAF.CreateIPSet+ , Network.AWS.WAF.CreateRateBasedRule+ , Network.AWS.WAF.CreateRegexMatchSet+ , Network.AWS.WAF.CreateRegexPatternSet , Network.AWS.WAF.CreateRule , Network.AWS.WAF.CreateSizeConstraintSet , Network.AWS.WAF.CreateSqlInjectionMatchSet , Network.AWS.WAF.CreateWebACL , Network.AWS.WAF.CreateXSSMatchSet , Network.AWS.WAF.DeleteByteMatchSet+ , Network.AWS.WAF.DeleteGeoMatchSet , Network.AWS.WAF.DeleteIPSet+ , Network.AWS.WAF.DeleteRateBasedRule+ , Network.AWS.WAF.DeleteRegexMatchSet+ , Network.AWS.WAF.DeleteRegexPatternSet , Network.AWS.WAF.DeleteRule , Network.AWS.WAF.DeleteSizeConstraintSet , Network.AWS.WAF.DeleteSqlInjectionMatchSet@@ -57,7 +70,12 @@ , Network.AWS.WAF.GetByteMatchSet , Network.AWS.WAF.GetChangeToken , Network.AWS.WAF.GetChangeTokenStatus+ , Network.AWS.WAF.GetGeoMatchSet , Network.AWS.WAF.GetIPSet+ , Network.AWS.WAF.GetRateBasedRule+ , Network.AWS.WAF.GetRateBasedRuleManagedKeys+ , Network.AWS.WAF.GetRegexMatchSet+ , Network.AWS.WAF.GetRegexPatternSet , Network.AWS.WAF.GetRule , Network.AWS.WAF.GetSampledRequests , Network.AWS.WAF.GetSizeConstraintSet@@ -65,7 +83,11 @@ , Network.AWS.WAF.GetWebACL , Network.AWS.WAF.GetXSSMatchSet , Network.AWS.WAF.ListByteMatchSets+ , Network.AWS.WAF.ListGeoMatchSets , Network.AWS.WAF.ListIPSets+ , Network.AWS.WAF.ListRateBasedRules+ , Network.AWS.WAF.ListRegexMatchSets+ , Network.AWS.WAF.ListRegexPatternSets , Network.AWS.WAF.ListRules , Network.AWS.WAF.ListSizeConstraintSets , Network.AWS.WAF.ListSqlInjectionMatchSets@@ -73,7 +95,11 @@ , Network.AWS.WAF.ListXSSMatchSets , Network.AWS.WAF.Types , Network.AWS.WAF.UpdateByteMatchSet+ , Network.AWS.WAF.UpdateGeoMatchSet , Network.AWS.WAF.UpdateIPSet+ , Network.AWS.WAF.UpdateRateBasedRule+ , Network.AWS.WAF.UpdateRegexMatchSet+ , Network.AWS.WAF.UpdateRegexPatternSet , Network.AWS.WAF.UpdateRule , Network.AWS.WAF.UpdateSizeConstraintSet , Network.AWS.WAF.UpdateSqlInjectionMatchSet@@ -86,7 +112,7 @@ , Network.AWS.WAF.Types.Sum build-depends:- amazonka-core == 1.4.5.*+ amazonka-core == 1.5.0.* , base >= 4.7 && < 5 test-suite amazonka-waf-test@@ -106,9 +132,9 @@ , Test.AWS.WAF.Internal build-depends:- amazonka-core == 1.4.5.*- , amazonka-test == 1.4.5.*- , amazonka-waf == 1.4.5.*+ amazonka-core == 1.5.0.*+ , amazonka-test == 1.5.0.*+ , amazonka-waf , base , bytestring , tasty
+ fixture/CreateGeoMatchSet.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/waf/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: waf.us-east-1.amazonaws.com+ Content-Type: application/x-www-form-urlencoded; charset=utf-8+ X-Amz-Content-SHA256: abcdef+ X-Amz-Date: 20091028T223200Z+body:+ ''
+ fixture/CreateGeoMatchSetResponse.proto view
+ fixture/CreateRateBasedRule.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/waf/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: waf.us-east-1.amazonaws.com+ Content-Type: application/x-www-form-urlencoded; charset=utf-8+ X-Amz-Content-SHA256: abcdef+ X-Amz-Date: 20091028T223200Z+body:+ ''
+ fixture/CreateRateBasedRuleResponse.proto view
+ fixture/CreateRegexMatchSet.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/waf/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: waf.us-east-1.amazonaws.com+ Content-Type: application/x-www-form-urlencoded; charset=utf-8+ X-Amz-Content-SHA256: abcdef+ X-Amz-Date: 20091028T223200Z+body:+ ''
+ fixture/CreateRegexMatchSetResponse.proto view
+ fixture/CreateRegexPatternSet.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/waf/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: waf.us-east-1.amazonaws.com+ Content-Type: application/x-www-form-urlencoded; charset=utf-8+ X-Amz-Content-SHA256: abcdef+ X-Amz-Date: 20091028T223200Z+body:+ ''
+ fixture/CreateRegexPatternSetResponse.proto view
+ fixture/DeleteGeoMatchSet.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/waf/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: waf.us-east-1.amazonaws.com+ Content-Type: application/x-www-form-urlencoded; charset=utf-8+ X-Amz-Content-SHA256: abcdef+ X-Amz-Date: 20091028T223200Z+body:+ ''
+ fixture/DeleteGeoMatchSetResponse.proto view
+ fixture/DeleteRateBasedRule.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/waf/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: waf.us-east-1.amazonaws.com+ Content-Type: application/x-www-form-urlencoded; charset=utf-8+ X-Amz-Content-SHA256: abcdef+ X-Amz-Date: 20091028T223200Z+body:+ ''
+ fixture/DeleteRateBasedRuleResponse.proto view
+ fixture/DeleteRegexMatchSet.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/waf/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: waf.us-east-1.amazonaws.com+ Content-Type: application/x-www-form-urlencoded; charset=utf-8+ X-Amz-Content-SHA256: abcdef+ X-Amz-Date: 20091028T223200Z+body:+ ''
+ fixture/DeleteRegexMatchSetResponse.proto view
+ fixture/DeleteRegexPatternSet.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/waf/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: waf.us-east-1.amazonaws.com+ Content-Type: application/x-www-form-urlencoded; charset=utf-8+ X-Amz-Content-SHA256: abcdef+ X-Amz-Date: 20091028T223200Z+body:+ ''
+ fixture/DeleteRegexPatternSetResponse.proto view
+ fixture/GetGeoMatchSet.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/waf/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: waf.us-east-1.amazonaws.com+ Content-Type: application/x-www-form-urlencoded; charset=utf-8+ X-Amz-Content-SHA256: abcdef+ X-Amz-Date: 20091028T223200Z+body:+ ''
+ fixture/GetGeoMatchSetResponse.proto view
+ fixture/GetRateBasedRule.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/waf/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: waf.us-east-1.amazonaws.com+ Content-Type: application/x-www-form-urlencoded; charset=utf-8+ X-Amz-Content-SHA256: abcdef+ X-Amz-Date: 20091028T223200Z+body:+ ''
+ fixture/GetRateBasedRuleManagedKeys.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/waf/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: waf.us-east-1.amazonaws.com+ Content-Type: application/x-www-form-urlencoded; charset=utf-8+ X-Amz-Content-SHA256: abcdef+ X-Amz-Date: 20091028T223200Z+body:+ ''
+ fixture/GetRateBasedRuleManagedKeysResponse.proto view
+ fixture/GetRateBasedRuleResponse.proto view
+ fixture/GetRegexMatchSet.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/waf/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: waf.us-east-1.amazonaws.com+ Content-Type: application/x-www-form-urlencoded; charset=utf-8+ X-Amz-Content-SHA256: abcdef+ X-Amz-Date: 20091028T223200Z+body:+ ''
+ fixture/GetRegexMatchSetResponse.proto view
+ fixture/GetRegexPatternSet.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/waf/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: waf.us-east-1.amazonaws.com+ Content-Type: application/x-www-form-urlencoded; charset=utf-8+ X-Amz-Content-SHA256: abcdef+ X-Amz-Date: 20091028T223200Z+body:+ ''
+ fixture/GetRegexPatternSetResponse.proto view
+ fixture/ListGeoMatchSets.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/waf/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: waf.us-east-1.amazonaws.com+ Content-Type: application/x-www-form-urlencoded; charset=utf-8+ X-Amz-Content-SHA256: abcdef+ X-Amz-Date: 20091028T223200Z+body:+ ''
+ fixture/ListGeoMatchSetsResponse.proto view
+ fixture/ListRateBasedRules.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/waf/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: waf.us-east-1.amazonaws.com+ Content-Type: application/x-www-form-urlencoded; charset=utf-8+ X-Amz-Content-SHA256: abcdef+ X-Amz-Date: 20091028T223200Z+body:+ ''
+ fixture/ListRateBasedRulesResponse.proto view
+ fixture/ListRegexMatchSets.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/waf/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: waf.us-east-1.amazonaws.com+ Content-Type: application/x-www-form-urlencoded; charset=utf-8+ X-Amz-Content-SHA256: abcdef+ X-Amz-Date: 20091028T223200Z+body:+ ''
+ fixture/ListRegexMatchSetsResponse.proto view
+ fixture/ListRegexPatternSets.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/waf/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: waf.us-east-1.amazonaws.com+ Content-Type: application/x-www-form-urlencoded; charset=utf-8+ X-Amz-Content-SHA256: abcdef+ X-Amz-Date: 20091028T223200Z+body:+ ''
+ fixture/ListRegexPatternSetsResponse.proto view
+ fixture/UpdateGeoMatchSet.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/waf/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: waf.us-east-1.amazonaws.com+ Content-Type: application/x-www-form-urlencoded; charset=utf-8+ X-Amz-Content-SHA256: abcdef+ X-Amz-Date: 20091028T223200Z+body:+ ''
+ fixture/UpdateGeoMatchSetResponse.proto view
+ fixture/UpdateRateBasedRule.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/waf/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: waf.us-east-1.amazonaws.com+ Content-Type: application/x-www-form-urlencoded; charset=utf-8+ X-Amz-Content-SHA256: abcdef+ X-Amz-Date: 20091028T223200Z+body:+ ''
+ fixture/UpdateRateBasedRuleResponse.proto view
+ fixture/UpdateRegexMatchSet.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/waf/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: waf.us-east-1.amazonaws.com+ Content-Type: application/x-www-form-urlencoded; charset=utf-8+ X-Amz-Content-SHA256: abcdef+ X-Amz-Date: 20091028T223200Z+body:+ ''
+ fixture/UpdateRegexMatchSetResponse.proto view
+ fixture/UpdateRegexPatternSet.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/waf/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: waf.us-east-1.amazonaws.com+ Content-Type: application/x-www-form-urlencoded; charset=utf-8+ X-Amz-Content-SHA256: abcdef+ X-Amz-Date: 20091028T223200Z+body:+ ''
+ fixture/UpdateRegexPatternSetResponse.proto view
gen/Network/AWS/WAF.hs view
@@ -5,13 +5,13 @@ -- | -- Module : Network.AWS.WAF--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) ----- This is the /AWS WAF API Reference/ . This guide is for developers who need detailed information about the AWS WAF API actions, data types, and errors. For detailed information about AWS WAF features and an overview of how to use the AWS WAF API, see the <http://docs.aws.amazon.com/waf/latest/developerguide/ AWS WAF Developer Guide> .+-- This is the /AWS WAF API Reference/ for using AWS WAF with Amazon CloudFront. The AWS WAF actions and data types listed in the reference are available for protecting Amazon CloudFront distributions. You can use these actions and data types via the endpoint /waf.amazonaws.com/ . This guide is for developers who need detailed information about the AWS WAF API actions, data types, and errors. For detailed information about AWS WAF features and an overview of how to use the AWS WAF API, see the <http://docs.aws.amazon.com/waf/latest/developerguide/ AWS WAF Developer Guide> . -- -- module Network.AWS.WAF@@ -28,6 +28,9 @@ -- ** WAFReferencedItemException , _WAFReferencedItemException + -- ** WAFInvalidRegexPatternException+ , _WAFInvalidRegexPatternException+ -- ** WAFInvalidOperationException , _WAFInvalidOperationException @@ -61,9 +64,18 @@ -- * Operations -- $operations + -- ** ListRateBasedRules+ , module Network.AWS.WAF.ListRateBasedRules+ -- ** GetSizeConstraintSet , module Network.AWS.WAF.GetSizeConstraintSet + -- ** DeleteRateBasedRule+ , module Network.AWS.WAF.DeleteRateBasedRule++ -- ** UpdateRateBasedRule+ , module Network.AWS.WAF.UpdateRateBasedRule+ -- ** UpdateRule , module Network.AWS.WAF.UpdateRule @@ -94,9 +106,21 @@ -- ** CreateWebACL , module Network.AWS.WAF.CreateWebACL + -- ** GetGeoMatchSet+ , module Network.AWS.WAF.GetGeoMatchSet+ -- ** ListByteMatchSets (Paginated) , module Network.AWS.WAF.ListByteMatchSets + -- ** ListGeoMatchSets+ , module Network.AWS.WAF.ListGeoMatchSets++ -- ** DeleteRegexMatchSet+ , module Network.AWS.WAF.DeleteRegexMatchSet++ -- ** UpdateRegexMatchSet+ , module Network.AWS.WAF.UpdateRegexMatchSet+ -- ** GetIPSet , module Network.AWS.WAF.GetIPSet @@ -115,6 +139,9 @@ -- ** ListXSSMatchSets (Paginated) , module Network.AWS.WAF.ListXSSMatchSets + -- ** CreateGeoMatchSet+ , module Network.AWS.WAF.CreateGeoMatchSet+ -- ** GetChangeToken , module Network.AWS.WAF.GetChangeToken @@ -142,6 +169,12 @@ -- ** DeleteByteMatchSet , module Network.AWS.WAF.DeleteByteMatchSet + -- ** GetRateBasedRuleManagedKeys+ , module Network.AWS.WAF.GetRateBasedRuleManagedKeys++ -- ** GetRegexMatchSet+ , module Network.AWS.WAF.GetRegexMatchSet+ -- ** DeleteIPSet , module Network.AWS.WAF.DeleteIPSet @@ -151,24 +184,57 @@ -- ** ListIPSets (Paginated) , module Network.AWS.WAF.ListIPSets + -- ** ListRegexMatchSets+ , module Network.AWS.WAF.ListRegexMatchSets+ -- ** CreateXSSMatchSet , module Network.AWS.WAF.CreateXSSMatchSet + -- ** DeleteGeoMatchSet+ , module Network.AWS.WAF.DeleteGeoMatchSet++ -- ** UpdateGeoMatchSet+ , module Network.AWS.WAF.UpdateGeoMatchSet+ -- ** GetByteMatchSet , module Network.AWS.WAF.GetByteMatchSet + -- ** CreateRegexMatchSet+ , module Network.AWS.WAF.CreateRegexMatchSet++ -- ** GetRateBasedRule+ , module Network.AWS.WAF.GetRateBasedRule++ -- ** CreateRegexPatternSet+ , module Network.AWS.WAF.CreateRegexPatternSet+ -- ** DeleteSizeConstraintSet , module Network.AWS.WAF.DeleteSizeConstraintSet -- ** UpdateSizeConstraintSet , module Network.AWS.WAF.UpdateSizeConstraintSet + -- ** DeleteRegexPatternSet+ , module Network.AWS.WAF.DeleteRegexPatternSet++ -- ** UpdateRegexPatternSet+ , module Network.AWS.WAF.UpdateRegexPatternSet+ -- ** CreateSizeConstraintSet , module Network.AWS.WAF.CreateSizeConstraintSet + -- ** ListRegexPatternSets+ , module Network.AWS.WAF.ListRegexPatternSets+ -- ** ListSqlInjectionMatchSets (Paginated) , module Network.AWS.WAF.ListSqlInjectionMatchSets + -- ** GetRegexPatternSet+ , module Network.AWS.WAF.GetRegexPatternSet++ -- ** CreateRateBasedRule+ , module Network.AWS.WAF.CreateRateBasedRule+ -- ** DeleteSqlInjectionMatchSet , module Network.AWS.WAF.DeleteSqlInjectionMatchSet @@ -186,6 +252,12 @@ -- ** ComparisonOperator , ComparisonOperator (..) + -- ** GeoMatchConstraintType+ , GeoMatchConstraintType (..)++ -- ** GeoMatchConstraintValue+ , GeoMatchConstraintValue (..)+ -- ** IPSetDescriptorType , IPSetDescriptorType (..) @@ -198,15 +270,22 @@ -- ** PredicateType , PredicateType (..) + -- ** RateKey+ , RateKey (..)+ -- ** TextTransformation , TextTransformation (..) -- ** WafActionType , WafActionType (..) + -- ** WafRuleType+ , WafRuleType (..)+ -- ** ActivatedRule , ActivatedRule , activatedRule+ , arType , arPriority , arRuleId , arAction@@ -244,6 +323,31 @@ , ftmData , ftmType + -- ** GeoMatchConstraint+ , GeoMatchConstraint+ , geoMatchConstraint+ , gmcType+ , gmcValue++ -- ** GeoMatchSet+ , GeoMatchSet+ , geoMatchSet+ , gmsName+ , gmsGeoMatchSetId+ , gmsGeoMatchConstraints++ -- ** GeoMatchSetSummary+ , GeoMatchSetSummary+ , geoMatchSetSummary+ , gmssGeoMatchSetId+ , gmssName++ -- ** GeoMatchSetUpdate+ , GeoMatchSetUpdate+ , geoMatchSetUpdate+ , gmsuAction+ , gmsuGeoMatchConstraint+ -- ** HTTPHeader , HTTPHeader , hTTPHeader@@ -292,6 +396,61 @@ , pType , pDataId + -- ** RateBasedRule+ , RateBasedRule+ , rateBasedRule+ , rbrMetricName+ , rbrName+ , rbrRuleId+ , rbrMatchPredicates+ , rbrRateKey+ , rbrRateLimit++ -- ** RegexMatchSet+ , RegexMatchSet+ , regexMatchSet+ , rmsName+ , rmsRegexMatchTuples+ , rmsRegexMatchSetId++ -- ** RegexMatchSetSummary+ , RegexMatchSetSummary+ , regexMatchSetSummary+ , rmssRegexMatchSetId+ , rmssName++ -- ** RegexMatchSetUpdate+ , RegexMatchSetUpdate+ , regexMatchSetUpdate+ , rmsuAction+ , rmsuRegexMatchTuple++ -- ** RegexMatchTuple+ , RegexMatchTuple+ , regexMatchTuple+ , rmtFieldToMatch+ , rmtTextTransformation+ , rmtRegexPatternSetId++ -- ** RegexPatternSet+ , RegexPatternSet+ , regexPatternSet+ , rpsName+ , rpsRegexPatternSetId+ , rpsRegexPatternStrings++ -- ** RegexPatternSetSummary+ , RegexPatternSetSummary+ , regexPatternSetSummary+ , rpssRegexPatternSetId+ , rpssName++ -- ** RegexPatternSetUpdate+ , RegexPatternSetUpdate+ , regexPatternSetUpdate+ , rpsuAction+ , rpsuRegexPatternString+ -- ** Rule , Rule , rule@@ -430,46 +589,67 @@ , xmtTextTransformation ) where -import Network.AWS.WAF.CreateByteMatchSet-import Network.AWS.WAF.CreateIPSet-import Network.AWS.WAF.CreateRule-import Network.AWS.WAF.CreateSizeConstraintSet-import Network.AWS.WAF.CreateSqlInjectionMatchSet-import Network.AWS.WAF.CreateWebACL-import Network.AWS.WAF.CreateXSSMatchSet-import Network.AWS.WAF.DeleteByteMatchSet-import Network.AWS.WAF.DeleteIPSet-import Network.AWS.WAF.DeleteRule-import Network.AWS.WAF.DeleteSizeConstraintSet-import Network.AWS.WAF.DeleteSqlInjectionMatchSet-import Network.AWS.WAF.DeleteWebACL-import Network.AWS.WAF.DeleteXSSMatchSet-import Network.AWS.WAF.GetByteMatchSet-import Network.AWS.WAF.GetChangeToken-import Network.AWS.WAF.GetChangeTokenStatus-import Network.AWS.WAF.GetIPSet-import Network.AWS.WAF.GetRule-import Network.AWS.WAF.GetSampledRequests-import Network.AWS.WAF.GetSizeConstraintSet-import Network.AWS.WAF.GetSqlInjectionMatchSet-import Network.AWS.WAF.GetWebACL-import Network.AWS.WAF.GetXSSMatchSet-import Network.AWS.WAF.ListByteMatchSets-import Network.AWS.WAF.ListIPSets-import Network.AWS.WAF.ListRules-import Network.AWS.WAF.ListSizeConstraintSets-import Network.AWS.WAF.ListSqlInjectionMatchSets-import Network.AWS.WAF.ListWebACLs-import Network.AWS.WAF.ListXSSMatchSets-import Network.AWS.WAF.Types-import Network.AWS.WAF.UpdateByteMatchSet-import Network.AWS.WAF.UpdateIPSet-import Network.AWS.WAF.UpdateRule-import Network.AWS.WAF.UpdateSizeConstraintSet-import Network.AWS.WAF.UpdateSqlInjectionMatchSet-import Network.AWS.WAF.UpdateWebACL-import Network.AWS.WAF.UpdateXSSMatchSet-import Network.AWS.WAF.Waiters+import Network.AWS.WAF.CreateByteMatchSet+import Network.AWS.WAF.CreateGeoMatchSet+import Network.AWS.WAF.CreateIPSet+import Network.AWS.WAF.CreateRateBasedRule+import Network.AWS.WAF.CreateRegexMatchSet+import Network.AWS.WAF.CreateRegexPatternSet+import Network.AWS.WAF.CreateRule+import Network.AWS.WAF.CreateSizeConstraintSet+import Network.AWS.WAF.CreateSqlInjectionMatchSet+import Network.AWS.WAF.CreateWebACL+import Network.AWS.WAF.CreateXSSMatchSet+import Network.AWS.WAF.DeleteByteMatchSet+import Network.AWS.WAF.DeleteGeoMatchSet+import Network.AWS.WAF.DeleteIPSet+import Network.AWS.WAF.DeleteRateBasedRule+import Network.AWS.WAF.DeleteRegexMatchSet+import Network.AWS.WAF.DeleteRegexPatternSet+import Network.AWS.WAF.DeleteRule+import Network.AWS.WAF.DeleteSizeConstraintSet+import Network.AWS.WAF.DeleteSqlInjectionMatchSet+import Network.AWS.WAF.DeleteWebACL+import Network.AWS.WAF.DeleteXSSMatchSet+import Network.AWS.WAF.GetByteMatchSet+import Network.AWS.WAF.GetChangeToken+import Network.AWS.WAF.GetChangeTokenStatus+import Network.AWS.WAF.GetGeoMatchSet+import Network.AWS.WAF.GetIPSet+import Network.AWS.WAF.GetRateBasedRule+import Network.AWS.WAF.GetRateBasedRuleManagedKeys+import Network.AWS.WAF.GetRegexMatchSet+import Network.AWS.WAF.GetRegexPatternSet+import Network.AWS.WAF.GetRule+import Network.AWS.WAF.GetSampledRequests+import Network.AWS.WAF.GetSizeConstraintSet+import Network.AWS.WAF.GetSqlInjectionMatchSet+import Network.AWS.WAF.GetWebACL+import Network.AWS.WAF.GetXSSMatchSet+import Network.AWS.WAF.ListByteMatchSets+import Network.AWS.WAF.ListGeoMatchSets+import Network.AWS.WAF.ListIPSets+import Network.AWS.WAF.ListRateBasedRules+import Network.AWS.WAF.ListRegexMatchSets+import Network.AWS.WAF.ListRegexPatternSets+import Network.AWS.WAF.ListRules+import Network.AWS.WAF.ListSizeConstraintSets+import Network.AWS.WAF.ListSqlInjectionMatchSets+import Network.AWS.WAF.ListWebACLs+import Network.AWS.WAF.ListXSSMatchSets+import Network.AWS.WAF.Types+import Network.AWS.WAF.UpdateByteMatchSet+import Network.AWS.WAF.UpdateGeoMatchSet+import Network.AWS.WAF.UpdateIPSet+import Network.AWS.WAF.UpdateRateBasedRule+import Network.AWS.WAF.UpdateRegexMatchSet+import Network.AWS.WAF.UpdateRegexPatternSet+import Network.AWS.WAF.UpdateRule+import Network.AWS.WAF.UpdateSizeConstraintSet+import Network.AWS.WAF.UpdateSqlInjectionMatchSet+import Network.AWS.WAF.UpdateWebACL+import Network.AWS.WAF.UpdateXSSMatchSet+import Network.AWS.WAF.Waiters {- $errors Error matchers are designed for use with the functions provided by
gen/Network/AWS/WAF/CreateByteMatchSet.hs view
@@ -12,9 +12,9 @@ -- | -- Module : Network.AWS.WAF.CreateByteMatchSet--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) --@@ -53,19 +53,20 @@ , cbmsrsResponseStatus ) where -import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response-import Network.AWS.WAF.Types-import Network.AWS.WAF.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.WAF.Types+import Network.AWS.WAF.Types.Product -- | /See:/ 'createByteMatchSet' smart constructor. data CreateByteMatchSet = CreateByteMatchSet'- { _cbmsName :: !Text- , _cbmsChangeToken :: !Text- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _cbmsName :: !Text+ , _cbmsChangeToken :: !Text+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateByteMatchSet' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -78,11 +79,9 @@ -> Text -- ^ 'cbmsChangeToken' -> CreateByteMatchSet createByteMatchSet pName_ pChangeToken_ =- CreateByteMatchSet'- { _cbmsName = pName_- , _cbmsChangeToken = pChangeToken_- }+ CreateByteMatchSet' {_cbmsName = pName_, _cbmsChangeToken = pChangeToken_} + -- | A friendly name or description of the 'ByteMatchSet' . You can't change @Name@ after you create a @ByteMatchSet@ . cbmsName :: Lens' CreateByteMatchSet Text cbmsName = lens _cbmsName (\ s a -> s{_cbmsName = a});@@ -102,9 +101,9 @@ (x .?> "ByteMatchSet") <*> (x .?> "ChangeToken") <*> (pure (fromEnum s))) -instance Hashable CreateByteMatchSet+instance Hashable CreateByteMatchSet where -instance NFData CreateByteMatchSet+instance NFData CreateByteMatchSet where instance ToHeaders CreateByteMatchSet where toHeaders@@ -130,11 +129,12 @@ -- | /See:/ 'createByteMatchSetResponse' smart constructor. data CreateByteMatchSetResponse = CreateByteMatchSetResponse'- { _cbmsrsByteMatchSet :: !(Maybe ByteMatchSet)- , _cbmsrsChangeToken :: !(Maybe Text)- , _cbmsrsResponseStatus :: !Int- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _cbmsrsByteMatchSet :: !(Maybe ByteMatchSet)+ , _cbmsrsChangeToken :: !(Maybe Text)+ , _cbmsrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateByteMatchSetResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -148,12 +148,13 @@ :: Int -- ^ 'cbmsrsResponseStatus' -> CreateByteMatchSetResponse createByteMatchSetResponse pResponseStatus_ =- CreateByteMatchSetResponse'- { _cbmsrsByteMatchSet = Nothing- , _cbmsrsChangeToken = Nothing- , _cbmsrsResponseStatus = pResponseStatus_- }+ CreateByteMatchSetResponse'+ { _cbmsrsByteMatchSet = Nothing+ , _cbmsrsChangeToken = Nothing+ , _cbmsrsResponseStatus = pResponseStatus_+ } + -- | A 'ByteMatchSet' that contains no @ByteMatchTuple@ objects. cbmsrsByteMatchSet :: Lens' CreateByteMatchSetResponse (Maybe ByteMatchSet) cbmsrsByteMatchSet = lens _cbmsrsByteMatchSet (\ s a -> s{_cbmsrsByteMatchSet = a});@@ -166,4 +167,4 @@ cbmsrsResponseStatus :: Lens' CreateByteMatchSetResponse Int cbmsrsResponseStatus = lens _cbmsrsResponseStatus (\ s a -> s{_cbmsrsResponseStatus = a}); -instance NFData CreateByteMatchSetResponse+instance NFData CreateByteMatchSetResponse where
+ gen/Network/AWS/WAF/CreateGeoMatchSet.hs view
@@ -0,0 +1,169 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Network.AWS.WAF.CreateGeoMatchSet+-- Copyright : (c) 2013-2017 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates an 'GeoMatchSet' , which you use to specify which web requests you want to allow or block based on the country that the requests originate from. For example, if you're receiving a lot of requests from one or more countries and you want to block the requests, you can create an @GeoMatchSet@ that contains those countries and then configure AWS WAF to block the requests.+--+--+-- To create and configure a @GeoMatchSet@ , perform the following steps:+--+-- * Use 'GetChangeToken' to get the change token that you provide in the @ChangeToken@ parameter of a @CreateGeoMatchSet@ request.+--+-- * Submit a @CreateGeoMatchSet@ request.+--+-- * Use @GetChangeToken@ to get the change token that you provide in the @ChangeToken@ parameter of an 'UpdateGeoMatchSet' request.+--+-- * Submit an @UpdateGeoMatchSetSet@ request to specify the countries that you want AWS WAF to watch for.+--+--+--+-- For more information about how to use the AWS WAF API to allow or block HTTP requests, see the <http://docs.aws.amazon.com/waf/latest/developerguide/ AWS WAF Developer Guide> .+--+module Network.AWS.WAF.CreateGeoMatchSet+ (+ -- * Creating a Request+ createGeoMatchSet+ , CreateGeoMatchSet+ -- * Request Lenses+ , cgmsName+ , cgmsChangeToken++ -- * Destructuring the Response+ , createGeoMatchSetResponse+ , CreateGeoMatchSetResponse+ -- * Response Lenses+ , cgmsrsGeoMatchSet+ , cgmsrsChangeToken+ , cgmsrsResponseStatus+ ) where++import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.WAF.Types+import Network.AWS.WAF.Types.Product++-- | /See:/ 'createGeoMatchSet' smart constructor.+data CreateGeoMatchSet = CreateGeoMatchSet'+ { _cgmsName :: !Text+ , _cgmsChangeToken :: !Text+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CreateGeoMatchSet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cgmsName' - A friendly name or description of the 'GeoMatchSet' . You can't change @Name@ after you create the @GeoMatchSet@ .+--+-- * 'cgmsChangeToken' - The value returned by the most recent call to 'GetChangeToken' .+createGeoMatchSet+ :: Text -- ^ 'cgmsName'+ -> Text -- ^ 'cgmsChangeToken'+ -> CreateGeoMatchSet+createGeoMatchSet pName_ pChangeToken_ =+ CreateGeoMatchSet' {_cgmsName = pName_, _cgmsChangeToken = pChangeToken_}+++-- | A friendly name or description of the 'GeoMatchSet' . You can't change @Name@ after you create the @GeoMatchSet@ .+cgmsName :: Lens' CreateGeoMatchSet Text+cgmsName = lens _cgmsName (\ s a -> s{_cgmsName = a});++-- | The value returned by the most recent call to 'GetChangeToken' .+cgmsChangeToken :: Lens' CreateGeoMatchSet Text+cgmsChangeToken = lens _cgmsChangeToken (\ s a -> s{_cgmsChangeToken = a});++instance AWSRequest CreateGeoMatchSet where+ type Rs CreateGeoMatchSet = CreateGeoMatchSetResponse+ request = postJSON waf+ response+ = receiveJSON+ (\ s h x ->+ CreateGeoMatchSetResponse' <$>+ (x .?> "GeoMatchSet") <*> (x .?> "ChangeToken") <*>+ (pure (fromEnum s)))++instance Hashable CreateGeoMatchSet where++instance NFData CreateGeoMatchSet where++instance ToHeaders CreateGeoMatchSet where+ toHeaders+ = const+ (mconcat+ ["X-Amz-Target" =#+ ("AWSWAF_20150824.CreateGeoMatchSet" :: ByteString),+ "Content-Type" =#+ ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON CreateGeoMatchSet where+ toJSON CreateGeoMatchSet'{..}+ = object+ (catMaybes+ [Just ("Name" .= _cgmsName),+ Just ("ChangeToken" .= _cgmsChangeToken)])++instance ToPath CreateGeoMatchSet where+ toPath = const "/"++instance ToQuery CreateGeoMatchSet where+ toQuery = const mempty++-- | /See:/ 'createGeoMatchSetResponse' smart constructor.+data CreateGeoMatchSetResponse = CreateGeoMatchSetResponse'+ { _cgmsrsGeoMatchSet :: !(Maybe GeoMatchSet)+ , _cgmsrsChangeToken :: !(Maybe Text)+ , _cgmsrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CreateGeoMatchSetResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cgmsrsGeoMatchSet' - The 'GeoMatchSet' returned in the @CreateGeoMatchSet@ response. The @GeoMatchSet@ contains no @GeoMatchConstraints@ .+--+-- * 'cgmsrsChangeToken' - The @ChangeToken@ that you used to submit the @CreateGeoMatchSet@ request. You can also use this value to query the status of the request. For more information, see 'GetChangeTokenStatus' .+--+-- * 'cgmsrsResponseStatus' - -- | The response status code.+createGeoMatchSetResponse+ :: Int -- ^ 'cgmsrsResponseStatus'+ -> CreateGeoMatchSetResponse+createGeoMatchSetResponse pResponseStatus_ =+ CreateGeoMatchSetResponse'+ { _cgmsrsGeoMatchSet = Nothing+ , _cgmsrsChangeToken = Nothing+ , _cgmsrsResponseStatus = pResponseStatus_+ }+++-- | The 'GeoMatchSet' returned in the @CreateGeoMatchSet@ response. The @GeoMatchSet@ contains no @GeoMatchConstraints@ .+cgmsrsGeoMatchSet :: Lens' CreateGeoMatchSetResponse (Maybe GeoMatchSet)+cgmsrsGeoMatchSet = lens _cgmsrsGeoMatchSet (\ s a -> s{_cgmsrsGeoMatchSet = a});++-- | The @ChangeToken@ that you used to submit the @CreateGeoMatchSet@ request. You can also use this value to query the status of the request. For more information, see 'GetChangeTokenStatus' .+cgmsrsChangeToken :: Lens' CreateGeoMatchSetResponse (Maybe Text)+cgmsrsChangeToken = lens _cgmsrsChangeToken (\ s a -> s{_cgmsrsChangeToken = a});++-- | -- | The response status code.+cgmsrsResponseStatus :: Lens' CreateGeoMatchSetResponse Int+cgmsrsResponseStatus = lens _cgmsrsResponseStatus (\ s a -> s{_cgmsrsResponseStatus = a});++instance NFData CreateGeoMatchSetResponse where
gen/Network/AWS/WAF/CreateIPSet.hs view
@@ -12,9 +12,9 @@ -- | -- Module : Network.AWS.WAF.CreateIPSet--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) --@@ -53,19 +53,20 @@ , cisrsResponseStatus ) where -import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response-import Network.AWS.WAF.Types-import Network.AWS.WAF.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.WAF.Types+import Network.AWS.WAF.Types.Product -- | /See:/ 'createIPSet' smart constructor. data CreateIPSet = CreateIPSet'- { _cisName :: !Text- , _cisChangeToken :: !Text- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _cisName :: !Text+ , _cisChangeToken :: !Text+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateIPSet' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -78,11 +79,9 @@ -> Text -- ^ 'cisChangeToken' -> CreateIPSet createIPSet pName_ pChangeToken_ =- CreateIPSet'- { _cisName = pName_- , _cisChangeToken = pChangeToken_- }+ CreateIPSet' {_cisName = pName_, _cisChangeToken = pChangeToken_} + -- | A friendly name or description of the 'IPSet' . You can't change @Name@ after you create the @IPSet@ . cisName :: Lens' CreateIPSet Text cisName = lens _cisName (\ s a -> s{_cisName = a});@@ -101,9 +100,9 @@ (x .?> "ChangeToken") <*> (x .?> "IPSet") <*> (pure (fromEnum s))) -instance Hashable CreateIPSet+instance Hashable CreateIPSet where -instance NFData CreateIPSet+instance NFData CreateIPSet where instance ToHeaders CreateIPSet where toHeaders@@ -129,11 +128,12 @@ -- | /See:/ 'createIPSetResponse' smart constructor. data CreateIPSetResponse = CreateIPSetResponse'- { _cisrsChangeToken :: !(Maybe Text)- , _cisrsIPSet :: !(Maybe IPSet)- , _cisrsResponseStatus :: !Int- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _cisrsChangeToken :: !(Maybe Text)+ , _cisrsIPSet :: !(Maybe IPSet)+ , _cisrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateIPSetResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -147,12 +147,13 @@ :: Int -- ^ 'cisrsResponseStatus' -> CreateIPSetResponse createIPSetResponse pResponseStatus_ =- CreateIPSetResponse'- { _cisrsChangeToken = Nothing- , _cisrsIPSet = Nothing- , _cisrsResponseStatus = pResponseStatus_- }+ CreateIPSetResponse'+ { _cisrsChangeToken = Nothing+ , _cisrsIPSet = Nothing+ , _cisrsResponseStatus = pResponseStatus_+ } + -- | The @ChangeToken@ that you used to submit the @CreateIPSet@ request. You can also use this value to query the status of the request. For more information, see 'GetChangeTokenStatus' . cisrsChangeToken :: Lens' CreateIPSetResponse (Maybe Text) cisrsChangeToken = lens _cisrsChangeToken (\ s a -> s{_cisrsChangeToken = a});@@ -165,4 +166,4 @@ cisrsResponseStatus :: Lens' CreateIPSetResponse Int cisrsResponseStatus = lens _cisrsResponseStatus (\ s a -> s{_cisrsResponseStatus = a}); -instance NFData CreateIPSetResponse+instance NFData CreateIPSetResponse where
+ gen/Network/AWS/WAF/CreateRateBasedRule.hs view
@@ -0,0 +1,237 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Network.AWS.WAF.CreateRateBasedRule+-- Copyright : (c) 2013-2017 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a 'RateBasedRule' . The @RateBasedRule@ contains a @RateLimit@ , which specifies the maximum number of requests that AWS WAF allows from a specified IP address in a five-minute period. The @RateBasedRule@ also contains the @IPSet@ objects, @ByteMatchSet@ objects, and other predicates that identify the requests that you want to count or block if these requests exceed the @RateLimit@ .+--+--+-- If you add more than one predicate to a @RateBasedRule@ , a request not only must exceed the @RateLimit@ , but it also must match all the specifications to be counted or blocked. For example, suppose you add the following to a @RateBasedRule@ :+--+-- * An @IPSet@ that matches the IP address @192.0.2.44/32@+--+-- * A @ByteMatchSet@ that matches @BadBot@ in the @User-Agent@ header+--+--+--+-- Further, you specify a @RateLimit@ of 15,000.+--+-- You then add the @RateBasedRule@ to a @WebACL@ and specify that you want to block requests that meet the conditions in the rule. For a request to be blocked, it must come from the IP address 192.0.2.44 /and/ the @User-Agent@ header in the request must contain the value @BadBot@ . Further, requests that match these two conditions must be received at a rate of more than 15,000 requests every five minutes. If both conditions are met and the rate is exceeded, AWS WAF blocks the requests. If the rate drops below 15,000 for a five-minute period, AWS WAF no longer blocks the requests.+--+-- As a second example, suppose you want to limit requests to a particular page on your site. To do this, you could add the following to a @RateBasedRule@ :+--+-- * A @ByteMatchSet@ with @FieldToMatch@ of @URI@+--+-- * A @PositionalConstraint@ of @STARTS_WITH@+--+-- * A @TargetString@ of @login@+--+--+--+-- Further, you specify a @RateLimit@ of 15,000.+--+-- By adding this @RateBasedRule@ to a @WebACL@ , you could limit requests to your login page without affecting the rest of your site.+--+-- To create and configure a @RateBasedRule@ , perform the following steps:+--+-- * Create and update the predicates that you want to include in the rule. For more information, see 'CreateByteMatchSet' , 'CreateIPSet' , and 'CreateSqlInjectionMatchSet' .+--+-- * Use 'GetChangeToken' to get the change token that you provide in the @ChangeToken@ parameter of a @CreateRule@ request.+--+-- * Submit a @CreateRateBasedRule@ request.+--+-- * Use @GetChangeToken@ to get the change token that you provide in the @ChangeToken@ parameter of an 'UpdateRule' request.+--+-- * Submit an @UpdateRateBasedRule@ request to specify the predicates that you want to include in the rule.+--+-- * Create and update a @WebACL@ that contains the @RateBasedRule@ . For more information, see 'CreateWebACL' .+--+--+--+-- For more information about how to use the AWS WAF API to allow or block HTTP requests, see the <http://docs.aws.amazon.com/waf/latest/developerguide/ AWS WAF Developer Guide> .+--+module Network.AWS.WAF.CreateRateBasedRule+ (+ -- * Creating a Request+ createRateBasedRule+ , CreateRateBasedRule+ -- * Request Lenses+ , crbrName+ , crbrMetricName+ , crbrRateKey+ , crbrRateLimit+ , crbrChangeToken++ -- * Destructuring the Response+ , createRateBasedRuleResponse+ , CreateRateBasedRuleResponse+ -- * Response Lenses+ , crbrrsRule+ , crbrrsChangeToken+ , crbrrsResponseStatus+ ) where++import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.WAF.Types+import Network.AWS.WAF.Types.Product++-- | /See:/ 'createRateBasedRule' smart constructor.+data CreateRateBasedRule = CreateRateBasedRule'+ { _crbrName :: !Text+ , _crbrMetricName :: !Text+ , _crbrRateKey :: !RateKey+ , _crbrRateLimit :: !Nat+ , _crbrChangeToken :: !Text+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CreateRateBasedRule' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'crbrName' - A friendly name or description of the 'RateBasedRule' . You can't change the name of a @RateBasedRule@ after you create it.+--+-- * 'crbrMetricName' - A friendly name or description for the metrics for this @RateBasedRule@ . The name can contain only alphanumeric characters (A-Z, a-z, 0-9); the name can't contain whitespace. You can't change the name of the metric after you create the @RateBasedRule@ .+--+-- * 'crbrRateKey' - The field that AWS WAF uses to determine if requests are likely arriving from a single source and thus subject to rate monitoring. The only valid value for @RateKey@ is @IP@ . @IP@ indicates that requests that arrive from the same IP address are subject to the @RateLimit@ that is specified in the @RateBasedRule@ .+--+-- * 'crbrRateLimit' - The maximum number of requests, which have an identical value in the field that is specified by @RateKey@ , allowed in a five-minute period. If the number of requests exceeds the @RateLimit@ and the other predicates specified in the rule are also met, AWS WAF triggers the action that is specified for this rule.+--+-- * 'crbrChangeToken' - The @ChangeToken@ that you used to submit the @CreateRateBasedRule@ request. You can also use this value to query the status of the request. For more information, see 'GetChangeTokenStatus' .+createRateBasedRule+ :: Text -- ^ 'crbrName'+ -> Text -- ^ 'crbrMetricName'+ -> RateKey -- ^ 'crbrRateKey'+ -> Natural -- ^ 'crbrRateLimit'+ -> Text -- ^ 'crbrChangeToken'+ -> CreateRateBasedRule+createRateBasedRule pName_ pMetricName_ pRateKey_ pRateLimit_ pChangeToken_ =+ CreateRateBasedRule'+ { _crbrName = pName_+ , _crbrMetricName = pMetricName_+ , _crbrRateKey = pRateKey_+ , _crbrRateLimit = _Nat # pRateLimit_+ , _crbrChangeToken = pChangeToken_+ }+++-- | A friendly name or description of the 'RateBasedRule' . You can't change the name of a @RateBasedRule@ after you create it.+crbrName :: Lens' CreateRateBasedRule Text+crbrName = lens _crbrName (\ s a -> s{_crbrName = a});++-- | A friendly name or description for the metrics for this @RateBasedRule@ . The name can contain only alphanumeric characters (A-Z, a-z, 0-9); the name can't contain whitespace. You can't change the name of the metric after you create the @RateBasedRule@ .+crbrMetricName :: Lens' CreateRateBasedRule Text+crbrMetricName = lens _crbrMetricName (\ s a -> s{_crbrMetricName = a});++-- | The field that AWS WAF uses to determine if requests are likely arriving from a single source and thus subject to rate monitoring. The only valid value for @RateKey@ is @IP@ . @IP@ indicates that requests that arrive from the same IP address are subject to the @RateLimit@ that is specified in the @RateBasedRule@ .+crbrRateKey :: Lens' CreateRateBasedRule RateKey+crbrRateKey = lens _crbrRateKey (\ s a -> s{_crbrRateKey = a});++-- | The maximum number of requests, which have an identical value in the field that is specified by @RateKey@ , allowed in a five-minute period. If the number of requests exceeds the @RateLimit@ and the other predicates specified in the rule are also met, AWS WAF triggers the action that is specified for this rule.+crbrRateLimit :: Lens' CreateRateBasedRule Natural+crbrRateLimit = lens _crbrRateLimit (\ s a -> s{_crbrRateLimit = a}) . _Nat;++-- | The @ChangeToken@ that you used to submit the @CreateRateBasedRule@ request. You can also use this value to query the status of the request. For more information, see 'GetChangeTokenStatus' .+crbrChangeToken :: Lens' CreateRateBasedRule Text+crbrChangeToken = lens _crbrChangeToken (\ s a -> s{_crbrChangeToken = a});++instance AWSRequest CreateRateBasedRule where+ type Rs CreateRateBasedRule =+ CreateRateBasedRuleResponse+ request = postJSON waf+ response+ = receiveJSON+ (\ s h x ->+ CreateRateBasedRuleResponse' <$>+ (x .?> "Rule") <*> (x .?> "ChangeToken") <*>+ (pure (fromEnum s)))++instance Hashable CreateRateBasedRule where++instance NFData CreateRateBasedRule where++instance ToHeaders CreateRateBasedRule where+ toHeaders+ = const+ (mconcat+ ["X-Amz-Target" =#+ ("AWSWAF_20150824.CreateRateBasedRule" ::+ ByteString),+ "Content-Type" =#+ ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON CreateRateBasedRule where+ toJSON CreateRateBasedRule'{..}+ = object+ (catMaybes+ [Just ("Name" .= _crbrName),+ Just ("MetricName" .= _crbrMetricName),+ Just ("RateKey" .= _crbrRateKey),+ Just ("RateLimit" .= _crbrRateLimit),+ Just ("ChangeToken" .= _crbrChangeToken)])++instance ToPath CreateRateBasedRule where+ toPath = const "/"++instance ToQuery CreateRateBasedRule where+ toQuery = const mempty++-- | /See:/ 'createRateBasedRuleResponse' smart constructor.+data CreateRateBasedRuleResponse = CreateRateBasedRuleResponse'+ { _crbrrsRule :: !(Maybe RateBasedRule)+ , _crbrrsChangeToken :: !(Maybe Text)+ , _crbrrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CreateRateBasedRuleResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'crbrrsRule' - The 'RateBasedRule' that is returned in the @CreateRateBasedRule@ response.+--+-- * 'crbrrsChangeToken' - The @ChangeToken@ that you used to submit the @CreateRateBasedRule@ request. You can also use this value to query the status of the request. For more information, see 'GetChangeTokenStatus' .+--+-- * 'crbrrsResponseStatus' - -- | The response status code.+createRateBasedRuleResponse+ :: Int -- ^ 'crbrrsResponseStatus'+ -> CreateRateBasedRuleResponse+createRateBasedRuleResponse pResponseStatus_ =+ CreateRateBasedRuleResponse'+ { _crbrrsRule = Nothing+ , _crbrrsChangeToken = Nothing+ , _crbrrsResponseStatus = pResponseStatus_+ }+++-- | The 'RateBasedRule' that is returned in the @CreateRateBasedRule@ response.+crbrrsRule :: Lens' CreateRateBasedRuleResponse (Maybe RateBasedRule)+crbrrsRule = lens _crbrrsRule (\ s a -> s{_crbrrsRule = a});++-- | The @ChangeToken@ that you used to submit the @CreateRateBasedRule@ request. You can also use this value to query the status of the request. For more information, see 'GetChangeTokenStatus' .+crbrrsChangeToken :: Lens' CreateRateBasedRuleResponse (Maybe Text)+crbrrsChangeToken = lens _crbrrsChangeToken (\ s a -> s{_crbrrsChangeToken = a});++-- | -- | The response status code.+crbrrsResponseStatus :: Lens' CreateRateBasedRuleResponse Int+crbrrsResponseStatus = lens _crbrrsResponseStatus (\ s a -> s{_crbrrsResponseStatus = a});++instance NFData CreateRateBasedRuleResponse where
+ gen/Network/AWS/WAF/CreateRegexMatchSet.hs view
@@ -0,0 +1,171 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Network.AWS.WAF.CreateRegexMatchSet+-- Copyright : (c) 2013-2017 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a 'RegexMatchSet' . You then use 'UpdateRegexMatchSet' to identify the part of a web request that you want AWS WAF to inspect, such as the values of the @User-Agent@ header or the query string. For example, you can create a @RegexMatchSet@ that contains a @RegexMatchTuple@ that looks for any requests with @User-Agent@ headers that match a @RegexPatternSet@ with pattern @B[a@]dB[o0]t@ . You can then configure AWS WAF to reject those requests.+--+--+-- To create and configure a @RegexMatchSet@ , perform the following steps:+--+-- * Use 'GetChangeToken' to get the change token that you provide in the @ChangeToken@ parameter of a @CreateRegexMatchSet@ request.+--+-- * Submit a @CreateRegexMatchSet@ request.+--+-- * Use @GetChangeToken@ to get the change token that you provide in the @ChangeToken@ parameter of an @UpdateRegexMatchSet@ request.+--+-- * Submit an 'UpdateRegexMatchSet' request to specify the part of the request that you want AWS WAF to inspect (for example, the header or the URI) and the value, using a @RegexPatternSet@ , that you want AWS WAF to watch for.+--+--+--+-- For more information about how to use the AWS WAF API to allow or block HTTP requests, see the <http://docs.aws.amazon.com/waf/latest/developerguide/ AWS WAF Developer Guide> .+--+module Network.AWS.WAF.CreateRegexMatchSet+ (+ -- * Creating a Request+ createRegexMatchSet+ , CreateRegexMatchSet+ -- * Request Lenses+ , crmsName+ , crmsChangeToken++ -- * Destructuring the Response+ , createRegexMatchSetResponse+ , CreateRegexMatchSetResponse+ -- * Response Lenses+ , crmsrsRegexMatchSet+ , crmsrsChangeToken+ , crmsrsResponseStatus+ ) where++import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.WAF.Types+import Network.AWS.WAF.Types.Product++-- | /See:/ 'createRegexMatchSet' smart constructor.+data CreateRegexMatchSet = CreateRegexMatchSet'+ { _crmsName :: !Text+ , _crmsChangeToken :: !Text+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CreateRegexMatchSet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'crmsName' - A friendly name or description of the 'RegexMatchSet' . You can't change @Name@ after you create a @RegexMatchSet@ .+--+-- * 'crmsChangeToken' - The value returned by the most recent call to 'GetChangeToken' .+createRegexMatchSet+ :: Text -- ^ 'crmsName'+ -> Text -- ^ 'crmsChangeToken'+ -> CreateRegexMatchSet+createRegexMatchSet pName_ pChangeToken_ =+ CreateRegexMatchSet' {_crmsName = pName_, _crmsChangeToken = pChangeToken_}+++-- | A friendly name or description of the 'RegexMatchSet' . You can't change @Name@ after you create a @RegexMatchSet@ .+crmsName :: Lens' CreateRegexMatchSet Text+crmsName = lens _crmsName (\ s a -> s{_crmsName = a});++-- | The value returned by the most recent call to 'GetChangeToken' .+crmsChangeToken :: Lens' CreateRegexMatchSet Text+crmsChangeToken = lens _crmsChangeToken (\ s a -> s{_crmsChangeToken = a});++instance AWSRequest CreateRegexMatchSet where+ type Rs CreateRegexMatchSet =+ CreateRegexMatchSetResponse+ request = postJSON waf+ response+ = receiveJSON+ (\ s h x ->+ CreateRegexMatchSetResponse' <$>+ (x .?> "RegexMatchSet") <*> (x .?> "ChangeToken") <*>+ (pure (fromEnum s)))++instance Hashable CreateRegexMatchSet where++instance NFData CreateRegexMatchSet where++instance ToHeaders CreateRegexMatchSet where+ toHeaders+ = const+ (mconcat+ ["X-Amz-Target" =#+ ("AWSWAF_20150824.CreateRegexMatchSet" ::+ ByteString),+ "Content-Type" =#+ ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON CreateRegexMatchSet where+ toJSON CreateRegexMatchSet'{..}+ = object+ (catMaybes+ [Just ("Name" .= _crmsName),+ Just ("ChangeToken" .= _crmsChangeToken)])++instance ToPath CreateRegexMatchSet where+ toPath = const "/"++instance ToQuery CreateRegexMatchSet where+ toQuery = const mempty++-- | /See:/ 'createRegexMatchSetResponse' smart constructor.+data CreateRegexMatchSetResponse = CreateRegexMatchSetResponse'+ { _crmsrsRegexMatchSet :: !(Maybe RegexMatchSet)+ , _crmsrsChangeToken :: !(Maybe Text)+ , _crmsrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CreateRegexMatchSetResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'crmsrsRegexMatchSet' - A 'RegexMatchSet' that contains no @RegexMatchTuple@ objects.+--+-- * 'crmsrsChangeToken' - The @ChangeToken@ that you used to submit the @CreateRegexMatchSet@ request. You can also use this value to query the status of the request. For more information, see 'GetChangeTokenStatus' .+--+-- * 'crmsrsResponseStatus' - -- | The response status code.+createRegexMatchSetResponse+ :: Int -- ^ 'crmsrsResponseStatus'+ -> CreateRegexMatchSetResponse+createRegexMatchSetResponse pResponseStatus_ =+ CreateRegexMatchSetResponse'+ { _crmsrsRegexMatchSet = Nothing+ , _crmsrsChangeToken = Nothing+ , _crmsrsResponseStatus = pResponseStatus_+ }+++-- | A 'RegexMatchSet' that contains no @RegexMatchTuple@ objects.+crmsrsRegexMatchSet :: Lens' CreateRegexMatchSetResponse (Maybe RegexMatchSet)+crmsrsRegexMatchSet = lens _crmsrsRegexMatchSet (\ s a -> s{_crmsrsRegexMatchSet = a});++-- | The @ChangeToken@ that you used to submit the @CreateRegexMatchSet@ request. You can also use this value to query the status of the request. For more information, see 'GetChangeTokenStatus' .+crmsrsChangeToken :: Lens' CreateRegexMatchSetResponse (Maybe Text)+crmsrsChangeToken = lens _crmsrsChangeToken (\ s a -> s{_crmsrsChangeToken = a});++-- | -- | The response status code.+crmsrsResponseStatus :: Lens' CreateRegexMatchSetResponse Int+crmsrsResponseStatus = lens _crmsrsResponseStatus (\ s a -> s{_crmsrsResponseStatus = a});++instance NFData CreateRegexMatchSetResponse where
+ gen/Network/AWS/WAF/CreateRegexPatternSet.hs view
@@ -0,0 +1,171 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Network.AWS.WAF.CreateRegexPatternSet+-- Copyright : (c) 2013-2017 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a @RegexPatternSet@ . You then use 'UpdateRegexPatternSet' to specify the regular expression (regex) pattern that you want AWS WAF to search for, such as @B[a@]dB[o0]t@ . You can then configure AWS WAF to reject those requests.+--+--+-- To create and configure a @RegexPatternSet@ , perform the following steps:+--+-- * Use 'GetChangeToken' to get the change token that you provide in the @ChangeToken@ parameter of a @CreateRegexPatternSet@ request.+--+-- * Submit a @CreateRegexPatternSet@ request.+--+-- * Use @GetChangeToken@ to get the change token that you provide in the @ChangeToken@ parameter of an @UpdateRegexPatternSet@ request.+--+-- * Submit an 'UpdateRegexPatternSet' request to specify the string that you want AWS WAF to watch for.+--+--+--+-- For more information about how to use the AWS WAF API to allow or block HTTP requests, see the <http://docs.aws.amazon.com/waf/latest/developerguide/ AWS WAF Developer Guide> .+--+module Network.AWS.WAF.CreateRegexPatternSet+ (+ -- * Creating a Request+ createRegexPatternSet+ , CreateRegexPatternSet+ -- * Request Lenses+ , crpsName+ , crpsChangeToken++ -- * Destructuring the Response+ , createRegexPatternSetResponse+ , CreateRegexPatternSetResponse+ -- * Response Lenses+ , crpsrsRegexPatternSet+ , crpsrsChangeToken+ , crpsrsResponseStatus+ ) where++import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.WAF.Types+import Network.AWS.WAF.Types.Product++-- | /See:/ 'createRegexPatternSet' smart constructor.+data CreateRegexPatternSet = CreateRegexPatternSet'+ { _crpsName :: !Text+ , _crpsChangeToken :: !Text+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CreateRegexPatternSet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'crpsName' - A friendly name or description of the 'RegexPatternSet' . You can't change @Name@ after you create a @RegexPatternSet@ .+--+-- * 'crpsChangeToken' - The value returned by the most recent call to 'GetChangeToken' .+createRegexPatternSet+ :: Text -- ^ 'crpsName'+ -> Text -- ^ 'crpsChangeToken'+ -> CreateRegexPatternSet+createRegexPatternSet pName_ pChangeToken_ =+ CreateRegexPatternSet' {_crpsName = pName_, _crpsChangeToken = pChangeToken_}+++-- | A friendly name or description of the 'RegexPatternSet' . You can't change @Name@ after you create a @RegexPatternSet@ .+crpsName :: Lens' CreateRegexPatternSet Text+crpsName = lens _crpsName (\ s a -> s{_crpsName = a});++-- | The value returned by the most recent call to 'GetChangeToken' .+crpsChangeToken :: Lens' CreateRegexPatternSet Text+crpsChangeToken = lens _crpsChangeToken (\ s a -> s{_crpsChangeToken = a});++instance AWSRequest CreateRegexPatternSet where+ type Rs CreateRegexPatternSet =+ CreateRegexPatternSetResponse+ request = postJSON waf+ response+ = receiveJSON+ (\ s h x ->+ CreateRegexPatternSetResponse' <$>+ (x .?> "RegexPatternSet") <*> (x .?> "ChangeToken")+ <*> (pure (fromEnum s)))++instance Hashable CreateRegexPatternSet where++instance NFData CreateRegexPatternSet where++instance ToHeaders CreateRegexPatternSet where+ toHeaders+ = const+ (mconcat+ ["X-Amz-Target" =#+ ("AWSWAF_20150824.CreateRegexPatternSet" ::+ ByteString),+ "Content-Type" =#+ ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON CreateRegexPatternSet where+ toJSON CreateRegexPatternSet'{..}+ = object+ (catMaybes+ [Just ("Name" .= _crpsName),+ Just ("ChangeToken" .= _crpsChangeToken)])++instance ToPath CreateRegexPatternSet where+ toPath = const "/"++instance ToQuery CreateRegexPatternSet where+ toQuery = const mempty++-- | /See:/ 'createRegexPatternSetResponse' smart constructor.+data CreateRegexPatternSetResponse = CreateRegexPatternSetResponse'+ { _crpsrsRegexPatternSet :: !(Maybe RegexPatternSet)+ , _crpsrsChangeToken :: !(Maybe Text)+ , _crpsrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CreateRegexPatternSetResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'crpsrsRegexPatternSet' - A 'RegexPatternSet' that contains no objects.+--+-- * 'crpsrsChangeToken' - The @ChangeToken@ that you used to submit the @CreateRegexPatternSet@ request. You can also use this value to query the status of the request. For more information, see 'GetChangeTokenStatus' .+--+-- * 'crpsrsResponseStatus' - -- | The response status code.+createRegexPatternSetResponse+ :: Int -- ^ 'crpsrsResponseStatus'+ -> CreateRegexPatternSetResponse+createRegexPatternSetResponse pResponseStatus_ =+ CreateRegexPatternSetResponse'+ { _crpsrsRegexPatternSet = Nothing+ , _crpsrsChangeToken = Nothing+ , _crpsrsResponseStatus = pResponseStatus_+ }+++-- | A 'RegexPatternSet' that contains no objects.+crpsrsRegexPatternSet :: Lens' CreateRegexPatternSetResponse (Maybe RegexPatternSet)+crpsrsRegexPatternSet = lens _crpsrsRegexPatternSet (\ s a -> s{_crpsrsRegexPatternSet = a});++-- | The @ChangeToken@ that you used to submit the @CreateRegexPatternSet@ request. You can also use this value to query the status of the request. For more information, see 'GetChangeTokenStatus' .+crpsrsChangeToken :: Lens' CreateRegexPatternSetResponse (Maybe Text)+crpsrsChangeToken = lens _crpsrsChangeToken (\ s a -> s{_crpsrsChangeToken = a});++-- | -- | The response status code.+crpsrsResponseStatus :: Lens' CreateRegexPatternSetResponse Int+crpsrsResponseStatus = lens _crpsrsResponseStatus (\ s a -> s{_crpsrsResponseStatus = a});++instance NFData CreateRegexPatternSetResponse where
gen/Network/AWS/WAF/CreateRule.hs view
@@ -12,9 +12,9 @@ -- | -- Module : Network.AWS.WAF.CreateRule--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) --@@ -66,20 +66,21 @@ , crrsResponseStatus ) where -import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response-import Network.AWS.WAF.Types-import Network.AWS.WAF.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.WAF.Types+import Network.AWS.WAF.Types.Product -- | /See:/ 'createRule' smart constructor. data CreateRule = CreateRule'- { _crName :: !Text- , _crMetricName :: !Text- , _crChangeToken :: !Text- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _crName :: !Text+ , _crMetricName :: !Text+ , _crChangeToken :: !Text+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateRule' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -95,12 +96,13 @@ -> Text -- ^ 'crChangeToken' -> CreateRule createRule pName_ pMetricName_ pChangeToken_ =- CreateRule'- { _crName = pName_- , _crMetricName = pMetricName_- , _crChangeToken = pChangeToken_- }+ CreateRule'+ { _crName = pName_+ , _crMetricName = pMetricName_+ , _crChangeToken = pChangeToken_+ } + -- | A friendly name or description of the 'Rule' . You can't change the name of a @Rule@ after you create it. crName :: Lens' CreateRule Text crName = lens _crName (\ s a -> s{_crName = a});@@ -123,9 +125,9 @@ (x .?> "Rule") <*> (x .?> "ChangeToken") <*> (pure (fromEnum s))) -instance Hashable CreateRule+instance Hashable CreateRule where -instance NFData CreateRule+instance NFData CreateRule where instance ToHeaders CreateRule where toHeaders@@ -152,11 +154,12 @@ -- | /See:/ 'createRuleResponse' smart constructor. data CreateRuleResponse = CreateRuleResponse'- { _crrsRule :: !(Maybe Rule)- , _crrsChangeToken :: !(Maybe Text)- , _crrsResponseStatus :: !Int- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _crrsRule :: !(Maybe Rule)+ , _crrsChangeToken :: !(Maybe Text)+ , _crrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateRuleResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -170,12 +173,13 @@ :: Int -- ^ 'crrsResponseStatus' -> CreateRuleResponse createRuleResponse pResponseStatus_ =- CreateRuleResponse'- { _crrsRule = Nothing- , _crrsChangeToken = Nothing- , _crrsResponseStatus = pResponseStatus_- }+ CreateRuleResponse'+ { _crrsRule = Nothing+ , _crrsChangeToken = Nothing+ , _crrsResponseStatus = pResponseStatus_+ } + -- | The 'Rule' returned in the @CreateRule@ response. crrsRule :: Lens' CreateRuleResponse (Maybe Rule) crrsRule = lens _crrsRule (\ s a -> s{_crrsRule = a});@@ -188,4 +192,4 @@ crrsResponseStatus :: Lens' CreateRuleResponse Int crrsResponseStatus = lens _crrsResponseStatus (\ s a -> s{_crrsResponseStatus = a}); -instance NFData CreateRuleResponse+instance NFData CreateRuleResponse where
gen/Network/AWS/WAF/CreateSizeConstraintSet.hs view
@@ -12,9 +12,9 @@ -- | -- Module : Network.AWS.WAF.CreateSizeConstraintSet--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) --@@ -53,19 +53,20 @@ , cscsrsResponseStatus ) where -import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response-import Network.AWS.WAF.Types-import Network.AWS.WAF.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.WAF.Types+import Network.AWS.WAF.Types.Product -- | /See:/ 'createSizeConstraintSet' smart constructor. data CreateSizeConstraintSet = CreateSizeConstraintSet'- { _cscsName :: !Text- , _cscsChangeToken :: !Text- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _cscsName :: !Text+ , _cscsChangeToken :: !Text+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateSizeConstraintSet' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -78,11 +79,10 @@ -> Text -- ^ 'cscsChangeToken' -> CreateSizeConstraintSet createSizeConstraintSet pName_ pChangeToken_ =- CreateSizeConstraintSet'- { _cscsName = pName_- , _cscsChangeToken = pChangeToken_- }+ CreateSizeConstraintSet'+ {_cscsName = pName_, _cscsChangeToken = pChangeToken_} + -- | A friendly name or description of the 'SizeConstraintSet' . You can't change @Name@ after you create a @SizeConstraintSet@ . cscsName :: Lens' CreateSizeConstraintSet Text cscsName = lens _cscsName (\ s a -> s{_cscsName = a});@@ -102,9 +102,9 @@ (x .?> "SizeConstraintSet") <*> (x .?> "ChangeToken") <*> (pure (fromEnum s))) -instance Hashable CreateSizeConstraintSet+instance Hashable CreateSizeConstraintSet where -instance NFData CreateSizeConstraintSet+instance NFData CreateSizeConstraintSet where instance ToHeaders CreateSizeConstraintSet where toHeaders@@ -131,11 +131,12 @@ -- | /See:/ 'createSizeConstraintSetResponse' smart constructor. data CreateSizeConstraintSetResponse = CreateSizeConstraintSetResponse'- { _cscsrsSizeConstraintSet :: !(Maybe SizeConstraintSet)- , _cscsrsChangeToken :: !(Maybe Text)- , _cscsrsResponseStatus :: !Int- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _cscsrsSizeConstraintSet :: !(Maybe SizeConstraintSet)+ , _cscsrsChangeToken :: !(Maybe Text)+ , _cscsrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateSizeConstraintSetResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -149,12 +150,13 @@ :: Int -- ^ 'cscsrsResponseStatus' -> CreateSizeConstraintSetResponse createSizeConstraintSetResponse pResponseStatus_ =- CreateSizeConstraintSetResponse'- { _cscsrsSizeConstraintSet = Nothing- , _cscsrsChangeToken = Nothing- , _cscsrsResponseStatus = pResponseStatus_- }+ CreateSizeConstraintSetResponse'+ { _cscsrsSizeConstraintSet = Nothing+ , _cscsrsChangeToken = Nothing+ , _cscsrsResponseStatus = pResponseStatus_+ } + -- | A 'SizeConstraintSet' that contains no @SizeConstraint@ objects. cscsrsSizeConstraintSet :: Lens' CreateSizeConstraintSetResponse (Maybe SizeConstraintSet) cscsrsSizeConstraintSet = lens _cscsrsSizeConstraintSet (\ s a -> s{_cscsrsSizeConstraintSet = a});@@ -167,4 +169,4 @@ cscsrsResponseStatus :: Lens' CreateSizeConstraintSetResponse Int cscsrsResponseStatus = lens _cscsrsResponseStatus (\ s a -> s{_cscsrsResponseStatus = a}); -instance NFData CreateSizeConstraintSetResponse+instance NFData CreateSizeConstraintSetResponse where
gen/Network/AWS/WAF/CreateSqlInjectionMatchSet.hs view
@@ -12,9 +12,9 @@ -- | -- Module : Network.AWS.WAF.CreateSqlInjectionMatchSet--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) --@@ -53,12 +53,12 @@ , csimsrsResponseStatus ) where -import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response-import Network.AWS.WAF.Types-import Network.AWS.WAF.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.WAF.Types+import Network.AWS.WAF.Types.Product -- | A request to create a 'SqlInjectionMatchSet' . --@@ -66,10 +66,11 @@ -- -- /See:/ 'createSqlInjectionMatchSet' smart constructor. data CreateSqlInjectionMatchSet = CreateSqlInjectionMatchSet'- { _csimsName :: !Text- , _csimsChangeToken :: !Text- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _csimsName :: !Text+ , _csimsChangeToken :: !Text+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateSqlInjectionMatchSet' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -82,11 +83,10 @@ -> Text -- ^ 'csimsChangeToken' -> CreateSqlInjectionMatchSet createSqlInjectionMatchSet pName_ pChangeToken_ =- CreateSqlInjectionMatchSet'- { _csimsName = pName_- , _csimsChangeToken = pChangeToken_- }+ CreateSqlInjectionMatchSet'+ {_csimsName = pName_, _csimsChangeToken = pChangeToken_} + -- | A friendly name or description for the 'SqlInjectionMatchSet' that you're creating. You can't change @Name@ after you create the @SqlInjectionMatchSet@ . csimsName :: Lens' CreateSqlInjectionMatchSet Text csimsName = lens _csimsName (\ s a -> s{_csimsName = a});@@ -107,9 +107,9 @@ (x .?> "ChangeToken") <*> (pure (fromEnum s))) -instance Hashable CreateSqlInjectionMatchSet+instance Hashable CreateSqlInjectionMatchSet where -instance NFData CreateSqlInjectionMatchSet+instance NFData CreateSqlInjectionMatchSet where instance ToHeaders CreateSqlInjectionMatchSet where toHeaders@@ -140,11 +140,12 @@ -- -- /See:/ 'createSqlInjectionMatchSetResponse' smart constructor. data CreateSqlInjectionMatchSetResponse = CreateSqlInjectionMatchSetResponse'- { _csimsrsSqlInjectionMatchSet :: !(Maybe SqlInjectionMatchSet)- , _csimsrsChangeToken :: !(Maybe Text)- , _csimsrsResponseStatus :: !Int- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _csimsrsSqlInjectionMatchSet :: !(Maybe SqlInjectionMatchSet)+ , _csimsrsChangeToken :: !(Maybe Text)+ , _csimsrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateSqlInjectionMatchSetResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -158,12 +159,13 @@ :: Int -- ^ 'csimsrsResponseStatus' -> CreateSqlInjectionMatchSetResponse createSqlInjectionMatchSetResponse pResponseStatus_ =- CreateSqlInjectionMatchSetResponse'- { _csimsrsSqlInjectionMatchSet = Nothing- , _csimsrsChangeToken = Nothing- , _csimsrsResponseStatus = pResponseStatus_- }+ CreateSqlInjectionMatchSetResponse'+ { _csimsrsSqlInjectionMatchSet = Nothing+ , _csimsrsChangeToken = Nothing+ , _csimsrsResponseStatus = pResponseStatus_+ } + -- | A 'SqlInjectionMatchSet' . csimsrsSqlInjectionMatchSet :: Lens' CreateSqlInjectionMatchSetResponse (Maybe SqlInjectionMatchSet) csimsrsSqlInjectionMatchSet = lens _csimsrsSqlInjectionMatchSet (\ s a -> s{_csimsrsSqlInjectionMatchSet = a});@@ -177,3 +179,4 @@ csimsrsResponseStatus = lens _csimsrsResponseStatus (\ s a -> s{_csimsrsResponseStatus = a}); instance NFData CreateSqlInjectionMatchSetResponse+ where
gen/Network/AWS/WAF/CreateWebACL.hs view
@@ -12,9 +12,9 @@ -- | -- Module : Network.AWS.WAF.CreateWebACL--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) --@@ -61,21 +61,22 @@ , cwarsResponseStatus ) where -import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response-import Network.AWS.WAF.Types-import Network.AWS.WAF.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.WAF.Types+import Network.AWS.WAF.Types.Product -- | /See:/ 'createWebACL' smart constructor. data CreateWebACL = CreateWebACL'- { _cwaName :: !Text- , _cwaMetricName :: !Text- , _cwaDefaultAction :: !WafAction- , _cwaChangeToken :: !Text- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _cwaName :: !Text+ , _cwaMetricName :: !Text+ , _cwaDefaultAction :: !WafAction+ , _cwaChangeToken :: !Text+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateWebACL' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -94,13 +95,14 @@ -> Text -- ^ 'cwaChangeToken' -> CreateWebACL createWebACL pName_ pMetricName_ pDefaultAction_ pChangeToken_ =- CreateWebACL'- { _cwaName = pName_- , _cwaMetricName = pMetricName_- , _cwaDefaultAction = pDefaultAction_- , _cwaChangeToken = pChangeToken_- }+ CreateWebACL'+ { _cwaName = pName_+ , _cwaMetricName = pMetricName_+ , _cwaDefaultAction = pDefaultAction_+ , _cwaChangeToken = pChangeToken_+ } + -- | A friendly name or description of the 'WebACL' . You can't change @Name@ after you create the @WebACL@ . cwaName :: Lens' CreateWebACL Text cwaName = lens _cwaName (\ s a -> s{_cwaName = a});@@ -127,9 +129,9 @@ (x .?> "WebACL") <*> (x .?> "ChangeToken") <*> (pure (fromEnum s))) -instance Hashable CreateWebACL+instance Hashable CreateWebACL where -instance NFData CreateWebACL+instance NFData CreateWebACL where instance ToHeaders CreateWebACL where toHeaders@@ -157,11 +159,12 @@ -- | /See:/ 'createWebACLResponse' smart constructor. data CreateWebACLResponse = CreateWebACLResponse'- { _cwarsWebACL :: !(Maybe WebACL)- , _cwarsChangeToken :: !(Maybe Text)- , _cwarsResponseStatus :: !Int- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _cwarsWebACL :: !(Maybe WebACL)+ , _cwarsChangeToken :: !(Maybe Text)+ , _cwarsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateWebACLResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -175,12 +178,13 @@ :: Int -- ^ 'cwarsResponseStatus' -> CreateWebACLResponse createWebACLResponse pResponseStatus_ =- CreateWebACLResponse'- { _cwarsWebACL = Nothing- , _cwarsChangeToken = Nothing- , _cwarsResponseStatus = pResponseStatus_- }+ CreateWebACLResponse'+ { _cwarsWebACL = Nothing+ , _cwarsChangeToken = Nothing+ , _cwarsResponseStatus = pResponseStatus_+ } + -- | The 'WebACL' returned in the @CreateWebACL@ response. cwarsWebACL :: Lens' CreateWebACLResponse (Maybe WebACL) cwarsWebACL = lens _cwarsWebACL (\ s a -> s{_cwarsWebACL = a});@@ -193,4 +197,4 @@ cwarsResponseStatus :: Lens' CreateWebACLResponse Int cwarsResponseStatus = lens _cwarsResponseStatus (\ s a -> s{_cwarsResponseStatus = a}); -instance NFData CreateWebACLResponse+instance NFData CreateWebACLResponse where
gen/Network/AWS/WAF/CreateXSSMatchSet.hs view
@@ -12,9 +12,9 @@ -- | -- Module : Network.AWS.WAF.CreateXSSMatchSet--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) --@@ -53,12 +53,12 @@ , cxmsrsResponseStatus ) where -import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response-import Network.AWS.WAF.Types-import Network.AWS.WAF.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.WAF.Types+import Network.AWS.WAF.Types.Product -- | A request to create an 'XssMatchSet' . --@@ -66,10 +66,11 @@ -- -- /See:/ 'createXSSMatchSet' smart constructor. data CreateXSSMatchSet = CreateXSSMatchSet'- { _cxmsName :: !Text- , _cxmsChangeToken :: !Text- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _cxmsName :: !Text+ , _cxmsChangeToken :: !Text+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateXSSMatchSet' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -82,11 +83,9 @@ -> Text -- ^ 'cxmsChangeToken' -> CreateXSSMatchSet createXSSMatchSet pName_ pChangeToken_ =- CreateXSSMatchSet'- { _cxmsName = pName_- , _cxmsChangeToken = pChangeToken_- }+ CreateXSSMatchSet' {_cxmsName = pName_, _cxmsChangeToken = pChangeToken_} + -- | A friendly name or description for the 'XssMatchSet' that you're creating. You can't change @Name@ after you create the @XssMatchSet@ . cxmsName :: Lens' CreateXSSMatchSet Text cxmsName = lens _cxmsName (\ s a -> s{_cxmsName = a});@@ -105,9 +104,9 @@ (x .?> "XssMatchSet") <*> (x .?> "ChangeToken") <*> (pure (fromEnum s))) -instance Hashable CreateXSSMatchSet+instance Hashable CreateXSSMatchSet where -instance NFData CreateXSSMatchSet+instance NFData CreateXSSMatchSet where instance ToHeaders CreateXSSMatchSet where toHeaders@@ -137,11 +136,12 @@ -- -- /See:/ 'createXSSMatchSetResponse' smart constructor. data CreateXSSMatchSetResponse = CreateXSSMatchSetResponse'- { _cxmsrsXSSMatchSet :: !(Maybe XSSMatchSet)- , _cxmsrsChangeToken :: !(Maybe Text)- , _cxmsrsResponseStatus :: !Int- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _cxmsrsXSSMatchSet :: !(Maybe XSSMatchSet)+ , _cxmsrsChangeToken :: !(Maybe Text)+ , _cxmsrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateXSSMatchSetResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -155,12 +155,13 @@ :: Int -- ^ 'cxmsrsResponseStatus' -> CreateXSSMatchSetResponse createXSSMatchSetResponse pResponseStatus_ =- CreateXSSMatchSetResponse'- { _cxmsrsXSSMatchSet = Nothing- , _cxmsrsChangeToken = Nothing- , _cxmsrsResponseStatus = pResponseStatus_- }+ CreateXSSMatchSetResponse'+ { _cxmsrsXSSMatchSet = Nothing+ , _cxmsrsChangeToken = Nothing+ , _cxmsrsResponseStatus = pResponseStatus_+ } + -- | An 'XssMatchSet' . cxmsrsXSSMatchSet :: Lens' CreateXSSMatchSetResponse (Maybe XSSMatchSet) cxmsrsXSSMatchSet = lens _cxmsrsXSSMatchSet (\ s a -> s{_cxmsrsXSSMatchSet = a});@@ -173,4 +174,4 @@ cxmsrsResponseStatus :: Lens' CreateXSSMatchSetResponse Int cxmsrsResponseStatus = lens _cxmsrsResponseStatus (\ s a -> s{_cxmsrsResponseStatus = a}); -instance NFData CreateXSSMatchSetResponse+instance NFData CreateXSSMatchSetResponse where
gen/Network/AWS/WAF/DeleteByteMatchSet.hs view
@@ -12,9 +12,9 @@ -- | -- Module : Network.AWS.WAF.DeleteByteMatchSet--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) --@@ -50,19 +50,20 @@ , dbmsrsResponseStatus ) where -import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response-import Network.AWS.WAF.Types-import Network.AWS.WAF.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.WAF.Types+import Network.AWS.WAF.Types.Product -- | /See:/ 'deleteByteMatchSet' smart constructor. data DeleteByteMatchSet = DeleteByteMatchSet'- { _dbmsByteMatchSetId :: !Text- , _dbmsChangeToken :: !Text- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _dbmsByteMatchSetId :: !Text+ , _dbmsChangeToken :: !Text+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteByteMatchSet' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -75,11 +76,10 @@ -> Text -- ^ 'dbmsChangeToken' -> DeleteByteMatchSet deleteByteMatchSet pByteMatchSetId_ pChangeToken_ =- DeleteByteMatchSet'- { _dbmsByteMatchSetId = pByteMatchSetId_- , _dbmsChangeToken = pChangeToken_- }+ DeleteByteMatchSet'+ {_dbmsByteMatchSetId = pByteMatchSetId_, _dbmsChangeToken = pChangeToken_} + -- | The @ByteMatchSetId@ of the 'ByteMatchSet' that you want to delete. @ByteMatchSetId@ is returned by 'CreateByteMatchSet' and by 'ListByteMatchSets' . dbmsByteMatchSetId :: Lens' DeleteByteMatchSet Text dbmsByteMatchSetId = lens _dbmsByteMatchSetId (\ s a -> s{_dbmsByteMatchSetId = a});@@ -98,9 +98,9 @@ DeleteByteMatchSetResponse' <$> (x .?> "ChangeToken") <*> (pure (fromEnum s))) -instance Hashable DeleteByteMatchSet+instance Hashable DeleteByteMatchSet where -instance NFData DeleteByteMatchSet+instance NFData DeleteByteMatchSet where instance ToHeaders DeleteByteMatchSet where toHeaders@@ -126,10 +126,11 @@ -- | /See:/ 'deleteByteMatchSetResponse' smart constructor. data DeleteByteMatchSetResponse = DeleteByteMatchSetResponse'- { _dbmsrsChangeToken :: !(Maybe Text)- , _dbmsrsResponseStatus :: !Int- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _dbmsrsChangeToken :: !(Maybe Text)+ , _dbmsrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteByteMatchSetResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -141,11 +142,10 @@ :: Int -- ^ 'dbmsrsResponseStatus' -> DeleteByteMatchSetResponse deleteByteMatchSetResponse pResponseStatus_ =- DeleteByteMatchSetResponse'- { _dbmsrsChangeToken = Nothing- , _dbmsrsResponseStatus = pResponseStatus_- }+ DeleteByteMatchSetResponse'+ {_dbmsrsChangeToken = Nothing, _dbmsrsResponseStatus = pResponseStatus_} + -- | The @ChangeToken@ that you used to submit the @DeleteByteMatchSet@ request. You can also use this value to query the status of the request. For more information, see 'GetChangeTokenStatus' . dbmsrsChangeToken :: Lens' DeleteByteMatchSetResponse (Maybe Text) dbmsrsChangeToken = lens _dbmsrsChangeToken (\ s a -> s{_dbmsrsChangeToken = a});@@ -154,4 +154,4 @@ dbmsrsResponseStatus :: Lens' DeleteByteMatchSetResponse Int dbmsrsResponseStatus = lens _dbmsrsResponseStatus (\ s a -> s{_dbmsrsResponseStatus = a}); -instance NFData DeleteByteMatchSetResponse+instance NFData DeleteByteMatchSetResponse where
+ gen/Network/AWS/WAF/DeleteGeoMatchSet.hs view
@@ -0,0 +1,156 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Network.AWS.WAF.DeleteGeoMatchSet+-- Copyright : (c) 2013-2017 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Permanently deletes a 'GeoMatchSet' . You can't delete a @GeoMatchSet@ if it's still used in any @Rules@ or if it still includes any countries.+--+--+-- If you just want to remove a @GeoMatchSet@ from a @Rule@ , use 'UpdateRule' .+--+-- To permanently delete a @GeoMatchSet@ from AWS WAF, perform the following steps:+--+-- * Update the @GeoMatchSet@ to remove any countries. For more information, see 'UpdateGeoMatchSet' .+--+-- * Use 'GetChangeToken' to get the change token that you provide in the @ChangeToken@ parameter of a @DeleteGeoMatchSet@ request.+--+-- * Submit a @DeleteGeoMatchSet@ request.+--+--+--+module Network.AWS.WAF.DeleteGeoMatchSet+ (+ -- * Creating a Request+ deleteGeoMatchSet+ , DeleteGeoMatchSet+ -- * Request Lenses+ , dgmsGeoMatchSetId+ , dgmsChangeToken++ -- * Destructuring the Response+ , deleteGeoMatchSetResponse+ , DeleteGeoMatchSetResponse+ -- * Response Lenses+ , dgmsrsChangeToken+ , dgmsrsResponseStatus+ ) where++import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.WAF.Types+import Network.AWS.WAF.Types.Product++-- | /See:/ 'deleteGeoMatchSet' smart constructor.+data DeleteGeoMatchSet = DeleteGeoMatchSet'+ { _dgmsGeoMatchSetId :: !Text+ , _dgmsChangeToken :: !Text+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DeleteGeoMatchSet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dgmsGeoMatchSetId' - The @GeoMatchSetID@ of the 'GeoMatchSet' that you want to delete. @GeoMatchSetId@ is returned by 'CreateGeoMatchSet' and by 'ListGeoMatchSets' .+--+-- * 'dgmsChangeToken' - The value returned by the most recent call to 'GetChangeToken' .+deleteGeoMatchSet+ :: Text -- ^ 'dgmsGeoMatchSetId'+ -> Text -- ^ 'dgmsChangeToken'+ -> DeleteGeoMatchSet+deleteGeoMatchSet pGeoMatchSetId_ pChangeToken_ =+ DeleteGeoMatchSet'+ {_dgmsGeoMatchSetId = pGeoMatchSetId_, _dgmsChangeToken = pChangeToken_}+++-- | The @GeoMatchSetID@ of the 'GeoMatchSet' that you want to delete. @GeoMatchSetId@ is returned by 'CreateGeoMatchSet' and by 'ListGeoMatchSets' .+dgmsGeoMatchSetId :: Lens' DeleteGeoMatchSet Text+dgmsGeoMatchSetId = lens _dgmsGeoMatchSetId (\ s a -> s{_dgmsGeoMatchSetId = a});++-- | The value returned by the most recent call to 'GetChangeToken' .+dgmsChangeToken :: Lens' DeleteGeoMatchSet Text+dgmsChangeToken = lens _dgmsChangeToken (\ s a -> s{_dgmsChangeToken = a});++instance AWSRequest DeleteGeoMatchSet where+ type Rs DeleteGeoMatchSet = DeleteGeoMatchSetResponse+ request = postJSON waf+ response+ = receiveJSON+ (\ s h x ->+ DeleteGeoMatchSetResponse' <$>+ (x .?> "ChangeToken") <*> (pure (fromEnum s)))++instance Hashable DeleteGeoMatchSet where++instance NFData DeleteGeoMatchSet where++instance ToHeaders DeleteGeoMatchSet where+ toHeaders+ = const+ (mconcat+ ["X-Amz-Target" =#+ ("AWSWAF_20150824.DeleteGeoMatchSet" :: ByteString),+ "Content-Type" =#+ ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON DeleteGeoMatchSet where+ toJSON DeleteGeoMatchSet'{..}+ = object+ (catMaybes+ [Just ("GeoMatchSetId" .= _dgmsGeoMatchSetId),+ Just ("ChangeToken" .= _dgmsChangeToken)])++instance ToPath DeleteGeoMatchSet where+ toPath = const "/"++instance ToQuery DeleteGeoMatchSet where+ toQuery = const mempty++-- | /See:/ 'deleteGeoMatchSetResponse' smart constructor.+data DeleteGeoMatchSetResponse = DeleteGeoMatchSetResponse'+ { _dgmsrsChangeToken :: !(Maybe Text)+ , _dgmsrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DeleteGeoMatchSetResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dgmsrsChangeToken' - The @ChangeToken@ that you used to submit the @DeleteGeoMatchSet@ request. You can also use this value to query the status of the request. For more information, see 'GetChangeTokenStatus' .+--+-- * 'dgmsrsResponseStatus' - -- | The response status code.+deleteGeoMatchSetResponse+ :: Int -- ^ 'dgmsrsResponseStatus'+ -> DeleteGeoMatchSetResponse+deleteGeoMatchSetResponse pResponseStatus_ =+ DeleteGeoMatchSetResponse'+ {_dgmsrsChangeToken = Nothing, _dgmsrsResponseStatus = pResponseStatus_}+++-- | The @ChangeToken@ that you used to submit the @DeleteGeoMatchSet@ request. You can also use this value to query the status of the request. For more information, see 'GetChangeTokenStatus' .+dgmsrsChangeToken :: Lens' DeleteGeoMatchSetResponse (Maybe Text)+dgmsrsChangeToken = lens _dgmsrsChangeToken (\ s a -> s{_dgmsrsChangeToken = a});++-- | -- | The response status code.+dgmsrsResponseStatus :: Lens' DeleteGeoMatchSetResponse Int+dgmsrsResponseStatus = lens _dgmsrsResponseStatus (\ s a -> s{_dgmsrsResponseStatus = a});++instance NFData DeleteGeoMatchSetResponse where
gen/Network/AWS/WAF/DeleteIPSet.hs view
@@ -12,9 +12,9 @@ -- | -- Module : Network.AWS.WAF.DeleteIPSet--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) --@@ -50,19 +50,20 @@ , disrsResponseStatus ) where -import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response-import Network.AWS.WAF.Types-import Network.AWS.WAF.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.WAF.Types+import Network.AWS.WAF.Types.Product -- | /See:/ 'deleteIPSet' smart constructor. data DeleteIPSet = DeleteIPSet'- { _disIPSetId :: !Text- , _disChangeToken :: !Text- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _disIPSetId :: !Text+ , _disChangeToken :: !Text+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteIPSet' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -75,11 +76,9 @@ -> Text -- ^ 'disChangeToken' -> DeleteIPSet deleteIPSet pIPSetId_ pChangeToken_ =- DeleteIPSet'- { _disIPSetId = pIPSetId_- , _disChangeToken = pChangeToken_- }+ DeleteIPSet' {_disIPSetId = pIPSetId_, _disChangeToken = pChangeToken_} + -- | The @IPSetId@ of the 'IPSet' that you want to delete. @IPSetId@ is returned by 'CreateIPSet' and by 'ListIPSets' . disIPSetId :: Lens' DeleteIPSet Text disIPSetId = lens _disIPSetId (\ s a -> s{_disIPSetId = a});@@ -97,9 +96,9 @@ DeleteIPSetResponse' <$> (x .?> "ChangeToken") <*> (pure (fromEnum s))) -instance Hashable DeleteIPSet+instance Hashable DeleteIPSet where -instance NFData DeleteIPSet+instance NFData DeleteIPSet where instance ToHeaders DeleteIPSet where toHeaders@@ -125,10 +124,11 @@ -- | /See:/ 'deleteIPSetResponse' smart constructor. data DeleteIPSetResponse = DeleteIPSetResponse'- { _disrsChangeToken :: !(Maybe Text)- , _disrsResponseStatus :: !Int- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _disrsChangeToken :: !(Maybe Text)+ , _disrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteIPSetResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -140,11 +140,10 @@ :: Int -- ^ 'disrsResponseStatus' -> DeleteIPSetResponse deleteIPSetResponse pResponseStatus_ =- DeleteIPSetResponse'- { _disrsChangeToken = Nothing- , _disrsResponseStatus = pResponseStatus_- }+ DeleteIPSetResponse'+ {_disrsChangeToken = Nothing, _disrsResponseStatus = pResponseStatus_} + -- | The @ChangeToken@ that you used to submit the @DeleteIPSet@ request. You can also use this value to query the status of the request. For more information, see 'GetChangeTokenStatus' . disrsChangeToken :: Lens' DeleteIPSetResponse (Maybe Text) disrsChangeToken = lens _disrsChangeToken (\ s a -> s{_disrsChangeToken = a});@@ -153,4 +152,4 @@ disrsResponseStatus :: Lens' DeleteIPSetResponse Int disrsResponseStatus = lens _disrsResponseStatus (\ s a -> s{_disrsResponseStatus = a}); -instance NFData DeleteIPSetResponse+instance NFData DeleteIPSetResponse where
+ gen/Network/AWS/WAF/DeleteRateBasedRule.hs view
@@ -0,0 +1,158 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Network.AWS.WAF.DeleteRateBasedRule+-- Copyright : (c) 2013-2017 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Permanently deletes a 'RateBasedRule' . You can't delete a rule if it's still used in any @WebACL@ objects or if it still includes any predicates, such as @ByteMatchSet@ objects.+--+--+-- If you just want to remove a rule from a @WebACL@ , use 'UpdateWebACL' .+--+-- To permanently delete a @RateBasedRule@ from AWS WAF, perform the following steps:+--+-- * Update the @RateBasedRule@ to remove predicates, if any. For more information, see 'UpdateRateBasedRule' .+--+-- * Use 'GetChangeToken' to get the change token that you provide in the @ChangeToken@ parameter of a @DeleteRateBasedRule@ request.+--+-- * Submit a @DeleteRateBasedRule@ request.+--+--+--+module Network.AWS.WAF.DeleteRateBasedRule+ (+ -- * Creating a Request+ deleteRateBasedRule+ , DeleteRateBasedRule+ -- * Request Lenses+ , drbrRuleId+ , drbrChangeToken++ -- * Destructuring the Response+ , deleteRateBasedRuleResponse+ , DeleteRateBasedRuleResponse+ -- * Response Lenses+ , drbrrsChangeToken+ , drbrrsResponseStatus+ ) where++import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.WAF.Types+import Network.AWS.WAF.Types.Product++-- | /See:/ 'deleteRateBasedRule' smart constructor.+data DeleteRateBasedRule = DeleteRateBasedRule'+ { _drbrRuleId :: !Text+ , _drbrChangeToken :: !Text+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DeleteRateBasedRule' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'drbrRuleId' - The @RuleId@ of the 'RateBasedRule' that you want to delete. @RuleId@ is returned by 'CreateRateBasedRule' and by 'ListRateBasedRules' .+--+-- * 'drbrChangeToken' - The value returned by the most recent call to 'GetChangeToken' .+deleteRateBasedRule+ :: Text -- ^ 'drbrRuleId'+ -> Text -- ^ 'drbrChangeToken'+ -> DeleteRateBasedRule+deleteRateBasedRule pRuleId_ pChangeToken_ =+ DeleteRateBasedRule'+ {_drbrRuleId = pRuleId_, _drbrChangeToken = pChangeToken_}+++-- | The @RuleId@ of the 'RateBasedRule' that you want to delete. @RuleId@ is returned by 'CreateRateBasedRule' and by 'ListRateBasedRules' .+drbrRuleId :: Lens' DeleteRateBasedRule Text+drbrRuleId = lens _drbrRuleId (\ s a -> s{_drbrRuleId = a});++-- | The value returned by the most recent call to 'GetChangeToken' .+drbrChangeToken :: Lens' DeleteRateBasedRule Text+drbrChangeToken = lens _drbrChangeToken (\ s a -> s{_drbrChangeToken = a});++instance AWSRequest DeleteRateBasedRule where+ type Rs DeleteRateBasedRule =+ DeleteRateBasedRuleResponse+ request = postJSON waf+ response+ = receiveJSON+ (\ s h x ->+ DeleteRateBasedRuleResponse' <$>+ (x .?> "ChangeToken") <*> (pure (fromEnum s)))++instance Hashable DeleteRateBasedRule where++instance NFData DeleteRateBasedRule where++instance ToHeaders DeleteRateBasedRule where+ toHeaders+ = const+ (mconcat+ ["X-Amz-Target" =#+ ("AWSWAF_20150824.DeleteRateBasedRule" ::+ ByteString),+ "Content-Type" =#+ ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON DeleteRateBasedRule where+ toJSON DeleteRateBasedRule'{..}+ = object+ (catMaybes+ [Just ("RuleId" .= _drbrRuleId),+ Just ("ChangeToken" .= _drbrChangeToken)])++instance ToPath DeleteRateBasedRule where+ toPath = const "/"++instance ToQuery DeleteRateBasedRule where+ toQuery = const mempty++-- | /See:/ 'deleteRateBasedRuleResponse' smart constructor.+data DeleteRateBasedRuleResponse = DeleteRateBasedRuleResponse'+ { _drbrrsChangeToken :: !(Maybe Text)+ , _drbrrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DeleteRateBasedRuleResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'drbrrsChangeToken' - The @ChangeToken@ that you used to submit the @DeleteRateBasedRule@ request. You can also use this value to query the status of the request. For more information, see 'GetChangeTokenStatus' .+--+-- * 'drbrrsResponseStatus' - -- | The response status code.+deleteRateBasedRuleResponse+ :: Int -- ^ 'drbrrsResponseStatus'+ -> DeleteRateBasedRuleResponse+deleteRateBasedRuleResponse pResponseStatus_ =+ DeleteRateBasedRuleResponse'+ {_drbrrsChangeToken = Nothing, _drbrrsResponseStatus = pResponseStatus_}+++-- | The @ChangeToken@ that you used to submit the @DeleteRateBasedRule@ request. You can also use this value to query the status of the request. For more information, see 'GetChangeTokenStatus' .+drbrrsChangeToken :: Lens' DeleteRateBasedRuleResponse (Maybe Text)+drbrrsChangeToken = lens _drbrrsChangeToken (\ s a -> s{_drbrrsChangeToken = a});++-- | -- | The response status code.+drbrrsResponseStatus :: Lens' DeleteRateBasedRuleResponse Int+drbrrsResponseStatus = lens _drbrrsResponseStatus (\ s a -> s{_drbrrsResponseStatus = a});++instance NFData DeleteRateBasedRuleResponse where
+ gen/Network/AWS/WAF/DeleteRegexMatchSet.hs view
@@ -0,0 +1,158 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Network.AWS.WAF.DeleteRegexMatchSet+-- Copyright : (c) 2013-2017 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Permanently deletes a 'RegexMatchSet' . You can't delete a @RegexMatchSet@ if it's still used in any @Rules@ or if it still includes any @RegexMatchTuples@ objects (any filters).+--+--+-- If you just want to remove a @RegexMatchSet@ from a @Rule@ , use 'UpdateRule' .+--+-- To permanently delete a @RegexMatchSet@ , perform the following steps:+--+-- * Update the @RegexMatchSet@ to remove filters, if any. For more information, see 'UpdateRegexMatchSet' .+--+-- * Use 'GetChangeToken' to get the change token that you provide in the @ChangeToken@ parameter of a @DeleteRegexMatchSet@ request.+--+-- * Submit a @DeleteRegexMatchSet@ request.+--+--+--+module Network.AWS.WAF.DeleteRegexMatchSet+ (+ -- * Creating a Request+ deleteRegexMatchSet+ , DeleteRegexMatchSet+ -- * Request Lenses+ , drmsRegexMatchSetId+ , drmsChangeToken++ -- * Destructuring the Response+ , deleteRegexMatchSetResponse+ , DeleteRegexMatchSetResponse+ -- * Response Lenses+ , drmsrsChangeToken+ , drmsrsResponseStatus+ ) where++import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.WAF.Types+import Network.AWS.WAF.Types.Product++-- | /See:/ 'deleteRegexMatchSet' smart constructor.+data DeleteRegexMatchSet = DeleteRegexMatchSet'+ { _drmsRegexMatchSetId :: !Text+ , _drmsChangeToken :: !Text+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DeleteRegexMatchSet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'drmsRegexMatchSetId' - The @RegexMatchSetId@ of the 'RegexMatchSet' that you want to delete. @RegexMatchSetId@ is returned by 'CreateRegexMatchSet' and by 'ListRegexMatchSets' .+--+-- * 'drmsChangeToken' - The value returned by the most recent call to 'GetChangeToken' .+deleteRegexMatchSet+ :: Text -- ^ 'drmsRegexMatchSetId'+ -> Text -- ^ 'drmsChangeToken'+ -> DeleteRegexMatchSet+deleteRegexMatchSet pRegexMatchSetId_ pChangeToken_ =+ DeleteRegexMatchSet'+ {_drmsRegexMatchSetId = pRegexMatchSetId_, _drmsChangeToken = pChangeToken_}+++-- | The @RegexMatchSetId@ of the 'RegexMatchSet' that you want to delete. @RegexMatchSetId@ is returned by 'CreateRegexMatchSet' and by 'ListRegexMatchSets' .+drmsRegexMatchSetId :: Lens' DeleteRegexMatchSet Text+drmsRegexMatchSetId = lens _drmsRegexMatchSetId (\ s a -> s{_drmsRegexMatchSetId = a});++-- | The value returned by the most recent call to 'GetChangeToken' .+drmsChangeToken :: Lens' DeleteRegexMatchSet Text+drmsChangeToken = lens _drmsChangeToken (\ s a -> s{_drmsChangeToken = a});++instance AWSRequest DeleteRegexMatchSet where+ type Rs DeleteRegexMatchSet =+ DeleteRegexMatchSetResponse+ request = postJSON waf+ response+ = receiveJSON+ (\ s h x ->+ DeleteRegexMatchSetResponse' <$>+ (x .?> "ChangeToken") <*> (pure (fromEnum s)))++instance Hashable DeleteRegexMatchSet where++instance NFData DeleteRegexMatchSet where++instance ToHeaders DeleteRegexMatchSet where+ toHeaders+ = const+ (mconcat+ ["X-Amz-Target" =#+ ("AWSWAF_20150824.DeleteRegexMatchSet" ::+ ByteString),+ "Content-Type" =#+ ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON DeleteRegexMatchSet where+ toJSON DeleteRegexMatchSet'{..}+ = object+ (catMaybes+ [Just ("RegexMatchSetId" .= _drmsRegexMatchSetId),+ Just ("ChangeToken" .= _drmsChangeToken)])++instance ToPath DeleteRegexMatchSet where+ toPath = const "/"++instance ToQuery DeleteRegexMatchSet where+ toQuery = const mempty++-- | /See:/ 'deleteRegexMatchSetResponse' smart constructor.+data DeleteRegexMatchSetResponse = DeleteRegexMatchSetResponse'+ { _drmsrsChangeToken :: !(Maybe Text)+ , _drmsrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DeleteRegexMatchSetResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'drmsrsChangeToken' - The @ChangeToken@ that you used to submit the @DeleteRegexMatchSet@ request. You can also use this value to query the status of the request. For more information, see 'GetChangeTokenStatus' .+--+-- * 'drmsrsResponseStatus' - -- | The response status code.+deleteRegexMatchSetResponse+ :: Int -- ^ 'drmsrsResponseStatus'+ -> DeleteRegexMatchSetResponse+deleteRegexMatchSetResponse pResponseStatus_ =+ DeleteRegexMatchSetResponse'+ {_drmsrsChangeToken = Nothing, _drmsrsResponseStatus = pResponseStatus_}+++-- | The @ChangeToken@ that you used to submit the @DeleteRegexMatchSet@ request. You can also use this value to query the status of the request. For more information, see 'GetChangeTokenStatus' .+drmsrsChangeToken :: Lens' DeleteRegexMatchSetResponse (Maybe Text)+drmsrsChangeToken = lens _drmsrsChangeToken (\ s a -> s{_drmsrsChangeToken = a});++-- | -- | The response status code.+drmsrsResponseStatus :: Lens' DeleteRegexMatchSetResponse Int+drmsrsResponseStatus = lens _drmsrsResponseStatus (\ s a -> s{_drmsrsResponseStatus = a});++instance NFData DeleteRegexMatchSetResponse where
+ gen/Network/AWS/WAF/DeleteRegexPatternSet.hs view
@@ -0,0 +1,149 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Network.AWS.WAF.DeleteRegexPatternSet+-- Copyright : (c) 2013-2017 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Permanently deletes a 'RegexPatternSet' . You can't delete a @RegexPatternSet@ if it's still used in any @RegexMatchSet@ or if the @RegexPatternSet@ is not empty.+--+--+module Network.AWS.WAF.DeleteRegexPatternSet+ (+ -- * Creating a Request+ deleteRegexPatternSet+ , DeleteRegexPatternSet+ -- * Request Lenses+ , drpsRegexPatternSetId+ , drpsChangeToken++ -- * Destructuring the Response+ , deleteRegexPatternSetResponse+ , DeleteRegexPatternSetResponse+ -- * Response Lenses+ , drpsrsChangeToken+ , drpsrsResponseStatus+ ) where++import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.WAF.Types+import Network.AWS.WAF.Types.Product++-- | /See:/ 'deleteRegexPatternSet' smart constructor.+data DeleteRegexPatternSet = DeleteRegexPatternSet'+ { _drpsRegexPatternSetId :: !Text+ , _drpsChangeToken :: !Text+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DeleteRegexPatternSet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'drpsRegexPatternSetId' - The @RegexPatternSetId@ of the 'RegexPatternSet' that you want to delete. @RegexPatternSetId@ is returned by 'CreateRegexPatternSet' and by 'ListRegexPatternSets' .+--+-- * 'drpsChangeToken' - The value returned by the most recent call to 'GetChangeToken' .+deleteRegexPatternSet+ :: Text -- ^ 'drpsRegexPatternSetId'+ -> Text -- ^ 'drpsChangeToken'+ -> DeleteRegexPatternSet+deleteRegexPatternSet pRegexPatternSetId_ pChangeToken_ =+ DeleteRegexPatternSet'+ { _drpsRegexPatternSetId = pRegexPatternSetId_+ , _drpsChangeToken = pChangeToken_+ }+++-- | The @RegexPatternSetId@ of the 'RegexPatternSet' that you want to delete. @RegexPatternSetId@ is returned by 'CreateRegexPatternSet' and by 'ListRegexPatternSets' .+drpsRegexPatternSetId :: Lens' DeleteRegexPatternSet Text+drpsRegexPatternSetId = lens _drpsRegexPatternSetId (\ s a -> s{_drpsRegexPatternSetId = a});++-- | The value returned by the most recent call to 'GetChangeToken' .+drpsChangeToken :: Lens' DeleteRegexPatternSet Text+drpsChangeToken = lens _drpsChangeToken (\ s a -> s{_drpsChangeToken = a});++instance AWSRequest DeleteRegexPatternSet where+ type Rs DeleteRegexPatternSet =+ DeleteRegexPatternSetResponse+ request = postJSON waf+ response+ = receiveJSON+ (\ s h x ->+ DeleteRegexPatternSetResponse' <$>+ (x .?> "ChangeToken") <*> (pure (fromEnum s)))++instance Hashable DeleteRegexPatternSet where++instance NFData DeleteRegexPatternSet where++instance ToHeaders DeleteRegexPatternSet where+ toHeaders+ = const+ (mconcat+ ["X-Amz-Target" =#+ ("AWSWAF_20150824.DeleteRegexPatternSet" ::+ ByteString),+ "Content-Type" =#+ ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON DeleteRegexPatternSet where+ toJSON DeleteRegexPatternSet'{..}+ = object+ (catMaybes+ [Just+ ("RegexPatternSetId" .= _drpsRegexPatternSetId),+ Just ("ChangeToken" .= _drpsChangeToken)])++instance ToPath DeleteRegexPatternSet where+ toPath = const "/"++instance ToQuery DeleteRegexPatternSet where+ toQuery = const mempty++-- | /See:/ 'deleteRegexPatternSetResponse' smart constructor.+data DeleteRegexPatternSetResponse = DeleteRegexPatternSetResponse'+ { _drpsrsChangeToken :: !(Maybe Text)+ , _drpsrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DeleteRegexPatternSetResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'drpsrsChangeToken' - The @ChangeToken@ that you used to submit the @DeleteRegexPatternSet@ request. You can also use this value to query the status of the request. For more information, see 'GetChangeTokenStatus' .+--+-- * 'drpsrsResponseStatus' - -- | The response status code.+deleteRegexPatternSetResponse+ :: Int -- ^ 'drpsrsResponseStatus'+ -> DeleteRegexPatternSetResponse+deleteRegexPatternSetResponse pResponseStatus_ =+ DeleteRegexPatternSetResponse'+ {_drpsrsChangeToken = Nothing, _drpsrsResponseStatus = pResponseStatus_}+++-- | The @ChangeToken@ that you used to submit the @DeleteRegexPatternSet@ request. You can also use this value to query the status of the request. For more information, see 'GetChangeTokenStatus' .+drpsrsChangeToken :: Lens' DeleteRegexPatternSetResponse (Maybe Text)+drpsrsChangeToken = lens _drpsrsChangeToken (\ s a -> s{_drpsrsChangeToken = a});++-- | -- | The response status code.+drpsrsResponseStatus :: Lens' DeleteRegexPatternSetResponse Int+drpsrsResponseStatus = lens _drpsrsResponseStatus (\ s a -> s{_drpsrsResponseStatus = a});++instance NFData DeleteRegexPatternSetResponse where
gen/Network/AWS/WAF/DeleteRule.hs view
@@ -12,9 +12,9 @@ -- | -- Module : Network.AWS.WAF.DeleteRule--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) --@@ -50,19 +50,20 @@ , drrsResponseStatus ) where -import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response-import Network.AWS.WAF.Types-import Network.AWS.WAF.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.WAF.Types+import Network.AWS.WAF.Types.Product -- | /See:/ 'deleteRule' smart constructor. data DeleteRule = DeleteRule'- { _drRuleId :: !Text- , _drChangeToken :: !Text- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _drRuleId :: !Text+ , _drChangeToken :: !Text+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteRule' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -75,11 +76,9 @@ -> Text -- ^ 'drChangeToken' -> DeleteRule deleteRule pRuleId_ pChangeToken_ =- DeleteRule'- { _drRuleId = pRuleId_- , _drChangeToken = pChangeToken_- }+ DeleteRule' {_drRuleId = pRuleId_, _drChangeToken = pChangeToken_} + -- | The @RuleId@ of the 'Rule' that you want to delete. @RuleId@ is returned by 'CreateRule' and by 'ListRules' . drRuleId :: Lens' DeleteRule Text drRuleId = lens _drRuleId (\ s a -> s{_drRuleId = a});@@ -97,9 +96,9 @@ DeleteRuleResponse' <$> (x .?> "ChangeToken") <*> (pure (fromEnum s))) -instance Hashable DeleteRule+instance Hashable DeleteRule where -instance NFData DeleteRule+instance NFData DeleteRule where instance ToHeaders DeleteRule where toHeaders@@ -125,10 +124,11 @@ -- | /See:/ 'deleteRuleResponse' smart constructor. data DeleteRuleResponse = DeleteRuleResponse'- { _drrsChangeToken :: !(Maybe Text)- , _drrsResponseStatus :: !Int- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _drrsChangeToken :: !(Maybe Text)+ , _drrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteRuleResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -140,11 +140,10 @@ :: Int -- ^ 'drrsResponseStatus' -> DeleteRuleResponse deleteRuleResponse pResponseStatus_ =- DeleteRuleResponse'- { _drrsChangeToken = Nothing- , _drrsResponseStatus = pResponseStatus_- }+ DeleteRuleResponse'+ {_drrsChangeToken = Nothing, _drrsResponseStatus = pResponseStatus_} + -- | The @ChangeToken@ that you used to submit the @DeleteRule@ request. You can also use this value to query the status of the request. For more information, see 'GetChangeTokenStatus' . drrsChangeToken :: Lens' DeleteRuleResponse (Maybe Text) drrsChangeToken = lens _drrsChangeToken (\ s a -> s{_drrsChangeToken = a});@@ -153,4 +152,4 @@ drrsResponseStatus :: Lens' DeleteRuleResponse Int drrsResponseStatus = lens _drrsResponseStatus (\ s a -> s{_drrsResponseStatus = a}); -instance NFData DeleteRuleResponse+instance NFData DeleteRuleResponse where
gen/Network/AWS/WAF/DeleteSizeConstraintSet.hs view
@@ -12,9 +12,9 @@ -- | -- Module : Network.AWS.WAF.DeleteSizeConstraintSet--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) --@@ -50,19 +50,20 @@ , dscsrsResponseStatus ) where -import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response-import Network.AWS.WAF.Types-import Network.AWS.WAF.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.WAF.Types+import Network.AWS.WAF.Types.Product -- | /See:/ 'deleteSizeConstraintSet' smart constructor. data DeleteSizeConstraintSet = DeleteSizeConstraintSet'- { _dscsSizeConstraintSetId :: !Text- , _dscsChangeToken :: !Text- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _dscsSizeConstraintSetId :: !Text+ , _dscsChangeToken :: !Text+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteSizeConstraintSet' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -75,11 +76,12 @@ -> Text -- ^ 'dscsChangeToken' -> DeleteSizeConstraintSet deleteSizeConstraintSet pSizeConstraintSetId_ pChangeToken_ =- DeleteSizeConstraintSet'- { _dscsSizeConstraintSetId = pSizeConstraintSetId_- , _dscsChangeToken = pChangeToken_- }+ DeleteSizeConstraintSet'+ { _dscsSizeConstraintSetId = pSizeConstraintSetId_+ , _dscsChangeToken = pChangeToken_+ } + -- | The @SizeConstraintSetId@ of the 'SizeConstraintSet' that you want to delete. @SizeConstraintSetId@ is returned by 'CreateSizeConstraintSet' and by 'ListSizeConstraintSets' . dscsSizeConstraintSetId :: Lens' DeleteSizeConstraintSet Text dscsSizeConstraintSetId = lens _dscsSizeConstraintSetId (\ s a -> s{_dscsSizeConstraintSetId = a});@@ -98,9 +100,9 @@ DeleteSizeConstraintSetResponse' <$> (x .?> "ChangeToken") <*> (pure (fromEnum s))) -instance Hashable DeleteSizeConstraintSet+instance Hashable DeleteSizeConstraintSet where -instance NFData DeleteSizeConstraintSet+instance NFData DeleteSizeConstraintSet where instance ToHeaders DeleteSizeConstraintSet where toHeaders@@ -128,10 +130,11 @@ -- | /See:/ 'deleteSizeConstraintSetResponse' smart constructor. data DeleteSizeConstraintSetResponse = DeleteSizeConstraintSetResponse'- { _dscsrsChangeToken :: !(Maybe Text)- , _dscsrsResponseStatus :: !Int- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _dscsrsChangeToken :: !(Maybe Text)+ , _dscsrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteSizeConstraintSetResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -143,11 +146,10 @@ :: Int -- ^ 'dscsrsResponseStatus' -> DeleteSizeConstraintSetResponse deleteSizeConstraintSetResponse pResponseStatus_ =- DeleteSizeConstraintSetResponse'- { _dscsrsChangeToken = Nothing- , _dscsrsResponseStatus = pResponseStatus_- }+ DeleteSizeConstraintSetResponse'+ {_dscsrsChangeToken = Nothing, _dscsrsResponseStatus = pResponseStatus_} + -- | The @ChangeToken@ that you used to submit the @DeleteSizeConstraintSet@ request. You can also use this value to query the status of the request. For more information, see 'GetChangeTokenStatus' . dscsrsChangeToken :: Lens' DeleteSizeConstraintSetResponse (Maybe Text) dscsrsChangeToken = lens _dscsrsChangeToken (\ s a -> s{_dscsrsChangeToken = a});@@ -156,4 +158,4 @@ dscsrsResponseStatus :: Lens' DeleteSizeConstraintSetResponse Int dscsrsResponseStatus = lens _dscsrsResponseStatus (\ s a -> s{_dscsrsResponseStatus = a}); -instance NFData DeleteSizeConstraintSetResponse+instance NFData DeleteSizeConstraintSetResponse where
gen/Network/AWS/WAF/DeleteSqlInjectionMatchSet.hs view
@@ -12,9 +12,9 @@ -- | -- Module : Network.AWS.WAF.DeleteSqlInjectionMatchSet--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) --@@ -50,12 +50,12 @@ , dsimsrsResponseStatus ) where -import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response-import Network.AWS.WAF.Types-import Network.AWS.WAF.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.WAF.Types+import Network.AWS.WAF.Types.Product -- | A request to delete a 'SqlInjectionMatchSet' from AWS WAF. --@@ -63,10 +63,11 @@ -- -- /See:/ 'deleteSqlInjectionMatchSet' smart constructor. data DeleteSqlInjectionMatchSet = DeleteSqlInjectionMatchSet'- { _dsimsSqlInjectionMatchSetId :: !Text- , _dsimsChangeToken :: !Text- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _dsimsSqlInjectionMatchSetId :: !Text+ , _dsimsChangeToken :: !Text+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteSqlInjectionMatchSet' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -79,11 +80,12 @@ -> Text -- ^ 'dsimsChangeToken' -> DeleteSqlInjectionMatchSet deleteSqlInjectionMatchSet pSqlInjectionMatchSetId_ pChangeToken_ =- DeleteSqlInjectionMatchSet'- { _dsimsSqlInjectionMatchSetId = pSqlInjectionMatchSetId_- , _dsimsChangeToken = pChangeToken_- }+ DeleteSqlInjectionMatchSet'+ { _dsimsSqlInjectionMatchSetId = pSqlInjectionMatchSetId_+ , _dsimsChangeToken = pChangeToken_+ } + -- | The @SqlInjectionMatchSetId@ of the 'SqlInjectionMatchSet' that you want to delete. @SqlInjectionMatchSetId@ is returned by 'CreateSqlInjectionMatchSet' and by 'ListSqlInjectionMatchSets' . dsimsSqlInjectionMatchSetId :: Lens' DeleteSqlInjectionMatchSet Text dsimsSqlInjectionMatchSetId = lens _dsimsSqlInjectionMatchSetId (\ s a -> s{_dsimsSqlInjectionMatchSetId = a});@@ -102,9 +104,9 @@ DeleteSqlInjectionMatchSetResponse' <$> (x .?> "ChangeToken") <*> (pure (fromEnum s))) -instance Hashable DeleteSqlInjectionMatchSet+instance Hashable DeleteSqlInjectionMatchSet where -instance NFData DeleteSqlInjectionMatchSet+instance NFData DeleteSqlInjectionMatchSet where instance ToHeaders DeleteSqlInjectionMatchSet where toHeaders@@ -137,10 +139,11 @@ -- -- /See:/ 'deleteSqlInjectionMatchSetResponse' smart constructor. data DeleteSqlInjectionMatchSetResponse = DeleteSqlInjectionMatchSetResponse'- { _dsimsrsChangeToken :: !(Maybe Text)- , _dsimsrsResponseStatus :: !Int- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _dsimsrsChangeToken :: !(Maybe Text)+ , _dsimsrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteSqlInjectionMatchSetResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -152,11 +155,10 @@ :: Int -- ^ 'dsimsrsResponseStatus' -> DeleteSqlInjectionMatchSetResponse deleteSqlInjectionMatchSetResponse pResponseStatus_ =- DeleteSqlInjectionMatchSetResponse'- { _dsimsrsChangeToken = Nothing- , _dsimsrsResponseStatus = pResponseStatus_- }+ DeleteSqlInjectionMatchSetResponse'+ {_dsimsrsChangeToken = Nothing, _dsimsrsResponseStatus = pResponseStatus_} + -- | The @ChangeToken@ that you used to submit the @DeleteSqlInjectionMatchSet@ request. You can also use this value to query the status of the request. For more information, see 'GetChangeTokenStatus' . dsimsrsChangeToken :: Lens' DeleteSqlInjectionMatchSetResponse (Maybe Text) dsimsrsChangeToken = lens _dsimsrsChangeToken (\ s a -> s{_dsimsrsChangeToken = a});@@ -166,3 +168,4 @@ dsimsrsResponseStatus = lens _dsimsrsResponseStatus (\ s a -> s{_dsimsrsResponseStatus = a}); instance NFData DeleteSqlInjectionMatchSetResponse+ where
gen/Network/AWS/WAF/DeleteWebACL.hs view
@@ -12,9 +12,9 @@ -- | -- Module : Network.AWS.WAF.DeleteWebACL--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) --@@ -48,19 +48,20 @@ , dwarsResponseStatus ) where -import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response-import Network.AWS.WAF.Types-import Network.AWS.WAF.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.WAF.Types+import Network.AWS.WAF.Types.Product -- | /See:/ 'deleteWebACL' smart constructor. data DeleteWebACL = DeleteWebACL'- { _dwaWebACLId :: !Text- , _dwaChangeToken :: !Text- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _dwaWebACLId :: !Text+ , _dwaChangeToken :: !Text+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteWebACL' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -73,11 +74,9 @@ -> Text -- ^ 'dwaChangeToken' -> DeleteWebACL deleteWebACL pWebACLId_ pChangeToken_ =- DeleteWebACL'- { _dwaWebACLId = pWebACLId_- , _dwaChangeToken = pChangeToken_- }+ DeleteWebACL' {_dwaWebACLId = pWebACLId_, _dwaChangeToken = pChangeToken_} + -- | The @WebACLId@ of the 'WebACL' that you want to delete. @WebACLId@ is returned by 'CreateWebACL' and by 'ListWebACLs' . dwaWebACLId :: Lens' DeleteWebACL Text dwaWebACLId = lens _dwaWebACLId (\ s a -> s{_dwaWebACLId = a});@@ -95,9 +94,9 @@ DeleteWebACLResponse' <$> (x .?> "ChangeToken") <*> (pure (fromEnum s))) -instance Hashable DeleteWebACL+instance Hashable DeleteWebACL where -instance NFData DeleteWebACL+instance NFData DeleteWebACL where instance ToHeaders DeleteWebACL where toHeaders@@ -123,10 +122,11 @@ -- | /See:/ 'deleteWebACLResponse' smart constructor. data DeleteWebACLResponse = DeleteWebACLResponse'- { _dwarsChangeToken :: !(Maybe Text)- , _dwarsResponseStatus :: !Int- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _dwarsChangeToken :: !(Maybe Text)+ , _dwarsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteWebACLResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -138,11 +138,10 @@ :: Int -- ^ 'dwarsResponseStatus' -> DeleteWebACLResponse deleteWebACLResponse pResponseStatus_ =- DeleteWebACLResponse'- { _dwarsChangeToken = Nothing- , _dwarsResponseStatus = pResponseStatus_- }+ DeleteWebACLResponse'+ {_dwarsChangeToken = Nothing, _dwarsResponseStatus = pResponseStatus_} + -- | The @ChangeToken@ that you used to submit the @DeleteWebACL@ request. You can also use this value to query the status of the request. For more information, see 'GetChangeTokenStatus' . dwarsChangeToken :: Lens' DeleteWebACLResponse (Maybe Text) dwarsChangeToken = lens _dwarsChangeToken (\ s a -> s{_dwarsChangeToken = a});@@ -151,4 +150,4 @@ dwarsResponseStatus :: Lens' DeleteWebACLResponse Int dwarsResponseStatus = lens _dwarsResponseStatus (\ s a -> s{_dwarsResponseStatus = a}); -instance NFData DeleteWebACLResponse+instance NFData DeleteWebACLResponse where
gen/Network/AWS/WAF/DeleteXSSMatchSet.hs view
@@ -12,9 +12,9 @@ -- | -- Module : Network.AWS.WAF.DeleteXSSMatchSet--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) --@@ -50,12 +50,12 @@ , dxmsrsResponseStatus ) where -import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response-import Network.AWS.WAF.Types-import Network.AWS.WAF.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.WAF.Types+import Network.AWS.WAF.Types.Product -- | A request to delete an 'XssMatchSet' from AWS WAF. --@@ -63,10 +63,11 @@ -- -- /See:/ 'deleteXSSMatchSet' smart constructor. data DeleteXSSMatchSet = DeleteXSSMatchSet'- { _dxmsXSSMatchSetId :: !Text- , _dxmsChangeToken :: !Text- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _dxmsXSSMatchSetId :: !Text+ , _dxmsChangeToken :: !Text+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteXSSMatchSet' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -79,11 +80,10 @@ -> Text -- ^ 'dxmsChangeToken' -> DeleteXSSMatchSet deleteXSSMatchSet pXSSMatchSetId_ pChangeToken_ =- DeleteXSSMatchSet'- { _dxmsXSSMatchSetId = pXSSMatchSetId_- , _dxmsChangeToken = pChangeToken_- }+ DeleteXSSMatchSet'+ {_dxmsXSSMatchSetId = pXSSMatchSetId_, _dxmsChangeToken = pChangeToken_} + -- | The @XssMatchSetId@ of the 'XssMatchSet' that you want to delete. @XssMatchSetId@ is returned by 'CreateXssMatchSet' and by 'ListXssMatchSets' . dxmsXSSMatchSetId :: Lens' DeleteXSSMatchSet Text dxmsXSSMatchSetId = lens _dxmsXSSMatchSetId (\ s a -> s{_dxmsXSSMatchSetId = a});@@ -101,9 +101,9 @@ DeleteXSSMatchSetResponse' <$> (x .?> "ChangeToken") <*> (pure (fromEnum s))) -instance Hashable DeleteXSSMatchSet+instance Hashable DeleteXSSMatchSet where -instance NFData DeleteXSSMatchSet+instance NFData DeleteXSSMatchSet where instance ToHeaders DeleteXSSMatchSet where toHeaders@@ -133,10 +133,11 @@ -- -- /See:/ 'deleteXSSMatchSetResponse' smart constructor. data DeleteXSSMatchSetResponse = DeleteXSSMatchSetResponse'- { _dxmsrsChangeToken :: !(Maybe Text)- , _dxmsrsResponseStatus :: !Int- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _dxmsrsChangeToken :: !(Maybe Text)+ , _dxmsrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteXSSMatchSetResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -148,11 +149,10 @@ :: Int -- ^ 'dxmsrsResponseStatus' -> DeleteXSSMatchSetResponse deleteXSSMatchSetResponse pResponseStatus_ =- DeleteXSSMatchSetResponse'- { _dxmsrsChangeToken = Nothing- , _dxmsrsResponseStatus = pResponseStatus_- }+ DeleteXSSMatchSetResponse'+ {_dxmsrsChangeToken = Nothing, _dxmsrsResponseStatus = pResponseStatus_} + -- | The @ChangeToken@ that you used to submit the @DeleteXssMatchSet@ request. You can also use this value to query the status of the request. For more information, see 'GetChangeTokenStatus' . dxmsrsChangeToken :: Lens' DeleteXSSMatchSetResponse (Maybe Text) dxmsrsChangeToken = lens _dxmsrsChangeToken (\ s a -> s{_dxmsrsChangeToken = a});@@ -161,4 +161,4 @@ dxmsrsResponseStatus :: Lens' DeleteXSSMatchSetResponse Int dxmsrsResponseStatus = lens _dxmsrsResponseStatus (\ s a -> s{_dxmsrsResponseStatus = a}); -instance NFData DeleteXSSMatchSetResponse+instance NFData DeleteXSSMatchSetResponse where
gen/Network/AWS/WAF/GetByteMatchSet.hs view
@@ -12,9 +12,9 @@ -- | -- Module : Network.AWS.WAF.GetByteMatchSet--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) --@@ -37,18 +37,19 @@ , gbmsrsResponseStatus ) where -import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response-import Network.AWS.WAF.Types-import Network.AWS.WAF.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.WAF.Types+import Network.AWS.WAF.Types.Product -- | /See:/ 'getByteMatchSet' smart constructor. newtype GetByteMatchSet = GetByteMatchSet'- { _gbmsByteMatchSetId :: Text- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _gbmsByteMatchSetId :: Text+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'GetByteMatchSet' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -58,10 +59,9 @@ :: Text -- ^ 'gbmsByteMatchSetId' -> GetByteMatchSet getByteMatchSet pByteMatchSetId_ =- GetByteMatchSet'- { _gbmsByteMatchSetId = pByteMatchSetId_- }+ GetByteMatchSet' {_gbmsByteMatchSetId = pByteMatchSetId_} + -- | The @ByteMatchSetId@ of the 'ByteMatchSet' that you want to get. @ByteMatchSetId@ is returned by 'CreateByteMatchSet' and by 'ListByteMatchSets' . gbmsByteMatchSetId :: Lens' GetByteMatchSet Text gbmsByteMatchSetId = lens _gbmsByteMatchSetId (\ s a -> s{_gbmsByteMatchSetId = a});@@ -75,9 +75,9 @@ GetByteMatchSetResponse' <$> (x .?> "ByteMatchSet") <*> (pure (fromEnum s))) -instance Hashable GetByteMatchSet+instance Hashable GetByteMatchSet where -instance NFData GetByteMatchSet+instance NFData GetByteMatchSet where instance ToHeaders GetByteMatchSet where toHeaders@@ -102,10 +102,11 @@ -- | /See:/ 'getByteMatchSetResponse' smart constructor. data GetByteMatchSetResponse = GetByteMatchSetResponse'- { _gbmsrsByteMatchSet :: !(Maybe ByteMatchSet)- , _gbmsrsResponseStatus :: !Int- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _gbmsrsByteMatchSet :: !(Maybe ByteMatchSet)+ , _gbmsrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'GetByteMatchSetResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -117,11 +118,10 @@ :: Int -- ^ 'gbmsrsResponseStatus' -> GetByteMatchSetResponse getByteMatchSetResponse pResponseStatus_ =- GetByteMatchSetResponse'- { _gbmsrsByteMatchSet = Nothing- , _gbmsrsResponseStatus = pResponseStatus_- }+ GetByteMatchSetResponse'+ {_gbmsrsByteMatchSet = Nothing, _gbmsrsResponseStatus = pResponseStatus_} + -- | Information about the 'ByteMatchSet' that you specified in the @GetByteMatchSet@ request. For more information, see the following topics: * 'ByteMatchSet' : Contains @ByteMatchSetId@ , @ByteMatchTuples@ , and @Name@ * @ByteMatchTuples@ : Contains an array of 'ByteMatchTuple' objects. Each @ByteMatchTuple@ object contains 'FieldToMatch' , @PositionalConstraint@ , @TargetString@ , and @TextTransformation@ * 'FieldToMatch' : Contains @Data@ and @Type@ gbmsrsByteMatchSet :: Lens' GetByteMatchSetResponse (Maybe ByteMatchSet) gbmsrsByteMatchSet = lens _gbmsrsByteMatchSet (\ s a -> s{_gbmsrsByteMatchSet = a});@@ -130,4 +130,4 @@ gbmsrsResponseStatus :: Lens' GetByteMatchSetResponse Int gbmsrsResponseStatus = lens _gbmsrsResponseStatus (\ s a -> s{_gbmsrsResponseStatus = a}); -instance NFData GetByteMatchSetResponse+instance NFData GetByteMatchSetResponse where
gen/Network/AWS/WAF/GetChangeToken.hs view
@@ -12,9 +12,9 @@ -- | -- Module : Network.AWS.WAF.GetChangeToken--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) --@@ -39,24 +39,26 @@ , gctrsResponseStatus ) where -import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response-import Network.AWS.WAF.Types-import Network.AWS.WAF.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.WAF.Types+import Network.AWS.WAF.Types.Product -- | /See:/ 'getChangeToken' smart constructor. data GetChangeToken =- GetChangeToken'- deriving (Eq,Read,Show,Data,Typeable,Generic)+ GetChangeToken'+ deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'GetChangeToken' with the minimum fields required to make a request. -- getChangeToken :: GetChangeToken getChangeToken = GetChangeToken' + instance AWSRequest GetChangeToken where type Rs GetChangeToken = GetChangeTokenResponse request = postJSON waf@@ -66,9 +68,9 @@ GetChangeTokenResponse' <$> (x .?> "ChangeToken") <*> (pure (fromEnum s))) -instance Hashable GetChangeToken+instance Hashable GetChangeToken where -instance NFData GetChangeToken+instance NFData GetChangeToken where instance ToHeaders GetChangeToken where toHeaders@@ -90,10 +92,11 @@ -- | /See:/ 'getChangeTokenResponse' smart constructor. data GetChangeTokenResponse = GetChangeTokenResponse'- { _gctrsChangeToken :: !(Maybe Text)- , _gctrsResponseStatus :: !Int- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _gctrsChangeToken :: !(Maybe Text)+ , _gctrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'GetChangeTokenResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -105,11 +108,10 @@ :: Int -- ^ 'gctrsResponseStatus' -> GetChangeTokenResponse getChangeTokenResponse pResponseStatus_ =- GetChangeTokenResponse'- { _gctrsChangeToken = Nothing- , _gctrsResponseStatus = pResponseStatus_- }+ GetChangeTokenResponse'+ {_gctrsChangeToken = Nothing, _gctrsResponseStatus = pResponseStatus_} + -- | The @ChangeToken@ that you used in the request. Use this value in a @GetChangeTokenStatus@ request to get the current status of the request. gctrsChangeToken :: Lens' GetChangeTokenResponse (Maybe Text) gctrsChangeToken = lens _gctrsChangeToken (\ s a -> s{_gctrsChangeToken = a});@@ -118,4 +120,4 @@ gctrsResponseStatus :: Lens' GetChangeTokenResponse Int gctrsResponseStatus = lens _gctrsResponseStatus (\ s a -> s{_gctrsResponseStatus = a}); -instance NFData GetChangeTokenResponse+instance NFData GetChangeTokenResponse where
gen/Network/AWS/WAF/GetChangeTokenStatus.hs view
@@ -12,9 +12,9 @@ -- | -- Module : Network.AWS.WAF.GetChangeTokenStatus--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) --@@ -45,18 +45,19 @@ , gctsrsResponseStatus ) where -import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response-import Network.AWS.WAF.Types-import Network.AWS.WAF.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.WAF.Types+import Network.AWS.WAF.Types.Product -- | /See:/ 'getChangeTokenStatus' smart constructor. newtype GetChangeTokenStatus = GetChangeTokenStatus'- { _gctsChangeToken :: Text- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _gctsChangeToken :: Text+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'GetChangeTokenStatus' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -66,10 +67,9 @@ :: Text -- ^ 'gctsChangeToken' -> GetChangeTokenStatus getChangeTokenStatus pChangeToken_ =- GetChangeTokenStatus'- { _gctsChangeToken = pChangeToken_- }+ GetChangeTokenStatus' {_gctsChangeToken = pChangeToken_} + -- | The change token for which you want to get the status. This change token was previously returned in the @GetChangeToken@ response. gctsChangeToken :: Lens' GetChangeTokenStatus Text gctsChangeToken = lens _gctsChangeToken (\ s a -> s{_gctsChangeToken = a});@@ -84,9 +84,9 @@ GetChangeTokenStatusResponse' <$> (x .?> "ChangeTokenStatus") <*> (pure (fromEnum s))) -instance Hashable GetChangeTokenStatus+instance Hashable GetChangeTokenStatus where -instance NFData GetChangeTokenStatus+instance NFData GetChangeTokenStatus where instance ToHeaders GetChangeTokenStatus where toHeaders@@ -112,10 +112,11 @@ -- | /See:/ 'getChangeTokenStatusResponse' smart constructor. data GetChangeTokenStatusResponse = GetChangeTokenStatusResponse'- { _gctsrsChangeTokenStatus :: !(Maybe ChangeTokenStatus)- , _gctsrsResponseStatus :: !Int- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _gctsrsChangeTokenStatus :: !(Maybe ChangeTokenStatus)+ , _gctsrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'GetChangeTokenStatusResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -127,11 +128,10 @@ :: Int -- ^ 'gctsrsResponseStatus' -> GetChangeTokenStatusResponse getChangeTokenStatusResponse pResponseStatus_ =- GetChangeTokenStatusResponse'- { _gctsrsChangeTokenStatus = Nothing- , _gctsrsResponseStatus = pResponseStatus_- }+ GetChangeTokenStatusResponse'+ {_gctsrsChangeTokenStatus = Nothing, _gctsrsResponseStatus = pResponseStatus_} + -- | The status of the change token. gctsrsChangeTokenStatus :: Lens' GetChangeTokenStatusResponse (Maybe ChangeTokenStatus) gctsrsChangeTokenStatus = lens _gctsrsChangeTokenStatus (\ s a -> s{_gctsrsChangeTokenStatus = a});@@ -140,4 +140,4 @@ gctsrsResponseStatus :: Lens' GetChangeTokenStatusResponse Int gctsrsResponseStatus = lens _gctsrsResponseStatus (\ s a -> s{_gctsrsResponseStatus = a}); -instance NFData GetChangeTokenStatusResponse+instance NFData GetChangeTokenStatusResponse where
+ gen/Network/AWS/WAF/GetGeoMatchSet.hs view
@@ -0,0 +1,133 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Network.AWS.WAF.GetGeoMatchSet+-- Copyright : (c) 2013-2017 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the 'GeoMatchSet' that is specified by @GeoMatchSetId@ .+--+--+module Network.AWS.WAF.GetGeoMatchSet+ (+ -- * Creating a Request+ getGeoMatchSet+ , GetGeoMatchSet+ -- * Request Lenses+ , ggmsGeoMatchSetId++ -- * Destructuring the Response+ , getGeoMatchSetResponse+ , GetGeoMatchSetResponse+ -- * Response Lenses+ , ggmsrsGeoMatchSet+ , ggmsrsResponseStatus+ ) where++import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.WAF.Types+import Network.AWS.WAF.Types.Product++-- | /See:/ 'getGeoMatchSet' smart constructor.+newtype GetGeoMatchSet = GetGeoMatchSet'+ { _ggmsGeoMatchSetId :: Text+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'GetGeoMatchSet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ggmsGeoMatchSetId' - The @GeoMatchSetId@ of the 'GeoMatchSet' that you want to get. @GeoMatchSetId@ is returned by 'CreateGeoMatchSet' and by 'ListGeoMatchSets' .+getGeoMatchSet+ :: Text -- ^ 'ggmsGeoMatchSetId'+ -> GetGeoMatchSet+getGeoMatchSet pGeoMatchSetId_ =+ GetGeoMatchSet' {_ggmsGeoMatchSetId = pGeoMatchSetId_}+++-- | The @GeoMatchSetId@ of the 'GeoMatchSet' that you want to get. @GeoMatchSetId@ is returned by 'CreateGeoMatchSet' and by 'ListGeoMatchSets' .+ggmsGeoMatchSetId :: Lens' GetGeoMatchSet Text+ggmsGeoMatchSetId = lens _ggmsGeoMatchSetId (\ s a -> s{_ggmsGeoMatchSetId = a});++instance AWSRequest GetGeoMatchSet where+ type Rs GetGeoMatchSet = GetGeoMatchSetResponse+ request = postJSON waf+ response+ = receiveJSON+ (\ s h x ->+ GetGeoMatchSetResponse' <$>+ (x .?> "GeoMatchSet") <*> (pure (fromEnum s)))++instance Hashable GetGeoMatchSet where++instance NFData GetGeoMatchSet where++instance ToHeaders GetGeoMatchSet where+ toHeaders+ = const+ (mconcat+ ["X-Amz-Target" =#+ ("AWSWAF_20150824.GetGeoMatchSet" :: ByteString),+ "Content-Type" =#+ ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON GetGeoMatchSet where+ toJSON GetGeoMatchSet'{..}+ = object+ (catMaybes+ [Just ("GeoMatchSetId" .= _ggmsGeoMatchSetId)])++instance ToPath GetGeoMatchSet where+ toPath = const "/"++instance ToQuery GetGeoMatchSet where+ toQuery = const mempty++-- | /See:/ 'getGeoMatchSetResponse' smart constructor.+data GetGeoMatchSetResponse = GetGeoMatchSetResponse'+ { _ggmsrsGeoMatchSet :: !(Maybe GeoMatchSet)+ , _ggmsrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'GetGeoMatchSetResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ggmsrsGeoMatchSet' - Information about the 'GeoMatchSet' that you specified in the @GetGeoMatchSet@ request. This includes the @Type@ , which for a @GeoMatchContraint@ is always @Country@ , as well as the @Value@ , which is the identifier for a specific country.+--+-- * 'ggmsrsResponseStatus' - -- | The response status code.+getGeoMatchSetResponse+ :: Int -- ^ 'ggmsrsResponseStatus'+ -> GetGeoMatchSetResponse+getGeoMatchSetResponse pResponseStatus_ =+ GetGeoMatchSetResponse'+ {_ggmsrsGeoMatchSet = Nothing, _ggmsrsResponseStatus = pResponseStatus_}+++-- | Information about the 'GeoMatchSet' that you specified in the @GetGeoMatchSet@ request. This includes the @Type@ , which for a @GeoMatchContraint@ is always @Country@ , as well as the @Value@ , which is the identifier for a specific country.+ggmsrsGeoMatchSet :: Lens' GetGeoMatchSetResponse (Maybe GeoMatchSet)+ggmsrsGeoMatchSet = lens _ggmsrsGeoMatchSet (\ s a -> s{_ggmsrsGeoMatchSet = a});++-- | -- | The response status code.+ggmsrsResponseStatus :: Lens' GetGeoMatchSetResponse Int+ggmsrsResponseStatus = lens _ggmsrsResponseStatus (\ s a -> s{_ggmsrsResponseStatus = a});++instance NFData GetGeoMatchSetResponse where
gen/Network/AWS/WAF/GetIPSet.hs view
@@ -12,9 +12,9 @@ -- | -- Module : Network.AWS.WAF.GetIPSet--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) --@@ -37,18 +37,19 @@ , gisrsResponseStatus ) where -import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response-import Network.AWS.WAF.Types-import Network.AWS.WAF.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.WAF.Types+import Network.AWS.WAF.Types.Product -- | /See:/ 'getIPSet' smart constructor. newtype GetIPSet = GetIPSet'- { _gisIPSetId :: Text- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _gisIPSetId :: Text+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'GetIPSet' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -57,11 +58,9 @@ getIPSet :: Text -- ^ 'gisIPSetId' -> GetIPSet-getIPSet pIPSetId_ =- GetIPSet'- { _gisIPSetId = pIPSetId_- }+getIPSet pIPSetId_ = GetIPSet' {_gisIPSetId = pIPSetId_} + -- | The @IPSetId@ of the 'IPSet' that you want to get. @IPSetId@ is returned by 'CreateIPSet' and by 'ListIPSets' . gisIPSetId :: Lens' GetIPSet Text gisIPSetId = lens _gisIPSetId (\ s a -> s{_gisIPSetId = a});@@ -75,9 +74,9 @@ GetIPSetResponse' <$> (x .?> "IPSet") <*> (pure (fromEnum s))) -instance Hashable GetIPSet+instance Hashable GetIPSet where -instance NFData GetIPSet+instance NFData GetIPSet where instance ToHeaders GetIPSet where toHeaders@@ -101,10 +100,11 @@ -- | /See:/ 'getIPSetResponse' smart constructor. data GetIPSetResponse = GetIPSetResponse'- { _gisrsIPSet :: !(Maybe IPSet)- , _gisrsResponseStatus :: !Int- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _gisrsIPSet :: !(Maybe IPSet)+ , _gisrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'GetIPSetResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -116,11 +116,10 @@ :: Int -- ^ 'gisrsResponseStatus' -> GetIPSetResponse getIPSetResponse pResponseStatus_ =- GetIPSetResponse'- { _gisrsIPSet = Nothing- , _gisrsResponseStatus = pResponseStatus_- }+ GetIPSetResponse'+ {_gisrsIPSet = Nothing, _gisrsResponseStatus = pResponseStatus_} + -- | Information about the 'IPSet' that you specified in the @GetIPSet@ request. For more information, see the following topics: * 'IPSet' : Contains @IPSetDescriptors@ , @IPSetId@ , and @Name@ * @IPSetDescriptors@ : Contains an array of 'IPSetDescriptor' objects. Each @IPSetDescriptor@ object contains @Type@ and @Value@ gisrsIPSet :: Lens' GetIPSetResponse (Maybe IPSet) gisrsIPSet = lens _gisrsIPSet (\ s a -> s{_gisrsIPSet = a});@@ -129,4 +128,4 @@ gisrsResponseStatus :: Lens' GetIPSetResponse Int gisrsResponseStatus = lens _gisrsResponseStatus (\ s a -> s{_gisrsResponseStatus = a}); -instance NFData GetIPSetResponse+instance NFData GetIPSetResponse where
+ gen/Network/AWS/WAF/GetRateBasedRule.hs view
@@ -0,0 +1,130 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Network.AWS.WAF.GetRateBasedRule+-- Copyright : (c) 2013-2017 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the 'RateBasedRule' that is specified by the @RuleId@ that you included in the @GetRateBasedRule@ request.+--+--+module Network.AWS.WAF.GetRateBasedRule+ (+ -- * Creating a Request+ getRateBasedRule+ , GetRateBasedRule+ -- * Request Lenses+ , grbrRuleId++ -- * Destructuring the Response+ , getRateBasedRuleResponse+ , GetRateBasedRuleResponse+ -- * Response Lenses+ , grbrrsRule+ , grbrrsResponseStatus+ ) where++import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.WAF.Types+import Network.AWS.WAF.Types.Product++-- | /See:/ 'getRateBasedRule' smart constructor.+newtype GetRateBasedRule = GetRateBasedRule'+ { _grbrRuleId :: Text+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'GetRateBasedRule' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'grbrRuleId' - The @RuleId@ of the 'RateBasedRule' that you want to get. @RuleId@ is returned by 'CreateRateBasedRule' and by 'ListRateBasedRules' .+getRateBasedRule+ :: Text -- ^ 'grbrRuleId'+ -> GetRateBasedRule+getRateBasedRule pRuleId_ = GetRateBasedRule' {_grbrRuleId = pRuleId_}+++-- | The @RuleId@ of the 'RateBasedRule' that you want to get. @RuleId@ is returned by 'CreateRateBasedRule' and by 'ListRateBasedRules' .+grbrRuleId :: Lens' GetRateBasedRule Text+grbrRuleId = lens _grbrRuleId (\ s a -> s{_grbrRuleId = a});++instance AWSRequest GetRateBasedRule where+ type Rs GetRateBasedRule = GetRateBasedRuleResponse+ request = postJSON waf+ response+ = receiveJSON+ (\ s h x ->+ GetRateBasedRuleResponse' <$>+ (x .?> "Rule") <*> (pure (fromEnum s)))++instance Hashable GetRateBasedRule where++instance NFData GetRateBasedRule where++instance ToHeaders GetRateBasedRule where+ toHeaders+ = const+ (mconcat+ ["X-Amz-Target" =#+ ("AWSWAF_20150824.GetRateBasedRule" :: ByteString),+ "Content-Type" =#+ ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON GetRateBasedRule where+ toJSON GetRateBasedRule'{..}+ = object (catMaybes [Just ("RuleId" .= _grbrRuleId)])++instance ToPath GetRateBasedRule where+ toPath = const "/"++instance ToQuery GetRateBasedRule where+ toQuery = const mempty++-- | /See:/ 'getRateBasedRuleResponse' smart constructor.+data GetRateBasedRuleResponse = GetRateBasedRuleResponse'+ { _grbrrsRule :: !(Maybe RateBasedRule)+ , _grbrrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'GetRateBasedRuleResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'grbrrsRule' - Information about the 'RateBasedRule' that you specified in the @GetRateBasedRule@ request.+--+-- * 'grbrrsResponseStatus' - -- | The response status code.+getRateBasedRuleResponse+ :: Int -- ^ 'grbrrsResponseStatus'+ -> GetRateBasedRuleResponse+getRateBasedRuleResponse pResponseStatus_ =+ GetRateBasedRuleResponse'+ {_grbrrsRule = Nothing, _grbrrsResponseStatus = pResponseStatus_}+++-- | Information about the 'RateBasedRule' that you specified in the @GetRateBasedRule@ request.+grbrrsRule :: Lens' GetRateBasedRuleResponse (Maybe RateBasedRule)+grbrrsRule = lens _grbrrsRule (\ s a -> s{_grbrrsRule = a});++-- | -- | The response status code.+grbrrsResponseStatus :: Lens' GetRateBasedRuleResponse Int+grbrrsResponseStatus = lens _grbrrsResponseStatus (\ s a -> s{_grbrrsResponseStatus = a});++instance NFData GetRateBasedRuleResponse where
+ gen/Network/AWS/WAF/GetRateBasedRuleManagedKeys.hs view
@@ -0,0 +1,159 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Network.AWS.WAF.GetRateBasedRuleManagedKeys+-- Copyright : (c) 2013-2017 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns an array of IP addresses currently being blocked by the 'RateBasedRule' that is specified by the @RuleId@ . The maximum number of managed keys that will be blocked is 10,000. If more than 10,000 addresses exceed the rate limit, the 10,000 addresses with the highest rates will be blocked.+--+--+module Network.AWS.WAF.GetRateBasedRuleManagedKeys+ (+ -- * Creating a Request+ getRateBasedRuleManagedKeys+ , GetRateBasedRuleManagedKeys+ -- * Request Lenses+ , grbrmkNextMarker+ , grbrmkRuleId++ -- * Destructuring the Response+ , getRateBasedRuleManagedKeysResponse+ , GetRateBasedRuleManagedKeysResponse+ -- * Response Lenses+ , grbrmkrsNextMarker+ , grbrmkrsManagedKeys+ , grbrmkrsResponseStatus+ ) where++import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.WAF.Types+import Network.AWS.WAF.Types.Product++-- | /See:/ 'getRateBasedRuleManagedKeys' smart constructor.+data GetRateBasedRuleManagedKeys = GetRateBasedRuleManagedKeys'+ { _grbrmkNextMarker :: !(Maybe Text)+ , _grbrmkRuleId :: !Text+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'GetRateBasedRuleManagedKeys' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'grbrmkNextMarker' - A null value and not currently used. Do not include this in your request.+--+-- * 'grbrmkRuleId' - The @RuleId@ of the 'RateBasedRule' for which you want to get a list of @ManagedKeys@ . @RuleId@ is returned by 'CreateRateBasedRule' and by 'ListRateBasedRules' .+getRateBasedRuleManagedKeys+ :: Text -- ^ 'grbrmkRuleId'+ -> GetRateBasedRuleManagedKeys+getRateBasedRuleManagedKeys pRuleId_ =+ GetRateBasedRuleManagedKeys'+ {_grbrmkNextMarker = Nothing, _grbrmkRuleId = pRuleId_}+++-- | A null value and not currently used. Do not include this in your request.+grbrmkNextMarker :: Lens' GetRateBasedRuleManagedKeys (Maybe Text)+grbrmkNextMarker = lens _grbrmkNextMarker (\ s a -> s{_grbrmkNextMarker = a});++-- | The @RuleId@ of the 'RateBasedRule' for which you want to get a list of @ManagedKeys@ . @RuleId@ is returned by 'CreateRateBasedRule' and by 'ListRateBasedRules' .+grbrmkRuleId :: Lens' GetRateBasedRuleManagedKeys Text+grbrmkRuleId = lens _grbrmkRuleId (\ s a -> s{_grbrmkRuleId = a});++instance AWSRequest GetRateBasedRuleManagedKeys where+ type Rs GetRateBasedRuleManagedKeys =+ GetRateBasedRuleManagedKeysResponse+ request = postJSON waf+ response+ = receiveJSON+ (\ s h x ->+ GetRateBasedRuleManagedKeysResponse' <$>+ (x .?> "NextMarker") <*>+ (x .?> "ManagedKeys" .!@ mempty)+ <*> (pure (fromEnum s)))++instance Hashable GetRateBasedRuleManagedKeys where++instance NFData GetRateBasedRuleManagedKeys where++instance ToHeaders GetRateBasedRuleManagedKeys where+ toHeaders+ = const+ (mconcat+ ["X-Amz-Target" =#+ ("AWSWAF_20150824.GetRateBasedRuleManagedKeys" ::+ ByteString),+ "Content-Type" =#+ ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON GetRateBasedRuleManagedKeys where+ toJSON GetRateBasedRuleManagedKeys'{..}+ = object+ (catMaybes+ [("NextMarker" .=) <$> _grbrmkNextMarker,+ Just ("RuleId" .= _grbrmkRuleId)])++instance ToPath GetRateBasedRuleManagedKeys where+ toPath = const "/"++instance ToQuery GetRateBasedRuleManagedKeys where+ toQuery = const mempty++-- | /See:/ 'getRateBasedRuleManagedKeysResponse' smart constructor.+data GetRateBasedRuleManagedKeysResponse = GetRateBasedRuleManagedKeysResponse'+ { _grbrmkrsNextMarker :: !(Maybe Text)+ , _grbrmkrsManagedKeys :: !(Maybe [Text])+ , _grbrmkrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'GetRateBasedRuleManagedKeysResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'grbrmkrsNextMarker' - A null value and not currently used.+--+-- * 'grbrmkrsManagedKeys' - An array of IP addresses that currently are blocked by the specified 'RateBasedRule' .+--+-- * 'grbrmkrsResponseStatus' - -- | The response status code.+getRateBasedRuleManagedKeysResponse+ :: Int -- ^ 'grbrmkrsResponseStatus'+ -> GetRateBasedRuleManagedKeysResponse+getRateBasedRuleManagedKeysResponse pResponseStatus_ =+ GetRateBasedRuleManagedKeysResponse'+ { _grbrmkrsNextMarker = Nothing+ , _grbrmkrsManagedKeys = Nothing+ , _grbrmkrsResponseStatus = pResponseStatus_+ }+++-- | A null value and not currently used.+grbrmkrsNextMarker :: Lens' GetRateBasedRuleManagedKeysResponse (Maybe Text)+grbrmkrsNextMarker = lens _grbrmkrsNextMarker (\ s a -> s{_grbrmkrsNextMarker = a});++-- | An array of IP addresses that currently are blocked by the specified 'RateBasedRule' .+grbrmkrsManagedKeys :: Lens' GetRateBasedRuleManagedKeysResponse [Text]+grbrmkrsManagedKeys = lens _grbrmkrsManagedKeys (\ s a -> s{_grbrmkrsManagedKeys = a}) . _Default . _Coerce;++-- | -- | The response status code.+grbrmkrsResponseStatus :: Lens' GetRateBasedRuleManagedKeysResponse Int+grbrmkrsResponseStatus = lens _grbrmkrsResponseStatus (\ s a -> s{_grbrmkrsResponseStatus = a});++instance NFData GetRateBasedRuleManagedKeysResponse+ where
+ gen/Network/AWS/WAF/GetRegexMatchSet.hs view
@@ -0,0 +1,133 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Network.AWS.WAF.GetRegexMatchSet+-- Copyright : (c) 2013-2017 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the 'RegexMatchSet' specified by @RegexMatchSetId@ .+--+--+module Network.AWS.WAF.GetRegexMatchSet+ (+ -- * Creating a Request+ getRegexMatchSet+ , GetRegexMatchSet+ -- * Request Lenses+ , grmsRegexMatchSetId++ -- * Destructuring the Response+ , getRegexMatchSetResponse+ , GetRegexMatchSetResponse+ -- * Response Lenses+ , grmsrsRegexMatchSet+ , grmsrsResponseStatus+ ) where++import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.WAF.Types+import Network.AWS.WAF.Types.Product++-- | /See:/ 'getRegexMatchSet' smart constructor.+newtype GetRegexMatchSet = GetRegexMatchSet'+ { _grmsRegexMatchSetId :: Text+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'GetRegexMatchSet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'grmsRegexMatchSetId' - The @RegexMatchSetId@ of the 'RegexMatchSet' that you want to get. @RegexMatchSetId@ is returned by 'CreateRegexMatchSet' and by 'ListRegexMatchSets' .+getRegexMatchSet+ :: Text -- ^ 'grmsRegexMatchSetId'+ -> GetRegexMatchSet+getRegexMatchSet pRegexMatchSetId_ =+ GetRegexMatchSet' {_grmsRegexMatchSetId = pRegexMatchSetId_}+++-- | The @RegexMatchSetId@ of the 'RegexMatchSet' that you want to get. @RegexMatchSetId@ is returned by 'CreateRegexMatchSet' and by 'ListRegexMatchSets' .+grmsRegexMatchSetId :: Lens' GetRegexMatchSet Text+grmsRegexMatchSetId = lens _grmsRegexMatchSetId (\ s a -> s{_grmsRegexMatchSetId = a});++instance AWSRequest GetRegexMatchSet where+ type Rs GetRegexMatchSet = GetRegexMatchSetResponse+ request = postJSON waf+ response+ = receiveJSON+ (\ s h x ->+ GetRegexMatchSetResponse' <$>+ (x .?> "RegexMatchSet") <*> (pure (fromEnum s)))++instance Hashable GetRegexMatchSet where++instance NFData GetRegexMatchSet where++instance ToHeaders GetRegexMatchSet where+ toHeaders+ = const+ (mconcat+ ["X-Amz-Target" =#+ ("AWSWAF_20150824.GetRegexMatchSet" :: ByteString),+ "Content-Type" =#+ ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON GetRegexMatchSet where+ toJSON GetRegexMatchSet'{..}+ = object+ (catMaybes+ [Just ("RegexMatchSetId" .= _grmsRegexMatchSetId)])++instance ToPath GetRegexMatchSet where+ toPath = const "/"++instance ToQuery GetRegexMatchSet where+ toQuery = const mempty++-- | /See:/ 'getRegexMatchSetResponse' smart constructor.+data GetRegexMatchSetResponse = GetRegexMatchSetResponse'+ { _grmsrsRegexMatchSet :: !(Maybe RegexMatchSet)+ , _grmsrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'GetRegexMatchSetResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'grmsrsRegexMatchSet' - Information about the 'RegexMatchSet' that you specified in the @GetRegexMatchSet@ request. For more information, see 'RegexMatchTuple' .+--+-- * 'grmsrsResponseStatus' - -- | The response status code.+getRegexMatchSetResponse+ :: Int -- ^ 'grmsrsResponseStatus'+ -> GetRegexMatchSetResponse+getRegexMatchSetResponse pResponseStatus_ =+ GetRegexMatchSetResponse'+ {_grmsrsRegexMatchSet = Nothing, _grmsrsResponseStatus = pResponseStatus_}+++-- | Information about the 'RegexMatchSet' that you specified in the @GetRegexMatchSet@ request. For more information, see 'RegexMatchTuple' .+grmsrsRegexMatchSet :: Lens' GetRegexMatchSetResponse (Maybe RegexMatchSet)+grmsrsRegexMatchSet = lens _grmsrsRegexMatchSet (\ s a -> s{_grmsrsRegexMatchSet = a});++-- | -- | The response status code.+grmsrsResponseStatus :: Lens' GetRegexMatchSetResponse Int+grmsrsResponseStatus = lens _grmsrsResponseStatus (\ s a -> s{_grmsrsResponseStatus = a});++instance NFData GetRegexMatchSetResponse where
+ gen/Network/AWS/WAF/GetRegexPatternSet.hs view
@@ -0,0 +1,135 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Network.AWS.WAF.GetRegexPatternSet+-- Copyright : (c) 2013-2017 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the 'RegexPatternSet' specified by @RegexPatternSetId@ .+--+--+module Network.AWS.WAF.GetRegexPatternSet+ (+ -- * Creating a Request+ getRegexPatternSet+ , GetRegexPatternSet+ -- * Request Lenses+ , grpsRegexPatternSetId++ -- * Destructuring the Response+ , getRegexPatternSetResponse+ , GetRegexPatternSetResponse+ -- * Response Lenses+ , grpsrsRegexPatternSet+ , grpsrsResponseStatus+ ) where++import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.WAF.Types+import Network.AWS.WAF.Types.Product++-- | /See:/ 'getRegexPatternSet' smart constructor.+newtype GetRegexPatternSet = GetRegexPatternSet'+ { _grpsRegexPatternSetId :: Text+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'GetRegexPatternSet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'grpsRegexPatternSetId' - The @RegexPatternSetId@ of the 'RegexPatternSet' that you want to get. @RegexPatternSetId@ is returned by 'CreateRegexPatternSet' and by 'ListRegexPatternSets' .+getRegexPatternSet+ :: Text -- ^ 'grpsRegexPatternSetId'+ -> GetRegexPatternSet+getRegexPatternSet pRegexPatternSetId_ =+ GetRegexPatternSet' {_grpsRegexPatternSetId = pRegexPatternSetId_}+++-- | The @RegexPatternSetId@ of the 'RegexPatternSet' that you want to get. @RegexPatternSetId@ is returned by 'CreateRegexPatternSet' and by 'ListRegexPatternSets' .+grpsRegexPatternSetId :: Lens' GetRegexPatternSet Text+grpsRegexPatternSetId = lens _grpsRegexPatternSetId (\ s a -> s{_grpsRegexPatternSetId = a});++instance AWSRequest GetRegexPatternSet where+ type Rs GetRegexPatternSet =+ GetRegexPatternSetResponse+ request = postJSON waf+ response+ = receiveJSON+ (\ s h x ->+ GetRegexPatternSetResponse' <$>+ (x .?> "RegexPatternSet") <*> (pure (fromEnum s)))++instance Hashable GetRegexPatternSet where++instance NFData GetRegexPatternSet where++instance ToHeaders GetRegexPatternSet where+ toHeaders+ = const+ (mconcat+ ["X-Amz-Target" =#+ ("AWSWAF_20150824.GetRegexPatternSet" :: ByteString),+ "Content-Type" =#+ ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON GetRegexPatternSet where+ toJSON GetRegexPatternSet'{..}+ = object+ (catMaybes+ [Just+ ("RegexPatternSetId" .= _grpsRegexPatternSetId)])++instance ToPath GetRegexPatternSet where+ toPath = const "/"++instance ToQuery GetRegexPatternSet where+ toQuery = const mempty++-- | /See:/ 'getRegexPatternSetResponse' smart constructor.+data GetRegexPatternSetResponse = GetRegexPatternSetResponse'+ { _grpsrsRegexPatternSet :: !(Maybe RegexPatternSet)+ , _grpsrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'GetRegexPatternSetResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'grpsrsRegexPatternSet' - Information about the 'RegexPatternSet' that you specified in the @GetRegexPatternSet@ request, including the identifier of the pattern set and the regular expression patterns you want AWS WAF to search for.+--+-- * 'grpsrsResponseStatus' - -- | The response status code.+getRegexPatternSetResponse+ :: Int -- ^ 'grpsrsResponseStatus'+ -> GetRegexPatternSetResponse+getRegexPatternSetResponse pResponseStatus_ =+ GetRegexPatternSetResponse'+ {_grpsrsRegexPatternSet = Nothing, _grpsrsResponseStatus = pResponseStatus_}+++-- | Information about the 'RegexPatternSet' that you specified in the @GetRegexPatternSet@ request, including the identifier of the pattern set and the regular expression patterns you want AWS WAF to search for.+grpsrsRegexPatternSet :: Lens' GetRegexPatternSetResponse (Maybe RegexPatternSet)+grpsrsRegexPatternSet = lens _grpsrsRegexPatternSet (\ s a -> s{_grpsrsRegexPatternSet = a});++-- | -- | The response status code.+grpsrsResponseStatus :: Lens' GetRegexPatternSetResponse Int+grpsrsResponseStatus = lens _grpsrsResponseStatus (\ s a -> s{_grpsrsResponseStatus = a});++instance NFData GetRegexPatternSetResponse where
gen/Network/AWS/WAF/GetRule.hs view
@@ -12,9 +12,9 @@ -- | -- Module : Network.AWS.WAF.GetRule--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) --@@ -37,18 +37,19 @@ , grrsResponseStatus ) where -import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response-import Network.AWS.WAF.Types-import Network.AWS.WAF.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.WAF.Types+import Network.AWS.WAF.Types.Product -- | /See:/ 'getRule' smart constructor. newtype GetRule = GetRule'- { _grRuleId :: Text- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _grRuleId :: Text+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'GetRule' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -57,11 +58,9 @@ getRule :: Text -- ^ 'grRuleId' -> GetRule-getRule pRuleId_ =- GetRule'- { _grRuleId = pRuleId_- }+getRule pRuleId_ = GetRule' {_grRuleId = pRuleId_} + -- | The @RuleId@ of the 'Rule' that you want to get. @RuleId@ is returned by 'CreateRule' and by 'ListRules' . grRuleId :: Lens' GetRule Text grRuleId = lens _grRuleId (\ s a -> s{_grRuleId = a});@@ -75,9 +74,9 @@ GetRuleResponse' <$> (x .?> "Rule") <*> (pure (fromEnum s))) -instance Hashable GetRule+instance Hashable GetRule where -instance NFData GetRule+instance NFData GetRule where instance ToHeaders GetRule where toHeaders@@ -100,10 +99,11 @@ -- | /See:/ 'getRuleResponse' smart constructor. data GetRuleResponse = GetRuleResponse'- { _grrsRule :: !(Maybe Rule)- , _grrsResponseStatus :: !Int- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _grrsRule :: !(Maybe Rule)+ , _grrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'GetRuleResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -115,11 +115,9 @@ :: Int -- ^ 'grrsResponseStatus' -> GetRuleResponse getRuleResponse pResponseStatus_ =- GetRuleResponse'- { _grrsRule = Nothing- , _grrsResponseStatus = pResponseStatus_- }+ GetRuleResponse' {_grrsRule = Nothing, _grrsResponseStatus = pResponseStatus_} + -- | Information about the 'Rule' that you specified in the @GetRule@ request. For more information, see the following topics: * 'Rule' : Contains @MetricName@ , @Name@ , an array of @Predicate@ objects, and @RuleId@ * 'Predicate' : Each @Predicate@ object contains @DataId@ , @Negated@ , and @Type@ grrsRule :: Lens' GetRuleResponse (Maybe Rule) grrsRule = lens _grrsRule (\ s a -> s{_grrsRule = a});@@ -128,4 +126,4 @@ grrsResponseStatus :: Lens' GetRuleResponse Int grrsResponseStatus = lens _grrsResponseStatus (\ s a -> s{_grrsResponseStatus = a}); -instance NFData GetRuleResponse+instance NFData GetRuleResponse where
gen/Network/AWS/WAF/GetSampledRequests.hs view
@@ -12,13 +12,13 @@ -- | -- Module : Network.AWS.WAF.GetSampledRequests--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) ----- Gets detailed information about a specified number of requests--a sample--that AWS WAF randomly selects from among the first 5,000 requests that your AWS resource received during a time range that you choose. You can specify a sample size of up to 100 requests, and you can specify any time range in the previous three hours.+-- Gets detailed information about a specified number of requests--a sample--that AWS WAF randomly selects from among the first 5,000 requests that your AWS resource received during a time range that you choose. You can specify a sample size of up to 500 requests, and you can specify any time range in the previous three hours. -- -- -- @GetSampledRequests@ returns a time range, which is usually the time range that you specified. However, if your resource (such as a CloudFront distribution) received 5,000 requests before the specified time range elapsed, @GetSampledRequests@ returns an updated time range. This new time range indicates the actual period during which AWS WAF selected the requests in the sample.@@ -44,21 +44,22 @@ , gsrrsResponseStatus ) where -import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response-import Network.AWS.WAF.Types-import Network.AWS.WAF.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.WAF.Types+import Network.AWS.WAF.Types.Product -- | /See:/ 'getSampledRequests' smart constructor. data GetSampledRequests = GetSampledRequests'- { _gsrWebACLId :: !Text- , _gsrRuleId :: !Text- , _gsrTimeWindow :: !TimeWindow- , _gsrMaxItems :: !Nat- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _gsrWebACLId :: !Text+ , _gsrRuleId :: !Text+ , _gsrTimeWindow :: !TimeWindow+ , _gsrMaxItems :: !Nat+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'GetSampledRequests' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -67,7 +68,7 @@ -- -- * 'gsrRuleId' - @RuleId@ is one of two values: * The @RuleId@ of the @Rule@ for which you want @GetSampledRequests@ to return a sample of requests. * @Default_Action@ , which causes @GetSampledRequests@ to return a sample of the requests that didn't match any of the rules in the specified @WebACL@ . ----- * 'gsrTimeWindow' - The start date and time and the end date and time of the range for which you want @GetSampledRequests@ to return a sample of requests. Specify the date and time in Unix time format (in seconds). You can specify any time range in the previous three hours.+-- * 'gsrTimeWindow' - The start date and time and the end date and time of the range for which you want @GetSampledRequests@ to return a sample of requests. Specify the date and time in the following format: @"2016-09-27T14:50Z"@ . You can specify any time range in the previous three hours. -- -- * 'gsrMaxItems' - The number of requests that you want AWS WAF to return from among the first 5,000 requests that your AWS resource received during the time range. If your resource received fewer requests than the value of @MaxItems@ , @GetSampledRequests@ returns information about all of them. getSampledRequests@@ -77,13 +78,14 @@ -> Natural -- ^ 'gsrMaxItems' -> GetSampledRequests getSampledRequests pWebACLId_ pRuleId_ pTimeWindow_ pMaxItems_ =- GetSampledRequests'- { _gsrWebACLId = pWebACLId_- , _gsrRuleId = pRuleId_- , _gsrTimeWindow = pTimeWindow_- , _gsrMaxItems = _Nat # pMaxItems_- }+ GetSampledRequests'+ { _gsrWebACLId = pWebACLId_+ , _gsrRuleId = pRuleId_+ , _gsrTimeWindow = pTimeWindow_+ , _gsrMaxItems = _Nat # pMaxItems_+ } + -- | The @WebACLId@ of the @WebACL@ for which you want @GetSampledRequests@ to return a sample of requests. gsrWebACLId :: Lens' GetSampledRequests Text gsrWebACLId = lens _gsrWebACLId (\ s a -> s{_gsrWebACLId = a});@@ -92,7 +94,7 @@ gsrRuleId :: Lens' GetSampledRequests Text gsrRuleId = lens _gsrRuleId (\ s a -> s{_gsrRuleId = a}); --- | The start date and time and the end date and time of the range for which you want @GetSampledRequests@ to return a sample of requests. Specify the date and time in Unix time format (in seconds). You can specify any time range in the previous three hours.+-- | The start date and time and the end date and time of the range for which you want @GetSampledRequests@ to return a sample of requests. Specify the date and time in the following format: @"2016-09-27T14:50Z"@ . You can specify any time range in the previous three hours. gsrTimeWindow :: Lens' GetSampledRequests TimeWindow gsrTimeWindow = lens _gsrTimeWindow (\ s a -> s{_gsrTimeWindow = a}); @@ -113,9 +115,9 @@ <*> (x .?> "TimeWindow") <*> (pure (fromEnum s))) -instance Hashable GetSampledRequests+instance Hashable GetSampledRequests where -instance NFData GetSampledRequests+instance NFData GetSampledRequests where instance ToHeaders GetSampledRequests where toHeaders@@ -143,12 +145,13 @@ -- | /See:/ 'getSampledRequestsResponse' smart constructor. data GetSampledRequestsResponse = GetSampledRequestsResponse'- { _gsrrsSampledRequests :: !(Maybe [SampledHTTPRequest])- , _gsrrsPopulationSize :: !(Maybe Integer)- , _gsrrsTimeWindow :: !(Maybe TimeWindow)- , _gsrrsResponseStatus :: !Int- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _gsrrsSampledRequests :: !(Maybe [SampledHTTPRequest])+ , _gsrrsPopulationSize :: !(Maybe Integer)+ , _gsrrsTimeWindow :: !(Maybe TimeWindow)+ , _gsrrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'GetSampledRequestsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -164,13 +167,14 @@ :: Int -- ^ 'gsrrsResponseStatus' -> GetSampledRequestsResponse getSampledRequestsResponse pResponseStatus_ =- GetSampledRequestsResponse'- { _gsrrsSampledRequests = Nothing- , _gsrrsPopulationSize = Nothing- , _gsrrsTimeWindow = Nothing- , _gsrrsResponseStatus = pResponseStatus_- }+ GetSampledRequestsResponse'+ { _gsrrsSampledRequests = Nothing+ , _gsrrsPopulationSize = Nothing+ , _gsrrsTimeWindow = Nothing+ , _gsrrsResponseStatus = pResponseStatus_+ } + -- | A complex type that contains detailed information about each of the requests in the sample. gsrrsSampledRequests :: Lens' GetSampledRequestsResponse [SampledHTTPRequest] gsrrsSampledRequests = lens _gsrrsSampledRequests (\ s a -> s{_gsrrsSampledRequests = a}) . _Default . _Coerce;@@ -187,4 +191,4 @@ gsrrsResponseStatus :: Lens' GetSampledRequestsResponse Int gsrrsResponseStatus = lens _gsrrsResponseStatus (\ s a -> s{_gsrrsResponseStatus = a}); -instance NFData GetSampledRequestsResponse+instance NFData GetSampledRequestsResponse where
gen/Network/AWS/WAF/GetSizeConstraintSet.hs view
@@ -12,9 +12,9 @@ -- | -- Module : Network.AWS.WAF.GetSizeConstraintSet--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) --@@ -37,18 +37,19 @@ , gscsrsResponseStatus ) where -import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response-import Network.AWS.WAF.Types-import Network.AWS.WAF.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.WAF.Types+import Network.AWS.WAF.Types.Product -- | /See:/ 'getSizeConstraintSet' smart constructor. newtype GetSizeConstraintSet = GetSizeConstraintSet'- { _gscsSizeConstraintSetId :: Text- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _gscsSizeConstraintSetId :: Text+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'GetSizeConstraintSet' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -58,10 +59,9 @@ :: Text -- ^ 'gscsSizeConstraintSetId' -> GetSizeConstraintSet getSizeConstraintSet pSizeConstraintSetId_ =- GetSizeConstraintSet'- { _gscsSizeConstraintSetId = pSizeConstraintSetId_- }+ GetSizeConstraintSet' {_gscsSizeConstraintSetId = pSizeConstraintSetId_} + -- | The @SizeConstraintSetId@ of the 'SizeConstraintSet' that you want to get. @SizeConstraintSetId@ is returned by 'CreateSizeConstraintSet' and by 'ListSizeConstraintSets' . gscsSizeConstraintSetId :: Lens' GetSizeConstraintSet Text gscsSizeConstraintSetId = lens _gscsSizeConstraintSetId (\ s a -> s{_gscsSizeConstraintSetId = a});@@ -76,9 +76,9 @@ GetSizeConstraintSetResponse' <$> (x .?> "SizeConstraintSet") <*> (pure (fromEnum s))) -instance Hashable GetSizeConstraintSet+instance Hashable GetSizeConstraintSet where -instance NFData GetSizeConstraintSet+instance NFData GetSizeConstraintSet where instance ToHeaders GetSizeConstraintSet where toHeaders@@ -105,10 +105,11 @@ -- | /See:/ 'getSizeConstraintSetResponse' smart constructor. data GetSizeConstraintSetResponse = GetSizeConstraintSetResponse'- { _gscsrsSizeConstraintSet :: !(Maybe SizeConstraintSet)- , _gscsrsResponseStatus :: !Int- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _gscsrsSizeConstraintSet :: !(Maybe SizeConstraintSet)+ , _gscsrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'GetSizeConstraintSetResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -120,11 +121,10 @@ :: Int -- ^ 'gscsrsResponseStatus' -> GetSizeConstraintSetResponse getSizeConstraintSetResponse pResponseStatus_ =- GetSizeConstraintSetResponse'- { _gscsrsSizeConstraintSet = Nothing- , _gscsrsResponseStatus = pResponseStatus_- }+ GetSizeConstraintSetResponse'+ {_gscsrsSizeConstraintSet = Nothing, _gscsrsResponseStatus = pResponseStatus_} + -- | Information about the 'SizeConstraintSet' that you specified in the @GetSizeConstraintSet@ request. For more information, see the following topics: * 'SizeConstraintSet' : Contains @SizeConstraintSetId@ , @SizeConstraints@ , and @Name@ * @SizeConstraints@ : Contains an array of 'SizeConstraint' objects. Each @SizeConstraint@ object contains 'FieldToMatch' , @TextTransformation@ , @ComparisonOperator@ , and @Size@ * 'FieldToMatch' : Contains @Data@ and @Type@ gscsrsSizeConstraintSet :: Lens' GetSizeConstraintSetResponse (Maybe SizeConstraintSet) gscsrsSizeConstraintSet = lens _gscsrsSizeConstraintSet (\ s a -> s{_gscsrsSizeConstraintSet = a});@@ -133,4 +133,4 @@ gscsrsResponseStatus :: Lens' GetSizeConstraintSetResponse Int gscsrsResponseStatus = lens _gscsrsResponseStatus (\ s a -> s{_gscsrsResponseStatus = a}); -instance NFData GetSizeConstraintSetResponse+instance NFData GetSizeConstraintSetResponse where
gen/Network/AWS/WAF/GetSqlInjectionMatchSet.hs view
@@ -12,9 +12,9 @@ -- | -- Module : Network.AWS.WAF.GetSqlInjectionMatchSet--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) --@@ -37,12 +37,12 @@ , gsimsrsResponseStatus ) where -import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response-import Network.AWS.WAF.Types-import Network.AWS.WAF.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.WAF.Types+import Network.AWS.WAF.Types.Product -- | A request to get a 'SqlInjectionMatchSet' . --@@ -50,9 +50,10 @@ -- -- /See:/ 'getSqlInjectionMatchSet' smart constructor. newtype GetSqlInjectionMatchSet = GetSqlInjectionMatchSet'- { _gsimsSqlInjectionMatchSetId :: Text- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _gsimsSqlInjectionMatchSetId :: Text+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'GetSqlInjectionMatchSet' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -62,10 +63,10 @@ :: Text -- ^ 'gsimsSqlInjectionMatchSetId' -> GetSqlInjectionMatchSet getSqlInjectionMatchSet pSqlInjectionMatchSetId_ =- GetSqlInjectionMatchSet'- { _gsimsSqlInjectionMatchSetId = pSqlInjectionMatchSetId_- }+ GetSqlInjectionMatchSet'+ {_gsimsSqlInjectionMatchSetId = pSqlInjectionMatchSetId_} + -- | The @SqlInjectionMatchSetId@ of the 'SqlInjectionMatchSet' that you want to get. @SqlInjectionMatchSetId@ is returned by 'CreateSqlInjectionMatchSet' and by 'ListSqlInjectionMatchSets' . gsimsSqlInjectionMatchSetId :: Lens' GetSqlInjectionMatchSet Text gsimsSqlInjectionMatchSetId = lens _gsimsSqlInjectionMatchSetId (\ s a -> s{_gsimsSqlInjectionMatchSetId = a});@@ -81,9 +82,9 @@ (x .?> "SqlInjectionMatchSet") <*> (pure (fromEnum s))) -instance Hashable GetSqlInjectionMatchSet+instance Hashable GetSqlInjectionMatchSet where -instance NFData GetSqlInjectionMatchSet+instance NFData GetSqlInjectionMatchSet where instance ToHeaders GetSqlInjectionMatchSet where toHeaders@@ -115,10 +116,11 @@ -- -- /See:/ 'getSqlInjectionMatchSetResponse' smart constructor. data GetSqlInjectionMatchSetResponse = GetSqlInjectionMatchSetResponse'- { _gsimsrsSqlInjectionMatchSet :: !(Maybe SqlInjectionMatchSet)- , _gsimsrsResponseStatus :: !Int- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _gsimsrsSqlInjectionMatchSet :: !(Maybe SqlInjectionMatchSet)+ , _gsimsrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'GetSqlInjectionMatchSetResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -130,11 +132,12 @@ :: Int -- ^ 'gsimsrsResponseStatus' -> GetSqlInjectionMatchSetResponse getSqlInjectionMatchSetResponse pResponseStatus_ =- GetSqlInjectionMatchSetResponse'- { _gsimsrsSqlInjectionMatchSet = Nothing- , _gsimsrsResponseStatus = pResponseStatus_- }+ GetSqlInjectionMatchSetResponse'+ { _gsimsrsSqlInjectionMatchSet = Nothing+ , _gsimsrsResponseStatus = pResponseStatus_+ } + -- | Information about the 'SqlInjectionMatchSet' that you specified in the @GetSqlInjectionMatchSet@ request. For more information, see the following topics: * 'SqlInjectionMatchSet' : Contains @Name@ , @SqlInjectionMatchSetId@ , and an array of @SqlInjectionMatchTuple@ objects * 'SqlInjectionMatchTuple' : Each @SqlInjectionMatchTuple@ object contains @FieldToMatch@ and @TextTransformation@ * 'FieldToMatch' : Contains @Data@ and @Type@ gsimsrsSqlInjectionMatchSet :: Lens' GetSqlInjectionMatchSetResponse (Maybe SqlInjectionMatchSet) gsimsrsSqlInjectionMatchSet = lens _gsimsrsSqlInjectionMatchSet (\ s a -> s{_gsimsrsSqlInjectionMatchSet = a});@@ -143,4 +146,4 @@ gsimsrsResponseStatus :: Lens' GetSqlInjectionMatchSetResponse Int gsimsrsResponseStatus = lens _gsimsrsResponseStatus (\ s a -> s{_gsimsrsResponseStatus = a}); -instance NFData GetSqlInjectionMatchSetResponse+instance NFData GetSqlInjectionMatchSetResponse where
gen/Network/AWS/WAF/GetWebACL.hs view
@@ -12,9 +12,9 @@ -- | -- Module : Network.AWS.WAF.GetWebACL--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) --@@ -37,18 +37,19 @@ , gwarsResponseStatus ) where -import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response-import Network.AWS.WAF.Types-import Network.AWS.WAF.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.WAF.Types+import Network.AWS.WAF.Types.Product -- | /See:/ 'getWebACL' smart constructor. newtype GetWebACL = GetWebACL'- { _gwaWebACLId :: Text- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _gwaWebACLId :: Text+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'GetWebACL' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -57,11 +58,9 @@ getWebACL :: Text -- ^ 'gwaWebACLId' -> GetWebACL-getWebACL pWebACLId_ =- GetWebACL'- { _gwaWebACLId = pWebACLId_- }+getWebACL pWebACLId_ = GetWebACL' {_gwaWebACLId = pWebACLId_} + -- | The @WebACLId@ of the 'WebACL' that you want to get. @WebACLId@ is returned by 'CreateWebACL' and by 'ListWebACLs' . gwaWebACLId :: Lens' GetWebACL Text gwaWebACLId = lens _gwaWebACLId (\ s a -> s{_gwaWebACLId = a});@@ -75,9 +74,9 @@ GetWebACLResponse' <$> (x .?> "WebACL") <*> (pure (fromEnum s))) -instance Hashable GetWebACL+instance Hashable GetWebACL where -instance NFData GetWebACL+instance NFData GetWebACL where instance ToHeaders GetWebACL where toHeaders@@ -101,10 +100,11 @@ -- | /See:/ 'getWebACLResponse' smart constructor. data GetWebACLResponse = GetWebACLResponse'- { _gwarsWebACL :: !(Maybe WebACL)- , _gwarsResponseStatus :: !Int- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _gwarsWebACL :: !(Maybe WebACL)+ , _gwarsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'GetWebACLResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -116,11 +116,10 @@ :: Int -- ^ 'gwarsResponseStatus' -> GetWebACLResponse getWebACLResponse pResponseStatus_ =- GetWebACLResponse'- { _gwarsWebACL = Nothing- , _gwarsResponseStatus = pResponseStatus_- }+ GetWebACLResponse'+ {_gwarsWebACL = Nothing, _gwarsResponseStatus = pResponseStatus_} + -- | Information about the 'WebACL' that you specified in the @GetWebACL@ request. For more information, see the following topics: * 'WebACL' : Contains @DefaultAction@ , @MetricName@ , @Name@ , an array of @Rule@ objects, and @WebACLId@ * @DefaultAction@ (Data type is 'WafAction' ): Contains @Type@ * @Rules@ : Contains an array of @ActivatedRule@ objects, which contain @Action@ , @Priority@ , and @RuleId@ * @Action@ : Contains @Type@ gwarsWebACL :: Lens' GetWebACLResponse (Maybe WebACL) gwarsWebACL = lens _gwarsWebACL (\ s a -> s{_gwarsWebACL = a});@@ -129,4 +128,4 @@ gwarsResponseStatus :: Lens' GetWebACLResponse Int gwarsResponseStatus = lens _gwarsResponseStatus (\ s a -> s{_gwarsResponseStatus = a}); -instance NFData GetWebACLResponse+instance NFData GetWebACLResponse where
gen/Network/AWS/WAF/GetXSSMatchSet.hs view
@@ -12,9 +12,9 @@ -- | -- Module : Network.AWS.WAF.GetXSSMatchSet--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) --@@ -37,12 +37,12 @@ , gxmsrsResponseStatus ) where -import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response-import Network.AWS.WAF.Types-import Network.AWS.WAF.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.WAF.Types+import Network.AWS.WAF.Types.Product -- | A request to get an 'XssMatchSet' . --@@ -50,9 +50,10 @@ -- -- /See:/ 'getXSSMatchSet' smart constructor. newtype GetXSSMatchSet = GetXSSMatchSet'- { _gxmsXSSMatchSetId :: Text- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _gxmsXSSMatchSetId :: Text+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'GetXSSMatchSet' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -62,10 +63,9 @@ :: Text -- ^ 'gxmsXSSMatchSetId' -> GetXSSMatchSet getXSSMatchSet pXSSMatchSetId_ =- GetXSSMatchSet'- { _gxmsXSSMatchSetId = pXSSMatchSetId_- }+ GetXSSMatchSet' {_gxmsXSSMatchSetId = pXSSMatchSetId_} + -- | The @XssMatchSetId@ of the 'XssMatchSet' that you want to get. @XssMatchSetId@ is returned by 'CreateXssMatchSet' and by 'ListXssMatchSets' . gxmsXSSMatchSetId :: Lens' GetXSSMatchSet Text gxmsXSSMatchSetId = lens _gxmsXSSMatchSetId (\ s a -> s{_gxmsXSSMatchSetId = a});@@ -79,9 +79,9 @@ GetXSSMatchSetResponse' <$> (x .?> "XssMatchSet") <*> (pure (fromEnum s))) -instance Hashable GetXSSMatchSet+instance Hashable GetXSSMatchSet where -instance NFData GetXSSMatchSet+instance NFData GetXSSMatchSet where instance ToHeaders GetXSSMatchSet where toHeaders@@ -110,10 +110,11 @@ -- -- /See:/ 'getXSSMatchSetResponse' smart constructor. data GetXSSMatchSetResponse = GetXSSMatchSetResponse'- { _gxmsrsXSSMatchSet :: !(Maybe XSSMatchSet)- , _gxmsrsResponseStatus :: !Int- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _gxmsrsXSSMatchSet :: !(Maybe XSSMatchSet)+ , _gxmsrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'GetXSSMatchSetResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -125,11 +126,10 @@ :: Int -- ^ 'gxmsrsResponseStatus' -> GetXSSMatchSetResponse getXSSMatchSetResponse pResponseStatus_ =- GetXSSMatchSetResponse'- { _gxmsrsXSSMatchSet = Nothing- , _gxmsrsResponseStatus = pResponseStatus_- }+ GetXSSMatchSetResponse'+ {_gxmsrsXSSMatchSet = Nothing, _gxmsrsResponseStatus = pResponseStatus_} + -- | Information about the 'XssMatchSet' that you specified in the @GetXssMatchSet@ request. For more information, see the following topics: * 'XssMatchSet' : Contains @Name@ , @XssMatchSetId@ , and an array of @XssMatchTuple@ objects * 'XssMatchTuple' : Each @XssMatchTuple@ object contains @FieldToMatch@ and @TextTransformation@ * 'FieldToMatch' : Contains @Data@ and @Type@ gxmsrsXSSMatchSet :: Lens' GetXSSMatchSetResponse (Maybe XSSMatchSet) gxmsrsXSSMatchSet = lens _gxmsrsXSSMatchSet (\ s a -> s{_gxmsrsXSSMatchSet = a});@@ -138,4 +138,4 @@ gxmsrsResponseStatus :: Lens' GetXSSMatchSetResponse Int gxmsrsResponseStatus = lens _gxmsrsResponseStatus (\ s a -> s{_gxmsrsResponseStatus = a}); -instance NFData GetXSSMatchSetResponse+instance NFData GetXSSMatchSetResponse where
gen/Network/AWS/WAF/ListByteMatchSets.hs view
@@ -12,9 +12,9 @@ -- | -- Module : Network.AWS.WAF.ListByteMatchSets--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) --@@ -41,20 +41,21 @@ , lbmsrsResponseStatus ) where -import Network.AWS.Lens-import Network.AWS.Pager-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response-import Network.AWS.WAF.Types-import Network.AWS.WAF.Types.Product+import Network.AWS.Lens+import Network.AWS.Pager+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.WAF.Types+import Network.AWS.WAF.Types.Product -- | /See:/ 'listByteMatchSets' smart constructor. data ListByteMatchSets = ListByteMatchSets'- { _lbmsNextMarker :: !(Maybe Text)- , _lbmsLimit :: !(Maybe Nat)- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _lbmsNextMarker :: !(Maybe Text)+ , _lbmsLimit :: !(Maybe Nat)+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ListByteMatchSets' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -65,11 +66,9 @@ listByteMatchSets :: ListByteMatchSets listByteMatchSets =- ListByteMatchSets'- { _lbmsNextMarker = Nothing- , _lbmsLimit = Nothing- }+ ListByteMatchSets' {_lbmsNextMarker = Nothing, _lbmsLimit = Nothing} + -- | If you specify a value for @Limit@ and you have more @ByteMatchSets@ than the value of @Limit@ , AWS WAF returns a @NextMarker@ value in the response that allows you to list another group of @ByteMatchSets@ . For the second and subsequent @ListByteMatchSets@ requests, specify the value of @NextMarker@ from the previous response to get information about another batch of @ByteMatchSets@ . lbmsNextMarker :: Lens' ListByteMatchSets (Maybe Text) lbmsNextMarker = lens _lbmsNextMarker (\ s a -> s{_lbmsNextMarker = a});@@ -96,9 +95,9 @@ (x .?> "NextMarker") <*> (pure (fromEnum s))) -instance Hashable ListByteMatchSets+instance Hashable ListByteMatchSets where -instance NFData ListByteMatchSets+instance NFData ListByteMatchSets where instance ToHeaders ListByteMatchSets where toHeaders@@ -124,11 +123,12 @@ -- | /See:/ 'listByteMatchSetsResponse' smart constructor. data ListByteMatchSetsResponse = ListByteMatchSetsResponse'- { _lbmsrsByteMatchSets :: !(Maybe [ByteMatchSetSummary])- , _lbmsrsNextMarker :: !(Maybe Text)- , _lbmsrsResponseStatus :: !Int- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _lbmsrsByteMatchSets :: !(Maybe [ByteMatchSetSummary])+ , _lbmsrsNextMarker :: !(Maybe Text)+ , _lbmsrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ListByteMatchSetsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -142,12 +142,13 @@ :: Int -- ^ 'lbmsrsResponseStatus' -> ListByteMatchSetsResponse listByteMatchSetsResponse pResponseStatus_ =- ListByteMatchSetsResponse'- { _lbmsrsByteMatchSets = Nothing- , _lbmsrsNextMarker = Nothing- , _lbmsrsResponseStatus = pResponseStatus_- }+ ListByteMatchSetsResponse'+ { _lbmsrsByteMatchSets = Nothing+ , _lbmsrsNextMarker = Nothing+ , _lbmsrsResponseStatus = pResponseStatus_+ } + -- | An array of 'ByteMatchSetSummary' objects. lbmsrsByteMatchSets :: Lens' ListByteMatchSetsResponse [ByteMatchSetSummary] lbmsrsByteMatchSets = lens _lbmsrsByteMatchSets (\ s a -> s{_lbmsrsByteMatchSets = a}) . _Default . _Coerce;@@ -160,4 +161,4 @@ lbmsrsResponseStatus :: Lens' ListByteMatchSetsResponse Int lbmsrsResponseStatus = lens _lbmsrsResponseStatus (\ s a -> s{_lbmsrsResponseStatus = a}); -instance NFData ListByteMatchSetsResponse+instance NFData ListByteMatchSetsResponse where
+ gen/Network/AWS/WAF/ListGeoMatchSets.hs view
@@ -0,0 +1,154 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Network.AWS.WAF.ListGeoMatchSets+-- Copyright : (c) 2013-2017 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns an array of 'GeoMatchSetSummary' objects in the response.+--+--+module Network.AWS.WAF.ListGeoMatchSets+ (+ -- * Creating a Request+ listGeoMatchSets+ , ListGeoMatchSets+ -- * Request Lenses+ , lgmsNextMarker+ , lgmsLimit++ -- * Destructuring the Response+ , listGeoMatchSetsResponse+ , ListGeoMatchSetsResponse+ -- * Response Lenses+ , lgmsrsGeoMatchSets+ , lgmsrsNextMarker+ , lgmsrsResponseStatus+ ) where++import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.WAF.Types+import Network.AWS.WAF.Types.Product++-- | /See:/ 'listGeoMatchSets' smart constructor.+data ListGeoMatchSets = ListGeoMatchSets'+ { _lgmsNextMarker :: !(Maybe Text)+ , _lgmsLimit :: !(Maybe Nat)+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ListGeoMatchSets' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lgmsNextMarker' - If you specify a value for @Limit@ and you have more @GeoMatchSet@ s than the value of @Limit@ , AWS WAF returns a @NextMarker@ value in the response that allows you to list another group of @GeoMatchSet@ objects. For the second and subsequent @ListGeoMatchSets@ requests, specify the value of @NextMarker@ from the previous response to get information about another batch of @GeoMatchSet@ objects.+--+-- * 'lgmsLimit' - Specifies the number of @GeoMatchSet@ objects that you want AWS WAF to return for this request. If you have more @GeoMatchSet@ objects than the number you specify for @Limit@ , the response includes a @NextMarker@ value that you can use to get another batch of @GeoMatchSet@ objects.+listGeoMatchSets+ :: ListGeoMatchSets+listGeoMatchSets =+ ListGeoMatchSets' {_lgmsNextMarker = Nothing, _lgmsLimit = Nothing}+++-- | If you specify a value for @Limit@ and you have more @GeoMatchSet@ s than the value of @Limit@ , AWS WAF returns a @NextMarker@ value in the response that allows you to list another group of @GeoMatchSet@ objects. For the second and subsequent @ListGeoMatchSets@ requests, specify the value of @NextMarker@ from the previous response to get information about another batch of @GeoMatchSet@ objects.+lgmsNextMarker :: Lens' ListGeoMatchSets (Maybe Text)+lgmsNextMarker = lens _lgmsNextMarker (\ s a -> s{_lgmsNextMarker = a});++-- | Specifies the number of @GeoMatchSet@ objects that you want AWS WAF to return for this request. If you have more @GeoMatchSet@ objects than the number you specify for @Limit@ , the response includes a @NextMarker@ value that you can use to get another batch of @GeoMatchSet@ objects.+lgmsLimit :: Lens' ListGeoMatchSets (Maybe Natural)+lgmsLimit = lens _lgmsLimit (\ s a -> s{_lgmsLimit = a}) . mapping _Nat;++instance AWSRequest ListGeoMatchSets where+ type Rs ListGeoMatchSets = ListGeoMatchSetsResponse+ request = postJSON waf+ response+ = receiveJSON+ (\ s h x ->+ ListGeoMatchSetsResponse' <$>+ (x .?> "GeoMatchSets" .!@ mempty) <*>+ (x .?> "NextMarker")+ <*> (pure (fromEnum s)))++instance Hashable ListGeoMatchSets where++instance NFData ListGeoMatchSets where++instance ToHeaders ListGeoMatchSets where+ toHeaders+ = const+ (mconcat+ ["X-Amz-Target" =#+ ("AWSWAF_20150824.ListGeoMatchSets" :: ByteString),+ "Content-Type" =#+ ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON ListGeoMatchSets where+ toJSON ListGeoMatchSets'{..}+ = object+ (catMaybes+ [("NextMarker" .=) <$> _lgmsNextMarker,+ ("Limit" .=) <$> _lgmsLimit])++instance ToPath ListGeoMatchSets where+ toPath = const "/"++instance ToQuery ListGeoMatchSets where+ toQuery = const mempty++-- | /See:/ 'listGeoMatchSetsResponse' smart constructor.+data ListGeoMatchSetsResponse = ListGeoMatchSetsResponse'+ { _lgmsrsGeoMatchSets :: !(Maybe [GeoMatchSetSummary])+ , _lgmsrsNextMarker :: !(Maybe Text)+ , _lgmsrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ListGeoMatchSetsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lgmsrsGeoMatchSets' - An array of 'GeoMatchSetSummary' objects.+--+-- * 'lgmsrsNextMarker' - If you have more @GeoMatchSet@ objects than the number that you specified for @Limit@ in the request, the response includes a @NextMarker@ value. To list more @GeoMatchSet@ objects, submit another @ListGeoMatchSets@ request, and specify the @NextMarker@ value from the response in the @NextMarker@ value in the next request.+--+-- * 'lgmsrsResponseStatus' - -- | The response status code.+listGeoMatchSetsResponse+ :: Int -- ^ 'lgmsrsResponseStatus'+ -> ListGeoMatchSetsResponse+listGeoMatchSetsResponse pResponseStatus_ =+ ListGeoMatchSetsResponse'+ { _lgmsrsGeoMatchSets = Nothing+ , _lgmsrsNextMarker = Nothing+ , _lgmsrsResponseStatus = pResponseStatus_+ }+++-- | An array of 'GeoMatchSetSummary' objects.+lgmsrsGeoMatchSets :: Lens' ListGeoMatchSetsResponse [GeoMatchSetSummary]+lgmsrsGeoMatchSets = lens _lgmsrsGeoMatchSets (\ s a -> s{_lgmsrsGeoMatchSets = a}) . _Default . _Coerce;++-- | If you have more @GeoMatchSet@ objects than the number that you specified for @Limit@ in the request, the response includes a @NextMarker@ value. To list more @GeoMatchSet@ objects, submit another @ListGeoMatchSets@ request, and specify the @NextMarker@ value from the response in the @NextMarker@ value in the next request.+lgmsrsNextMarker :: Lens' ListGeoMatchSetsResponse (Maybe Text)+lgmsrsNextMarker = lens _lgmsrsNextMarker (\ s a -> s{_lgmsrsNextMarker = a});++-- | -- | The response status code.+lgmsrsResponseStatus :: Lens' ListGeoMatchSetsResponse Int+lgmsrsResponseStatus = lens _lgmsrsResponseStatus (\ s a -> s{_lgmsrsResponseStatus = a});++instance NFData ListGeoMatchSetsResponse where
gen/Network/AWS/WAF/ListIPSets.hs view
@@ -12,9 +12,9 @@ -- | -- Module : Network.AWS.WAF.ListIPSets--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) --@@ -41,36 +41,34 @@ , lisrsResponseStatus ) where -import Network.AWS.Lens-import Network.AWS.Pager-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response-import Network.AWS.WAF.Types-import Network.AWS.WAF.Types.Product+import Network.AWS.Lens+import Network.AWS.Pager+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.WAF.Types+import Network.AWS.WAF.Types.Product -- | /See:/ 'listIPSets' smart constructor. data ListIPSets = ListIPSets'- { _lisNextMarker :: !(Maybe Text)- , _lisLimit :: !(Maybe Nat)- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _lisNextMarker :: !(Maybe Text)+ , _lisLimit :: !(Maybe Nat)+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ListIPSets' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: ----- * 'lisNextMarker' - If you specify a value for @Limit@ and you have more @IPSets@ than the value of @Limit@ , AWS WAF returns a @NextMarker@ value in the response that allows you to list another group of @IPSets@ . For the second and subsequent @ListIPSets@ requests, specify the value of @NextMarker@ from the previous response to get information about another batch of @ByteMatchSets@ .+-- * 'lisNextMarker' - If you specify a value for @Limit@ and you have more @IPSets@ than the value of @Limit@ , AWS WAF returns a @NextMarker@ value in the response that allows you to list another group of @IPSets@ . For the second and subsequent @ListIPSets@ requests, specify the value of @NextMarker@ from the previous response to get information about another batch of @IPSets@ . -- -- * 'lisLimit' - Specifies the number of @IPSet@ objects that you want AWS WAF to return for this request. If you have more @IPSet@ objects than the number you specify for @Limit@ , the response includes a @NextMarker@ value that you can use to get another batch of @IPSet@ objects. listIPSets :: ListIPSets-listIPSets =- ListIPSets'- { _lisNextMarker = Nothing- , _lisLimit = Nothing- }+listIPSets = ListIPSets' {_lisNextMarker = Nothing, _lisLimit = Nothing} --- | If you specify a value for @Limit@ and you have more @IPSets@ than the value of @Limit@ , AWS WAF returns a @NextMarker@ value in the response that allows you to list another group of @IPSets@ . For the second and subsequent @ListIPSets@ requests, specify the value of @NextMarker@ from the previous response to get information about another batch of @ByteMatchSets@ .++-- | If you specify a value for @Limit@ and you have more @IPSets@ than the value of @Limit@ , AWS WAF returns a @NextMarker@ value in the response that allows you to list another group of @IPSets@ . For the second and subsequent @ListIPSets@ requests, specify the value of @NextMarker@ from the previous response to get information about another batch of @IPSets@ . lisNextMarker :: Lens' ListIPSets (Maybe Text) lisNextMarker = lens _lisNextMarker (\ s a -> s{_lisNextMarker = a}); @@ -95,9 +93,9 @@ (x .?> "NextMarker") <*> (x .?> "IPSets" .!@ mempty) <*> (pure (fromEnum s))) -instance Hashable ListIPSets+instance Hashable ListIPSets where -instance NFData ListIPSets+instance NFData ListIPSets where instance ToHeaders ListIPSets where toHeaders@@ -123,11 +121,12 @@ -- | /See:/ 'listIPSetsResponse' smart constructor. data ListIPSetsResponse = ListIPSetsResponse'- { _lisrsNextMarker :: !(Maybe Text)- , _lisrsIPSets :: !(Maybe [IPSetSummary])- , _lisrsResponseStatus :: !Int- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _lisrsNextMarker :: !(Maybe Text)+ , _lisrsIPSets :: !(Maybe [IPSetSummary])+ , _lisrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ListIPSetsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -141,12 +140,13 @@ :: Int -- ^ 'lisrsResponseStatus' -> ListIPSetsResponse listIPSetsResponse pResponseStatus_ =- ListIPSetsResponse'- { _lisrsNextMarker = Nothing- , _lisrsIPSets = Nothing- , _lisrsResponseStatus = pResponseStatus_- }+ ListIPSetsResponse'+ { _lisrsNextMarker = Nothing+ , _lisrsIPSets = Nothing+ , _lisrsResponseStatus = pResponseStatus_+ } + -- | If you have more @IPSet@ objects than the number that you specified for @Limit@ in the request, the response includes a @NextMarker@ value. To list more @IPSet@ objects, submit another @ListIPSets@ request, and specify the @NextMarker@ value from the response in the @NextMarker@ value in the next request. lisrsNextMarker :: Lens' ListIPSetsResponse (Maybe Text) lisrsNextMarker = lens _lisrsNextMarker (\ s a -> s{_lisrsNextMarker = a});@@ -159,4 +159,4 @@ lisrsResponseStatus :: Lens' ListIPSetsResponse Int lisrsResponseStatus = lens _lisrsResponseStatus (\ s a -> s{_lisrsResponseStatus = a}); -instance NFData ListIPSetsResponse+instance NFData ListIPSetsResponse where
+ gen/Network/AWS/WAF/ListRateBasedRules.hs view
@@ -0,0 +1,154 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Network.AWS.WAF.ListRateBasedRules+-- Copyright : (c) 2013-2017 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns an array of 'RuleSummary' objects.+--+--+module Network.AWS.WAF.ListRateBasedRules+ (+ -- * Creating a Request+ listRateBasedRules+ , ListRateBasedRules+ -- * Request Lenses+ , lrbrNextMarker+ , lrbrLimit++ -- * Destructuring the Response+ , listRateBasedRulesResponse+ , ListRateBasedRulesResponse+ -- * Response Lenses+ , lrbrrsRules+ , lrbrrsNextMarker+ , lrbrrsResponseStatus+ ) where++import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.WAF.Types+import Network.AWS.WAF.Types.Product++-- | /See:/ 'listRateBasedRules' smart constructor.+data ListRateBasedRules = ListRateBasedRules'+ { _lrbrNextMarker :: !(Maybe Text)+ , _lrbrLimit :: !(Maybe Nat)+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ListRateBasedRules' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lrbrNextMarker' - If you specify a value for @Limit@ and you have more @Rules@ than the value of @Limit@ , AWS WAF returns a @NextMarker@ value in the response that allows you to list another group of @Rules@ . For the second and subsequent @ListRateBasedRules@ requests, specify the value of @NextMarker@ from the previous response to get information about another batch of @Rules@ .+--+-- * 'lrbrLimit' - Specifies the number of @Rules@ that you want AWS WAF to return for this request. If you have more @Rules@ than the number that you specify for @Limit@ , the response includes a @NextMarker@ value that you can use to get another batch of @Rules@ .+listRateBasedRules+ :: ListRateBasedRules+listRateBasedRules =+ ListRateBasedRules' {_lrbrNextMarker = Nothing, _lrbrLimit = Nothing}+++-- | If you specify a value for @Limit@ and you have more @Rules@ than the value of @Limit@ , AWS WAF returns a @NextMarker@ value in the response that allows you to list another group of @Rules@ . For the second and subsequent @ListRateBasedRules@ requests, specify the value of @NextMarker@ from the previous response to get information about another batch of @Rules@ .+lrbrNextMarker :: Lens' ListRateBasedRules (Maybe Text)+lrbrNextMarker = lens _lrbrNextMarker (\ s a -> s{_lrbrNextMarker = a});++-- | Specifies the number of @Rules@ that you want AWS WAF to return for this request. If you have more @Rules@ than the number that you specify for @Limit@ , the response includes a @NextMarker@ value that you can use to get another batch of @Rules@ .+lrbrLimit :: Lens' ListRateBasedRules (Maybe Natural)+lrbrLimit = lens _lrbrLimit (\ s a -> s{_lrbrLimit = a}) . mapping _Nat;++instance AWSRequest ListRateBasedRules where+ type Rs ListRateBasedRules =+ ListRateBasedRulesResponse+ request = postJSON waf+ response+ = receiveJSON+ (\ s h x ->+ ListRateBasedRulesResponse' <$>+ (x .?> "Rules" .!@ mempty) <*> (x .?> "NextMarker")+ <*> (pure (fromEnum s)))++instance Hashable ListRateBasedRules where++instance NFData ListRateBasedRules where++instance ToHeaders ListRateBasedRules where+ toHeaders+ = const+ (mconcat+ ["X-Amz-Target" =#+ ("AWSWAF_20150824.ListRateBasedRules" :: ByteString),+ "Content-Type" =#+ ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON ListRateBasedRules where+ toJSON ListRateBasedRules'{..}+ = object+ (catMaybes+ [("NextMarker" .=) <$> _lrbrNextMarker,+ ("Limit" .=) <$> _lrbrLimit])++instance ToPath ListRateBasedRules where+ toPath = const "/"++instance ToQuery ListRateBasedRules where+ toQuery = const mempty++-- | /See:/ 'listRateBasedRulesResponse' smart constructor.+data ListRateBasedRulesResponse = ListRateBasedRulesResponse'+ { _lrbrrsRules :: !(Maybe [RuleSummary])+ , _lrbrrsNextMarker :: !(Maybe Text)+ , _lrbrrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ListRateBasedRulesResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lrbrrsRules' - An array of 'RuleSummary' objects.+--+-- * 'lrbrrsNextMarker' - If you have more @Rules@ than the number that you specified for @Limit@ in the request, the response includes a @NextMarker@ value. To list more @Rules@ , submit another @ListRateBasedRules@ request, and specify the @NextMarker@ value from the response in the @NextMarker@ value in the next request.+--+-- * 'lrbrrsResponseStatus' - -- | The response status code.+listRateBasedRulesResponse+ :: Int -- ^ 'lrbrrsResponseStatus'+ -> ListRateBasedRulesResponse+listRateBasedRulesResponse pResponseStatus_ =+ ListRateBasedRulesResponse'+ { _lrbrrsRules = Nothing+ , _lrbrrsNextMarker = Nothing+ , _lrbrrsResponseStatus = pResponseStatus_+ }+++-- | An array of 'RuleSummary' objects.+lrbrrsRules :: Lens' ListRateBasedRulesResponse [RuleSummary]+lrbrrsRules = lens _lrbrrsRules (\ s a -> s{_lrbrrsRules = a}) . _Default . _Coerce;++-- | If you have more @Rules@ than the number that you specified for @Limit@ in the request, the response includes a @NextMarker@ value. To list more @Rules@ , submit another @ListRateBasedRules@ request, and specify the @NextMarker@ value from the response in the @NextMarker@ value in the next request.+lrbrrsNextMarker :: Lens' ListRateBasedRulesResponse (Maybe Text)+lrbrrsNextMarker = lens _lrbrrsNextMarker (\ s a -> s{_lrbrrsNextMarker = a});++-- | -- | The response status code.+lrbrrsResponseStatus :: Lens' ListRateBasedRulesResponse Int+lrbrrsResponseStatus = lens _lrbrrsResponseStatus (\ s a -> s{_lrbrrsResponseStatus = a});++instance NFData ListRateBasedRulesResponse where
+ gen/Network/AWS/WAF/ListRegexMatchSets.hs view
@@ -0,0 +1,155 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Network.AWS.WAF.ListRegexMatchSets+-- Copyright : (c) 2013-2017 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns an array of 'RegexMatchSetSummary' objects.+--+--+module Network.AWS.WAF.ListRegexMatchSets+ (+ -- * Creating a Request+ listRegexMatchSets+ , ListRegexMatchSets+ -- * Request Lenses+ , lrmsNextMarker+ , lrmsLimit++ -- * Destructuring the Response+ , listRegexMatchSetsResponse+ , ListRegexMatchSetsResponse+ -- * Response Lenses+ , lrmsrsRegexMatchSets+ , lrmsrsNextMarker+ , lrmsrsResponseStatus+ ) where++import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.WAF.Types+import Network.AWS.WAF.Types.Product++-- | /See:/ 'listRegexMatchSets' smart constructor.+data ListRegexMatchSets = ListRegexMatchSets'+ { _lrmsNextMarker :: !(Maybe Text)+ , _lrmsLimit :: !(Maybe Nat)+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ListRegexMatchSets' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lrmsNextMarker' - If you specify a value for @Limit@ and you have more @RegexMatchSet@ objects than the value of @Limit@ , AWS WAF returns a @NextMarker@ value in the response that allows you to list another group of @ByteMatchSets@ . For the second and subsequent @ListRegexMatchSets@ requests, specify the value of @NextMarker@ from the previous response to get information about another batch of @RegexMatchSet@ objects.+--+-- * 'lrmsLimit' - Specifies the number of @RegexMatchSet@ objects that you want AWS WAF to return for this request. If you have more @RegexMatchSet@ objects than the number you specify for @Limit@ , the response includes a @NextMarker@ value that you can use to get another batch of @RegexMatchSet@ objects.+listRegexMatchSets+ :: ListRegexMatchSets+listRegexMatchSets =+ ListRegexMatchSets' {_lrmsNextMarker = Nothing, _lrmsLimit = Nothing}+++-- | If you specify a value for @Limit@ and you have more @RegexMatchSet@ objects than the value of @Limit@ , AWS WAF returns a @NextMarker@ value in the response that allows you to list another group of @ByteMatchSets@ . For the second and subsequent @ListRegexMatchSets@ requests, specify the value of @NextMarker@ from the previous response to get information about another batch of @RegexMatchSet@ objects.+lrmsNextMarker :: Lens' ListRegexMatchSets (Maybe Text)+lrmsNextMarker = lens _lrmsNextMarker (\ s a -> s{_lrmsNextMarker = a});++-- | Specifies the number of @RegexMatchSet@ objects that you want AWS WAF to return for this request. If you have more @RegexMatchSet@ objects than the number you specify for @Limit@ , the response includes a @NextMarker@ value that you can use to get another batch of @RegexMatchSet@ objects.+lrmsLimit :: Lens' ListRegexMatchSets (Maybe Natural)+lrmsLimit = lens _lrmsLimit (\ s a -> s{_lrmsLimit = a}) . mapping _Nat;++instance AWSRequest ListRegexMatchSets where+ type Rs ListRegexMatchSets =+ ListRegexMatchSetsResponse+ request = postJSON waf+ response+ = receiveJSON+ (\ s h x ->+ ListRegexMatchSetsResponse' <$>+ (x .?> "RegexMatchSets" .!@ mempty) <*>+ (x .?> "NextMarker")+ <*> (pure (fromEnum s)))++instance Hashable ListRegexMatchSets where++instance NFData ListRegexMatchSets where++instance ToHeaders ListRegexMatchSets where+ toHeaders+ = const+ (mconcat+ ["X-Amz-Target" =#+ ("AWSWAF_20150824.ListRegexMatchSets" :: ByteString),+ "Content-Type" =#+ ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON ListRegexMatchSets where+ toJSON ListRegexMatchSets'{..}+ = object+ (catMaybes+ [("NextMarker" .=) <$> _lrmsNextMarker,+ ("Limit" .=) <$> _lrmsLimit])++instance ToPath ListRegexMatchSets where+ toPath = const "/"++instance ToQuery ListRegexMatchSets where+ toQuery = const mempty++-- | /See:/ 'listRegexMatchSetsResponse' smart constructor.+data ListRegexMatchSetsResponse = ListRegexMatchSetsResponse'+ { _lrmsrsRegexMatchSets :: !(Maybe [RegexMatchSetSummary])+ , _lrmsrsNextMarker :: !(Maybe Text)+ , _lrmsrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ListRegexMatchSetsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lrmsrsRegexMatchSets' - An array of 'RegexMatchSetSummary' objects.+--+-- * 'lrmsrsNextMarker' - If you have more @RegexMatchSet@ objects than the number that you specified for @Limit@ in the request, the response includes a @NextMarker@ value. To list more @RegexMatchSet@ objects, submit another @ListRegexMatchSets@ request, and specify the @NextMarker@ value from the response in the @NextMarker@ value in the next request.+--+-- * 'lrmsrsResponseStatus' - -- | The response status code.+listRegexMatchSetsResponse+ :: Int -- ^ 'lrmsrsResponseStatus'+ -> ListRegexMatchSetsResponse+listRegexMatchSetsResponse pResponseStatus_ =+ ListRegexMatchSetsResponse'+ { _lrmsrsRegexMatchSets = Nothing+ , _lrmsrsNextMarker = Nothing+ , _lrmsrsResponseStatus = pResponseStatus_+ }+++-- | An array of 'RegexMatchSetSummary' objects.+lrmsrsRegexMatchSets :: Lens' ListRegexMatchSetsResponse [RegexMatchSetSummary]+lrmsrsRegexMatchSets = lens _lrmsrsRegexMatchSets (\ s a -> s{_lrmsrsRegexMatchSets = a}) . _Default . _Coerce;++-- | If you have more @RegexMatchSet@ objects than the number that you specified for @Limit@ in the request, the response includes a @NextMarker@ value. To list more @RegexMatchSet@ objects, submit another @ListRegexMatchSets@ request, and specify the @NextMarker@ value from the response in the @NextMarker@ value in the next request.+lrmsrsNextMarker :: Lens' ListRegexMatchSetsResponse (Maybe Text)+lrmsrsNextMarker = lens _lrmsrsNextMarker (\ s a -> s{_lrmsrsNextMarker = a});++-- | -- | The response status code.+lrmsrsResponseStatus :: Lens' ListRegexMatchSetsResponse Int+lrmsrsResponseStatus = lens _lrmsrsResponseStatus (\ s a -> s{_lrmsrsResponseStatus = a});++instance NFData ListRegexMatchSetsResponse where
+ gen/Network/AWS/WAF/ListRegexPatternSets.hs view
@@ -0,0 +1,156 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Network.AWS.WAF.ListRegexPatternSets+-- Copyright : (c) 2013-2017 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns an array of 'RegexPatternSetSummary' objects.+--+--+module Network.AWS.WAF.ListRegexPatternSets+ (+ -- * Creating a Request+ listRegexPatternSets+ , ListRegexPatternSets+ -- * Request Lenses+ , lrpsNextMarker+ , lrpsLimit++ -- * Destructuring the Response+ , listRegexPatternSetsResponse+ , ListRegexPatternSetsResponse+ -- * Response Lenses+ , lrpsrsRegexPatternSets+ , lrpsrsNextMarker+ , lrpsrsResponseStatus+ ) where++import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.WAF.Types+import Network.AWS.WAF.Types.Product++-- | /See:/ 'listRegexPatternSets' smart constructor.+data ListRegexPatternSets = ListRegexPatternSets'+ { _lrpsNextMarker :: !(Maybe Text)+ , _lrpsLimit :: !(Maybe Nat)+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ListRegexPatternSets' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lrpsNextMarker' - If you specify a value for @Limit@ and you have more @RegexPatternSet@ objects than the value of @Limit@ , AWS WAF returns a @NextMarker@ value in the response that allows you to list another group of @RegexPatternSet@ objects. For the second and subsequent @ListRegexPatternSets@ requests, specify the value of @NextMarker@ from the previous response to get information about another batch of @RegexPatternSet@ objects.+--+-- * 'lrpsLimit' - Specifies the number of @RegexPatternSet@ objects that you want AWS WAF to return for this request. If you have more @RegexPatternSet@ objects than the number you specify for @Limit@ , the response includes a @NextMarker@ value that you can use to get another batch of @RegexPatternSet@ objects.+listRegexPatternSets+ :: ListRegexPatternSets+listRegexPatternSets =+ ListRegexPatternSets' {_lrpsNextMarker = Nothing, _lrpsLimit = Nothing}+++-- | If you specify a value for @Limit@ and you have more @RegexPatternSet@ objects than the value of @Limit@ , AWS WAF returns a @NextMarker@ value in the response that allows you to list another group of @RegexPatternSet@ objects. For the second and subsequent @ListRegexPatternSets@ requests, specify the value of @NextMarker@ from the previous response to get information about another batch of @RegexPatternSet@ objects.+lrpsNextMarker :: Lens' ListRegexPatternSets (Maybe Text)+lrpsNextMarker = lens _lrpsNextMarker (\ s a -> s{_lrpsNextMarker = a});++-- | Specifies the number of @RegexPatternSet@ objects that you want AWS WAF to return for this request. If you have more @RegexPatternSet@ objects than the number you specify for @Limit@ , the response includes a @NextMarker@ value that you can use to get another batch of @RegexPatternSet@ objects.+lrpsLimit :: Lens' ListRegexPatternSets (Maybe Natural)+lrpsLimit = lens _lrpsLimit (\ s a -> s{_lrpsLimit = a}) . mapping _Nat;++instance AWSRequest ListRegexPatternSets where+ type Rs ListRegexPatternSets =+ ListRegexPatternSetsResponse+ request = postJSON waf+ response+ = receiveJSON+ (\ s h x ->+ ListRegexPatternSetsResponse' <$>+ (x .?> "RegexPatternSets" .!@ mempty) <*>+ (x .?> "NextMarker")+ <*> (pure (fromEnum s)))++instance Hashable ListRegexPatternSets where++instance NFData ListRegexPatternSets where++instance ToHeaders ListRegexPatternSets where+ toHeaders+ = const+ (mconcat+ ["X-Amz-Target" =#+ ("AWSWAF_20150824.ListRegexPatternSets" ::+ ByteString),+ "Content-Type" =#+ ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON ListRegexPatternSets where+ toJSON ListRegexPatternSets'{..}+ = object+ (catMaybes+ [("NextMarker" .=) <$> _lrpsNextMarker,+ ("Limit" .=) <$> _lrpsLimit])++instance ToPath ListRegexPatternSets where+ toPath = const "/"++instance ToQuery ListRegexPatternSets where+ toQuery = const mempty++-- | /See:/ 'listRegexPatternSetsResponse' smart constructor.+data ListRegexPatternSetsResponse = ListRegexPatternSetsResponse'+ { _lrpsrsRegexPatternSets :: !(Maybe [RegexPatternSetSummary])+ , _lrpsrsNextMarker :: !(Maybe Text)+ , _lrpsrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ListRegexPatternSetsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lrpsrsRegexPatternSets' - An array of 'RegexPatternSetSummary' objects.+--+-- * 'lrpsrsNextMarker' - If you have more @RegexPatternSet@ objects than the number that you specified for @Limit@ in the request, the response includes a @NextMarker@ value. To list more @RegexPatternSet@ objects, submit another @ListRegexPatternSets@ request, and specify the @NextMarker@ value from the response in the @NextMarker@ value in the next request.+--+-- * 'lrpsrsResponseStatus' - -- | The response status code.+listRegexPatternSetsResponse+ :: Int -- ^ 'lrpsrsResponseStatus'+ -> ListRegexPatternSetsResponse+listRegexPatternSetsResponse pResponseStatus_ =+ ListRegexPatternSetsResponse'+ { _lrpsrsRegexPatternSets = Nothing+ , _lrpsrsNextMarker = Nothing+ , _lrpsrsResponseStatus = pResponseStatus_+ }+++-- | An array of 'RegexPatternSetSummary' objects.+lrpsrsRegexPatternSets :: Lens' ListRegexPatternSetsResponse [RegexPatternSetSummary]+lrpsrsRegexPatternSets = lens _lrpsrsRegexPatternSets (\ s a -> s{_lrpsrsRegexPatternSets = a}) . _Default . _Coerce;++-- | If you have more @RegexPatternSet@ objects than the number that you specified for @Limit@ in the request, the response includes a @NextMarker@ value. To list more @RegexPatternSet@ objects, submit another @ListRegexPatternSets@ request, and specify the @NextMarker@ value from the response in the @NextMarker@ value in the next request.+lrpsrsNextMarker :: Lens' ListRegexPatternSetsResponse (Maybe Text)+lrpsrsNextMarker = lens _lrpsrsNextMarker (\ s a -> s{_lrpsrsNextMarker = a});++-- | -- | The response status code.+lrpsrsResponseStatus :: Lens' ListRegexPatternSetsResponse Int+lrpsrsResponseStatus = lens _lrpsrsResponseStatus (\ s a -> s{_lrpsrsResponseStatus = a});++instance NFData ListRegexPatternSetsResponse where
gen/Network/AWS/WAF/ListRules.hs view
@@ -12,9 +12,9 @@ -- | -- Module : Network.AWS.WAF.ListRules--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) --@@ -41,20 +41,21 @@ , lrrsResponseStatus ) where -import Network.AWS.Lens-import Network.AWS.Pager-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response-import Network.AWS.WAF.Types-import Network.AWS.WAF.Types.Product+import Network.AWS.Lens+import Network.AWS.Pager+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.WAF.Types+import Network.AWS.WAF.Types.Product -- | /See:/ 'listRules' smart constructor. data ListRules = ListRules'- { _lrNextMarker :: !(Maybe Text)- , _lrLimit :: !(Maybe Nat)- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _lrNextMarker :: !(Maybe Text)+ , _lrLimit :: !(Maybe Nat)+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ListRules' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -64,12 +65,9 @@ -- * 'lrLimit' - Specifies the number of @Rules@ that you want AWS WAF to return for this request. If you have more @Rules@ than the number that you specify for @Limit@ , the response includes a @NextMarker@ value that you can use to get another batch of @Rules@ . listRules :: ListRules-listRules =- ListRules'- { _lrNextMarker = Nothing- , _lrLimit = Nothing- }+listRules = ListRules' {_lrNextMarker = Nothing, _lrLimit = Nothing} + -- | If you specify a value for @Limit@ and you have more @Rules@ than the value of @Limit@ , AWS WAF returns a @NextMarker@ value in the response that allows you to list another group of @Rules@ . For the second and subsequent @ListRules@ requests, specify the value of @NextMarker@ from the previous response to get information about another batch of @Rules@ . lrNextMarker :: Lens' ListRules (Maybe Text) lrNextMarker = lens _lrNextMarker (\ s a -> s{_lrNextMarker = a});@@ -95,9 +93,9 @@ (x .?> "Rules" .!@ mempty) <*> (x .?> "NextMarker") <*> (pure (fromEnum s))) -instance Hashable ListRules+instance Hashable ListRules where -instance NFData ListRules+instance NFData ListRules where instance ToHeaders ListRules where toHeaders@@ -123,11 +121,12 @@ -- | /See:/ 'listRulesResponse' smart constructor. data ListRulesResponse = ListRulesResponse'- { _lrrsRules :: !(Maybe [RuleSummary])- , _lrrsNextMarker :: !(Maybe Text)- , _lrrsResponseStatus :: !Int- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _lrrsRules :: !(Maybe [RuleSummary])+ , _lrrsNextMarker :: !(Maybe Text)+ , _lrrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ListRulesResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -141,12 +140,13 @@ :: Int -- ^ 'lrrsResponseStatus' -> ListRulesResponse listRulesResponse pResponseStatus_ =- ListRulesResponse'- { _lrrsRules = Nothing- , _lrrsNextMarker = Nothing- , _lrrsResponseStatus = pResponseStatus_- }+ ListRulesResponse'+ { _lrrsRules = Nothing+ , _lrrsNextMarker = Nothing+ , _lrrsResponseStatus = pResponseStatus_+ } + -- | An array of 'RuleSummary' objects. lrrsRules :: Lens' ListRulesResponse [RuleSummary] lrrsRules = lens _lrrsRules (\ s a -> s{_lrrsRules = a}) . _Default . _Coerce;@@ -159,4 +159,4 @@ lrrsResponseStatus :: Lens' ListRulesResponse Int lrrsResponseStatus = lens _lrrsResponseStatus (\ s a -> s{_lrrsResponseStatus = a}); -instance NFData ListRulesResponse+instance NFData ListRulesResponse where
gen/Network/AWS/WAF/ListSizeConstraintSets.hs view
@@ -12,9 +12,9 @@ -- | -- Module : Network.AWS.WAF.ListSizeConstraintSets--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) --@@ -41,20 +41,21 @@ , lscsrsResponseStatus ) where -import Network.AWS.Lens-import Network.AWS.Pager-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response-import Network.AWS.WAF.Types-import Network.AWS.WAF.Types.Product+import Network.AWS.Lens+import Network.AWS.Pager+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.WAF.Types+import Network.AWS.WAF.Types.Product -- | /See:/ 'listSizeConstraintSets' smart constructor. data ListSizeConstraintSets = ListSizeConstraintSets'- { _lscsNextMarker :: !(Maybe Text)- , _lscsLimit :: !(Maybe Nat)- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _lscsNextMarker :: !(Maybe Text)+ , _lscsLimit :: !(Maybe Nat)+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ListSizeConstraintSets' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -65,11 +66,9 @@ listSizeConstraintSets :: ListSizeConstraintSets listSizeConstraintSets =- ListSizeConstraintSets'- { _lscsNextMarker = Nothing- , _lscsLimit = Nothing- }+ ListSizeConstraintSets' {_lscsNextMarker = Nothing, _lscsLimit = Nothing} + -- | If you specify a value for @Limit@ and you have more @SizeConstraintSets@ than the value of @Limit@ , AWS WAF returns a @NextMarker@ value in the response that allows you to list another group of @SizeConstraintSets@ . For the second and subsequent @ListSizeConstraintSets@ requests, specify the value of @NextMarker@ from the previous response to get information about another batch of @SizeConstraintSets@ . lscsNextMarker :: Lens' ListSizeConstraintSets (Maybe Text) lscsNextMarker = lens _lscsNextMarker (\ s a -> s{_lscsNextMarker = a});@@ -97,9 +96,9 @@ (x .?> "NextMarker") <*> (pure (fromEnum s))) -instance Hashable ListSizeConstraintSets+instance Hashable ListSizeConstraintSets where -instance NFData ListSizeConstraintSets+instance NFData ListSizeConstraintSets where instance ToHeaders ListSizeConstraintSets where toHeaders@@ -126,11 +125,12 @@ -- | /See:/ 'listSizeConstraintSetsResponse' smart constructor. data ListSizeConstraintSetsResponse = ListSizeConstraintSetsResponse'- { _lscsrsSizeConstraintSets :: !(Maybe [SizeConstraintSetSummary])- , _lscsrsNextMarker :: !(Maybe Text)- , _lscsrsResponseStatus :: !Int- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _lscsrsSizeConstraintSets :: !(Maybe [SizeConstraintSetSummary])+ , _lscsrsNextMarker :: !(Maybe Text)+ , _lscsrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ListSizeConstraintSetsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -144,12 +144,13 @@ :: Int -- ^ 'lscsrsResponseStatus' -> ListSizeConstraintSetsResponse listSizeConstraintSetsResponse pResponseStatus_ =- ListSizeConstraintSetsResponse'- { _lscsrsSizeConstraintSets = Nothing- , _lscsrsNextMarker = Nothing- , _lscsrsResponseStatus = pResponseStatus_- }+ ListSizeConstraintSetsResponse'+ { _lscsrsSizeConstraintSets = Nothing+ , _lscsrsNextMarker = Nothing+ , _lscsrsResponseStatus = pResponseStatus_+ } + -- | An array of 'SizeConstraintSetSummary' objects. lscsrsSizeConstraintSets :: Lens' ListSizeConstraintSetsResponse [SizeConstraintSetSummary] lscsrsSizeConstraintSets = lens _lscsrsSizeConstraintSets (\ s a -> s{_lscsrsSizeConstraintSets = a}) . _Default . _Coerce;@@ -162,4 +163,4 @@ lscsrsResponseStatus :: Lens' ListSizeConstraintSetsResponse Int lscsrsResponseStatus = lens _lscsrsResponseStatus (\ s a -> s{_lscsrsResponseStatus = a}); -instance NFData ListSizeConstraintSetsResponse+instance NFData ListSizeConstraintSetsResponse where
gen/Network/AWS/WAF/ListSqlInjectionMatchSets.hs view
@@ -12,9 +12,9 @@ -- | -- Module : Network.AWS.WAF.ListSqlInjectionMatchSets--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) --@@ -41,13 +41,13 @@ , lsimsrsResponseStatus ) where -import Network.AWS.Lens-import Network.AWS.Pager-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response-import Network.AWS.WAF.Types-import Network.AWS.WAF.Types.Product+import Network.AWS.Lens+import Network.AWS.Pager+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.WAF.Types+import Network.AWS.WAF.Types.Product -- | A request to list the 'SqlInjectionMatchSet' objects created by the current AWS account. --@@ -55,10 +55,11 @@ -- -- /See:/ 'listSqlInjectionMatchSets' smart constructor. data ListSqlInjectionMatchSets = ListSqlInjectionMatchSets'- { _lsimsNextMarker :: !(Maybe Text)- , _lsimsLimit :: !(Maybe Nat)- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _lsimsNextMarker :: !(Maybe Text)+ , _lsimsLimit :: !(Maybe Nat)+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ListSqlInjectionMatchSets' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -69,11 +70,9 @@ listSqlInjectionMatchSets :: ListSqlInjectionMatchSets listSqlInjectionMatchSets =- ListSqlInjectionMatchSets'- { _lsimsNextMarker = Nothing- , _lsimsLimit = Nothing- }+ ListSqlInjectionMatchSets' {_lsimsNextMarker = Nothing, _lsimsLimit = Nothing} + -- | If you specify a value for @Limit@ and you have more 'SqlInjectionMatchSet' objects than the value of @Limit@ , AWS WAF returns a @NextMarker@ value in the response that allows you to list another group of @SqlInjectionMatchSets@ . For the second and subsequent @ListSqlInjectionMatchSets@ requests, specify the value of @NextMarker@ from the previous response to get information about another batch of @SqlInjectionMatchSets@ . lsimsNextMarker :: Lens' ListSqlInjectionMatchSets (Maybe Text) lsimsNextMarker = lens _lsimsNextMarker (\ s a -> s{_lsimsNextMarker = a});@@ -102,9 +101,9 @@ (x .?> "SqlInjectionMatchSets" .!@ mempty) <*> (pure (fromEnum s))) -instance Hashable ListSqlInjectionMatchSets+instance Hashable ListSqlInjectionMatchSets where -instance NFData ListSqlInjectionMatchSets+instance NFData ListSqlInjectionMatchSets where instance ToHeaders ListSqlInjectionMatchSets where toHeaders@@ -135,11 +134,12 @@ -- -- /See:/ 'listSqlInjectionMatchSetsResponse' smart constructor. data ListSqlInjectionMatchSetsResponse = ListSqlInjectionMatchSetsResponse'- { _lsimsrsNextMarker :: !(Maybe Text)- , _lsimsrsSqlInjectionMatchSets :: !(Maybe [SqlInjectionMatchSetSummary])- , _lsimsrsResponseStatus :: !Int- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _lsimsrsNextMarker :: !(Maybe Text)+ , _lsimsrsSqlInjectionMatchSets :: !(Maybe [SqlInjectionMatchSetSummary])+ , _lsimsrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ListSqlInjectionMatchSetsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -153,12 +153,13 @@ :: Int -- ^ 'lsimsrsResponseStatus' -> ListSqlInjectionMatchSetsResponse listSqlInjectionMatchSetsResponse pResponseStatus_ =- ListSqlInjectionMatchSetsResponse'- { _lsimsrsNextMarker = Nothing- , _lsimsrsSqlInjectionMatchSets = Nothing- , _lsimsrsResponseStatus = pResponseStatus_- }+ ListSqlInjectionMatchSetsResponse'+ { _lsimsrsNextMarker = Nothing+ , _lsimsrsSqlInjectionMatchSets = Nothing+ , _lsimsrsResponseStatus = pResponseStatus_+ } + -- | If you have more 'SqlInjectionMatchSet' objects than the number that you specified for @Limit@ in the request, the response includes a @NextMarker@ value. To list more @SqlInjectionMatchSet@ objects, submit another @ListSqlInjectionMatchSets@ request, and specify the @NextMarker@ value from the response in the @NextMarker@ value in the next request. lsimsrsNextMarker :: Lens' ListSqlInjectionMatchSetsResponse (Maybe Text) lsimsrsNextMarker = lens _lsimsrsNextMarker (\ s a -> s{_lsimsrsNextMarker = a});@@ -172,3 +173,4 @@ lsimsrsResponseStatus = lens _lsimsrsResponseStatus (\ s a -> s{_lsimsrsResponseStatus = a}); instance NFData ListSqlInjectionMatchSetsResponse+ where
gen/Network/AWS/WAF/ListWebACLs.hs view
@@ -12,9 +12,9 @@ -- | -- Module : Network.AWS.WAF.ListWebACLs--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) --@@ -41,20 +41,21 @@ , lwarsResponseStatus ) where -import Network.AWS.Lens-import Network.AWS.Pager-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response-import Network.AWS.WAF.Types-import Network.AWS.WAF.Types.Product+import Network.AWS.Lens+import Network.AWS.Pager+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.WAF.Types+import Network.AWS.WAF.Types.Product -- | /See:/ 'listWebACLs' smart constructor. data ListWebACLs = ListWebACLs'- { _lwaNextMarker :: !(Maybe Text)- , _lwaLimit :: !(Maybe Nat)- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _lwaNextMarker :: !(Maybe Text)+ , _lwaLimit :: !(Maybe Nat)+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ListWebACLs' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -64,12 +65,9 @@ -- * 'lwaLimit' - Specifies the number of @WebACL@ objects that you want AWS WAF to return for this request. If you have more @WebACL@ objects than the number that you specify for @Limit@ , the response includes a @NextMarker@ value that you can use to get another batch of @WebACL@ objects. listWebACLs :: ListWebACLs-listWebACLs =- ListWebACLs'- { _lwaNextMarker = Nothing- , _lwaLimit = Nothing- }+listWebACLs = ListWebACLs' {_lwaNextMarker = Nothing, _lwaLimit = Nothing} + -- | If you specify a value for @Limit@ and you have more @WebACL@ objects than the number that you specify for @Limit@ , AWS WAF returns a @NextMarker@ value in the response that allows you to list another group of @WebACL@ objects. For the second and subsequent @ListWebACLs@ requests, specify the value of @NextMarker@ from the previous response to get information about another batch of @WebACL@ objects. lwaNextMarker :: Lens' ListWebACLs (Maybe Text) lwaNextMarker = lens _lwaNextMarker (\ s a -> s{_lwaNextMarker = a});@@ -95,9 +93,9 @@ (x .?> "WebACLs" .!@ mempty) <*> (x .?> "NextMarker") <*> (pure (fromEnum s))) -instance Hashable ListWebACLs+instance Hashable ListWebACLs where -instance NFData ListWebACLs+instance NFData ListWebACLs where instance ToHeaders ListWebACLs where toHeaders@@ -123,11 +121,12 @@ -- | /See:/ 'listWebACLsResponse' smart constructor. data ListWebACLsResponse = ListWebACLsResponse'- { _lwarsWebACLs :: !(Maybe [WebACLSummary])- , _lwarsNextMarker :: !(Maybe Text)- , _lwarsResponseStatus :: !Int- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _lwarsWebACLs :: !(Maybe [WebACLSummary])+ , _lwarsNextMarker :: !(Maybe Text)+ , _lwarsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ListWebACLsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -141,12 +140,13 @@ :: Int -- ^ 'lwarsResponseStatus' -> ListWebACLsResponse listWebACLsResponse pResponseStatus_ =- ListWebACLsResponse'- { _lwarsWebACLs = Nothing- , _lwarsNextMarker = Nothing- , _lwarsResponseStatus = pResponseStatus_- }+ ListWebACLsResponse'+ { _lwarsWebACLs = Nothing+ , _lwarsNextMarker = Nothing+ , _lwarsResponseStatus = pResponseStatus_+ } + -- | An array of 'WebACLSummary' objects. lwarsWebACLs :: Lens' ListWebACLsResponse [WebACLSummary] lwarsWebACLs = lens _lwarsWebACLs (\ s a -> s{_lwarsWebACLs = a}) . _Default . _Coerce;@@ -159,4 +159,4 @@ lwarsResponseStatus :: Lens' ListWebACLsResponse Int lwarsResponseStatus = lens _lwarsResponseStatus (\ s a -> s{_lwarsResponseStatus = a}); -instance NFData ListWebACLsResponse+instance NFData ListWebACLsResponse where
gen/Network/AWS/WAF/ListXSSMatchSets.hs view
@@ -12,9 +12,9 @@ -- | -- Module : Network.AWS.WAF.ListXSSMatchSets--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) --@@ -41,13 +41,13 @@ , lxmsrsResponseStatus ) where -import Network.AWS.Lens-import Network.AWS.Pager-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response-import Network.AWS.WAF.Types-import Network.AWS.WAF.Types.Product+import Network.AWS.Lens+import Network.AWS.Pager+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.WAF.Types+import Network.AWS.WAF.Types.Product -- | A request to list the 'XssMatchSet' objects created by the current AWS account. --@@ -55,10 +55,11 @@ -- -- /See:/ 'listXSSMatchSets' smart constructor. data ListXSSMatchSets = ListXSSMatchSets'- { _lxmsNextMarker :: !(Maybe Text)- , _lxmsLimit :: !(Maybe Nat)- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _lxmsNextMarker :: !(Maybe Text)+ , _lxmsLimit :: !(Maybe Nat)+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ListXSSMatchSets' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -69,11 +70,9 @@ listXSSMatchSets :: ListXSSMatchSets listXSSMatchSets =- ListXSSMatchSets'- { _lxmsNextMarker = Nothing- , _lxmsLimit = Nothing- }+ ListXSSMatchSets' {_lxmsNextMarker = Nothing, _lxmsLimit = Nothing} + -- | If you specify a value for @Limit@ and you have more 'XssMatchSet' objects than the value of @Limit@ , AWS WAF returns a @NextMarker@ value in the response that allows you to list another group of @XssMatchSets@ . For the second and subsequent @ListXssMatchSets@ requests, specify the value of @NextMarker@ from the previous response to get information about another batch of @XssMatchSets@ . lxmsNextMarker :: Lens' ListXSSMatchSets (Maybe Text) lxmsNextMarker = lens _lxmsNextMarker (\ s a -> s{_lxmsNextMarker = a});@@ -100,9 +99,9 @@ (x .?> "NextMarker") <*> (pure (fromEnum s))) -instance Hashable ListXSSMatchSets+instance Hashable ListXSSMatchSets where -instance NFData ListXSSMatchSets+instance NFData ListXSSMatchSets where instance ToHeaders ListXSSMatchSets where toHeaders@@ -132,11 +131,12 @@ -- -- /See:/ 'listXSSMatchSetsResponse' smart constructor. data ListXSSMatchSetsResponse = ListXSSMatchSetsResponse'- { _lxmsrsXSSMatchSets :: !(Maybe [XSSMatchSetSummary])- , _lxmsrsNextMarker :: !(Maybe Text)- , _lxmsrsResponseStatus :: !Int- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _lxmsrsXSSMatchSets :: !(Maybe [XSSMatchSetSummary])+ , _lxmsrsNextMarker :: !(Maybe Text)+ , _lxmsrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ListXSSMatchSetsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -150,12 +150,13 @@ :: Int -- ^ 'lxmsrsResponseStatus' -> ListXSSMatchSetsResponse listXSSMatchSetsResponse pResponseStatus_ =- ListXSSMatchSetsResponse'- { _lxmsrsXSSMatchSets = Nothing- , _lxmsrsNextMarker = Nothing- , _lxmsrsResponseStatus = pResponseStatus_- }+ ListXSSMatchSetsResponse'+ { _lxmsrsXSSMatchSets = Nothing+ , _lxmsrsNextMarker = Nothing+ , _lxmsrsResponseStatus = pResponseStatus_+ } + -- | An array of 'XssMatchSetSummary' objects. lxmsrsXSSMatchSets :: Lens' ListXSSMatchSetsResponse [XSSMatchSetSummary] lxmsrsXSSMatchSets = lens _lxmsrsXSSMatchSets (\ s a -> s{_lxmsrsXSSMatchSets = a}) . _Default . _Coerce;@@ -168,4 +169,4 @@ lxmsrsResponseStatus :: Lens' ListXSSMatchSetsResponse Int lxmsrsResponseStatus = lens _lxmsrsResponseStatus (\ s a -> s{_lxmsrsResponseStatus = a}); -instance NFData ListXSSMatchSetsResponse+instance NFData ListXSSMatchSetsResponse where
gen/Network/AWS/WAF/Types.hs view
@@ -4,9 +4,9 @@ -- | -- Module : Network.AWS.WAF.Types--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) --@@ -18,6 +18,7 @@ -- * Errors , _WAFInvalidAccountException , _WAFReferencedItemException+ , _WAFInvalidRegexPatternException , _WAFInvalidOperationException , _WAFNonexistentItemException , _WAFInvalidParameterException@@ -37,6 +38,12 @@ -- * ComparisonOperator , ComparisonOperator (..) + -- * GeoMatchConstraintType+ , GeoMatchConstraintType (..)++ -- * GeoMatchConstraintValue+ , GeoMatchConstraintValue (..)+ -- * IPSetDescriptorType , IPSetDescriptorType (..) @@ -49,15 +56,22 @@ -- * PredicateType , PredicateType (..) + -- * RateKey+ , RateKey (..)+ -- * TextTransformation , TextTransformation (..) -- * WafActionType , WafActionType (..) + -- * WafRuleType+ , WafRuleType (..)+ -- * ActivatedRule , ActivatedRule , activatedRule+ , arType , arPriority , arRuleId , arAction@@ -95,6 +109,31 @@ , ftmData , ftmType + -- * GeoMatchConstraint+ , GeoMatchConstraint+ , geoMatchConstraint+ , gmcType+ , gmcValue++ -- * GeoMatchSet+ , GeoMatchSet+ , geoMatchSet+ , gmsName+ , gmsGeoMatchSetId+ , gmsGeoMatchConstraints++ -- * GeoMatchSetSummary+ , GeoMatchSetSummary+ , geoMatchSetSummary+ , gmssGeoMatchSetId+ , gmssName++ -- * GeoMatchSetUpdate+ , GeoMatchSetUpdate+ , geoMatchSetUpdate+ , gmsuAction+ , gmsuGeoMatchConstraint+ -- * HTTPHeader , HTTPHeader , hTTPHeader@@ -143,6 +182,61 @@ , pType , pDataId + -- * RateBasedRule+ , RateBasedRule+ , rateBasedRule+ , rbrMetricName+ , rbrName+ , rbrRuleId+ , rbrMatchPredicates+ , rbrRateKey+ , rbrRateLimit++ -- * RegexMatchSet+ , RegexMatchSet+ , regexMatchSet+ , rmsName+ , rmsRegexMatchTuples+ , rmsRegexMatchSetId++ -- * RegexMatchSetSummary+ , RegexMatchSetSummary+ , regexMatchSetSummary+ , rmssRegexMatchSetId+ , rmssName++ -- * RegexMatchSetUpdate+ , RegexMatchSetUpdate+ , regexMatchSetUpdate+ , rmsuAction+ , rmsuRegexMatchTuple++ -- * RegexMatchTuple+ , RegexMatchTuple+ , regexMatchTuple+ , rmtFieldToMatch+ , rmtTextTransformation+ , rmtRegexPatternSetId++ -- * RegexPatternSet+ , RegexPatternSet+ , regexPatternSet+ , rpsName+ , rpsRegexPatternSetId+ , rpsRegexPatternStrings++ -- * RegexPatternSetSummary+ , RegexPatternSetSummary+ , regexPatternSetSummary+ , rpssRegexPatternSetId+ , rpssName++ -- * RegexPatternSetUpdate+ , RegexPatternSetUpdate+ , regexPatternSetUpdate+ , rpsuAction+ , rpsuRegexPatternString+ -- * Rule , Rule , rule@@ -281,38 +375,40 @@ , xmtTextTransformation ) where -import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.Sign.V4-import Network.AWS.WAF.Types.Product-import Network.AWS.WAF.Types.Sum+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Sign.V4+import Network.AWS.WAF.Types.Product+import Network.AWS.WAF.Types.Sum -- | API version @2015-08-24@ of the Amazon WAF SDK configuration. waf :: Service waf =- Service- { _svcAbbrev = "WAF"- , _svcSigner = v4- , _svcPrefix = "waf"- , _svcVersion = "2015-08-24"- , _svcEndpoint = defaultEndpoint waf- , _svcTimeout = Just 70- , _svcCheck = statusSuccess- , _svcError = parseJSONError "WAF"- , _svcRetry = retry- }+ Service+ { _svcAbbrev = "WAF"+ , _svcSigner = v4+ , _svcPrefix = "waf"+ , _svcVersion = "2015-08-24"+ , _svcEndpoint = defaultEndpoint waf+ , _svcTimeout = Just 70+ , _svcCheck = statusSuccess+ , _svcError = parseJSONError "WAF"+ , _svcRetry = retry+ } where retry =- Exponential- { _retryBase = 5.0e-2- , _retryGrowth = 2- , _retryAttempts = 5- , _retryCheck = check- }+ Exponential+ { _retryBase = 5.0e-2+ , _retryGrowth = 2+ , _retryAttempts = 5+ , _retryCheck = check+ } check e+ | has (hasCode "ThrottledException" . hasStatus 400) e =+ Just "throttled_exception" | has (hasStatus 429) e = Just "too_many_requests" | has (hasCode "ThrottlingException" . hasStatus 400) e =- Just "throttling_exception"+ Just "throttling_exception" | has (hasCode "Throttling" . hasStatus 400) e = Just "throttling" | has (hasStatus 504) e = Just "gateway_timeout" | has (hasStatus 502) e = Just "bad_gateway"@@ -321,13 +417,15 @@ | has (hasStatus 509) e = Just "limit_exceeded" | otherwise = Nothing + -- | The operation failed because you tried to create, update, or delete an object by using an invalid account identifier. -- -- _WAFInvalidAccountException :: AsError a => Getting (First ServiceError) a ServiceError _WAFInvalidAccountException =- _ServiceError . hasCode "WAFInvalidAccountException"+ _MatchServiceError waf "WAFInvalidAccountException" + -- | The operation failed because you tried to delete an object that is still in use. For example: -- --@@ -339,8 +437,17 @@ -- _WAFReferencedItemException :: AsError a => Getting (First ServiceError) a ServiceError _WAFReferencedItemException =- _ServiceError . hasCode "WAFReferencedItemException"+ _MatchServiceError waf "WAFReferencedItemException" ++-- | The regular expression (regex) you specified in @RegexPatternString@ is invalid.+--+--+_WAFInvalidRegexPatternException :: AsError a => Getting (First ServiceError) a ServiceError+_WAFInvalidRegexPatternException =+ _MatchServiceError waf "WAFInvalidRegexPatternException"++ -- | The operation failed because there was nothing to do. For example: -- --@@ -360,15 +467,17 @@ -- _WAFInvalidOperationException :: AsError a => Getting (First ServiceError) a ServiceError _WAFInvalidOperationException =- _ServiceError . hasCode "WAFInvalidOperationException"+ _MatchServiceError waf "WAFInvalidOperationException" + -- | The operation failed because the referenced object doesn't exist. -- -- _WAFNonexistentItemException :: AsError a => Getting (First ServiceError) a ServiceError _WAFNonexistentItemException =- _ServiceError . hasCode "WAFNonexistentItemException"+ _MatchServiceError waf "WAFNonexistentItemException" + -- | The operation failed because AWS WAF didn't recognize a parameter in the request. For example: -- --@@ -380,38 +489,45 @@ -- -- * You tried to create a @WebACL@ with a @DefaultAction@ @Type@ other than @ALLOW@ , @BLOCK@ , or @COUNT@ . --+-- * You tried to create a @RateBasedRule@ with a @RateKey@ value other than @IP@ .+-- -- * You tried to update a @WebACL@ with a @WafAction@ @Type@ other than @ALLOW@ , @BLOCK@ , or @COUNT@ . ----- * You tried to update a @ByteMatchSet@ with a @FieldToMatch@ @Type@ other than HEADER, QUERY_STRING, or URI.+-- * You tried to update a @ByteMatchSet@ with a @FieldToMatch@ @Type@ other than HEADER, METHOD, QUERY_STRING, URI, or BODY. -- -- * You tried to update a @ByteMatchSet@ with a @Field@ of @HEADER@ but no value for @Data@ . --+-- * Your request references an ARN that is malformed, or corresponds to a resource with which a web ACL cannot be associated. -- --+-- _WAFInvalidParameterException :: AsError a => Getting (First ServiceError) a ServiceError _WAFInvalidParameterException =- _ServiceError . hasCode "WAFInvalidParameterException"+ _MatchServiceError waf "WAFInvalidParameterException" + -- | The operation exceeds a resource limit, for example, the maximum number of @WebACL@ objects that you can create for an AWS account. For more information, see <http://docs.aws.amazon.com/waf/latest/developerguide/limits.html Limits> in the /AWS WAF Developer Guide/ . -- -- _WAFLimitsExceededException :: AsError a => Getting (First ServiceError) a ServiceError _WAFLimitsExceededException =- _ServiceError . hasCode "WAFLimitsExceededException"+ _MatchServiceError waf "WAFLimitsExceededException" + -- | The operation failed because you tried to create, update, or delete an object by using a change token that has already been used. -- -- _WAFStaleDataException :: AsError a => Getting (First ServiceError) a ServiceError-_WAFStaleDataException = _ServiceError . hasCode "WAFStaleDataException"+_WAFStaleDataException = _MatchServiceError waf "WAFStaleDataException" + -- | The operation failed because of a system problem, even though the request was valid. Retry your request. -- -- _WAFInternalErrorException :: AsError a => Getting (First ServiceError) a ServiceError-_WAFInternalErrorException =- _ServiceError . hasCode "WAFInternalErrorException"+_WAFInternalErrorException = _MatchServiceError waf "WAFInternalErrorException" + -- | The operation failed because you tried to add an object to or delete an object from another object that doesn't exist. For example: -- --@@ -427,15 +543,17 @@ -- _WAFNonexistentContainerException :: AsError a => Getting (First ServiceError) a ServiceError _WAFNonexistentContainerException =- _ServiceError . hasCode "WAFNonexistentContainerException"+ _MatchServiceError waf "WAFNonexistentContainerException" + -- | The name specified is invalid. -- -- _WAFDisallowedNameException :: AsError a => Getting (First ServiceError) a ServiceError _WAFDisallowedNameException =- _ServiceError . hasCode "WAFDisallowedNameException"+ _MatchServiceError waf "WAFDisallowedNameException" + -- | The operation failed because you tried to delete an object that isn't empty. For example: -- --@@ -451,4 +569,5 @@ -- _WAFNonEmptyEntityException :: AsError a => Getting (First ServiceError) a ServiceError _WAFNonEmptyEntityException =- _ServiceError . hasCode "WAFNonEmptyEntityException"+ _MatchServiceError waf "WAFNonEmptyEntityException"+
gen/Network/AWS/WAF/Types/Product.hs view
@@ -9,1847 +9,2540 @@ -- | -- Module : Network.AWS.WAF.Types.Product--- Copyright : (c) 2013-2016 Brendan Hay--- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>--- Stability : auto-generated--- Portability : non-portable (GHC extensions)----module Network.AWS.WAF.Types.Product where--import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.WAF.Types.Sum---- | The @ActivatedRule@ object in an 'UpdateWebACL' request specifies a @Rule@ that you want to insert or delete, the priority of the @Rule@ in the @WebACL@ , and the action that you want AWS WAF to take when a web request matches the @Rule@ (@ALLOW@ , @BLOCK@ , or @COUNT@ ).--------- To specify whether to insert or delete a @Rule@ , use the @Action@ parameter in the 'WebACLUpdate' data type.--------- /See:/ 'activatedRule' smart constructor.-data ActivatedRule = ActivatedRule'- { _arPriority :: !Int- , _arRuleId :: !Text- , _arAction :: !WafAction- } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ActivatedRule' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'arPriority' - Specifies the order in which the @Rules@ in a @WebACL@ are evaluated. Rules with a lower value for @Priority@ are evaluated before @Rules@ with a higher value. The value must be a unique integer. If you add multiple @Rules@ to a @WebACL@ , the values don't need to be consecutive.------ * 'arRuleId' - The @RuleId@ for a @Rule@ . You use @RuleId@ to get more information about a @Rule@ (see 'GetRule' ), update a @Rule@ (see 'UpdateRule' ), insert a @Rule@ into a @WebACL@ or delete a one from a @WebACL@ (see 'UpdateWebACL' ), or delete a @Rule@ from AWS WAF (see 'DeleteRule' ). @RuleId@ is returned by 'CreateRule' and by 'ListRules' .------ * 'arAction' - Specifies the action that CloudFront or AWS WAF takes when a web request matches the conditions in the @Rule@ . Valid values for @Action@ include the following: * @ALLOW@ : CloudFront responds with the requested object. * @BLOCK@ : CloudFront responds with an HTTP 403 (Forbidden) status code. * @COUNT@ : AWS WAF increments a counter of requests that match the conditions in the rule and then continues to inspect the web request based on the remaining rules in the web ACL.-activatedRule- :: Int -- ^ 'arPriority'- -> Text -- ^ 'arRuleId'- -> WafAction -- ^ 'arAction'- -> ActivatedRule-activatedRule pPriority_ pRuleId_ pAction_ =- ActivatedRule'- { _arPriority = pPriority_- , _arRuleId = pRuleId_- , _arAction = pAction_- }---- | Specifies the order in which the @Rules@ in a @WebACL@ are evaluated. Rules with a lower value for @Priority@ are evaluated before @Rules@ with a higher value. The value must be a unique integer. If you add multiple @Rules@ to a @WebACL@ , the values don't need to be consecutive.-arPriority :: Lens' ActivatedRule Int-arPriority = lens _arPriority (\ s a -> s{_arPriority = a});---- | The @RuleId@ for a @Rule@ . You use @RuleId@ to get more information about a @Rule@ (see 'GetRule' ), update a @Rule@ (see 'UpdateRule' ), insert a @Rule@ into a @WebACL@ or delete a one from a @WebACL@ (see 'UpdateWebACL' ), or delete a @Rule@ from AWS WAF (see 'DeleteRule' ). @RuleId@ is returned by 'CreateRule' and by 'ListRules' .-arRuleId :: Lens' ActivatedRule Text-arRuleId = lens _arRuleId (\ s a -> s{_arRuleId = a});---- | Specifies the action that CloudFront or AWS WAF takes when a web request matches the conditions in the @Rule@ . Valid values for @Action@ include the following: * @ALLOW@ : CloudFront responds with the requested object. * @BLOCK@ : CloudFront responds with an HTTP 403 (Forbidden) status code. * @COUNT@ : AWS WAF increments a counter of requests that match the conditions in the rule and then continues to inspect the web request based on the remaining rules in the web ACL.-arAction :: Lens' ActivatedRule WafAction-arAction = lens _arAction (\ s a -> s{_arAction = a});--instance FromJSON ActivatedRule where- parseJSON- = withObject "ActivatedRule"- (\ x ->- ActivatedRule' <$>- (x .: "Priority") <*> (x .: "RuleId") <*>- (x .: "Action"))--instance Hashable ActivatedRule--instance NFData ActivatedRule--instance ToJSON ActivatedRule where- toJSON ActivatedRule'{..}- = object- (catMaybes- [Just ("Priority" .= _arPriority),- Just ("RuleId" .= _arRuleId),- Just ("Action" .= _arAction)])---- | In a 'GetByteMatchSet' request, @ByteMatchSet@ is a complex type that contains the @ByteMatchSetId@ and @Name@ of a @ByteMatchSet@ , and the values that you specified when you updated the @ByteMatchSet@ .--------- A complex type that contains @ByteMatchTuple@ objects, which specify the parts of web requests that you want AWS WAF to inspect and the values that you want AWS WAF to search for. If a @ByteMatchSet@ contains more than one @ByteMatchTuple@ object, a request needs to match the settings in only one @ByteMatchTuple@ to be considered a match.--------- /See:/ 'byteMatchSet' smart constructor.-data ByteMatchSet = ByteMatchSet'- { _bmsName :: !(Maybe Text)- , _bmsByteMatchSetId :: !Text- , _bmsByteMatchTuples :: ![ByteMatchTuple]- } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ByteMatchSet' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'bmsName' - A friendly name or description of the 'ByteMatchSet' . You can't change @Name@ after you create a @ByteMatchSet@ .------ * 'bmsByteMatchSetId' - The @ByteMatchSetId@ for a @ByteMatchSet@ . You use @ByteMatchSetId@ to get information about a @ByteMatchSet@ (see 'GetByteMatchSet' ), update a @ByteMatchSet@ (see 'UpdateByteMatchSet' ), insert a @ByteMatchSet@ into a @Rule@ or delete one from a @Rule@ (see 'UpdateRule' ), and delete a @ByteMatchSet@ from AWS WAF (see 'DeleteByteMatchSet' ). @ByteMatchSetId@ is returned by 'CreateByteMatchSet' and by 'ListByteMatchSets' .------ * 'bmsByteMatchTuples' - Specifies the bytes (typically a string that corresponds with ASCII characters) that you want AWS WAF to search for in web requests, the location in requests that you want AWS WAF to search, and other settings.-byteMatchSet- :: Text -- ^ 'bmsByteMatchSetId'- -> ByteMatchSet-byteMatchSet pByteMatchSetId_ =- ByteMatchSet'- { _bmsName = Nothing- , _bmsByteMatchSetId = pByteMatchSetId_- , _bmsByteMatchTuples = mempty- }---- | A friendly name or description of the 'ByteMatchSet' . You can't change @Name@ after you create a @ByteMatchSet@ .-bmsName :: Lens' ByteMatchSet (Maybe Text)-bmsName = lens _bmsName (\ s a -> s{_bmsName = a});---- | The @ByteMatchSetId@ for a @ByteMatchSet@ . You use @ByteMatchSetId@ to get information about a @ByteMatchSet@ (see 'GetByteMatchSet' ), update a @ByteMatchSet@ (see 'UpdateByteMatchSet' ), insert a @ByteMatchSet@ into a @Rule@ or delete one from a @Rule@ (see 'UpdateRule' ), and delete a @ByteMatchSet@ from AWS WAF (see 'DeleteByteMatchSet' ). @ByteMatchSetId@ is returned by 'CreateByteMatchSet' and by 'ListByteMatchSets' .-bmsByteMatchSetId :: Lens' ByteMatchSet Text-bmsByteMatchSetId = lens _bmsByteMatchSetId (\ s a -> s{_bmsByteMatchSetId = a});---- | Specifies the bytes (typically a string that corresponds with ASCII characters) that you want AWS WAF to search for in web requests, the location in requests that you want AWS WAF to search, and other settings.-bmsByteMatchTuples :: Lens' ByteMatchSet [ByteMatchTuple]-bmsByteMatchTuples = lens _bmsByteMatchTuples (\ s a -> s{_bmsByteMatchTuples = a}) . _Coerce;--instance FromJSON ByteMatchSet where- parseJSON- = withObject "ByteMatchSet"- (\ x ->- ByteMatchSet' <$>- (x .:? "Name") <*> (x .: "ByteMatchSetId") <*>- (x .:? "ByteMatchTuples" .!= mempty))--instance Hashable ByteMatchSet--instance NFData ByteMatchSet---- | Returned by 'ListByteMatchSets' . Each @ByteMatchSetSummary@ object includes the @Name@ and @ByteMatchSetId@ for one 'ByteMatchSet' .------------ /See:/ 'byteMatchSetSummary' smart constructor.-data ByteMatchSetSummary = ByteMatchSetSummary'- { _bmssByteMatchSetId :: !Text- , _bmssName :: !Text- } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ByteMatchSetSummary' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'bmssByteMatchSetId' - The @ByteMatchSetId@ for a @ByteMatchSet@ . You use @ByteMatchSetId@ to get information about a @ByteMatchSet@ , update a @ByteMatchSet@ , remove a @ByteMatchSet@ from a @Rule@ , and delete a @ByteMatchSet@ from AWS WAF. @ByteMatchSetId@ is returned by 'CreateByteMatchSet' and by 'ListByteMatchSets' .------ * 'bmssName' - A friendly name or description of the 'ByteMatchSet' . You can't change @Name@ after you create a @ByteMatchSet@ .-byteMatchSetSummary- :: Text -- ^ 'bmssByteMatchSetId'- -> Text -- ^ 'bmssName'- -> ByteMatchSetSummary-byteMatchSetSummary pByteMatchSetId_ pName_ =- ByteMatchSetSummary'- { _bmssByteMatchSetId = pByteMatchSetId_- , _bmssName = pName_- }---- | The @ByteMatchSetId@ for a @ByteMatchSet@ . You use @ByteMatchSetId@ to get information about a @ByteMatchSet@ , update a @ByteMatchSet@ , remove a @ByteMatchSet@ from a @Rule@ , and delete a @ByteMatchSet@ from AWS WAF. @ByteMatchSetId@ is returned by 'CreateByteMatchSet' and by 'ListByteMatchSets' .-bmssByteMatchSetId :: Lens' ByteMatchSetSummary Text-bmssByteMatchSetId = lens _bmssByteMatchSetId (\ s a -> s{_bmssByteMatchSetId = a});---- | A friendly name or description of the 'ByteMatchSet' . You can't change @Name@ after you create a @ByteMatchSet@ .-bmssName :: Lens' ByteMatchSetSummary Text-bmssName = lens _bmssName (\ s a -> s{_bmssName = a});--instance FromJSON ByteMatchSetSummary where- parseJSON- = withObject "ByteMatchSetSummary"- (\ x ->- ByteMatchSetSummary' <$>- (x .: "ByteMatchSetId") <*> (x .: "Name"))--instance Hashable ByteMatchSetSummary--instance NFData ByteMatchSetSummary---- | In an 'UpdateByteMatchSet' request, @ByteMatchSetUpdate@ specifies whether to insert or delete a 'ByteMatchTuple' and includes the settings for the @ByteMatchTuple@ .------------ /See:/ 'byteMatchSetUpdate' smart constructor.-data ByteMatchSetUpdate = ByteMatchSetUpdate'- { _bmsuAction :: !ChangeAction- , _bmsuByteMatchTuple :: !ByteMatchTuple- } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ByteMatchSetUpdate' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'bmsuAction' - Specifies whether to insert or delete a 'ByteMatchTuple' .------ * 'bmsuByteMatchTuple' - Information about the part of a web request that you want AWS WAF to inspect and the value that you want AWS WAF to search for. If you specify @DELETE@ for the value of @Action@ , the @ByteMatchTuple@ values must exactly match the values in the @ByteMatchTuple@ that you want to delete from the @ByteMatchSet@ .-byteMatchSetUpdate- :: ChangeAction -- ^ 'bmsuAction'- -> ByteMatchTuple -- ^ 'bmsuByteMatchTuple'- -> ByteMatchSetUpdate-byteMatchSetUpdate pAction_ pByteMatchTuple_ =- ByteMatchSetUpdate'- { _bmsuAction = pAction_- , _bmsuByteMatchTuple = pByteMatchTuple_- }---- | Specifies whether to insert or delete a 'ByteMatchTuple' .-bmsuAction :: Lens' ByteMatchSetUpdate ChangeAction-bmsuAction = lens _bmsuAction (\ s a -> s{_bmsuAction = a});---- | Information about the part of a web request that you want AWS WAF to inspect and the value that you want AWS WAF to search for. If you specify @DELETE@ for the value of @Action@ , the @ByteMatchTuple@ values must exactly match the values in the @ByteMatchTuple@ that you want to delete from the @ByteMatchSet@ .-bmsuByteMatchTuple :: Lens' ByteMatchSetUpdate ByteMatchTuple-bmsuByteMatchTuple = lens _bmsuByteMatchTuple (\ s a -> s{_bmsuByteMatchTuple = a});--instance Hashable ByteMatchSetUpdate--instance NFData ByteMatchSetUpdate--instance ToJSON ByteMatchSetUpdate where- toJSON ByteMatchSetUpdate'{..}- = object- (catMaybes- [Just ("Action" .= _bmsuAction),- Just ("ByteMatchTuple" .= _bmsuByteMatchTuple)])---- | The bytes (typically a string that corresponds with ASCII characters) that you want AWS WAF to search for in web requests, the location in requests that you want AWS WAF to search, and other settings.------------ /See:/ 'byteMatchTuple' smart constructor.-data ByteMatchTuple = ByteMatchTuple'- { _bmtFieldToMatch :: !FieldToMatch- , _bmtTargetString :: !Base64- , _bmtTextTransformation :: !TextTransformation- , _bmtPositionalConstraint :: !PositionalConstraint- } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ByteMatchTuple' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'bmtFieldToMatch' - The part of a web request that you want AWS WAF to search, such as a specified header or a query string. For more information, see 'FieldToMatch' .------ * 'bmtTargetString' - The value that you want AWS WAF to search for. AWS WAF searches for the specified string in the part of web requests that you specified in @FieldToMatch@ . The maximum length of the value is 50 bytes. Valid values depend on the values that you specified for @FieldToMatch@ : * @HEADER@ : The value that you want AWS WAF to search for in the request header that you specified in 'FieldToMatch' , for example, the value of the @User-Agent@ or @Referer@ header. * @METHOD@ : The HTTP method, which indicates the type of operation specified in the request. CloudFront supports the following methods: @DELETE@ , @GET@ , @HEAD@ , @OPTIONS@ , @PATCH@ , @POST@ , and @PUT@ . * @QUERY_STRING@ : The value that you want AWS WAF to search for in the query string, which is the part of a URL that appears after a @?@ character. * @URI@ : The value that you want AWS WAF to search for in the part of a URL that identifies a resource, for example, @/images/daily-ad.jpg@ . * @BODY@ : The part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form. The request body immediately follows the request headers. Note that only the first @8192@ bytes of the request body are forwarded to AWS WAF for inspection. To allow or block requests based on the length of the body, you can create a size constraint set. For more information, see 'CreateSizeConstraintSet' . If @TargetString@ includes alphabetic characters A-Z and a-z, note that the value is case sensitive. __If you're using the AWS WAF API__ Specify a base64-encoded version of the value. The maximum length of the value before you base64-encode it is 50 bytes. For example, suppose the value of @Type@ is @HEADER@ and the value of @Data@ is @User-Agent@ . If you want to search the @User-Agent@ header for the value @BadBot@ , you base64-encode @BadBot@ using MIME base64 encoding and include the resulting value, @QmFkQm90@ , in the value of @TargetString@ . __If you're using the AWS CLI or one of the AWS SDKs__ The value that you want AWS WAF to search for. The SDK automatically base64 encodes the value.-- /Note:/ This 'Lens' automatically encodes and decodes Base64 data. The underlying isomorphism will encode to Base64 representation during serialisation, and decode from Base64 representation during deserialisation. This 'Lens' accepts and returns only raw unencoded data.------ * 'bmtTextTransformation' - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass AWS WAF. If you specify a transformation, AWS WAF performs the transformation on @TargetString@ before inspecting a request for a match. __CMD_LINE__ When you're concerned that attackers are injecting an operating system commandline command and using unusual formatting to disguise some or all of the command, use this option to perform the following transformations: * Delete the following characters: \ " ' ^ * Delete spaces before the following characters: / ( * Replace the following characters with a space: , ; * Replace multiple spaces with one space * Convert uppercase letters (A-Z) to lowercase (a-z) __COMPRESS_WHITE_SPACE__ Use this option to replace the following characters with a space character (decimal 32): * \f, formfeed, decimal 12 * \t, tab, decimal 9 * \n, newline, decimal 10 * \r, carriage return, decimal 13 * \v, vertical tab, decimal 11 * non-breaking space, decimal 160 @COMPRESS_WHITE_SPACE@ also replaces multiple spaces with one space. __HTML_ENTITY_DECODE__ Use this option to replace HTML-encoded characters with unencoded characters. @HTML_ENTITY_DECODE@ performs the following operations: * Replaces @(ampersand)quot;@ with @"@ * Replaces @(ampersand)nbsp;@ with a non-breaking space, decimal 160 * Replaces @(ampersand)lt;@ with a "less than" symbol * Replaces @(ampersand)gt;@ with @>@ * Replaces characters that are represented in hexadecimal format, @(ampersand)#xhhhh;@ , with the corresponding characters * Replaces characters that are represented in decimal format, @(ampersand)#nnnn;@ , with the corresponding characters __LOWERCASE__ Use this option to convert uppercase letters (A-Z) to lowercase (a-z). __URL_DECODE__ Use this option to decode a URL-encoded value. __NONE__ Specify @NONE@ if you don't want to perform any text transformations.------ * 'bmtPositionalConstraint' - Within the portion of a web request that you want to search (for example, in the query string, if any), specify where you want AWS WAF to search. Valid values include the following: __CONTAINS__ The specified part of the web request must include the value of @TargetString@ , but the location doesn't matter. __CONTAINS_WORD__ The specified part of the web request must include the value of @TargetString@ , and @TargetString@ must contain only alphanumeric characters or underscore (A-Z, a-z, 0-9, or _). In addition, @TargetString@ must be a word, which means one of the following: * @TargetString@ exactly matches the value of the specified part of the web request, such as the value of a header. * @TargetString@ is at the beginning of the specified part of the web request and is followed by a character other than an alphanumeric character or underscore (_), for example, @BadBot;@ . * @TargetString@ is at the end of the specified part of the web request and is preceded by a character other than an alphanumeric character or underscore (_), for example, @;BadBot@ . * @TargetString@ is in the middle of the specified part of the web request and is preceded and followed by characters other than alphanumeric characters or underscore (_), for example, @-BadBot;@ . __EXACTLY__ The value of the specified part of the web request must exactly match the value of @TargetString@ . __STARTS_WITH__ The value of @TargetString@ must appear at the beginning of the specified part of the web request. __ENDS_WITH__ The value of @TargetString@ must appear at the end of the specified part of the web request.-byteMatchTuple- :: FieldToMatch -- ^ 'bmtFieldToMatch'- -> ByteString -- ^ 'bmtTargetString'- -> TextTransformation -- ^ 'bmtTextTransformation'- -> PositionalConstraint -- ^ 'bmtPositionalConstraint'- -> ByteMatchTuple-byteMatchTuple pFieldToMatch_ pTargetString_ pTextTransformation_ pPositionalConstraint_ =- ByteMatchTuple'- { _bmtFieldToMatch = pFieldToMatch_- , _bmtTargetString = _Base64 # pTargetString_- , _bmtTextTransformation = pTextTransformation_- , _bmtPositionalConstraint = pPositionalConstraint_- }---- | The part of a web request that you want AWS WAF to search, such as a specified header or a query string. For more information, see 'FieldToMatch' .-bmtFieldToMatch :: Lens' ByteMatchTuple FieldToMatch-bmtFieldToMatch = lens _bmtFieldToMatch (\ s a -> s{_bmtFieldToMatch = a});---- | The value that you want AWS WAF to search for. AWS WAF searches for the specified string in the part of web requests that you specified in @FieldToMatch@ . The maximum length of the value is 50 bytes. Valid values depend on the values that you specified for @FieldToMatch@ : * @HEADER@ : The value that you want AWS WAF to search for in the request header that you specified in 'FieldToMatch' , for example, the value of the @User-Agent@ or @Referer@ header. * @METHOD@ : The HTTP method, which indicates the type of operation specified in the request. CloudFront supports the following methods: @DELETE@ , @GET@ , @HEAD@ , @OPTIONS@ , @PATCH@ , @POST@ , and @PUT@ . * @QUERY_STRING@ : The value that you want AWS WAF to search for in the query string, which is the part of a URL that appears after a @?@ character. * @URI@ : The value that you want AWS WAF to search for in the part of a URL that identifies a resource, for example, @/images/daily-ad.jpg@ . * @BODY@ : The part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form. The request body immediately follows the request headers. Note that only the first @8192@ bytes of the request body are forwarded to AWS WAF for inspection. To allow or block requests based on the length of the body, you can create a size constraint set. For more information, see 'CreateSizeConstraintSet' . If @TargetString@ includes alphabetic characters A-Z and a-z, note that the value is case sensitive. __If you're using the AWS WAF API__ Specify a base64-encoded version of the value. The maximum length of the value before you base64-encode it is 50 bytes. For example, suppose the value of @Type@ is @HEADER@ and the value of @Data@ is @User-Agent@ . If you want to search the @User-Agent@ header for the value @BadBot@ , you base64-encode @BadBot@ using MIME base64 encoding and include the resulting value, @QmFkQm90@ , in the value of @TargetString@ . __If you're using the AWS CLI or one of the AWS SDKs__ The value that you want AWS WAF to search for. The SDK automatically base64 encodes the value.-- /Note:/ This 'Lens' automatically encodes and decodes Base64 data. The underlying isomorphism will encode to Base64 representation during serialisation, and decode from Base64 representation during deserialisation. This 'Lens' accepts and returns only raw unencoded data.-bmtTargetString :: Lens' ByteMatchTuple ByteString-bmtTargetString = lens _bmtTargetString (\ s a -> s{_bmtTargetString = a}) . _Base64;---- | Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass AWS WAF. If you specify a transformation, AWS WAF performs the transformation on @TargetString@ before inspecting a request for a match. __CMD_LINE__ When you're concerned that attackers are injecting an operating system commandline command and using unusual formatting to disguise some or all of the command, use this option to perform the following transformations: * Delete the following characters: \ " ' ^ * Delete spaces before the following characters: / ( * Replace the following characters with a space: , ; * Replace multiple spaces with one space * Convert uppercase letters (A-Z) to lowercase (a-z) __COMPRESS_WHITE_SPACE__ Use this option to replace the following characters with a space character (decimal 32): * \f, formfeed, decimal 12 * \t, tab, decimal 9 * \n, newline, decimal 10 * \r, carriage return, decimal 13 * \v, vertical tab, decimal 11 * non-breaking space, decimal 160 @COMPRESS_WHITE_SPACE@ also replaces multiple spaces with one space. __HTML_ENTITY_DECODE__ Use this option to replace HTML-encoded characters with unencoded characters. @HTML_ENTITY_DECODE@ performs the following operations: * Replaces @(ampersand)quot;@ with @"@ * Replaces @(ampersand)nbsp;@ with a non-breaking space, decimal 160 * Replaces @(ampersand)lt;@ with a "less than" symbol * Replaces @(ampersand)gt;@ with @>@ * Replaces characters that are represented in hexadecimal format, @(ampersand)#xhhhh;@ , with the corresponding characters * Replaces characters that are represented in decimal format, @(ampersand)#nnnn;@ , with the corresponding characters __LOWERCASE__ Use this option to convert uppercase letters (A-Z) to lowercase (a-z). __URL_DECODE__ Use this option to decode a URL-encoded value. __NONE__ Specify @NONE@ if you don't want to perform any text transformations.-bmtTextTransformation :: Lens' ByteMatchTuple TextTransformation-bmtTextTransformation = lens _bmtTextTransformation (\ s a -> s{_bmtTextTransformation = a});---- | Within the portion of a web request that you want to search (for example, in the query string, if any), specify where you want AWS WAF to search. Valid values include the following: __CONTAINS__ The specified part of the web request must include the value of @TargetString@ , but the location doesn't matter. __CONTAINS_WORD__ The specified part of the web request must include the value of @TargetString@ , and @TargetString@ must contain only alphanumeric characters or underscore (A-Z, a-z, 0-9, or _). In addition, @TargetString@ must be a word, which means one of the following: * @TargetString@ exactly matches the value of the specified part of the web request, such as the value of a header. * @TargetString@ is at the beginning of the specified part of the web request and is followed by a character other than an alphanumeric character or underscore (_), for example, @BadBot;@ . * @TargetString@ is at the end of the specified part of the web request and is preceded by a character other than an alphanumeric character or underscore (_), for example, @;BadBot@ . * @TargetString@ is in the middle of the specified part of the web request and is preceded and followed by characters other than alphanumeric characters or underscore (_), for example, @-BadBot;@ . __EXACTLY__ The value of the specified part of the web request must exactly match the value of @TargetString@ . __STARTS_WITH__ The value of @TargetString@ must appear at the beginning of the specified part of the web request. __ENDS_WITH__ The value of @TargetString@ must appear at the end of the specified part of the web request.-bmtPositionalConstraint :: Lens' ByteMatchTuple PositionalConstraint-bmtPositionalConstraint = lens _bmtPositionalConstraint (\ s a -> s{_bmtPositionalConstraint = a});--instance FromJSON ByteMatchTuple where- parseJSON- = withObject "ByteMatchTuple"- (\ x ->- ByteMatchTuple' <$>- (x .: "FieldToMatch") <*> (x .: "TargetString") <*>- (x .: "TextTransformation")- <*> (x .: "PositionalConstraint"))--instance Hashable ByteMatchTuple--instance NFData ByteMatchTuple--instance ToJSON ByteMatchTuple where- toJSON ByteMatchTuple'{..}- = object- (catMaybes- [Just ("FieldToMatch" .= _bmtFieldToMatch),- Just ("TargetString" .= _bmtTargetString),- Just- ("TextTransformation" .= _bmtTextTransformation),- Just- ("PositionalConstraint" .=- _bmtPositionalConstraint)])---- | Specifies where in a web request to look for @TargetString@ .------------ /See:/ 'fieldToMatch' smart constructor.-data FieldToMatch = FieldToMatch'- { _ftmData :: !(Maybe Text)- , _ftmType :: !MatchFieldType- } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'FieldToMatch' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ftmData' - When the value of @Type@ is @HEADER@ , enter the name of the header that you want AWS WAF to search, for example, @User-Agent@ or @Referer@ . If the value of @Type@ is any other value, omit @Data@ . The name of the header is not case sensitive.------ * 'ftmType' - The part of the web request that you want AWS WAF to search for a specified string. Parts of a request that you can search include the following: * @HEADER@ : A specified request header, for example, the value of the @User-Agent@ or @Referer@ header. If you choose @HEADER@ for the type, specify the name of the header in @Data@ . * @METHOD@ : The HTTP method, which indicated the type of operation that the request is asking the origin to perform. Amazon CloudFront supports the following methods: @DELETE@ , @GET@ , @HEAD@ , @OPTIONS@ , @PATCH@ , @POST@ , and @PUT@ . * @QUERY_STRING@ : A query string, which is the part of a URL that appears after a @?@ character, if any. * @URI@ : The part of a web request that identifies a resource, for example, @/images/daily-ad.jpg@ . * @BODY@ : The part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form. The request body immediately follows the request headers. Note that only the first @8192@ bytes of the request body are forwarded to AWS WAF for inspection. To allow or block requests based on the length of the body, you can create a size constraint set. For more information, see 'CreateSizeConstraintSet' .-fieldToMatch- :: MatchFieldType -- ^ 'ftmType'- -> FieldToMatch-fieldToMatch pType_ =- FieldToMatch'- { _ftmData = Nothing- , _ftmType = pType_- }---- | When the value of @Type@ is @HEADER@ , enter the name of the header that you want AWS WAF to search, for example, @User-Agent@ or @Referer@ . If the value of @Type@ is any other value, omit @Data@ . The name of the header is not case sensitive.-ftmData :: Lens' FieldToMatch (Maybe Text)-ftmData = lens _ftmData (\ s a -> s{_ftmData = a});---- | The part of the web request that you want AWS WAF to search for a specified string. Parts of a request that you can search include the following: * @HEADER@ : A specified request header, for example, the value of the @User-Agent@ or @Referer@ header. If you choose @HEADER@ for the type, specify the name of the header in @Data@ . * @METHOD@ : The HTTP method, which indicated the type of operation that the request is asking the origin to perform. Amazon CloudFront supports the following methods: @DELETE@ , @GET@ , @HEAD@ , @OPTIONS@ , @PATCH@ , @POST@ , and @PUT@ . * @QUERY_STRING@ : A query string, which is the part of a URL that appears after a @?@ character, if any. * @URI@ : The part of a web request that identifies a resource, for example, @/images/daily-ad.jpg@ . * @BODY@ : The part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form. The request body immediately follows the request headers. Note that only the first @8192@ bytes of the request body are forwarded to AWS WAF for inspection. To allow or block requests based on the length of the body, you can create a size constraint set. For more information, see 'CreateSizeConstraintSet' .-ftmType :: Lens' FieldToMatch MatchFieldType-ftmType = lens _ftmType (\ s a -> s{_ftmType = a});--instance FromJSON FieldToMatch where- parseJSON- = withObject "FieldToMatch"- (\ x ->- FieldToMatch' <$> (x .:? "Data") <*> (x .: "Type"))--instance Hashable FieldToMatch--instance NFData FieldToMatch--instance ToJSON FieldToMatch where- toJSON FieldToMatch'{..}- = object- (catMaybes- [("Data" .=) <$> _ftmData,- Just ("Type" .= _ftmType)])---- | The response from a 'GetSampledRequests' request includes an @HTTPHeader@ complex type that appears as @Headers@ in the response syntax. @HTTPHeader@ contains the names and values of all of the headers that appear in one of the web requests that were returned by @GetSampledRequests@ .------------ /See:/ 'hTTPHeader' smart constructor.-data HTTPHeader = HTTPHeader'- { _httphValue :: !(Maybe Text)- , _httphName :: !(Maybe Text)- } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'HTTPHeader' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'httphValue' - The value of one of the headers in the sampled web request.------ * 'httphName' - The name of one of the headers in the sampled web request.-hTTPHeader- :: HTTPHeader-hTTPHeader =- HTTPHeader'- { _httphValue = Nothing- , _httphName = Nothing- }---- | The value of one of the headers in the sampled web request.-httphValue :: Lens' HTTPHeader (Maybe Text)-httphValue = lens _httphValue (\ s a -> s{_httphValue = a});---- | The name of one of the headers in the sampled web request.-httphName :: Lens' HTTPHeader (Maybe Text)-httphName = lens _httphName (\ s a -> s{_httphName = a});--instance FromJSON HTTPHeader where- parseJSON- = withObject "HTTPHeader"- (\ x ->- HTTPHeader' <$> (x .:? "Value") <*> (x .:? "Name"))--instance Hashable HTTPHeader--instance NFData HTTPHeader---- | The response from a 'GetSampledRequests' request includes an @HTTPRequest@ complex type that appears as @Request@ in the response syntax. @HTTPRequest@ contains information about one of the web requests that were returned by @GetSampledRequests@ .------------ /See:/ 'hTTPRequest' smart constructor.-data HTTPRequest = HTTPRequest'- { _httprHTTPVersion :: !(Maybe Text)- , _httprCountry :: !(Maybe Text)- , _httprURI :: !(Maybe Text)- , _httprHeaders :: !(Maybe [HTTPHeader])- , _httprMethod :: !(Maybe Text)- , _httprClientIP :: !(Maybe Text)- } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'HTTPRequest' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'httprHTTPVersion' - The HTTP version specified in the sampled web request, for example, @HTTP/1.1@ .------ * 'httprCountry' - The two-letter country code for the country that the request originated from. For a current list of country codes, see the Wikipedia entry <https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 ISO 3166-1 alpha-2> .------ * 'httprURI' - The part of a web request that identifies the resource, for example, @/images/daily-ad.jpg@ .------ * 'httprHeaders' - A complex type that contains two values for each header in the sampled web request: the name of the header and the value of the header.------ * 'httprMethod' - The HTTP method specified in the sampled web request. CloudFront supports the following methods: @DELETE@ , @GET@ , @HEAD@ , @OPTIONS@ , @PATCH@ , @POST@ , and @PUT@ .------ * 'httprClientIP' - The IP address that the request originated from. If the @WebACL@ is associated with a CloudFront distribution, this is the value of one of the following fields in CloudFront access logs: * @c-ip@ , if the viewer did not use an HTTP proxy or a load balancer to send the request * @x-forwarded-for@ , if the viewer did use an HTTP proxy or a load balancer to send the request-hTTPRequest- :: HTTPRequest-hTTPRequest =- HTTPRequest'- { _httprHTTPVersion = Nothing- , _httprCountry = Nothing- , _httprURI = Nothing- , _httprHeaders = Nothing- , _httprMethod = Nothing- , _httprClientIP = Nothing- }---- | The HTTP version specified in the sampled web request, for example, @HTTP/1.1@ .-httprHTTPVersion :: Lens' HTTPRequest (Maybe Text)-httprHTTPVersion = lens _httprHTTPVersion (\ s a -> s{_httprHTTPVersion = a});---- | The two-letter country code for the country that the request originated from. For a current list of country codes, see the Wikipedia entry <https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 ISO 3166-1 alpha-2> .-httprCountry :: Lens' HTTPRequest (Maybe Text)-httprCountry = lens _httprCountry (\ s a -> s{_httprCountry = a});---- | The part of a web request that identifies the resource, for example, @/images/daily-ad.jpg@ .-httprURI :: Lens' HTTPRequest (Maybe Text)-httprURI = lens _httprURI (\ s a -> s{_httprURI = a});---- | A complex type that contains two values for each header in the sampled web request: the name of the header and the value of the header.-httprHeaders :: Lens' HTTPRequest [HTTPHeader]-httprHeaders = lens _httprHeaders (\ s a -> s{_httprHeaders = a}) . _Default . _Coerce;---- | The HTTP method specified in the sampled web request. CloudFront supports the following methods: @DELETE@ , @GET@ , @HEAD@ , @OPTIONS@ , @PATCH@ , @POST@ , and @PUT@ .-httprMethod :: Lens' HTTPRequest (Maybe Text)-httprMethod = lens _httprMethod (\ s a -> s{_httprMethod = a});---- | The IP address that the request originated from. If the @WebACL@ is associated with a CloudFront distribution, this is the value of one of the following fields in CloudFront access logs: * @c-ip@ , if the viewer did not use an HTTP proxy or a load balancer to send the request * @x-forwarded-for@ , if the viewer did use an HTTP proxy or a load balancer to send the request-httprClientIP :: Lens' HTTPRequest (Maybe Text)-httprClientIP = lens _httprClientIP (\ s a -> s{_httprClientIP = a});--instance FromJSON HTTPRequest where- parseJSON- = withObject "HTTPRequest"- (\ x ->- HTTPRequest' <$>- (x .:? "HTTPVersion") <*> (x .:? "Country") <*>- (x .:? "URI")- <*> (x .:? "Headers" .!= mempty)- <*> (x .:? "Method")- <*> (x .:? "ClientIP"))--instance Hashable HTTPRequest--instance NFData HTTPRequest---- | Contains one or more IP addresses or blocks of IP addresses specified in Classless Inter-Domain Routing (CIDR) notation. To specify an individual IP address, you specify the four-part IP address followed by a @/32@ , for example, 192.0.2.0/31. To block a range of IP addresses, you can specify a @/24@ , a @/16@ , or a @/8@ CIDR. For more information about CIDR notation, perform an Internet search on @cidr notation@ .------------ /See:/ 'ipSet' smart constructor.-data IPSet = IPSet'- { _isName :: !(Maybe Text)- , _isIPSetId :: !Text- , _isIPSetDescriptors :: ![IPSetDescriptor]- } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'IPSet' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'isName' - A friendly name or description of the 'IPSet' . You can't change the name of an @IPSet@ after you create it.------ * 'isIPSetId' - The @IPSetId@ for an @IPSet@ . You use @IPSetId@ to get information about an @IPSet@ (see 'GetIPSet' ), update an @IPSet@ (see 'UpdateIPSet' ), insert an @IPSet@ into a @Rule@ or delete one from a @Rule@ (see 'UpdateRule' ), and delete an @IPSet@ from AWS WAF (see 'DeleteIPSet' ). @IPSetId@ is returned by 'CreateIPSet' and by 'ListIPSets' .------ * 'isIPSetDescriptors' - The IP address type (@IPV4@ ) and the IP address range (in CIDR notation) that web requests originate from. If the @WebACL@ is associated with a CloudFront distribution, this is the value of one of the following fields in CloudFront access logs: * @c-ip@ , if the viewer did not use an HTTP proxy or a load balancer to send the request * @x-forwarded-for@ , if the viewer did use an HTTP proxy or a load balancer to send the request-ipSet- :: Text -- ^ 'isIPSetId'- -> IPSet-ipSet pIPSetId_ =- IPSet'- { _isName = Nothing- , _isIPSetId = pIPSetId_- , _isIPSetDescriptors = mempty- }---- | A friendly name or description of the 'IPSet' . You can't change the name of an @IPSet@ after you create it.-isName :: Lens' IPSet (Maybe Text)-isName = lens _isName (\ s a -> s{_isName = a});---- | The @IPSetId@ for an @IPSet@ . You use @IPSetId@ to get information about an @IPSet@ (see 'GetIPSet' ), update an @IPSet@ (see 'UpdateIPSet' ), insert an @IPSet@ into a @Rule@ or delete one from a @Rule@ (see 'UpdateRule' ), and delete an @IPSet@ from AWS WAF (see 'DeleteIPSet' ). @IPSetId@ is returned by 'CreateIPSet' and by 'ListIPSets' .-isIPSetId :: Lens' IPSet Text-isIPSetId = lens _isIPSetId (\ s a -> s{_isIPSetId = a});---- | The IP address type (@IPV4@ ) and the IP address range (in CIDR notation) that web requests originate from. If the @WebACL@ is associated with a CloudFront distribution, this is the value of one of the following fields in CloudFront access logs: * @c-ip@ , if the viewer did not use an HTTP proxy or a load balancer to send the request * @x-forwarded-for@ , if the viewer did use an HTTP proxy or a load balancer to send the request-isIPSetDescriptors :: Lens' IPSet [IPSetDescriptor]-isIPSetDescriptors = lens _isIPSetDescriptors (\ s a -> s{_isIPSetDescriptors = a}) . _Coerce;--instance FromJSON IPSet where- parseJSON- = withObject "IPSet"- (\ x ->- IPSet' <$>- (x .:? "Name") <*> (x .: "IPSetId") <*>- (x .:? "IPSetDescriptors" .!= mempty))--instance Hashable IPSet--instance NFData IPSet---- | Specifies the IP address type (@IPV4@ ) and the IP address range (in CIDR format) that web requests originate from.------------ /See:/ 'ipSetDescriptor' smart constructor.-data IPSetDescriptor = IPSetDescriptor'- { _isdType :: !IPSetDescriptorType- , _isdValue :: !Text- } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'IPSetDescriptor' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'isdType' - Specify @IPV4@ .------ * 'isdValue' - Specify an IPv4 address by using CIDR notation. For example: * To configure AWS WAF to allow, block, or count requests that originated from the IP address 192.0.2.44, specify @192.0.2.44/32@ . * To configure AWS WAF to allow, block, or count requests that originated from IP addresses from 192.0.2.0 to 192.0.2.255, specify @192.0.2.0/24@ . AWS WAF supports only /8, /16, /24, and /32 IP addresses. For more information about CIDR notation, see the Wikipedia entry <https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing Classless Inter-Domain Routing> .-ipSetDescriptor- :: IPSetDescriptorType -- ^ 'isdType'- -> Text -- ^ 'isdValue'- -> IPSetDescriptor-ipSetDescriptor pType_ pValue_ =- IPSetDescriptor'- { _isdType = pType_- , _isdValue = pValue_- }---- | Specify @IPV4@ .-isdType :: Lens' IPSetDescriptor IPSetDescriptorType-isdType = lens _isdType (\ s a -> s{_isdType = a});---- | Specify an IPv4 address by using CIDR notation. For example: * To configure AWS WAF to allow, block, or count requests that originated from the IP address 192.0.2.44, specify @192.0.2.44/32@ . * To configure AWS WAF to allow, block, or count requests that originated from IP addresses from 192.0.2.0 to 192.0.2.255, specify @192.0.2.0/24@ . AWS WAF supports only /8, /16, /24, and /32 IP addresses. For more information about CIDR notation, see the Wikipedia entry <https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing Classless Inter-Domain Routing> .-isdValue :: Lens' IPSetDescriptor Text-isdValue = lens _isdValue (\ s a -> s{_isdValue = a});--instance FromJSON IPSetDescriptor where- parseJSON- = withObject "IPSetDescriptor"- (\ x ->- IPSetDescriptor' <$>- (x .: "Type") <*> (x .: "Value"))--instance Hashable IPSetDescriptor--instance NFData IPSetDescriptor--instance ToJSON IPSetDescriptor where- toJSON IPSetDescriptor'{..}- = object- (catMaybes- [Just ("Type" .= _isdType),- Just ("Value" .= _isdValue)])---- | Contains the identifier and the name of the @IPSet@ .------------ /See:/ 'ipSetSummary' smart constructor.-data IPSetSummary = IPSetSummary'- { _issIPSetId :: !Text- , _issName :: !Text- } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'IPSetSummary' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'issIPSetId' - The @IPSetId@ for an 'IPSet' . You can use @IPSetId@ in a 'GetIPSet' request to get detailed information about an 'IPSet' .------ * 'issName' - A friendly name or description of the 'IPSet' . You can't change the name of an @IPSet@ after you create it.-ipSetSummary- :: Text -- ^ 'issIPSetId'- -> Text -- ^ 'issName'- -> IPSetSummary-ipSetSummary pIPSetId_ pName_ =- IPSetSummary'- { _issIPSetId = pIPSetId_- , _issName = pName_- }---- | The @IPSetId@ for an 'IPSet' . You can use @IPSetId@ in a 'GetIPSet' request to get detailed information about an 'IPSet' .-issIPSetId :: Lens' IPSetSummary Text-issIPSetId = lens _issIPSetId (\ s a -> s{_issIPSetId = a});---- | A friendly name or description of the 'IPSet' . You can't change the name of an @IPSet@ after you create it.-issName :: Lens' IPSetSummary Text-issName = lens _issName (\ s a -> s{_issName = a});--instance FromJSON IPSetSummary where- parseJSON- = withObject "IPSetSummary"- (\ x ->- IPSetSummary' <$> (x .: "IPSetId") <*> (x .: "Name"))--instance Hashable IPSetSummary--instance NFData IPSetSummary---- | Specifies the type of update to perform to an 'IPSet' with 'UpdateIPSet' .------------ /See:/ 'ipSetUpdate' smart constructor.-data IPSetUpdate = IPSetUpdate'- { _isuAction :: !ChangeAction- , _isuIPSetDescriptor :: !IPSetDescriptor- } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'IPSetUpdate' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'isuAction' - Specifies whether to insert or delete an IP address with 'UpdateIPSet' .------ * 'isuIPSetDescriptor' - The IP address type (@IPV4@ ) and the IP address range (in CIDR notation) that web requests originate from.-ipSetUpdate- :: ChangeAction -- ^ 'isuAction'- -> IPSetDescriptor -- ^ 'isuIPSetDescriptor'- -> IPSetUpdate-ipSetUpdate pAction_ pIPSetDescriptor_ =- IPSetUpdate'- { _isuAction = pAction_- , _isuIPSetDescriptor = pIPSetDescriptor_- }---- | Specifies whether to insert or delete an IP address with 'UpdateIPSet' .-isuAction :: Lens' IPSetUpdate ChangeAction-isuAction = lens _isuAction (\ s a -> s{_isuAction = a});---- | The IP address type (@IPV4@ ) and the IP address range (in CIDR notation) that web requests originate from.-isuIPSetDescriptor :: Lens' IPSetUpdate IPSetDescriptor-isuIPSetDescriptor = lens _isuIPSetDescriptor (\ s a -> s{_isuIPSetDescriptor = a});--instance Hashable IPSetUpdate--instance NFData IPSetUpdate--instance ToJSON IPSetUpdate where- toJSON IPSetUpdate'{..}- = object- (catMaybes- [Just ("Action" .= _isuAction),- Just ("IPSetDescriptor" .= _isuIPSetDescriptor)])---- | Specifies the 'ByteMatchSet' , 'IPSet' , 'SqlInjectionMatchSet' , 'XssMatchSet' , and 'SizeConstraintSet' objects that you want to add to a @Rule@ and, for each object, indicates whether you want to negate the settings, for example, requests that do NOT originate from the IP address 192.0.2.44.------------ /See:/ 'predicate' smart constructor.-data Predicate = Predicate'- { _pNegated :: !Bool- , _pType :: !PredicateType- , _pDataId :: !Text- } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'Predicate' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'pNegated' - Set @Negated@ to @False@ if you want AWS WAF to allow, block, or count requests based on the settings in the specified 'ByteMatchSet' , 'IPSet' , 'SqlInjectionMatchSet' , 'XssMatchSet' , or 'SizeConstraintSet' . For example, if an @IPSet@ includes the IP address @192.0.2.44@ , AWS WAF will allow or block requests based on that IP address. Set @Negated@ to @True@ if you want AWS WAF to allow or block a request based on the negation of the settings in the 'ByteMatchSet' , 'IPSet' , 'SqlInjectionMatchSet' , 'XssMatchSet' , or 'SizeConstraintSet' . For example, if an @IPSet@ includes the IP address @192.0.2.44@ , AWS WAF will allow, block, or count requests based on all IP addresses /except/ @192.0.2.44@ .------ * 'pType' - The type of predicate in a @Rule@ , such as @ByteMatchSet@ or @IPSet@ .------ * 'pDataId' - A unique identifier for a predicate in a @Rule@ , such as @ByteMatchSetId@ or @IPSetId@ . The ID is returned by the corresponding @Create@ or @List@ command.-predicate- :: Bool -- ^ 'pNegated'- -> PredicateType -- ^ 'pType'- -> Text -- ^ 'pDataId'- -> Predicate-predicate pNegated_ pType_ pDataId_ =- Predicate'- { _pNegated = pNegated_- , _pType = pType_- , _pDataId = pDataId_- }---- | Set @Negated@ to @False@ if you want AWS WAF to allow, block, or count requests based on the settings in the specified 'ByteMatchSet' , 'IPSet' , 'SqlInjectionMatchSet' , 'XssMatchSet' , or 'SizeConstraintSet' . For example, if an @IPSet@ includes the IP address @192.0.2.44@ , AWS WAF will allow or block requests based on that IP address. Set @Negated@ to @True@ if you want AWS WAF to allow or block a request based on the negation of the settings in the 'ByteMatchSet' , 'IPSet' , 'SqlInjectionMatchSet' , 'XssMatchSet' , or 'SizeConstraintSet' . For example, if an @IPSet@ includes the IP address @192.0.2.44@ , AWS WAF will allow, block, or count requests based on all IP addresses /except/ @192.0.2.44@ .-pNegated :: Lens' Predicate Bool-pNegated = lens _pNegated (\ s a -> s{_pNegated = a});---- | The type of predicate in a @Rule@ , such as @ByteMatchSet@ or @IPSet@ .-pType :: Lens' Predicate PredicateType-pType = lens _pType (\ s a -> s{_pType = a});---- | A unique identifier for a predicate in a @Rule@ , such as @ByteMatchSetId@ or @IPSetId@ . The ID is returned by the corresponding @Create@ or @List@ command.-pDataId :: Lens' Predicate Text-pDataId = lens _pDataId (\ s a -> s{_pDataId = a});--instance FromJSON Predicate where- parseJSON- = withObject "Predicate"- (\ x ->- Predicate' <$>- (x .: "Negated") <*> (x .: "Type") <*>- (x .: "DataId"))--instance Hashable Predicate--instance NFData Predicate--instance ToJSON Predicate where- toJSON Predicate'{..}- = object- (catMaybes- [Just ("Negated" .= _pNegated),- Just ("Type" .= _pType),- Just ("DataId" .= _pDataId)])---- | A combination of 'ByteMatchSet' , 'IPSet' , and/or 'SqlInjectionMatchSet' objects that identify the web requests that you want to allow, block, or count. For example, you might create a @Rule@ that includes the following predicates:--------- * An @IPSet@ that causes AWS WAF to search for web requests that originate from the IP address @192.0.2.44@------ * A @ByteMatchSet@ that causes AWS WAF to search for web requests for which the value of the @User-Agent@ header is @BadBot@ .------------ To match the settings in this @Rule@ , a request must originate from @192.0.2.44@ AND include a @User-Agent@ header for which the value is @BadBot@ .--------- /See:/ 'rule' smart constructor.-data Rule = Rule'- { _rMetricName :: !(Maybe Text)- , _rName :: !(Maybe Text)- , _rRuleId :: !Text- , _rPredicates :: ![Predicate]- } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'Rule' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'rMetricName' - Undocumented member.------ * 'rName' - The friendly name or description for the @Rule@ . You can't change the name of a @Rule@ after you create it.------ * 'rRuleId' - A unique identifier for a @Rule@ . You use @RuleId@ to get more information about a @Rule@ (see 'GetRule' ), update a @Rule@ (see 'UpdateRule' ), insert a @Rule@ into a @WebACL@ or delete a one from a @WebACL@ (see 'UpdateWebACL' ), or delete a @Rule@ from AWS WAF (see 'DeleteRule' ). @RuleId@ is returned by 'CreateRule' and by 'ListRules' .------ * 'rPredicates' - The @Predicates@ object contains one @Predicate@ element for each 'ByteMatchSet' , 'IPSet' , or 'SqlInjectionMatchSet' object that you want to include in a @Rule@ .-rule- :: Text -- ^ 'rRuleId'- -> Rule-rule pRuleId_ =- Rule'- { _rMetricName = Nothing- , _rName = Nothing- , _rRuleId = pRuleId_- , _rPredicates = mempty- }---- | Undocumented member.-rMetricName :: Lens' Rule (Maybe Text)-rMetricName = lens _rMetricName (\ s a -> s{_rMetricName = a});---- | The friendly name or description for the @Rule@ . You can't change the name of a @Rule@ after you create it.-rName :: Lens' Rule (Maybe Text)-rName = lens _rName (\ s a -> s{_rName = a});---- | A unique identifier for a @Rule@ . You use @RuleId@ to get more information about a @Rule@ (see 'GetRule' ), update a @Rule@ (see 'UpdateRule' ), insert a @Rule@ into a @WebACL@ or delete a one from a @WebACL@ (see 'UpdateWebACL' ), or delete a @Rule@ from AWS WAF (see 'DeleteRule' ). @RuleId@ is returned by 'CreateRule' and by 'ListRules' .-rRuleId :: Lens' Rule Text-rRuleId = lens _rRuleId (\ s a -> s{_rRuleId = a});---- | The @Predicates@ object contains one @Predicate@ element for each 'ByteMatchSet' , 'IPSet' , or 'SqlInjectionMatchSet' object that you want to include in a @Rule@ .-rPredicates :: Lens' Rule [Predicate]-rPredicates = lens _rPredicates (\ s a -> s{_rPredicates = a}) . _Coerce;--instance FromJSON Rule where- parseJSON- = withObject "Rule"- (\ x ->- Rule' <$>- (x .:? "MetricName") <*> (x .:? "Name") <*>- (x .: "RuleId")- <*> (x .:? "Predicates" .!= mempty))--instance Hashable Rule--instance NFData Rule---- | Contains the identifier and the friendly name or description of the @Rule@ .------------ /See:/ 'ruleSummary' smart constructor.-data RuleSummary = RuleSummary'- { _rsRuleId :: !Text- , _rsName :: !Text- } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'RuleSummary' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'rsRuleId' - A unique identifier for a @Rule@ . You use @RuleId@ to get more information about a @Rule@ (see 'GetRule' ), update a @Rule@ (see 'UpdateRule' ), insert a @Rule@ into a @WebACL@ or delete one from a @WebACL@ (see 'UpdateWebACL' ), or delete a @Rule@ from AWS WAF (see 'DeleteRule' ). @RuleId@ is returned by 'CreateRule' and by 'ListRules' .------ * 'rsName' - A friendly name or description of the 'Rule' . You can't change the name of a @Rule@ after you create it.-ruleSummary- :: Text -- ^ 'rsRuleId'- -> Text -- ^ 'rsName'- -> RuleSummary-ruleSummary pRuleId_ pName_ =- RuleSummary'- { _rsRuleId = pRuleId_- , _rsName = pName_- }---- | A unique identifier for a @Rule@ . You use @RuleId@ to get more information about a @Rule@ (see 'GetRule' ), update a @Rule@ (see 'UpdateRule' ), insert a @Rule@ into a @WebACL@ or delete one from a @WebACL@ (see 'UpdateWebACL' ), or delete a @Rule@ from AWS WAF (see 'DeleteRule' ). @RuleId@ is returned by 'CreateRule' and by 'ListRules' .-rsRuleId :: Lens' RuleSummary Text-rsRuleId = lens _rsRuleId (\ s a -> s{_rsRuleId = a});---- | A friendly name or description of the 'Rule' . You can't change the name of a @Rule@ after you create it.-rsName :: Lens' RuleSummary Text-rsName = lens _rsName (\ s a -> s{_rsName = a});--instance FromJSON RuleSummary where- parseJSON- = withObject "RuleSummary"- (\ x ->- RuleSummary' <$> (x .: "RuleId") <*> (x .: "Name"))--instance Hashable RuleSummary--instance NFData RuleSummary---- | Specifies a @Predicate@ (such as an @IPSet@ ) and indicates whether you want to add it to a @Rule@ or delete it from a @Rule@ .------------ /See:/ 'ruleUpdate' smart constructor.-data RuleUpdate = RuleUpdate'- { _ruAction :: !ChangeAction- , _ruPredicate :: !Predicate- } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'RuleUpdate' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ruAction' - Specify @INSERT@ to add a @Predicate@ to a @Rule@ . Use @DELETE@ to remove a @Predicate@ from a @Rule@ .------ * 'ruPredicate' - The ID of the @Predicate@ (such as an @IPSet@ ) that you want to add to a @Rule@ .-ruleUpdate- :: ChangeAction -- ^ 'ruAction'- -> Predicate -- ^ 'ruPredicate'- -> RuleUpdate-ruleUpdate pAction_ pPredicate_ =- RuleUpdate'- { _ruAction = pAction_- , _ruPredicate = pPredicate_- }---- | Specify @INSERT@ to add a @Predicate@ to a @Rule@ . Use @DELETE@ to remove a @Predicate@ from a @Rule@ .-ruAction :: Lens' RuleUpdate ChangeAction-ruAction = lens _ruAction (\ s a -> s{_ruAction = a});---- | The ID of the @Predicate@ (such as an @IPSet@ ) that you want to add to a @Rule@ .-ruPredicate :: Lens' RuleUpdate Predicate-ruPredicate = lens _ruPredicate (\ s a -> s{_ruPredicate = a});--instance Hashable RuleUpdate--instance NFData RuleUpdate--instance ToJSON RuleUpdate where- toJSON RuleUpdate'{..}- = object- (catMaybes- [Just ("Action" .= _ruAction),- Just ("Predicate" .= _ruPredicate)])---- | The response from a 'GetSampledRequests' request includes a @SampledHTTPRequests@ complex type that appears as @SampledRequests@ in the response syntax. @SampledHTTPRequests@ contains one @SampledHTTPRequest@ object for each web request that is returned by @GetSampledRequests@ .------------ /See:/ 'sampledHTTPRequest' smart constructor.-data SampledHTTPRequest = SampledHTTPRequest'- { _shttprAction :: !(Maybe Text)- , _shttprTimestamp :: !(Maybe POSIX)- , _shttprRequest :: !HTTPRequest- , _shttprWeight :: !Nat- } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'SampledHTTPRequest' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'shttprAction' - The action for the @Rule@ that the request matched: @ALLOW@ , @BLOCK@ , or @COUNT@ .------ * 'shttprTimestamp' - The time at which AWS WAF received the request from your AWS resource, in Unix time format (in seconds).------ * 'shttprRequest' - A complex type that contains detailed information about the request.------ * 'shttprWeight' - A value that indicates how one result in the response relates proportionally to other results in the response. A result that has a weight of @2@ represents roughly twice as many CloudFront web requests as a result that has a weight of @1@ .-sampledHTTPRequest- :: HTTPRequest -- ^ 'shttprRequest'- -> Natural -- ^ 'shttprWeight'- -> SampledHTTPRequest-sampledHTTPRequest pRequest_ pWeight_ =- SampledHTTPRequest'- { _shttprAction = Nothing- , _shttprTimestamp = Nothing- , _shttprRequest = pRequest_- , _shttprWeight = _Nat # pWeight_- }---- | The action for the @Rule@ that the request matched: @ALLOW@ , @BLOCK@ , or @COUNT@ .-shttprAction :: Lens' SampledHTTPRequest (Maybe Text)-shttprAction = lens _shttprAction (\ s a -> s{_shttprAction = a});---- | The time at which AWS WAF received the request from your AWS resource, in Unix time format (in seconds).-shttprTimestamp :: Lens' SampledHTTPRequest (Maybe UTCTime)-shttprTimestamp = lens _shttprTimestamp (\ s a -> s{_shttprTimestamp = a}) . mapping _Time;---- | A complex type that contains detailed information about the request.-shttprRequest :: Lens' SampledHTTPRequest HTTPRequest-shttprRequest = lens _shttprRequest (\ s a -> s{_shttprRequest = a});---- | A value that indicates how one result in the response relates proportionally to other results in the response. A result that has a weight of @2@ represents roughly twice as many CloudFront web requests as a result that has a weight of @1@ .-shttprWeight :: Lens' SampledHTTPRequest Natural-shttprWeight = lens _shttprWeight (\ s a -> s{_shttprWeight = a}) . _Nat;--instance FromJSON SampledHTTPRequest where- parseJSON- = withObject "SampledHTTPRequest"- (\ x ->- SampledHTTPRequest' <$>- (x .:? "Action") <*> (x .:? "Timestamp") <*>- (x .: "Request")- <*> (x .: "Weight"))--instance Hashable SampledHTTPRequest--instance NFData SampledHTTPRequest---- | Specifies a constraint on the size of a part of the web request. AWS WAF uses the @Size@ , @ComparisonOperator@ , and @FieldToMatch@ to build an expression in the form of "@Size@ @ComparisonOperator@ size in bytes of @FieldToMatch@ ". If that expression is true, the @SizeConstraint@ is considered to match.------------ /See:/ 'sizeConstraint' smart constructor.-data SizeConstraint = SizeConstraint'- { _scFieldToMatch :: !FieldToMatch- , _scTextTransformation :: !TextTransformation- , _scComparisonOperator :: !ComparisonOperator- , _scSize :: !Nat- } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'SizeConstraint' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'scFieldToMatch' - Undocumented member.------ * 'scTextTransformation' - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass AWS WAF. If you specify a transformation, AWS WAF performs the transformation on @FieldToMatch@ before inspecting a request for a match. Note that if you choose @BODY@ for the value of @Type@ , you must choose @NONE@ for @TextTransformation@ because CloudFront forwards only the first 8192 bytes for inspection. __NONE__ Specify @NONE@ if you don't want to perform any text transformations. __CMD_LINE__ When you're concerned that attackers are injecting an operating system command line command and using unusual formatting to disguise some or all of the command, use this option to perform the following transformations: * Delete the following characters: \ " ' ^ * Delete spaces before the following characters: / ( * Replace the following characters with a space: , ; * Replace multiple spaces with one space * Convert uppercase letters (A-Z) to lowercase (a-z) __COMPRESS_WHITE_SPACE__ Use this option to replace the following characters with a space character (decimal 32): * \f, formfeed, decimal 12 * \t, tab, decimal 9 * \n, newline, decimal 10 * \r, carriage return, decimal 13 * \v, vertical tab, decimal 11 * non-breaking space, decimal 160 @COMPRESS_WHITE_SPACE@ also replaces multiple spaces with one space. __HTML_ENTITY_DECODE__ Use this option to replace HTML-encoded characters with unencoded characters. @HTML_ENTITY_DECODE@ performs the following operations: * Replaces @(ampersand)quot;@ with @"@ * Replaces @(ampersand)nbsp;@ with a non-breaking space, decimal 160 * Replaces @(ampersand)lt;@ with a "less than" symbol * Replaces @(ampersand)gt;@ with @>@ * Replaces characters that are represented in hexadecimal format, @(ampersand)#xhhhh;@ , with the corresponding characters * Replaces characters that are represented in decimal format, @(ampersand)#nnnn;@ , with the corresponding characters __LOWERCASE__ Use this option to convert uppercase letters (A-Z) to lowercase (a-z). __URL_DECODE__ Use this option to decode a URL-encoded value.------ * 'scComparisonOperator' - The type of comparison you want AWS WAF to perform. AWS WAF uses this in combination with the provided @Size@ and @FieldToMatch@ to build an expression in the form of "@Size@ @ComparisonOperator@ size in bytes of @FieldToMatch@ ". If that expression is true, the @SizeConstraint@ is considered to match. __EQ__ : Used to test if the @Size@ is equal to the size of the @FieldToMatch@ __NE__ : Used to test if the @Size@ is not equal to the size of the @FieldToMatch@ __LE__ : Used to test if the @Size@ is less than or equal to the size of the @FieldToMatch@ __LT__ : Used to test if the @Size@ is strictly less than the size of the @FieldToMatch@ __GE__ : Used to test if the @Size@ is greater than or equal to the size of the @FieldToMatch@ __GT__ : Used to test if the @Size@ is strictly greater than the size of the @FieldToMatch@------ * 'scSize' - The size in bytes that you want AWS WAF to compare against the size of the specified @FieldToMatch@ . AWS WAF uses this in combination with @ComparisonOperator@ and @FieldToMatch@ to build an expression in the form of "@Size@ @ComparisonOperator@ size in bytes of @FieldToMatch@ ". If that expression is true, the @SizeConstraint@ is considered to match. Valid values for size are 0 - 21474836480 bytes (0 - 20 GB). If you specify @URI@ for the value of @Type@ , the / in the URI counts as one character. For example, the URI @/logo.jpg@ is nine characters long.-sizeConstraint- :: FieldToMatch -- ^ 'scFieldToMatch'- -> TextTransformation -- ^ 'scTextTransformation'- -> ComparisonOperator -- ^ 'scComparisonOperator'- -> Natural -- ^ 'scSize'- -> SizeConstraint-sizeConstraint pFieldToMatch_ pTextTransformation_ pComparisonOperator_ pSize_ =- SizeConstraint'- { _scFieldToMatch = pFieldToMatch_- , _scTextTransformation = pTextTransformation_- , _scComparisonOperator = pComparisonOperator_- , _scSize = _Nat # pSize_- }---- | Undocumented member.-scFieldToMatch :: Lens' SizeConstraint FieldToMatch-scFieldToMatch = lens _scFieldToMatch (\ s a -> s{_scFieldToMatch = a});---- | Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass AWS WAF. If you specify a transformation, AWS WAF performs the transformation on @FieldToMatch@ before inspecting a request for a match. Note that if you choose @BODY@ for the value of @Type@ , you must choose @NONE@ for @TextTransformation@ because CloudFront forwards only the first 8192 bytes for inspection. __NONE__ Specify @NONE@ if you don't want to perform any text transformations. __CMD_LINE__ When you're concerned that attackers are injecting an operating system command line command and using unusual formatting to disguise some or all of the command, use this option to perform the following transformations: * Delete the following characters: \ " ' ^ * Delete spaces before the following characters: / ( * Replace the following characters with a space: , ; * Replace multiple spaces with one space * Convert uppercase letters (A-Z) to lowercase (a-z) __COMPRESS_WHITE_SPACE__ Use this option to replace the following characters with a space character (decimal 32): * \f, formfeed, decimal 12 * \t, tab, decimal 9 * \n, newline, decimal 10 * \r, carriage return, decimal 13 * \v, vertical tab, decimal 11 * non-breaking space, decimal 160 @COMPRESS_WHITE_SPACE@ also replaces multiple spaces with one space. __HTML_ENTITY_DECODE__ Use this option to replace HTML-encoded characters with unencoded characters. @HTML_ENTITY_DECODE@ performs the following operations: * Replaces @(ampersand)quot;@ with @"@ * Replaces @(ampersand)nbsp;@ with a non-breaking space, decimal 160 * Replaces @(ampersand)lt;@ with a "less than" symbol * Replaces @(ampersand)gt;@ with @>@ * Replaces characters that are represented in hexadecimal format, @(ampersand)#xhhhh;@ , with the corresponding characters * Replaces characters that are represented in decimal format, @(ampersand)#nnnn;@ , with the corresponding characters __LOWERCASE__ Use this option to convert uppercase letters (A-Z) to lowercase (a-z). __URL_DECODE__ Use this option to decode a URL-encoded value.-scTextTransformation :: Lens' SizeConstraint TextTransformation-scTextTransformation = lens _scTextTransformation (\ s a -> s{_scTextTransformation = a});---- | The type of comparison you want AWS WAF to perform. AWS WAF uses this in combination with the provided @Size@ and @FieldToMatch@ to build an expression in the form of "@Size@ @ComparisonOperator@ size in bytes of @FieldToMatch@ ". If that expression is true, the @SizeConstraint@ is considered to match. __EQ__ : Used to test if the @Size@ is equal to the size of the @FieldToMatch@ __NE__ : Used to test if the @Size@ is not equal to the size of the @FieldToMatch@ __LE__ : Used to test if the @Size@ is less than or equal to the size of the @FieldToMatch@ __LT__ : Used to test if the @Size@ is strictly less than the size of the @FieldToMatch@ __GE__ : Used to test if the @Size@ is greater than or equal to the size of the @FieldToMatch@ __GT__ : Used to test if the @Size@ is strictly greater than the size of the @FieldToMatch@-scComparisonOperator :: Lens' SizeConstraint ComparisonOperator-scComparisonOperator = lens _scComparisonOperator (\ s a -> s{_scComparisonOperator = a});---- | The size in bytes that you want AWS WAF to compare against the size of the specified @FieldToMatch@ . AWS WAF uses this in combination with @ComparisonOperator@ and @FieldToMatch@ to build an expression in the form of "@Size@ @ComparisonOperator@ size in bytes of @FieldToMatch@ ". If that expression is true, the @SizeConstraint@ is considered to match. Valid values for size are 0 - 21474836480 bytes (0 - 20 GB). If you specify @URI@ for the value of @Type@ , the / in the URI counts as one character. For example, the URI @/logo.jpg@ is nine characters long.-scSize :: Lens' SizeConstraint Natural-scSize = lens _scSize (\ s a -> s{_scSize = a}) . _Nat;--instance FromJSON SizeConstraint where- parseJSON- = withObject "SizeConstraint"- (\ x ->- SizeConstraint' <$>- (x .: "FieldToMatch") <*> (x .: "TextTransformation")- <*> (x .: "ComparisonOperator")- <*> (x .: "Size"))--instance Hashable SizeConstraint--instance NFData SizeConstraint--instance ToJSON SizeConstraint where- toJSON SizeConstraint'{..}- = object- (catMaybes- [Just ("FieldToMatch" .= _scFieldToMatch),- Just ("TextTransformation" .= _scTextTransformation),- Just ("ComparisonOperator" .= _scComparisonOperator),- Just ("Size" .= _scSize)])---- | A complex type that contains @SizeConstraint@ objects, which specify the parts of web requests that you want AWS WAF to inspect the size of. If a @SizeConstraintSet@ contains more than one @SizeConstraint@ object, a request only needs to match one constraint to be considered a match.------------ /See:/ 'sizeConstraintSet' smart constructor.-data SizeConstraintSet = SizeConstraintSet'- { _scsName :: !(Maybe Text)- , _scsSizeConstraintSetId :: !Text- , _scsSizeConstraints :: ![SizeConstraint]- } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'SizeConstraintSet' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'scsName' - The name, if any, of the @SizeConstraintSet@ .------ * 'scsSizeConstraintSetId' - A unique identifier for a @SizeConstraintSet@ . You use @SizeConstraintSetId@ to get information about a @SizeConstraintSet@ (see 'GetSizeConstraintSet' ), update a @SizeConstraintSet@ (see 'UpdateSizeConstraintSet' ), insert a @SizeConstraintSet@ into a @Rule@ or delete one from a @Rule@ (see 'UpdateRule' ), and delete a @SizeConstraintSet@ from AWS WAF (see 'DeleteSizeConstraintSet' ). @SizeConstraintSetId@ is returned by 'CreateSizeConstraintSet' and by 'ListSizeConstraintSets' .------ * 'scsSizeConstraints' - Specifies the parts of web requests that you want to inspect the size of.-sizeConstraintSet- :: Text -- ^ 'scsSizeConstraintSetId'- -> SizeConstraintSet-sizeConstraintSet pSizeConstraintSetId_ =- SizeConstraintSet'- { _scsName = Nothing- , _scsSizeConstraintSetId = pSizeConstraintSetId_- , _scsSizeConstraints = mempty- }---- | The name, if any, of the @SizeConstraintSet@ .-scsName :: Lens' SizeConstraintSet (Maybe Text)-scsName = lens _scsName (\ s a -> s{_scsName = a});---- | A unique identifier for a @SizeConstraintSet@ . You use @SizeConstraintSetId@ to get information about a @SizeConstraintSet@ (see 'GetSizeConstraintSet' ), update a @SizeConstraintSet@ (see 'UpdateSizeConstraintSet' ), insert a @SizeConstraintSet@ into a @Rule@ or delete one from a @Rule@ (see 'UpdateRule' ), and delete a @SizeConstraintSet@ from AWS WAF (see 'DeleteSizeConstraintSet' ). @SizeConstraintSetId@ is returned by 'CreateSizeConstraintSet' and by 'ListSizeConstraintSets' .-scsSizeConstraintSetId :: Lens' SizeConstraintSet Text-scsSizeConstraintSetId = lens _scsSizeConstraintSetId (\ s a -> s{_scsSizeConstraintSetId = a});---- | Specifies the parts of web requests that you want to inspect the size of.-scsSizeConstraints :: Lens' SizeConstraintSet [SizeConstraint]-scsSizeConstraints = lens _scsSizeConstraints (\ s a -> s{_scsSizeConstraints = a}) . _Coerce;--instance FromJSON SizeConstraintSet where- parseJSON- = withObject "SizeConstraintSet"- (\ x ->- SizeConstraintSet' <$>- (x .:? "Name") <*> (x .: "SizeConstraintSetId") <*>- (x .:? "SizeConstraints" .!= mempty))--instance Hashable SizeConstraintSet--instance NFData SizeConstraintSet---- | The @Id@ and @Name@ of a @SizeConstraintSet@ .------------ /See:/ 'sizeConstraintSetSummary' smart constructor.-data SizeConstraintSetSummary = SizeConstraintSetSummary'- { _scssSizeConstraintSetId :: !Text- , _scssName :: !Text- } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'SizeConstraintSetSummary' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'scssSizeConstraintSetId' - A unique identifier for a @SizeConstraintSet@ . You use @SizeConstraintSetId@ to get information about a @SizeConstraintSet@ (see 'GetSizeConstraintSet' ), update a @SizeConstraintSet@ (see 'UpdateSizeConstraintSet' ), insert a @SizeConstraintSet@ into a @Rule@ or delete one from a @Rule@ (see 'UpdateRule' ), and delete a @SizeConstraintSet@ from AWS WAF (see 'DeleteSizeConstraintSet' ). @SizeConstraintSetId@ is returned by 'CreateSizeConstraintSet' and by 'ListSizeConstraintSets' .------ * 'scssName' - The name of the @SizeConstraintSet@ , if any.-sizeConstraintSetSummary- :: Text -- ^ 'scssSizeConstraintSetId'- -> Text -- ^ 'scssName'- -> SizeConstraintSetSummary-sizeConstraintSetSummary pSizeConstraintSetId_ pName_ =- SizeConstraintSetSummary'- { _scssSizeConstraintSetId = pSizeConstraintSetId_- , _scssName = pName_- }---- | A unique identifier for a @SizeConstraintSet@ . You use @SizeConstraintSetId@ to get information about a @SizeConstraintSet@ (see 'GetSizeConstraintSet' ), update a @SizeConstraintSet@ (see 'UpdateSizeConstraintSet' ), insert a @SizeConstraintSet@ into a @Rule@ or delete one from a @Rule@ (see 'UpdateRule' ), and delete a @SizeConstraintSet@ from AWS WAF (see 'DeleteSizeConstraintSet' ). @SizeConstraintSetId@ is returned by 'CreateSizeConstraintSet' and by 'ListSizeConstraintSets' .-scssSizeConstraintSetId :: Lens' SizeConstraintSetSummary Text-scssSizeConstraintSetId = lens _scssSizeConstraintSetId (\ s a -> s{_scssSizeConstraintSetId = a});---- | The name of the @SizeConstraintSet@ , if any.-scssName :: Lens' SizeConstraintSetSummary Text-scssName = lens _scssName (\ s a -> s{_scssName = a});--instance FromJSON SizeConstraintSetSummary where- parseJSON- = withObject "SizeConstraintSetSummary"- (\ x ->- SizeConstraintSetSummary' <$>- (x .: "SizeConstraintSetId") <*> (x .: "Name"))--instance Hashable SizeConstraintSetSummary--instance NFData SizeConstraintSetSummary---- | Specifies the part of a web request that you want to inspect the size of and indicates whether you want to add the specification to a 'SizeConstraintSet' or delete it from a @SizeConstraintSet@ .------------ /See:/ 'sizeConstraintSetUpdate' smart constructor.-data SizeConstraintSetUpdate = SizeConstraintSetUpdate'- { _scsuAction :: !ChangeAction- , _scsuSizeConstraint :: !SizeConstraint- } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'SizeConstraintSetUpdate' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'scsuAction' - Specify @INSERT@ to add a 'SizeConstraintSetUpdate' to a 'SizeConstraintSet' . Use @DELETE@ to remove a @SizeConstraintSetUpdate@ from a @SizeConstraintSet@ .------ * 'scsuSizeConstraint' - Specifies a constraint on the size of a part of the web request. AWS WAF uses the @Size@ , @ComparisonOperator@ , and @FieldToMatch@ to build an expression in the form of "@Size@ @ComparisonOperator@ size in bytes of @FieldToMatch@ ". If that expression is true, the @SizeConstraint@ is considered to match.-sizeConstraintSetUpdate- :: ChangeAction -- ^ 'scsuAction'- -> SizeConstraint -- ^ 'scsuSizeConstraint'- -> SizeConstraintSetUpdate-sizeConstraintSetUpdate pAction_ pSizeConstraint_ =- SizeConstraintSetUpdate'- { _scsuAction = pAction_- , _scsuSizeConstraint = pSizeConstraint_- }---- | Specify @INSERT@ to add a 'SizeConstraintSetUpdate' to a 'SizeConstraintSet' . Use @DELETE@ to remove a @SizeConstraintSetUpdate@ from a @SizeConstraintSet@ .-scsuAction :: Lens' SizeConstraintSetUpdate ChangeAction-scsuAction = lens _scsuAction (\ s a -> s{_scsuAction = a});---- | Specifies a constraint on the size of a part of the web request. AWS WAF uses the @Size@ , @ComparisonOperator@ , and @FieldToMatch@ to build an expression in the form of "@Size@ @ComparisonOperator@ size in bytes of @FieldToMatch@ ". If that expression is true, the @SizeConstraint@ is considered to match.-scsuSizeConstraint :: Lens' SizeConstraintSetUpdate SizeConstraint-scsuSizeConstraint = lens _scsuSizeConstraint (\ s a -> s{_scsuSizeConstraint = a});--instance Hashable SizeConstraintSetUpdate--instance NFData SizeConstraintSetUpdate--instance ToJSON SizeConstraintSetUpdate where- toJSON SizeConstraintSetUpdate'{..}- = object- (catMaybes- [Just ("Action" .= _scsuAction),- Just ("SizeConstraint" .= _scsuSizeConstraint)])---- | A complex type that contains @SqlInjectionMatchTuple@ objects, which specify the parts of web requests that you want AWS WAF to inspect for snippets of malicious SQL code and, if you want AWS WAF to inspect a header, the name of the header. If a @SqlInjectionMatchSet@ contains more than one @SqlInjectionMatchTuple@ object, a request needs to include snippets of SQL code in only one of the specified parts of the request to be considered a match.------------ /See:/ 'sqlInjectionMatchSet' smart constructor.-data SqlInjectionMatchSet = SqlInjectionMatchSet'- { _simsName :: !(Maybe Text)- , _simsSqlInjectionMatchSetId :: !Text- , _simsSqlInjectionMatchTuples :: ![SqlInjectionMatchTuple]- } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'SqlInjectionMatchSet' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'simsName' - The name, if any, of the @SqlInjectionMatchSet@ .------ * 'simsSqlInjectionMatchSetId' - A unique identifier for a @SqlInjectionMatchSet@ . You use @SqlInjectionMatchSetId@ to get information about a @SqlInjectionMatchSet@ (see 'GetSqlInjectionMatchSet' ), update a @SqlInjectionMatchSet@ (see 'UpdateSqlInjectionMatchSet' ), insert a @SqlInjectionMatchSet@ into a @Rule@ or delete one from a @Rule@ (see 'UpdateRule' ), and delete a @SqlInjectionMatchSet@ from AWS WAF (see 'DeleteSqlInjectionMatchSet' ). @SqlInjectionMatchSetId@ is returned by 'CreateSqlInjectionMatchSet' and by 'ListSqlInjectionMatchSets' .------ * 'simsSqlInjectionMatchTuples' - Specifies the parts of web requests that you want to inspect for snippets of malicious SQL code.-sqlInjectionMatchSet- :: Text -- ^ 'simsSqlInjectionMatchSetId'- -> SqlInjectionMatchSet-sqlInjectionMatchSet pSqlInjectionMatchSetId_ =- SqlInjectionMatchSet'- { _simsName = Nothing- , _simsSqlInjectionMatchSetId = pSqlInjectionMatchSetId_- , _simsSqlInjectionMatchTuples = mempty- }---- | The name, if any, of the @SqlInjectionMatchSet@ .-simsName :: Lens' SqlInjectionMatchSet (Maybe Text)-simsName = lens _simsName (\ s a -> s{_simsName = a});---- | A unique identifier for a @SqlInjectionMatchSet@ . You use @SqlInjectionMatchSetId@ to get information about a @SqlInjectionMatchSet@ (see 'GetSqlInjectionMatchSet' ), update a @SqlInjectionMatchSet@ (see 'UpdateSqlInjectionMatchSet' ), insert a @SqlInjectionMatchSet@ into a @Rule@ or delete one from a @Rule@ (see 'UpdateRule' ), and delete a @SqlInjectionMatchSet@ from AWS WAF (see 'DeleteSqlInjectionMatchSet' ). @SqlInjectionMatchSetId@ is returned by 'CreateSqlInjectionMatchSet' and by 'ListSqlInjectionMatchSets' .-simsSqlInjectionMatchSetId :: Lens' SqlInjectionMatchSet Text-simsSqlInjectionMatchSetId = lens _simsSqlInjectionMatchSetId (\ s a -> s{_simsSqlInjectionMatchSetId = a});---- | Specifies the parts of web requests that you want to inspect for snippets of malicious SQL code.-simsSqlInjectionMatchTuples :: Lens' SqlInjectionMatchSet [SqlInjectionMatchTuple]-simsSqlInjectionMatchTuples = lens _simsSqlInjectionMatchTuples (\ s a -> s{_simsSqlInjectionMatchTuples = a}) . _Coerce;--instance FromJSON SqlInjectionMatchSet where- parseJSON- = withObject "SqlInjectionMatchSet"- (\ x ->- SqlInjectionMatchSet' <$>- (x .:? "Name") <*> (x .: "SqlInjectionMatchSetId")- <*> (x .:? "SqlInjectionMatchTuples" .!= mempty))--instance Hashable SqlInjectionMatchSet--instance NFData SqlInjectionMatchSet---- | The @Id@ and @Name@ of a @SqlInjectionMatchSet@ .------------ /See:/ 'sqlInjectionMatchSetSummary' smart constructor.-data SqlInjectionMatchSetSummary = SqlInjectionMatchSetSummary'- { _simssSqlInjectionMatchSetId :: !Text- , _simssName :: !Text- } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'SqlInjectionMatchSetSummary' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'simssSqlInjectionMatchSetId' - A unique identifier for a @SqlInjectionMatchSet@ . You use @SqlInjectionMatchSetId@ to get information about a @SqlInjectionMatchSet@ (see 'GetSqlInjectionMatchSet' ), update a @SqlInjectionMatchSet@ (see 'UpdateSqlInjectionMatchSet' ), insert a @SqlInjectionMatchSet@ into a @Rule@ or delete one from a @Rule@ (see 'UpdateRule' ), and delete a @SqlInjectionMatchSet@ from AWS WAF (see 'DeleteSqlInjectionMatchSet' ). @SqlInjectionMatchSetId@ is returned by 'CreateSqlInjectionMatchSet' and by 'ListSqlInjectionMatchSets' .------ * 'simssName' - The name of the @SqlInjectionMatchSet@ , if any, specified by @Id@ .-sqlInjectionMatchSetSummary- :: Text -- ^ 'simssSqlInjectionMatchSetId'- -> Text -- ^ 'simssName'- -> SqlInjectionMatchSetSummary-sqlInjectionMatchSetSummary pSqlInjectionMatchSetId_ pName_ =- SqlInjectionMatchSetSummary'- { _simssSqlInjectionMatchSetId = pSqlInjectionMatchSetId_- , _simssName = pName_- }---- | A unique identifier for a @SqlInjectionMatchSet@ . You use @SqlInjectionMatchSetId@ to get information about a @SqlInjectionMatchSet@ (see 'GetSqlInjectionMatchSet' ), update a @SqlInjectionMatchSet@ (see 'UpdateSqlInjectionMatchSet' ), insert a @SqlInjectionMatchSet@ into a @Rule@ or delete one from a @Rule@ (see 'UpdateRule' ), and delete a @SqlInjectionMatchSet@ from AWS WAF (see 'DeleteSqlInjectionMatchSet' ). @SqlInjectionMatchSetId@ is returned by 'CreateSqlInjectionMatchSet' and by 'ListSqlInjectionMatchSets' .-simssSqlInjectionMatchSetId :: Lens' SqlInjectionMatchSetSummary Text-simssSqlInjectionMatchSetId = lens _simssSqlInjectionMatchSetId (\ s a -> s{_simssSqlInjectionMatchSetId = a});---- | The name of the @SqlInjectionMatchSet@ , if any, specified by @Id@ .-simssName :: Lens' SqlInjectionMatchSetSummary Text-simssName = lens _simssName (\ s a -> s{_simssName = a});--instance FromJSON SqlInjectionMatchSetSummary where- parseJSON- = withObject "SqlInjectionMatchSetSummary"- (\ x ->- SqlInjectionMatchSetSummary' <$>- (x .: "SqlInjectionMatchSetId") <*> (x .: "Name"))--instance Hashable SqlInjectionMatchSetSummary--instance NFData SqlInjectionMatchSetSummary---- | Specifies the part of a web request that you want to inspect for snippets of malicious SQL code and indicates whether you want to add the specification to a 'SqlInjectionMatchSet' or delete it from a @SqlInjectionMatchSet@ .------------ /See:/ 'sqlInjectionMatchSetUpdate' smart constructor.-data SqlInjectionMatchSetUpdate = SqlInjectionMatchSetUpdate'- { _simsuAction :: !ChangeAction- , _simsuSqlInjectionMatchTuple :: !SqlInjectionMatchTuple- } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'SqlInjectionMatchSetUpdate' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'simsuAction' - Specify @INSERT@ to add a 'SqlInjectionMatchSetUpdate' to a 'SqlInjectionMatchSet' . Use @DELETE@ to remove a @SqlInjectionMatchSetUpdate@ from a @SqlInjectionMatchSet@ .------ * 'simsuSqlInjectionMatchTuple' - Specifies the part of a web request that you want AWS WAF to inspect for snippets of malicious SQL code and, if you want AWS WAF to inspect a header, the name of the header.-sqlInjectionMatchSetUpdate- :: ChangeAction -- ^ 'simsuAction'- -> SqlInjectionMatchTuple -- ^ 'simsuSqlInjectionMatchTuple'- -> SqlInjectionMatchSetUpdate-sqlInjectionMatchSetUpdate pAction_ pSqlInjectionMatchTuple_ =- SqlInjectionMatchSetUpdate'- { _simsuAction = pAction_- , _simsuSqlInjectionMatchTuple = pSqlInjectionMatchTuple_- }---- | Specify @INSERT@ to add a 'SqlInjectionMatchSetUpdate' to a 'SqlInjectionMatchSet' . Use @DELETE@ to remove a @SqlInjectionMatchSetUpdate@ from a @SqlInjectionMatchSet@ .-simsuAction :: Lens' SqlInjectionMatchSetUpdate ChangeAction-simsuAction = lens _simsuAction (\ s a -> s{_simsuAction = a});---- | Specifies the part of a web request that you want AWS WAF to inspect for snippets of malicious SQL code and, if you want AWS WAF to inspect a header, the name of the header.-simsuSqlInjectionMatchTuple :: Lens' SqlInjectionMatchSetUpdate SqlInjectionMatchTuple-simsuSqlInjectionMatchTuple = lens _simsuSqlInjectionMatchTuple (\ s a -> s{_simsuSqlInjectionMatchTuple = a});--instance Hashable SqlInjectionMatchSetUpdate--instance NFData SqlInjectionMatchSetUpdate--instance ToJSON SqlInjectionMatchSetUpdate where- toJSON SqlInjectionMatchSetUpdate'{..}- = object- (catMaybes- [Just ("Action" .= _simsuAction),- Just- ("SqlInjectionMatchTuple" .=- _simsuSqlInjectionMatchTuple)])---- | Specifies the part of a web request that you want AWS WAF to inspect for snippets of malicious SQL code and, if you want AWS WAF to inspect a header, the name of the header.------------ /See:/ 'sqlInjectionMatchTuple' smart constructor.-data SqlInjectionMatchTuple = SqlInjectionMatchTuple'- { _simtFieldToMatch :: !FieldToMatch- , _simtTextTransformation :: !TextTransformation- } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'SqlInjectionMatchTuple' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'simtFieldToMatch' - Undocumented member.------ * 'simtTextTransformation' - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass AWS WAF. If you specify a transformation, AWS WAF performs the transformation on @FieldToMatch@ before inspecting a request for a match. __CMD_LINE__ When you're concerned that attackers are injecting an operating system commandline command and using unusual formatting to disguise some or all of the command, use this option to perform the following transformations: * Delete the following characters: \ " ' ^ * Delete spaces before the following characters: / ( * Replace the following characters with a space: , ; * Replace multiple spaces with one space * Convert uppercase letters (A-Z) to lowercase (a-z) __COMPRESS_WHITE_SPACE__ Use this option to replace the following characters with a space character (decimal 32): * \f, formfeed, decimal 12 * \t, tab, decimal 9 * \n, newline, decimal 10 * \r, carriage return, decimal 13 * \v, vertical tab, decimal 11 * non-breaking space, decimal 160 @COMPRESS_WHITE_SPACE@ also replaces multiple spaces with one space. __HTML_ENTITY_DECODE__ Use this option to replace HTML-encoded characters with unencoded characters. @HTML_ENTITY_DECODE@ performs the following operations: * Replaces @(ampersand)quot;@ with @"@ * Replaces @(ampersand)nbsp;@ with a non-breaking space, decimal 160 * Replaces @(ampersand)lt;@ with a "less than" symbol * Replaces @(ampersand)gt;@ with @>@ * Replaces characters that are represented in hexadecimal format, @(ampersand)#xhhhh;@ , with the corresponding characters * Replaces characters that are represented in decimal format, @(ampersand)#nnnn;@ , with the corresponding characters __LOWERCASE__ Use this option to convert uppercase letters (A-Z) to lowercase (a-z). __URL_DECODE__ Use this option to decode a URL-encoded value. __NONE__ Specify @NONE@ if you don't want to perform any text transformations.-sqlInjectionMatchTuple- :: FieldToMatch -- ^ 'simtFieldToMatch'- -> TextTransformation -- ^ 'simtTextTransformation'- -> SqlInjectionMatchTuple-sqlInjectionMatchTuple pFieldToMatch_ pTextTransformation_ =- SqlInjectionMatchTuple'- { _simtFieldToMatch = pFieldToMatch_- , _simtTextTransformation = pTextTransformation_- }---- | Undocumented member.-simtFieldToMatch :: Lens' SqlInjectionMatchTuple FieldToMatch-simtFieldToMatch = lens _simtFieldToMatch (\ s a -> s{_simtFieldToMatch = a});---- | Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass AWS WAF. If you specify a transformation, AWS WAF performs the transformation on @FieldToMatch@ before inspecting a request for a match. __CMD_LINE__ When you're concerned that attackers are injecting an operating system commandline command and using unusual formatting to disguise some or all of the command, use this option to perform the following transformations: * Delete the following characters: \ " ' ^ * Delete spaces before the following characters: / ( * Replace the following characters with a space: , ; * Replace multiple spaces with one space * Convert uppercase letters (A-Z) to lowercase (a-z) __COMPRESS_WHITE_SPACE__ Use this option to replace the following characters with a space character (decimal 32): * \f, formfeed, decimal 12 * \t, tab, decimal 9 * \n, newline, decimal 10 * \r, carriage return, decimal 13 * \v, vertical tab, decimal 11 * non-breaking space, decimal 160 @COMPRESS_WHITE_SPACE@ also replaces multiple spaces with one space. __HTML_ENTITY_DECODE__ Use this option to replace HTML-encoded characters with unencoded characters. @HTML_ENTITY_DECODE@ performs the following operations: * Replaces @(ampersand)quot;@ with @"@ * Replaces @(ampersand)nbsp;@ with a non-breaking space, decimal 160 * Replaces @(ampersand)lt;@ with a "less than" symbol * Replaces @(ampersand)gt;@ with @>@ * Replaces characters that are represented in hexadecimal format, @(ampersand)#xhhhh;@ , with the corresponding characters * Replaces characters that are represented in decimal format, @(ampersand)#nnnn;@ , with the corresponding characters __LOWERCASE__ Use this option to convert uppercase letters (A-Z) to lowercase (a-z). __URL_DECODE__ Use this option to decode a URL-encoded value. __NONE__ Specify @NONE@ if you don't want to perform any text transformations.-simtTextTransformation :: Lens' SqlInjectionMatchTuple TextTransformation-simtTextTransformation = lens _simtTextTransformation (\ s a -> s{_simtTextTransformation = a});--instance FromJSON SqlInjectionMatchTuple where- parseJSON- = withObject "SqlInjectionMatchTuple"- (\ x ->- SqlInjectionMatchTuple' <$>- (x .: "FieldToMatch") <*>- (x .: "TextTransformation"))--instance Hashable SqlInjectionMatchTuple--instance NFData SqlInjectionMatchTuple--instance ToJSON SqlInjectionMatchTuple where- toJSON SqlInjectionMatchTuple'{..}- = object- (catMaybes- [Just ("FieldToMatch" .= _simtFieldToMatch),- Just- ("TextTransformation" .= _simtTextTransformation)])---- | In a 'GetSampledRequests' request, the @StartTime@ and @EndTime@ objects specify the time range for which you want AWS WAF to return a sample of web requests.--------- In a 'GetSampledRequests' response, the @StartTime@ and @EndTime@ objects specify the time range for which AWS WAF actually returned a sample of web requests. AWS WAF gets the specified number of requests from among the first 5,000 requests that your AWS resource receives during the specified time period. If your resource receives more than 5,000 requests during that period, AWS WAF stops sampling after the 5,000th request. In that case, @EndTime@ is the time that AWS WAF received the 5,000th request.--------- /See:/ 'timeWindow' smart constructor.-data TimeWindow = TimeWindow'- { _twStartTime :: !POSIX- , _twEndTime :: !POSIX- } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'TimeWindow' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'twStartTime' - The beginning of the time range from which you want @GetSampledRequests@ to return a sample of the requests that your AWS resource received. You can specify any time range in the previous three hours.------ * 'twEndTime' - The end of the time range from which you want @GetSampledRequests@ to return a sample of the requests that your AWS resource received. You can specify any time range in the previous three hours.-timeWindow- :: UTCTime -- ^ 'twStartTime'- -> UTCTime -- ^ 'twEndTime'- -> TimeWindow-timeWindow pStartTime_ pEndTime_ =- TimeWindow'- { _twStartTime = _Time # pStartTime_- , _twEndTime = _Time # pEndTime_- }---- | The beginning of the time range from which you want @GetSampledRequests@ to return a sample of the requests that your AWS resource received. You can specify any time range in the previous three hours.-twStartTime :: Lens' TimeWindow UTCTime-twStartTime = lens _twStartTime (\ s a -> s{_twStartTime = a}) . _Time;---- | The end of the time range from which you want @GetSampledRequests@ to return a sample of the requests that your AWS resource received. You can specify any time range in the previous three hours.-twEndTime :: Lens' TimeWindow UTCTime-twEndTime = lens _twEndTime (\ s a -> s{_twEndTime = a}) . _Time;--instance FromJSON TimeWindow where- parseJSON- = withObject "TimeWindow"- (\ x ->- TimeWindow' <$>- (x .: "StartTime") <*> (x .: "EndTime"))--instance Hashable TimeWindow--instance NFData TimeWindow--instance ToJSON TimeWindow where- toJSON TimeWindow'{..}- = object- (catMaybes- [Just ("StartTime" .= _twStartTime),- Just ("EndTime" .= _twEndTime)])---- | For the action that is associated with a rule in a @WebACL@ , specifies the action that you want AWS WAF to perform when a web request matches all of the conditions in a rule. For the default action in a @WebACL@ , specifies the action that you want AWS WAF to take when a web request doesn't match all of the conditions in any of the rules in a @WebACL@ .------------ /See:/ 'wafAction' smart constructor.-newtype WafAction = WafAction'- { _waType :: WafActionType- } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'WafAction' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'waType' - Specifies how you want AWS WAF to respond to requests that match the settings in a @Rule@ . Valid settings include the following: * @ALLOW@ : AWS WAF allows requests * @BLOCK@ : AWS WAF blocks requests * @COUNT@ : AWS WAF increments a counter of the requests that match all of the conditions in the rule. AWS WAF then continues to inspect the web request based on the remaining rules in the web ACL. You can't specify @COUNT@ for the default action for a @WebACL@ .-wafAction- :: WafActionType -- ^ 'waType'- -> WafAction-wafAction pType_ =- WafAction'- { _waType = pType_- }---- | Specifies how you want AWS WAF to respond to requests that match the settings in a @Rule@ . Valid settings include the following: * @ALLOW@ : AWS WAF allows requests * @BLOCK@ : AWS WAF blocks requests * @COUNT@ : AWS WAF increments a counter of the requests that match all of the conditions in the rule. AWS WAF then continues to inspect the web request based on the remaining rules in the web ACL. You can't specify @COUNT@ for the default action for a @WebACL@ .-waType :: Lens' WafAction WafActionType-waType = lens _waType (\ s a -> s{_waType = a});--instance FromJSON WafAction where- parseJSON- = withObject "WafAction"- (\ x -> WafAction' <$> (x .: "Type"))--instance Hashable WafAction--instance NFData WafAction--instance ToJSON WafAction where- toJSON WafAction'{..}- = object (catMaybes [Just ("Type" .= _waType)])---- | Contains the @Rules@ that identify the requests that you want to allow, block, or count. In a @WebACL@ , you also specify a default action (@ALLOW@ or @BLOCK@ ), and the action for each @Rule@ that you add to a @WebACL@ , for example, block requests from specified IP addresses or block requests from specified referrers. You also associate the @WebACL@ with a CloudFront distribution to identify the requests that you want AWS WAF to filter. If you add more than one @Rule@ to a @WebACL@ , a request needs to match only one of the specifications to be allowed, blocked, or counted. For more information, see 'UpdateWebACL' .------------ /See:/ 'webACL' smart constructor.-data WebACL = WebACL'- { _waMetricName :: !(Maybe Text)- , _waName :: !(Maybe Text)- , _waWebACLId :: !Text- , _waDefaultAction :: !WafAction- , _waRules :: ![ActivatedRule]- } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'WebACL' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'waMetricName' - Undocumented member.------ * 'waName' - A friendly name or description of the @WebACL@ . You can't change the name of a @WebACL@ after you create it.------ * 'waWebACLId' - A unique identifier for a @WebACL@ . You use @WebACLId@ to get information about a @WebACL@ (see 'GetWebACL' ), update a @WebACL@ (see 'UpdateWebACL' ), and delete a @WebACL@ from AWS WAF (see 'DeleteWebACL' ). @WebACLId@ is returned by 'CreateWebACL' and by 'ListWebACLs' .------ * 'waDefaultAction' - The action to perform if none of the @Rules@ contained in the @WebACL@ match. The action is specified by the 'WafAction' object.------ * 'waRules' - An array that contains the action for each @Rule@ in a @WebACL@ , the priority of the @Rule@ , and the ID of the @Rule@ .-webACL- :: Text -- ^ 'waWebACLId'- -> WafAction -- ^ 'waDefaultAction'- -> WebACL-webACL pWebACLId_ pDefaultAction_ =- WebACL'- { _waMetricName = Nothing- , _waName = Nothing- , _waWebACLId = pWebACLId_- , _waDefaultAction = pDefaultAction_- , _waRules = mempty- }---- | Undocumented member.-waMetricName :: Lens' WebACL (Maybe Text)-waMetricName = lens _waMetricName (\ s a -> s{_waMetricName = a});---- | A friendly name or description of the @WebACL@ . You can't change the name of a @WebACL@ after you create it.-waName :: Lens' WebACL (Maybe Text)-waName = lens _waName (\ s a -> s{_waName = a});---- | A unique identifier for a @WebACL@ . You use @WebACLId@ to get information about a @WebACL@ (see 'GetWebACL' ), update a @WebACL@ (see 'UpdateWebACL' ), and delete a @WebACL@ from AWS WAF (see 'DeleteWebACL' ). @WebACLId@ is returned by 'CreateWebACL' and by 'ListWebACLs' .-waWebACLId :: Lens' WebACL Text-waWebACLId = lens _waWebACLId (\ s a -> s{_waWebACLId = a});---- | The action to perform if none of the @Rules@ contained in the @WebACL@ match. The action is specified by the 'WafAction' object.-waDefaultAction :: Lens' WebACL WafAction-waDefaultAction = lens _waDefaultAction (\ s a -> s{_waDefaultAction = a});---- | An array that contains the action for each @Rule@ in a @WebACL@ , the priority of the @Rule@ , and the ID of the @Rule@ .-waRules :: Lens' WebACL [ActivatedRule]-waRules = lens _waRules (\ s a -> s{_waRules = a}) . _Coerce;--instance FromJSON WebACL where- parseJSON- = withObject "WebACL"- (\ x ->- WebACL' <$>- (x .:? "MetricName") <*> (x .:? "Name") <*>- (x .: "WebACLId")- <*> (x .: "DefaultAction")- <*> (x .:? "Rules" .!= mempty))--instance Hashable WebACL--instance NFData WebACL---- | Contains the identifier and the name or description of the 'WebACL' .------------ /See:/ 'webACLSummary' smart constructor.-data WebACLSummary = WebACLSummary'- { _wasWebACLId :: !Text- , _wasName :: !Text- } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'WebACLSummary' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'wasWebACLId' - A unique identifier for a @WebACL@ . You use @WebACLId@ to get information about a @WebACL@ (see 'GetWebACL' ), update a @WebACL@ (see 'UpdateWebACL' ), and delete a @WebACL@ from AWS WAF (see 'DeleteWebACL' ). @WebACLId@ is returned by 'CreateWebACL' and by 'ListWebACLs' .------ * 'wasName' - A friendly name or description of the 'WebACL' . You can't change the name of a @WebACL@ after you create it.-webACLSummary- :: Text -- ^ 'wasWebACLId'- -> Text -- ^ 'wasName'- -> WebACLSummary-webACLSummary pWebACLId_ pName_ =- WebACLSummary'- { _wasWebACLId = pWebACLId_- , _wasName = pName_- }---- | A unique identifier for a @WebACL@ . You use @WebACLId@ to get information about a @WebACL@ (see 'GetWebACL' ), update a @WebACL@ (see 'UpdateWebACL' ), and delete a @WebACL@ from AWS WAF (see 'DeleteWebACL' ). @WebACLId@ is returned by 'CreateWebACL' and by 'ListWebACLs' .-wasWebACLId :: Lens' WebACLSummary Text-wasWebACLId = lens _wasWebACLId (\ s a -> s{_wasWebACLId = a});---- | A friendly name or description of the 'WebACL' . You can't change the name of a @WebACL@ after you create it.-wasName :: Lens' WebACLSummary Text-wasName = lens _wasName (\ s a -> s{_wasName = a});--instance FromJSON WebACLSummary where- parseJSON- = withObject "WebACLSummary"- (\ x ->- WebACLSummary' <$>- (x .: "WebACLId") <*> (x .: "Name"))--instance Hashable WebACLSummary--instance NFData WebACLSummary---- | Specifies whether to insert a @Rule@ into or delete a @Rule@ from a @WebACL@ .------------ /See:/ 'webACLUpdate' smart constructor.-data WebACLUpdate = WebACLUpdate'- { _wauAction :: !ChangeAction- , _wauActivatedRule :: !ActivatedRule- } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'WebACLUpdate' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'wauAction' - Specifies whether to insert a @Rule@ into or delete a @Rule@ from a @WebACL@ .------ * 'wauActivatedRule' - Undocumented member.-webACLUpdate- :: ChangeAction -- ^ 'wauAction'- -> ActivatedRule -- ^ 'wauActivatedRule'- -> WebACLUpdate-webACLUpdate pAction_ pActivatedRule_ =- WebACLUpdate'- { _wauAction = pAction_- , _wauActivatedRule = pActivatedRule_- }---- | Specifies whether to insert a @Rule@ into or delete a @Rule@ from a @WebACL@ .-wauAction :: Lens' WebACLUpdate ChangeAction-wauAction = lens _wauAction (\ s a -> s{_wauAction = a});---- | Undocumented member.-wauActivatedRule :: Lens' WebACLUpdate ActivatedRule-wauActivatedRule = lens _wauActivatedRule (\ s a -> s{_wauActivatedRule = a});--instance Hashable WebACLUpdate--instance NFData WebACLUpdate--instance ToJSON WebACLUpdate where- toJSON WebACLUpdate'{..}- = object- (catMaybes- [Just ("Action" .= _wauAction),- Just ("ActivatedRule" .= _wauActivatedRule)])---- | A complex type that contains @XssMatchTuple@ objects, which specify the parts of web requests that you want AWS WAF to inspect for cross-site scripting attacks and, if you want AWS WAF to inspect a header, the name of the header. If a @XssMatchSet@ contains more than one @XssMatchTuple@ object, a request needs to include cross-site scripting attacks in only one of the specified parts of the request to be considered a match.------------ /See:/ 'xssMatchSet' smart constructor.-data XSSMatchSet = XSSMatchSet'- { _xmsName :: !(Maybe Text)- , _xmsXSSMatchSetId :: !Text- , _xmsXSSMatchTuples :: ![XSSMatchTuple]- } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'XSSMatchSet' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'xmsName' - The name, if any, of the @XssMatchSet@ .------ * 'xmsXSSMatchSetId' - A unique identifier for an @XssMatchSet@ . You use @XssMatchSetId@ to get information about an @XssMatchSet@ (see 'GetXssMatchSet' ), update an @XssMatchSet@ (see 'UpdateXssMatchSet' ), insert an @XssMatchSet@ into a @Rule@ or delete one from a @Rule@ (see 'UpdateRule' ), and delete an @XssMatchSet@ from AWS WAF (see 'DeleteXssMatchSet' ). @XssMatchSetId@ is returned by 'CreateXssMatchSet' and by 'ListXssMatchSets' .------ * 'xmsXSSMatchTuples' - Specifies the parts of web requests that you want to inspect for cross-site scripting attacks.-xssMatchSet- :: Text -- ^ 'xmsXSSMatchSetId'- -> XSSMatchSet-xssMatchSet pXSSMatchSetId_ =- XSSMatchSet'- { _xmsName = Nothing- , _xmsXSSMatchSetId = pXSSMatchSetId_- , _xmsXSSMatchTuples = mempty- }---- | The name, if any, of the @XssMatchSet@ .-xmsName :: Lens' XSSMatchSet (Maybe Text)-xmsName = lens _xmsName (\ s a -> s{_xmsName = a});---- | A unique identifier for an @XssMatchSet@ . You use @XssMatchSetId@ to get information about an @XssMatchSet@ (see 'GetXssMatchSet' ), update an @XssMatchSet@ (see 'UpdateXssMatchSet' ), insert an @XssMatchSet@ into a @Rule@ or delete one from a @Rule@ (see 'UpdateRule' ), and delete an @XssMatchSet@ from AWS WAF (see 'DeleteXssMatchSet' ). @XssMatchSetId@ is returned by 'CreateXssMatchSet' and by 'ListXssMatchSets' .-xmsXSSMatchSetId :: Lens' XSSMatchSet Text-xmsXSSMatchSetId = lens _xmsXSSMatchSetId (\ s a -> s{_xmsXSSMatchSetId = a});---- | Specifies the parts of web requests that you want to inspect for cross-site scripting attacks.-xmsXSSMatchTuples :: Lens' XSSMatchSet [XSSMatchTuple]-xmsXSSMatchTuples = lens _xmsXSSMatchTuples (\ s a -> s{_xmsXSSMatchTuples = a}) . _Coerce;--instance FromJSON XSSMatchSet where- parseJSON- = withObject "XSSMatchSet"- (\ x ->- XSSMatchSet' <$>- (x .:? "Name") <*> (x .: "XssMatchSetId") <*>- (x .:? "XssMatchTuples" .!= mempty))--instance Hashable XSSMatchSet--instance NFData XSSMatchSet---- | The @Id@ and @Name@ of an @XssMatchSet@ .------------ /See:/ 'xssMatchSetSummary' smart constructor.-data XSSMatchSetSummary = XSSMatchSetSummary'- { _xmssXSSMatchSetId :: !Text- , _xmssName :: !Text- } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'XSSMatchSetSummary' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'xmssXSSMatchSetId' - A unique identifier for an @XssMatchSet@ . You use @XssMatchSetId@ to get information about a @XssMatchSet@ (see 'GetXssMatchSet' ), update an @XssMatchSet@ (see 'UpdateXssMatchSet' ), insert an @XssMatchSet@ into a @Rule@ or delete one from a @Rule@ (see 'UpdateRule' ), and delete an @XssMatchSet@ from AWS WAF (see 'DeleteXssMatchSet' ). @XssMatchSetId@ is returned by 'CreateXssMatchSet' and by 'ListXssMatchSets' .------ * 'xmssName' - The name of the @XssMatchSet@ , if any, specified by @Id@ .-xssMatchSetSummary- :: Text -- ^ 'xmssXSSMatchSetId'- -> Text -- ^ 'xmssName'- -> XSSMatchSetSummary-xssMatchSetSummary pXSSMatchSetId_ pName_ =- XSSMatchSetSummary'- { _xmssXSSMatchSetId = pXSSMatchSetId_- , _xmssName = pName_- }---- | A unique identifier for an @XssMatchSet@ . You use @XssMatchSetId@ to get information about a @XssMatchSet@ (see 'GetXssMatchSet' ), update an @XssMatchSet@ (see 'UpdateXssMatchSet' ), insert an @XssMatchSet@ into a @Rule@ or delete one from a @Rule@ (see 'UpdateRule' ), and delete an @XssMatchSet@ from AWS WAF (see 'DeleteXssMatchSet' ). @XssMatchSetId@ is returned by 'CreateXssMatchSet' and by 'ListXssMatchSets' .-xmssXSSMatchSetId :: Lens' XSSMatchSetSummary Text-xmssXSSMatchSetId = lens _xmssXSSMatchSetId (\ s a -> s{_xmssXSSMatchSetId = a});---- | The name of the @XssMatchSet@ , if any, specified by @Id@ .-xmssName :: Lens' XSSMatchSetSummary Text-xmssName = lens _xmssName (\ s a -> s{_xmssName = a});--instance FromJSON XSSMatchSetSummary where- parseJSON- = withObject "XSSMatchSetSummary"- (\ x ->- XSSMatchSetSummary' <$>- (x .: "XssMatchSetId") <*> (x .: "Name"))--instance Hashable XSSMatchSetSummary--instance NFData XSSMatchSetSummary---- | Specifies the part of a web request that you want to inspect for cross-site scripting attacks and indicates whether you want to add the specification to an 'XssMatchSet' or delete it from an @XssMatchSet@ .------------ /See:/ 'xssMatchSetUpdate' smart constructor.-data XSSMatchSetUpdate = XSSMatchSetUpdate'- { _xmsuAction :: !ChangeAction- , _xmsuXSSMatchTuple :: !XSSMatchTuple- } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'XSSMatchSetUpdate' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'xmsuAction' - Specify @INSERT@ to add a 'XssMatchSetUpdate' to an 'XssMatchSet' . Use @DELETE@ to remove a @XssMatchSetUpdate@ from an @XssMatchSet@ .------ * 'xmsuXSSMatchTuple' - Specifies the part of a web request that you want AWS WAF to inspect for cross-site scripting attacks and, if you want AWS WAF to inspect a header, the name of the header.-xssMatchSetUpdate- :: ChangeAction -- ^ 'xmsuAction'- -> XSSMatchTuple -- ^ 'xmsuXSSMatchTuple'- -> XSSMatchSetUpdate-xssMatchSetUpdate pAction_ pXSSMatchTuple_ =- XSSMatchSetUpdate'- { _xmsuAction = pAction_- , _xmsuXSSMatchTuple = pXSSMatchTuple_- }---- | Specify @INSERT@ to add a 'XssMatchSetUpdate' to an 'XssMatchSet' . Use @DELETE@ to remove a @XssMatchSetUpdate@ from an @XssMatchSet@ .-xmsuAction :: Lens' XSSMatchSetUpdate ChangeAction-xmsuAction = lens _xmsuAction (\ s a -> s{_xmsuAction = a});---- | Specifies the part of a web request that you want AWS WAF to inspect for cross-site scripting attacks and, if you want AWS WAF to inspect a header, the name of the header.-xmsuXSSMatchTuple :: Lens' XSSMatchSetUpdate XSSMatchTuple-xmsuXSSMatchTuple = lens _xmsuXSSMatchTuple (\ s a -> s{_xmsuXSSMatchTuple = a});--instance Hashable XSSMatchSetUpdate--instance NFData XSSMatchSetUpdate--instance ToJSON XSSMatchSetUpdate where- toJSON XSSMatchSetUpdate'{..}- = object- (catMaybes- [Just ("Action" .= _xmsuAction),- Just ("XssMatchTuple" .= _xmsuXSSMatchTuple)])---- | Specifies the part of a web request that you want AWS WAF to inspect for cross-site scripting attacks and, if you want AWS WAF to inspect a header, the name of the header.------------ /See:/ 'xssMatchTuple' smart constructor.-data XSSMatchTuple = XSSMatchTuple'- { _xmtFieldToMatch :: !FieldToMatch- , _xmtTextTransformation :: !TextTransformation- } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'XSSMatchTuple' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'xmtFieldToMatch' - Undocumented member.------ * 'xmtTextTransformation' - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass AWS WAF. If you specify a transformation, AWS WAF performs the transformation on @FieldToMatch@ before inspecting a request for a match. __CMD_LINE__ When you're concerned that attackers are injecting an operating system commandline command and using unusual formatting to disguise some or all of the command, use this option to perform the following transformations: * Delete the following characters: \ " ' ^ * Delete spaces before the following characters: / ( * Replace the following characters with a space: , ; * Replace multiple spaces with one space * Convert uppercase letters (A-Z) to lowercase (a-z) __COMPRESS_WHITE_SPACE__ Use this option to replace the following characters with a space character (decimal 32): * \f, formfeed, decimal 12 * \t, tab, decimal 9 * \n, newline, decimal 10 * \r, carriage return, decimal 13 * \v, vertical tab, decimal 11 * non-breaking space, decimal 160 @COMPRESS_WHITE_SPACE@ also replaces multiple spaces with one space. __HTML_ENTITY_DECODE__ Use this option to replace HTML-encoded characters with unencoded characters. @HTML_ENTITY_DECODE@ performs the following operations: * Replaces @(ampersand)quot;@ with @"@ * Replaces @(ampersand)nbsp;@ with a non-breaking space, decimal 160 * Replaces @(ampersand)lt;@ with a "less than" symbol * Replaces @(ampersand)gt;@ with @>@ * Replaces characters that are represented in hexadecimal format, @(ampersand)#xhhhh;@ , with the corresponding characters * Replaces characters that are represented in decimal format, @(ampersand)#nnnn;@ , with the corresponding characters __LOWERCASE__ Use this option to convert uppercase letters (A-Z) to lowercase (a-z). __URL_DECODE__ Use this option to decode a URL-encoded value. __NONE__ Specify @NONE@ if you don't want to perform any text transformations.-xssMatchTuple- :: FieldToMatch -- ^ 'xmtFieldToMatch'- -> TextTransformation -- ^ 'xmtTextTransformation'- -> XSSMatchTuple-xssMatchTuple pFieldToMatch_ pTextTransformation_ =- XSSMatchTuple'- { _xmtFieldToMatch = pFieldToMatch_- , _xmtTextTransformation = pTextTransformation_- }---- | Undocumented member.-xmtFieldToMatch :: Lens' XSSMatchTuple FieldToMatch-xmtFieldToMatch = lens _xmtFieldToMatch (\ s a -> s{_xmtFieldToMatch = a});---- | Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass AWS WAF. If you specify a transformation, AWS WAF performs the transformation on @FieldToMatch@ before inspecting a request for a match. __CMD_LINE__ When you're concerned that attackers are injecting an operating system commandline command and using unusual formatting to disguise some or all of the command, use this option to perform the following transformations: * Delete the following characters: \ " ' ^ * Delete spaces before the following characters: / ( * Replace the following characters with a space: , ; * Replace multiple spaces with one space * Convert uppercase letters (A-Z) to lowercase (a-z) __COMPRESS_WHITE_SPACE__ Use this option to replace the following characters with a space character (decimal 32): * \f, formfeed, decimal 12 * \t, tab, decimal 9 * \n, newline, decimal 10 * \r, carriage return, decimal 13 * \v, vertical tab, decimal 11 * non-breaking space, decimal 160 @COMPRESS_WHITE_SPACE@ also replaces multiple spaces with one space. __HTML_ENTITY_DECODE__ Use this option to replace HTML-encoded characters with unencoded characters. @HTML_ENTITY_DECODE@ performs the following operations: * Replaces @(ampersand)quot;@ with @"@ * Replaces @(ampersand)nbsp;@ with a non-breaking space, decimal 160 * Replaces @(ampersand)lt;@ with a "less than" symbol * Replaces @(ampersand)gt;@ with @>@ * Replaces characters that are represented in hexadecimal format, @(ampersand)#xhhhh;@ , with the corresponding characters * Replaces characters that are represented in decimal format, @(ampersand)#nnnn;@ , with the corresponding characters __LOWERCASE__ Use this option to convert uppercase letters (A-Z) to lowercase (a-z). __URL_DECODE__ Use this option to decode a URL-encoded value. __NONE__ Specify @NONE@ if you don't want to perform any text transformations.-xmtTextTransformation :: Lens' XSSMatchTuple TextTransformation-xmtTextTransformation = lens _xmtTextTransformation (\ s a -> s{_xmtTextTransformation = a});--instance FromJSON XSSMatchTuple where- parseJSON- = withObject "XSSMatchTuple"- (\ x ->- XSSMatchTuple' <$>- (x .: "FieldToMatch") <*>- (x .: "TextTransformation"))--instance Hashable XSSMatchTuple--instance NFData XSSMatchTuple+-- Copyright : (c) 2013-2017 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.AWS.WAF.Types.Product where++import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.WAF.Types.Sum++-- | The @ActivatedRule@ object in an 'UpdateWebACL' request specifies a @Rule@ that you want to insert or delete, the priority of the @Rule@ in the @WebACL@ , and the action that you want AWS WAF to take when a web request matches the @Rule@ (@ALLOW@ , @BLOCK@ , or @COUNT@ ).+--+--+-- To specify whether to insert or delete a @Rule@ , use the @Action@ parameter in the 'WebACLUpdate' data type.+--+--+-- /See:/ 'activatedRule' smart constructor.+data ActivatedRule = ActivatedRule'+ { _arType :: !(Maybe WafRuleType)+ , _arPriority :: !Int+ , _arRuleId :: !Text+ , _arAction :: !WafAction+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ActivatedRule' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'arType' - The rule type, either @REGULAR@ , as defined by 'Rule' , or @RATE_BASED@ , as defined by 'RateBasedRule' . The default is REGULAR. Although this field is optional, be aware that if you try to add a RATE_BASED rule to a web ACL without setting the type, the 'UpdateWebACL' request will fail because the request tries to add a REGULAR rule with the specified ID, which does not exist.+--+-- * 'arPriority' - Specifies the order in which the @Rules@ in a @WebACL@ are evaluated. Rules with a lower value for @Priority@ are evaluated before @Rules@ with a higher value. The value must be a unique integer. If you add multiple @Rules@ to a @WebACL@ , the values don't need to be consecutive.+--+-- * 'arRuleId' - The @RuleId@ for a @Rule@ . You use @RuleId@ to get more information about a @Rule@ (see 'GetRule' ), update a @Rule@ (see 'UpdateRule' ), insert a @Rule@ into a @WebACL@ or delete a one from a @WebACL@ (see 'UpdateWebACL' ), or delete a @Rule@ from AWS WAF (see 'DeleteRule' ). @RuleId@ is returned by 'CreateRule' and by 'ListRules' .+--+-- * 'arAction' - Specifies the action that CloudFront or AWS WAF takes when a web request matches the conditions in the @Rule@ . Valid values for @Action@ include the following: * @ALLOW@ : CloudFront responds with the requested object. * @BLOCK@ : CloudFront responds with an HTTP 403 (Forbidden) status code. * @COUNT@ : AWS WAF increments a counter of requests that match the conditions in the rule and then continues to inspect the web request based on the remaining rules in the web ACL.+activatedRule+ :: Int -- ^ 'arPriority'+ -> Text -- ^ 'arRuleId'+ -> WafAction -- ^ 'arAction'+ -> ActivatedRule+activatedRule pPriority_ pRuleId_ pAction_ =+ ActivatedRule'+ { _arType = Nothing+ , _arPriority = pPriority_+ , _arRuleId = pRuleId_+ , _arAction = pAction_+ }+++-- | The rule type, either @REGULAR@ , as defined by 'Rule' , or @RATE_BASED@ , as defined by 'RateBasedRule' . The default is REGULAR. Although this field is optional, be aware that if you try to add a RATE_BASED rule to a web ACL without setting the type, the 'UpdateWebACL' request will fail because the request tries to add a REGULAR rule with the specified ID, which does not exist.+arType :: Lens' ActivatedRule (Maybe WafRuleType)+arType = lens _arType (\ s a -> s{_arType = a});++-- | Specifies the order in which the @Rules@ in a @WebACL@ are evaluated. Rules with a lower value for @Priority@ are evaluated before @Rules@ with a higher value. The value must be a unique integer. If you add multiple @Rules@ to a @WebACL@ , the values don't need to be consecutive.+arPriority :: Lens' ActivatedRule Int+arPriority = lens _arPriority (\ s a -> s{_arPriority = a});++-- | The @RuleId@ for a @Rule@ . You use @RuleId@ to get more information about a @Rule@ (see 'GetRule' ), update a @Rule@ (see 'UpdateRule' ), insert a @Rule@ into a @WebACL@ or delete a one from a @WebACL@ (see 'UpdateWebACL' ), or delete a @Rule@ from AWS WAF (see 'DeleteRule' ). @RuleId@ is returned by 'CreateRule' and by 'ListRules' .+arRuleId :: Lens' ActivatedRule Text+arRuleId = lens _arRuleId (\ s a -> s{_arRuleId = a});++-- | Specifies the action that CloudFront or AWS WAF takes when a web request matches the conditions in the @Rule@ . Valid values for @Action@ include the following: * @ALLOW@ : CloudFront responds with the requested object. * @BLOCK@ : CloudFront responds with an HTTP 403 (Forbidden) status code. * @COUNT@ : AWS WAF increments a counter of requests that match the conditions in the rule and then continues to inspect the web request based on the remaining rules in the web ACL.+arAction :: Lens' ActivatedRule WafAction+arAction = lens _arAction (\ s a -> s{_arAction = a});++instance FromJSON ActivatedRule where+ parseJSON+ = withObject "ActivatedRule"+ (\ x ->+ ActivatedRule' <$>+ (x .:? "Type") <*> (x .: "Priority") <*>+ (x .: "RuleId")+ <*> (x .: "Action"))++instance Hashable ActivatedRule where++instance NFData ActivatedRule where++instance ToJSON ActivatedRule where+ toJSON ActivatedRule'{..}+ = object+ (catMaybes+ [("Type" .=) <$> _arType,+ Just ("Priority" .= _arPriority),+ Just ("RuleId" .= _arRuleId),+ Just ("Action" .= _arAction)])++-- | In a 'GetByteMatchSet' request, @ByteMatchSet@ is a complex type that contains the @ByteMatchSetId@ and @Name@ of a @ByteMatchSet@ , and the values that you specified when you updated the @ByteMatchSet@ .+--+--+-- A complex type that contains @ByteMatchTuple@ objects, which specify the parts of web requests that you want AWS WAF to inspect and the values that you want AWS WAF to search for. If a @ByteMatchSet@ contains more than one @ByteMatchTuple@ object, a request needs to match the settings in only one @ByteMatchTuple@ to be considered a match.+--+--+-- /See:/ 'byteMatchSet' smart constructor.+data ByteMatchSet = ByteMatchSet'+ { _bmsName :: !(Maybe Text)+ , _bmsByteMatchSetId :: !Text+ , _bmsByteMatchTuples :: ![ByteMatchTuple]+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ByteMatchSet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bmsName' - A friendly name or description of the 'ByteMatchSet' . You can't change @Name@ after you create a @ByteMatchSet@ .+--+-- * 'bmsByteMatchSetId' - The @ByteMatchSetId@ for a @ByteMatchSet@ . You use @ByteMatchSetId@ to get information about a @ByteMatchSet@ (see 'GetByteMatchSet' ), update a @ByteMatchSet@ (see 'UpdateByteMatchSet' ), insert a @ByteMatchSet@ into a @Rule@ or delete one from a @Rule@ (see 'UpdateRule' ), and delete a @ByteMatchSet@ from AWS WAF (see 'DeleteByteMatchSet' ). @ByteMatchSetId@ is returned by 'CreateByteMatchSet' and by 'ListByteMatchSets' .+--+-- * 'bmsByteMatchTuples' - Specifies the bytes (typically a string that corresponds with ASCII characters) that you want AWS WAF to search for in web requests, the location in requests that you want AWS WAF to search, and other settings.+byteMatchSet+ :: Text -- ^ 'bmsByteMatchSetId'+ -> ByteMatchSet+byteMatchSet pByteMatchSetId_ =+ ByteMatchSet'+ { _bmsName = Nothing+ , _bmsByteMatchSetId = pByteMatchSetId_+ , _bmsByteMatchTuples = mempty+ }+++-- | A friendly name or description of the 'ByteMatchSet' . You can't change @Name@ after you create a @ByteMatchSet@ .+bmsName :: Lens' ByteMatchSet (Maybe Text)+bmsName = lens _bmsName (\ s a -> s{_bmsName = a});++-- | The @ByteMatchSetId@ for a @ByteMatchSet@ . You use @ByteMatchSetId@ to get information about a @ByteMatchSet@ (see 'GetByteMatchSet' ), update a @ByteMatchSet@ (see 'UpdateByteMatchSet' ), insert a @ByteMatchSet@ into a @Rule@ or delete one from a @Rule@ (see 'UpdateRule' ), and delete a @ByteMatchSet@ from AWS WAF (see 'DeleteByteMatchSet' ). @ByteMatchSetId@ is returned by 'CreateByteMatchSet' and by 'ListByteMatchSets' .+bmsByteMatchSetId :: Lens' ByteMatchSet Text+bmsByteMatchSetId = lens _bmsByteMatchSetId (\ s a -> s{_bmsByteMatchSetId = a});++-- | Specifies the bytes (typically a string that corresponds with ASCII characters) that you want AWS WAF to search for in web requests, the location in requests that you want AWS WAF to search, and other settings.+bmsByteMatchTuples :: Lens' ByteMatchSet [ByteMatchTuple]+bmsByteMatchTuples = lens _bmsByteMatchTuples (\ s a -> s{_bmsByteMatchTuples = a}) . _Coerce;++instance FromJSON ByteMatchSet where+ parseJSON+ = withObject "ByteMatchSet"+ (\ x ->+ ByteMatchSet' <$>+ (x .:? "Name") <*> (x .: "ByteMatchSetId") <*>+ (x .:? "ByteMatchTuples" .!= mempty))++instance Hashable ByteMatchSet where++instance NFData ByteMatchSet where++-- | Returned by 'ListByteMatchSets' . Each @ByteMatchSetSummary@ object includes the @Name@ and @ByteMatchSetId@ for one 'ByteMatchSet' .+--+--+--+-- /See:/ 'byteMatchSetSummary' smart constructor.+data ByteMatchSetSummary = ByteMatchSetSummary'+ { _bmssByteMatchSetId :: !Text+ , _bmssName :: !Text+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ByteMatchSetSummary' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bmssByteMatchSetId' - The @ByteMatchSetId@ for a @ByteMatchSet@ . You use @ByteMatchSetId@ to get information about a @ByteMatchSet@ , update a @ByteMatchSet@ , remove a @ByteMatchSet@ from a @Rule@ , and delete a @ByteMatchSet@ from AWS WAF. @ByteMatchSetId@ is returned by 'CreateByteMatchSet' and by 'ListByteMatchSets' .+--+-- * 'bmssName' - A friendly name or description of the 'ByteMatchSet' . You can't change @Name@ after you create a @ByteMatchSet@ .+byteMatchSetSummary+ :: Text -- ^ 'bmssByteMatchSetId'+ -> Text -- ^ 'bmssName'+ -> ByteMatchSetSummary+byteMatchSetSummary pByteMatchSetId_ pName_ =+ ByteMatchSetSummary'+ {_bmssByteMatchSetId = pByteMatchSetId_, _bmssName = pName_}+++-- | The @ByteMatchSetId@ for a @ByteMatchSet@ . You use @ByteMatchSetId@ to get information about a @ByteMatchSet@ , update a @ByteMatchSet@ , remove a @ByteMatchSet@ from a @Rule@ , and delete a @ByteMatchSet@ from AWS WAF. @ByteMatchSetId@ is returned by 'CreateByteMatchSet' and by 'ListByteMatchSets' .+bmssByteMatchSetId :: Lens' ByteMatchSetSummary Text+bmssByteMatchSetId = lens _bmssByteMatchSetId (\ s a -> s{_bmssByteMatchSetId = a});++-- | A friendly name or description of the 'ByteMatchSet' . You can't change @Name@ after you create a @ByteMatchSet@ .+bmssName :: Lens' ByteMatchSetSummary Text+bmssName = lens _bmssName (\ s a -> s{_bmssName = a});++instance FromJSON ByteMatchSetSummary where+ parseJSON+ = withObject "ByteMatchSetSummary"+ (\ x ->+ ByteMatchSetSummary' <$>+ (x .: "ByteMatchSetId") <*> (x .: "Name"))++instance Hashable ByteMatchSetSummary where++instance NFData ByteMatchSetSummary where++-- | In an 'UpdateByteMatchSet' request, @ByteMatchSetUpdate@ specifies whether to insert or delete a 'ByteMatchTuple' and includes the settings for the @ByteMatchTuple@ .+--+--+--+-- /See:/ 'byteMatchSetUpdate' smart constructor.+data ByteMatchSetUpdate = ByteMatchSetUpdate'+ { _bmsuAction :: !ChangeAction+ , _bmsuByteMatchTuple :: !ByteMatchTuple+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ByteMatchSetUpdate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bmsuAction' - Specifies whether to insert or delete a 'ByteMatchTuple' .+--+-- * 'bmsuByteMatchTuple' - Information about the part of a web request that you want AWS WAF to inspect and the value that you want AWS WAF to search for. If you specify @DELETE@ for the value of @Action@ , the @ByteMatchTuple@ values must exactly match the values in the @ByteMatchTuple@ that you want to delete from the @ByteMatchSet@ .+byteMatchSetUpdate+ :: ChangeAction -- ^ 'bmsuAction'+ -> ByteMatchTuple -- ^ 'bmsuByteMatchTuple'+ -> ByteMatchSetUpdate+byteMatchSetUpdate pAction_ pByteMatchTuple_ =+ ByteMatchSetUpdate'+ {_bmsuAction = pAction_, _bmsuByteMatchTuple = pByteMatchTuple_}+++-- | Specifies whether to insert or delete a 'ByteMatchTuple' .+bmsuAction :: Lens' ByteMatchSetUpdate ChangeAction+bmsuAction = lens _bmsuAction (\ s a -> s{_bmsuAction = a});++-- | Information about the part of a web request that you want AWS WAF to inspect and the value that you want AWS WAF to search for. If you specify @DELETE@ for the value of @Action@ , the @ByteMatchTuple@ values must exactly match the values in the @ByteMatchTuple@ that you want to delete from the @ByteMatchSet@ .+bmsuByteMatchTuple :: Lens' ByteMatchSetUpdate ByteMatchTuple+bmsuByteMatchTuple = lens _bmsuByteMatchTuple (\ s a -> s{_bmsuByteMatchTuple = a});++instance Hashable ByteMatchSetUpdate where++instance NFData ByteMatchSetUpdate where++instance ToJSON ByteMatchSetUpdate where+ toJSON ByteMatchSetUpdate'{..}+ = object+ (catMaybes+ [Just ("Action" .= _bmsuAction),+ Just ("ByteMatchTuple" .= _bmsuByteMatchTuple)])++-- | The bytes (typically a string that corresponds with ASCII characters) that you want AWS WAF to search for in web requests, the location in requests that you want AWS WAF to search, and other settings.+--+--+--+-- /See:/ 'byteMatchTuple' smart constructor.+data ByteMatchTuple = ByteMatchTuple'+ { _bmtFieldToMatch :: !FieldToMatch+ , _bmtTargetString :: !Base64+ , _bmtTextTransformation :: !TextTransformation+ , _bmtPositionalConstraint :: !PositionalConstraint+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ByteMatchTuple' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bmtFieldToMatch' - The part of a web request that you want AWS WAF to search, such as a specified header or a query string. For more information, see 'FieldToMatch' .+--+-- * 'bmtTargetString' - The value that you want AWS WAF to search for. AWS WAF searches for the specified string in the part of web requests that you specified in @FieldToMatch@ . The maximum length of the value is 50 bytes. Valid values depend on the values that you specified for @FieldToMatch@ : * @HEADER@ : The value that you want AWS WAF to search for in the request header that you specified in 'FieldToMatch' , for example, the value of the @User-Agent@ or @Referer@ header. * @METHOD@ : The HTTP method, which indicates the type of operation specified in the request. CloudFront supports the following methods: @DELETE@ , @GET@ , @HEAD@ , @OPTIONS@ , @PATCH@ , @POST@ , and @PUT@ . * @QUERY_STRING@ : The value that you want AWS WAF to search for in the query string, which is the part of a URL that appears after a @?@ character. * @URI@ : The value that you want AWS WAF to search for in the part of a URL that identifies a resource, for example, @/images/daily-ad.jpg@ . * @BODY@ : The part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form. The request body immediately follows the request headers. Note that only the first @8192@ bytes of the request body are forwarded to AWS WAF for inspection. To allow or block requests based on the length of the body, you can create a size constraint set. For more information, see 'CreateSizeConstraintSet' . If @TargetString@ includes alphabetic characters A-Z and a-z, note that the value is case sensitive. __If you're using the AWS WAF API__ Specify a base64-encoded version of the value. The maximum length of the value before you base64-encode it is 50 bytes. For example, suppose the value of @Type@ is @HEADER@ and the value of @Data@ is @User-Agent@ . If you want to search the @User-Agent@ header for the value @BadBot@ , you base64-encode @BadBot@ using MIME base64 encoding and include the resulting value, @QmFkQm90@ , in the value of @TargetString@ . __If you're using the AWS CLI or one of the AWS SDKs__ The value that you want AWS WAF to search for. The SDK automatically base64 encodes the value.-- /Note:/ This 'Lens' automatically encodes and decodes Base64 data. The underlying isomorphism will encode to Base64 representation during serialisation, and decode from Base64 representation during deserialisation. This 'Lens' accepts and returns only raw unencoded data.+--+-- * 'bmtTextTransformation' - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass AWS WAF. If you specify a transformation, AWS WAF performs the transformation on @TargetString@ before inspecting a request for a match. __CMD_LINE__ When you're concerned that attackers are injecting an operating system commandline command and using unusual formatting to disguise some or all of the command, use this option to perform the following transformations: * Delete the following characters: \ " ' ^ * Delete spaces before the following characters: / ( * Replace the following characters with a space: , ; * Replace multiple spaces with one space * Convert uppercase letters (A-Z) to lowercase (a-z) __COMPRESS_WHITE_SPACE__ Use this option to replace the following characters with a space character (decimal 32): * \f, formfeed, decimal 12 * \t, tab, decimal 9 * \n, newline, decimal 10 * \r, carriage return, decimal 13 * \v, vertical tab, decimal 11 * non-breaking space, decimal 160 @COMPRESS_WHITE_SPACE@ also replaces multiple spaces with one space. __HTML_ENTITY_DECODE__ Use this option to replace HTML-encoded characters with unencoded characters. @HTML_ENTITY_DECODE@ performs the following operations: * Replaces @(ampersand)quot;@ with @"@ * Replaces @(ampersand)nbsp;@ with a non-breaking space, decimal 160 * Replaces @(ampersand)lt;@ with a "less than" symbol * Replaces @(ampersand)gt;@ with @>@ * Replaces characters that are represented in hexadecimal format, @(ampersand)#xhhhh;@ , with the corresponding characters * Replaces characters that are represented in decimal format, @(ampersand)#nnnn;@ , with the corresponding characters __LOWERCASE__ Use this option to convert uppercase letters (A-Z) to lowercase (a-z). __URL_DECODE__ Use this option to decode a URL-encoded value. __NONE__ Specify @NONE@ if you don't want to perform any text transformations.+--+-- * 'bmtPositionalConstraint' - Within the portion of a web request that you want to search (for example, in the query string, if any), specify where you want AWS WAF to search. Valid values include the following: __CONTAINS__ The specified part of the web request must include the value of @TargetString@ , but the location doesn't matter. __CONTAINS_WORD__ The specified part of the web request must include the value of @TargetString@ , and @TargetString@ must contain only alphanumeric characters or underscore (A-Z, a-z, 0-9, or _). In addition, @TargetString@ must be a word, which means one of the following: * @TargetString@ exactly matches the value of the specified part of the web request, such as the value of a header. * @TargetString@ is at the beginning of the specified part of the web request and is followed by a character other than an alphanumeric character or underscore (_), for example, @BadBot;@ . * @TargetString@ is at the end of the specified part of the web request and is preceded by a character other than an alphanumeric character or underscore (_), for example, @;BadBot@ . * @TargetString@ is in the middle of the specified part of the web request and is preceded and followed by characters other than alphanumeric characters or underscore (_), for example, @-BadBot;@ . __EXACTLY__ The value of the specified part of the web request must exactly match the value of @TargetString@ . __STARTS_WITH__ The value of @TargetString@ must appear at the beginning of the specified part of the web request. __ENDS_WITH__ The value of @TargetString@ must appear at the end of the specified part of the web request.+byteMatchTuple+ :: FieldToMatch -- ^ 'bmtFieldToMatch'+ -> ByteString -- ^ 'bmtTargetString'+ -> TextTransformation -- ^ 'bmtTextTransformation'+ -> PositionalConstraint -- ^ 'bmtPositionalConstraint'+ -> ByteMatchTuple+byteMatchTuple pFieldToMatch_ pTargetString_ pTextTransformation_ pPositionalConstraint_ =+ ByteMatchTuple'+ { _bmtFieldToMatch = pFieldToMatch_+ , _bmtTargetString = _Base64 # pTargetString_+ , _bmtTextTransformation = pTextTransformation_+ , _bmtPositionalConstraint = pPositionalConstraint_+ }+++-- | The part of a web request that you want AWS WAF to search, such as a specified header or a query string. For more information, see 'FieldToMatch' .+bmtFieldToMatch :: Lens' ByteMatchTuple FieldToMatch+bmtFieldToMatch = lens _bmtFieldToMatch (\ s a -> s{_bmtFieldToMatch = a});++-- | The value that you want AWS WAF to search for. AWS WAF searches for the specified string in the part of web requests that you specified in @FieldToMatch@ . The maximum length of the value is 50 bytes. Valid values depend on the values that you specified for @FieldToMatch@ : * @HEADER@ : The value that you want AWS WAF to search for in the request header that you specified in 'FieldToMatch' , for example, the value of the @User-Agent@ or @Referer@ header. * @METHOD@ : The HTTP method, which indicates the type of operation specified in the request. CloudFront supports the following methods: @DELETE@ , @GET@ , @HEAD@ , @OPTIONS@ , @PATCH@ , @POST@ , and @PUT@ . * @QUERY_STRING@ : The value that you want AWS WAF to search for in the query string, which is the part of a URL that appears after a @?@ character. * @URI@ : The value that you want AWS WAF to search for in the part of a URL that identifies a resource, for example, @/images/daily-ad.jpg@ . * @BODY@ : The part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form. The request body immediately follows the request headers. Note that only the first @8192@ bytes of the request body are forwarded to AWS WAF for inspection. To allow or block requests based on the length of the body, you can create a size constraint set. For more information, see 'CreateSizeConstraintSet' . If @TargetString@ includes alphabetic characters A-Z and a-z, note that the value is case sensitive. __If you're using the AWS WAF API__ Specify a base64-encoded version of the value. The maximum length of the value before you base64-encode it is 50 bytes. For example, suppose the value of @Type@ is @HEADER@ and the value of @Data@ is @User-Agent@ . If you want to search the @User-Agent@ header for the value @BadBot@ , you base64-encode @BadBot@ using MIME base64 encoding and include the resulting value, @QmFkQm90@ , in the value of @TargetString@ . __If you're using the AWS CLI or one of the AWS SDKs__ The value that you want AWS WAF to search for. The SDK automatically base64 encodes the value.-- /Note:/ This 'Lens' automatically encodes and decodes Base64 data. The underlying isomorphism will encode to Base64 representation during serialisation, and decode from Base64 representation during deserialisation. This 'Lens' accepts and returns only raw unencoded data.+bmtTargetString :: Lens' ByteMatchTuple ByteString+bmtTargetString = lens _bmtTargetString (\ s a -> s{_bmtTargetString = a}) . _Base64;++-- | Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass AWS WAF. If you specify a transformation, AWS WAF performs the transformation on @TargetString@ before inspecting a request for a match. __CMD_LINE__ When you're concerned that attackers are injecting an operating system commandline command and using unusual formatting to disguise some or all of the command, use this option to perform the following transformations: * Delete the following characters: \ " ' ^ * Delete spaces before the following characters: / ( * Replace the following characters with a space: , ; * Replace multiple spaces with one space * Convert uppercase letters (A-Z) to lowercase (a-z) __COMPRESS_WHITE_SPACE__ Use this option to replace the following characters with a space character (decimal 32): * \f, formfeed, decimal 12 * \t, tab, decimal 9 * \n, newline, decimal 10 * \r, carriage return, decimal 13 * \v, vertical tab, decimal 11 * non-breaking space, decimal 160 @COMPRESS_WHITE_SPACE@ also replaces multiple spaces with one space. __HTML_ENTITY_DECODE__ Use this option to replace HTML-encoded characters with unencoded characters. @HTML_ENTITY_DECODE@ performs the following operations: * Replaces @(ampersand)quot;@ with @"@ * Replaces @(ampersand)nbsp;@ with a non-breaking space, decimal 160 * Replaces @(ampersand)lt;@ with a "less than" symbol * Replaces @(ampersand)gt;@ with @>@ * Replaces characters that are represented in hexadecimal format, @(ampersand)#xhhhh;@ , with the corresponding characters * Replaces characters that are represented in decimal format, @(ampersand)#nnnn;@ , with the corresponding characters __LOWERCASE__ Use this option to convert uppercase letters (A-Z) to lowercase (a-z). __URL_DECODE__ Use this option to decode a URL-encoded value. __NONE__ Specify @NONE@ if you don't want to perform any text transformations.+bmtTextTransformation :: Lens' ByteMatchTuple TextTransformation+bmtTextTransformation = lens _bmtTextTransformation (\ s a -> s{_bmtTextTransformation = a});++-- | Within the portion of a web request that you want to search (for example, in the query string, if any), specify where you want AWS WAF to search. Valid values include the following: __CONTAINS__ The specified part of the web request must include the value of @TargetString@ , but the location doesn't matter. __CONTAINS_WORD__ The specified part of the web request must include the value of @TargetString@ , and @TargetString@ must contain only alphanumeric characters or underscore (A-Z, a-z, 0-9, or _). In addition, @TargetString@ must be a word, which means one of the following: * @TargetString@ exactly matches the value of the specified part of the web request, such as the value of a header. * @TargetString@ is at the beginning of the specified part of the web request and is followed by a character other than an alphanumeric character or underscore (_), for example, @BadBot;@ . * @TargetString@ is at the end of the specified part of the web request and is preceded by a character other than an alphanumeric character or underscore (_), for example, @;BadBot@ . * @TargetString@ is in the middle of the specified part of the web request and is preceded and followed by characters other than alphanumeric characters or underscore (_), for example, @-BadBot;@ . __EXACTLY__ The value of the specified part of the web request must exactly match the value of @TargetString@ . __STARTS_WITH__ The value of @TargetString@ must appear at the beginning of the specified part of the web request. __ENDS_WITH__ The value of @TargetString@ must appear at the end of the specified part of the web request.+bmtPositionalConstraint :: Lens' ByteMatchTuple PositionalConstraint+bmtPositionalConstraint = lens _bmtPositionalConstraint (\ s a -> s{_bmtPositionalConstraint = a});++instance FromJSON ByteMatchTuple where+ parseJSON+ = withObject "ByteMatchTuple"+ (\ x ->+ ByteMatchTuple' <$>+ (x .: "FieldToMatch") <*> (x .: "TargetString") <*>+ (x .: "TextTransformation")+ <*> (x .: "PositionalConstraint"))++instance Hashable ByteMatchTuple where++instance NFData ByteMatchTuple where++instance ToJSON ByteMatchTuple where+ toJSON ByteMatchTuple'{..}+ = object+ (catMaybes+ [Just ("FieldToMatch" .= _bmtFieldToMatch),+ Just ("TargetString" .= _bmtTargetString),+ Just+ ("TextTransformation" .= _bmtTextTransformation),+ Just+ ("PositionalConstraint" .=+ _bmtPositionalConstraint)])++-- | Specifies where in a web request to look for @TargetString@ .+--+--+--+-- /See:/ 'fieldToMatch' smart constructor.+data FieldToMatch = FieldToMatch'+ { _ftmData :: !(Maybe Text)+ , _ftmType :: !MatchFieldType+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'FieldToMatch' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ftmData' - When the value of @Type@ is @HEADER@ , enter the name of the header that you want AWS WAF to search, for example, @User-Agent@ or @Referer@ . If the value of @Type@ is any other value, omit @Data@ . The name of the header is not case sensitive.+--+-- * 'ftmType' - The part of the web request that you want AWS WAF to search for a specified string. Parts of a request that you can search include the following: * @HEADER@ : A specified request header, for example, the value of the @User-Agent@ or @Referer@ header. If you choose @HEADER@ for the type, specify the name of the header in @Data@ . * @METHOD@ : The HTTP method, which indicated the type of operation that the request is asking the origin to perform. Amazon CloudFront supports the following methods: @DELETE@ , @GET@ , @HEAD@ , @OPTIONS@ , @PATCH@ , @POST@ , and @PUT@ . * @QUERY_STRING@ : A query string, which is the part of a URL that appears after a @?@ character, if any. * @URI@ : The part of a web request that identifies a resource, for example, @/images/daily-ad.jpg@ . * @BODY@ : The part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form. The request body immediately follows the request headers. Note that only the first @8192@ bytes of the request body are forwarded to AWS WAF for inspection. To allow or block requests based on the length of the body, you can create a size constraint set. For more information, see 'CreateSizeConstraintSet' .+fieldToMatch+ :: MatchFieldType -- ^ 'ftmType'+ -> FieldToMatch+fieldToMatch pType_ = FieldToMatch' {_ftmData = Nothing, _ftmType = pType_}+++-- | When the value of @Type@ is @HEADER@ , enter the name of the header that you want AWS WAF to search, for example, @User-Agent@ or @Referer@ . If the value of @Type@ is any other value, omit @Data@ . The name of the header is not case sensitive.+ftmData :: Lens' FieldToMatch (Maybe Text)+ftmData = lens _ftmData (\ s a -> s{_ftmData = a});++-- | The part of the web request that you want AWS WAF to search for a specified string. Parts of a request that you can search include the following: * @HEADER@ : A specified request header, for example, the value of the @User-Agent@ or @Referer@ header. If you choose @HEADER@ for the type, specify the name of the header in @Data@ . * @METHOD@ : The HTTP method, which indicated the type of operation that the request is asking the origin to perform. Amazon CloudFront supports the following methods: @DELETE@ , @GET@ , @HEAD@ , @OPTIONS@ , @PATCH@ , @POST@ , and @PUT@ . * @QUERY_STRING@ : A query string, which is the part of a URL that appears after a @?@ character, if any. * @URI@ : The part of a web request that identifies a resource, for example, @/images/daily-ad.jpg@ . * @BODY@ : The part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form. The request body immediately follows the request headers. Note that only the first @8192@ bytes of the request body are forwarded to AWS WAF for inspection. To allow or block requests based on the length of the body, you can create a size constraint set. For more information, see 'CreateSizeConstraintSet' .+ftmType :: Lens' FieldToMatch MatchFieldType+ftmType = lens _ftmType (\ s a -> s{_ftmType = a});++instance FromJSON FieldToMatch where+ parseJSON+ = withObject "FieldToMatch"+ (\ x ->+ FieldToMatch' <$> (x .:? "Data") <*> (x .: "Type"))++instance Hashable FieldToMatch where++instance NFData FieldToMatch where++instance ToJSON FieldToMatch where+ toJSON FieldToMatch'{..}+ = object+ (catMaybes+ [("Data" .=) <$> _ftmData,+ Just ("Type" .= _ftmType)])++-- | The country from which web requests originate that you want AWS WAF to search for.+--+--+--+-- /See:/ 'geoMatchConstraint' smart constructor.+data GeoMatchConstraint = GeoMatchConstraint'+ { _gmcType :: !GeoMatchConstraintType+ , _gmcValue :: !GeoMatchConstraintValue+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'GeoMatchConstraint' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gmcType' - The type of geographical area you want AWS WAF to search for. Currently @Country@ is the only valid value.+--+-- * 'gmcValue' - The country that you want AWS WAF to search for.+geoMatchConstraint+ :: GeoMatchConstraintType -- ^ 'gmcType'+ -> GeoMatchConstraintValue -- ^ 'gmcValue'+ -> GeoMatchConstraint+geoMatchConstraint pType_ pValue_ =+ GeoMatchConstraint' {_gmcType = pType_, _gmcValue = pValue_}+++-- | The type of geographical area you want AWS WAF to search for. Currently @Country@ is the only valid value.+gmcType :: Lens' GeoMatchConstraint GeoMatchConstraintType+gmcType = lens _gmcType (\ s a -> s{_gmcType = a});++-- | The country that you want AWS WAF to search for.+gmcValue :: Lens' GeoMatchConstraint GeoMatchConstraintValue+gmcValue = lens _gmcValue (\ s a -> s{_gmcValue = a});++instance FromJSON GeoMatchConstraint where+ parseJSON+ = withObject "GeoMatchConstraint"+ (\ x ->+ GeoMatchConstraint' <$>+ (x .: "Type") <*> (x .: "Value"))++instance Hashable GeoMatchConstraint where++instance NFData GeoMatchConstraint where++instance ToJSON GeoMatchConstraint where+ toJSON GeoMatchConstraint'{..}+ = object+ (catMaybes+ [Just ("Type" .= _gmcType),+ Just ("Value" .= _gmcValue)])++-- | Contains one or more countries that AWS WAF will search for.+--+--+--+-- /See:/ 'geoMatchSet' smart constructor.+data GeoMatchSet = GeoMatchSet'+ { _gmsName :: !(Maybe Text)+ , _gmsGeoMatchSetId :: !Text+ , _gmsGeoMatchConstraints :: ![GeoMatchConstraint]+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'GeoMatchSet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gmsName' - A friendly name or description of the 'GeoMatchSet' . You can't change the name of an @GeoMatchSet@ after you create it.+--+-- * 'gmsGeoMatchSetId' - The @GeoMatchSetId@ for an @GeoMatchSet@ . You use @GeoMatchSetId@ to get information about a @GeoMatchSet@ (see 'GeoMatchSet' ), update a @GeoMatchSet@ (see 'UpdateGeoMatchSet' ), insert a @GeoMatchSet@ into a @Rule@ or delete one from a @Rule@ (see 'UpdateRule' ), and delete a @GeoMatchSet@ from AWS WAF (see 'DeleteGeoMatchSet' ). @GeoMatchSetId@ is returned by 'CreateGeoMatchSet' and by 'ListGeoMatchSets' .+--+-- * 'gmsGeoMatchConstraints' - An array of 'GeoMatchConstraint' objects, which contain the country that you want AWS WAF to search for.+geoMatchSet+ :: Text -- ^ 'gmsGeoMatchSetId'+ -> GeoMatchSet+geoMatchSet pGeoMatchSetId_ =+ GeoMatchSet'+ { _gmsName = Nothing+ , _gmsGeoMatchSetId = pGeoMatchSetId_+ , _gmsGeoMatchConstraints = mempty+ }+++-- | A friendly name or description of the 'GeoMatchSet' . You can't change the name of an @GeoMatchSet@ after you create it.+gmsName :: Lens' GeoMatchSet (Maybe Text)+gmsName = lens _gmsName (\ s a -> s{_gmsName = a});++-- | The @GeoMatchSetId@ for an @GeoMatchSet@ . You use @GeoMatchSetId@ to get information about a @GeoMatchSet@ (see 'GeoMatchSet' ), update a @GeoMatchSet@ (see 'UpdateGeoMatchSet' ), insert a @GeoMatchSet@ into a @Rule@ or delete one from a @Rule@ (see 'UpdateRule' ), and delete a @GeoMatchSet@ from AWS WAF (see 'DeleteGeoMatchSet' ). @GeoMatchSetId@ is returned by 'CreateGeoMatchSet' and by 'ListGeoMatchSets' .+gmsGeoMatchSetId :: Lens' GeoMatchSet Text+gmsGeoMatchSetId = lens _gmsGeoMatchSetId (\ s a -> s{_gmsGeoMatchSetId = a});++-- | An array of 'GeoMatchConstraint' objects, which contain the country that you want AWS WAF to search for.+gmsGeoMatchConstraints :: Lens' GeoMatchSet [GeoMatchConstraint]+gmsGeoMatchConstraints = lens _gmsGeoMatchConstraints (\ s a -> s{_gmsGeoMatchConstraints = a}) . _Coerce;++instance FromJSON GeoMatchSet where+ parseJSON+ = withObject "GeoMatchSet"+ (\ x ->+ GeoMatchSet' <$>+ (x .:? "Name") <*> (x .: "GeoMatchSetId") <*>+ (x .:? "GeoMatchConstraints" .!= mempty))++instance Hashable GeoMatchSet where++instance NFData GeoMatchSet where++-- | Contains the identifier and the name of the @GeoMatchSet@ .+--+--+--+-- /See:/ 'geoMatchSetSummary' smart constructor.+data GeoMatchSetSummary = GeoMatchSetSummary'+ { _gmssGeoMatchSetId :: !Text+ , _gmssName :: !Text+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'GeoMatchSetSummary' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gmssGeoMatchSetId' - The @GeoMatchSetId@ for an 'GeoMatchSet' . You can use @GeoMatchSetId@ in a 'GetGeoMatchSet' request to get detailed information about an 'GeoMatchSet' .+--+-- * 'gmssName' - A friendly name or description of the 'GeoMatchSet' . You can't change the name of an @GeoMatchSet@ after you create it.+geoMatchSetSummary+ :: Text -- ^ 'gmssGeoMatchSetId'+ -> Text -- ^ 'gmssName'+ -> GeoMatchSetSummary+geoMatchSetSummary pGeoMatchSetId_ pName_ =+ GeoMatchSetSummary' {_gmssGeoMatchSetId = pGeoMatchSetId_, _gmssName = pName_}+++-- | The @GeoMatchSetId@ for an 'GeoMatchSet' . You can use @GeoMatchSetId@ in a 'GetGeoMatchSet' request to get detailed information about an 'GeoMatchSet' .+gmssGeoMatchSetId :: Lens' GeoMatchSetSummary Text+gmssGeoMatchSetId = lens _gmssGeoMatchSetId (\ s a -> s{_gmssGeoMatchSetId = a});++-- | A friendly name or description of the 'GeoMatchSet' . You can't change the name of an @GeoMatchSet@ after you create it.+gmssName :: Lens' GeoMatchSetSummary Text+gmssName = lens _gmssName (\ s a -> s{_gmssName = a});++instance FromJSON GeoMatchSetSummary where+ parseJSON+ = withObject "GeoMatchSetSummary"+ (\ x ->+ GeoMatchSetSummary' <$>+ (x .: "GeoMatchSetId") <*> (x .: "Name"))++instance Hashable GeoMatchSetSummary where++instance NFData GeoMatchSetSummary where++-- | Specifies the type of update to perform to an 'GeoMatchSet' with 'UpdateGeoMatchSet' .+--+--+--+-- /See:/ 'geoMatchSetUpdate' smart constructor.+data GeoMatchSetUpdate = GeoMatchSetUpdate'+ { _gmsuAction :: !ChangeAction+ , _gmsuGeoMatchConstraint :: !GeoMatchConstraint+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'GeoMatchSetUpdate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gmsuAction' - Specifies whether to insert or delete a country with 'UpdateGeoMatchSet' .+--+-- * 'gmsuGeoMatchConstraint' - The country from which web requests originate that you want AWS WAF to search for.+geoMatchSetUpdate+ :: ChangeAction -- ^ 'gmsuAction'+ -> GeoMatchConstraint -- ^ 'gmsuGeoMatchConstraint'+ -> GeoMatchSetUpdate+geoMatchSetUpdate pAction_ pGeoMatchConstraint_ =+ GeoMatchSetUpdate'+ {_gmsuAction = pAction_, _gmsuGeoMatchConstraint = pGeoMatchConstraint_}+++-- | Specifies whether to insert or delete a country with 'UpdateGeoMatchSet' .+gmsuAction :: Lens' GeoMatchSetUpdate ChangeAction+gmsuAction = lens _gmsuAction (\ s a -> s{_gmsuAction = a});++-- | The country from which web requests originate that you want AWS WAF to search for.+gmsuGeoMatchConstraint :: Lens' GeoMatchSetUpdate GeoMatchConstraint+gmsuGeoMatchConstraint = lens _gmsuGeoMatchConstraint (\ s a -> s{_gmsuGeoMatchConstraint = a});++instance Hashable GeoMatchSetUpdate where++instance NFData GeoMatchSetUpdate where++instance ToJSON GeoMatchSetUpdate where+ toJSON GeoMatchSetUpdate'{..}+ = object+ (catMaybes+ [Just ("Action" .= _gmsuAction),+ Just+ ("GeoMatchConstraint" .= _gmsuGeoMatchConstraint)])++-- | The response from a 'GetSampledRequests' request includes an @HTTPHeader@ complex type that appears as @Headers@ in the response syntax. @HTTPHeader@ contains the names and values of all of the headers that appear in one of the web requests that were returned by @GetSampledRequests@ .+--+--+--+-- /See:/ 'hTTPHeader' smart constructor.+data HTTPHeader = HTTPHeader'+ { _httphValue :: !(Maybe Text)+ , _httphName :: !(Maybe Text)+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'HTTPHeader' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'httphValue' - The value of one of the headers in the sampled web request.+--+-- * 'httphName' - The name of one of the headers in the sampled web request.+hTTPHeader+ :: HTTPHeader+hTTPHeader = HTTPHeader' {_httphValue = Nothing, _httphName = Nothing}+++-- | The value of one of the headers in the sampled web request.+httphValue :: Lens' HTTPHeader (Maybe Text)+httphValue = lens _httphValue (\ s a -> s{_httphValue = a});++-- | The name of one of the headers in the sampled web request.+httphName :: Lens' HTTPHeader (Maybe Text)+httphName = lens _httphName (\ s a -> s{_httphName = a});++instance FromJSON HTTPHeader where+ parseJSON+ = withObject "HTTPHeader"+ (\ x ->+ HTTPHeader' <$> (x .:? "Value") <*> (x .:? "Name"))++instance Hashable HTTPHeader where++instance NFData HTTPHeader where++-- | The response from a 'GetSampledRequests' request includes an @HTTPRequest@ complex type that appears as @Request@ in the response syntax. @HTTPRequest@ contains information about one of the web requests that were returned by @GetSampledRequests@ .+--+--+--+-- /See:/ 'hTTPRequest' smart constructor.+data HTTPRequest = HTTPRequest'+ { _httprHTTPVersion :: !(Maybe Text)+ , _httprCountry :: !(Maybe Text)+ , _httprURI :: !(Maybe Text)+ , _httprHeaders :: !(Maybe [HTTPHeader])+ , _httprMethod :: !(Maybe Text)+ , _httprClientIP :: !(Maybe Text)+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'HTTPRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'httprHTTPVersion' - The HTTP version specified in the sampled web request, for example, @HTTP/1.1@ .+--+-- * 'httprCountry' - The two-letter country code for the country that the request originated from. For a current list of country codes, see the Wikipedia entry <https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 ISO 3166-1 alpha-2> .+--+-- * 'httprURI' - The part of a web request that identifies the resource, for example, @/images/daily-ad.jpg@ .+--+-- * 'httprHeaders' - A complex type that contains two values for each header in the sampled web request: the name of the header and the value of the header.+--+-- * 'httprMethod' - The HTTP method specified in the sampled web request. CloudFront supports the following methods: @DELETE@ , @GET@ , @HEAD@ , @OPTIONS@ , @PATCH@ , @POST@ , and @PUT@ .+--+-- * 'httprClientIP' - The IP address that the request originated from. If the @WebACL@ is associated with a CloudFront distribution, this is the value of one of the following fields in CloudFront access logs: * @c-ip@ , if the viewer did not use an HTTP proxy or a load balancer to send the request * @x-forwarded-for@ , if the viewer did use an HTTP proxy or a load balancer to send the request+hTTPRequest+ :: HTTPRequest+hTTPRequest =+ HTTPRequest'+ { _httprHTTPVersion = Nothing+ , _httprCountry = Nothing+ , _httprURI = Nothing+ , _httprHeaders = Nothing+ , _httprMethod = Nothing+ , _httprClientIP = Nothing+ }+++-- | The HTTP version specified in the sampled web request, for example, @HTTP/1.1@ .+httprHTTPVersion :: Lens' HTTPRequest (Maybe Text)+httprHTTPVersion = lens _httprHTTPVersion (\ s a -> s{_httprHTTPVersion = a});++-- | The two-letter country code for the country that the request originated from. For a current list of country codes, see the Wikipedia entry <https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 ISO 3166-1 alpha-2> .+httprCountry :: Lens' HTTPRequest (Maybe Text)+httprCountry = lens _httprCountry (\ s a -> s{_httprCountry = a});++-- | The part of a web request that identifies the resource, for example, @/images/daily-ad.jpg@ .+httprURI :: Lens' HTTPRequest (Maybe Text)+httprURI = lens _httprURI (\ s a -> s{_httprURI = a});++-- | A complex type that contains two values for each header in the sampled web request: the name of the header and the value of the header.+httprHeaders :: Lens' HTTPRequest [HTTPHeader]+httprHeaders = lens _httprHeaders (\ s a -> s{_httprHeaders = a}) . _Default . _Coerce;++-- | The HTTP method specified in the sampled web request. CloudFront supports the following methods: @DELETE@ , @GET@ , @HEAD@ , @OPTIONS@ , @PATCH@ , @POST@ , and @PUT@ .+httprMethod :: Lens' HTTPRequest (Maybe Text)+httprMethod = lens _httprMethod (\ s a -> s{_httprMethod = a});++-- | The IP address that the request originated from. If the @WebACL@ is associated with a CloudFront distribution, this is the value of one of the following fields in CloudFront access logs: * @c-ip@ , if the viewer did not use an HTTP proxy or a load balancer to send the request * @x-forwarded-for@ , if the viewer did use an HTTP proxy or a load balancer to send the request+httprClientIP :: Lens' HTTPRequest (Maybe Text)+httprClientIP = lens _httprClientIP (\ s a -> s{_httprClientIP = a});++instance FromJSON HTTPRequest where+ parseJSON+ = withObject "HTTPRequest"+ (\ x ->+ HTTPRequest' <$>+ (x .:? "HTTPVersion") <*> (x .:? "Country") <*>+ (x .:? "URI")+ <*> (x .:? "Headers" .!= mempty)+ <*> (x .:? "Method")+ <*> (x .:? "ClientIP"))++instance Hashable HTTPRequest where++instance NFData HTTPRequest where++-- | Contains one or more IP addresses or blocks of IP addresses specified in Classless Inter-Domain Routing (CIDR) notation. AWS WAF supports /8, /16, /24, and /32 IP address ranges for IPv4, and /24, /32, /48, /56, /64 and /128 for IPv6.+--+--+-- To specify an individual IP address, you specify the four-part IP address followed by a @/32@ , for example, 192.0.2.0/31. To block a range of IP addresses, you can specify a @/128@ , @/64@ , @/56@ , @/48@ , @/32@ , @/24@ , @/16@ , or @/8@ CIDR. For more information about CIDR notation, see the Wikipedia entry <https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing Classless Inter-Domain Routing> .+--+--+-- /See:/ 'ipSet' smart constructor.+data IPSet = IPSet'+ { _isName :: !(Maybe Text)+ , _isIPSetId :: !Text+ , _isIPSetDescriptors :: ![IPSetDescriptor]+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'IPSet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'isName' - A friendly name or description of the 'IPSet' . You can't change the name of an @IPSet@ after you create it.+--+-- * 'isIPSetId' - The @IPSetId@ for an @IPSet@ . You use @IPSetId@ to get information about an @IPSet@ (see 'GetIPSet' ), update an @IPSet@ (see 'UpdateIPSet' ), insert an @IPSet@ into a @Rule@ or delete one from a @Rule@ (see 'UpdateRule' ), and delete an @IPSet@ from AWS WAF (see 'DeleteIPSet' ). @IPSetId@ is returned by 'CreateIPSet' and by 'ListIPSets' .+--+-- * 'isIPSetDescriptors' - The IP address type (@IPV4@ or @IPV6@ ) and the IP address range (in CIDR notation) that web requests originate from. If the @WebACL@ is associated with a CloudFront distribution and the viewer did not use an HTTP proxy or a load balancer to send the request, this is the value of the c-ip field in the CloudFront access logs.+ipSet+ :: Text -- ^ 'isIPSetId'+ -> IPSet+ipSet pIPSetId_ =+ IPSet'+ {_isName = Nothing, _isIPSetId = pIPSetId_, _isIPSetDescriptors = mempty}+++-- | A friendly name or description of the 'IPSet' . You can't change the name of an @IPSet@ after you create it.+isName :: Lens' IPSet (Maybe Text)+isName = lens _isName (\ s a -> s{_isName = a});++-- | The @IPSetId@ for an @IPSet@ . You use @IPSetId@ to get information about an @IPSet@ (see 'GetIPSet' ), update an @IPSet@ (see 'UpdateIPSet' ), insert an @IPSet@ into a @Rule@ or delete one from a @Rule@ (see 'UpdateRule' ), and delete an @IPSet@ from AWS WAF (see 'DeleteIPSet' ). @IPSetId@ is returned by 'CreateIPSet' and by 'ListIPSets' .+isIPSetId :: Lens' IPSet Text+isIPSetId = lens _isIPSetId (\ s a -> s{_isIPSetId = a});++-- | The IP address type (@IPV4@ or @IPV6@ ) and the IP address range (in CIDR notation) that web requests originate from. If the @WebACL@ is associated with a CloudFront distribution and the viewer did not use an HTTP proxy or a load balancer to send the request, this is the value of the c-ip field in the CloudFront access logs.+isIPSetDescriptors :: Lens' IPSet [IPSetDescriptor]+isIPSetDescriptors = lens _isIPSetDescriptors (\ s a -> s{_isIPSetDescriptors = a}) . _Coerce;++instance FromJSON IPSet where+ parseJSON+ = withObject "IPSet"+ (\ x ->+ IPSet' <$>+ (x .:? "Name") <*> (x .: "IPSetId") <*>+ (x .:? "IPSetDescriptors" .!= mempty))++instance Hashable IPSet where++instance NFData IPSet where++-- | Specifies the IP address type (@IPV4@ or @IPV6@ ) and the IP address range (in CIDR format) that web requests originate from.+--+--+--+-- /See:/ 'ipSetDescriptor' smart constructor.+data IPSetDescriptor = IPSetDescriptor'+ { _isdType :: !IPSetDescriptorType+ , _isdValue :: !Text+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'IPSetDescriptor' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'isdType' - Specify @IPV4@ or @IPV6@ .+--+-- * 'isdValue' - Specify an IPv4 address by using CIDR notation. For example: * To configure AWS WAF to allow, block, or count requests that originated from the IP address 192.0.2.44, specify @192.0.2.44/32@ . * To configure AWS WAF to allow, block, or count requests that originated from IP addresses from 192.0.2.0 to 192.0.2.255, specify @192.0.2.0/24@ . For more information about CIDR notation, see the Wikipedia entry <https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing Classless Inter-Domain Routing> . Specify an IPv6 address by using CIDR notation. For example: * To configure AWS WAF to allow, block, or count requests that originated from the IP address 1111:0000:0000:0000:0000:0000:0000:0111, specify @1111:0000:0000:0000:0000:0000:0000:0111/128@ . * To configure AWS WAF to allow, block, or count requests that originated from IP addresses 1111:0000:0000:0000:0000:0000:0000:0000 to 1111:0000:0000:0000:ffff:ffff:ffff:ffff, specify @1111:0000:0000:0000:0000:0000:0000:0000/64@ .+ipSetDescriptor+ :: IPSetDescriptorType -- ^ 'isdType'+ -> Text -- ^ 'isdValue'+ -> IPSetDescriptor+ipSetDescriptor pType_ pValue_ =+ IPSetDescriptor' {_isdType = pType_, _isdValue = pValue_}+++-- | Specify @IPV4@ or @IPV6@ .+isdType :: Lens' IPSetDescriptor IPSetDescriptorType+isdType = lens _isdType (\ s a -> s{_isdType = a});++-- | Specify an IPv4 address by using CIDR notation. For example: * To configure AWS WAF to allow, block, or count requests that originated from the IP address 192.0.2.44, specify @192.0.2.44/32@ . * To configure AWS WAF to allow, block, or count requests that originated from IP addresses from 192.0.2.0 to 192.0.2.255, specify @192.0.2.0/24@ . For more information about CIDR notation, see the Wikipedia entry <https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing Classless Inter-Domain Routing> . Specify an IPv6 address by using CIDR notation. For example: * To configure AWS WAF to allow, block, or count requests that originated from the IP address 1111:0000:0000:0000:0000:0000:0000:0111, specify @1111:0000:0000:0000:0000:0000:0000:0111/128@ . * To configure AWS WAF to allow, block, or count requests that originated from IP addresses 1111:0000:0000:0000:0000:0000:0000:0000 to 1111:0000:0000:0000:ffff:ffff:ffff:ffff, specify @1111:0000:0000:0000:0000:0000:0000:0000/64@ .+isdValue :: Lens' IPSetDescriptor Text+isdValue = lens _isdValue (\ s a -> s{_isdValue = a});++instance FromJSON IPSetDescriptor where+ parseJSON+ = withObject "IPSetDescriptor"+ (\ x ->+ IPSetDescriptor' <$>+ (x .: "Type") <*> (x .: "Value"))++instance Hashable IPSetDescriptor where++instance NFData IPSetDescriptor where++instance ToJSON IPSetDescriptor where+ toJSON IPSetDescriptor'{..}+ = object+ (catMaybes+ [Just ("Type" .= _isdType),+ Just ("Value" .= _isdValue)])++-- | Contains the identifier and the name of the @IPSet@ .+--+--+--+-- /See:/ 'ipSetSummary' smart constructor.+data IPSetSummary = IPSetSummary'+ { _issIPSetId :: !Text+ , _issName :: !Text+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'IPSetSummary' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'issIPSetId' - The @IPSetId@ for an 'IPSet' . You can use @IPSetId@ in a 'GetIPSet' request to get detailed information about an 'IPSet' .+--+-- * 'issName' - A friendly name or description of the 'IPSet' . You can't change the name of an @IPSet@ after you create it.+ipSetSummary+ :: Text -- ^ 'issIPSetId'+ -> Text -- ^ 'issName'+ -> IPSetSummary+ipSetSummary pIPSetId_ pName_ =+ IPSetSummary' {_issIPSetId = pIPSetId_, _issName = pName_}+++-- | The @IPSetId@ for an 'IPSet' . You can use @IPSetId@ in a 'GetIPSet' request to get detailed information about an 'IPSet' .+issIPSetId :: Lens' IPSetSummary Text+issIPSetId = lens _issIPSetId (\ s a -> s{_issIPSetId = a});++-- | A friendly name or description of the 'IPSet' . You can't change the name of an @IPSet@ after you create it.+issName :: Lens' IPSetSummary Text+issName = lens _issName (\ s a -> s{_issName = a});++instance FromJSON IPSetSummary where+ parseJSON+ = withObject "IPSetSummary"+ (\ x ->+ IPSetSummary' <$> (x .: "IPSetId") <*> (x .: "Name"))++instance Hashable IPSetSummary where++instance NFData IPSetSummary where++-- | Specifies the type of update to perform to an 'IPSet' with 'UpdateIPSet' .+--+--+--+-- /See:/ 'ipSetUpdate' smart constructor.+data IPSetUpdate = IPSetUpdate'+ { _isuAction :: !ChangeAction+ , _isuIPSetDescriptor :: !IPSetDescriptor+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'IPSetUpdate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'isuAction' - Specifies whether to insert or delete an IP address with 'UpdateIPSet' .+--+-- * 'isuIPSetDescriptor' - The IP address type (@IPV4@ or @IPV6@ ) and the IP address range (in CIDR notation) that web requests originate from.+ipSetUpdate+ :: ChangeAction -- ^ 'isuAction'+ -> IPSetDescriptor -- ^ 'isuIPSetDescriptor'+ -> IPSetUpdate+ipSetUpdate pAction_ pIPSetDescriptor_ =+ IPSetUpdate' {_isuAction = pAction_, _isuIPSetDescriptor = pIPSetDescriptor_}+++-- | Specifies whether to insert or delete an IP address with 'UpdateIPSet' .+isuAction :: Lens' IPSetUpdate ChangeAction+isuAction = lens _isuAction (\ s a -> s{_isuAction = a});++-- | The IP address type (@IPV4@ or @IPV6@ ) and the IP address range (in CIDR notation) that web requests originate from.+isuIPSetDescriptor :: Lens' IPSetUpdate IPSetDescriptor+isuIPSetDescriptor = lens _isuIPSetDescriptor (\ s a -> s{_isuIPSetDescriptor = a});++instance Hashable IPSetUpdate where++instance NFData IPSetUpdate where++instance ToJSON IPSetUpdate where+ toJSON IPSetUpdate'{..}+ = object+ (catMaybes+ [Just ("Action" .= _isuAction),+ Just ("IPSetDescriptor" .= _isuIPSetDescriptor)])++-- | Specifies the 'ByteMatchSet' , 'IPSet' , 'SqlInjectionMatchSet' , 'XssMatchSet' , 'RegexMatchSet' , 'GeoMatchSet' , and 'SizeConstraintSet' objects that you want to add to a @Rule@ and, for each object, indicates whether you want to negate the settings, for example, requests that do NOT originate from the IP address 192.0.2.44.+--+--+--+-- /See:/ 'predicate' smart constructor.+data Predicate = Predicate'+ { _pNegated :: !Bool+ , _pType :: !PredicateType+ , _pDataId :: !Text+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Predicate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pNegated' - Set @Negated@ to @False@ if you want AWS WAF to allow, block, or count requests based on the settings in the specified 'ByteMatchSet' , 'IPSet' , 'SqlInjectionMatchSet' , 'XssMatchSet' , 'RegexMatchSet' , 'GeoMatchSet' , or 'SizeConstraintSet' . For example, if an @IPSet@ includes the IP address @192.0.2.44@ , AWS WAF will allow or block requests based on that IP address. Set @Negated@ to @True@ if you want AWS WAF to allow or block a request based on the negation of the settings in the 'ByteMatchSet' , 'IPSet' , 'SqlInjectionMatchSet' , 'XssMatchSet' , 'RegexMatchSet' , 'GeoMatchSet' , or 'SizeConstraintSet' . For example, if an @IPSet@ includes the IP address @192.0.2.44@ , AWS WAF will allow, block, or count requests based on all IP addresses /except/ @192.0.2.44@ .+--+-- * 'pType' - The type of predicate in a @Rule@ , such as @ByteMatchSet@ or @IPSet@ .+--+-- * 'pDataId' - A unique identifier for a predicate in a @Rule@ , such as @ByteMatchSetId@ or @IPSetId@ . The ID is returned by the corresponding @Create@ or @List@ command.+predicate+ :: Bool -- ^ 'pNegated'+ -> PredicateType -- ^ 'pType'+ -> Text -- ^ 'pDataId'+ -> Predicate+predicate pNegated_ pType_ pDataId_ =+ Predicate' {_pNegated = pNegated_, _pType = pType_, _pDataId = pDataId_}+++-- | Set @Negated@ to @False@ if you want AWS WAF to allow, block, or count requests based on the settings in the specified 'ByteMatchSet' , 'IPSet' , 'SqlInjectionMatchSet' , 'XssMatchSet' , 'RegexMatchSet' , 'GeoMatchSet' , or 'SizeConstraintSet' . For example, if an @IPSet@ includes the IP address @192.0.2.44@ , AWS WAF will allow or block requests based on that IP address. Set @Negated@ to @True@ if you want AWS WAF to allow or block a request based on the negation of the settings in the 'ByteMatchSet' , 'IPSet' , 'SqlInjectionMatchSet' , 'XssMatchSet' , 'RegexMatchSet' , 'GeoMatchSet' , or 'SizeConstraintSet' . For example, if an @IPSet@ includes the IP address @192.0.2.44@ , AWS WAF will allow, block, or count requests based on all IP addresses /except/ @192.0.2.44@ .+pNegated :: Lens' Predicate Bool+pNegated = lens _pNegated (\ s a -> s{_pNegated = a});++-- | The type of predicate in a @Rule@ , such as @ByteMatchSet@ or @IPSet@ .+pType :: Lens' Predicate PredicateType+pType = lens _pType (\ s a -> s{_pType = a});++-- | A unique identifier for a predicate in a @Rule@ , such as @ByteMatchSetId@ or @IPSetId@ . The ID is returned by the corresponding @Create@ or @List@ command.+pDataId :: Lens' Predicate Text+pDataId = lens _pDataId (\ s a -> s{_pDataId = a});++instance FromJSON Predicate where+ parseJSON+ = withObject "Predicate"+ (\ x ->+ Predicate' <$>+ (x .: "Negated") <*> (x .: "Type") <*>+ (x .: "DataId"))++instance Hashable Predicate where++instance NFData Predicate where++instance ToJSON Predicate where+ toJSON Predicate'{..}+ = object+ (catMaybes+ [Just ("Negated" .= _pNegated),+ Just ("Type" .= _pType),+ Just ("DataId" .= _pDataId)])++-- | A @RateBasedRule@ is identical to a regular 'Rule' , with one addition: a @RateBasedRule@ counts the number of requests that arrive from a specified IP address every five minutes. For example, based on recent requests that you've seen from an attacker, you might create a @RateBasedRule@ that includes the following conditions:+--+--+-- * The requests come from 192.0.2.44.+--+-- * They contain the value @BadBot@ in the @User-Agent@ header.+--+--+--+-- In the rule, you also define the rate limit as 15,000.+--+-- Requests that meet both of these conditions and exceed 15,000 requests every five minutes trigger the rule's action (block or count), which is defined in the web ACL.+--+--+-- /See:/ 'rateBasedRule' smart constructor.+data RateBasedRule = RateBasedRule'+ { _rbrMetricName :: !(Maybe Text)+ , _rbrName :: !(Maybe Text)+ , _rbrRuleId :: !Text+ , _rbrMatchPredicates :: ![Predicate]+ , _rbrRateKey :: !RateKey+ , _rbrRateLimit :: !Nat+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'RateBasedRule' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rbrMetricName' - A friendly name or description for the metrics for a @RateBasedRule@ . The name can contain only alphanumeric characters (A-Z, a-z, 0-9); the name can't contain whitespace. You can't change the name of the metric after you create the @RateBasedRule@ .+--+-- * 'rbrName' - A friendly name or description for a @RateBasedRule@ . You can't change the name of a @RateBasedRule@ after you create it.+--+-- * 'rbrRuleId' - A unique identifier for a @RateBasedRule@ . You use @RuleId@ to get more information about a @RateBasedRule@ (see 'GetRateBasedRule' ), update a @RateBasedRule@ (see 'UpdateRateBasedRule' ), insert a @RateBasedRule@ into a @WebACL@ or delete one from a @WebACL@ (see 'UpdateWebACL' ), or delete a @RateBasedRule@ from AWS WAF (see 'DeleteRateBasedRule' ).+--+-- * 'rbrMatchPredicates' - The @Predicates@ object contains one @Predicate@ element for each 'ByteMatchSet' , 'IPSet' , or 'SqlInjectionMatchSet' object that you want to include in a @RateBasedRule@ .+--+-- * 'rbrRateKey' - The field that AWS WAF uses to determine if requests are likely arriving from single source and thus subject to rate monitoring. The only valid value for @RateKey@ is @IP@ . @IP@ indicates that requests arriving from the same IP address are subject to the @RateLimit@ that is specified in the @RateBasedRule@ .+--+-- * 'rbrRateLimit' - The maximum number of requests, which have an identical value in the field specified by the @RateKey@ , allowed in a five-minute period. If the number of requests exceeds the @RateLimit@ and the other predicates specified in the rule are also met, AWS WAF triggers the action that is specified for this rule.+rateBasedRule+ :: Text -- ^ 'rbrRuleId'+ -> RateKey -- ^ 'rbrRateKey'+ -> Natural -- ^ 'rbrRateLimit'+ -> RateBasedRule+rateBasedRule pRuleId_ pRateKey_ pRateLimit_ =+ RateBasedRule'+ { _rbrMetricName = Nothing+ , _rbrName = Nothing+ , _rbrRuleId = pRuleId_+ , _rbrMatchPredicates = mempty+ , _rbrRateKey = pRateKey_+ , _rbrRateLimit = _Nat # pRateLimit_+ }+++-- | A friendly name or description for the metrics for a @RateBasedRule@ . The name can contain only alphanumeric characters (A-Z, a-z, 0-9); the name can't contain whitespace. You can't change the name of the metric after you create the @RateBasedRule@ .+rbrMetricName :: Lens' RateBasedRule (Maybe Text)+rbrMetricName = lens _rbrMetricName (\ s a -> s{_rbrMetricName = a});++-- | A friendly name or description for a @RateBasedRule@ . You can't change the name of a @RateBasedRule@ after you create it.+rbrName :: Lens' RateBasedRule (Maybe Text)+rbrName = lens _rbrName (\ s a -> s{_rbrName = a});++-- | A unique identifier for a @RateBasedRule@ . You use @RuleId@ to get more information about a @RateBasedRule@ (see 'GetRateBasedRule' ), update a @RateBasedRule@ (see 'UpdateRateBasedRule' ), insert a @RateBasedRule@ into a @WebACL@ or delete one from a @WebACL@ (see 'UpdateWebACL' ), or delete a @RateBasedRule@ from AWS WAF (see 'DeleteRateBasedRule' ).+rbrRuleId :: Lens' RateBasedRule Text+rbrRuleId = lens _rbrRuleId (\ s a -> s{_rbrRuleId = a});++-- | The @Predicates@ object contains one @Predicate@ element for each 'ByteMatchSet' , 'IPSet' , or 'SqlInjectionMatchSet' object that you want to include in a @RateBasedRule@ .+rbrMatchPredicates :: Lens' RateBasedRule [Predicate]+rbrMatchPredicates = lens _rbrMatchPredicates (\ s a -> s{_rbrMatchPredicates = a}) . _Coerce;++-- | The field that AWS WAF uses to determine if requests are likely arriving from single source and thus subject to rate monitoring. The only valid value for @RateKey@ is @IP@ . @IP@ indicates that requests arriving from the same IP address are subject to the @RateLimit@ that is specified in the @RateBasedRule@ .+rbrRateKey :: Lens' RateBasedRule RateKey+rbrRateKey = lens _rbrRateKey (\ s a -> s{_rbrRateKey = a});++-- | The maximum number of requests, which have an identical value in the field specified by the @RateKey@ , allowed in a five-minute period. If the number of requests exceeds the @RateLimit@ and the other predicates specified in the rule are also met, AWS WAF triggers the action that is specified for this rule.+rbrRateLimit :: Lens' RateBasedRule Natural+rbrRateLimit = lens _rbrRateLimit (\ s a -> s{_rbrRateLimit = a}) . _Nat;++instance FromJSON RateBasedRule where+ parseJSON+ = withObject "RateBasedRule"+ (\ x ->+ RateBasedRule' <$>+ (x .:? "MetricName") <*> (x .:? "Name") <*>+ (x .: "RuleId")+ <*> (x .:? "MatchPredicates" .!= mempty)+ <*> (x .: "RateKey")+ <*> (x .: "RateLimit"))++instance Hashable RateBasedRule where++instance NFData RateBasedRule where++-- | In a 'GetRegexMatchSet' request, @RegexMatchSet@ is a complex type that contains the @RegexMatchSetId@ and @Name@ of a @RegexMatchSet@ , and the values that you specified when you updated the @RegexMatchSet@ .+--+--+-- The values are contained in a @RegexMatchTuple@ object, which specify the parts of web requests that you want AWS WAF to inspect and the values that you want AWS WAF to search for. If a @RegexMatchSet@ contains more than one @RegexMatchTuple@ object, a request needs to match the settings in only one @ByteMatchTuple@ to be considered a match.+--+--+-- /See:/ 'regexMatchSet' smart constructor.+data RegexMatchSet = RegexMatchSet'+ { _rmsName :: !(Maybe Text)+ , _rmsRegexMatchTuples :: !(Maybe [RegexMatchTuple])+ , _rmsRegexMatchSetId :: !(Maybe Text)+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'RegexMatchSet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rmsName' - A friendly name or description of the 'RegexMatchSet' . You can't change @Name@ after you create a @RegexMatchSet@ .+--+-- * 'rmsRegexMatchTuples' - Contains an array of 'RegexMatchTuple' objects. Each @RegexMatchTuple@ object contains: * The part of a web request that you want AWS WAF to inspect, such as a query string or the value of the @User-Agent@ header. * The identifier of the pattern (a regular expression) that you want AWS WAF to look for. For more information, see 'RegexPatternSet' . * Whether to perform any conversions on the request, such as converting it to lowercase, before inspecting it for the specified string.+--+-- * 'rmsRegexMatchSetId' - The @RegexMatchSetId@ for a @RegexMatchSet@ . You use @RegexMatchSetId@ to get information about a @RegexMatchSet@ (see 'GetRegexMatchSet' ), update a @RegexMatchSet@ (see 'UpdateRegexMatchSet' ), insert a @RegexMatchSet@ into a @Rule@ or delete one from a @Rule@ (see 'UpdateRule' ), and delete a @RegexMatchSet@ from AWS WAF (see 'DeleteRegexMatchSet' ). @RegexMatchSetId@ is returned by 'CreateRegexMatchSet' and by 'ListRegexMatchSets' .+regexMatchSet+ :: RegexMatchSet+regexMatchSet =+ RegexMatchSet'+ { _rmsName = Nothing+ , _rmsRegexMatchTuples = Nothing+ , _rmsRegexMatchSetId = Nothing+ }+++-- | A friendly name or description of the 'RegexMatchSet' . You can't change @Name@ after you create a @RegexMatchSet@ .+rmsName :: Lens' RegexMatchSet (Maybe Text)+rmsName = lens _rmsName (\ s a -> s{_rmsName = a});++-- | Contains an array of 'RegexMatchTuple' objects. Each @RegexMatchTuple@ object contains: * The part of a web request that you want AWS WAF to inspect, such as a query string or the value of the @User-Agent@ header. * The identifier of the pattern (a regular expression) that you want AWS WAF to look for. For more information, see 'RegexPatternSet' . * Whether to perform any conversions on the request, such as converting it to lowercase, before inspecting it for the specified string.+rmsRegexMatchTuples :: Lens' RegexMatchSet [RegexMatchTuple]+rmsRegexMatchTuples = lens _rmsRegexMatchTuples (\ s a -> s{_rmsRegexMatchTuples = a}) . _Default . _Coerce;++-- | The @RegexMatchSetId@ for a @RegexMatchSet@ . You use @RegexMatchSetId@ to get information about a @RegexMatchSet@ (see 'GetRegexMatchSet' ), update a @RegexMatchSet@ (see 'UpdateRegexMatchSet' ), insert a @RegexMatchSet@ into a @Rule@ or delete one from a @Rule@ (see 'UpdateRule' ), and delete a @RegexMatchSet@ from AWS WAF (see 'DeleteRegexMatchSet' ). @RegexMatchSetId@ is returned by 'CreateRegexMatchSet' and by 'ListRegexMatchSets' .+rmsRegexMatchSetId :: Lens' RegexMatchSet (Maybe Text)+rmsRegexMatchSetId = lens _rmsRegexMatchSetId (\ s a -> s{_rmsRegexMatchSetId = a});++instance FromJSON RegexMatchSet where+ parseJSON+ = withObject "RegexMatchSet"+ (\ x ->+ RegexMatchSet' <$>+ (x .:? "Name") <*>+ (x .:? "RegexMatchTuples" .!= mempty)+ <*> (x .:? "RegexMatchSetId"))++instance Hashable RegexMatchSet where++instance NFData RegexMatchSet where++-- | Returned by 'ListRegexMatchSets' . Each @RegexMatchSetSummary@ object includes the @Name@ and @RegexMatchSetId@ for one 'RegexMatchSet' .+--+--+--+-- /See:/ 'regexMatchSetSummary' smart constructor.+data RegexMatchSetSummary = RegexMatchSetSummary'+ { _rmssRegexMatchSetId :: !Text+ , _rmssName :: !Text+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'RegexMatchSetSummary' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rmssRegexMatchSetId' - The @RegexMatchSetId@ for a @RegexMatchSet@ . You use @RegexMatchSetId@ to get information about a @RegexMatchSet@ , update a @RegexMatchSet@ , remove a @RegexMatchSet@ from a @Rule@ , and delete a @RegexMatchSet@ from AWS WAF. @RegexMatchSetId@ is returned by 'CreateRegexMatchSet' and by 'ListRegexMatchSets' .+--+-- * 'rmssName' - A friendly name or description of the 'RegexMatchSet' . You can't change @Name@ after you create a @RegexMatchSet@ .+regexMatchSetSummary+ :: Text -- ^ 'rmssRegexMatchSetId'+ -> Text -- ^ 'rmssName'+ -> RegexMatchSetSummary+regexMatchSetSummary pRegexMatchSetId_ pName_ =+ RegexMatchSetSummary'+ {_rmssRegexMatchSetId = pRegexMatchSetId_, _rmssName = pName_}+++-- | The @RegexMatchSetId@ for a @RegexMatchSet@ . You use @RegexMatchSetId@ to get information about a @RegexMatchSet@ , update a @RegexMatchSet@ , remove a @RegexMatchSet@ from a @Rule@ , and delete a @RegexMatchSet@ from AWS WAF. @RegexMatchSetId@ is returned by 'CreateRegexMatchSet' and by 'ListRegexMatchSets' .+rmssRegexMatchSetId :: Lens' RegexMatchSetSummary Text+rmssRegexMatchSetId = lens _rmssRegexMatchSetId (\ s a -> s{_rmssRegexMatchSetId = a});++-- | A friendly name or description of the 'RegexMatchSet' . You can't change @Name@ after you create a @RegexMatchSet@ .+rmssName :: Lens' RegexMatchSetSummary Text+rmssName = lens _rmssName (\ s a -> s{_rmssName = a});++instance FromJSON RegexMatchSetSummary where+ parseJSON+ = withObject "RegexMatchSetSummary"+ (\ x ->+ RegexMatchSetSummary' <$>+ (x .: "RegexMatchSetId") <*> (x .: "Name"))++instance Hashable RegexMatchSetSummary where++instance NFData RegexMatchSetSummary where++-- | In an 'UpdateRegexMatchSet' request, @RegexMatchSetUpdate@ specifies whether to insert or delete a 'RegexMatchTuple' and includes the settings for the @RegexMatchTuple@ .+--+--+--+-- /See:/ 'regexMatchSetUpdate' smart constructor.+data RegexMatchSetUpdate = RegexMatchSetUpdate'+ { _rmsuAction :: !ChangeAction+ , _rmsuRegexMatchTuple :: !RegexMatchTuple+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'RegexMatchSetUpdate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rmsuAction' - Specifies whether to insert or delete a 'RegexMatchTuple' .+--+-- * 'rmsuRegexMatchTuple' - Information about the part of a web request that you want AWS WAF to inspect and the identifier of the regular expression (regex) pattern that you want AWS WAF to search for. If you specify @DELETE@ for the value of @Action@ , the @RegexMatchTuple@ values must exactly match the values in the @RegexMatchTuple@ that you want to delete from the @RegexMatchSet@ .+regexMatchSetUpdate+ :: ChangeAction -- ^ 'rmsuAction'+ -> RegexMatchTuple -- ^ 'rmsuRegexMatchTuple'+ -> RegexMatchSetUpdate+regexMatchSetUpdate pAction_ pRegexMatchTuple_ =+ RegexMatchSetUpdate'+ {_rmsuAction = pAction_, _rmsuRegexMatchTuple = pRegexMatchTuple_}+++-- | Specifies whether to insert or delete a 'RegexMatchTuple' .+rmsuAction :: Lens' RegexMatchSetUpdate ChangeAction+rmsuAction = lens _rmsuAction (\ s a -> s{_rmsuAction = a});++-- | Information about the part of a web request that you want AWS WAF to inspect and the identifier of the regular expression (regex) pattern that you want AWS WAF to search for. If you specify @DELETE@ for the value of @Action@ , the @RegexMatchTuple@ values must exactly match the values in the @RegexMatchTuple@ that you want to delete from the @RegexMatchSet@ .+rmsuRegexMatchTuple :: Lens' RegexMatchSetUpdate RegexMatchTuple+rmsuRegexMatchTuple = lens _rmsuRegexMatchTuple (\ s a -> s{_rmsuRegexMatchTuple = a});++instance Hashable RegexMatchSetUpdate where++instance NFData RegexMatchSetUpdate where++instance ToJSON RegexMatchSetUpdate where+ toJSON RegexMatchSetUpdate'{..}+ = object+ (catMaybes+ [Just ("Action" .= _rmsuAction),+ Just ("RegexMatchTuple" .= _rmsuRegexMatchTuple)])++-- | The regular expression pattern that you want AWS WAF to search for in web requests, the location in requests that you want AWS WAF to search, and other settings. Each @RegexMatchTuple@ object contains:+--+--+-- * The part of a web request that you want AWS WAF to inspect, such as a query string or the value of the @User-Agent@ header.+--+-- * The identifier of the pattern (a regular expression) that you want AWS WAF to look for. For more information, see 'RegexPatternSet' .+--+-- * Whether to perform any conversions on the request, such as converting it to lowercase, before inspecting it for the specified string.+--+--+--+--+-- /See:/ 'regexMatchTuple' smart constructor.+data RegexMatchTuple = RegexMatchTuple'+ { _rmtFieldToMatch :: !FieldToMatch+ , _rmtTextTransformation :: !TextTransformation+ , _rmtRegexPatternSetId :: !Text+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'RegexMatchTuple' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rmtFieldToMatch' - Specifies where in a web request to look for the @RegexPatternSet@ .+--+-- * 'rmtTextTransformation' - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass AWS WAF. If you specify a transformation, AWS WAF performs the transformation on @RegexPatternSet@ before inspecting a request for a match. __CMD_LINE__ When you're concerned that attackers are injecting an operating system commandline command and using unusual formatting to disguise some or all of the command, use this option to perform the following transformations: * Delete the following characters: \ " ' ^ * Delete spaces before the following characters: / ( * Replace the following characters with a space: , ; * Replace multiple spaces with one space * Convert uppercase letters (A-Z) to lowercase (a-z) __COMPRESS_WHITE_SPACE__ Use this option to replace the following characters with a space character (decimal 32): * \f, formfeed, decimal 12 * \t, tab, decimal 9 * \n, newline, decimal 10 * \r, carriage return, decimal 13 * \v, vertical tab, decimal 11 * non-breaking space, decimal 160 @COMPRESS_WHITE_SPACE@ also replaces multiple spaces with one space. __HTML_ENTITY_DECODE__ Use this option to replace HTML-encoded characters with unencoded characters. @HTML_ENTITY_DECODE@ performs the following operations: * Replaces @(ampersand)quot;@ with @"@ * Replaces @(ampersand)nbsp;@ with a non-breaking space, decimal 160 * Replaces @(ampersand)lt;@ with a "less than" symbol * Replaces @(ampersand)gt;@ with @>@ * Replaces characters that are represented in hexadecimal format, @(ampersand)#xhhhh;@ , with the corresponding characters * Replaces characters that are represented in decimal format, @(ampersand)#nnnn;@ , with the corresponding characters __LOWERCASE__ Use this option to convert uppercase letters (A-Z) to lowercase (a-z). __URL_DECODE__ Use this option to decode a URL-encoded value. __NONE__ Specify @NONE@ if you don't want to perform any text transformations.+--+-- * 'rmtRegexPatternSetId' - The @RegexPatternSetId@ for a @RegexPatternSet@ . You use @RegexPatternSetId@ to get information about a @RegexPatternSet@ (see 'GetRegexPatternSet' ), update a @RegexPatternSet@ (see 'UpdateRegexPatternSet' ), insert a @RegexPatternSet@ into a @RegexMatchSet@ or delete one from a @RegexMatchSet@ (see 'UpdateRegexMatchSet' ), and delete an @RegexPatternSet@ from AWS WAF (see 'DeleteRegexPatternSet' ). @RegexPatternSetId@ is returned by 'CreateRegexPatternSet' and by 'ListRegexPatternSets' .+regexMatchTuple+ :: FieldToMatch -- ^ 'rmtFieldToMatch'+ -> TextTransformation -- ^ 'rmtTextTransformation'+ -> Text -- ^ 'rmtRegexPatternSetId'+ -> RegexMatchTuple+regexMatchTuple pFieldToMatch_ pTextTransformation_ pRegexPatternSetId_ =+ RegexMatchTuple'+ { _rmtFieldToMatch = pFieldToMatch_+ , _rmtTextTransformation = pTextTransformation_+ , _rmtRegexPatternSetId = pRegexPatternSetId_+ }+++-- | Specifies where in a web request to look for the @RegexPatternSet@ .+rmtFieldToMatch :: Lens' RegexMatchTuple FieldToMatch+rmtFieldToMatch = lens _rmtFieldToMatch (\ s a -> s{_rmtFieldToMatch = a});++-- | Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass AWS WAF. If you specify a transformation, AWS WAF performs the transformation on @RegexPatternSet@ before inspecting a request for a match. __CMD_LINE__ When you're concerned that attackers are injecting an operating system commandline command and using unusual formatting to disguise some or all of the command, use this option to perform the following transformations: * Delete the following characters: \ " ' ^ * Delete spaces before the following characters: / ( * Replace the following characters with a space: , ; * Replace multiple spaces with one space * Convert uppercase letters (A-Z) to lowercase (a-z) __COMPRESS_WHITE_SPACE__ Use this option to replace the following characters with a space character (decimal 32): * \f, formfeed, decimal 12 * \t, tab, decimal 9 * \n, newline, decimal 10 * \r, carriage return, decimal 13 * \v, vertical tab, decimal 11 * non-breaking space, decimal 160 @COMPRESS_WHITE_SPACE@ also replaces multiple spaces with one space. __HTML_ENTITY_DECODE__ Use this option to replace HTML-encoded characters with unencoded characters. @HTML_ENTITY_DECODE@ performs the following operations: * Replaces @(ampersand)quot;@ with @"@ * Replaces @(ampersand)nbsp;@ with a non-breaking space, decimal 160 * Replaces @(ampersand)lt;@ with a "less than" symbol * Replaces @(ampersand)gt;@ with @>@ * Replaces characters that are represented in hexadecimal format, @(ampersand)#xhhhh;@ , with the corresponding characters * Replaces characters that are represented in decimal format, @(ampersand)#nnnn;@ , with the corresponding characters __LOWERCASE__ Use this option to convert uppercase letters (A-Z) to lowercase (a-z). __URL_DECODE__ Use this option to decode a URL-encoded value. __NONE__ Specify @NONE@ if you don't want to perform any text transformations.+rmtTextTransformation :: Lens' RegexMatchTuple TextTransformation+rmtTextTransformation = lens _rmtTextTransformation (\ s a -> s{_rmtTextTransformation = a});++-- | The @RegexPatternSetId@ for a @RegexPatternSet@ . You use @RegexPatternSetId@ to get information about a @RegexPatternSet@ (see 'GetRegexPatternSet' ), update a @RegexPatternSet@ (see 'UpdateRegexPatternSet' ), insert a @RegexPatternSet@ into a @RegexMatchSet@ or delete one from a @RegexMatchSet@ (see 'UpdateRegexMatchSet' ), and delete an @RegexPatternSet@ from AWS WAF (see 'DeleteRegexPatternSet' ). @RegexPatternSetId@ is returned by 'CreateRegexPatternSet' and by 'ListRegexPatternSets' .+rmtRegexPatternSetId :: Lens' RegexMatchTuple Text+rmtRegexPatternSetId = lens _rmtRegexPatternSetId (\ s a -> s{_rmtRegexPatternSetId = a});++instance FromJSON RegexMatchTuple where+ parseJSON+ = withObject "RegexMatchTuple"+ (\ x ->+ RegexMatchTuple' <$>+ (x .: "FieldToMatch") <*> (x .: "TextTransformation")+ <*> (x .: "RegexPatternSetId"))++instance Hashable RegexMatchTuple where++instance NFData RegexMatchTuple where++instance ToJSON RegexMatchTuple where+ toJSON RegexMatchTuple'{..}+ = object+ (catMaybes+ [Just ("FieldToMatch" .= _rmtFieldToMatch),+ Just+ ("TextTransformation" .= _rmtTextTransformation),+ Just ("RegexPatternSetId" .= _rmtRegexPatternSetId)])++-- | The @RegexPatternSet@ specifies the regular expression (regex) pattern that you want AWS WAF to search for, such as @B[a@]dB[o0]t@ . You can then configure AWS WAF to reject those requests.+--+--+--+-- /See:/ 'regexPatternSet' smart constructor.+data RegexPatternSet = RegexPatternSet'+ { _rpsName :: !(Maybe Text)+ , _rpsRegexPatternSetId :: !Text+ , _rpsRegexPatternStrings :: ![Text]+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'RegexPatternSet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rpsName' - A friendly name or description of the 'RegexPatternSet' . You can't change @Name@ after you create a @RegexPatternSet@ .+--+-- * 'rpsRegexPatternSetId' - The identifier for the @RegexPatternSet@ . You use @RegexPatternSetId@ to get information about a @RegexPatternSet@ , update a @RegexPatternSet@ , remove a @RegexPatternSet@ from a @RegexMatchSet@ , and delete a @RegexPatternSet@ from AWS WAF. @RegexMatchSetId@ is returned by 'CreateRegexPatternSet' and by 'ListRegexPatternSets' .+--+-- * 'rpsRegexPatternStrings' - Specifies the regular expression (regex) patterns that you want AWS WAF to search for, such as @B[a@]dB[o0]t@ .+regexPatternSet+ :: Text -- ^ 'rpsRegexPatternSetId'+ -> RegexPatternSet+regexPatternSet pRegexPatternSetId_ =+ RegexPatternSet'+ { _rpsName = Nothing+ , _rpsRegexPatternSetId = pRegexPatternSetId_+ , _rpsRegexPatternStrings = mempty+ }+++-- | A friendly name or description of the 'RegexPatternSet' . You can't change @Name@ after you create a @RegexPatternSet@ .+rpsName :: Lens' RegexPatternSet (Maybe Text)+rpsName = lens _rpsName (\ s a -> s{_rpsName = a});++-- | The identifier for the @RegexPatternSet@ . You use @RegexPatternSetId@ to get information about a @RegexPatternSet@ , update a @RegexPatternSet@ , remove a @RegexPatternSet@ from a @RegexMatchSet@ , and delete a @RegexPatternSet@ from AWS WAF. @RegexMatchSetId@ is returned by 'CreateRegexPatternSet' and by 'ListRegexPatternSets' .+rpsRegexPatternSetId :: Lens' RegexPatternSet Text+rpsRegexPatternSetId = lens _rpsRegexPatternSetId (\ s a -> s{_rpsRegexPatternSetId = a});++-- | Specifies the regular expression (regex) patterns that you want AWS WAF to search for, such as @B[a@]dB[o0]t@ .+rpsRegexPatternStrings :: Lens' RegexPatternSet [Text]+rpsRegexPatternStrings = lens _rpsRegexPatternStrings (\ s a -> s{_rpsRegexPatternStrings = a}) . _Coerce;++instance FromJSON RegexPatternSet where+ parseJSON+ = withObject "RegexPatternSet"+ (\ x ->+ RegexPatternSet' <$>+ (x .:? "Name") <*> (x .: "RegexPatternSetId") <*>+ (x .:? "RegexPatternStrings" .!= mempty))++instance Hashable RegexPatternSet where++instance NFData RegexPatternSet where++-- | Returned by 'ListRegexPatternSets' . Each @RegexPatternSetSummary@ object includes the @Name@ and @RegexPatternSetId@ for one 'RegexPatternSet' .+--+--+--+-- /See:/ 'regexPatternSetSummary' smart constructor.+data RegexPatternSetSummary = RegexPatternSetSummary'+ { _rpssRegexPatternSetId :: !Text+ , _rpssName :: !Text+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'RegexPatternSetSummary' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rpssRegexPatternSetId' - The @RegexPatternSetId@ for a @RegexPatternSet@ . You use @RegexPatternSetId@ to get information about a @RegexPatternSet@ , update a @RegexPatternSet@ , remove a @RegexPatternSet@ from a @RegexMatchSet@ , and delete a @RegexPatternSet@ from AWS WAF. @RegexPatternSetId@ is returned by 'CreateRegexPatternSet' and by 'ListRegexPatternSets' .+--+-- * 'rpssName' - A friendly name or description of the 'RegexPatternSet' . You can't change @Name@ after you create a @RegexPatternSet@ .+regexPatternSetSummary+ :: Text -- ^ 'rpssRegexPatternSetId'+ -> Text -- ^ 'rpssName'+ -> RegexPatternSetSummary+regexPatternSetSummary pRegexPatternSetId_ pName_ =+ RegexPatternSetSummary'+ {_rpssRegexPatternSetId = pRegexPatternSetId_, _rpssName = pName_}+++-- | The @RegexPatternSetId@ for a @RegexPatternSet@ . You use @RegexPatternSetId@ to get information about a @RegexPatternSet@ , update a @RegexPatternSet@ , remove a @RegexPatternSet@ from a @RegexMatchSet@ , and delete a @RegexPatternSet@ from AWS WAF. @RegexPatternSetId@ is returned by 'CreateRegexPatternSet' and by 'ListRegexPatternSets' .+rpssRegexPatternSetId :: Lens' RegexPatternSetSummary Text+rpssRegexPatternSetId = lens _rpssRegexPatternSetId (\ s a -> s{_rpssRegexPatternSetId = a});++-- | A friendly name or description of the 'RegexPatternSet' . You can't change @Name@ after you create a @RegexPatternSet@ .+rpssName :: Lens' RegexPatternSetSummary Text+rpssName = lens _rpssName (\ s a -> s{_rpssName = a});++instance FromJSON RegexPatternSetSummary where+ parseJSON+ = withObject "RegexPatternSetSummary"+ (\ x ->+ RegexPatternSetSummary' <$>+ (x .: "RegexPatternSetId") <*> (x .: "Name"))++instance Hashable RegexPatternSetSummary where++instance NFData RegexPatternSetSummary where++-- | In an 'UpdateRegexPatternSet' request, @RegexPatternSetUpdate@ specifies whether to insert or delete a @RegexPatternString@ and includes the settings for the @RegexPatternString@ .+--+--+--+-- /See:/ 'regexPatternSetUpdate' smart constructor.+data RegexPatternSetUpdate = RegexPatternSetUpdate'+ { _rpsuAction :: !ChangeAction+ , _rpsuRegexPatternString :: !Text+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'RegexPatternSetUpdate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rpsuAction' - Specifies whether to insert or delete a @RegexPatternString@ .+--+-- * 'rpsuRegexPatternString' - Specifies the regular expression (regex) pattern that you want AWS WAF to search for, such as @B[a@]dB[o0]t@ .+regexPatternSetUpdate+ :: ChangeAction -- ^ 'rpsuAction'+ -> Text -- ^ 'rpsuRegexPatternString'+ -> RegexPatternSetUpdate+regexPatternSetUpdate pAction_ pRegexPatternString_ =+ RegexPatternSetUpdate'+ {_rpsuAction = pAction_, _rpsuRegexPatternString = pRegexPatternString_}+++-- | Specifies whether to insert or delete a @RegexPatternString@ .+rpsuAction :: Lens' RegexPatternSetUpdate ChangeAction+rpsuAction = lens _rpsuAction (\ s a -> s{_rpsuAction = a});++-- | Specifies the regular expression (regex) pattern that you want AWS WAF to search for, such as @B[a@]dB[o0]t@ .+rpsuRegexPatternString :: Lens' RegexPatternSetUpdate Text+rpsuRegexPatternString = lens _rpsuRegexPatternString (\ s a -> s{_rpsuRegexPatternString = a});++instance Hashable RegexPatternSetUpdate where++instance NFData RegexPatternSetUpdate where++instance ToJSON RegexPatternSetUpdate where+ toJSON RegexPatternSetUpdate'{..}+ = object+ (catMaybes+ [Just ("Action" .= _rpsuAction),+ Just+ ("RegexPatternString" .= _rpsuRegexPatternString)])++-- | A combination of 'ByteMatchSet' , 'IPSet' , and/or 'SqlInjectionMatchSet' objects that identify the web requests that you want to allow, block, or count. For example, you might create a @Rule@ that includes the following predicates:+--+--+-- * An @IPSet@ that causes AWS WAF to search for web requests that originate from the IP address @192.0.2.44@+--+-- * A @ByteMatchSet@ that causes AWS WAF to search for web requests for which the value of the @User-Agent@ header is @BadBot@ .+--+--+--+-- To match the settings in this @Rule@ , a request must originate from @192.0.2.44@ AND include a @User-Agent@ header for which the value is @BadBot@ .+--+--+-- /See:/ 'rule' smart constructor.+data Rule = Rule'+ { _rMetricName :: !(Maybe Text)+ , _rName :: !(Maybe Text)+ , _rRuleId :: !Text+ , _rPredicates :: ![Predicate]+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Rule' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rMetricName' - A friendly name or description for the metrics for this @Rule@ . The name can contain only alphanumeric characters (A-Z, a-z, 0-9); the name can't contain whitespace. You can't change @MetricName@ after you create the @Rule@ .+--+-- * 'rName' - The friendly name or description for the @Rule@ . You can't change the name of a @Rule@ after you create it.+--+-- * 'rRuleId' - A unique identifier for a @Rule@ . You use @RuleId@ to get more information about a @Rule@ (see 'GetRule' ), update a @Rule@ (see 'UpdateRule' ), insert a @Rule@ into a @WebACL@ or delete a one from a @WebACL@ (see 'UpdateWebACL' ), or delete a @Rule@ from AWS WAF (see 'DeleteRule' ). @RuleId@ is returned by 'CreateRule' and by 'ListRules' .+--+-- * 'rPredicates' - The @Predicates@ object contains one @Predicate@ element for each 'ByteMatchSet' , 'IPSet' , or 'SqlInjectionMatchSet' object that you want to include in a @Rule@ .+rule+ :: Text -- ^ 'rRuleId'+ -> Rule+rule pRuleId_ =+ Rule'+ { _rMetricName = Nothing+ , _rName = Nothing+ , _rRuleId = pRuleId_+ , _rPredicates = mempty+ }+++-- | A friendly name or description for the metrics for this @Rule@ . The name can contain only alphanumeric characters (A-Z, a-z, 0-9); the name can't contain whitespace. You can't change @MetricName@ after you create the @Rule@ .+rMetricName :: Lens' Rule (Maybe Text)+rMetricName = lens _rMetricName (\ s a -> s{_rMetricName = a});++-- | The friendly name or description for the @Rule@ . You can't change the name of a @Rule@ after you create it.+rName :: Lens' Rule (Maybe Text)+rName = lens _rName (\ s a -> s{_rName = a});++-- | A unique identifier for a @Rule@ . You use @RuleId@ to get more information about a @Rule@ (see 'GetRule' ), update a @Rule@ (see 'UpdateRule' ), insert a @Rule@ into a @WebACL@ or delete a one from a @WebACL@ (see 'UpdateWebACL' ), or delete a @Rule@ from AWS WAF (see 'DeleteRule' ). @RuleId@ is returned by 'CreateRule' and by 'ListRules' .+rRuleId :: Lens' Rule Text+rRuleId = lens _rRuleId (\ s a -> s{_rRuleId = a});++-- | The @Predicates@ object contains one @Predicate@ element for each 'ByteMatchSet' , 'IPSet' , or 'SqlInjectionMatchSet' object that you want to include in a @Rule@ .+rPredicates :: Lens' Rule [Predicate]+rPredicates = lens _rPredicates (\ s a -> s{_rPredicates = a}) . _Coerce;++instance FromJSON Rule where+ parseJSON+ = withObject "Rule"+ (\ x ->+ Rule' <$>+ (x .:? "MetricName") <*> (x .:? "Name") <*>+ (x .: "RuleId")+ <*> (x .:? "Predicates" .!= mempty))++instance Hashable Rule where++instance NFData Rule where++-- | Contains the identifier and the friendly name or description of the @Rule@ .+--+--+--+-- /See:/ 'ruleSummary' smart constructor.+data RuleSummary = RuleSummary'+ { _rsRuleId :: !Text+ , _rsName :: !Text+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'RuleSummary' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rsRuleId' - A unique identifier for a @Rule@ . You use @RuleId@ to get more information about a @Rule@ (see 'GetRule' ), update a @Rule@ (see 'UpdateRule' ), insert a @Rule@ into a @WebACL@ or delete one from a @WebACL@ (see 'UpdateWebACL' ), or delete a @Rule@ from AWS WAF (see 'DeleteRule' ). @RuleId@ is returned by 'CreateRule' and by 'ListRules' .+--+-- * 'rsName' - A friendly name or description of the 'Rule' . You can't change the name of a @Rule@ after you create it.+ruleSummary+ :: Text -- ^ 'rsRuleId'+ -> Text -- ^ 'rsName'+ -> RuleSummary+ruleSummary pRuleId_ pName_ =+ RuleSummary' {_rsRuleId = pRuleId_, _rsName = pName_}+++-- | A unique identifier for a @Rule@ . You use @RuleId@ to get more information about a @Rule@ (see 'GetRule' ), update a @Rule@ (see 'UpdateRule' ), insert a @Rule@ into a @WebACL@ or delete one from a @WebACL@ (see 'UpdateWebACL' ), or delete a @Rule@ from AWS WAF (see 'DeleteRule' ). @RuleId@ is returned by 'CreateRule' and by 'ListRules' .+rsRuleId :: Lens' RuleSummary Text+rsRuleId = lens _rsRuleId (\ s a -> s{_rsRuleId = a});++-- | A friendly name or description of the 'Rule' . You can't change the name of a @Rule@ after you create it.+rsName :: Lens' RuleSummary Text+rsName = lens _rsName (\ s a -> s{_rsName = a});++instance FromJSON RuleSummary where+ parseJSON+ = withObject "RuleSummary"+ (\ x ->+ RuleSummary' <$> (x .: "RuleId") <*> (x .: "Name"))++instance Hashable RuleSummary where++instance NFData RuleSummary where++-- | Specifies a @Predicate@ (such as an @IPSet@ ) and indicates whether you want to add it to a @Rule@ or delete it from a @Rule@ .+--+--+--+-- /See:/ 'ruleUpdate' smart constructor.+data RuleUpdate = RuleUpdate'+ { _ruAction :: !ChangeAction+ , _ruPredicate :: !Predicate+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'RuleUpdate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ruAction' - Specify @INSERT@ to add a @Predicate@ to a @Rule@ . Use @DELETE@ to remove a @Predicate@ from a @Rule@ .+--+-- * 'ruPredicate' - The ID of the @Predicate@ (such as an @IPSet@ ) that you want to add to a @Rule@ .+ruleUpdate+ :: ChangeAction -- ^ 'ruAction'+ -> Predicate -- ^ 'ruPredicate'+ -> RuleUpdate+ruleUpdate pAction_ pPredicate_ =+ RuleUpdate' {_ruAction = pAction_, _ruPredicate = pPredicate_}+++-- | Specify @INSERT@ to add a @Predicate@ to a @Rule@ . Use @DELETE@ to remove a @Predicate@ from a @Rule@ .+ruAction :: Lens' RuleUpdate ChangeAction+ruAction = lens _ruAction (\ s a -> s{_ruAction = a});++-- | The ID of the @Predicate@ (such as an @IPSet@ ) that you want to add to a @Rule@ .+ruPredicate :: Lens' RuleUpdate Predicate+ruPredicate = lens _ruPredicate (\ s a -> s{_ruPredicate = a});++instance Hashable RuleUpdate where++instance NFData RuleUpdate where++instance ToJSON RuleUpdate where+ toJSON RuleUpdate'{..}+ = object+ (catMaybes+ [Just ("Action" .= _ruAction),+ Just ("Predicate" .= _ruPredicate)])++-- | The response from a 'GetSampledRequests' request includes a @SampledHTTPRequests@ complex type that appears as @SampledRequests@ in the response syntax. @SampledHTTPRequests@ contains one @SampledHTTPRequest@ object for each web request that is returned by @GetSampledRequests@ .+--+--+--+-- /See:/ 'sampledHTTPRequest' smart constructor.+data SampledHTTPRequest = SampledHTTPRequest'+ { _shttprAction :: !(Maybe Text)+ , _shttprTimestamp :: !(Maybe POSIX)+ , _shttprRequest :: !HTTPRequest+ , _shttprWeight :: !Nat+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'SampledHTTPRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'shttprAction' - The action for the @Rule@ that the request matched: @ALLOW@ , @BLOCK@ , or @COUNT@ .+--+-- * 'shttprTimestamp' - The time at which AWS WAF received the request from your AWS resource, in Unix time format (in seconds).+--+-- * 'shttprRequest' - A complex type that contains detailed information about the request.+--+-- * 'shttprWeight' - A value that indicates how one result in the response relates proportionally to other results in the response. A result that has a weight of @2@ represents roughly twice as many CloudFront web requests as a result that has a weight of @1@ .+sampledHTTPRequest+ :: HTTPRequest -- ^ 'shttprRequest'+ -> Natural -- ^ 'shttprWeight'+ -> SampledHTTPRequest+sampledHTTPRequest pRequest_ pWeight_ =+ SampledHTTPRequest'+ { _shttprAction = Nothing+ , _shttprTimestamp = Nothing+ , _shttprRequest = pRequest_+ , _shttprWeight = _Nat # pWeight_+ }+++-- | The action for the @Rule@ that the request matched: @ALLOW@ , @BLOCK@ , or @COUNT@ .+shttprAction :: Lens' SampledHTTPRequest (Maybe Text)+shttprAction = lens _shttprAction (\ s a -> s{_shttprAction = a});++-- | The time at which AWS WAF received the request from your AWS resource, in Unix time format (in seconds).+shttprTimestamp :: Lens' SampledHTTPRequest (Maybe UTCTime)+shttprTimestamp = lens _shttprTimestamp (\ s a -> s{_shttprTimestamp = a}) . mapping _Time;++-- | A complex type that contains detailed information about the request.+shttprRequest :: Lens' SampledHTTPRequest HTTPRequest+shttprRequest = lens _shttprRequest (\ s a -> s{_shttprRequest = a});++-- | A value that indicates how one result in the response relates proportionally to other results in the response. A result that has a weight of @2@ represents roughly twice as many CloudFront web requests as a result that has a weight of @1@ .+shttprWeight :: Lens' SampledHTTPRequest Natural+shttprWeight = lens _shttprWeight (\ s a -> s{_shttprWeight = a}) . _Nat;++instance FromJSON SampledHTTPRequest where+ parseJSON+ = withObject "SampledHTTPRequest"+ (\ x ->+ SampledHTTPRequest' <$>+ (x .:? "Action") <*> (x .:? "Timestamp") <*>+ (x .: "Request")+ <*> (x .: "Weight"))++instance Hashable SampledHTTPRequest where++instance NFData SampledHTTPRequest where++-- | Specifies a constraint on the size of a part of the web request. AWS WAF uses the @Size@ , @ComparisonOperator@ , and @FieldToMatch@ to build an expression in the form of "@Size@ @ComparisonOperator@ size in bytes of @FieldToMatch@ ". If that expression is true, the @SizeConstraint@ is considered to match.+--+--+--+-- /See:/ 'sizeConstraint' smart constructor.+data SizeConstraint = SizeConstraint'+ { _scFieldToMatch :: !FieldToMatch+ , _scTextTransformation :: !TextTransformation+ , _scComparisonOperator :: !ComparisonOperator+ , _scSize :: !Nat+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'SizeConstraint' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'scFieldToMatch' - Specifies where in a web request to look for the size constraint.+--+-- * 'scTextTransformation' - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass AWS WAF. If you specify a transformation, AWS WAF performs the transformation on @FieldToMatch@ before inspecting a request for a match. Note that if you choose @BODY@ for the value of @Type@ , you must choose @NONE@ for @TextTransformation@ because CloudFront forwards only the first 8192 bytes for inspection. __NONE__ Specify @NONE@ if you don't want to perform any text transformations. __CMD_LINE__ When you're concerned that attackers are injecting an operating system command line command and using unusual formatting to disguise some or all of the command, use this option to perform the following transformations: * Delete the following characters: \ " ' ^ * Delete spaces before the following characters: / ( * Replace the following characters with a space: , ; * Replace multiple spaces with one space * Convert uppercase letters (A-Z) to lowercase (a-z) __COMPRESS_WHITE_SPACE__ Use this option to replace the following characters with a space character (decimal 32): * \f, formfeed, decimal 12 * \t, tab, decimal 9 * \n, newline, decimal 10 * \r, carriage return, decimal 13 * \v, vertical tab, decimal 11 * non-breaking space, decimal 160 @COMPRESS_WHITE_SPACE@ also replaces multiple spaces with one space. __HTML_ENTITY_DECODE__ Use this option to replace HTML-encoded characters with unencoded characters. @HTML_ENTITY_DECODE@ performs the following operations: * Replaces @(ampersand)quot;@ with @"@ * Replaces @(ampersand)nbsp;@ with a non-breaking space, decimal 160 * Replaces @(ampersand)lt;@ with a "less than" symbol * Replaces @(ampersand)gt;@ with @>@ * Replaces characters that are represented in hexadecimal format, @(ampersand)#xhhhh;@ , with the corresponding characters * Replaces characters that are represented in decimal format, @(ampersand)#nnnn;@ , with the corresponding characters __LOWERCASE__ Use this option to convert uppercase letters (A-Z) to lowercase (a-z). __URL_DECODE__ Use this option to decode a URL-encoded value.+--+-- * 'scComparisonOperator' - The type of comparison you want AWS WAF to perform. AWS WAF uses this in combination with the provided @Size@ and @FieldToMatch@ to build an expression in the form of "@Size@ @ComparisonOperator@ size in bytes of @FieldToMatch@ ". If that expression is true, the @SizeConstraint@ is considered to match. __EQ__ : Used to test if the @Size@ is equal to the size of the @FieldToMatch@ __NE__ : Used to test if the @Size@ is not equal to the size of the @FieldToMatch@ __LE__ : Used to test if the @Size@ is less than or equal to the size of the @FieldToMatch@ __LT__ : Used to test if the @Size@ is strictly less than the size of the @FieldToMatch@ __GE__ : Used to test if the @Size@ is greater than or equal to the size of the @FieldToMatch@ __GT__ : Used to test if the @Size@ is strictly greater than the size of the @FieldToMatch@+--+-- * 'scSize' - The size in bytes that you want AWS WAF to compare against the size of the specified @FieldToMatch@ . AWS WAF uses this in combination with @ComparisonOperator@ and @FieldToMatch@ to build an expression in the form of "@Size@ @ComparisonOperator@ size in bytes of @FieldToMatch@ ". If that expression is true, the @SizeConstraint@ is considered to match. Valid values for size are 0 - 21474836480 bytes (0 - 20 GB). If you specify @URI@ for the value of @Type@ , the / in the URI counts as one character. For example, the URI @/logo.jpg@ is nine characters long.+sizeConstraint+ :: FieldToMatch -- ^ 'scFieldToMatch'+ -> TextTransformation -- ^ 'scTextTransformation'+ -> ComparisonOperator -- ^ 'scComparisonOperator'+ -> Natural -- ^ 'scSize'+ -> SizeConstraint+sizeConstraint pFieldToMatch_ pTextTransformation_ pComparisonOperator_ pSize_ =+ SizeConstraint'+ { _scFieldToMatch = pFieldToMatch_+ , _scTextTransformation = pTextTransformation_+ , _scComparisonOperator = pComparisonOperator_+ , _scSize = _Nat # pSize_+ }+++-- | Specifies where in a web request to look for the size constraint.+scFieldToMatch :: Lens' SizeConstraint FieldToMatch+scFieldToMatch = lens _scFieldToMatch (\ s a -> s{_scFieldToMatch = a});++-- | Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass AWS WAF. If you specify a transformation, AWS WAF performs the transformation on @FieldToMatch@ before inspecting a request for a match. Note that if you choose @BODY@ for the value of @Type@ , you must choose @NONE@ for @TextTransformation@ because CloudFront forwards only the first 8192 bytes for inspection. __NONE__ Specify @NONE@ if you don't want to perform any text transformations. __CMD_LINE__ When you're concerned that attackers are injecting an operating system command line command and using unusual formatting to disguise some or all of the command, use this option to perform the following transformations: * Delete the following characters: \ " ' ^ * Delete spaces before the following characters: / ( * Replace the following characters with a space: , ; * Replace multiple spaces with one space * Convert uppercase letters (A-Z) to lowercase (a-z) __COMPRESS_WHITE_SPACE__ Use this option to replace the following characters with a space character (decimal 32): * \f, formfeed, decimal 12 * \t, tab, decimal 9 * \n, newline, decimal 10 * \r, carriage return, decimal 13 * \v, vertical tab, decimal 11 * non-breaking space, decimal 160 @COMPRESS_WHITE_SPACE@ also replaces multiple spaces with one space. __HTML_ENTITY_DECODE__ Use this option to replace HTML-encoded characters with unencoded characters. @HTML_ENTITY_DECODE@ performs the following operations: * Replaces @(ampersand)quot;@ with @"@ * Replaces @(ampersand)nbsp;@ with a non-breaking space, decimal 160 * Replaces @(ampersand)lt;@ with a "less than" symbol * Replaces @(ampersand)gt;@ with @>@ * Replaces characters that are represented in hexadecimal format, @(ampersand)#xhhhh;@ , with the corresponding characters * Replaces characters that are represented in decimal format, @(ampersand)#nnnn;@ , with the corresponding characters __LOWERCASE__ Use this option to convert uppercase letters (A-Z) to lowercase (a-z). __URL_DECODE__ Use this option to decode a URL-encoded value.+scTextTransformation :: Lens' SizeConstraint TextTransformation+scTextTransformation = lens _scTextTransformation (\ s a -> s{_scTextTransformation = a});++-- | The type of comparison you want AWS WAF to perform. AWS WAF uses this in combination with the provided @Size@ and @FieldToMatch@ to build an expression in the form of "@Size@ @ComparisonOperator@ size in bytes of @FieldToMatch@ ". If that expression is true, the @SizeConstraint@ is considered to match. __EQ__ : Used to test if the @Size@ is equal to the size of the @FieldToMatch@ __NE__ : Used to test if the @Size@ is not equal to the size of the @FieldToMatch@ __LE__ : Used to test if the @Size@ is less than or equal to the size of the @FieldToMatch@ __LT__ : Used to test if the @Size@ is strictly less than the size of the @FieldToMatch@ __GE__ : Used to test if the @Size@ is greater than or equal to the size of the @FieldToMatch@ __GT__ : Used to test if the @Size@ is strictly greater than the size of the @FieldToMatch@+scComparisonOperator :: Lens' SizeConstraint ComparisonOperator+scComparisonOperator = lens _scComparisonOperator (\ s a -> s{_scComparisonOperator = a});++-- | The size in bytes that you want AWS WAF to compare against the size of the specified @FieldToMatch@ . AWS WAF uses this in combination with @ComparisonOperator@ and @FieldToMatch@ to build an expression in the form of "@Size@ @ComparisonOperator@ size in bytes of @FieldToMatch@ ". If that expression is true, the @SizeConstraint@ is considered to match. Valid values for size are 0 - 21474836480 bytes (0 - 20 GB). If you specify @URI@ for the value of @Type@ , the / in the URI counts as one character. For example, the URI @/logo.jpg@ is nine characters long.+scSize :: Lens' SizeConstraint Natural+scSize = lens _scSize (\ s a -> s{_scSize = a}) . _Nat;++instance FromJSON SizeConstraint where+ parseJSON+ = withObject "SizeConstraint"+ (\ x ->+ SizeConstraint' <$>+ (x .: "FieldToMatch") <*> (x .: "TextTransformation")+ <*> (x .: "ComparisonOperator")+ <*> (x .: "Size"))++instance Hashable SizeConstraint where++instance NFData SizeConstraint where++instance ToJSON SizeConstraint where+ toJSON SizeConstraint'{..}+ = object+ (catMaybes+ [Just ("FieldToMatch" .= _scFieldToMatch),+ Just ("TextTransformation" .= _scTextTransformation),+ Just ("ComparisonOperator" .= _scComparisonOperator),+ Just ("Size" .= _scSize)])++-- | A complex type that contains @SizeConstraint@ objects, which specify the parts of web requests that you want AWS WAF to inspect the size of. If a @SizeConstraintSet@ contains more than one @SizeConstraint@ object, a request only needs to match one constraint to be considered a match.+--+--+--+-- /See:/ 'sizeConstraintSet' smart constructor.+data SizeConstraintSet = SizeConstraintSet'+ { _scsName :: !(Maybe Text)+ , _scsSizeConstraintSetId :: !Text+ , _scsSizeConstraints :: ![SizeConstraint]+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'SizeConstraintSet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'scsName' - The name, if any, of the @SizeConstraintSet@ .+--+-- * 'scsSizeConstraintSetId' - A unique identifier for a @SizeConstraintSet@ . You use @SizeConstraintSetId@ to get information about a @SizeConstraintSet@ (see 'GetSizeConstraintSet' ), update a @SizeConstraintSet@ (see 'UpdateSizeConstraintSet' ), insert a @SizeConstraintSet@ into a @Rule@ or delete one from a @Rule@ (see 'UpdateRule' ), and delete a @SizeConstraintSet@ from AWS WAF (see 'DeleteSizeConstraintSet' ). @SizeConstraintSetId@ is returned by 'CreateSizeConstraintSet' and by 'ListSizeConstraintSets' .+--+-- * 'scsSizeConstraints' - Specifies the parts of web requests that you want to inspect the size of.+sizeConstraintSet+ :: Text -- ^ 'scsSizeConstraintSetId'+ -> SizeConstraintSet+sizeConstraintSet pSizeConstraintSetId_ =+ SizeConstraintSet'+ { _scsName = Nothing+ , _scsSizeConstraintSetId = pSizeConstraintSetId_+ , _scsSizeConstraints = mempty+ }+++-- | The name, if any, of the @SizeConstraintSet@ .+scsName :: Lens' SizeConstraintSet (Maybe Text)+scsName = lens _scsName (\ s a -> s{_scsName = a});++-- | A unique identifier for a @SizeConstraintSet@ . You use @SizeConstraintSetId@ to get information about a @SizeConstraintSet@ (see 'GetSizeConstraintSet' ), update a @SizeConstraintSet@ (see 'UpdateSizeConstraintSet' ), insert a @SizeConstraintSet@ into a @Rule@ or delete one from a @Rule@ (see 'UpdateRule' ), and delete a @SizeConstraintSet@ from AWS WAF (see 'DeleteSizeConstraintSet' ). @SizeConstraintSetId@ is returned by 'CreateSizeConstraintSet' and by 'ListSizeConstraintSets' .+scsSizeConstraintSetId :: Lens' SizeConstraintSet Text+scsSizeConstraintSetId = lens _scsSizeConstraintSetId (\ s a -> s{_scsSizeConstraintSetId = a});++-- | Specifies the parts of web requests that you want to inspect the size of.+scsSizeConstraints :: Lens' SizeConstraintSet [SizeConstraint]+scsSizeConstraints = lens _scsSizeConstraints (\ s a -> s{_scsSizeConstraints = a}) . _Coerce;++instance FromJSON SizeConstraintSet where+ parseJSON+ = withObject "SizeConstraintSet"+ (\ x ->+ SizeConstraintSet' <$>+ (x .:? "Name") <*> (x .: "SizeConstraintSetId") <*>+ (x .:? "SizeConstraints" .!= mempty))++instance Hashable SizeConstraintSet where++instance NFData SizeConstraintSet where++-- | The @Id@ and @Name@ of a @SizeConstraintSet@ .+--+--+--+-- /See:/ 'sizeConstraintSetSummary' smart constructor.+data SizeConstraintSetSummary = SizeConstraintSetSummary'+ { _scssSizeConstraintSetId :: !Text+ , _scssName :: !Text+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'SizeConstraintSetSummary' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'scssSizeConstraintSetId' - A unique identifier for a @SizeConstraintSet@ . You use @SizeConstraintSetId@ to get information about a @SizeConstraintSet@ (see 'GetSizeConstraintSet' ), update a @SizeConstraintSet@ (see 'UpdateSizeConstraintSet' ), insert a @SizeConstraintSet@ into a @Rule@ or delete one from a @Rule@ (see 'UpdateRule' ), and delete a @SizeConstraintSet@ from AWS WAF (see 'DeleteSizeConstraintSet' ). @SizeConstraintSetId@ is returned by 'CreateSizeConstraintSet' and by 'ListSizeConstraintSets' .+--+-- * 'scssName' - The name of the @SizeConstraintSet@ , if any.+sizeConstraintSetSummary+ :: Text -- ^ 'scssSizeConstraintSetId'+ -> Text -- ^ 'scssName'+ -> SizeConstraintSetSummary+sizeConstraintSetSummary pSizeConstraintSetId_ pName_ =+ SizeConstraintSetSummary'+ {_scssSizeConstraintSetId = pSizeConstraintSetId_, _scssName = pName_}+++-- | A unique identifier for a @SizeConstraintSet@ . You use @SizeConstraintSetId@ to get information about a @SizeConstraintSet@ (see 'GetSizeConstraintSet' ), update a @SizeConstraintSet@ (see 'UpdateSizeConstraintSet' ), insert a @SizeConstraintSet@ into a @Rule@ or delete one from a @Rule@ (see 'UpdateRule' ), and delete a @SizeConstraintSet@ from AWS WAF (see 'DeleteSizeConstraintSet' ). @SizeConstraintSetId@ is returned by 'CreateSizeConstraintSet' and by 'ListSizeConstraintSets' .+scssSizeConstraintSetId :: Lens' SizeConstraintSetSummary Text+scssSizeConstraintSetId = lens _scssSizeConstraintSetId (\ s a -> s{_scssSizeConstraintSetId = a});++-- | The name of the @SizeConstraintSet@ , if any.+scssName :: Lens' SizeConstraintSetSummary Text+scssName = lens _scssName (\ s a -> s{_scssName = a});++instance FromJSON SizeConstraintSetSummary where+ parseJSON+ = withObject "SizeConstraintSetSummary"+ (\ x ->+ SizeConstraintSetSummary' <$>+ (x .: "SizeConstraintSetId") <*> (x .: "Name"))++instance Hashable SizeConstraintSetSummary where++instance NFData SizeConstraintSetSummary where++-- | Specifies the part of a web request that you want to inspect the size of and indicates whether you want to add the specification to a 'SizeConstraintSet' or delete it from a @SizeConstraintSet@ .+--+--+--+-- /See:/ 'sizeConstraintSetUpdate' smart constructor.+data SizeConstraintSetUpdate = SizeConstraintSetUpdate'+ { _scsuAction :: !ChangeAction+ , _scsuSizeConstraint :: !SizeConstraint+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'SizeConstraintSetUpdate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'scsuAction' - Specify @INSERT@ to add a 'SizeConstraintSetUpdate' to a 'SizeConstraintSet' . Use @DELETE@ to remove a @SizeConstraintSetUpdate@ from a @SizeConstraintSet@ .+--+-- * 'scsuSizeConstraint' - Specifies a constraint on the size of a part of the web request. AWS WAF uses the @Size@ , @ComparisonOperator@ , and @FieldToMatch@ to build an expression in the form of "@Size@ @ComparisonOperator@ size in bytes of @FieldToMatch@ ". If that expression is true, the @SizeConstraint@ is considered to match.+sizeConstraintSetUpdate+ :: ChangeAction -- ^ 'scsuAction'+ -> SizeConstraint -- ^ 'scsuSizeConstraint'+ -> SizeConstraintSetUpdate+sizeConstraintSetUpdate pAction_ pSizeConstraint_ =+ SizeConstraintSetUpdate'+ {_scsuAction = pAction_, _scsuSizeConstraint = pSizeConstraint_}+++-- | Specify @INSERT@ to add a 'SizeConstraintSetUpdate' to a 'SizeConstraintSet' . Use @DELETE@ to remove a @SizeConstraintSetUpdate@ from a @SizeConstraintSet@ .+scsuAction :: Lens' SizeConstraintSetUpdate ChangeAction+scsuAction = lens _scsuAction (\ s a -> s{_scsuAction = a});++-- | Specifies a constraint on the size of a part of the web request. AWS WAF uses the @Size@ , @ComparisonOperator@ , and @FieldToMatch@ to build an expression in the form of "@Size@ @ComparisonOperator@ size in bytes of @FieldToMatch@ ". If that expression is true, the @SizeConstraint@ is considered to match.+scsuSizeConstraint :: Lens' SizeConstraintSetUpdate SizeConstraint+scsuSizeConstraint = lens _scsuSizeConstraint (\ s a -> s{_scsuSizeConstraint = a});++instance Hashable SizeConstraintSetUpdate where++instance NFData SizeConstraintSetUpdate where++instance ToJSON SizeConstraintSetUpdate where+ toJSON SizeConstraintSetUpdate'{..}+ = object+ (catMaybes+ [Just ("Action" .= _scsuAction),+ Just ("SizeConstraint" .= _scsuSizeConstraint)])++-- | A complex type that contains @SqlInjectionMatchTuple@ objects, which specify the parts of web requests that you want AWS WAF to inspect for snippets of malicious SQL code and, if you want AWS WAF to inspect a header, the name of the header. If a @SqlInjectionMatchSet@ contains more than one @SqlInjectionMatchTuple@ object, a request needs to include snippets of SQL code in only one of the specified parts of the request to be considered a match.+--+--+--+-- /See:/ 'sqlInjectionMatchSet' smart constructor.+data SqlInjectionMatchSet = SqlInjectionMatchSet'+ { _simsName :: !(Maybe Text)+ , _simsSqlInjectionMatchSetId :: !Text+ , _simsSqlInjectionMatchTuples :: ![SqlInjectionMatchTuple]+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'SqlInjectionMatchSet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'simsName' - The name, if any, of the @SqlInjectionMatchSet@ .+--+-- * 'simsSqlInjectionMatchSetId' - A unique identifier for a @SqlInjectionMatchSet@ . You use @SqlInjectionMatchSetId@ to get information about a @SqlInjectionMatchSet@ (see 'GetSqlInjectionMatchSet' ), update a @SqlInjectionMatchSet@ (see 'UpdateSqlInjectionMatchSet' ), insert a @SqlInjectionMatchSet@ into a @Rule@ or delete one from a @Rule@ (see 'UpdateRule' ), and delete a @SqlInjectionMatchSet@ from AWS WAF (see 'DeleteSqlInjectionMatchSet' ). @SqlInjectionMatchSetId@ is returned by 'CreateSqlInjectionMatchSet' and by 'ListSqlInjectionMatchSets' .+--+-- * 'simsSqlInjectionMatchTuples' - Specifies the parts of web requests that you want to inspect for snippets of malicious SQL code.+sqlInjectionMatchSet+ :: Text -- ^ 'simsSqlInjectionMatchSetId'+ -> SqlInjectionMatchSet+sqlInjectionMatchSet pSqlInjectionMatchSetId_ =+ SqlInjectionMatchSet'+ { _simsName = Nothing+ , _simsSqlInjectionMatchSetId = pSqlInjectionMatchSetId_+ , _simsSqlInjectionMatchTuples = mempty+ }+++-- | The name, if any, of the @SqlInjectionMatchSet@ .+simsName :: Lens' SqlInjectionMatchSet (Maybe Text)+simsName = lens _simsName (\ s a -> s{_simsName = a});++-- | A unique identifier for a @SqlInjectionMatchSet@ . You use @SqlInjectionMatchSetId@ to get information about a @SqlInjectionMatchSet@ (see 'GetSqlInjectionMatchSet' ), update a @SqlInjectionMatchSet@ (see 'UpdateSqlInjectionMatchSet' ), insert a @SqlInjectionMatchSet@ into a @Rule@ or delete one from a @Rule@ (see 'UpdateRule' ), and delete a @SqlInjectionMatchSet@ from AWS WAF (see 'DeleteSqlInjectionMatchSet' ). @SqlInjectionMatchSetId@ is returned by 'CreateSqlInjectionMatchSet' and by 'ListSqlInjectionMatchSets' .+simsSqlInjectionMatchSetId :: Lens' SqlInjectionMatchSet Text+simsSqlInjectionMatchSetId = lens _simsSqlInjectionMatchSetId (\ s a -> s{_simsSqlInjectionMatchSetId = a});++-- | Specifies the parts of web requests that you want to inspect for snippets of malicious SQL code.+simsSqlInjectionMatchTuples :: Lens' SqlInjectionMatchSet [SqlInjectionMatchTuple]+simsSqlInjectionMatchTuples = lens _simsSqlInjectionMatchTuples (\ s a -> s{_simsSqlInjectionMatchTuples = a}) . _Coerce;++instance FromJSON SqlInjectionMatchSet where+ parseJSON+ = withObject "SqlInjectionMatchSet"+ (\ x ->+ SqlInjectionMatchSet' <$>+ (x .:? "Name") <*> (x .: "SqlInjectionMatchSetId")+ <*> (x .:? "SqlInjectionMatchTuples" .!= mempty))++instance Hashable SqlInjectionMatchSet where++instance NFData SqlInjectionMatchSet where++-- | The @Id@ and @Name@ of a @SqlInjectionMatchSet@ .+--+--+--+-- /See:/ 'sqlInjectionMatchSetSummary' smart constructor.+data SqlInjectionMatchSetSummary = SqlInjectionMatchSetSummary'+ { _simssSqlInjectionMatchSetId :: !Text+ , _simssName :: !Text+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'SqlInjectionMatchSetSummary' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'simssSqlInjectionMatchSetId' - A unique identifier for a @SqlInjectionMatchSet@ . You use @SqlInjectionMatchSetId@ to get information about a @SqlInjectionMatchSet@ (see 'GetSqlInjectionMatchSet' ), update a @SqlInjectionMatchSet@ (see 'UpdateSqlInjectionMatchSet' ), insert a @SqlInjectionMatchSet@ into a @Rule@ or delete one from a @Rule@ (see 'UpdateRule' ), and delete a @SqlInjectionMatchSet@ from AWS WAF (see 'DeleteSqlInjectionMatchSet' ). @SqlInjectionMatchSetId@ is returned by 'CreateSqlInjectionMatchSet' and by 'ListSqlInjectionMatchSets' .+--+-- * 'simssName' - The name of the @SqlInjectionMatchSet@ , if any, specified by @Id@ .+sqlInjectionMatchSetSummary+ :: Text -- ^ 'simssSqlInjectionMatchSetId'+ -> Text -- ^ 'simssName'+ -> SqlInjectionMatchSetSummary+sqlInjectionMatchSetSummary pSqlInjectionMatchSetId_ pName_ =+ SqlInjectionMatchSetSummary'+ {_simssSqlInjectionMatchSetId = pSqlInjectionMatchSetId_, _simssName = pName_}+++-- | A unique identifier for a @SqlInjectionMatchSet@ . You use @SqlInjectionMatchSetId@ to get information about a @SqlInjectionMatchSet@ (see 'GetSqlInjectionMatchSet' ), update a @SqlInjectionMatchSet@ (see 'UpdateSqlInjectionMatchSet' ), insert a @SqlInjectionMatchSet@ into a @Rule@ or delete one from a @Rule@ (see 'UpdateRule' ), and delete a @SqlInjectionMatchSet@ from AWS WAF (see 'DeleteSqlInjectionMatchSet' ). @SqlInjectionMatchSetId@ is returned by 'CreateSqlInjectionMatchSet' and by 'ListSqlInjectionMatchSets' .+simssSqlInjectionMatchSetId :: Lens' SqlInjectionMatchSetSummary Text+simssSqlInjectionMatchSetId = lens _simssSqlInjectionMatchSetId (\ s a -> s{_simssSqlInjectionMatchSetId = a});++-- | The name of the @SqlInjectionMatchSet@ , if any, specified by @Id@ .+simssName :: Lens' SqlInjectionMatchSetSummary Text+simssName = lens _simssName (\ s a -> s{_simssName = a});++instance FromJSON SqlInjectionMatchSetSummary where+ parseJSON+ = withObject "SqlInjectionMatchSetSummary"+ (\ x ->+ SqlInjectionMatchSetSummary' <$>+ (x .: "SqlInjectionMatchSetId") <*> (x .: "Name"))++instance Hashable SqlInjectionMatchSetSummary where++instance NFData SqlInjectionMatchSetSummary where++-- | Specifies the part of a web request that you want to inspect for snippets of malicious SQL code and indicates whether you want to add the specification to a 'SqlInjectionMatchSet' or delete it from a @SqlInjectionMatchSet@ .+--+--+--+-- /See:/ 'sqlInjectionMatchSetUpdate' smart constructor.+data SqlInjectionMatchSetUpdate = SqlInjectionMatchSetUpdate'+ { _simsuAction :: !ChangeAction+ , _simsuSqlInjectionMatchTuple :: !SqlInjectionMatchTuple+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'SqlInjectionMatchSetUpdate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'simsuAction' - Specify @INSERT@ to add a 'SqlInjectionMatchSetUpdate' to a 'SqlInjectionMatchSet' . Use @DELETE@ to remove a @SqlInjectionMatchSetUpdate@ from a @SqlInjectionMatchSet@ .+--+-- * 'simsuSqlInjectionMatchTuple' - Specifies the part of a web request that you want AWS WAF to inspect for snippets of malicious SQL code and, if you want AWS WAF to inspect a header, the name of the header.+sqlInjectionMatchSetUpdate+ :: ChangeAction -- ^ 'simsuAction'+ -> SqlInjectionMatchTuple -- ^ 'simsuSqlInjectionMatchTuple'+ -> SqlInjectionMatchSetUpdate+sqlInjectionMatchSetUpdate pAction_ pSqlInjectionMatchTuple_ =+ SqlInjectionMatchSetUpdate'+ { _simsuAction = pAction_+ , _simsuSqlInjectionMatchTuple = pSqlInjectionMatchTuple_+ }+++-- | Specify @INSERT@ to add a 'SqlInjectionMatchSetUpdate' to a 'SqlInjectionMatchSet' . Use @DELETE@ to remove a @SqlInjectionMatchSetUpdate@ from a @SqlInjectionMatchSet@ .+simsuAction :: Lens' SqlInjectionMatchSetUpdate ChangeAction+simsuAction = lens _simsuAction (\ s a -> s{_simsuAction = a});++-- | Specifies the part of a web request that you want AWS WAF to inspect for snippets of malicious SQL code and, if you want AWS WAF to inspect a header, the name of the header.+simsuSqlInjectionMatchTuple :: Lens' SqlInjectionMatchSetUpdate SqlInjectionMatchTuple+simsuSqlInjectionMatchTuple = lens _simsuSqlInjectionMatchTuple (\ s a -> s{_simsuSqlInjectionMatchTuple = a});++instance Hashable SqlInjectionMatchSetUpdate where++instance NFData SqlInjectionMatchSetUpdate where++instance ToJSON SqlInjectionMatchSetUpdate where+ toJSON SqlInjectionMatchSetUpdate'{..}+ = object+ (catMaybes+ [Just ("Action" .= _simsuAction),+ Just+ ("SqlInjectionMatchTuple" .=+ _simsuSqlInjectionMatchTuple)])++-- | Specifies the part of a web request that you want AWS WAF to inspect for snippets of malicious SQL code and, if you want AWS WAF to inspect a header, the name of the header.+--+--+--+-- /See:/ 'sqlInjectionMatchTuple' smart constructor.+data SqlInjectionMatchTuple = SqlInjectionMatchTuple'+ { _simtFieldToMatch :: !FieldToMatch+ , _simtTextTransformation :: !TextTransformation+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'SqlInjectionMatchTuple' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'simtFieldToMatch' - Specifies where in a web request to look for snippets of malicious SQL code.+--+-- * 'simtTextTransformation' - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass AWS WAF. If you specify a transformation, AWS WAF performs the transformation on @FieldToMatch@ before inspecting a request for a match. __CMD_LINE__ When you're concerned that attackers are injecting an operating system commandline command and using unusual formatting to disguise some or all of the command, use this option to perform the following transformations: * Delete the following characters: \ " ' ^ * Delete spaces before the following characters: / ( * Replace the following characters with a space: , ; * Replace multiple spaces with one space * Convert uppercase letters (A-Z) to lowercase (a-z) __COMPRESS_WHITE_SPACE__ Use this option to replace the following characters with a space character (decimal 32): * \f, formfeed, decimal 12 * \t, tab, decimal 9 * \n, newline, decimal 10 * \r, carriage return, decimal 13 * \v, vertical tab, decimal 11 * non-breaking space, decimal 160 @COMPRESS_WHITE_SPACE@ also replaces multiple spaces with one space. __HTML_ENTITY_DECODE__ Use this option to replace HTML-encoded characters with unencoded characters. @HTML_ENTITY_DECODE@ performs the following operations: * Replaces @(ampersand)quot;@ with @"@ * Replaces @(ampersand)nbsp;@ with a non-breaking space, decimal 160 * Replaces @(ampersand)lt;@ with a "less than" symbol * Replaces @(ampersand)gt;@ with @>@ * Replaces characters that are represented in hexadecimal format, @(ampersand)#xhhhh;@ , with the corresponding characters * Replaces characters that are represented in decimal format, @(ampersand)#nnnn;@ , with the corresponding characters __LOWERCASE__ Use this option to convert uppercase letters (A-Z) to lowercase (a-z). __URL_DECODE__ Use this option to decode a URL-encoded value. __NONE__ Specify @NONE@ if you don't want to perform any text transformations.+sqlInjectionMatchTuple+ :: FieldToMatch -- ^ 'simtFieldToMatch'+ -> TextTransformation -- ^ 'simtTextTransformation'+ -> SqlInjectionMatchTuple+sqlInjectionMatchTuple pFieldToMatch_ pTextTransformation_ =+ SqlInjectionMatchTuple'+ { _simtFieldToMatch = pFieldToMatch_+ , _simtTextTransformation = pTextTransformation_+ }+++-- | Specifies where in a web request to look for snippets of malicious SQL code.+simtFieldToMatch :: Lens' SqlInjectionMatchTuple FieldToMatch+simtFieldToMatch = lens _simtFieldToMatch (\ s a -> s{_simtFieldToMatch = a});++-- | Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass AWS WAF. If you specify a transformation, AWS WAF performs the transformation on @FieldToMatch@ before inspecting a request for a match. __CMD_LINE__ When you're concerned that attackers are injecting an operating system commandline command and using unusual formatting to disguise some or all of the command, use this option to perform the following transformations: * Delete the following characters: \ " ' ^ * Delete spaces before the following characters: / ( * Replace the following characters with a space: , ; * Replace multiple spaces with one space * Convert uppercase letters (A-Z) to lowercase (a-z) __COMPRESS_WHITE_SPACE__ Use this option to replace the following characters with a space character (decimal 32): * \f, formfeed, decimal 12 * \t, tab, decimal 9 * \n, newline, decimal 10 * \r, carriage return, decimal 13 * \v, vertical tab, decimal 11 * non-breaking space, decimal 160 @COMPRESS_WHITE_SPACE@ also replaces multiple spaces with one space. __HTML_ENTITY_DECODE__ Use this option to replace HTML-encoded characters with unencoded characters. @HTML_ENTITY_DECODE@ performs the following operations: * Replaces @(ampersand)quot;@ with @"@ * Replaces @(ampersand)nbsp;@ with a non-breaking space, decimal 160 * Replaces @(ampersand)lt;@ with a "less than" symbol * Replaces @(ampersand)gt;@ with @>@ * Replaces characters that are represented in hexadecimal format, @(ampersand)#xhhhh;@ , with the corresponding characters * Replaces characters that are represented in decimal format, @(ampersand)#nnnn;@ , with the corresponding characters __LOWERCASE__ Use this option to convert uppercase letters (A-Z) to lowercase (a-z). __URL_DECODE__ Use this option to decode a URL-encoded value. __NONE__ Specify @NONE@ if you don't want to perform any text transformations.+simtTextTransformation :: Lens' SqlInjectionMatchTuple TextTransformation+simtTextTransformation = lens _simtTextTransformation (\ s a -> s{_simtTextTransformation = a});++instance FromJSON SqlInjectionMatchTuple where+ parseJSON+ = withObject "SqlInjectionMatchTuple"+ (\ x ->+ SqlInjectionMatchTuple' <$>+ (x .: "FieldToMatch") <*>+ (x .: "TextTransformation"))++instance Hashable SqlInjectionMatchTuple where++instance NFData SqlInjectionMatchTuple where++instance ToJSON SqlInjectionMatchTuple where+ toJSON SqlInjectionMatchTuple'{..}+ = object+ (catMaybes+ [Just ("FieldToMatch" .= _simtFieldToMatch),+ Just+ ("TextTransformation" .= _simtTextTransformation)])++-- | In a 'GetSampledRequests' request, the @StartTime@ and @EndTime@ objects specify the time range for which you want AWS WAF to return a sample of web requests.+--+--+-- In a 'GetSampledRequests' response, the @StartTime@ and @EndTime@ objects specify the time range for which AWS WAF actually returned a sample of web requests. AWS WAF gets the specified number of requests from among the first 5,000 requests that your AWS resource receives during the specified time period. If your resource receives more than 5,000 requests during that period, AWS WAF stops sampling after the 5,000th request. In that case, @EndTime@ is the time that AWS WAF received the 5,000th request.+--+--+-- /See:/ 'timeWindow' smart constructor.+data TimeWindow = TimeWindow'+ { _twStartTime :: !POSIX+ , _twEndTime :: !POSIX+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'TimeWindow' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'twStartTime' - The beginning of the time range from which you want @GetSampledRequests@ to return a sample of the requests that your AWS resource received. Specify the date and time in the following format: @"2016-09-27T14:50Z"@ . You can specify any time range in the previous three hours.+--+-- * 'twEndTime' - The end of the time range from which you want @GetSampledRequests@ to return a sample of the requests that your AWS resource received. Specify the date and time in the following format: @"2016-09-27T14:50Z"@ . You can specify any time range in the previous three hours.+timeWindow+ :: UTCTime -- ^ 'twStartTime'+ -> UTCTime -- ^ 'twEndTime'+ -> TimeWindow+timeWindow pStartTime_ pEndTime_ =+ TimeWindow'+ {_twStartTime = _Time # pStartTime_, _twEndTime = _Time # pEndTime_}+++-- | The beginning of the time range from which you want @GetSampledRequests@ to return a sample of the requests that your AWS resource received. Specify the date and time in the following format: @"2016-09-27T14:50Z"@ . You can specify any time range in the previous three hours.+twStartTime :: Lens' TimeWindow UTCTime+twStartTime = lens _twStartTime (\ s a -> s{_twStartTime = a}) . _Time;++-- | The end of the time range from which you want @GetSampledRequests@ to return a sample of the requests that your AWS resource received. Specify the date and time in the following format: @"2016-09-27T14:50Z"@ . You can specify any time range in the previous three hours.+twEndTime :: Lens' TimeWindow UTCTime+twEndTime = lens _twEndTime (\ s a -> s{_twEndTime = a}) . _Time;++instance FromJSON TimeWindow where+ parseJSON+ = withObject "TimeWindow"+ (\ x ->+ TimeWindow' <$>+ (x .: "StartTime") <*> (x .: "EndTime"))++instance Hashable TimeWindow where++instance NFData TimeWindow where++instance ToJSON TimeWindow where+ toJSON TimeWindow'{..}+ = object+ (catMaybes+ [Just ("StartTime" .= _twStartTime),+ Just ("EndTime" .= _twEndTime)])++-- | For the action that is associated with a rule in a @WebACL@ , specifies the action that you want AWS WAF to perform when a web request matches all of the conditions in a rule. For the default action in a @WebACL@ , specifies the action that you want AWS WAF to take when a web request doesn't match all of the conditions in any of the rules in a @WebACL@ .+--+--+--+-- /See:/ 'wafAction' smart constructor.+newtype WafAction = WafAction'+ { _waType :: WafActionType+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'WafAction' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'waType' - Specifies how you want AWS WAF to respond to requests that match the settings in a @Rule@ . Valid settings include the following: * @ALLOW@ : AWS WAF allows requests * @BLOCK@ : AWS WAF blocks requests * @COUNT@ : AWS WAF increments a counter of the requests that match all of the conditions in the rule. AWS WAF then continues to inspect the web request based on the remaining rules in the web ACL. You can't specify @COUNT@ for the default action for a @WebACL@ .+wafAction+ :: WafActionType -- ^ 'waType'+ -> WafAction+wafAction pType_ = WafAction' {_waType = pType_}+++-- | Specifies how you want AWS WAF to respond to requests that match the settings in a @Rule@ . Valid settings include the following: * @ALLOW@ : AWS WAF allows requests * @BLOCK@ : AWS WAF blocks requests * @COUNT@ : AWS WAF increments a counter of the requests that match all of the conditions in the rule. AWS WAF then continues to inspect the web request based on the remaining rules in the web ACL. You can't specify @COUNT@ for the default action for a @WebACL@ .+waType :: Lens' WafAction WafActionType+waType = lens _waType (\ s a -> s{_waType = a});++instance FromJSON WafAction where+ parseJSON+ = withObject "WafAction"+ (\ x -> WafAction' <$> (x .: "Type"))++instance Hashable WafAction where++instance NFData WafAction where++instance ToJSON WafAction where+ toJSON WafAction'{..}+ = object (catMaybes [Just ("Type" .= _waType)])++-- | Contains the @Rules@ that identify the requests that you want to allow, block, or count. In a @WebACL@ , you also specify a default action (@ALLOW@ or @BLOCK@ ), and the action for each @Rule@ that you add to a @WebACL@ , for example, block requests from specified IP addresses or block requests from specified referrers. You also associate the @WebACL@ with a CloudFront distribution to identify the requests that you want AWS WAF to filter. If you add more than one @Rule@ to a @WebACL@ , a request needs to match only one of the specifications to be allowed, blocked, or counted. For more information, see 'UpdateWebACL' .+--+--+--+-- /See:/ 'webACL' smart constructor.+data WebACL = WebACL'+ { _waMetricName :: !(Maybe Text)+ , _waName :: !(Maybe Text)+ , _waWebACLId :: !Text+ , _waDefaultAction :: !WafAction+ , _waRules :: ![ActivatedRule]+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'WebACL' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'waMetricName' - A friendly name or description for the metrics for this @WebACL@ . The name can contain only alphanumeric characters (A-Z, a-z, 0-9); the name can't contain whitespace. You can't change @MetricName@ after you create the @WebACL@ .+--+-- * 'waName' - A friendly name or description of the @WebACL@ . You can't change the name of a @WebACL@ after you create it.+--+-- * 'waWebACLId' - A unique identifier for a @WebACL@ . You use @WebACLId@ to get information about a @WebACL@ (see 'GetWebACL' ), update a @WebACL@ (see 'UpdateWebACL' ), and delete a @WebACL@ from AWS WAF (see 'DeleteWebACL' ). @WebACLId@ is returned by 'CreateWebACL' and by 'ListWebACLs' .+--+-- * 'waDefaultAction' - The action to perform if none of the @Rules@ contained in the @WebACL@ match. The action is specified by the 'WafAction' object.+--+-- * 'waRules' - An array that contains the action for each @Rule@ in a @WebACL@ , the priority of the @Rule@ , and the ID of the @Rule@ .+webACL+ :: Text -- ^ 'waWebACLId'+ -> WafAction -- ^ 'waDefaultAction'+ -> WebACL+webACL pWebACLId_ pDefaultAction_ =+ WebACL'+ { _waMetricName = Nothing+ , _waName = Nothing+ , _waWebACLId = pWebACLId_+ , _waDefaultAction = pDefaultAction_+ , _waRules = mempty+ }+++-- | A friendly name or description for the metrics for this @WebACL@ . The name can contain only alphanumeric characters (A-Z, a-z, 0-9); the name can't contain whitespace. You can't change @MetricName@ after you create the @WebACL@ .+waMetricName :: Lens' WebACL (Maybe Text)+waMetricName = lens _waMetricName (\ s a -> s{_waMetricName = a});++-- | A friendly name or description of the @WebACL@ . You can't change the name of a @WebACL@ after you create it.+waName :: Lens' WebACL (Maybe Text)+waName = lens _waName (\ s a -> s{_waName = a});++-- | A unique identifier for a @WebACL@ . You use @WebACLId@ to get information about a @WebACL@ (see 'GetWebACL' ), update a @WebACL@ (see 'UpdateWebACL' ), and delete a @WebACL@ from AWS WAF (see 'DeleteWebACL' ). @WebACLId@ is returned by 'CreateWebACL' and by 'ListWebACLs' .+waWebACLId :: Lens' WebACL Text+waWebACLId = lens _waWebACLId (\ s a -> s{_waWebACLId = a});++-- | The action to perform if none of the @Rules@ contained in the @WebACL@ match. The action is specified by the 'WafAction' object.+waDefaultAction :: Lens' WebACL WafAction+waDefaultAction = lens _waDefaultAction (\ s a -> s{_waDefaultAction = a});++-- | An array that contains the action for each @Rule@ in a @WebACL@ , the priority of the @Rule@ , and the ID of the @Rule@ .+waRules :: Lens' WebACL [ActivatedRule]+waRules = lens _waRules (\ s a -> s{_waRules = a}) . _Coerce;++instance FromJSON WebACL where+ parseJSON+ = withObject "WebACL"+ (\ x ->+ WebACL' <$>+ (x .:? "MetricName") <*> (x .:? "Name") <*>+ (x .: "WebACLId")+ <*> (x .: "DefaultAction")+ <*> (x .:? "Rules" .!= mempty))++instance Hashable WebACL where++instance NFData WebACL where++-- | Contains the identifier and the name or description of the 'WebACL' .+--+--+--+-- /See:/ 'webACLSummary' smart constructor.+data WebACLSummary = WebACLSummary'+ { _wasWebACLId :: !Text+ , _wasName :: !Text+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'WebACLSummary' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'wasWebACLId' - A unique identifier for a @WebACL@ . You use @WebACLId@ to get information about a @WebACL@ (see 'GetWebACL' ), update a @WebACL@ (see 'UpdateWebACL' ), and delete a @WebACL@ from AWS WAF (see 'DeleteWebACL' ). @WebACLId@ is returned by 'CreateWebACL' and by 'ListWebACLs' .+--+-- * 'wasName' - A friendly name or description of the 'WebACL' . You can't change the name of a @WebACL@ after you create it.+webACLSummary+ :: Text -- ^ 'wasWebACLId'+ -> Text -- ^ 'wasName'+ -> WebACLSummary+webACLSummary pWebACLId_ pName_ =+ WebACLSummary' {_wasWebACLId = pWebACLId_, _wasName = pName_}+++-- | A unique identifier for a @WebACL@ . You use @WebACLId@ to get information about a @WebACL@ (see 'GetWebACL' ), update a @WebACL@ (see 'UpdateWebACL' ), and delete a @WebACL@ from AWS WAF (see 'DeleteWebACL' ). @WebACLId@ is returned by 'CreateWebACL' and by 'ListWebACLs' .+wasWebACLId :: Lens' WebACLSummary Text+wasWebACLId = lens _wasWebACLId (\ s a -> s{_wasWebACLId = a});++-- | A friendly name or description of the 'WebACL' . You can't change the name of a @WebACL@ after you create it.+wasName :: Lens' WebACLSummary Text+wasName = lens _wasName (\ s a -> s{_wasName = a});++instance FromJSON WebACLSummary where+ parseJSON+ = withObject "WebACLSummary"+ (\ x ->+ WebACLSummary' <$>+ (x .: "WebACLId") <*> (x .: "Name"))++instance Hashable WebACLSummary where++instance NFData WebACLSummary where++-- | Specifies whether to insert a @Rule@ into or delete a @Rule@ from a @WebACL@ .+--+--+--+-- /See:/ 'webACLUpdate' smart constructor.+data WebACLUpdate = WebACLUpdate'+ { _wauAction :: !ChangeAction+ , _wauActivatedRule :: !ActivatedRule+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'WebACLUpdate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'wauAction' - Specifies whether to insert a @Rule@ into or delete a @Rule@ from a @WebACL@ .+--+-- * 'wauActivatedRule' - The @ActivatedRule@ object in an 'UpdateWebACL' request specifies a @Rule@ that you want to insert or delete, the priority of the @Rule@ in the @WebACL@ , and the action that you want AWS WAF to take when a web request matches the @Rule@ (@ALLOW@ , @BLOCK@ , or @COUNT@ ).+webACLUpdate+ :: ChangeAction -- ^ 'wauAction'+ -> ActivatedRule -- ^ 'wauActivatedRule'+ -> WebACLUpdate+webACLUpdate pAction_ pActivatedRule_ =+ WebACLUpdate' {_wauAction = pAction_, _wauActivatedRule = pActivatedRule_}+++-- | Specifies whether to insert a @Rule@ into or delete a @Rule@ from a @WebACL@ .+wauAction :: Lens' WebACLUpdate ChangeAction+wauAction = lens _wauAction (\ s a -> s{_wauAction = a});++-- | The @ActivatedRule@ object in an 'UpdateWebACL' request specifies a @Rule@ that you want to insert or delete, the priority of the @Rule@ in the @WebACL@ , and the action that you want AWS WAF to take when a web request matches the @Rule@ (@ALLOW@ , @BLOCK@ , or @COUNT@ ).+wauActivatedRule :: Lens' WebACLUpdate ActivatedRule+wauActivatedRule = lens _wauActivatedRule (\ s a -> s{_wauActivatedRule = a});++instance Hashable WebACLUpdate where++instance NFData WebACLUpdate where++instance ToJSON WebACLUpdate where+ toJSON WebACLUpdate'{..}+ = object+ (catMaybes+ [Just ("Action" .= _wauAction),+ Just ("ActivatedRule" .= _wauActivatedRule)])++-- | A complex type that contains @XssMatchTuple@ objects, which specify the parts of web requests that you want AWS WAF to inspect for cross-site scripting attacks and, if you want AWS WAF to inspect a header, the name of the header. If a @XssMatchSet@ contains more than one @XssMatchTuple@ object, a request needs to include cross-site scripting attacks in only one of the specified parts of the request to be considered a match.+--+--+--+-- /See:/ 'xssMatchSet' smart constructor.+data XSSMatchSet = XSSMatchSet'+ { _xmsName :: !(Maybe Text)+ , _xmsXSSMatchSetId :: !Text+ , _xmsXSSMatchTuples :: ![XSSMatchTuple]+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'XSSMatchSet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'xmsName' - The name, if any, of the @XssMatchSet@ .+--+-- * 'xmsXSSMatchSetId' - A unique identifier for an @XssMatchSet@ . You use @XssMatchSetId@ to get information about an @XssMatchSet@ (see 'GetXssMatchSet' ), update an @XssMatchSet@ (see 'UpdateXssMatchSet' ), insert an @XssMatchSet@ into a @Rule@ or delete one from a @Rule@ (see 'UpdateRule' ), and delete an @XssMatchSet@ from AWS WAF (see 'DeleteXssMatchSet' ). @XssMatchSetId@ is returned by 'CreateXssMatchSet' and by 'ListXssMatchSets' .+--+-- * 'xmsXSSMatchTuples' - Specifies the parts of web requests that you want to inspect for cross-site scripting attacks.+xssMatchSet+ :: Text -- ^ 'xmsXSSMatchSetId'+ -> XSSMatchSet+xssMatchSet pXSSMatchSetId_ =+ XSSMatchSet'+ { _xmsName = Nothing+ , _xmsXSSMatchSetId = pXSSMatchSetId_+ , _xmsXSSMatchTuples = mempty+ }+++-- | The name, if any, of the @XssMatchSet@ .+xmsName :: Lens' XSSMatchSet (Maybe Text)+xmsName = lens _xmsName (\ s a -> s{_xmsName = a});++-- | A unique identifier for an @XssMatchSet@ . You use @XssMatchSetId@ to get information about an @XssMatchSet@ (see 'GetXssMatchSet' ), update an @XssMatchSet@ (see 'UpdateXssMatchSet' ), insert an @XssMatchSet@ into a @Rule@ or delete one from a @Rule@ (see 'UpdateRule' ), and delete an @XssMatchSet@ from AWS WAF (see 'DeleteXssMatchSet' ). @XssMatchSetId@ is returned by 'CreateXssMatchSet' and by 'ListXssMatchSets' .+xmsXSSMatchSetId :: Lens' XSSMatchSet Text+xmsXSSMatchSetId = lens _xmsXSSMatchSetId (\ s a -> s{_xmsXSSMatchSetId = a});++-- | Specifies the parts of web requests that you want to inspect for cross-site scripting attacks.+xmsXSSMatchTuples :: Lens' XSSMatchSet [XSSMatchTuple]+xmsXSSMatchTuples = lens _xmsXSSMatchTuples (\ s a -> s{_xmsXSSMatchTuples = a}) . _Coerce;++instance FromJSON XSSMatchSet where+ parseJSON+ = withObject "XSSMatchSet"+ (\ x ->+ XSSMatchSet' <$>+ (x .:? "Name") <*> (x .: "XssMatchSetId") <*>+ (x .:? "XssMatchTuples" .!= mempty))++instance Hashable XSSMatchSet where++instance NFData XSSMatchSet where++-- | The @Id@ and @Name@ of an @XssMatchSet@ .+--+--+--+-- /See:/ 'xssMatchSetSummary' smart constructor.+data XSSMatchSetSummary = XSSMatchSetSummary'+ { _xmssXSSMatchSetId :: !Text+ , _xmssName :: !Text+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'XSSMatchSetSummary' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'xmssXSSMatchSetId' - A unique identifier for an @XssMatchSet@ . You use @XssMatchSetId@ to get information about a @XssMatchSet@ (see 'GetXssMatchSet' ), update an @XssMatchSet@ (see 'UpdateXssMatchSet' ), insert an @XssMatchSet@ into a @Rule@ or delete one from a @Rule@ (see 'UpdateRule' ), and delete an @XssMatchSet@ from AWS WAF (see 'DeleteXssMatchSet' ). @XssMatchSetId@ is returned by 'CreateXssMatchSet' and by 'ListXssMatchSets' .+--+-- * 'xmssName' - The name of the @XssMatchSet@ , if any, specified by @Id@ .+xssMatchSetSummary+ :: Text -- ^ 'xmssXSSMatchSetId'+ -> Text -- ^ 'xmssName'+ -> XSSMatchSetSummary+xssMatchSetSummary pXSSMatchSetId_ pName_ =+ XSSMatchSetSummary' {_xmssXSSMatchSetId = pXSSMatchSetId_, _xmssName = pName_}+++-- | A unique identifier for an @XssMatchSet@ . You use @XssMatchSetId@ to get information about a @XssMatchSet@ (see 'GetXssMatchSet' ), update an @XssMatchSet@ (see 'UpdateXssMatchSet' ), insert an @XssMatchSet@ into a @Rule@ or delete one from a @Rule@ (see 'UpdateRule' ), and delete an @XssMatchSet@ from AWS WAF (see 'DeleteXssMatchSet' ). @XssMatchSetId@ is returned by 'CreateXssMatchSet' and by 'ListXssMatchSets' .+xmssXSSMatchSetId :: Lens' XSSMatchSetSummary Text+xmssXSSMatchSetId = lens _xmssXSSMatchSetId (\ s a -> s{_xmssXSSMatchSetId = a});++-- | The name of the @XssMatchSet@ , if any, specified by @Id@ .+xmssName :: Lens' XSSMatchSetSummary Text+xmssName = lens _xmssName (\ s a -> s{_xmssName = a});++instance FromJSON XSSMatchSetSummary where+ parseJSON+ = withObject "XSSMatchSetSummary"+ (\ x ->+ XSSMatchSetSummary' <$>+ (x .: "XssMatchSetId") <*> (x .: "Name"))++instance Hashable XSSMatchSetSummary where++instance NFData XSSMatchSetSummary where++-- | Specifies the part of a web request that you want to inspect for cross-site scripting attacks and indicates whether you want to add the specification to an 'XssMatchSet' or delete it from an @XssMatchSet@ .+--+--+--+-- /See:/ 'xssMatchSetUpdate' smart constructor.+data XSSMatchSetUpdate = XSSMatchSetUpdate'+ { _xmsuAction :: !ChangeAction+ , _xmsuXSSMatchTuple :: !XSSMatchTuple+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'XSSMatchSetUpdate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'xmsuAction' - Specify @INSERT@ to add a 'XssMatchSetUpdate' to an 'XssMatchSet' . Use @DELETE@ to remove a @XssMatchSetUpdate@ from an @XssMatchSet@ .+--+-- * 'xmsuXSSMatchTuple' - Specifies the part of a web request that you want AWS WAF to inspect for cross-site scripting attacks and, if you want AWS WAF to inspect a header, the name of the header.+xssMatchSetUpdate+ :: ChangeAction -- ^ 'xmsuAction'+ -> XSSMatchTuple -- ^ 'xmsuXSSMatchTuple'+ -> XSSMatchSetUpdate+xssMatchSetUpdate pAction_ pXSSMatchTuple_ =+ XSSMatchSetUpdate'+ {_xmsuAction = pAction_, _xmsuXSSMatchTuple = pXSSMatchTuple_}+++-- | Specify @INSERT@ to add a 'XssMatchSetUpdate' to an 'XssMatchSet' . Use @DELETE@ to remove a @XssMatchSetUpdate@ from an @XssMatchSet@ .+xmsuAction :: Lens' XSSMatchSetUpdate ChangeAction+xmsuAction = lens _xmsuAction (\ s a -> s{_xmsuAction = a});++-- | Specifies the part of a web request that you want AWS WAF to inspect for cross-site scripting attacks and, if you want AWS WAF to inspect a header, the name of the header.+xmsuXSSMatchTuple :: Lens' XSSMatchSetUpdate XSSMatchTuple+xmsuXSSMatchTuple = lens _xmsuXSSMatchTuple (\ s a -> s{_xmsuXSSMatchTuple = a});++instance Hashable XSSMatchSetUpdate where++instance NFData XSSMatchSetUpdate where++instance ToJSON XSSMatchSetUpdate where+ toJSON XSSMatchSetUpdate'{..}+ = object+ (catMaybes+ [Just ("Action" .= _xmsuAction),+ Just ("XssMatchTuple" .= _xmsuXSSMatchTuple)])++-- | Specifies the part of a web request that you want AWS WAF to inspect for cross-site scripting attacks and, if you want AWS WAF to inspect a header, the name of the header.+--+--+--+-- /See:/ 'xssMatchTuple' smart constructor.+data XSSMatchTuple = XSSMatchTuple'+ { _xmtFieldToMatch :: !FieldToMatch+ , _xmtTextTransformation :: !TextTransformation+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'XSSMatchTuple' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'xmtFieldToMatch' - Specifies where in a web request to look for cross-site scripting attacks.+--+-- * 'xmtTextTransformation' - Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass AWS WAF. If you specify a transformation, AWS WAF performs the transformation on @FieldToMatch@ before inspecting a request for a match. __CMD_LINE__ When you're concerned that attackers are injecting an operating system commandline command and using unusual formatting to disguise some or all of the command, use this option to perform the following transformations: * Delete the following characters: \ " ' ^ * Delete spaces before the following characters: / ( * Replace the following characters with a space: , ; * Replace multiple spaces with one space * Convert uppercase letters (A-Z) to lowercase (a-z) __COMPRESS_WHITE_SPACE__ Use this option to replace the following characters with a space character (decimal 32): * \f, formfeed, decimal 12 * \t, tab, decimal 9 * \n, newline, decimal 10 * \r, carriage return, decimal 13 * \v, vertical tab, decimal 11 * non-breaking space, decimal 160 @COMPRESS_WHITE_SPACE@ also replaces multiple spaces with one space. __HTML_ENTITY_DECODE__ Use this option to replace HTML-encoded characters with unencoded characters. @HTML_ENTITY_DECODE@ performs the following operations: * Replaces @(ampersand)quot;@ with @"@ * Replaces @(ampersand)nbsp;@ with a non-breaking space, decimal 160 * Replaces @(ampersand)lt;@ with a "less than" symbol * Replaces @(ampersand)gt;@ with @>@ * Replaces characters that are represented in hexadecimal format, @(ampersand)#xhhhh;@ , with the corresponding characters * Replaces characters that are represented in decimal format, @(ampersand)#nnnn;@ , with the corresponding characters __LOWERCASE__ Use this option to convert uppercase letters (A-Z) to lowercase (a-z). __URL_DECODE__ Use this option to decode a URL-encoded value. __NONE__ Specify @NONE@ if you don't want to perform any text transformations.+xssMatchTuple+ :: FieldToMatch -- ^ 'xmtFieldToMatch'+ -> TextTransformation -- ^ 'xmtTextTransformation'+ -> XSSMatchTuple+xssMatchTuple pFieldToMatch_ pTextTransformation_ =+ XSSMatchTuple'+ { _xmtFieldToMatch = pFieldToMatch_+ , _xmtTextTransformation = pTextTransformation_+ }+++-- | Specifies where in a web request to look for cross-site scripting attacks.+xmtFieldToMatch :: Lens' XSSMatchTuple FieldToMatch+xmtFieldToMatch = lens _xmtFieldToMatch (\ s a -> s{_xmtFieldToMatch = a});++-- | Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass AWS WAF. If you specify a transformation, AWS WAF performs the transformation on @FieldToMatch@ before inspecting a request for a match. __CMD_LINE__ When you're concerned that attackers are injecting an operating system commandline command and using unusual formatting to disguise some or all of the command, use this option to perform the following transformations: * Delete the following characters: \ " ' ^ * Delete spaces before the following characters: / ( * Replace the following characters with a space: , ; * Replace multiple spaces with one space * Convert uppercase letters (A-Z) to lowercase (a-z) __COMPRESS_WHITE_SPACE__ Use this option to replace the following characters with a space character (decimal 32): * \f, formfeed, decimal 12 * \t, tab, decimal 9 * \n, newline, decimal 10 * \r, carriage return, decimal 13 * \v, vertical tab, decimal 11 * non-breaking space, decimal 160 @COMPRESS_WHITE_SPACE@ also replaces multiple spaces with one space. __HTML_ENTITY_DECODE__ Use this option to replace HTML-encoded characters with unencoded characters. @HTML_ENTITY_DECODE@ performs the following operations: * Replaces @(ampersand)quot;@ with @"@ * Replaces @(ampersand)nbsp;@ with a non-breaking space, decimal 160 * Replaces @(ampersand)lt;@ with a "less than" symbol * Replaces @(ampersand)gt;@ with @>@ * Replaces characters that are represented in hexadecimal format, @(ampersand)#xhhhh;@ , with the corresponding characters * Replaces characters that are represented in decimal format, @(ampersand)#nnnn;@ , with the corresponding characters __LOWERCASE__ Use this option to convert uppercase letters (A-Z) to lowercase (a-z). __URL_DECODE__ Use this option to decode a URL-encoded value. __NONE__ Specify @NONE@ if you don't want to perform any text transformations.+xmtTextTransformation :: Lens' XSSMatchTuple TextTransformation+xmtTextTransformation = lens _xmtTextTransformation (\ s a -> s{_xmtTextTransformation = a});++instance FromJSON XSSMatchTuple where+ parseJSON+ = withObject "XSSMatchTuple"+ (\ x ->+ XSSMatchTuple' <$>+ (x .: "FieldToMatch") <*>+ (x .: "TextTransformation"))++instance Hashable XSSMatchTuple where++instance NFData XSSMatchTuple where instance ToJSON XSSMatchTuple where toJSON XSSMatchTuple'{..}
gen/Network/AWS/WAF/Types/Sum.hs view
@@ -9,21 +9,22 @@ -- | -- Module : Network.AWS.WAF.Types.Sum--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- module Network.AWS.WAF.Types.Sum where -import Network.AWS.Prelude+import Network.AWS.Prelude data ChangeAction- = Delete- | Insert- deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)+ = Delete+ | Insert+ deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic) + instance FromText ChangeAction where parser = takeLowerText >>= \case "delete" -> pure Delete@@ -46,11 +47,12 @@ toJSON = toJSONText data ChangeTokenStatus- = Insync- | Pending- | Provisioned- deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)+ = Insync+ | Pending+ | Provisioned+ deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic) + instance FromText ChangeTokenStatus where parser = takeLowerText >>= \case "insync" -> pure Insync@@ -75,14 +77,15 @@ parseJSON = parseJSONText "ChangeTokenStatus" data ComparisonOperator- = EQ'- | GE- | GT'- | LE- | LT'- | NE- deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)+ = EQ'+ | GE+ | GT'+ | LE+ | LT'+ | NE+ deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic) + instance FromText ComparisonOperator where parser = takeLowerText >>= \case "eq" -> pure EQ'@@ -115,11 +118,810 @@ instance FromJSON ComparisonOperator where parseJSON = parseJSONText "ComparisonOperator" +data GeoMatchConstraintType =+ Country+ deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText GeoMatchConstraintType where+ parser = takeLowerText >>= \case+ "country" -> pure Country+ e -> fromTextError $ "Failure parsing GeoMatchConstraintType from value: '" <> e+ <> "'. Accepted values: country"++instance ToText GeoMatchConstraintType where+ toText = \case+ Country -> "Country"++instance Hashable GeoMatchConstraintType+instance NFData GeoMatchConstraintType+instance ToByteString GeoMatchConstraintType+instance ToQuery GeoMatchConstraintType+instance ToHeader GeoMatchConstraintType++instance ToJSON GeoMatchConstraintType where+ toJSON = toJSONText++instance FromJSON GeoMatchConstraintType where+ parseJSON = parseJSONText "GeoMatchConstraintType"++data GeoMatchConstraintValue+ = GMCVAD+ | GMCVAE+ | GMCVAF+ | GMCVAG+ | GMCVAI+ | GMCVAL+ | GMCVAM+ | GMCVAO+ | GMCVAQ+ | GMCVAR+ | GMCVAS+ | GMCVAT+ | GMCVAU+ | GMCVAW+ | GMCVAX+ | GMCVAZ+ | GMCVBA+ | GMCVBB+ | GMCVBD+ | GMCVBE+ | GMCVBF+ | GMCVBG+ | GMCVBH+ | GMCVBI+ | GMCVBJ+ | GMCVBL+ | GMCVBM+ | GMCVBN+ | GMCVBO+ | GMCVBQ+ | GMCVBR+ | GMCVBS+ | GMCVBT+ | GMCVBV+ | GMCVBW+ | GMCVBY+ | GMCVBZ+ | GMCVCA+ | GMCVCC+ | GMCVCD+ | GMCVCF+ | GMCVCG+ | GMCVCH+ | GMCVCI+ | GMCVCK+ | GMCVCL+ | GMCVCM+ | GMCVCN+ | GMCVCO+ | GMCVCR+ | GMCVCU+ | GMCVCV+ | GMCVCW+ | GMCVCX+ | GMCVCY+ | GMCVCZ+ | GMCVDE+ | GMCVDJ+ | GMCVDK+ | GMCVDM+ | GMCVDO+ | GMCVDZ+ | GMCVEC+ | GMCVEE+ | GMCVEG+ | GMCVEH+ | GMCVER+ | GMCVES+ | GMCVET+ | GMCVFI+ | GMCVFJ+ | GMCVFK+ | GMCVFM+ | GMCVFO+ | GMCVFR+ | GMCVGA+ | GMCVGB+ | GMCVGD+ | GMCVGE+ | GMCVGF+ | GMCVGG+ | GMCVGH+ | GMCVGI+ | GMCVGL+ | GMCVGM+ | GMCVGN+ | GMCVGP+ | GMCVGQ+ | GMCVGR+ | GMCVGS+ | GMCVGT'+ | GMCVGU+ | GMCVGW+ | GMCVGY+ | GMCVHK+ | GMCVHM+ | GMCVHN+ | GMCVHR+ | GMCVHT+ | GMCVHU+ | GMCVIE+ | GMCVIL+ | GMCVIM+ | GMCVIN+ | GMCVIO+ | GMCVIQ+ | GMCVIR+ | GMCVIS+ | GMCVIT+ | GMCVId+ | GMCVJE+ | GMCVJM+ | GMCVJO+ | GMCVJP+ | GMCVKE+ | GMCVKG+ | GMCVKH+ | GMCVKI+ | GMCVKM+ | GMCVKN+ | GMCVKP+ | GMCVKR+ | GMCVKW+ | GMCVKY+ | GMCVKZ+ | GMCVLA+ | GMCVLB+ | GMCVLC+ | GMCVLI+ | GMCVLK+ | GMCVLR+ | GMCVLS+ | GMCVLT'+ | GMCVLU+ | GMCVLV+ | GMCVLY+ | GMCVMA+ | GMCVMC+ | GMCVMD+ | GMCVME+ | GMCVMF+ | GMCVMG+ | GMCVMH+ | GMCVMK+ | GMCVML+ | GMCVMM+ | GMCVMN+ | GMCVMO+ | GMCVMP+ | GMCVMQ+ | GMCVMR+ | GMCVMS+ | GMCVMT+ | GMCVMU+ | GMCVMV+ | GMCVMW+ | GMCVMX+ | GMCVMY+ | GMCVMZ+ | GMCVNA+ | GMCVNC+ | GMCVNE+ | GMCVNF+ | GMCVNG+ | GMCVNI+ | GMCVNL+ | GMCVNO+ | GMCVNP+ | GMCVNR+ | GMCVNU+ | GMCVNZ+ | GMCVOM+ | GMCVPA+ | GMCVPE+ | GMCVPF+ | GMCVPG+ | GMCVPH+ | GMCVPK+ | GMCVPL+ | GMCVPM+ | GMCVPN+ | GMCVPR+ | GMCVPS+ | GMCVPT+ | GMCVPW+ | GMCVPY+ | GMCVQA+ | GMCVRE+ | GMCVRO+ | GMCVRS+ | GMCVRU+ | GMCVRW+ | GMCVSA+ | GMCVSB+ | GMCVSC+ | GMCVSD+ | GMCVSE+ | GMCVSG+ | GMCVSH+ | GMCVSI+ | GMCVSJ+ | GMCVSK+ | GMCVSL+ | GMCVSM+ | GMCVSN+ | GMCVSO+ | GMCVSR+ | GMCVSS+ | GMCVST+ | GMCVSV+ | GMCVSX+ | GMCVSY+ | GMCVSZ+ | GMCVTC+ | GMCVTD+ | GMCVTF+ | GMCVTG+ | GMCVTH+ | GMCVTJ+ | GMCVTK+ | GMCVTL+ | GMCVTM+ | GMCVTN+ | GMCVTO+ | GMCVTR+ | GMCVTT+ | GMCVTV+ | GMCVTW+ | GMCVTZ+ | GMCVUA+ | GMCVUG+ | GMCVUM+ | GMCVUS+ | GMCVUY+ | GMCVUZ+ | GMCVVA+ | GMCVVC+ | GMCVVE+ | GMCVVG+ | GMCVVI+ | GMCVVN+ | GMCVVU+ | GMCVWF+ | GMCVWS+ | GMCVYE+ | GMCVYT+ | GMCVZA+ | GMCVZM+ | GMCVZW+ deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText GeoMatchConstraintValue where+ parser = takeLowerText >>= \case+ "ad" -> pure GMCVAD+ "ae" -> pure GMCVAE+ "af" -> pure GMCVAF+ "ag" -> pure GMCVAG+ "ai" -> pure GMCVAI+ "al" -> pure GMCVAL+ "am" -> pure GMCVAM+ "ao" -> pure GMCVAO+ "aq" -> pure GMCVAQ+ "ar" -> pure GMCVAR+ "as" -> pure GMCVAS+ "at" -> pure GMCVAT+ "au" -> pure GMCVAU+ "aw" -> pure GMCVAW+ "ax" -> pure GMCVAX+ "az" -> pure GMCVAZ+ "ba" -> pure GMCVBA+ "bb" -> pure GMCVBB+ "bd" -> pure GMCVBD+ "be" -> pure GMCVBE+ "bf" -> pure GMCVBF+ "bg" -> pure GMCVBG+ "bh" -> pure GMCVBH+ "bi" -> pure GMCVBI+ "bj" -> pure GMCVBJ+ "bl" -> pure GMCVBL+ "bm" -> pure GMCVBM+ "bn" -> pure GMCVBN+ "bo" -> pure GMCVBO+ "bq" -> pure GMCVBQ+ "br" -> pure GMCVBR+ "bs" -> pure GMCVBS+ "bt" -> pure GMCVBT+ "bv" -> pure GMCVBV+ "bw" -> pure GMCVBW+ "by" -> pure GMCVBY+ "bz" -> pure GMCVBZ+ "ca" -> pure GMCVCA+ "cc" -> pure GMCVCC+ "cd" -> pure GMCVCD+ "cf" -> pure GMCVCF+ "cg" -> pure GMCVCG+ "ch" -> pure GMCVCH+ "ci" -> pure GMCVCI+ "ck" -> pure GMCVCK+ "cl" -> pure GMCVCL+ "cm" -> pure GMCVCM+ "cn" -> pure GMCVCN+ "co" -> pure GMCVCO+ "cr" -> pure GMCVCR+ "cu" -> pure GMCVCU+ "cv" -> pure GMCVCV+ "cw" -> pure GMCVCW+ "cx" -> pure GMCVCX+ "cy" -> pure GMCVCY+ "cz" -> pure GMCVCZ+ "de" -> pure GMCVDE+ "dj" -> pure GMCVDJ+ "dk" -> pure GMCVDK+ "dm" -> pure GMCVDM+ "do" -> pure GMCVDO+ "dz" -> pure GMCVDZ+ "ec" -> pure GMCVEC+ "ee" -> pure GMCVEE+ "eg" -> pure GMCVEG+ "eh" -> pure GMCVEH+ "er" -> pure GMCVER+ "es" -> pure GMCVES+ "et" -> pure GMCVET+ "fi" -> pure GMCVFI+ "fj" -> pure GMCVFJ+ "fk" -> pure GMCVFK+ "fm" -> pure GMCVFM+ "fo" -> pure GMCVFO+ "fr" -> pure GMCVFR+ "ga" -> pure GMCVGA+ "gb" -> pure GMCVGB+ "gd" -> pure GMCVGD+ "ge" -> pure GMCVGE+ "gf" -> pure GMCVGF+ "gg" -> pure GMCVGG+ "gh" -> pure GMCVGH+ "gi" -> pure GMCVGI+ "gl" -> pure GMCVGL+ "gm" -> pure GMCVGM+ "gn" -> pure GMCVGN+ "gp" -> pure GMCVGP+ "gq" -> pure GMCVGQ+ "gr" -> pure GMCVGR+ "gs" -> pure GMCVGS+ "gt" -> pure GMCVGT'+ "gu" -> pure GMCVGU+ "gw" -> pure GMCVGW+ "gy" -> pure GMCVGY+ "hk" -> pure GMCVHK+ "hm" -> pure GMCVHM+ "hn" -> pure GMCVHN+ "hr" -> pure GMCVHR+ "ht" -> pure GMCVHT+ "hu" -> pure GMCVHU+ "ie" -> pure GMCVIE+ "il" -> pure GMCVIL+ "im" -> pure GMCVIM+ "in" -> pure GMCVIN+ "io" -> pure GMCVIO+ "iq" -> pure GMCVIQ+ "ir" -> pure GMCVIR+ "is" -> pure GMCVIS+ "it" -> pure GMCVIT+ "id" -> pure GMCVId+ "je" -> pure GMCVJE+ "jm" -> pure GMCVJM+ "jo" -> pure GMCVJO+ "jp" -> pure GMCVJP+ "ke" -> pure GMCVKE+ "kg" -> pure GMCVKG+ "kh" -> pure GMCVKH+ "ki" -> pure GMCVKI+ "km" -> pure GMCVKM+ "kn" -> pure GMCVKN+ "kp" -> pure GMCVKP+ "kr" -> pure GMCVKR+ "kw" -> pure GMCVKW+ "ky" -> pure GMCVKY+ "kz" -> pure GMCVKZ+ "la" -> pure GMCVLA+ "lb" -> pure GMCVLB+ "lc" -> pure GMCVLC+ "li" -> pure GMCVLI+ "lk" -> pure GMCVLK+ "lr" -> pure GMCVLR+ "ls" -> pure GMCVLS+ "lt" -> pure GMCVLT'+ "lu" -> pure GMCVLU+ "lv" -> pure GMCVLV+ "ly" -> pure GMCVLY+ "ma" -> pure GMCVMA+ "mc" -> pure GMCVMC+ "md" -> pure GMCVMD+ "me" -> pure GMCVME+ "mf" -> pure GMCVMF+ "mg" -> pure GMCVMG+ "mh" -> pure GMCVMH+ "mk" -> pure GMCVMK+ "ml" -> pure GMCVML+ "mm" -> pure GMCVMM+ "mn" -> pure GMCVMN+ "mo" -> pure GMCVMO+ "mp" -> pure GMCVMP+ "mq" -> pure GMCVMQ+ "mr" -> pure GMCVMR+ "ms" -> pure GMCVMS+ "mt" -> pure GMCVMT+ "mu" -> pure GMCVMU+ "mv" -> pure GMCVMV+ "mw" -> pure GMCVMW+ "mx" -> pure GMCVMX+ "my" -> pure GMCVMY+ "mz" -> pure GMCVMZ+ "na" -> pure GMCVNA+ "nc" -> pure GMCVNC+ "ne" -> pure GMCVNE+ "nf" -> pure GMCVNF+ "ng" -> pure GMCVNG+ "ni" -> pure GMCVNI+ "nl" -> pure GMCVNL+ "no" -> pure GMCVNO+ "np" -> pure GMCVNP+ "nr" -> pure GMCVNR+ "nu" -> pure GMCVNU+ "nz" -> pure GMCVNZ+ "om" -> pure GMCVOM+ "pa" -> pure GMCVPA+ "pe" -> pure GMCVPE+ "pf" -> pure GMCVPF+ "pg" -> pure GMCVPG+ "ph" -> pure GMCVPH+ "pk" -> pure GMCVPK+ "pl" -> pure GMCVPL+ "pm" -> pure GMCVPM+ "pn" -> pure GMCVPN+ "pr" -> pure GMCVPR+ "ps" -> pure GMCVPS+ "pt" -> pure GMCVPT+ "pw" -> pure GMCVPW+ "py" -> pure GMCVPY+ "qa" -> pure GMCVQA+ "re" -> pure GMCVRE+ "ro" -> pure GMCVRO+ "rs" -> pure GMCVRS+ "ru" -> pure GMCVRU+ "rw" -> pure GMCVRW+ "sa" -> pure GMCVSA+ "sb" -> pure GMCVSB+ "sc" -> pure GMCVSC+ "sd" -> pure GMCVSD+ "se" -> pure GMCVSE+ "sg" -> pure GMCVSG+ "sh" -> pure GMCVSH+ "si" -> pure GMCVSI+ "sj" -> pure GMCVSJ+ "sk" -> pure GMCVSK+ "sl" -> pure GMCVSL+ "sm" -> pure GMCVSM+ "sn" -> pure GMCVSN+ "so" -> pure GMCVSO+ "sr" -> pure GMCVSR+ "ss" -> pure GMCVSS+ "st" -> pure GMCVST+ "sv" -> pure GMCVSV+ "sx" -> pure GMCVSX+ "sy" -> pure GMCVSY+ "sz" -> pure GMCVSZ+ "tc" -> pure GMCVTC+ "td" -> pure GMCVTD+ "tf" -> pure GMCVTF+ "tg" -> pure GMCVTG+ "th" -> pure GMCVTH+ "tj" -> pure GMCVTJ+ "tk" -> pure GMCVTK+ "tl" -> pure GMCVTL+ "tm" -> pure GMCVTM+ "tn" -> pure GMCVTN+ "to" -> pure GMCVTO+ "tr" -> pure GMCVTR+ "tt" -> pure GMCVTT+ "tv" -> pure GMCVTV+ "tw" -> pure GMCVTW+ "tz" -> pure GMCVTZ+ "ua" -> pure GMCVUA+ "ug" -> pure GMCVUG+ "um" -> pure GMCVUM+ "us" -> pure GMCVUS+ "uy" -> pure GMCVUY+ "uz" -> pure GMCVUZ+ "va" -> pure GMCVVA+ "vc" -> pure GMCVVC+ "ve" -> pure GMCVVE+ "vg" -> pure GMCVVG+ "vi" -> pure GMCVVI+ "vn" -> pure GMCVVN+ "vu" -> pure GMCVVU+ "wf" -> pure GMCVWF+ "ws" -> pure GMCVWS+ "ye" -> pure GMCVYE+ "yt" -> pure GMCVYT+ "za" -> pure GMCVZA+ "zm" -> pure GMCVZM+ "zw" -> pure GMCVZW+ e -> fromTextError $ "Failure parsing GeoMatchConstraintValue from value: '" <> e+ <> "'. Accepted values: ad, ae, af, ag, ai, al, am, ao, aq, ar, as, at, au, aw, ax, az, ba, bb, bd, be, bf, bg, bh, bi, bj, bl, bm, bn, bo, bq, br, bs, bt, bv, bw, by, bz, ca, cc, cd, cf, cg, ch, ci, ck, cl, cm, cn, co, cr, cu, cv, cw, cx, cy, cz, de, dj, dk, dm, do, dz, ec, ee, eg, eh, er, es, et, fi, fj, fk, fm, fo, fr, ga, gb, gd, ge, gf, gg, gh, gi, gl, gm, gn, gp, gq, gr, gs, gt, gu, gw, gy, hk, hm, hn, hr, ht, hu, ie, il, im, in, io, iq, ir, is, it, id, je, jm, jo, jp, ke, kg, kh, ki, km, kn, kp, kr, kw, ky, kz, la, lb, lc, li, lk, lr, ls, lt, lu, lv, ly, ma, mc, md, me, mf, mg, mh, mk, ml, mm, mn, mo, mp, mq, mr, ms, mt, mu, mv, mw, mx, my, mz, na, nc, ne, nf, ng, ni, nl, no, np, nr, nu, nz, om, pa, pe, pf, pg, ph, pk, pl, pm, pn, pr, ps, pt, pw, py, qa, re, ro, rs, ru, rw, sa, sb, sc, sd, se, sg, sh, si, sj, sk, sl, sm, sn, so, sr, ss, st, sv, sx, sy, sz, tc, td, tf, tg, th, tj, tk, tl, tm, tn, to, tr, tt, tv, tw, tz, ua, ug, um, us, uy, uz, va, vc, ve, vg, vi, vn, vu, wf, ws, ye, yt, za, zm, zw"++instance ToText GeoMatchConstraintValue where+ toText = \case+ GMCVAD -> "AD"+ GMCVAE -> "AE"+ GMCVAF -> "AF"+ GMCVAG -> "AG"+ GMCVAI -> "AI"+ GMCVAL -> "AL"+ GMCVAM -> "AM"+ GMCVAO -> "AO"+ GMCVAQ -> "AQ"+ GMCVAR -> "AR"+ GMCVAS -> "AS"+ GMCVAT -> "AT"+ GMCVAU -> "AU"+ GMCVAW -> "AW"+ GMCVAX -> "AX"+ GMCVAZ -> "AZ"+ GMCVBA -> "BA"+ GMCVBB -> "BB"+ GMCVBD -> "BD"+ GMCVBE -> "BE"+ GMCVBF -> "BF"+ GMCVBG -> "BG"+ GMCVBH -> "BH"+ GMCVBI -> "BI"+ GMCVBJ -> "BJ"+ GMCVBL -> "BL"+ GMCVBM -> "BM"+ GMCVBN -> "BN"+ GMCVBO -> "BO"+ GMCVBQ -> "BQ"+ GMCVBR -> "BR"+ GMCVBS -> "BS"+ GMCVBT -> "BT"+ GMCVBV -> "BV"+ GMCVBW -> "BW"+ GMCVBY -> "BY"+ GMCVBZ -> "BZ"+ GMCVCA -> "CA"+ GMCVCC -> "CC"+ GMCVCD -> "CD"+ GMCVCF -> "CF"+ GMCVCG -> "CG"+ GMCVCH -> "CH"+ GMCVCI -> "CI"+ GMCVCK -> "CK"+ GMCVCL -> "CL"+ GMCVCM -> "CM"+ GMCVCN -> "CN"+ GMCVCO -> "CO"+ GMCVCR -> "CR"+ GMCVCU -> "CU"+ GMCVCV -> "CV"+ GMCVCW -> "CW"+ GMCVCX -> "CX"+ GMCVCY -> "CY"+ GMCVCZ -> "CZ"+ GMCVDE -> "DE"+ GMCVDJ -> "DJ"+ GMCVDK -> "DK"+ GMCVDM -> "DM"+ GMCVDO -> "DO"+ GMCVDZ -> "DZ"+ GMCVEC -> "EC"+ GMCVEE -> "EE"+ GMCVEG -> "EG"+ GMCVEH -> "EH"+ GMCVER -> "ER"+ GMCVES -> "ES"+ GMCVET -> "ET"+ GMCVFI -> "FI"+ GMCVFJ -> "FJ"+ GMCVFK -> "FK"+ GMCVFM -> "FM"+ GMCVFO -> "FO"+ GMCVFR -> "FR"+ GMCVGA -> "GA"+ GMCVGB -> "GB"+ GMCVGD -> "GD"+ GMCVGE -> "GE"+ GMCVGF -> "GF"+ GMCVGG -> "GG"+ GMCVGH -> "GH"+ GMCVGI -> "GI"+ GMCVGL -> "GL"+ GMCVGM -> "GM"+ GMCVGN -> "GN"+ GMCVGP -> "GP"+ GMCVGQ -> "GQ"+ GMCVGR -> "GR"+ GMCVGS -> "GS"+ GMCVGT' -> "GT"+ GMCVGU -> "GU"+ GMCVGW -> "GW"+ GMCVGY -> "GY"+ GMCVHK -> "HK"+ GMCVHM -> "HM"+ GMCVHN -> "HN"+ GMCVHR -> "HR"+ GMCVHT -> "HT"+ GMCVHU -> "HU"+ GMCVIE -> "IE"+ GMCVIL -> "IL"+ GMCVIM -> "IM"+ GMCVIN -> "IN"+ GMCVIO -> "IO"+ GMCVIQ -> "IQ"+ GMCVIR -> "IR"+ GMCVIS -> "IS"+ GMCVIT -> "IT"+ GMCVId -> "ID"+ GMCVJE -> "JE"+ GMCVJM -> "JM"+ GMCVJO -> "JO"+ GMCVJP -> "JP"+ GMCVKE -> "KE"+ GMCVKG -> "KG"+ GMCVKH -> "KH"+ GMCVKI -> "KI"+ GMCVKM -> "KM"+ GMCVKN -> "KN"+ GMCVKP -> "KP"+ GMCVKR -> "KR"+ GMCVKW -> "KW"+ GMCVKY -> "KY"+ GMCVKZ -> "KZ"+ GMCVLA -> "LA"+ GMCVLB -> "LB"+ GMCVLC -> "LC"+ GMCVLI -> "LI"+ GMCVLK -> "LK"+ GMCVLR -> "LR"+ GMCVLS -> "LS"+ GMCVLT' -> "LT"+ GMCVLU -> "LU"+ GMCVLV -> "LV"+ GMCVLY -> "LY"+ GMCVMA -> "MA"+ GMCVMC -> "MC"+ GMCVMD -> "MD"+ GMCVME -> "ME"+ GMCVMF -> "MF"+ GMCVMG -> "MG"+ GMCVMH -> "MH"+ GMCVMK -> "MK"+ GMCVML -> "ML"+ GMCVMM -> "MM"+ GMCVMN -> "MN"+ GMCVMO -> "MO"+ GMCVMP -> "MP"+ GMCVMQ -> "MQ"+ GMCVMR -> "MR"+ GMCVMS -> "MS"+ GMCVMT -> "MT"+ GMCVMU -> "MU"+ GMCVMV -> "MV"+ GMCVMW -> "MW"+ GMCVMX -> "MX"+ GMCVMY -> "MY"+ GMCVMZ -> "MZ"+ GMCVNA -> "NA"+ GMCVNC -> "NC"+ GMCVNE -> "NE"+ GMCVNF -> "NF"+ GMCVNG -> "NG"+ GMCVNI -> "NI"+ GMCVNL -> "NL"+ GMCVNO -> "NO"+ GMCVNP -> "NP"+ GMCVNR -> "NR"+ GMCVNU -> "NU"+ GMCVNZ -> "NZ"+ GMCVOM -> "OM"+ GMCVPA -> "PA"+ GMCVPE -> "PE"+ GMCVPF -> "PF"+ GMCVPG -> "PG"+ GMCVPH -> "PH"+ GMCVPK -> "PK"+ GMCVPL -> "PL"+ GMCVPM -> "PM"+ GMCVPN -> "PN"+ GMCVPR -> "PR"+ GMCVPS -> "PS"+ GMCVPT -> "PT"+ GMCVPW -> "PW"+ GMCVPY -> "PY"+ GMCVQA -> "QA"+ GMCVRE -> "RE"+ GMCVRO -> "RO"+ GMCVRS -> "RS"+ GMCVRU -> "RU"+ GMCVRW -> "RW"+ GMCVSA -> "SA"+ GMCVSB -> "SB"+ GMCVSC -> "SC"+ GMCVSD -> "SD"+ GMCVSE -> "SE"+ GMCVSG -> "SG"+ GMCVSH -> "SH"+ GMCVSI -> "SI"+ GMCVSJ -> "SJ"+ GMCVSK -> "SK"+ GMCVSL -> "SL"+ GMCVSM -> "SM"+ GMCVSN -> "SN"+ GMCVSO -> "SO"+ GMCVSR -> "SR"+ GMCVSS -> "SS"+ GMCVST -> "ST"+ GMCVSV -> "SV"+ GMCVSX -> "SX"+ GMCVSY -> "SY"+ GMCVSZ -> "SZ"+ GMCVTC -> "TC"+ GMCVTD -> "TD"+ GMCVTF -> "TF"+ GMCVTG -> "TG"+ GMCVTH -> "TH"+ GMCVTJ -> "TJ"+ GMCVTK -> "TK"+ GMCVTL -> "TL"+ GMCVTM -> "TM"+ GMCVTN -> "TN"+ GMCVTO -> "TO"+ GMCVTR -> "TR"+ GMCVTT -> "TT"+ GMCVTV -> "TV"+ GMCVTW -> "TW"+ GMCVTZ -> "TZ"+ GMCVUA -> "UA"+ GMCVUG -> "UG"+ GMCVUM -> "UM"+ GMCVUS -> "US"+ GMCVUY -> "UY"+ GMCVUZ -> "UZ"+ GMCVVA -> "VA"+ GMCVVC -> "VC"+ GMCVVE -> "VE"+ GMCVVG -> "VG"+ GMCVVI -> "VI"+ GMCVVN -> "VN"+ GMCVVU -> "VU"+ GMCVWF -> "WF"+ GMCVWS -> "WS"+ GMCVYE -> "YE"+ GMCVYT -> "YT"+ GMCVZA -> "ZA"+ GMCVZM -> "ZM"+ GMCVZW -> "ZW"++instance Hashable GeoMatchConstraintValue+instance NFData GeoMatchConstraintValue+instance ToByteString GeoMatchConstraintValue+instance ToQuery GeoMatchConstraintValue+instance ToHeader GeoMatchConstraintValue++instance ToJSON GeoMatchConstraintValue where+ toJSON = toJSONText++instance FromJSON GeoMatchConstraintValue where+ parseJSON = parseJSONText "GeoMatchConstraintValue"+ data IPSetDescriptorType- = IPV4- | IPV6- deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)+ = IPV4+ | IPV6+ deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic) + instance FromText IPSetDescriptorType where parser = takeLowerText >>= \case "ipv4" -> pure IPV4@@ -145,13 +947,14 @@ parseJSON = parseJSONText "IPSetDescriptorType" data MatchFieldType- = Body- | Header- | Method- | QueryString- | URI- deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)+ = Body+ | Header+ | Method+ | QueryString+ | URI+ deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic) + instance FromText MatchFieldType where parser = takeLowerText >>= \case "body" -> pure Body@@ -183,13 +986,14 @@ parseJSON = parseJSONText "MatchFieldType" data PositionalConstraint- = Contains- | ContainsWord- | EndsWith- | Exactly- | StartsWith- deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)+ = Contains+ | ContainsWord+ | EndsWith+ | Exactly+ | StartsWith+ deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic) + instance FromText PositionalConstraint where parser = takeLowerText >>= \case "contains" -> pure Contains@@ -221,27 +1025,34 @@ parseJSON = parseJSONText "PositionalConstraint" data PredicateType- = ByteMatch- | IPMatch- | SizeConstraint- | SqlInjectionMatch- | XSSMatch- deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)+ = ByteMatch+ | GeoMatch+ | IPMatch+ | RegexMatch+ | SizeConstraint+ | SqlInjectionMatch+ | XSSMatch+ deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic) + instance FromText PredicateType where parser = takeLowerText >>= \case "bytematch" -> pure ByteMatch+ "geomatch" -> pure GeoMatch "ipmatch" -> pure IPMatch+ "regexmatch" -> pure RegexMatch "sizeconstraint" -> pure SizeConstraint "sqlinjectionmatch" -> pure SqlInjectionMatch "xssmatch" -> pure XSSMatch e -> fromTextError $ "Failure parsing PredicateType from value: '" <> e- <> "'. Accepted values: bytematch, ipmatch, sizeconstraint, sqlinjectionmatch, xssmatch"+ <> "'. Accepted values: bytematch, geomatch, ipmatch, regexmatch, sizeconstraint, sqlinjectionmatch, xssmatch" instance ToText PredicateType where toText = \case ByteMatch -> "ByteMatch"+ GeoMatch -> "GeoMatch" IPMatch -> "IPMatch"+ RegexMatch -> "RegexMatch" SizeConstraint -> "SizeConstraint" SqlInjectionMatch -> "SqlInjectionMatch" XSSMatch -> "XssMatch"@@ -258,15 +1069,43 @@ instance FromJSON PredicateType where parseJSON = parseJSONText "PredicateType" +data RateKey =+ IP+ deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText RateKey where+ parser = takeLowerText >>= \case+ "ip" -> pure IP+ e -> fromTextError $ "Failure parsing RateKey from value: '" <> e+ <> "'. Accepted values: ip"++instance ToText RateKey where+ toText = \case+ IP -> "IP"++instance Hashable RateKey+instance NFData RateKey+instance ToByteString RateKey+instance ToQuery RateKey+instance ToHeader RateKey++instance ToJSON RateKey where+ toJSON = toJSONText++instance FromJSON RateKey where+ parseJSON = parseJSONText "RateKey"+ data TextTransformation- = CmdLine- | CompressWhiteSpace- | HTMLEntityDecode- | Lowercase- | None- | URLDecode- deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)+ = CmdLine+ | CompressWhiteSpace+ | HTMLEntityDecode+ | Lowercase+ | None+ | URLDecode+ deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic) + instance FromText TextTransformation where parser = takeLowerText >>= \case "cmd_line" -> pure CmdLine@@ -300,11 +1139,12 @@ parseJSON = parseJSONText "TextTransformation" data WafActionType- = Allow- | Block- | Count- deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)+ = Allow+ | Block+ | Count+ deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic) + instance FromText WafActionType where parser = takeLowerText >>= \case "allow" -> pure Allow@@ -330,3 +1170,33 @@ instance FromJSON WafActionType where parseJSON = parseJSONText "WafActionType"++data WafRuleType+ = RateBased+ | Regular+ deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText WafRuleType where+ parser = takeLowerText >>= \case+ "rate_based" -> pure RateBased+ "regular" -> pure Regular+ e -> fromTextError $ "Failure parsing WafRuleType from value: '" <> e+ <> "'. Accepted values: rate_based, regular"++instance ToText WafRuleType where+ toText = \case+ RateBased -> "RATE_BASED"+ Regular -> "REGULAR"++instance Hashable WafRuleType+instance NFData WafRuleType+instance ToByteString WafRuleType+instance ToQuery WafRuleType+instance ToHeader WafRuleType++instance ToJSON WafRuleType where+ toJSON = toJSONText++instance FromJSON WafRuleType where+ parseJSON = parseJSONText "WafRuleType"
gen/Network/AWS/WAF/UpdateByteMatchSet.hs view
@@ -12,9 +12,9 @@ -- | -- Module : Network.AWS.WAF.UpdateByteMatchSet--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) --@@ -65,20 +65,21 @@ , ubmsrsResponseStatus ) where -import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response-import Network.AWS.WAF.Types-import Network.AWS.WAF.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.WAF.Types+import Network.AWS.WAF.Types.Product -- | /See:/ 'updateByteMatchSet' smart constructor. data UpdateByteMatchSet = UpdateByteMatchSet'- { _ubmsByteMatchSetId :: !Text- , _ubmsChangeToken :: !Text- , _ubmsUpdates :: ![ByteMatchSetUpdate]- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _ubmsByteMatchSetId :: !Text+ , _ubmsChangeToken :: !Text+ , _ubmsUpdates :: !(List1 ByteMatchSetUpdate)+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'UpdateByteMatchSet' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -91,14 +92,16 @@ updateByteMatchSet :: Text -- ^ 'ubmsByteMatchSetId' -> Text -- ^ 'ubmsChangeToken'+ -> NonEmpty ByteMatchSetUpdate -- ^ 'ubmsUpdates' -> UpdateByteMatchSet-updateByteMatchSet pByteMatchSetId_ pChangeToken_ =- UpdateByteMatchSet'- { _ubmsByteMatchSetId = pByteMatchSetId_- , _ubmsChangeToken = pChangeToken_- , _ubmsUpdates = mempty- }+updateByteMatchSet pByteMatchSetId_ pChangeToken_ pUpdates_ =+ UpdateByteMatchSet'+ { _ubmsByteMatchSetId = pByteMatchSetId_+ , _ubmsChangeToken = pChangeToken_+ , _ubmsUpdates = _List1 # pUpdates_+ } + -- | The @ByteMatchSetId@ of the 'ByteMatchSet' that you want to update. @ByteMatchSetId@ is returned by 'CreateByteMatchSet' and by 'ListByteMatchSets' . ubmsByteMatchSetId :: Lens' UpdateByteMatchSet Text ubmsByteMatchSetId = lens _ubmsByteMatchSetId (\ s a -> s{_ubmsByteMatchSetId = a});@@ -108,8 +111,8 @@ ubmsChangeToken = lens _ubmsChangeToken (\ s a -> s{_ubmsChangeToken = a}); -- | An array of @ByteMatchSetUpdate@ objects that you want to insert into or delete from a 'ByteMatchSet' . For more information, see the applicable data types: * 'ByteMatchSetUpdate' : Contains @Action@ and @ByteMatchTuple@ * 'ByteMatchTuple' : Contains @FieldToMatch@ , @PositionalConstraint@ , @TargetString@ , and @TextTransformation@ * 'FieldToMatch' : Contains @Data@ and @Type@-ubmsUpdates :: Lens' UpdateByteMatchSet [ByteMatchSetUpdate]-ubmsUpdates = lens _ubmsUpdates (\ s a -> s{_ubmsUpdates = a}) . _Coerce;+ubmsUpdates :: Lens' UpdateByteMatchSet (NonEmpty ByteMatchSetUpdate)+ubmsUpdates = lens _ubmsUpdates (\ s a -> s{_ubmsUpdates = a}) . _List1; instance AWSRequest UpdateByteMatchSet where type Rs UpdateByteMatchSet =@@ -121,9 +124,9 @@ UpdateByteMatchSetResponse' <$> (x .?> "ChangeToken") <*> (pure (fromEnum s))) -instance Hashable UpdateByteMatchSet+instance Hashable UpdateByteMatchSet where -instance NFData UpdateByteMatchSet+instance NFData UpdateByteMatchSet where instance ToHeaders UpdateByteMatchSet where toHeaders@@ -150,10 +153,11 @@ -- | /See:/ 'updateByteMatchSetResponse' smart constructor. data UpdateByteMatchSetResponse = UpdateByteMatchSetResponse'- { _ubmsrsChangeToken :: !(Maybe Text)- , _ubmsrsResponseStatus :: !Int- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _ubmsrsChangeToken :: !(Maybe Text)+ , _ubmsrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'UpdateByteMatchSetResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -165,11 +169,10 @@ :: Int -- ^ 'ubmsrsResponseStatus' -> UpdateByteMatchSetResponse updateByteMatchSetResponse pResponseStatus_ =- UpdateByteMatchSetResponse'- { _ubmsrsChangeToken = Nothing- , _ubmsrsResponseStatus = pResponseStatus_- }+ UpdateByteMatchSetResponse'+ {_ubmsrsChangeToken = Nothing, _ubmsrsResponseStatus = pResponseStatus_} + -- | The @ChangeToken@ that you used to submit the @UpdateByteMatchSet@ request. You can also use this value to query the status of the request. For more information, see 'GetChangeTokenStatus' . ubmsrsChangeToken :: Lens' UpdateByteMatchSetResponse (Maybe Text) ubmsrsChangeToken = lens _ubmsrsChangeToken (\ s a -> s{_ubmsrsChangeToken = a});@@ -178,4 +181,4 @@ ubmsrsResponseStatus :: Lens' UpdateByteMatchSetResponse Int ubmsrsResponseStatus = lens _ubmsrsResponseStatus (\ s a -> s{_ubmsrsResponseStatus = a}); -instance NFData UpdateByteMatchSetResponse+instance NFData UpdateByteMatchSetResponse where
+ gen/Network/AWS/WAF/UpdateGeoMatchSet.hs view
@@ -0,0 +1,179 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Network.AWS.WAF.UpdateGeoMatchSet+-- Copyright : (c) 2013-2017 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Inserts or deletes 'GeoMatchConstraint' objects in an @GeoMatchSet@ . For each @GeoMatchConstraint@ object, you specify the following values:+--+--+-- * Whether to insert or delete the object from the array. If you want to change an @GeoMatchConstraint@ object, you delete the existing object and add a new one.+--+-- * The @Type@ . The only valid value for @Type@ is @Country@ .+--+-- * The @Value@ , which is a two character code for the country to add to the @GeoMatchConstraint@ object. Valid codes are listed in 'GeoMatchConstraint$Value' .+--+--+--+-- To create and configure an @GeoMatchSet@ , perform the following steps:+--+-- * Submit a 'CreateGeoMatchSet' request.+--+-- * Use 'GetChangeToken' to get the change token that you provide in the @ChangeToken@ parameter of an 'UpdateGeoMatchSet' request.+--+-- * Submit an @UpdateGeoMatchSet@ request to specify the country that you want AWS WAF to watch for.+--+--+--+-- When you update an @GeoMatchSet@ , you specify the country that you want to add and/or the country that you want to delete. If you want to change a country, you delete the existing country and add the new one.+--+-- For more information about how to use the AWS WAF API to allow or block HTTP requests, see the <http://docs.aws.amazon.com/waf/latest/developerguide/ AWS WAF Developer Guide> .+--+module Network.AWS.WAF.UpdateGeoMatchSet+ (+ -- * Creating a Request+ updateGeoMatchSet+ , UpdateGeoMatchSet+ -- * Request Lenses+ , ugmsGeoMatchSetId+ , ugmsChangeToken+ , ugmsUpdates++ -- * Destructuring the Response+ , updateGeoMatchSetResponse+ , UpdateGeoMatchSetResponse+ -- * Response Lenses+ , ugmsrsChangeToken+ , ugmsrsResponseStatus+ ) where++import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.WAF.Types+import Network.AWS.WAF.Types.Product++-- | /See:/ 'updateGeoMatchSet' smart constructor.+data UpdateGeoMatchSet = UpdateGeoMatchSet'+ { _ugmsGeoMatchSetId :: !Text+ , _ugmsChangeToken :: !Text+ , _ugmsUpdates :: !(List1 GeoMatchSetUpdate)+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UpdateGeoMatchSet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ugmsGeoMatchSetId' - The @GeoMatchSetId@ of the 'GeoMatchSet' that you want to update. @GeoMatchSetId@ is returned by 'CreateGeoMatchSet' and by 'ListGeoMatchSets' .+--+-- * 'ugmsChangeToken' - The value returned by the most recent call to 'GetChangeToken' .+--+-- * 'ugmsUpdates' - An array of @GeoMatchSetUpdate@ objects that you want to insert into or delete from an 'GeoMatchSet' . For more information, see the applicable data types: * 'GeoMatchSetUpdate' : Contains @Action@ and @GeoMatchConstraint@ * 'GeoMatchConstraint' : Contains @Type@ and @Value@ You can have only one @Type@ and @Value@ per @GeoMatchConstraint@ . To add multiple countries, include multiple @GeoMatchSetUpdate@ objects in your request.+updateGeoMatchSet+ :: Text -- ^ 'ugmsGeoMatchSetId'+ -> Text -- ^ 'ugmsChangeToken'+ -> NonEmpty GeoMatchSetUpdate -- ^ 'ugmsUpdates'+ -> UpdateGeoMatchSet+updateGeoMatchSet pGeoMatchSetId_ pChangeToken_ pUpdates_ =+ UpdateGeoMatchSet'+ { _ugmsGeoMatchSetId = pGeoMatchSetId_+ , _ugmsChangeToken = pChangeToken_+ , _ugmsUpdates = _List1 # pUpdates_+ }+++-- | The @GeoMatchSetId@ of the 'GeoMatchSet' that you want to update. @GeoMatchSetId@ is returned by 'CreateGeoMatchSet' and by 'ListGeoMatchSets' .+ugmsGeoMatchSetId :: Lens' UpdateGeoMatchSet Text+ugmsGeoMatchSetId = lens _ugmsGeoMatchSetId (\ s a -> s{_ugmsGeoMatchSetId = a});++-- | The value returned by the most recent call to 'GetChangeToken' .+ugmsChangeToken :: Lens' UpdateGeoMatchSet Text+ugmsChangeToken = lens _ugmsChangeToken (\ s a -> s{_ugmsChangeToken = a});++-- | An array of @GeoMatchSetUpdate@ objects that you want to insert into or delete from an 'GeoMatchSet' . For more information, see the applicable data types: * 'GeoMatchSetUpdate' : Contains @Action@ and @GeoMatchConstraint@ * 'GeoMatchConstraint' : Contains @Type@ and @Value@ You can have only one @Type@ and @Value@ per @GeoMatchConstraint@ . To add multiple countries, include multiple @GeoMatchSetUpdate@ objects in your request.+ugmsUpdates :: Lens' UpdateGeoMatchSet (NonEmpty GeoMatchSetUpdate)+ugmsUpdates = lens _ugmsUpdates (\ s a -> s{_ugmsUpdates = a}) . _List1;++instance AWSRequest UpdateGeoMatchSet where+ type Rs UpdateGeoMatchSet = UpdateGeoMatchSetResponse+ request = postJSON waf+ response+ = receiveJSON+ (\ s h x ->+ UpdateGeoMatchSetResponse' <$>+ (x .?> "ChangeToken") <*> (pure (fromEnum s)))++instance Hashable UpdateGeoMatchSet where++instance NFData UpdateGeoMatchSet where++instance ToHeaders UpdateGeoMatchSet where+ toHeaders+ = const+ (mconcat+ ["X-Amz-Target" =#+ ("AWSWAF_20150824.UpdateGeoMatchSet" :: ByteString),+ "Content-Type" =#+ ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON UpdateGeoMatchSet where+ toJSON UpdateGeoMatchSet'{..}+ = object+ (catMaybes+ [Just ("GeoMatchSetId" .= _ugmsGeoMatchSetId),+ Just ("ChangeToken" .= _ugmsChangeToken),+ Just ("Updates" .= _ugmsUpdates)])++instance ToPath UpdateGeoMatchSet where+ toPath = const "/"++instance ToQuery UpdateGeoMatchSet where+ toQuery = const mempty++-- | /See:/ 'updateGeoMatchSetResponse' smart constructor.+data UpdateGeoMatchSetResponse = UpdateGeoMatchSetResponse'+ { _ugmsrsChangeToken :: !(Maybe Text)+ , _ugmsrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UpdateGeoMatchSetResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ugmsrsChangeToken' - The @ChangeToken@ that you used to submit the @UpdateGeoMatchSet@ request. You can also use this value to query the status of the request. For more information, see 'GetChangeTokenStatus' .+--+-- * 'ugmsrsResponseStatus' - -- | The response status code.+updateGeoMatchSetResponse+ :: Int -- ^ 'ugmsrsResponseStatus'+ -> UpdateGeoMatchSetResponse+updateGeoMatchSetResponse pResponseStatus_ =+ UpdateGeoMatchSetResponse'+ {_ugmsrsChangeToken = Nothing, _ugmsrsResponseStatus = pResponseStatus_}+++-- | The @ChangeToken@ that you used to submit the @UpdateGeoMatchSet@ request. You can also use this value to query the status of the request. For more information, see 'GetChangeTokenStatus' .+ugmsrsChangeToken :: Lens' UpdateGeoMatchSetResponse (Maybe Text)+ugmsrsChangeToken = lens _ugmsrsChangeToken (\ s a -> s{_ugmsrsChangeToken = a});++-- | -- | The response status code.+ugmsrsResponseStatus :: Lens' UpdateGeoMatchSetResponse Int+ugmsrsResponseStatus = lens _ugmsrsResponseStatus (\ s a -> s{_ugmsrsResponseStatus = a});++instance NFData UpdateGeoMatchSetResponse where
gen/Network/AWS/WAF/UpdateIPSet.hs view
@@ -12,9 +12,9 @@ -- | -- Module : Network.AWS.WAF.UpdateIPSet--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) --@@ -23,14 +23,26 @@ -- -- * Whether to insert or delete the object from the array. If you want to change an @IPSetDescriptor@ object, you delete the existing object and add a new one. ----- * The IP address version, @IPv4@ .+-- * The IP address version, @IPv4@ or @IPv6@ . -- -- * The IP address in CIDR notation, for example, @192.0.2.0/24@ (for the range of IP addresses from @192.0.2.0@ to @192.0.2.255@ ) or @192.0.2.44/32@ (for the individual IP address @192.0.2.44@ ). -- -- ----- AWS WAF supports /8, /16, /24, and /32 IP address ranges. For more information about CIDR notation, see the Wikipedia entry <https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing Classless Inter-Domain Routing> .+-- AWS WAF supports /8, /16, /24, and /32 IP address ranges for IPv4, and /24, /32, /48, /56, /64 and /128 for IPv6. For more information about CIDR notation, see the Wikipedia entry <https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing Classless Inter-Domain Routing> . --+-- IPv6 addresses can be represented using any of the following formats:+--+-- * 1111:0000:0000:0000:0000:0000:0000:0111/128+--+-- * 1111:0:0:0:0:0:0:0111/128+--+-- * 1111::0111/128+--+-- * 1111::111/128+--+--+-- -- You use an @IPSet@ to specify which web requests you want to allow or block based on the IP addresses that the requests originated from. For example, if you're receiving a lot of requests from one or a small number of IP addresses and you want to block the requests, you can create an @IPSet@ that specifies those IP addresses, and then configure AWS WAF to block the requests. -- -- To create and configure an @IPSet@ , perform the following steps:@@ -65,20 +77,21 @@ , uisrsResponseStatus ) where -import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response-import Network.AWS.WAF.Types-import Network.AWS.WAF.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.WAF.Types+import Network.AWS.WAF.Types.Product -- | /See:/ 'updateIPSet' smart constructor. data UpdateIPSet = UpdateIPSet'- { _uisIPSetId :: !Text- , _uisChangeToken :: !Text- , _uisUpdates :: ![IPSetUpdate]- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _uisIPSetId :: !Text+ , _uisChangeToken :: !Text+ , _uisUpdates :: !(List1 IPSetUpdate)+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'UpdateIPSet' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -91,14 +104,16 @@ updateIPSet :: Text -- ^ 'uisIPSetId' -> Text -- ^ 'uisChangeToken'+ -> NonEmpty IPSetUpdate -- ^ 'uisUpdates' -> UpdateIPSet-updateIPSet pIPSetId_ pChangeToken_ =- UpdateIPSet'- { _uisIPSetId = pIPSetId_- , _uisChangeToken = pChangeToken_- , _uisUpdates = mempty- }+updateIPSet pIPSetId_ pChangeToken_ pUpdates_ =+ UpdateIPSet'+ { _uisIPSetId = pIPSetId_+ , _uisChangeToken = pChangeToken_+ , _uisUpdates = _List1 # pUpdates_+ } + -- | The @IPSetId@ of the 'IPSet' that you want to update. @IPSetId@ is returned by 'CreateIPSet' and by 'ListIPSets' . uisIPSetId :: Lens' UpdateIPSet Text uisIPSetId = lens _uisIPSetId (\ s a -> s{_uisIPSetId = a});@@ -108,8 +123,8 @@ uisChangeToken = lens _uisChangeToken (\ s a -> s{_uisChangeToken = a}); -- | An array of @IPSetUpdate@ objects that you want to insert into or delete from an 'IPSet' . For more information, see the applicable data types: * 'IPSetUpdate' : Contains @Action@ and @IPSetDescriptor@ * 'IPSetDescriptor' : Contains @Type@ and @Value@-uisUpdates :: Lens' UpdateIPSet [IPSetUpdate]-uisUpdates = lens _uisUpdates (\ s a -> s{_uisUpdates = a}) . _Coerce;+uisUpdates :: Lens' UpdateIPSet (NonEmpty IPSetUpdate)+uisUpdates = lens _uisUpdates (\ s a -> s{_uisUpdates = a}) . _List1; instance AWSRequest UpdateIPSet where type Rs UpdateIPSet = UpdateIPSetResponse@@ -120,9 +135,9 @@ UpdateIPSetResponse' <$> (x .?> "ChangeToken") <*> (pure (fromEnum s))) -instance Hashable UpdateIPSet+instance Hashable UpdateIPSet where -instance NFData UpdateIPSet+instance NFData UpdateIPSet where instance ToHeaders UpdateIPSet where toHeaders@@ -149,10 +164,11 @@ -- | /See:/ 'updateIPSetResponse' smart constructor. data UpdateIPSetResponse = UpdateIPSetResponse'- { _uisrsChangeToken :: !(Maybe Text)- , _uisrsResponseStatus :: !Int- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _uisrsChangeToken :: !(Maybe Text)+ , _uisrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'UpdateIPSetResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -164,11 +180,10 @@ :: Int -- ^ 'uisrsResponseStatus' -> UpdateIPSetResponse updateIPSetResponse pResponseStatus_ =- UpdateIPSetResponse'- { _uisrsChangeToken = Nothing- , _uisrsResponseStatus = pResponseStatus_- }+ UpdateIPSetResponse'+ {_uisrsChangeToken = Nothing, _uisrsResponseStatus = pResponseStatus_} + -- | The @ChangeToken@ that you used to submit the @UpdateIPSet@ request. You can also use this value to query the status of the request. For more information, see 'GetChangeTokenStatus' . uisrsChangeToken :: Lens' UpdateIPSetResponse (Maybe Text) uisrsChangeToken = lens _uisrsChangeToken (\ s a -> s{_uisrsChangeToken = a});@@ -177,4 +192,4 @@ uisrsResponseStatus :: Lens' UpdateIPSetResponse Int uisrsResponseStatus = lens _uisrsResponseStatus (\ s a -> s{_uisrsResponseStatus = a}); -instance NFData UpdateIPSetResponse+instance NFData UpdateIPSetResponse where
+ gen/Network/AWS/WAF/UpdateRateBasedRule.hs view
@@ -0,0 +1,197 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Network.AWS.WAF.UpdateRateBasedRule+-- Copyright : (c) 2013-2017 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Inserts or deletes 'Predicate' objects in a rule and updates the @RateLimit@ in the rule.+--+--+-- Each @Predicate@ object identifies a predicate, such as a 'ByteMatchSet' or an 'IPSet' , that specifies the web requests that you want to block or count. The @RateLimit@ specifies the number of requests every five minutes that triggers the rule.+--+-- If you add more than one predicate to a @RateBasedRule@ , a request must match all the predicates and exceed the @RateLimit@ to be counted or blocked. For example, suppose you add the following to a @RateBasedRule@ :+--+-- * An @IPSet@ that matches the IP address @192.0.2.44/32@+--+-- * A @ByteMatchSet@ that matches @BadBot@ in the @User-Agent@ header+--+--+--+-- Further, you specify a @RateLimit@ of 15,000.+--+-- You then add the @RateBasedRule@ to a @WebACL@ and specify that you want to block requests that satisfy the rule. For a request to be blocked, it must come from the IP address 192.0.2.44 /and/ the @User-Agent@ header in the request must contain the value @BadBot@ . Further, requests that match these two conditions much be received at a rate of more than 15,000 every five minutes. If the rate drops below this limit, AWS WAF no longer blocks the requests.+--+-- As a second example, suppose you want to limit requests to a particular page on your site. To do this, you could add the following to a @RateBasedRule@ :+--+-- * A @ByteMatchSet@ with @FieldToMatch@ of @URI@+--+-- * A @PositionalConstraint@ of @STARTS_WITH@+--+-- * A @TargetString@ of @login@+--+--+--+-- Further, you specify a @RateLimit@ of 15,000.+--+-- By adding this @RateBasedRule@ to a @WebACL@ , you could limit requests to your login page without affecting the rest of your site.+--+module Network.AWS.WAF.UpdateRateBasedRule+ (+ -- * Creating a Request+ updateRateBasedRule+ , UpdateRateBasedRule+ -- * Request Lenses+ , urbrRuleId+ , urbrChangeToken+ , urbrUpdates+ , urbrRateLimit++ -- * Destructuring the Response+ , updateRateBasedRuleResponse+ , UpdateRateBasedRuleResponse+ -- * Response Lenses+ , urbrrsChangeToken+ , urbrrsResponseStatus+ ) where++import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.WAF.Types+import Network.AWS.WAF.Types.Product++-- | /See:/ 'updateRateBasedRule' smart constructor.+data UpdateRateBasedRule = UpdateRateBasedRule'+ { _urbrRuleId :: !Text+ , _urbrChangeToken :: !Text+ , _urbrUpdates :: ![RuleUpdate]+ , _urbrRateLimit :: !Nat+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UpdateRateBasedRule' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'urbrRuleId' - The @RuleId@ of the @RateBasedRule@ that you want to update. @RuleId@ is returned by @CreateRateBasedRule@ and by 'ListRateBasedRules' .+--+-- * 'urbrChangeToken' - The value returned by the most recent call to 'GetChangeToken' .+--+-- * 'urbrUpdates' - An array of @RuleUpdate@ objects that you want to insert into or delete from a 'RateBasedRule' .+--+-- * 'urbrRateLimit' - The maximum number of requests, which have an identical value in the field specified by the @RateKey@ , allowed in a five-minute period. If the number of requests exceeds the @RateLimit@ and the other predicates specified in the rule are also met, AWS WAF triggers the action that is specified for this rule.+updateRateBasedRule+ :: Text -- ^ 'urbrRuleId'+ -> Text -- ^ 'urbrChangeToken'+ -> Natural -- ^ 'urbrRateLimit'+ -> UpdateRateBasedRule+updateRateBasedRule pRuleId_ pChangeToken_ pRateLimit_ =+ UpdateRateBasedRule'+ { _urbrRuleId = pRuleId_+ , _urbrChangeToken = pChangeToken_+ , _urbrUpdates = mempty+ , _urbrRateLimit = _Nat # pRateLimit_+ }+++-- | The @RuleId@ of the @RateBasedRule@ that you want to update. @RuleId@ is returned by @CreateRateBasedRule@ and by 'ListRateBasedRules' .+urbrRuleId :: Lens' UpdateRateBasedRule Text+urbrRuleId = lens _urbrRuleId (\ s a -> s{_urbrRuleId = a});++-- | The value returned by the most recent call to 'GetChangeToken' .+urbrChangeToken :: Lens' UpdateRateBasedRule Text+urbrChangeToken = lens _urbrChangeToken (\ s a -> s{_urbrChangeToken = a});++-- | An array of @RuleUpdate@ objects that you want to insert into or delete from a 'RateBasedRule' .+urbrUpdates :: Lens' UpdateRateBasedRule [RuleUpdate]+urbrUpdates = lens _urbrUpdates (\ s a -> s{_urbrUpdates = a}) . _Coerce;++-- | The maximum number of requests, which have an identical value in the field specified by the @RateKey@ , allowed in a five-minute period. If the number of requests exceeds the @RateLimit@ and the other predicates specified in the rule are also met, AWS WAF triggers the action that is specified for this rule.+urbrRateLimit :: Lens' UpdateRateBasedRule Natural+urbrRateLimit = lens _urbrRateLimit (\ s a -> s{_urbrRateLimit = a}) . _Nat;++instance AWSRequest UpdateRateBasedRule where+ type Rs UpdateRateBasedRule =+ UpdateRateBasedRuleResponse+ request = postJSON waf+ response+ = receiveJSON+ (\ s h x ->+ UpdateRateBasedRuleResponse' <$>+ (x .?> "ChangeToken") <*> (pure (fromEnum s)))++instance Hashable UpdateRateBasedRule where++instance NFData UpdateRateBasedRule where++instance ToHeaders UpdateRateBasedRule where+ toHeaders+ = const+ (mconcat+ ["X-Amz-Target" =#+ ("AWSWAF_20150824.UpdateRateBasedRule" ::+ ByteString),+ "Content-Type" =#+ ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON UpdateRateBasedRule where+ toJSON UpdateRateBasedRule'{..}+ = object+ (catMaybes+ [Just ("RuleId" .= _urbrRuleId),+ Just ("ChangeToken" .= _urbrChangeToken),+ Just ("Updates" .= _urbrUpdates),+ Just ("RateLimit" .= _urbrRateLimit)])++instance ToPath UpdateRateBasedRule where+ toPath = const "/"++instance ToQuery UpdateRateBasedRule where+ toQuery = const mempty++-- | /See:/ 'updateRateBasedRuleResponse' smart constructor.+data UpdateRateBasedRuleResponse = UpdateRateBasedRuleResponse'+ { _urbrrsChangeToken :: !(Maybe Text)+ , _urbrrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UpdateRateBasedRuleResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'urbrrsChangeToken' - The @ChangeToken@ that you used to submit the @UpdateRateBasedRule@ request. You can also use this value to query the status of the request. For more information, see 'GetChangeTokenStatus' .+--+-- * 'urbrrsResponseStatus' - -- | The response status code.+updateRateBasedRuleResponse+ :: Int -- ^ 'urbrrsResponseStatus'+ -> UpdateRateBasedRuleResponse+updateRateBasedRuleResponse pResponseStatus_ =+ UpdateRateBasedRuleResponse'+ {_urbrrsChangeToken = Nothing, _urbrrsResponseStatus = pResponseStatus_}+++-- | The @ChangeToken@ that you used to submit the @UpdateRateBasedRule@ request. You can also use this value to query the status of the request. For more information, see 'GetChangeTokenStatus' .+urbrrsChangeToken :: Lens' UpdateRateBasedRuleResponse (Maybe Text)+urbrrsChangeToken = lens _urbrrsChangeToken (\ s a -> s{_urbrrsChangeToken = a});++-- | -- | The response status code.+urbrrsResponseStatus :: Lens' UpdateRateBasedRuleResponse Int+urbrrsResponseStatus = lens _urbrrsResponseStatus (\ s a -> s{_urbrrsResponseStatus = a});++instance NFData UpdateRateBasedRuleResponse where
+ gen/Network/AWS/WAF/UpdateRegexMatchSet.hs view
@@ -0,0 +1,183 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Network.AWS.WAF.UpdateRegexMatchSet+-- Copyright : (c) 2013-2017 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Inserts or deletes 'RegexMatchSetUpdate' objects (filters) in a 'RegexMatchSet' . For each @RegexMatchSetUpdate@ object, you specify the following values:+--+--+-- * Whether to insert or delete the object from the array. If you want to change a @RegexMatchSetUpdate@ object, you delete the existing object and add a new one.+--+-- * The part of a web request that you want AWS WAF to inspect, such as a query string or the value of the @User-Agent@ header.+--+-- * The identifier of the pattern (a regular expression) that you want AWS WAF to look for. For more information, see 'RegexPatternSet' .+--+-- * Whether to perform any conversions on the request, such as converting it to lowercase, before inspecting it for the specified string.+--+--+--+-- For example, you can create a @RegexPatternSet@ that matches any requests with @User-Agent@ headers that contain the string @B[a@]dB[o0]t@ . You can then configure AWS WAF to reject those requests.+--+-- To create and configure a @RegexMatchSet@ , perform the following steps:+--+-- * Create a @RegexMatchSet.@ For more information, see 'CreateRegexMatchSet' .+--+-- * Use 'GetChangeToken' to get the change token that you provide in the @ChangeToken@ parameter of an @UpdateRegexMatchSet@ request.+--+-- * Submit an @UpdateRegexMatchSet@ request to specify the part of the request that you want AWS WAF to inspect (for example, the header or the URI) and the identifier of the @RegexPatternSet@ that contain the regular expression patters you want AWS WAF to watch for.+--+--+--+-- For more information about how to use the AWS WAF API to allow or block HTTP requests, see the <http://docs.aws.amazon.com/waf/latest/developerguide/ AWS WAF Developer Guide> .+--+module Network.AWS.WAF.UpdateRegexMatchSet+ (+ -- * Creating a Request+ updateRegexMatchSet+ , UpdateRegexMatchSet+ -- * Request Lenses+ , urmsRegexMatchSetId+ , urmsUpdates+ , urmsChangeToken++ -- * Destructuring the Response+ , updateRegexMatchSetResponse+ , UpdateRegexMatchSetResponse+ -- * Response Lenses+ , urmsrsChangeToken+ , urmsrsResponseStatus+ ) where++import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.WAF.Types+import Network.AWS.WAF.Types.Product++-- | /See:/ 'updateRegexMatchSet' smart constructor.+data UpdateRegexMatchSet = UpdateRegexMatchSet'+ { _urmsRegexMatchSetId :: !Text+ , _urmsUpdates :: !(List1 RegexMatchSetUpdate)+ , _urmsChangeToken :: !Text+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UpdateRegexMatchSet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'urmsRegexMatchSetId' - The @RegexMatchSetId@ of the 'RegexMatchSet' that you want to update. @RegexMatchSetId@ is returned by 'CreateRegexMatchSet' and by 'ListRegexMatchSets' .+--+-- * 'urmsUpdates' - An array of @RegexMatchSetUpdate@ objects that you want to insert into or delete from a 'RegexMatchSet' . For more information, see 'RegexMatchTuple' .+--+-- * 'urmsChangeToken' - The value returned by the most recent call to 'GetChangeToken' .+updateRegexMatchSet+ :: Text -- ^ 'urmsRegexMatchSetId'+ -> NonEmpty RegexMatchSetUpdate -- ^ 'urmsUpdates'+ -> Text -- ^ 'urmsChangeToken'+ -> UpdateRegexMatchSet+updateRegexMatchSet pRegexMatchSetId_ pUpdates_ pChangeToken_ =+ UpdateRegexMatchSet'+ { _urmsRegexMatchSetId = pRegexMatchSetId_+ , _urmsUpdates = _List1 # pUpdates_+ , _urmsChangeToken = pChangeToken_+ }+++-- | The @RegexMatchSetId@ of the 'RegexMatchSet' that you want to update. @RegexMatchSetId@ is returned by 'CreateRegexMatchSet' and by 'ListRegexMatchSets' .+urmsRegexMatchSetId :: Lens' UpdateRegexMatchSet Text+urmsRegexMatchSetId = lens _urmsRegexMatchSetId (\ s a -> s{_urmsRegexMatchSetId = a});++-- | An array of @RegexMatchSetUpdate@ objects that you want to insert into or delete from a 'RegexMatchSet' . For more information, see 'RegexMatchTuple' .+urmsUpdates :: Lens' UpdateRegexMatchSet (NonEmpty RegexMatchSetUpdate)+urmsUpdates = lens _urmsUpdates (\ s a -> s{_urmsUpdates = a}) . _List1;++-- | The value returned by the most recent call to 'GetChangeToken' .+urmsChangeToken :: Lens' UpdateRegexMatchSet Text+urmsChangeToken = lens _urmsChangeToken (\ s a -> s{_urmsChangeToken = a});++instance AWSRequest UpdateRegexMatchSet where+ type Rs UpdateRegexMatchSet =+ UpdateRegexMatchSetResponse+ request = postJSON waf+ response+ = receiveJSON+ (\ s h x ->+ UpdateRegexMatchSetResponse' <$>+ (x .?> "ChangeToken") <*> (pure (fromEnum s)))++instance Hashable UpdateRegexMatchSet where++instance NFData UpdateRegexMatchSet where++instance ToHeaders UpdateRegexMatchSet where+ toHeaders+ = const+ (mconcat+ ["X-Amz-Target" =#+ ("AWSWAF_20150824.UpdateRegexMatchSet" ::+ ByteString),+ "Content-Type" =#+ ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON UpdateRegexMatchSet where+ toJSON UpdateRegexMatchSet'{..}+ = object+ (catMaybes+ [Just ("RegexMatchSetId" .= _urmsRegexMatchSetId),+ Just ("Updates" .= _urmsUpdates),+ Just ("ChangeToken" .= _urmsChangeToken)])++instance ToPath UpdateRegexMatchSet where+ toPath = const "/"++instance ToQuery UpdateRegexMatchSet where+ toQuery = const mempty++-- | /See:/ 'updateRegexMatchSetResponse' smart constructor.+data UpdateRegexMatchSetResponse = UpdateRegexMatchSetResponse'+ { _urmsrsChangeToken :: !(Maybe Text)+ , _urmsrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UpdateRegexMatchSetResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'urmsrsChangeToken' - The @ChangeToken@ that you used to submit the @UpdateRegexMatchSet@ request. You can also use this value to query the status of the request. For more information, see 'GetChangeTokenStatus' .+--+-- * 'urmsrsResponseStatus' - -- | The response status code.+updateRegexMatchSetResponse+ :: Int -- ^ 'urmsrsResponseStatus'+ -> UpdateRegexMatchSetResponse+updateRegexMatchSetResponse pResponseStatus_ =+ UpdateRegexMatchSetResponse'+ {_urmsrsChangeToken = Nothing, _urmsrsResponseStatus = pResponseStatus_}+++-- | The @ChangeToken@ that you used to submit the @UpdateRegexMatchSet@ request. You can also use this value to query the status of the request. For more information, see 'GetChangeTokenStatus' .+urmsrsChangeToken :: Lens' UpdateRegexMatchSetResponse (Maybe Text)+urmsrsChangeToken = lens _urmsrsChangeToken (\ s a -> s{_urmsrsChangeToken = a});++-- | -- | The response status code.+urmsrsResponseStatus :: Lens' UpdateRegexMatchSetResponse Int+urmsrsResponseStatus = lens _urmsrsResponseStatus (\ s a -> s{_urmsrsResponseStatus = a});++instance NFData UpdateRegexMatchSetResponse where
+ gen/Network/AWS/WAF/UpdateRegexPatternSet.hs view
@@ -0,0 +1,190 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Network.AWS.WAF.UpdateRegexPatternSet+-- Copyright : (c) 2013-2017 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Inserts or deletes 'RegexMatchSetUpdate' objects (filters) in a 'RegexPatternSet' . For each @RegexPatternSet@ object, you specify the following values:+--+--+-- * Whether to insert or delete the object from the array. If you want to change a @RegexPatternSet@ object, you delete the existing object and add a new one.+--+-- * The regular expression pattern that you want AWS WAF to look for. For more information, see 'RegexPatternSet' .+--+--+--+-- For example, you can create a @RegexPatternString@ such as @B[a@]dB[o0]t@ . AWS WAF will match this @RegexPatternString@ to:+--+-- * BadBot+--+-- * BadB0t+--+-- * B@dBot+--+-- * B@dB0t+--+--+--+-- To create and configure a @RegexPatternSet@ , perform the following steps:+--+-- * Create a @RegexPatternSet.@ For more information, see 'CreateRegexPatternSet' .+--+-- * Use 'GetChangeToken' to get the change token that you provide in the @ChangeToken@ parameter of an @UpdateRegexPatternSet@ request.+--+-- * Submit an @UpdateRegexPatternSet@ request to specify the regular expression pattern that you want AWS WAF to watch for.+--+--+--+-- For more information about how to use the AWS WAF API to allow or block HTTP requests, see the <http://docs.aws.amazon.com/waf/latest/developerguide/ AWS WAF Developer Guide> .+--+module Network.AWS.WAF.UpdateRegexPatternSet+ (+ -- * Creating a Request+ updateRegexPatternSet+ , UpdateRegexPatternSet+ -- * Request Lenses+ , urpsRegexPatternSetId+ , urpsUpdates+ , urpsChangeToken++ -- * Destructuring the Response+ , updateRegexPatternSetResponse+ , UpdateRegexPatternSetResponse+ -- * Response Lenses+ , urpsrsChangeToken+ , urpsrsResponseStatus+ ) where++import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.WAF.Types+import Network.AWS.WAF.Types.Product++-- | /See:/ 'updateRegexPatternSet' smart constructor.+data UpdateRegexPatternSet = UpdateRegexPatternSet'+ { _urpsRegexPatternSetId :: !Text+ , _urpsUpdates :: !(List1 RegexPatternSetUpdate)+ , _urpsChangeToken :: !Text+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UpdateRegexPatternSet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'urpsRegexPatternSetId' - The @RegexPatternSetId@ of the 'RegexPatternSet' that you want to update. @RegexPatternSetId@ is returned by 'CreateRegexPatternSet' and by 'ListRegexPatternSets' .+--+-- * 'urpsUpdates' - An array of @RegexPatternSetUpdate@ objects that you want to insert into or delete from a 'RegexPatternSet' .+--+-- * 'urpsChangeToken' - The value returned by the most recent call to 'GetChangeToken' .+updateRegexPatternSet+ :: Text -- ^ 'urpsRegexPatternSetId'+ -> NonEmpty RegexPatternSetUpdate -- ^ 'urpsUpdates'+ -> Text -- ^ 'urpsChangeToken'+ -> UpdateRegexPatternSet+updateRegexPatternSet pRegexPatternSetId_ pUpdates_ pChangeToken_ =+ UpdateRegexPatternSet'+ { _urpsRegexPatternSetId = pRegexPatternSetId_+ , _urpsUpdates = _List1 # pUpdates_+ , _urpsChangeToken = pChangeToken_+ }+++-- | The @RegexPatternSetId@ of the 'RegexPatternSet' that you want to update. @RegexPatternSetId@ is returned by 'CreateRegexPatternSet' and by 'ListRegexPatternSets' .+urpsRegexPatternSetId :: Lens' UpdateRegexPatternSet Text+urpsRegexPatternSetId = lens _urpsRegexPatternSetId (\ s a -> s{_urpsRegexPatternSetId = a});++-- | An array of @RegexPatternSetUpdate@ objects that you want to insert into or delete from a 'RegexPatternSet' .+urpsUpdates :: Lens' UpdateRegexPatternSet (NonEmpty RegexPatternSetUpdate)+urpsUpdates = lens _urpsUpdates (\ s a -> s{_urpsUpdates = a}) . _List1;++-- | The value returned by the most recent call to 'GetChangeToken' .+urpsChangeToken :: Lens' UpdateRegexPatternSet Text+urpsChangeToken = lens _urpsChangeToken (\ s a -> s{_urpsChangeToken = a});++instance AWSRequest UpdateRegexPatternSet where+ type Rs UpdateRegexPatternSet =+ UpdateRegexPatternSetResponse+ request = postJSON waf+ response+ = receiveJSON+ (\ s h x ->+ UpdateRegexPatternSetResponse' <$>+ (x .?> "ChangeToken") <*> (pure (fromEnum s)))++instance Hashable UpdateRegexPatternSet where++instance NFData UpdateRegexPatternSet where++instance ToHeaders UpdateRegexPatternSet where+ toHeaders+ = const+ (mconcat+ ["X-Amz-Target" =#+ ("AWSWAF_20150824.UpdateRegexPatternSet" ::+ ByteString),+ "Content-Type" =#+ ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON UpdateRegexPatternSet where+ toJSON UpdateRegexPatternSet'{..}+ = object+ (catMaybes+ [Just+ ("RegexPatternSetId" .= _urpsRegexPatternSetId),+ Just ("Updates" .= _urpsUpdates),+ Just ("ChangeToken" .= _urpsChangeToken)])++instance ToPath UpdateRegexPatternSet where+ toPath = const "/"++instance ToQuery UpdateRegexPatternSet where+ toQuery = const mempty++-- | /See:/ 'updateRegexPatternSetResponse' smart constructor.+data UpdateRegexPatternSetResponse = UpdateRegexPatternSetResponse'+ { _urpsrsChangeToken :: !(Maybe Text)+ , _urpsrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UpdateRegexPatternSetResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'urpsrsChangeToken' - The @ChangeToken@ that you used to submit the @UpdateRegexPatternSet@ request. You can also use this value to query the status of the request. For more information, see 'GetChangeTokenStatus' .+--+-- * 'urpsrsResponseStatus' - -- | The response status code.+updateRegexPatternSetResponse+ :: Int -- ^ 'urpsrsResponseStatus'+ -> UpdateRegexPatternSetResponse+updateRegexPatternSetResponse pResponseStatus_ =+ UpdateRegexPatternSetResponse'+ {_urpsrsChangeToken = Nothing, _urpsrsResponseStatus = pResponseStatus_}+++-- | The @ChangeToken@ that you used to submit the @UpdateRegexPatternSet@ request. You can also use this value to query the status of the request. For more information, see 'GetChangeTokenStatus' .+urpsrsChangeToken :: Lens' UpdateRegexPatternSetResponse (Maybe Text)+urpsrsChangeToken = lens _urpsrsChangeToken (\ s a -> s{_urpsrsChangeToken = a});++-- | -- | The response status code.+urpsrsResponseStatus :: Lens' UpdateRegexPatternSetResponse Int+urpsrsResponseStatus = lens _urpsrsResponseStatus (\ s a -> s{_urpsrsResponseStatus = a});++instance NFData UpdateRegexPatternSetResponse where
gen/Network/AWS/WAF/UpdateRule.hs view
@@ -12,9 +12,9 @@ -- | -- Module : Network.AWS.WAF.UpdateRule--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) --@@ -65,20 +65,21 @@ , urrsResponseStatus ) where -import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response-import Network.AWS.WAF.Types-import Network.AWS.WAF.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.WAF.Types+import Network.AWS.WAF.Types.Product -- | /See:/ 'updateRule' smart constructor. data UpdateRule = UpdateRule'- { _urRuleId :: !Text- , _urChangeToken :: !Text- , _urUpdates :: ![RuleUpdate]- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _urRuleId :: !Text+ , _urChangeToken :: !Text+ , _urUpdates :: ![RuleUpdate]+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'UpdateRule' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -93,12 +94,10 @@ -> Text -- ^ 'urChangeToken' -> UpdateRule updateRule pRuleId_ pChangeToken_ =- UpdateRule'- { _urRuleId = pRuleId_- , _urChangeToken = pChangeToken_- , _urUpdates = mempty- }+ UpdateRule'+ {_urRuleId = pRuleId_, _urChangeToken = pChangeToken_, _urUpdates = mempty} + -- | The @RuleId@ of the @Rule@ that you want to update. @RuleId@ is returned by @CreateRule@ and by 'ListRules' . urRuleId :: Lens' UpdateRule Text urRuleId = lens _urRuleId (\ s a -> s{_urRuleId = a});@@ -120,9 +119,9 @@ UpdateRuleResponse' <$> (x .?> "ChangeToken") <*> (pure (fromEnum s))) -instance Hashable UpdateRule+instance Hashable UpdateRule where -instance NFData UpdateRule+instance NFData UpdateRule where instance ToHeaders UpdateRule where toHeaders@@ -149,10 +148,11 @@ -- | /See:/ 'updateRuleResponse' smart constructor. data UpdateRuleResponse = UpdateRuleResponse'- { _urrsChangeToken :: !(Maybe Text)- , _urrsResponseStatus :: !Int- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _urrsChangeToken :: !(Maybe Text)+ , _urrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'UpdateRuleResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -164,11 +164,10 @@ :: Int -- ^ 'urrsResponseStatus' -> UpdateRuleResponse updateRuleResponse pResponseStatus_ =- UpdateRuleResponse'- { _urrsChangeToken = Nothing- , _urrsResponseStatus = pResponseStatus_- }+ UpdateRuleResponse'+ {_urrsChangeToken = Nothing, _urrsResponseStatus = pResponseStatus_} + -- | The @ChangeToken@ that you used to submit the @UpdateRule@ request. You can also use this value to query the status of the request. For more information, see 'GetChangeTokenStatus' . urrsChangeToken :: Lens' UpdateRuleResponse (Maybe Text) urrsChangeToken = lens _urrsChangeToken (\ s a -> s{_urrsChangeToken = a});@@ -177,4 +176,4 @@ urrsResponseStatus :: Lens' UpdateRuleResponse Int urrsResponseStatus = lens _urrsResponseStatus (\ s a -> s{_urrsResponseStatus = a}); -instance NFData UpdateRuleResponse+instance NFData UpdateRuleResponse where
gen/Network/AWS/WAF/UpdateSizeConstraintSet.hs view
@@ -12,9 +12,9 @@ -- | -- Module : Network.AWS.WAF.UpdateSizeConstraintSet--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) --@@ -65,20 +65,21 @@ , uscsrsResponseStatus ) where -import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response-import Network.AWS.WAF.Types-import Network.AWS.WAF.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.WAF.Types+import Network.AWS.WAF.Types.Product -- | /See:/ 'updateSizeConstraintSet' smart constructor. data UpdateSizeConstraintSet = UpdateSizeConstraintSet'- { _uscsSizeConstraintSetId :: !Text- , _uscsChangeToken :: !Text- , _uscsUpdates :: ![SizeConstraintSetUpdate]- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _uscsSizeConstraintSetId :: !Text+ , _uscsChangeToken :: !Text+ , _uscsUpdates :: !(List1 SizeConstraintSetUpdate)+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'UpdateSizeConstraintSet' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -91,14 +92,16 @@ updateSizeConstraintSet :: Text -- ^ 'uscsSizeConstraintSetId' -> Text -- ^ 'uscsChangeToken'+ -> NonEmpty SizeConstraintSetUpdate -- ^ 'uscsUpdates' -> UpdateSizeConstraintSet-updateSizeConstraintSet pSizeConstraintSetId_ pChangeToken_ =- UpdateSizeConstraintSet'- { _uscsSizeConstraintSetId = pSizeConstraintSetId_- , _uscsChangeToken = pChangeToken_- , _uscsUpdates = mempty- }+updateSizeConstraintSet pSizeConstraintSetId_ pChangeToken_ pUpdates_ =+ UpdateSizeConstraintSet'+ { _uscsSizeConstraintSetId = pSizeConstraintSetId_+ , _uscsChangeToken = pChangeToken_+ , _uscsUpdates = _List1 # pUpdates_+ } + -- | The @SizeConstraintSetId@ of the 'SizeConstraintSet' that you want to update. @SizeConstraintSetId@ is returned by 'CreateSizeConstraintSet' and by 'ListSizeConstraintSets' . uscsSizeConstraintSetId :: Lens' UpdateSizeConstraintSet Text uscsSizeConstraintSetId = lens _uscsSizeConstraintSetId (\ s a -> s{_uscsSizeConstraintSetId = a});@@ -108,8 +111,8 @@ uscsChangeToken = lens _uscsChangeToken (\ s a -> s{_uscsChangeToken = a}); -- | An array of @SizeConstraintSetUpdate@ objects that you want to insert into or delete from a 'SizeConstraintSet' . For more information, see the applicable data types: * 'SizeConstraintSetUpdate' : Contains @Action@ and @SizeConstraint@ * 'SizeConstraint' : Contains @FieldToMatch@ , @TextTransformation@ , @ComparisonOperator@ , and @Size@ * 'FieldToMatch' : Contains @Data@ and @Type@-uscsUpdates :: Lens' UpdateSizeConstraintSet [SizeConstraintSetUpdate]-uscsUpdates = lens _uscsUpdates (\ s a -> s{_uscsUpdates = a}) . _Coerce;+uscsUpdates :: Lens' UpdateSizeConstraintSet (NonEmpty SizeConstraintSetUpdate)+uscsUpdates = lens _uscsUpdates (\ s a -> s{_uscsUpdates = a}) . _List1; instance AWSRequest UpdateSizeConstraintSet where type Rs UpdateSizeConstraintSet =@@ -121,9 +124,9 @@ UpdateSizeConstraintSetResponse' <$> (x .?> "ChangeToken") <*> (pure (fromEnum s))) -instance Hashable UpdateSizeConstraintSet+instance Hashable UpdateSizeConstraintSet where -instance NFData UpdateSizeConstraintSet+instance NFData UpdateSizeConstraintSet where instance ToHeaders UpdateSizeConstraintSet where toHeaders@@ -152,10 +155,11 @@ -- | /See:/ 'updateSizeConstraintSetResponse' smart constructor. data UpdateSizeConstraintSetResponse = UpdateSizeConstraintSetResponse'- { _uscsrsChangeToken :: !(Maybe Text)- , _uscsrsResponseStatus :: !Int- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _uscsrsChangeToken :: !(Maybe Text)+ , _uscsrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'UpdateSizeConstraintSetResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -167,11 +171,10 @@ :: Int -- ^ 'uscsrsResponseStatus' -> UpdateSizeConstraintSetResponse updateSizeConstraintSetResponse pResponseStatus_ =- UpdateSizeConstraintSetResponse'- { _uscsrsChangeToken = Nothing- , _uscsrsResponseStatus = pResponseStatus_- }+ UpdateSizeConstraintSetResponse'+ {_uscsrsChangeToken = Nothing, _uscsrsResponseStatus = pResponseStatus_} + -- | The @ChangeToken@ that you used to submit the @UpdateSizeConstraintSet@ request. You can also use this value to query the status of the request. For more information, see 'GetChangeTokenStatus' . uscsrsChangeToken :: Lens' UpdateSizeConstraintSetResponse (Maybe Text) uscsrsChangeToken = lens _uscsrsChangeToken (\ s a -> s{_uscsrsChangeToken = a});@@ -180,4 +183,4 @@ uscsrsResponseStatus :: Lens' UpdateSizeConstraintSetResponse Int uscsrsResponseStatus = lens _uscsrsResponseStatus (\ s a -> s{_uscsrsResponseStatus = a}); -instance NFData UpdateSizeConstraintSetResponse+instance NFData UpdateSizeConstraintSetResponse where
gen/Network/AWS/WAF/UpdateSqlInjectionMatchSet.hs view
@@ -12,9 +12,9 @@ -- | -- Module : Network.AWS.WAF.UpdateSqlInjectionMatchSet--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) --@@ -61,12 +61,12 @@ , usimsrsResponseStatus ) where -import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response-import Network.AWS.WAF.Types-import Network.AWS.WAF.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.WAF.Types+import Network.AWS.WAF.Types.Product -- | A request to update a 'SqlInjectionMatchSet' . --@@ -74,11 +74,12 @@ -- -- /See:/ 'updateSqlInjectionMatchSet' smart constructor. data UpdateSqlInjectionMatchSet = UpdateSqlInjectionMatchSet'- { _usimsSqlInjectionMatchSetId :: !Text- , _usimsChangeToken :: !Text- , _usimsUpdates :: ![SqlInjectionMatchSetUpdate]- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _usimsSqlInjectionMatchSetId :: !Text+ , _usimsChangeToken :: !Text+ , _usimsUpdates :: !(List1 SqlInjectionMatchSetUpdate)+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'UpdateSqlInjectionMatchSet' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -91,14 +92,16 @@ updateSqlInjectionMatchSet :: Text -- ^ 'usimsSqlInjectionMatchSetId' -> Text -- ^ 'usimsChangeToken'+ -> NonEmpty SqlInjectionMatchSetUpdate -- ^ 'usimsUpdates' -> UpdateSqlInjectionMatchSet-updateSqlInjectionMatchSet pSqlInjectionMatchSetId_ pChangeToken_ =- UpdateSqlInjectionMatchSet'- { _usimsSqlInjectionMatchSetId = pSqlInjectionMatchSetId_- , _usimsChangeToken = pChangeToken_- , _usimsUpdates = mempty- }+updateSqlInjectionMatchSet pSqlInjectionMatchSetId_ pChangeToken_ pUpdates_ =+ UpdateSqlInjectionMatchSet'+ { _usimsSqlInjectionMatchSetId = pSqlInjectionMatchSetId_+ , _usimsChangeToken = pChangeToken_+ , _usimsUpdates = _List1 # pUpdates_+ } + -- | The @SqlInjectionMatchSetId@ of the @SqlInjectionMatchSet@ that you want to update. @SqlInjectionMatchSetId@ is returned by 'CreateSqlInjectionMatchSet' and by 'ListSqlInjectionMatchSets' . usimsSqlInjectionMatchSetId :: Lens' UpdateSqlInjectionMatchSet Text usimsSqlInjectionMatchSetId = lens _usimsSqlInjectionMatchSetId (\ s a -> s{_usimsSqlInjectionMatchSetId = a});@@ -108,8 +111,8 @@ usimsChangeToken = lens _usimsChangeToken (\ s a -> s{_usimsChangeToken = a}); -- | An array of @SqlInjectionMatchSetUpdate@ objects that you want to insert into or delete from a 'SqlInjectionMatchSet' . For more information, see the applicable data types: * 'SqlInjectionMatchSetUpdate' : Contains @Action@ and @SqlInjectionMatchTuple@ * 'SqlInjectionMatchTuple' : Contains @FieldToMatch@ and @TextTransformation@ * 'FieldToMatch' : Contains @Data@ and @Type@-usimsUpdates :: Lens' UpdateSqlInjectionMatchSet [SqlInjectionMatchSetUpdate]-usimsUpdates = lens _usimsUpdates (\ s a -> s{_usimsUpdates = a}) . _Coerce;+usimsUpdates :: Lens' UpdateSqlInjectionMatchSet (NonEmpty SqlInjectionMatchSetUpdate)+usimsUpdates = lens _usimsUpdates (\ s a -> s{_usimsUpdates = a}) . _List1; instance AWSRequest UpdateSqlInjectionMatchSet where type Rs UpdateSqlInjectionMatchSet =@@ -121,9 +124,9 @@ UpdateSqlInjectionMatchSetResponse' <$> (x .?> "ChangeToken") <*> (pure (fromEnum s))) -instance Hashable UpdateSqlInjectionMatchSet+instance Hashable UpdateSqlInjectionMatchSet where -instance NFData UpdateSqlInjectionMatchSet+instance NFData UpdateSqlInjectionMatchSet where instance ToHeaders UpdateSqlInjectionMatchSet where toHeaders@@ -157,10 +160,11 @@ -- -- /See:/ 'updateSqlInjectionMatchSetResponse' smart constructor. data UpdateSqlInjectionMatchSetResponse = UpdateSqlInjectionMatchSetResponse'- { _usimsrsChangeToken :: !(Maybe Text)- , _usimsrsResponseStatus :: !Int- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _usimsrsChangeToken :: !(Maybe Text)+ , _usimsrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'UpdateSqlInjectionMatchSetResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -172,11 +176,10 @@ :: Int -- ^ 'usimsrsResponseStatus' -> UpdateSqlInjectionMatchSetResponse updateSqlInjectionMatchSetResponse pResponseStatus_ =- UpdateSqlInjectionMatchSetResponse'- { _usimsrsChangeToken = Nothing- , _usimsrsResponseStatus = pResponseStatus_- }+ UpdateSqlInjectionMatchSetResponse'+ {_usimsrsChangeToken = Nothing, _usimsrsResponseStatus = pResponseStatus_} + -- | The @ChangeToken@ that you used to submit the @UpdateSqlInjectionMatchSet@ request. You can also use this value to query the status of the request. For more information, see 'GetChangeTokenStatus' . usimsrsChangeToken :: Lens' UpdateSqlInjectionMatchSetResponse (Maybe Text) usimsrsChangeToken = lens _usimsrsChangeToken (\ s a -> s{_usimsrsChangeToken = a});@@ -186,3 +189,4 @@ usimsrsResponseStatus = lens _usimsrsResponseStatus (\ s a -> s{_usimsrsResponseStatus = a}); instance NFData UpdateSqlInjectionMatchSetResponse+ where
gen/Network/AWS/WAF/UpdateWebACL.hs view
@@ -12,9 +12,9 @@ -- | -- Module : Network.AWS.WAF.UpdateWebACL--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) --@@ -29,10 +29,8 @@ -- -- * The order in which you want AWS WAF to evaluate the @Rules@ in a @WebACL@ . If you add more than one @Rule@ to a @WebACL@ , AWS WAF evaluates each request against the @Rules@ in order based on the value of @Priority@ . (The @Rule@ that has the lowest value for @Priority@ is evaluated first.) When a web request matches all of the predicates (such as @ByteMatchSets@ and @IPSets@ ) in a @Rule@ , AWS WAF immediately takes the corresponding action, allow or block, and doesn't evaluate the request against the remaining @Rules@ in the @WebACL@ , if any. ----- * The CloudFront distribution that you want to associate with the @WebACL@ . -- ----- -- To create and configure a @WebACL@ , perform the following steps: -- -- * Create and update the predicates that you want to include in @Rules@ . For more information, see 'CreateByteMatchSet' , 'UpdateByteMatchSet' , 'CreateIPSet' , 'UpdateIPSet' , 'CreateSqlInjectionMatchSet' , and 'UpdateSqlInjectionMatchSet' .@@ -47,6 +45,8 @@ -- -- --+-- Be aware that if you try to add a RATE_BASED rule to a web ACL without setting the rule type when first creating the rule, the 'UpdateWebACL' request will fail because the request tries to add a REGULAR rule (the default rule type) with the specified ID, which does not exist.+-- -- For more information about how to use the AWS WAF API to allow or block HTTP requests, see the <http://docs.aws.amazon.com/waf/latest/developerguide/ AWS WAF Developer Guide> . -- module Network.AWS.WAF.UpdateWebACL@@ -68,28 +68,29 @@ , uwarsResponseStatus ) where -import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response-import Network.AWS.WAF.Types-import Network.AWS.WAF.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.WAF.Types+import Network.AWS.WAF.Types.Product -- | /See:/ 'updateWebACL' smart constructor. data UpdateWebACL = UpdateWebACL'- { _uwaUpdates :: !(Maybe [WebACLUpdate])- , _uwaDefaultAction :: !(Maybe WafAction)- , _uwaWebACLId :: !Text- , _uwaChangeToken :: !Text- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _uwaUpdates :: !(Maybe [WebACLUpdate])+ , _uwaDefaultAction :: !(Maybe WafAction)+ , _uwaWebACLId :: !Text+ , _uwaChangeToken :: !Text+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'UpdateWebACL' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: ----- * 'uwaUpdates' - An array of updates to make to the 'WebACL' . An array of @WebACLUpdate@ objects that you want to insert into or delete from a 'WebACL' . For more information, see the applicable data types: * 'WebACLUpdate' : Contains @Action@ and @ActivatedRule@ * 'ActivatedRule' : Contains @Action@ , @Priority@ , and @RuleId@ * 'WafAction' : Contains @Type@+-- * 'uwaUpdates' - An array of updates to make to the 'WebACL' . An array of @WebACLUpdate@ objects that you want to insert into or delete from a 'WebACL' . For more information, see the applicable data types: * 'WebACLUpdate' : Contains @Action@ and @ActivatedRule@ * 'ActivatedRule' : Contains @Action@ , @Priority@ , @RuleId@ , and @Type@ * 'WafAction' : Contains @Type@ ----- * 'uwaDefaultAction' - Undocumented member.+-- * 'uwaDefaultAction' - A default action for the web ACL, either ALLOW or BLOCK. AWS WAF performs the default action if a request doesn't match the criteria in any of the rules in a web ACL. -- -- * 'uwaWebACLId' - The @WebACLId@ of the 'WebACL' that you want to update. @WebACLId@ is returned by 'CreateWebACL' and by 'ListWebACLs' . --@@ -99,18 +100,19 @@ -> Text -- ^ 'uwaChangeToken' -> UpdateWebACL updateWebACL pWebACLId_ pChangeToken_ =- UpdateWebACL'- { _uwaUpdates = Nothing- , _uwaDefaultAction = Nothing- , _uwaWebACLId = pWebACLId_- , _uwaChangeToken = pChangeToken_- }+ UpdateWebACL'+ { _uwaUpdates = Nothing+ , _uwaDefaultAction = Nothing+ , _uwaWebACLId = pWebACLId_+ , _uwaChangeToken = pChangeToken_+ } --- | An array of updates to make to the 'WebACL' . An array of @WebACLUpdate@ objects that you want to insert into or delete from a 'WebACL' . For more information, see the applicable data types: * 'WebACLUpdate' : Contains @Action@ and @ActivatedRule@ * 'ActivatedRule' : Contains @Action@ , @Priority@ , and @RuleId@ * 'WafAction' : Contains @Type@++-- | An array of updates to make to the 'WebACL' . An array of @WebACLUpdate@ objects that you want to insert into or delete from a 'WebACL' . For more information, see the applicable data types: * 'WebACLUpdate' : Contains @Action@ and @ActivatedRule@ * 'ActivatedRule' : Contains @Action@ , @Priority@ , @RuleId@ , and @Type@ * 'WafAction' : Contains @Type@ uwaUpdates :: Lens' UpdateWebACL [WebACLUpdate] uwaUpdates = lens _uwaUpdates (\ s a -> s{_uwaUpdates = a}) . _Default . _Coerce; --- | Undocumented member.+-- | A default action for the web ACL, either ALLOW or BLOCK. AWS WAF performs the default action if a request doesn't match the criteria in any of the rules in a web ACL. uwaDefaultAction :: Lens' UpdateWebACL (Maybe WafAction) uwaDefaultAction = lens _uwaDefaultAction (\ s a -> s{_uwaDefaultAction = a}); @@ -131,9 +133,9 @@ UpdateWebACLResponse' <$> (x .?> "ChangeToken") <*> (pure (fromEnum s))) -instance Hashable UpdateWebACL+instance Hashable UpdateWebACL where -instance NFData UpdateWebACL+instance NFData UpdateWebACL where instance ToHeaders UpdateWebACL where toHeaders@@ -161,10 +163,11 @@ -- | /See:/ 'updateWebACLResponse' smart constructor. data UpdateWebACLResponse = UpdateWebACLResponse'- { _uwarsChangeToken :: !(Maybe Text)- , _uwarsResponseStatus :: !Int- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _uwarsChangeToken :: !(Maybe Text)+ , _uwarsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'UpdateWebACLResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -176,11 +179,10 @@ :: Int -- ^ 'uwarsResponseStatus' -> UpdateWebACLResponse updateWebACLResponse pResponseStatus_ =- UpdateWebACLResponse'- { _uwarsChangeToken = Nothing- , _uwarsResponseStatus = pResponseStatus_- }+ UpdateWebACLResponse'+ {_uwarsChangeToken = Nothing, _uwarsResponseStatus = pResponseStatus_} + -- | The @ChangeToken@ that you used to submit the @UpdateWebACL@ request. You can also use this value to query the status of the request. For more information, see 'GetChangeTokenStatus' . uwarsChangeToken :: Lens' UpdateWebACLResponse (Maybe Text) uwarsChangeToken = lens _uwarsChangeToken (\ s a -> s{_uwarsChangeToken = a});@@ -189,4 +191,4 @@ uwarsResponseStatus :: Lens' UpdateWebACLResponse Int uwarsResponseStatus = lens _uwarsResponseStatus (\ s a -> s{_uwarsResponseStatus = a}); -instance NFData UpdateWebACLResponse+instance NFData UpdateWebACLResponse where
gen/Network/AWS/WAF/UpdateXSSMatchSet.hs view
@@ -12,9 +12,9 @@ -- | -- Module : Network.AWS.WAF.UpdateXSSMatchSet--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) --@@ -61,12 +61,12 @@ , uxmsrsResponseStatus ) where -import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response-import Network.AWS.WAF.Types-import Network.AWS.WAF.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.WAF.Types+import Network.AWS.WAF.Types.Product -- | A request to update an 'XssMatchSet' . --@@ -74,11 +74,12 @@ -- -- /See:/ 'updateXSSMatchSet' smart constructor. data UpdateXSSMatchSet = UpdateXSSMatchSet'- { _uxmsXSSMatchSetId :: !Text- , _uxmsChangeToken :: !Text- , _uxmsUpdates :: ![XSSMatchSetUpdate]- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _uxmsXSSMatchSetId :: !Text+ , _uxmsChangeToken :: !Text+ , _uxmsUpdates :: !(List1 XSSMatchSetUpdate)+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'UpdateXSSMatchSet' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -91,14 +92,16 @@ updateXSSMatchSet :: Text -- ^ 'uxmsXSSMatchSetId' -> Text -- ^ 'uxmsChangeToken'+ -> NonEmpty XSSMatchSetUpdate -- ^ 'uxmsUpdates' -> UpdateXSSMatchSet-updateXSSMatchSet pXSSMatchSetId_ pChangeToken_ =- UpdateXSSMatchSet'- { _uxmsXSSMatchSetId = pXSSMatchSetId_- , _uxmsChangeToken = pChangeToken_- , _uxmsUpdates = mempty- }+updateXSSMatchSet pXSSMatchSetId_ pChangeToken_ pUpdates_ =+ UpdateXSSMatchSet'+ { _uxmsXSSMatchSetId = pXSSMatchSetId_+ , _uxmsChangeToken = pChangeToken_+ , _uxmsUpdates = _List1 # pUpdates_+ } + -- | The @XssMatchSetId@ of the @XssMatchSet@ that you want to update. @XssMatchSetId@ is returned by 'CreateXssMatchSet' and by 'ListXssMatchSets' . uxmsXSSMatchSetId :: Lens' UpdateXSSMatchSet Text uxmsXSSMatchSetId = lens _uxmsXSSMatchSetId (\ s a -> s{_uxmsXSSMatchSetId = a});@@ -108,8 +111,8 @@ uxmsChangeToken = lens _uxmsChangeToken (\ s a -> s{_uxmsChangeToken = a}); -- | An array of @XssMatchSetUpdate@ objects that you want to insert into or delete from a 'XssMatchSet' . For more information, see the applicable data types: * 'XssMatchSetUpdate' : Contains @Action@ and @XssMatchTuple@ * 'XssMatchTuple' : Contains @FieldToMatch@ and @TextTransformation@ * 'FieldToMatch' : Contains @Data@ and @Type@-uxmsUpdates :: Lens' UpdateXSSMatchSet [XSSMatchSetUpdate]-uxmsUpdates = lens _uxmsUpdates (\ s a -> s{_uxmsUpdates = a}) . _Coerce;+uxmsUpdates :: Lens' UpdateXSSMatchSet (NonEmpty XSSMatchSetUpdate)+uxmsUpdates = lens _uxmsUpdates (\ s a -> s{_uxmsUpdates = a}) . _List1; instance AWSRequest UpdateXSSMatchSet where type Rs UpdateXSSMatchSet = UpdateXSSMatchSetResponse@@ -120,9 +123,9 @@ UpdateXSSMatchSetResponse' <$> (x .?> "ChangeToken") <*> (pure (fromEnum s))) -instance Hashable UpdateXSSMatchSet+instance Hashable UpdateXSSMatchSet where -instance NFData UpdateXSSMatchSet+instance NFData UpdateXSSMatchSet where instance ToHeaders UpdateXSSMatchSet where toHeaders@@ -153,10 +156,11 @@ -- -- /See:/ 'updateXSSMatchSetResponse' smart constructor. data UpdateXSSMatchSetResponse = UpdateXSSMatchSetResponse'- { _uxmsrsChangeToken :: !(Maybe Text)- , _uxmsrsResponseStatus :: !Int- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _uxmsrsChangeToken :: !(Maybe Text)+ , _uxmsrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'UpdateXSSMatchSetResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -168,11 +172,10 @@ :: Int -- ^ 'uxmsrsResponseStatus' -> UpdateXSSMatchSetResponse updateXSSMatchSetResponse pResponseStatus_ =- UpdateXSSMatchSetResponse'- { _uxmsrsChangeToken = Nothing- , _uxmsrsResponseStatus = pResponseStatus_- }+ UpdateXSSMatchSetResponse'+ {_uxmsrsChangeToken = Nothing, _uxmsrsResponseStatus = pResponseStatus_} + -- | The @ChangeToken@ that you used to submit the @UpdateXssMatchSet@ request. You can also use this value to query the status of the request. For more information, see 'GetChangeTokenStatus' . uxmsrsChangeToken :: Lens' UpdateXSSMatchSetResponse (Maybe Text) uxmsrsChangeToken = lens _uxmsrsChangeToken (\ s a -> s{_uxmsrsChangeToken = a});@@ -181,4 +184,4 @@ uxmsrsResponseStatus :: Lens' UpdateXSSMatchSetResponse Int uxmsrsResponseStatus = lens _uxmsrsResponseStatus (\ s a -> s{_uxmsrsResponseStatus = a}); -instance NFData UpdateXSSMatchSetResponse+instance NFData UpdateXSSMatchSetResponse where
gen/Network/AWS/WAF/Waiters.hs view
@@ -7,15 +7,15 @@ -- | -- Module : Network.AWS.WAF.Waiters--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- module Network.AWS.WAF.Waiters where -import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.WAF.Types-import Network.AWS.Waiter+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.WAF.Types+import Network.AWS.Waiter
test/Main.hs view
@@ -2,9 +2,9 @@ -- | -- Module : Main--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) --
test/Test/AWS/Gen/WAF.hs view
@@ -5,20 +5,20 @@ -- | -- Module : Test.AWS.Gen.WAF--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- module Test.AWS.Gen.WAF where import Data.Proxy+import Network.AWS.WAF import Test.AWS.Fixture import Test.AWS.Prelude-import Test.Tasty-import Network.AWS.WAF import Test.AWS.WAF.Internal+import Test.Tasty -- Auto-generated: the actual test selection needs to be manually placed into -- the top-level so that real test data can be incrementally added.@@ -28,9 +28,18 @@ -- fixtures :: TestTree -- fixtures = -- [ testGroup "request"--- [ requestGetSizeConstraintSet $+-- [ requestListRateBasedRules $+-- listRateBasedRules+--+-- , requestGetSizeConstraintSet $ -- getSizeConstraintSet --+-- , requestDeleteRateBasedRule $+-- deleteRateBasedRule+--+-- , requestUpdateRateBasedRule $+-- updateRateBasedRule+-- -- , requestUpdateRule $ -- updateRule --@@ -61,9 +70,21 @@ -- , requestCreateWebACL $ -- createWebACL --+-- , requestGetGeoMatchSet $+-- getGeoMatchSet+-- -- , requestListByteMatchSets $ -- listByteMatchSets --+-- , requestListGeoMatchSets $+-- listGeoMatchSets+--+-- , requestDeleteRegexMatchSet $+-- deleteRegexMatchSet+--+-- , requestUpdateRegexMatchSet $+-- updateRegexMatchSet+-- -- , requestGetIPSet $ -- getIPSet --@@ -82,6 +103,9 @@ -- , requestListXSSMatchSets $ -- listXSSMatchSets --+-- , requestCreateGeoMatchSet $+-- createGeoMatchSet+-- -- , requestGetChangeToken $ -- getChangeToken --@@ -109,6 +133,12 @@ -- , requestDeleteByteMatchSet $ -- deleteByteMatchSet --+-- , requestGetRateBasedRuleManagedKeys $+-- getRateBasedRuleManagedKeys+--+-- , requestGetRegexMatchSet $+-- getRegexMatchSet+-- -- , requestDeleteIPSet $ -- deleteIPSet --@@ -118,24 +148,57 @@ -- , requestListIPSets $ -- listIPSets --+-- , requestListRegexMatchSets $+-- listRegexMatchSets+-- -- , requestCreateXSSMatchSet $ -- createXSSMatchSet --+-- , requestDeleteGeoMatchSet $+-- deleteGeoMatchSet+--+-- , requestUpdateGeoMatchSet $+-- updateGeoMatchSet+-- -- , requestGetByteMatchSet $ -- getByteMatchSet --+-- , requestCreateRegexMatchSet $+-- createRegexMatchSet+--+-- , requestGetRateBasedRule $+-- getRateBasedRule+--+-- , requestCreateRegexPatternSet $+-- createRegexPatternSet+-- -- , requestDeleteSizeConstraintSet $ -- deleteSizeConstraintSet -- -- , requestUpdateSizeConstraintSet $ -- updateSizeConstraintSet --+-- , requestDeleteRegexPatternSet $+-- deleteRegexPatternSet+--+-- , requestUpdateRegexPatternSet $+-- updateRegexPatternSet+-- -- , requestCreateSizeConstraintSet $ -- createSizeConstraintSet --+-- , requestListRegexPatternSets $+-- listRegexPatternSets+-- -- , requestListSqlInjectionMatchSets $ -- listSqlInjectionMatchSets --+-- , requestGetRegexPatternSet $+-- getRegexPatternSet+--+-- , requestCreateRateBasedRule $+-- createRateBasedRule+-- -- , requestDeleteSqlInjectionMatchSet $ -- deleteSqlInjectionMatchSet --@@ -145,9 +208,18 @@ -- ] -- , testGroup "response"--- [ responseGetSizeConstraintSet $+-- [ responseListRateBasedRules $+-- listRateBasedRulesResponse+--+-- , responseGetSizeConstraintSet $ -- getSizeConstraintSetResponse --+-- , responseDeleteRateBasedRule $+-- deleteRateBasedRuleResponse+--+-- , responseUpdateRateBasedRule $+-- updateRateBasedRuleResponse+-- -- , responseUpdateRule $ -- updateRuleResponse --@@ -178,9 +250,21 @@ -- , responseCreateWebACL $ -- createWebACLResponse --+-- , responseGetGeoMatchSet $+-- getGeoMatchSetResponse+-- -- , responseListByteMatchSets $ -- listByteMatchSetsResponse --+-- , responseListGeoMatchSets $+-- listGeoMatchSetsResponse+--+-- , responseDeleteRegexMatchSet $+-- deleteRegexMatchSetResponse+--+-- , responseUpdateRegexMatchSet $+-- updateRegexMatchSetResponse+-- -- , responseGetIPSet $ -- getIPSetResponse --@@ -199,6 +283,9 @@ -- , responseListXSSMatchSets $ -- listXSSMatchSetsResponse --+-- , responseCreateGeoMatchSet $+-- createGeoMatchSetResponse+-- -- , responseGetChangeToken $ -- getChangeTokenResponse --@@ -226,6 +313,12 @@ -- , responseDeleteByteMatchSet $ -- deleteByteMatchSetResponse --+-- , responseGetRateBasedRuleManagedKeys $+-- getRateBasedRuleManagedKeysResponse+--+-- , responseGetRegexMatchSet $+-- getRegexMatchSetResponse+-- -- , responseDeleteIPSet $ -- deleteIPSetResponse --@@ -235,24 +328,57 @@ -- , responseListIPSets $ -- listIPSetsResponse --+-- , responseListRegexMatchSets $+-- listRegexMatchSetsResponse+-- -- , responseCreateXSSMatchSet $ -- createXSSMatchSetResponse --+-- , responseDeleteGeoMatchSet $+-- deleteGeoMatchSetResponse+--+-- , responseUpdateGeoMatchSet $+-- updateGeoMatchSetResponse+-- -- , responseGetByteMatchSet $ -- getByteMatchSetResponse --+-- , responseCreateRegexMatchSet $+-- createRegexMatchSetResponse+--+-- , responseGetRateBasedRule $+-- getRateBasedRuleResponse+--+-- , responseCreateRegexPatternSet $+-- createRegexPatternSetResponse+-- -- , responseDeleteSizeConstraintSet $ -- deleteSizeConstraintSetResponse -- -- , responseUpdateSizeConstraintSet $ -- updateSizeConstraintSetResponse --+-- , responseDeleteRegexPatternSet $+-- deleteRegexPatternSetResponse+--+-- , responseUpdateRegexPatternSet $+-- updateRegexPatternSetResponse+-- -- , responseCreateSizeConstraintSet $ -- createSizeConstraintSetResponse --+-- , responseListRegexPatternSets $+-- listRegexPatternSetsResponse+-- -- , responseListSqlInjectionMatchSets $ -- listSqlInjectionMatchSetsResponse --+-- , responseGetRegexPatternSet $+-- getRegexPatternSetResponse+--+-- , responseCreateRateBasedRule $+-- createRateBasedRuleResponse+-- -- , responseDeleteSqlInjectionMatchSet $ -- deleteSqlInjectionMatchSetResponse --@@ -264,11 +390,26 @@ -- Requests +requestListRateBasedRules :: ListRateBasedRules -> TestTree+requestListRateBasedRules = req+ "ListRateBasedRules"+ "fixture/ListRateBasedRules.yaml"+ requestGetSizeConstraintSet :: GetSizeConstraintSet -> TestTree requestGetSizeConstraintSet = req "GetSizeConstraintSet" "fixture/GetSizeConstraintSet.yaml" +requestDeleteRateBasedRule :: DeleteRateBasedRule -> TestTree+requestDeleteRateBasedRule = req+ "DeleteRateBasedRule"+ "fixture/DeleteRateBasedRule.yaml"++requestUpdateRateBasedRule :: UpdateRateBasedRule -> TestTree+requestUpdateRateBasedRule = req+ "UpdateRateBasedRule"+ "fixture/UpdateRateBasedRule.yaml"+ requestUpdateRule :: UpdateRule -> TestTree requestUpdateRule = req "UpdateRule"@@ -319,11 +460,31 @@ "CreateWebACL" "fixture/CreateWebACL.yaml" +requestGetGeoMatchSet :: GetGeoMatchSet -> TestTree+requestGetGeoMatchSet = req+ "GetGeoMatchSet"+ "fixture/GetGeoMatchSet.yaml"+ requestListByteMatchSets :: ListByteMatchSets -> TestTree requestListByteMatchSets = req "ListByteMatchSets" "fixture/ListByteMatchSets.yaml" +requestListGeoMatchSets :: ListGeoMatchSets -> TestTree+requestListGeoMatchSets = req+ "ListGeoMatchSets"+ "fixture/ListGeoMatchSets.yaml"++requestDeleteRegexMatchSet :: DeleteRegexMatchSet -> TestTree+requestDeleteRegexMatchSet = req+ "DeleteRegexMatchSet"+ "fixture/DeleteRegexMatchSet.yaml"++requestUpdateRegexMatchSet :: UpdateRegexMatchSet -> TestTree+requestUpdateRegexMatchSet = req+ "UpdateRegexMatchSet"+ "fixture/UpdateRegexMatchSet.yaml"+ requestGetIPSet :: GetIPSet -> TestTree requestGetIPSet = req "GetIPSet"@@ -354,6 +515,11 @@ "ListXSSMatchSets" "fixture/ListXSSMatchSets.yaml" +requestCreateGeoMatchSet :: CreateGeoMatchSet -> TestTree+requestCreateGeoMatchSet = req+ "CreateGeoMatchSet"+ "fixture/CreateGeoMatchSet.yaml"+ requestGetChangeToken :: GetChangeToken -> TestTree requestGetChangeToken = req "GetChangeToken"@@ -399,6 +565,16 @@ "DeleteByteMatchSet" "fixture/DeleteByteMatchSet.yaml" +requestGetRateBasedRuleManagedKeys :: GetRateBasedRuleManagedKeys -> TestTree+requestGetRateBasedRuleManagedKeys = req+ "GetRateBasedRuleManagedKeys"+ "fixture/GetRateBasedRuleManagedKeys.yaml"++requestGetRegexMatchSet :: GetRegexMatchSet -> TestTree+requestGetRegexMatchSet = req+ "GetRegexMatchSet"+ "fixture/GetRegexMatchSet.yaml"+ requestDeleteIPSet :: DeleteIPSet -> TestTree requestDeleteIPSet = req "DeleteIPSet"@@ -414,16 +590,46 @@ "ListIPSets" "fixture/ListIPSets.yaml" +requestListRegexMatchSets :: ListRegexMatchSets -> TestTree+requestListRegexMatchSets = req+ "ListRegexMatchSets"+ "fixture/ListRegexMatchSets.yaml"+ requestCreateXSSMatchSet :: CreateXSSMatchSet -> TestTree requestCreateXSSMatchSet = req "CreateXSSMatchSet" "fixture/CreateXSSMatchSet.yaml" +requestDeleteGeoMatchSet :: DeleteGeoMatchSet -> TestTree+requestDeleteGeoMatchSet = req+ "DeleteGeoMatchSet"+ "fixture/DeleteGeoMatchSet.yaml"++requestUpdateGeoMatchSet :: UpdateGeoMatchSet -> TestTree+requestUpdateGeoMatchSet = req+ "UpdateGeoMatchSet"+ "fixture/UpdateGeoMatchSet.yaml"+ requestGetByteMatchSet :: GetByteMatchSet -> TestTree requestGetByteMatchSet = req "GetByteMatchSet" "fixture/GetByteMatchSet.yaml" +requestCreateRegexMatchSet :: CreateRegexMatchSet -> TestTree+requestCreateRegexMatchSet = req+ "CreateRegexMatchSet"+ "fixture/CreateRegexMatchSet.yaml"++requestGetRateBasedRule :: GetRateBasedRule -> TestTree+requestGetRateBasedRule = req+ "GetRateBasedRule"+ "fixture/GetRateBasedRule.yaml"++requestCreateRegexPatternSet :: CreateRegexPatternSet -> TestTree+requestCreateRegexPatternSet = req+ "CreateRegexPatternSet"+ "fixture/CreateRegexPatternSet.yaml"+ requestDeleteSizeConstraintSet :: DeleteSizeConstraintSet -> TestTree requestDeleteSizeConstraintSet = req "DeleteSizeConstraintSet"@@ -434,16 +640,41 @@ "UpdateSizeConstraintSet" "fixture/UpdateSizeConstraintSet.yaml" +requestDeleteRegexPatternSet :: DeleteRegexPatternSet -> TestTree+requestDeleteRegexPatternSet = req+ "DeleteRegexPatternSet"+ "fixture/DeleteRegexPatternSet.yaml"++requestUpdateRegexPatternSet :: UpdateRegexPatternSet -> TestTree+requestUpdateRegexPatternSet = req+ "UpdateRegexPatternSet"+ "fixture/UpdateRegexPatternSet.yaml"+ requestCreateSizeConstraintSet :: CreateSizeConstraintSet -> TestTree requestCreateSizeConstraintSet = req "CreateSizeConstraintSet" "fixture/CreateSizeConstraintSet.yaml" +requestListRegexPatternSets :: ListRegexPatternSets -> TestTree+requestListRegexPatternSets = req+ "ListRegexPatternSets"+ "fixture/ListRegexPatternSets.yaml"+ requestListSqlInjectionMatchSets :: ListSqlInjectionMatchSets -> TestTree requestListSqlInjectionMatchSets = req "ListSqlInjectionMatchSets" "fixture/ListSqlInjectionMatchSets.yaml" +requestGetRegexPatternSet :: GetRegexPatternSet -> TestTree+requestGetRegexPatternSet = req+ "GetRegexPatternSet"+ "fixture/GetRegexPatternSet.yaml"++requestCreateRateBasedRule :: CreateRateBasedRule -> TestTree+requestCreateRateBasedRule = req+ "CreateRateBasedRule"+ "fixture/CreateRateBasedRule.yaml"+ requestDeleteSqlInjectionMatchSet :: DeleteSqlInjectionMatchSet -> TestTree requestDeleteSqlInjectionMatchSet = req "DeleteSqlInjectionMatchSet"@@ -456,6 +687,13 @@ -- Responses +responseListRateBasedRules :: ListRateBasedRulesResponse -> TestTree+responseListRateBasedRules = res+ "ListRateBasedRulesResponse"+ "fixture/ListRateBasedRulesResponse.proto"+ waf+ (Proxy :: Proxy ListRateBasedRules)+ responseGetSizeConstraintSet :: GetSizeConstraintSetResponse -> TestTree responseGetSizeConstraintSet = res "GetSizeConstraintSetResponse"@@ -463,6 +701,20 @@ waf (Proxy :: Proxy GetSizeConstraintSet) +responseDeleteRateBasedRule :: DeleteRateBasedRuleResponse -> TestTree+responseDeleteRateBasedRule = res+ "DeleteRateBasedRuleResponse"+ "fixture/DeleteRateBasedRuleResponse.proto"+ waf+ (Proxy :: Proxy DeleteRateBasedRule)++responseUpdateRateBasedRule :: UpdateRateBasedRuleResponse -> TestTree+responseUpdateRateBasedRule = res+ "UpdateRateBasedRuleResponse"+ "fixture/UpdateRateBasedRuleResponse.proto"+ waf+ (Proxy :: Proxy UpdateRateBasedRule)+ responseUpdateRule :: UpdateRuleResponse -> TestTree responseUpdateRule = res "UpdateRuleResponse"@@ -533,6 +785,13 @@ waf (Proxy :: Proxy CreateWebACL) +responseGetGeoMatchSet :: GetGeoMatchSetResponse -> TestTree+responseGetGeoMatchSet = res+ "GetGeoMatchSetResponse"+ "fixture/GetGeoMatchSetResponse.proto"+ waf+ (Proxy :: Proxy GetGeoMatchSet)+ responseListByteMatchSets :: ListByteMatchSetsResponse -> TestTree responseListByteMatchSets = res "ListByteMatchSetsResponse"@@ -540,6 +799,27 @@ waf (Proxy :: Proxy ListByteMatchSets) +responseListGeoMatchSets :: ListGeoMatchSetsResponse -> TestTree+responseListGeoMatchSets = res+ "ListGeoMatchSetsResponse"+ "fixture/ListGeoMatchSetsResponse.proto"+ waf+ (Proxy :: Proxy ListGeoMatchSets)++responseDeleteRegexMatchSet :: DeleteRegexMatchSetResponse -> TestTree+responseDeleteRegexMatchSet = res+ "DeleteRegexMatchSetResponse"+ "fixture/DeleteRegexMatchSetResponse.proto"+ waf+ (Proxy :: Proxy DeleteRegexMatchSet)++responseUpdateRegexMatchSet :: UpdateRegexMatchSetResponse -> TestTree+responseUpdateRegexMatchSet = res+ "UpdateRegexMatchSetResponse"+ "fixture/UpdateRegexMatchSetResponse.proto"+ waf+ (Proxy :: Proxy UpdateRegexMatchSet)+ responseGetIPSet :: GetIPSetResponse -> TestTree responseGetIPSet = res "GetIPSetResponse"@@ -582,6 +862,13 @@ waf (Proxy :: Proxy ListXSSMatchSets) +responseCreateGeoMatchSet :: CreateGeoMatchSetResponse -> TestTree+responseCreateGeoMatchSet = res+ "CreateGeoMatchSetResponse"+ "fixture/CreateGeoMatchSetResponse.proto"+ waf+ (Proxy :: Proxy CreateGeoMatchSet)+ responseGetChangeToken :: GetChangeTokenResponse -> TestTree responseGetChangeToken = res "GetChangeTokenResponse"@@ -645,6 +932,20 @@ waf (Proxy :: Proxy DeleteByteMatchSet) +responseGetRateBasedRuleManagedKeys :: GetRateBasedRuleManagedKeysResponse -> TestTree+responseGetRateBasedRuleManagedKeys = res+ "GetRateBasedRuleManagedKeysResponse"+ "fixture/GetRateBasedRuleManagedKeysResponse.proto"+ waf+ (Proxy :: Proxy GetRateBasedRuleManagedKeys)++responseGetRegexMatchSet :: GetRegexMatchSetResponse -> TestTree+responseGetRegexMatchSet = res+ "GetRegexMatchSetResponse"+ "fixture/GetRegexMatchSetResponse.proto"+ waf+ (Proxy :: Proxy GetRegexMatchSet)+ responseDeleteIPSet :: DeleteIPSetResponse -> TestTree responseDeleteIPSet = res "DeleteIPSetResponse"@@ -666,6 +967,13 @@ waf (Proxy :: Proxy ListIPSets) +responseListRegexMatchSets :: ListRegexMatchSetsResponse -> TestTree+responseListRegexMatchSets = res+ "ListRegexMatchSetsResponse"+ "fixture/ListRegexMatchSetsResponse.proto"+ waf+ (Proxy :: Proxy ListRegexMatchSets)+ responseCreateXSSMatchSet :: CreateXSSMatchSetResponse -> TestTree responseCreateXSSMatchSet = res "CreateXSSMatchSetResponse"@@ -673,6 +981,20 @@ waf (Proxy :: Proxy CreateXSSMatchSet) +responseDeleteGeoMatchSet :: DeleteGeoMatchSetResponse -> TestTree+responseDeleteGeoMatchSet = res+ "DeleteGeoMatchSetResponse"+ "fixture/DeleteGeoMatchSetResponse.proto"+ waf+ (Proxy :: Proxy DeleteGeoMatchSet)++responseUpdateGeoMatchSet :: UpdateGeoMatchSetResponse -> TestTree+responseUpdateGeoMatchSet = res+ "UpdateGeoMatchSetResponse"+ "fixture/UpdateGeoMatchSetResponse.proto"+ waf+ (Proxy :: Proxy UpdateGeoMatchSet)+ responseGetByteMatchSet :: GetByteMatchSetResponse -> TestTree responseGetByteMatchSet = res "GetByteMatchSetResponse"@@ -680,6 +1002,27 @@ waf (Proxy :: Proxy GetByteMatchSet) +responseCreateRegexMatchSet :: CreateRegexMatchSetResponse -> TestTree+responseCreateRegexMatchSet = res+ "CreateRegexMatchSetResponse"+ "fixture/CreateRegexMatchSetResponse.proto"+ waf+ (Proxy :: Proxy CreateRegexMatchSet)++responseGetRateBasedRule :: GetRateBasedRuleResponse -> TestTree+responseGetRateBasedRule = res+ "GetRateBasedRuleResponse"+ "fixture/GetRateBasedRuleResponse.proto"+ waf+ (Proxy :: Proxy GetRateBasedRule)++responseCreateRegexPatternSet :: CreateRegexPatternSetResponse -> TestTree+responseCreateRegexPatternSet = res+ "CreateRegexPatternSetResponse"+ "fixture/CreateRegexPatternSetResponse.proto"+ waf+ (Proxy :: Proxy CreateRegexPatternSet)+ responseDeleteSizeConstraintSet :: DeleteSizeConstraintSetResponse -> TestTree responseDeleteSizeConstraintSet = res "DeleteSizeConstraintSetResponse"@@ -694,6 +1037,20 @@ waf (Proxy :: Proxy UpdateSizeConstraintSet) +responseDeleteRegexPatternSet :: DeleteRegexPatternSetResponse -> TestTree+responseDeleteRegexPatternSet = res+ "DeleteRegexPatternSetResponse"+ "fixture/DeleteRegexPatternSetResponse.proto"+ waf+ (Proxy :: Proxy DeleteRegexPatternSet)++responseUpdateRegexPatternSet :: UpdateRegexPatternSetResponse -> TestTree+responseUpdateRegexPatternSet = res+ "UpdateRegexPatternSetResponse"+ "fixture/UpdateRegexPatternSetResponse.proto"+ waf+ (Proxy :: Proxy UpdateRegexPatternSet)+ responseCreateSizeConstraintSet :: CreateSizeConstraintSetResponse -> TestTree responseCreateSizeConstraintSet = res "CreateSizeConstraintSetResponse"@@ -701,12 +1058,33 @@ waf (Proxy :: Proxy CreateSizeConstraintSet) +responseListRegexPatternSets :: ListRegexPatternSetsResponse -> TestTree+responseListRegexPatternSets = res+ "ListRegexPatternSetsResponse"+ "fixture/ListRegexPatternSetsResponse.proto"+ waf+ (Proxy :: Proxy ListRegexPatternSets)+ responseListSqlInjectionMatchSets :: ListSqlInjectionMatchSetsResponse -> TestTree responseListSqlInjectionMatchSets = res "ListSqlInjectionMatchSetsResponse" "fixture/ListSqlInjectionMatchSetsResponse.proto" waf (Proxy :: Proxy ListSqlInjectionMatchSets)++responseGetRegexPatternSet :: GetRegexPatternSetResponse -> TestTree+responseGetRegexPatternSet = res+ "GetRegexPatternSetResponse"+ "fixture/GetRegexPatternSetResponse.proto"+ waf+ (Proxy :: Proxy GetRegexPatternSet)++responseCreateRateBasedRule :: CreateRateBasedRuleResponse -> TestTree+responseCreateRateBasedRule = res+ "CreateRateBasedRuleResponse"+ "fixture/CreateRateBasedRuleResponse.proto"+ waf+ (Proxy :: Proxy CreateRateBasedRule) responseDeleteSqlInjectionMatchSet :: DeleteSqlInjectionMatchSetResponse -> TestTree responseDeleteSqlInjectionMatchSet = res