Copyright | (c) 2013-2023 Brendan Hay |
---|---|
License | Mozilla Public License, v. 2.0. |
Maintainer | Brendan Hay |
Stability | auto-generated |
Portability | non-portable (GHC extensions) |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
- Service Configuration
- Errors
- ActionValue
- BodyParsingFallbackBehavior
- ComparisonOperator
- CountryCode
- FailureReason
- FallbackBehavior
- FilterBehavior
- FilterRequirement
- ForwardedIPPosition
- IPAddressVersion
- InspectionLevel
- JsonMatchScope
- LabelMatchScope
- MapMatchScope
- OversizeHandling
- PayloadType
- Platform
- PositionalConstraint
- RateBasedStatementAggregateKeyType
- ResourceType
- ResponseContentType
- Scope
- SensitivityLevel
- TextTransformationType
- AWSManagedRulesBotControlRuleSet
- ActionCondition
- All
- AllQueryArguments
- AllowAction
- AndStatement
- BlockAction
- Body
- ByteMatchStatement
- CaptchaAction
- CaptchaConfig
- CaptchaResponse
- ChallengeAction
- ChallengeConfig
- ChallengeResponse
- Condition
- CookieMatchPattern
- Cookies
- CountAction
- CustomHTTPHeader
- CustomRequestHandling
- CustomResponse
- CustomResponseBody
- DefaultAction
- ExcludedRule
- FieldToMatch
- Filter
- FirewallManagerRuleGroup
- FirewallManagerStatement
- ForwardedIPConfig
- GeoMatchStatement
- HTTPHeader
- HTTPRequest
- HeaderMatchPattern
- Headers
- IPSet
- IPSetForwardedIPConfig
- IPSetReferenceStatement
- IPSetSummary
- ImmunityTimeProperty
- JsonBody
- JsonMatchPattern
- Label
- LabelMatchStatement
- LabelNameCondition
- LabelSummary
- LoggingConfiguration
- LoggingFilter
- ManagedRuleGroupConfig
- ManagedRuleGroupStatement
- ManagedRuleGroupSummary
- ManagedRuleGroupVersion
- ManagedRuleSet
- ManagedRuleSetSummary
- ManagedRuleSetVersion
- Method
- MobileSdkRelease
- NoneAction
- NotStatement
- OrStatement
- OverrideAction
- PasswordField
- QueryString
- RateBasedStatement
- RateBasedStatementManagedKeysIPSet
- Regex
- RegexMatchStatement
- RegexPatternSet
- RegexPatternSetReferenceStatement
- RegexPatternSetSummary
- ReleaseSummary
- Rule
- RuleAction
- RuleActionOverride
- RuleGroup
- RuleGroupReferenceStatement
- RuleGroupSummary
- RuleSummary
- SampledHTTPRequest
- SingleHeader
- SingleQueryArgument
- SizeConstraintStatement
- SqliMatchStatement
- Statement
- Tag
- TagInfoForResource
- TextTransformation
- TimeWindow
- UriPath
- UsernameField
- VersionToPublish
- VisibilityConfig
- WebACL
- WebACLSummary
- XssMatchStatement
Synopsis
- defaultService :: Service
- _WAFAssociatedItemException :: AsError a => Fold a ServiceError
- _WAFConfigurationWarningException :: AsError a => Fold a ServiceError
- _WAFDuplicateItemException :: AsError a => Fold a ServiceError
- _WAFExpiredManagedRuleGroupVersionException :: AsError a => Fold a ServiceError
- _WAFInternalErrorException :: AsError a => Fold a ServiceError
- _WAFInvalidOperationException :: AsError a => Fold a ServiceError
- _WAFInvalidParameterException :: AsError a => Fold a ServiceError
- _WAFInvalidPermissionPolicyException :: AsError a => Fold a ServiceError
- _WAFInvalidResourceException :: AsError a => Fold a ServiceError
- _WAFLimitsExceededException :: AsError a => Fold a ServiceError
- _WAFLogDestinationPermissionIssueException :: AsError a => Fold a ServiceError
- _WAFNonexistentItemException :: AsError a => Fold a ServiceError
- _WAFOptimisticLockException :: AsError a => Fold a ServiceError
- _WAFServiceLinkedRoleErrorException :: AsError a => Fold a ServiceError
- _WAFSubscriptionNotFoundException :: AsError a => Fold a ServiceError
- _WAFTagOperationException :: AsError a => Fold a ServiceError
- _WAFTagOperationInternalErrorException :: AsError a => Fold a ServiceError
- _WAFUnavailableEntityException :: AsError a => Fold a ServiceError
- newtype ActionValue where
- ActionValue' { }
- pattern ActionValue_ALLOW :: ActionValue
- pattern ActionValue_BLOCK :: ActionValue
- pattern ActionValue_CAPTCHA :: ActionValue
- pattern ActionValue_CHALLENGE :: ActionValue
- pattern ActionValue_COUNT :: ActionValue
- pattern ActionValue_EXCLUDED_AS_COUNT :: ActionValue
- newtype BodyParsingFallbackBehavior where
- newtype ComparisonOperator where
- ComparisonOperator' { }
- pattern ComparisonOperator_EQ :: ComparisonOperator
- pattern ComparisonOperator_GE :: ComparisonOperator
- pattern ComparisonOperator_GT :: ComparisonOperator
- pattern ComparisonOperator_LE :: ComparisonOperator
- pattern ComparisonOperator_LT :: ComparisonOperator
- pattern ComparisonOperator_NE :: ComparisonOperator
- newtype CountryCode where
- CountryCode' { }
- pattern CountryCode_AD :: CountryCode
- pattern CountryCode_AE :: CountryCode
- pattern CountryCode_AF :: CountryCode
- pattern CountryCode_AG :: CountryCode
- pattern CountryCode_AI :: CountryCode
- pattern CountryCode_AL :: CountryCode
- pattern CountryCode_AM :: CountryCode
- pattern CountryCode_AO :: CountryCode
- pattern CountryCode_AQ :: CountryCode
- pattern CountryCode_AR :: CountryCode
- pattern CountryCode_AS :: CountryCode
- pattern CountryCode_AT :: CountryCode
- pattern CountryCode_AU :: CountryCode
- pattern CountryCode_AW :: CountryCode
- pattern CountryCode_AX :: CountryCode
- pattern CountryCode_AZ :: CountryCode
- pattern CountryCode_BA :: CountryCode
- pattern CountryCode_BB :: CountryCode
- pattern CountryCode_BD :: CountryCode
- pattern CountryCode_BE :: CountryCode
- pattern CountryCode_BF :: CountryCode
- pattern CountryCode_BG :: CountryCode
- pattern CountryCode_BH :: CountryCode
- pattern CountryCode_BI :: CountryCode
- pattern CountryCode_BJ :: CountryCode
- pattern CountryCode_BL :: CountryCode
- pattern CountryCode_BM :: CountryCode
- pattern CountryCode_BN :: CountryCode
- pattern CountryCode_BO :: CountryCode
- pattern CountryCode_BQ :: CountryCode
- pattern CountryCode_BR :: CountryCode
- pattern CountryCode_BS :: CountryCode
- pattern CountryCode_BT :: CountryCode
- pattern CountryCode_BV :: CountryCode
- pattern CountryCode_BW :: CountryCode
- pattern CountryCode_BY :: CountryCode
- pattern CountryCode_BZ :: CountryCode
- pattern CountryCode_CA :: CountryCode
- pattern CountryCode_CC :: CountryCode
- pattern CountryCode_CD :: CountryCode
- pattern CountryCode_CF :: CountryCode
- pattern CountryCode_CG :: CountryCode
- pattern CountryCode_CH :: CountryCode
- pattern CountryCode_CI :: CountryCode
- pattern CountryCode_CK :: CountryCode
- pattern CountryCode_CL :: CountryCode
- pattern CountryCode_CM :: CountryCode
- pattern CountryCode_CN :: CountryCode
- pattern CountryCode_CO :: CountryCode
- pattern CountryCode_CR :: CountryCode
- pattern CountryCode_CU :: CountryCode
- pattern CountryCode_CV :: CountryCode
- pattern CountryCode_CW :: CountryCode
- pattern CountryCode_CX :: CountryCode
- pattern CountryCode_CY :: CountryCode
- pattern CountryCode_CZ :: CountryCode
- pattern CountryCode_DE :: CountryCode
- pattern CountryCode_DJ :: CountryCode
- pattern CountryCode_DK :: CountryCode
- pattern CountryCode_DM :: CountryCode
- pattern CountryCode_DO :: CountryCode
- pattern CountryCode_DZ :: CountryCode
- pattern CountryCode_EC :: CountryCode
- pattern CountryCode_EE :: CountryCode
- pattern CountryCode_EG :: CountryCode
- pattern CountryCode_EH :: CountryCode
- pattern CountryCode_ER :: CountryCode
- pattern CountryCode_ES :: CountryCode
- pattern CountryCode_ET :: CountryCode
- pattern CountryCode_FI :: CountryCode
- pattern CountryCode_FJ :: CountryCode
- pattern CountryCode_FK :: CountryCode
- pattern CountryCode_FM :: CountryCode
- pattern CountryCode_FO :: CountryCode
- pattern CountryCode_FR :: CountryCode
- pattern CountryCode_GA :: CountryCode
- pattern CountryCode_GB :: CountryCode
- pattern CountryCode_GD :: CountryCode
- pattern CountryCode_GE :: CountryCode
- pattern CountryCode_GF :: CountryCode
- pattern CountryCode_GG :: CountryCode
- pattern CountryCode_GH :: CountryCode
- pattern CountryCode_GI :: CountryCode
- pattern CountryCode_GL :: CountryCode
- pattern CountryCode_GM :: CountryCode
- pattern CountryCode_GN :: CountryCode
- pattern CountryCode_GP :: CountryCode
- pattern CountryCode_GQ :: CountryCode
- pattern CountryCode_GR :: CountryCode
- pattern CountryCode_GS :: CountryCode
- pattern CountryCode_GT :: CountryCode
- pattern CountryCode_GU :: CountryCode
- pattern CountryCode_GW :: CountryCode
- pattern CountryCode_GY :: CountryCode
- pattern CountryCode_HK :: CountryCode
- pattern CountryCode_HM :: CountryCode
- pattern CountryCode_HN :: CountryCode
- pattern CountryCode_HR :: CountryCode
- pattern CountryCode_HT :: CountryCode
- pattern CountryCode_HU :: CountryCode
- pattern CountryCode_ID :: CountryCode
- pattern CountryCode_IE :: CountryCode
- pattern CountryCode_IL :: CountryCode
- pattern CountryCode_IM :: CountryCode
- pattern CountryCode_IN :: CountryCode
- pattern CountryCode_IO :: CountryCode
- pattern CountryCode_IQ :: CountryCode
- pattern CountryCode_IR :: CountryCode
- pattern CountryCode_IS :: CountryCode
- pattern CountryCode_IT :: CountryCode
- pattern CountryCode_JE :: CountryCode
- pattern CountryCode_JM :: CountryCode
- pattern CountryCode_JO :: CountryCode
- pattern CountryCode_JP :: CountryCode
- pattern CountryCode_KE :: CountryCode
- pattern CountryCode_KG :: CountryCode
- pattern CountryCode_KH :: CountryCode
- pattern CountryCode_KI :: CountryCode
- pattern CountryCode_KM :: CountryCode
- pattern CountryCode_KN :: CountryCode
- pattern CountryCode_KP :: CountryCode
- pattern CountryCode_KR :: CountryCode
- pattern CountryCode_KW :: CountryCode
- pattern CountryCode_KY :: CountryCode
- pattern CountryCode_KZ :: CountryCode
- pattern CountryCode_LA :: CountryCode
- pattern CountryCode_LB :: CountryCode
- pattern CountryCode_LC :: CountryCode
- pattern CountryCode_LI :: CountryCode
- pattern CountryCode_LK :: CountryCode
- pattern CountryCode_LR :: CountryCode
- pattern CountryCode_LS :: CountryCode
- pattern CountryCode_LT :: CountryCode
- pattern CountryCode_LU :: CountryCode
- pattern CountryCode_LV :: CountryCode
- pattern CountryCode_LY :: CountryCode
- pattern CountryCode_MA :: CountryCode
- pattern CountryCode_MC :: CountryCode
- pattern CountryCode_MD :: CountryCode
- pattern CountryCode_ME :: CountryCode
- pattern CountryCode_MF :: CountryCode
- pattern CountryCode_MG :: CountryCode
- pattern CountryCode_MH :: CountryCode
- pattern CountryCode_MK :: CountryCode
- pattern CountryCode_ML :: CountryCode
- pattern CountryCode_MM :: CountryCode
- pattern CountryCode_MN :: CountryCode
- pattern CountryCode_MO :: CountryCode
- pattern CountryCode_MP :: CountryCode
- pattern CountryCode_MQ :: CountryCode
- pattern CountryCode_MR :: CountryCode
- pattern CountryCode_MS :: CountryCode
- pattern CountryCode_MT :: CountryCode
- pattern CountryCode_MU :: CountryCode
- pattern CountryCode_MV :: CountryCode
- pattern CountryCode_MW :: CountryCode
- pattern CountryCode_MX :: CountryCode
- pattern CountryCode_MY :: CountryCode
- pattern CountryCode_MZ :: CountryCode
- pattern CountryCode_NA :: CountryCode
- pattern CountryCode_NC :: CountryCode
- pattern CountryCode_NE :: CountryCode
- pattern CountryCode_NF :: CountryCode
- pattern CountryCode_NG :: CountryCode
- pattern CountryCode_NI :: CountryCode
- pattern CountryCode_NL :: CountryCode
- pattern CountryCode_NO :: CountryCode
- pattern CountryCode_NP :: CountryCode
- pattern CountryCode_NR :: CountryCode
- pattern CountryCode_NU :: CountryCode
- pattern CountryCode_NZ :: CountryCode
- pattern CountryCode_OM :: CountryCode
- pattern CountryCode_PA :: CountryCode
- pattern CountryCode_PE :: CountryCode
- pattern CountryCode_PF :: CountryCode
- pattern CountryCode_PG :: CountryCode
- pattern CountryCode_PH :: CountryCode
- pattern CountryCode_PK :: CountryCode
- pattern CountryCode_PL :: CountryCode
- pattern CountryCode_PM :: CountryCode
- pattern CountryCode_PN :: CountryCode
- pattern CountryCode_PR :: CountryCode
- pattern CountryCode_PS :: CountryCode
- pattern CountryCode_PT :: CountryCode
- pattern CountryCode_PW :: CountryCode
- pattern CountryCode_PY :: CountryCode
- pattern CountryCode_QA :: CountryCode
- pattern CountryCode_RE :: CountryCode
- pattern CountryCode_RO :: CountryCode
- pattern CountryCode_RS :: CountryCode
- pattern CountryCode_RU :: CountryCode
- pattern CountryCode_RW :: CountryCode
- pattern CountryCode_SA :: CountryCode
- pattern CountryCode_SB :: CountryCode
- pattern CountryCode_SC :: CountryCode
- pattern CountryCode_SD :: CountryCode
- pattern CountryCode_SE :: CountryCode
- pattern CountryCode_SG :: CountryCode
- pattern CountryCode_SH :: CountryCode
- pattern CountryCode_SI :: CountryCode
- pattern CountryCode_SJ :: CountryCode
- pattern CountryCode_SK :: CountryCode
- pattern CountryCode_SL :: CountryCode
- pattern CountryCode_SM :: CountryCode
- pattern CountryCode_SN :: CountryCode
- pattern CountryCode_SO :: CountryCode
- pattern CountryCode_SR :: CountryCode
- pattern CountryCode_SS :: CountryCode
- pattern CountryCode_ST :: CountryCode
- pattern CountryCode_SV :: CountryCode
- pattern CountryCode_SX :: CountryCode
- pattern CountryCode_SY :: CountryCode
- pattern CountryCode_SZ :: CountryCode
- pattern CountryCode_TC :: CountryCode
- pattern CountryCode_TD :: CountryCode
- pattern CountryCode_TF :: CountryCode
- pattern CountryCode_TG :: CountryCode
- pattern CountryCode_TH :: CountryCode
- pattern CountryCode_TJ :: CountryCode
- pattern CountryCode_TK :: CountryCode
- pattern CountryCode_TL :: CountryCode
- pattern CountryCode_TM :: CountryCode
- pattern CountryCode_TN :: CountryCode
- pattern CountryCode_TO :: CountryCode
- pattern CountryCode_TR :: CountryCode
- pattern CountryCode_TT :: CountryCode
- pattern CountryCode_TV :: CountryCode
- pattern CountryCode_TW :: CountryCode
- pattern CountryCode_TZ :: CountryCode
- pattern CountryCode_UA :: CountryCode
- pattern CountryCode_UG :: CountryCode
- pattern CountryCode_UM :: CountryCode
- pattern CountryCode_US :: CountryCode
- pattern CountryCode_UY :: CountryCode
- pattern CountryCode_UZ :: CountryCode
- pattern CountryCode_VA :: CountryCode
- pattern CountryCode_VC :: CountryCode
- pattern CountryCode_VE :: CountryCode
- pattern CountryCode_VG :: CountryCode
- pattern CountryCode_VI :: CountryCode
- pattern CountryCode_VN :: CountryCode
- pattern CountryCode_VU :: CountryCode
- pattern CountryCode_WF :: CountryCode
- pattern CountryCode_WS :: CountryCode
- pattern CountryCode_XK :: CountryCode
- pattern CountryCode_YE :: CountryCode
- pattern CountryCode_YT :: CountryCode
- pattern CountryCode_ZA :: CountryCode
- pattern CountryCode_ZM :: CountryCode
- pattern CountryCode_ZW :: CountryCode
- newtype FailureReason where
- FailureReason' { }
- pattern FailureReason_TOKEN_DOMAIN_MISMATCH :: FailureReason
- pattern FailureReason_TOKEN_EXPIRED :: FailureReason
- pattern FailureReason_TOKEN_INVALID :: FailureReason
- pattern FailureReason_TOKEN_MISSING :: FailureReason
- newtype FallbackBehavior where
- FallbackBehavior' { }
- pattern FallbackBehavior_MATCH :: FallbackBehavior
- pattern FallbackBehavior_NO_MATCH :: FallbackBehavior
- newtype FilterBehavior where
- FilterBehavior' { }
- pattern FilterBehavior_DROP :: FilterBehavior
- pattern FilterBehavior_KEEP :: FilterBehavior
- newtype FilterRequirement where
- FilterRequirement' { }
- pattern FilterRequirement_MEETS_ALL :: FilterRequirement
- pattern FilterRequirement_MEETS_ANY :: FilterRequirement
- newtype ForwardedIPPosition where
- ForwardedIPPosition' { }
- pattern ForwardedIPPosition_ANY :: ForwardedIPPosition
- pattern ForwardedIPPosition_FIRST :: ForwardedIPPosition
- pattern ForwardedIPPosition_LAST :: ForwardedIPPosition
- newtype IPAddressVersion where
- IPAddressVersion' { }
- pattern IPAddressVersion_IPV4 :: IPAddressVersion
- pattern IPAddressVersion_IPV6 :: IPAddressVersion
- newtype InspectionLevel where
- InspectionLevel' { }
- pattern InspectionLevel_COMMON :: InspectionLevel
- pattern InspectionLevel_TARGETED :: InspectionLevel
- newtype JsonMatchScope where
- JsonMatchScope' { }
- pattern JsonMatchScope_ALL :: JsonMatchScope
- pattern JsonMatchScope_KEY :: JsonMatchScope
- pattern JsonMatchScope_VALUE :: JsonMatchScope
- newtype LabelMatchScope where
- LabelMatchScope' { }
- pattern LabelMatchScope_LABEL :: LabelMatchScope
- pattern LabelMatchScope_NAMESPACE :: LabelMatchScope
- newtype MapMatchScope where
- MapMatchScope' { }
- pattern MapMatchScope_ALL :: MapMatchScope
- pattern MapMatchScope_KEY :: MapMatchScope
- pattern MapMatchScope_VALUE :: MapMatchScope
- newtype OversizeHandling where
- OversizeHandling' { }
- pattern OversizeHandling_CONTINUE :: OversizeHandling
- pattern OversizeHandling_MATCH :: OversizeHandling
- pattern OversizeHandling_NO_MATCH :: OversizeHandling
- newtype PayloadType where
- PayloadType' { }
- pattern PayloadType_FORM_ENCODED :: PayloadType
- pattern PayloadType_JSON :: PayloadType
- newtype Platform where
- Platform' {
- fromPlatform :: Text
- pattern Platform_ANDROID :: Platform
- pattern Platform_IOS :: Platform
- Platform' {
- newtype PositionalConstraint where
- PositionalConstraint' { }
- pattern PositionalConstraint_CONTAINS :: PositionalConstraint
- pattern PositionalConstraint_CONTAINS_WORD :: PositionalConstraint
- pattern PositionalConstraint_ENDS_WITH :: PositionalConstraint
- pattern PositionalConstraint_EXACTLY :: PositionalConstraint
- pattern PositionalConstraint_STARTS_WITH :: PositionalConstraint
- newtype RateBasedStatementAggregateKeyType where
- newtype ResourceType where
- ResourceType' { }
- pattern ResourceType_API_GATEWAY :: ResourceType
- pattern ResourceType_APPLICATION_LOAD_BALANCER :: ResourceType
- pattern ResourceType_APPSYNC :: ResourceType
- pattern ResourceType_COGNITO_USER_POOL :: ResourceType
- newtype ResponseContentType where
- newtype Scope where
- Scope' { }
- pattern Scope_CLOUDFRONT :: Scope
- pattern Scope_REGIONAL :: Scope
- newtype SensitivityLevel where
- SensitivityLevel' { }
- pattern SensitivityLevel_HIGH :: SensitivityLevel
- pattern SensitivityLevel_LOW :: SensitivityLevel
- newtype TextTransformationType where
- TextTransformationType' { }
- pattern TextTransformationType_BASE64_DECODE :: TextTransformationType
- pattern TextTransformationType_BASE64_DECODE_EXT :: TextTransformationType
- pattern TextTransformationType_CMD_LINE :: TextTransformationType
- pattern TextTransformationType_COMPRESS_WHITE_SPACE :: TextTransformationType
- pattern TextTransformationType_CSS_DECODE :: TextTransformationType
- pattern TextTransformationType_ESCAPE_SEQ_DECODE :: TextTransformationType
- pattern TextTransformationType_HEX_DECODE :: TextTransformationType
- pattern TextTransformationType_HTML_ENTITY_DECODE :: TextTransformationType
- pattern TextTransformationType_JS_DECODE :: TextTransformationType
- pattern TextTransformationType_LOWERCASE :: TextTransformationType
- pattern TextTransformationType_MD5 :: TextTransformationType
- pattern TextTransformationType_NONE :: TextTransformationType
- pattern TextTransformationType_NORMALIZE_PATH :: TextTransformationType
- pattern TextTransformationType_NORMALIZE_PATH_WIN :: TextTransformationType
- pattern TextTransformationType_REMOVE_NULLS :: TextTransformationType
- pattern TextTransformationType_REPLACE_COMMENTS :: TextTransformationType
- pattern TextTransformationType_REPLACE_NULLS :: TextTransformationType
- pattern TextTransformationType_SQL_HEX_DECODE :: TextTransformationType
- pattern TextTransformationType_URL_DECODE :: TextTransformationType
- pattern TextTransformationType_URL_DECODE_UNI :: TextTransformationType
- pattern TextTransformationType_UTF8_TO_UNICODE :: TextTransformationType
- data AWSManagedRulesBotControlRuleSet = AWSManagedRulesBotControlRuleSet' {}
- newAWSManagedRulesBotControlRuleSet :: InspectionLevel -> AWSManagedRulesBotControlRuleSet
- aWSManagedRulesBotControlRuleSet_inspectionLevel :: Lens' AWSManagedRulesBotControlRuleSet InspectionLevel
- data ActionCondition = ActionCondition' {}
- newActionCondition :: ActionValue -> ActionCondition
- actionCondition_action :: Lens' ActionCondition ActionValue
- data All = All' {
- newAll :: All
- data AllQueryArguments = AllQueryArguments' {
- newAllQueryArguments :: AllQueryArguments
- data AllowAction = AllowAction' {}
- newAllowAction :: AllowAction
- allowAction_customRequestHandling :: Lens' AllowAction (Maybe CustomRequestHandling)
- data AndStatement = AndStatement' {
- statements :: [Statement]
- newAndStatement :: AndStatement
- andStatement_statements :: Lens' AndStatement [Statement]
- data BlockAction = BlockAction' {}
- newBlockAction :: BlockAction
- blockAction_customResponse :: Lens' BlockAction (Maybe CustomResponse)
- data Body = Body' {}
- newBody :: Body
- body_oversizeHandling :: Lens' Body (Maybe OversizeHandling)
- data ByteMatchStatement = ByteMatchStatement' {}
- newByteMatchStatement :: ByteString -> FieldToMatch -> NonEmpty TextTransformation -> PositionalConstraint -> ByteMatchStatement
- byteMatchStatement_searchString :: Lens' ByteMatchStatement ByteString
- byteMatchStatement_fieldToMatch :: Lens' ByteMatchStatement FieldToMatch
- byteMatchStatement_textTransformations :: Lens' ByteMatchStatement (NonEmpty TextTransformation)
- byteMatchStatement_positionalConstraint :: Lens' ByteMatchStatement PositionalConstraint
- data CaptchaAction = CaptchaAction' {}
- newCaptchaAction :: CaptchaAction
- captchaAction_customRequestHandling :: Lens' CaptchaAction (Maybe CustomRequestHandling)
- data CaptchaConfig = CaptchaConfig' {}
- newCaptchaConfig :: CaptchaConfig
- captchaConfig_immunityTimeProperty :: Lens' CaptchaConfig (Maybe ImmunityTimeProperty)
- data CaptchaResponse = CaptchaResponse' {}
- newCaptchaResponse :: CaptchaResponse
- captchaResponse_failureReason :: Lens' CaptchaResponse (Maybe FailureReason)
- captchaResponse_responseCode :: Lens' CaptchaResponse (Maybe Int)
- captchaResponse_solveTimestamp :: Lens' CaptchaResponse (Maybe Integer)
- data ChallengeAction = ChallengeAction' {}
- newChallengeAction :: ChallengeAction
- challengeAction_customRequestHandling :: Lens' ChallengeAction (Maybe CustomRequestHandling)
- data ChallengeConfig = ChallengeConfig' {}
- newChallengeConfig :: ChallengeConfig
- challengeConfig_immunityTimeProperty :: Lens' ChallengeConfig (Maybe ImmunityTimeProperty)
- data ChallengeResponse = ChallengeResponse' {}
- newChallengeResponse :: ChallengeResponse
- challengeResponse_failureReason :: Lens' ChallengeResponse (Maybe FailureReason)
- challengeResponse_responseCode :: Lens' ChallengeResponse (Maybe Int)
- challengeResponse_solveTimestamp :: Lens' ChallengeResponse (Maybe Integer)
- data Condition = Condition' {}
- newCondition :: Condition
- condition_actionCondition :: Lens' Condition (Maybe ActionCondition)
- condition_labelNameCondition :: Lens' Condition (Maybe LabelNameCondition)
- data CookieMatchPattern = CookieMatchPattern' {}
- newCookieMatchPattern :: CookieMatchPattern
- cookieMatchPattern_all :: Lens' CookieMatchPattern (Maybe All)
- cookieMatchPattern_excludedCookies :: Lens' CookieMatchPattern (Maybe (NonEmpty Text))
- cookieMatchPattern_includedCookies :: Lens' CookieMatchPattern (Maybe (NonEmpty Text))
- data Cookies = Cookies' {}
- newCookies :: CookieMatchPattern -> MapMatchScope -> OversizeHandling -> Cookies
- cookies_matchPattern :: Lens' Cookies CookieMatchPattern
- cookies_matchScope :: Lens' Cookies MapMatchScope
- cookies_oversizeHandling :: Lens' Cookies OversizeHandling
- data CountAction = CountAction' {}
- newCountAction :: CountAction
- countAction_customRequestHandling :: Lens' CountAction (Maybe CustomRequestHandling)
- data CustomHTTPHeader = CustomHTTPHeader' {}
- newCustomHTTPHeader :: Text -> Text -> CustomHTTPHeader
- customHTTPHeader_name :: Lens' CustomHTTPHeader Text
- customHTTPHeader_value :: Lens' CustomHTTPHeader Text
- data CustomRequestHandling = CustomRequestHandling' {}
- newCustomRequestHandling :: NonEmpty CustomHTTPHeader -> CustomRequestHandling
- customRequestHandling_insertHeaders :: Lens' CustomRequestHandling (NonEmpty CustomHTTPHeader)
- data CustomResponse = CustomResponse' {}
- newCustomResponse :: Natural -> CustomResponse
- customResponse_customResponseBodyKey :: Lens' CustomResponse (Maybe Text)
- customResponse_responseHeaders :: Lens' CustomResponse (Maybe (NonEmpty CustomHTTPHeader))
- customResponse_responseCode :: Lens' CustomResponse Natural
- data CustomResponseBody = CustomResponseBody' {}
- newCustomResponseBody :: ResponseContentType -> Text -> CustomResponseBody
- customResponseBody_contentType :: Lens' CustomResponseBody ResponseContentType
- customResponseBody_content :: Lens' CustomResponseBody Text
- data DefaultAction = DefaultAction' {}
- newDefaultAction :: DefaultAction
- defaultAction_allow :: Lens' DefaultAction (Maybe AllowAction)
- defaultAction_block :: Lens' DefaultAction (Maybe BlockAction)
- data ExcludedRule = ExcludedRule' {}
- newExcludedRule :: Text -> ExcludedRule
- excludedRule_name :: Lens' ExcludedRule Text
- data FieldToMatch = FieldToMatch' {}
- newFieldToMatch :: FieldToMatch
- fieldToMatch_allQueryArguments :: Lens' FieldToMatch (Maybe AllQueryArguments)
- fieldToMatch_body :: Lens' FieldToMatch (Maybe Body)
- fieldToMatch_cookies :: Lens' FieldToMatch (Maybe Cookies)
- fieldToMatch_headers :: Lens' FieldToMatch (Maybe Headers)
- fieldToMatch_jsonBody :: Lens' FieldToMatch (Maybe JsonBody)
- fieldToMatch_method :: Lens' FieldToMatch (Maybe Method)
- fieldToMatch_queryString :: Lens' FieldToMatch (Maybe QueryString)
- fieldToMatch_singleHeader :: Lens' FieldToMatch (Maybe SingleHeader)
- fieldToMatch_singleQueryArgument :: Lens' FieldToMatch (Maybe SingleQueryArgument)
- fieldToMatch_uriPath :: Lens' FieldToMatch (Maybe UriPath)
- data Filter = Filter' {}
- newFilter :: FilterBehavior -> FilterRequirement -> NonEmpty Condition -> Filter
- filter_behavior :: Lens' Filter FilterBehavior
- filter_requirement :: Lens' Filter FilterRequirement
- filter_conditions :: Lens' Filter (NonEmpty Condition)
- data FirewallManagerRuleGroup = FirewallManagerRuleGroup' {}
- newFirewallManagerRuleGroup :: Text -> Natural -> FirewallManagerStatement -> OverrideAction -> VisibilityConfig -> FirewallManagerRuleGroup
- firewallManagerRuleGroup_name :: Lens' FirewallManagerRuleGroup Text
- firewallManagerRuleGroup_priority :: Lens' FirewallManagerRuleGroup Natural
- firewallManagerRuleGroup_firewallManagerStatement :: Lens' FirewallManagerRuleGroup FirewallManagerStatement
- firewallManagerRuleGroup_overrideAction :: Lens' FirewallManagerRuleGroup OverrideAction
- firewallManagerRuleGroup_visibilityConfig :: Lens' FirewallManagerRuleGroup VisibilityConfig
- data FirewallManagerStatement = FirewallManagerStatement' {}
- newFirewallManagerStatement :: FirewallManagerStatement
- firewallManagerStatement_managedRuleGroupStatement :: Lens' FirewallManagerStatement (Maybe ManagedRuleGroupStatement)
- firewallManagerStatement_ruleGroupReferenceStatement :: Lens' FirewallManagerStatement (Maybe RuleGroupReferenceStatement)
- data ForwardedIPConfig = ForwardedIPConfig' {}
- newForwardedIPConfig :: Text -> FallbackBehavior -> ForwardedIPConfig
- forwardedIPConfig_headerName :: Lens' ForwardedIPConfig Text
- forwardedIPConfig_fallbackBehavior :: Lens' ForwardedIPConfig FallbackBehavior
- data GeoMatchStatement = GeoMatchStatement' {}
- newGeoMatchStatement :: GeoMatchStatement
- geoMatchStatement_countryCodes :: Lens' GeoMatchStatement (Maybe (NonEmpty CountryCode))
- geoMatchStatement_forwardedIPConfig :: Lens' GeoMatchStatement (Maybe ForwardedIPConfig)
- data HTTPHeader = HTTPHeader' {}
- newHTTPHeader :: HTTPHeader
- hTTPHeader_name :: Lens' HTTPHeader (Maybe Text)
- hTTPHeader_value :: Lens' HTTPHeader (Maybe Text)
- data HTTPRequest = HTTPRequest' {}
- newHTTPRequest :: HTTPRequest
- hTTPRequest_clientIP :: Lens' HTTPRequest (Maybe Text)
- hTTPRequest_country :: Lens' HTTPRequest (Maybe Text)
- hTTPRequest_hTTPVersion :: Lens' HTTPRequest (Maybe Text)
- hTTPRequest_headers :: Lens' HTTPRequest (Maybe [HTTPHeader])
- hTTPRequest_method :: Lens' HTTPRequest (Maybe Text)
- hTTPRequest_uri :: Lens' HTTPRequest (Maybe Text)
- data HeaderMatchPattern = HeaderMatchPattern' {}
- newHeaderMatchPattern :: HeaderMatchPattern
- headerMatchPattern_all :: Lens' HeaderMatchPattern (Maybe All)
- headerMatchPattern_excludedHeaders :: Lens' HeaderMatchPattern (Maybe (NonEmpty Text))
- headerMatchPattern_includedHeaders :: Lens' HeaderMatchPattern (Maybe (NonEmpty Text))
- data Headers = Headers' {}
- newHeaders :: HeaderMatchPattern -> MapMatchScope -> OversizeHandling -> Headers
- headers_matchPattern :: Lens' Headers HeaderMatchPattern
- headers_matchScope :: Lens' Headers MapMatchScope
- headers_oversizeHandling :: Lens' Headers OversizeHandling
- data IPSet = IPSet' {
- description :: Maybe Text
- name :: Text
- id :: Text
- arn :: Text
- iPAddressVersion :: IPAddressVersion
- addresses :: [Text]
- newIPSet :: Text -> Text -> Text -> IPAddressVersion -> IPSet
- iPSet_description :: Lens' IPSet (Maybe Text)
- iPSet_name :: Lens' IPSet Text
- iPSet_id :: Lens' IPSet Text
- iPSet_arn :: Lens' IPSet Text
- iPSet_iPAddressVersion :: Lens' IPSet IPAddressVersion
- iPSet_addresses :: Lens' IPSet [Text]
- data IPSetForwardedIPConfig = IPSetForwardedIPConfig' {}
- newIPSetForwardedIPConfig :: Text -> FallbackBehavior -> ForwardedIPPosition -> IPSetForwardedIPConfig
- iPSetForwardedIPConfig_headerName :: Lens' IPSetForwardedIPConfig Text
- iPSetForwardedIPConfig_fallbackBehavior :: Lens' IPSetForwardedIPConfig FallbackBehavior
- iPSetForwardedIPConfig_position :: Lens' IPSetForwardedIPConfig ForwardedIPPosition
- data IPSetReferenceStatement = IPSetReferenceStatement' {}
- newIPSetReferenceStatement :: Text -> IPSetReferenceStatement
- iPSetReferenceStatement_iPSetForwardedIPConfig :: Lens' IPSetReferenceStatement (Maybe IPSetForwardedIPConfig)
- iPSetReferenceStatement_arn :: Lens' IPSetReferenceStatement Text
- data IPSetSummary = IPSetSummary' {}
- newIPSetSummary :: IPSetSummary
- iPSetSummary_arn :: Lens' IPSetSummary (Maybe Text)
- iPSetSummary_description :: Lens' IPSetSummary (Maybe Text)
- iPSetSummary_id :: Lens' IPSetSummary (Maybe Text)
- iPSetSummary_lockToken :: Lens' IPSetSummary (Maybe Text)
- iPSetSummary_name :: Lens' IPSetSummary (Maybe Text)
- data ImmunityTimeProperty = ImmunityTimeProperty' {}
- newImmunityTimeProperty :: Natural -> ImmunityTimeProperty
- immunityTimeProperty_immunityTime :: Lens' ImmunityTimeProperty Natural
- data JsonBody = JsonBody' {}
- newJsonBody :: JsonMatchPattern -> JsonMatchScope -> JsonBody
- jsonBody_invalidFallbackBehavior :: Lens' JsonBody (Maybe BodyParsingFallbackBehavior)
- jsonBody_oversizeHandling :: Lens' JsonBody (Maybe OversizeHandling)
- jsonBody_matchPattern :: Lens' JsonBody JsonMatchPattern
- jsonBody_matchScope :: Lens' JsonBody JsonMatchScope
- data JsonMatchPattern = JsonMatchPattern' {}
- newJsonMatchPattern :: JsonMatchPattern
- jsonMatchPattern_all :: Lens' JsonMatchPattern (Maybe All)
- jsonMatchPattern_includedPaths :: Lens' JsonMatchPattern (Maybe (NonEmpty Text))
- data Label = Label' {}
- newLabel :: Text -> Label
- label_name :: Lens' Label Text
- data LabelMatchStatement = LabelMatchStatement' {
- scope :: LabelMatchScope
- key :: Text
- newLabelMatchStatement :: LabelMatchScope -> Text -> LabelMatchStatement
- labelMatchStatement_scope :: Lens' LabelMatchStatement LabelMatchScope
- labelMatchStatement_key :: Lens' LabelMatchStatement Text
- data LabelNameCondition = LabelNameCondition' {}
- newLabelNameCondition :: Text -> LabelNameCondition
- labelNameCondition_labelName :: Lens' LabelNameCondition Text
- data LabelSummary = LabelSummary' {}
- newLabelSummary :: LabelSummary
- labelSummary_name :: Lens' LabelSummary (Maybe Text)
- data LoggingConfiguration = LoggingConfiguration' {}
- newLoggingConfiguration :: Text -> NonEmpty Text -> LoggingConfiguration
- loggingConfiguration_loggingFilter :: Lens' LoggingConfiguration (Maybe LoggingFilter)
- loggingConfiguration_managedByFirewallManager :: Lens' LoggingConfiguration (Maybe Bool)
- loggingConfiguration_redactedFields :: Lens' LoggingConfiguration (Maybe [FieldToMatch])
- loggingConfiguration_resourceArn :: Lens' LoggingConfiguration Text
- loggingConfiguration_logDestinationConfigs :: Lens' LoggingConfiguration (NonEmpty Text)
- data LoggingFilter = LoggingFilter' {}
- newLoggingFilter :: NonEmpty Filter -> FilterBehavior -> LoggingFilter
- loggingFilter_filters :: Lens' LoggingFilter (NonEmpty Filter)
- loggingFilter_defaultBehavior :: Lens' LoggingFilter FilterBehavior
- data ManagedRuleGroupConfig = ManagedRuleGroupConfig' {}
- newManagedRuleGroupConfig :: ManagedRuleGroupConfig
- managedRuleGroupConfig_aWSManagedRulesBotControlRuleSet :: Lens' ManagedRuleGroupConfig (Maybe AWSManagedRulesBotControlRuleSet)
- managedRuleGroupConfig_loginPath :: Lens' ManagedRuleGroupConfig (Maybe Text)
- managedRuleGroupConfig_passwordField :: Lens' ManagedRuleGroupConfig (Maybe PasswordField)
- managedRuleGroupConfig_payloadType :: Lens' ManagedRuleGroupConfig (Maybe PayloadType)
- managedRuleGroupConfig_usernameField :: Lens' ManagedRuleGroupConfig (Maybe UsernameField)
- data ManagedRuleGroupStatement = ManagedRuleGroupStatement' {}
- newManagedRuleGroupStatement :: Text -> Text -> ManagedRuleGroupStatement
- managedRuleGroupStatement_excludedRules :: Lens' ManagedRuleGroupStatement (Maybe [ExcludedRule])
- managedRuleGroupStatement_managedRuleGroupConfigs :: Lens' ManagedRuleGroupStatement (Maybe (NonEmpty ManagedRuleGroupConfig))
- managedRuleGroupStatement_ruleActionOverrides :: Lens' ManagedRuleGroupStatement (Maybe (NonEmpty RuleActionOverride))
- managedRuleGroupStatement_scopeDownStatement :: Lens' ManagedRuleGroupStatement (Maybe Statement)
- managedRuleGroupStatement_version :: Lens' ManagedRuleGroupStatement (Maybe Text)
- managedRuleGroupStatement_vendorName :: Lens' ManagedRuleGroupStatement Text
- managedRuleGroupStatement_name :: Lens' ManagedRuleGroupStatement Text
- data ManagedRuleGroupSummary = ManagedRuleGroupSummary' {
- description :: Maybe Text
- name :: Maybe Text
- vendorName :: Maybe Text
- versioningSupported :: Maybe Bool
- newManagedRuleGroupSummary :: ManagedRuleGroupSummary
- managedRuleGroupSummary_description :: Lens' ManagedRuleGroupSummary (Maybe Text)
- managedRuleGroupSummary_name :: Lens' ManagedRuleGroupSummary (Maybe Text)
- managedRuleGroupSummary_vendorName :: Lens' ManagedRuleGroupSummary (Maybe Text)
- managedRuleGroupSummary_versioningSupported :: Lens' ManagedRuleGroupSummary (Maybe Bool)
- data ManagedRuleGroupVersion = ManagedRuleGroupVersion' {}
- newManagedRuleGroupVersion :: ManagedRuleGroupVersion
- managedRuleGroupVersion_lastUpdateTimestamp :: Lens' ManagedRuleGroupVersion (Maybe UTCTime)
- managedRuleGroupVersion_name :: Lens' ManagedRuleGroupVersion (Maybe Text)
- data ManagedRuleSet = ManagedRuleSet' {}
- newManagedRuleSet :: Text -> Text -> Text -> ManagedRuleSet
- managedRuleSet_description :: Lens' ManagedRuleSet (Maybe Text)
- managedRuleSet_labelNamespace :: Lens' ManagedRuleSet (Maybe Text)
- managedRuleSet_publishedVersions :: Lens' ManagedRuleSet (Maybe (HashMap Text ManagedRuleSetVersion))
- managedRuleSet_recommendedVersion :: Lens' ManagedRuleSet (Maybe Text)
- managedRuleSet_name :: Lens' ManagedRuleSet Text
- managedRuleSet_id :: Lens' ManagedRuleSet Text
- managedRuleSet_arn :: Lens' ManagedRuleSet Text
- data ManagedRuleSetSummary = ManagedRuleSetSummary' {}
- newManagedRuleSetSummary :: ManagedRuleSetSummary
- managedRuleSetSummary_arn :: Lens' ManagedRuleSetSummary (Maybe Text)
- managedRuleSetSummary_description :: Lens' ManagedRuleSetSummary (Maybe Text)
- managedRuleSetSummary_id :: Lens' ManagedRuleSetSummary (Maybe Text)
- managedRuleSetSummary_labelNamespace :: Lens' ManagedRuleSetSummary (Maybe Text)
- managedRuleSetSummary_lockToken :: Lens' ManagedRuleSetSummary (Maybe Text)
- managedRuleSetSummary_name :: Lens' ManagedRuleSetSummary (Maybe Text)
- data ManagedRuleSetVersion = ManagedRuleSetVersion' {}
- newManagedRuleSetVersion :: ManagedRuleSetVersion
- managedRuleSetVersion_associatedRuleGroupArn :: Lens' ManagedRuleSetVersion (Maybe Text)
- managedRuleSetVersion_capacity :: Lens' ManagedRuleSetVersion (Maybe Natural)
- managedRuleSetVersion_expiryTimestamp :: Lens' ManagedRuleSetVersion (Maybe UTCTime)
- managedRuleSetVersion_forecastedLifetime :: Lens' ManagedRuleSetVersion (Maybe Natural)
- managedRuleSetVersion_lastUpdateTimestamp :: Lens' ManagedRuleSetVersion (Maybe UTCTime)
- managedRuleSetVersion_publishTimestamp :: Lens' ManagedRuleSetVersion (Maybe UTCTime)
- data Method = Method' {
- newMethod :: Method
- data MobileSdkRelease = MobileSdkRelease' {}
- newMobileSdkRelease :: MobileSdkRelease
- mobileSdkRelease_releaseNotes :: Lens' MobileSdkRelease (Maybe Text)
- mobileSdkRelease_releaseVersion :: Lens' MobileSdkRelease (Maybe Text)
- mobileSdkRelease_tags :: Lens' MobileSdkRelease (Maybe (NonEmpty Tag))
- mobileSdkRelease_timestamp :: Lens' MobileSdkRelease (Maybe UTCTime)
- data NoneAction = NoneAction' {
- newNoneAction :: NoneAction
- data NotStatement = NotStatement' {}
- newNotStatement :: Statement -> NotStatement
- notStatement_statement :: Lens' NotStatement Statement
- data OrStatement = OrStatement' {
- statements :: [Statement]
- newOrStatement :: OrStatement
- orStatement_statements :: Lens' OrStatement [Statement]
- data OverrideAction = OverrideAction' {
- count :: Maybe CountAction
- none :: Maybe NoneAction
- newOverrideAction :: OverrideAction
- overrideAction_count :: Lens' OverrideAction (Maybe CountAction)
- overrideAction_none :: Lens' OverrideAction (Maybe NoneAction)
- data PasswordField = PasswordField' {
- identifier :: Text
- newPasswordField :: Text -> PasswordField
- passwordField_identifier :: Lens' PasswordField Text
- data QueryString = QueryString' {
- newQueryString :: QueryString
- data RateBasedStatement = RateBasedStatement' {}
- newRateBasedStatement :: Natural -> RateBasedStatementAggregateKeyType -> RateBasedStatement
- rateBasedStatement_forwardedIPConfig :: Lens' RateBasedStatement (Maybe ForwardedIPConfig)
- rateBasedStatement_scopeDownStatement :: Lens' RateBasedStatement (Maybe Statement)
- rateBasedStatement_limit :: Lens' RateBasedStatement Natural
- rateBasedStatement_aggregateKeyType :: Lens' RateBasedStatement RateBasedStatementAggregateKeyType
- data RateBasedStatementManagedKeysIPSet = RateBasedStatementManagedKeysIPSet' {}
- newRateBasedStatementManagedKeysIPSet :: RateBasedStatementManagedKeysIPSet
- rateBasedStatementManagedKeysIPSet_addresses :: Lens' RateBasedStatementManagedKeysIPSet (Maybe [Text])
- rateBasedStatementManagedKeysIPSet_iPAddressVersion :: Lens' RateBasedStatementManagedKeysIPSet (Maybe IPAddressVersion)
- data Regex = Regex' {
- regexString :: Maybe Text
- newRegex :: Regex
- regex_regexString :: Lens' Regex (Maybe Text)
- data RegexMatchStatement = RegexMatchStatement' {}
- newRegexMatchStatement :: Text -> FieldToMatch -> NonEmpty TextTransformation -> RegexMatchStatement
- regexMatchStatement_regexString :: Lens' RegexMatchStatement Text
- regexMatchStatement_fieldToMatch :: Lens' RegexMatchStatement FieldToMatch
- regexMatchStatement_textTransformations :: Lens' RegexMatchStatement (NonEmpty TextTransformation)
- data RegexPatternSet = RegexPatternSet' {}
- newRegexPatternSet :: RegexPatternSet
- regexPatternSet_arn :: Lens' RegexPatternSet (Maybe Text)
- regexPatternSet_description :: Lens' RegexPatternSet (Maybe Text)
- regexPatternSet_id :: Lens' RegexPatternSet (Maybe Text)
- regexPatternSet_name :: Lens' RegexPatternSet (Maybe Text)
- regexPatternSet_regularExpressionList :: Lens' RegexPatternSet (Maybe [Regex])
- data RegexPatternSetReferenceStatement = RegexPatternSetReferenceStatement' {}
- newRegexPatternSetReferenceStatement :: Text -> FieldToMatch -> NonEmpty TextTransformation -> RegexPatternSetReferenceStatement
- regexPatternSetReferenceStatement_arn :: Lens' RegexPatternSetReferenceStatement Text
- regexPatternSetReferenceStatement_fieldToMatch :: Lens' RegexPatternSetReferenceStatement FieldToMatch
- regexPatternSetReferenceStatement_textTransformations :: Lens' RegexPatternSetReferenceStatement (NonEmpty TextTransformation)
- data RegexPatternSetSummary = RegexPatternSetSummary' {}
- newRegexPatternSetSummary :: RegexPatternSetSummary
- regexPatternSetSummary_arn :: Lens' RegexPatternSetSummary (Maybe Text)
- regexPatternSetSummary_description :: Lens' RegexPatternSetSummary (Maybe Text)
- regexPatternSetSummary_id :: Lens' RegexPatternSetSummary (Maybe Text)
- regexPatternSetSummary_lockToken :: Lens' RegexPatternSetSummary (Maybe Text)
- regexPatternSetSummary_name :: Lens' RegexPatternSetSummary (Maybe Text)
- data ReleaseSummary = ReleaseSummary' {}
- newReleaseSummary :: ReleaseSummary
- releaseSummary_releaseVersion :: Lens' ReleaseSummary (Maybe Text)
- releaseSummary_timestamp :: Lens' ReleaseSummary (Maybe UTCTime)
- data Rule = Rule' {}
- newRule :: Text -> Natural -> Statement -> VisibilityConfig -> Rule
- rule_action :: Lens' Rule (Maybe RuleAction)
- rule_captchaConfig :: Lens' Rule (Maybe CaptchaConfig)
- rule_challengeConfig :: Lens' Rule (Maybe ChallengeConfig)
- rule_overrideAction :: Lens' Rule (Maybe OverrideAction)
- rule_ruleLabels :: Lens' Rule (Maybe [Label])
- rule_name :: Lens' Rule Text
- rule_priority :: Lens' Rule Natural
- rule_statement :: Lens' Rule Statement
- rule_visibilityConfig :: Lens' Rule VisibilityConfig
- data RuleAction = RuleAction' {}
- newRuleAction :: RuleAction
- ruleAction_allow :: Lens' RuleAction (Maybe AllowAction)
- ruleAction_block :: Lens' RuleAction (Maybe BlockAction)
- ruleAction_captcha :: Lens' RuleAction (Maybe CaptchaAction)
- ruleAction_challenge :: Lens' RuleAction (Maybe ChallengeAction)
- ruleAction_count :: Lens' RuleAction (Maybe CountAction)
- data RuleActionOverride = RuleActionOverride' {
- name :: Text
- actionToUse :: RuleAction
- newRuleActionOverride :: Text -> RuleAction -> RuleActionOverride
- ruleActionOverride_name :: Lens' RuleActionOverride Text
- ruleActionOverride_actionToUse :: Lens' RuleActionOverride RuleAction
- data RuleGroup = RuleGroup' {
- availableLabels :: Maybe [LabelSummary]
- consumedLabels :: Maybe [LabelSummary]
- customResponseBodies :: Maybe (HashMap Text CustomResponseBody)
- description :: Maybe Text
- labelNamespace :: Maybe Text
- rules :: Maybe [Rule]
- name :: Text
- id :: Text
- capacity :: Natural
- arn :: Text
- visibilityConfig :: VisibilityConfig
- newRuleGroup :: Text -> Text -> Natural -> Text -> VisibilityConfig -> RuleGroup
- ruleGroup_availableLabels :: Lens' RuleGroup (Maybe [LabelSummary])
- ruleGroup_consumedLabels :: Lens' RuleGroup (Maybe [LabelSummary])
- ruleGroup_customResponseBodies :: Lens' RuleGroup (Maybe (HashMap Text CustomResponseBody))
- ruleGroup_description :: Lens' RuleGroup (Maybe Text)
- ruleGroup_labelNamespace :: Lens' RuleGroup (Maybe Text)
- ruleGroup_rules :: Lens' RuleGroup (Maybe [Rule])
- ruleGroup_name :: Lens' RuleGroup Text
- ruleGroup_id :: Lens' RuleGroup Text
- ruleGroup_capacity :: Lens' RuleGroup Natural
- ruleGroup_arn :: Lens' RuleGroup Text
- ruleGroup_visibilityConfig :: Lens' RuleGroup VisibilityConfig
- data RuleGroupReferenceStatement = RuleGroupReferenceStatement' {}
- newRuleGroupReferenceStatement :: Text -> RuleGroupReferenceStatement
- ruleGroupReferenceStatement_excludedRules :: Lens' RuleGroupReferenceStatement (Maybe [ExcludedRule])
- ruleGroupReferenceStatement_ruleActionOverrides :: Lens' RuleGroupReferenceStatement (Maybe (NonEmpty RuleActionOverride))
- ruleGroupReferenceStatement_arn :: Lens' RuleGroupReferenceStatement Text
- data RuleGroupSummary = RuleGroupSummary' {}
- newRuleGroupSummary :: RuleGroupSummary
- ruleGroupSummary_arn :: Lens' RuleGroupSummary (Maybe Text)
- ruleGroupSummary_description :: Lens' RuleGroupSummary (Maybe Text)
- ruleGroupSummary_id :: Lens' RuleGroupSummary (Maybe Text)
- ruleGroupSummary_lockToken :: Lens' RuleGroupSummary (Maybe Text)
- ruleGroupSummary_name :: Lens' RuleGroupSummary (Maybe Text)
- data RuleSummary = RuleSummary' {}
- newRuleSummary :: RuleSummary
- ruleSummary_action :: Lens' RuleSummary (Maybe RuleAction)
- ruleSummary_name :: Lens' RuleSummary (Maybe Text)
- data SampledHTTPRequest = SampledHTTPRequest' {
- action :: Maybe Text
- captchaResponse :: Maybe CaptchaResponse
- challengeResponse :: Maybe ChallengeResponse
- labels :: Maybe [Label]
- overriddenAction :: Maybe Text
- requestHeadersInserted :: Maybe [HTTPHeader]
- responseCodeSent :: Maybe Natural
- ruleNameWithinRuleGroup :: Maybe Text
- timestamp :: Maybe POSIX
- request :: HTTPRequest
- weight :: Natural
- newSampledHTTPRequest :: HTTPRequest -> Natural -> SampledHTTPRequest
- sampledHTTPRequest_action :: Lens' SampledHTTPRequest (Maybe Text)
- sampledHTTPRequest_captchaResponse :: Lens' SampledHTTPRequest (Maybe CaptchaResponse)
- sampledHTTPRequest_challengeResponse :: Lens' SampledHTTPRequest (Maybe ChallengeResponse)
- sampledHTTPRequest_labels :: Lens' SampledHTTPRequest (Maybe [Label])
- sampledHTTPRequest_overriddenAction :: Lens' SampledHTTPRequest (Maybe Text)
- sampledHTTPRequest_requestHeadersInserted :: Lens' SampledHTTPRequest (Maybe [HTTPHeader])
- sampledHTTPRequest_responseCodeSent :: Lens' SampledHTTPRequest (Maybe Natural)
- sampledHTTPRequest_ruleNameWithinRuleGroup :: Lens' SampledHTTPRequest (Maybe Text)
- sampledHTTPRequest_timestamp :: Lens' SampledHTTPRequest (Maybe UTCTime)
- sampledHTTPRequest_request :: Lens' SampledHTTPRequest HTTPRequest
- sampledHTTPRequest_weight :: Lens' SampledHTTPRequest Natural
- data SingleHeader = SingleHeader' {}
- newSingleHeader :: Text -> SingleHeader
- singleHeader_name :: Lens' SingleHeader Text
- data SingleQueryArgument = SingleQueryArgument' {}
- newSingleQueryArgument :: Text -> SingleQueryArgument
- singleQueryArgument_name :: Lens' SingleQueryArgument Text
- data SizeConstraintStatement = SizeConstraintStatement' {}
- newSizeConstraintStatement :: FieldToMatch -> ComparisonOperator -> Natural -> NonEmpty TextTransformation -> SizeConstraintStatement
- sizeConstraintStatement_fieldToMatch :: Lens' SizeConstraintStatement FieldToMatch
- sizeConstraintStatement_comparisonOperator :: Lens' SizeConstraintStatement ComparisonOperator
- sizeConstraintStatement_size :: Lens' SizeConstraintStatement Natural
- sizeConstraintStatement_textTransformations :: Lens' SizeConstraintStatement (NonEmpty TextTransformation)
- data SqliMatchStatement = SqliMatchStatement' {}
- newSqliMatchStatement :: FieldToMatch -> NonEmpty TextTransformation -> SqliMatchStatement
- sqliMatchStatement_sensitivityLevel :: Lens' SqliMatchStatement (Maybe SensitivityLevel)
- sqliMatchStatement_fieldToMatch :: Lens' SqliMatchStatement FieldToMatch
- sqliMatchStatement_textTransformations :: Lens' SqliMatchStatement (NonEmpty TextTransformation)
- data Statement = Statement' {
- andStatement :: Maybe AndStatement
- byteMatchStatement :: Maybe ByteMatchStatement
- geoMatchStatement :: Maybe GeoMatchStatement
- iPSetReferenceStatement :: Maybe IPSetReferenceStatement
- labelMatchStatement :: Maybe LabelMatchStatement
- managedRuleGroupStatement :: Maybe ManagedRuleGroupStatement
- notStatement :: Maybe NotStatement
- orStatement :: Maybe OrStatement
- rateBasedStatement :: Maybe RateBasedStatement
- regexMatchStatement :: Maybe RegexMatchStatement
- regexPatternSetReferenceStatement :: Maybe RegexPatternSetReferenceStatement
- ruleGroupReferenceStatement :: Maybe RuleGroupReferenceStatement
- sizeConstraintStatement :: Maybe SizeConstraintStatement
- sqliMatchStatement :: Maybe SqliMatchStatement
- xssMatchStatement :: Maybe XssMatchStatement
- newStatement :: Statement
- statement_andStatement :: Lens' Statement (Maybe AndStatement)
- statement_byteMatchStatement :: Lens' Statement (Maybe ByteMatchStatement)
- statement_geoMatchStatement :: Lens' Statement (Maybe GeoMatchStatement)
- statement_iPSetReferenceStatement :: Lens' Statement (Maybe IPSetReferenceStatement)
- statement_labelMatchStatement :: Lens' Statement (Maybe LabelMatchStatement)
- statement_managedRuleGroupStatement :: Lens' Statement (Maybe ManagedRuleGroupStatement)
- statement_notStatement :: Lens' Statement (Maybe NotStatement)
- statement_orStatement :: Lens' Statement (Maybe OrStatement)
- statement_rateBasedStatement :: Lens' Statement (Maybe RateBasedStatement)
- statement_regexMatchStatement :: Lens' Statement (Maybe RegexMatchStatement)
- statement_regexPatternSetReferenceStatement :: Lens' Statement (Maybe RegexPatternSetReferenceStatement)
- statement_ruleGroupReferenceStatement :: Lens' Statement (Maybe RuleGroupReferenceStatement)
- statement_sizeConstraintStatement :: Lens' Statement (Maybe SizeConstraintStatement)
- statement_sqliMatchStatement :: Lens' Statement (Maybe SqliMatchStatement)
- statement_xssMatchStatement :: Lens' Statement (Maybe XssMatchStatement)
- data Tag = Tag' {}
- newTag :: Text -> Text -> Tag
- tag_key :: Lens' Tag Text
- tag_value :: Lens' Tag Text
- data TagInfoForResource = TagInfoForResource' {}
- newTagInfoForResource :: TagInfoForResource
- tagInfoForResource_resourceARN :: Lens' TagInfoForResource (Maybe Text)
- tagInfoForResource_tagList :: Lens' TagInfoForResource (Maybe (NonEmpty Tag))
- data TextTransformation = TextTransformation' {}
- newTextTransformation :: Natural -> TextTransformationType -> TextTransformation
- textTransformation_priority :: Lens' TextTransformation Natural
- textTransformation_type :: Lens' TextTransformation TextTransformationType
- data TimeWindow = TimeWindow' {}
- newTimeWindow :: UTCTime -> UTCTime -> TimeWindow
- timeWindow_startTime :: Lens' TimeWindow UTCTime
- timeWindow_endTime :: Lens' TimeWindow UTCTime
- data UriPath = UriPath' {
- newUriPath :: UriPath
- data UsernameField = UsernameField' {
- identifier :: Text
- newUsernameField :: Text -> UsernameField
- usernameField_identifier :: Lens' UsernameField Text
- data VersionToPublish = VersionToPublish' {}
- newVersionToPublish :: VersionToPublish
- versionToPublish_associatedRuleGroupArn :: Lens' VersionToPublish (Maybe Text)
- versionToPublish_forecastedLifetime :: Lens' VersionToPublish (Maybe Natural)
- data VisibilityConfig = VisibilityConfig' {}
- newVisibilityConfig :: Bool -> Bool -> Text -> VisibilityConfig
- visibilityConfig_sampledRequestsEnabled :: Lens' VisibilityConfig Bool
- visibilityConfig_cloudWatchMetricsEnabled :: Lens' VisibilityConfig Bool
- visibilityConfig_metricName :: Lens' VisibilityConfig Text
- data WebACL = WebACL' {
- capacity :: Maybe Natural
- captchaConfig :: Maybe CaptchaConfig
- challengeConfig :: Maybe ChallengeConfig
- customResponseBodies :: Maybe (HashMap Text CustomResponseBody)
- description :: Maybe Text
- labelNamespace :: Maybe Text
- managedByFirewallManager :: Maybe Bool
- postProcessFirewallManagerRuleGroups :: Maybe [FirewallManagerRuleGroup]
- preProcessFirewallManagerRuleGroups :: Maybe [FirewallManagerRuleGroup]
- rules :: Maybe [Rule]
- tokenDomains :: Maybe (NonEmpty Text)
- name :: Text
- id :: Text
- arn :: Text
- defaultAction :: DefaultAction
- visibilityConfig :: VisibilityConfig
- newWebACL :: Text -> Text -> Text -> DefaultAction -> VisibilityConfig -> WebACL
- webACL_capacity :: Lens' WebACL (Maybe Natural)
- webACL_captchaConfig :: Lens' WebACL (Maybe CaptchaConfig)
- webACL_challengeConfig :: Lens' WebACL (Maybe ChallengeConfig)
- webACL_customResponseBodies :: Lens' WebACL (Maybe (HashMap Text CustomResponseBody))
- webACL_description :: Lens' WebACL (Maybe Text)
- webACL_labelNamespace :: Lens' WebACL (Maybe Text)
- webACL_managedByFirewallManager :: Lens' WebACL (Maybe Bool)
- webACL_postProcessFirewallManagerRuleGroups :: Lens' WebACL (Maybe [FirewallManagerRuleGroup])
- webACL_preProcessFirewallManagerRuleGroups :: Lens' WebACL (Maybe [FirewallManagerRuleGroup])
- webACL_rules :: Lens' WebACL (Maybe [Rule])
- webACL_tokenDomains :: Lens' WebACL (Maybe (NonEmpty Text))
- webACL_name :: Lens' WebACL Text
- webACL_id :: Lens' WebACL Text
- webACL_arn :: Lens' WebACL Text
- webACL_defaultAction :: Lens' WebACL DefaultAction
- webACL_visibilityConfig :: Lens' WebACL VisibilityConfig
- data WebACLSummary = WebACLSummary' {}
- newWebACLSummary :: WebACLSummary
- webACLSummary_arn :: Lens' WebACLSummary (Maybe Text)
- webACLSummary_description :: Lens' WebACLSummary (Maybe Text)
- webACLSummary_id :: Lens' WebACLSummary (Maybe Text)
- webACLSummary_lockToken :: Lens' WebACLSummary (Maybe Text)
- webACLSummary_name :: Lens' WebACLSummary (Maybe Text)
- data XssMatchStatement = XssMatchStatement' {}
- newXssMatchStatement :: FieldToMatch -> NonEmpty TextTransformation -> XssMatchStatement
- xssMatchStatement_fieldToMatch :: Lens' XssMatchStatement FieldToMatch
- xssMatchStatement_textTransformations :: Lens' XssMatchStatement (NonEmpty TextTransformation)
Service Configuration
defaultService :: Service Source #
API version 2019-07-29
of the Amazon WAFV2 SDK configuration.
Errors
_WAFAssociatedItemException :: AsError a => Fold a ServiceError Source #
WAF couldn’t perform the operation because your resource is being used by another resource or it’s associated with another resource.
_WAFConfigurationWarningException :: AsError a => Fold a ServiceError Source #
The operation failed because you are inspecting the web request body,
headers, or cookies without specifying how to handle oversize
components. Rules that inspect the body must either provide an
OversizeHandling
configuration or they must be preceded by a
SizeConstraintStatement
that blocks the body content from being too
large. Rules that inspect the headers or cookies must provide an
OversizeHandling
configuration.
Provide the handling configuration and retry your operation.
Alternately, you can suppress this warning by adding the following tag
to the resource that you provide to this operation: Tag
(key:WAF:OversizeFieldsHandlingConstraintOptOut
, value:true
).
_WAFDuplicateItemException :: AsError a => Fold a ServiceError Source #
WAF couldn’t perform the operation because the resource that you tried to save is a duplicate of an existing one.
_WAFExpiredManagedRuleGroupVersionException :: AsError a => Fold a ServiceError Source #
The operation failed because the specified version for the managed rule group has expired. You can retrieve the available versions for the managed rule group by calling ListAvailableManagedRuleGroupVersions.
_WAFInternalErrorException :: AsError a => Fold a ServiceError Source #
Your request is valid, but WAF couldn’t perform the operation because of a system problem. Retry your request.
_WAFInvalidOperationException :: AsError a => Fold a ServiceError Source #
The operation isn't valid.
_WAFInvalidParameterException :: AsError a => Fold a ServiceError Source #
The operation failed because WAF didn't recognize a parameter in the request. For example:
- You specified a parameter name or value that isn't valid.
- Your nested statement isn't valid. You might have tried to nest a statement that can’t be nested.
- You tried to update a
WebACL
with aDefaultAction
that isn't among the types available at DefaultAction. - Your request references an ARN that is malformed, or corresponds to a resource with which a web ACL can't be associated.
_WAFInvalidPermissionPolicyException :: AsError a => Fold a ServiceError Source #
The operation failed because the specified policy isn't in the proper format.
The policy specifications must conform to the following:
- The policy must be composed using IAM Policy version 2012-10-17 or version 2015-01-01.
- The policy must include specifications for
Effect
,Action
, andPrincipal
. Effect
must specifyAllow
.Action
must specifywafv2:CreateWebACL
,wafv2:UpdateWebACL
, andwafv2:PutFirewallManagerRuleGroups
and may optionally specifywafv2:GetRuleGroup
. WAF rejects any extra actions or wildcard actions in the policy.- The policy must not include a
Resource
parameter.
For more information, see IAM Policies.
_WAFInvalidResourceException :: AsError a => Fold a ServiceError Source #
WAF couldn’t perform the operation because the resource that you requested isn’t valid. Check the resource, and try again.
_WAFLimitsExceededException :: AsError a => Fold a ServiceError Source #
WAF couldn’t perform the operation because you exceeded your resource
limit. For example, the maximum number of WebACL
objects that you can
create for an Amazon Web Services account. For more information, see
WAF quotas
in the WAF Developer Guide.
_WAFLogDestinationPermissionIssueException :: AsError a => Fold a ServiceError Source #
The operation failed because you don't have the permissions that your logging configuration requires. For information, see Logging web ACL traffic information in the WAF Developer Guide.
_WAFNonexistentItemException :: AsError a => Fold a ServiceError Source #
WAF couldn’t perform the operation because your resource doesn't exist. If you've just created a resource that you're using in this operation, you might just need to wait a few minutes. It can take from a few seconds to a number of minutes for changes to propagate.
_WAFOptimisticLockException :: AsError a => Fold a ServiceError Source #
WAF couldn’t save your changes because you tried to update or delete a resource that has changed since you last retrieved it. Get the resource again, make any changes you need to make to the new copy, and retry your operation.
_WAFServiceLinkedRoleErrorException :: AsError a => Fold a ServiceError Source #
WAF is not able to access the service linked role. This can be caused by
a previous PutLoggingConfiguration
request, which can lock the service
linked role for about 20 seconds. Please try your request again. The
service linked role can also be locked by a previous
DeleteServiceLinkedRole
request, which can lock the role for 15
minutes or more. If you recently made a call to
DeleteServiceLinkedRole
, wait at least 15 minutes and try the request
again. If you receive this same exception again, you will have to wait
additional time until the role is unlocked.
_WAFSubscriptionNotFoundException :: AsError a => Fold a ServiceError Source #
You tried to use a managed rule group that's available by subscription, but you aren't subscribed to it yet.
_WAFTagOperationException :: AsError a => Fold a ServiceError Source #
An error occurred during the tagging operation. Retry your request.
_WAFTagOperationInternalErrorException :: AsError a => Fold a ServiceError Source #
WAF couldn’t perform your tagging operation because of an internal error. Retry your request.
_WAFUnavailableEntityException :: AsError a => Fold a ServiceError Source #
WAF couldn’t retrieve a resource that you specified for this operation. If you've just created a resource that you're using in this operation, you might just need to wait a few minutes. It can take from a few seconds to a number of minutes for changes to propagate. Verify the resources that you are specifying in your request parameters and then retry the operation.
ActionValue
newtype ActionValue Source #
pattern ActionValue_ALLOW :: ActionValue | |
pattern ActionValue_BLOCK :: ActionValue | |
pattern ActionValue_CAPTCHA :: ActionValue | |
pattern ActionValue_CHALLENGE :: ActionValue | |
pattern ActionValue_COUNT :: ActionValue | |
pattern ActionValue_EXCLUDED_AS_COUNT :: ActionValue |
Instances
BodyParsingFallbackBehavior
newtype BodyParsingFallbackBehavior Source #
Instances
ComparisonOperator
newtype ComparisonOperator Source #
pattern ComparisonOperator_EQ :: ComparisonOperator | |
pattern ComparisonOperator_GE :: ComparisonOperator | |
pattern ComparisonOperator_GT :: ComparisonOperator | |
pattern ComparisonOperator_LE :: ComparisonOperator | |
pattern ComparisonOperator_LT :: ComparisonOperator | |
pattern ComparisonOperator_NE :: ComparisonOperator |
Instances
CountryCode
newtype CountryCode Source #
Instances
FailureReason
newtype FailureReason Source #
pattern FailureReason_TOKEN_DOMAIN_MISMATCH :: FailureReason | |
pattern FailureReason_TOKEN_EXPIRED :: FailureReason | |
pattern FailureReason_TOKEN_INVALID :: FailureReason | |
pattern FailureReason_TOKEN_MISSING :: FailureReason |
Instances
FallbackBehavior
newtype FallbackBehavior Source #
pattern FallbackBehavior_MATCH :: FallbackBehavior | |
pattern FallbackBehavior_NO_MATCH :: FallbackBehavior |
Instances
FilterBehavior
newtype FilterBehavior Source #
pattern FilterBehavior_DROP :: FilterBehavior | |
pattern FilterBehavior_KEEP :: FilterBehavior |
Instances
FilterRequirement
newtype FilterRequirement Source #
pattern FilterRequirement_MEETS_ALL :: FilterRequirement | |
pattern FilterRequirement_MEETS_ANY :: FilterRequirement |
Instances
ForwardedIPPosition
newtype ForwardedIPPosition Source #
pattern ForwardedIPPosition_ANY :: ForwardedIPPosition | |
pattern ForwardedIPPosition_FIRST :: ForwardedIPPosition | |
pattern ForwardedIPPosition_LAST :: ForwardedIPPosition |
Instances
IPAddressVersion
newtype IPAddressVersion Source #
pattern IPAddressVersion_IPV4 :: IPAddressVersion | |
pattern IPAddressVersion_IPV6 :: IPAddressVersion |
Instances
InspectionLevel
newtype InspectionLevel Source #
pattern InspectionLevel_COMMON :: InspectionLevel | |
pattern InspectionLevel_TARGETED :: InspectionLevel |
Instances
JsonMatchScope
newtype JsonMatchScope Source #
pattern JsonMatchScope_ALL :: JsonMatchScope | |
pattern JsonMatchScope_KEY :: JsonMatchScope | |
pattern JsonMatchScope_VALUE :: JsonMatchScope |
Instances
LabelMatchScope
newtype LabelMatchScope Source #
pattern LabelMatchScope_LABEL :: LabelMatchScope | |
pattern LabelMatchScope_NAMESPACE :: LabelMatchScope |
Instances
MapMatchScope
newtype MapMatchScope Source #
pattern MapMatchScope_ALL :: MapMatchScope | |
pattern MapMatchScope_KEY :: MapMatchScope | |
pattern MapMatchScope_VALUE :: MapMatchScope |
Instances
OversizeHandling
newtype OversizeHandling Source #
pattern OversizeHandling_CONTINUE :: OversizeHandling | |
pattern OversizeHandling_MATCH :: OversizeHandling | |
pattern OversizeHandling_NO_MATCH :: OversizeHandling |
Instances
PayloadType
newtype PayloadType Source #
pattern PayloadType_FORM_ENCODED :: PayloadType | |
pattern PayloadType_JSON :: PayloadType |
Instances
Platform
pattern Platform_ANDROID :: Platform | |
pattern Platform_IOS :: Platform |
Instances
PositionalConstraint
newtype PositionalConstraint Source #
pattern PositionalConstraint_CONTAINS :: PositionalConstraint | |
pattern PositionalConstraint_CONTAINS_WORD :: PositionalConstraint | |
pattern PositionalConstraint_ENDS_WITH :: PositionalConstraint | |
pattern PositionalConstraint_EXACTLY :: PositionalConstraint | |
pattern PositionalConstraint_STARTS_WITH :: PositionalConstraint |
Instances
RateBasedStatementAggregateKeyType
newtype RateBasedStatementAggregateKeyType Source #
pattern RateBasedStatementAggregateKeyType_FORWARDED_IP :: RateBasedStatementAggregateKeyType | |
pattern RateBasedStatementAggregateKeyType_IP :: RateBasedStatementAggregateKeyType |
Instances
ResourceType
newtype ResourceType Source #
pattern ResourceType_API_GATEWAY :: ResourceType | |
pattern ResourceType_APPLICATION_LOAD_BALANCER :: ResourceType | |
pattern ResourceType_APPSYNC :: ResourceType | |
pattern ResourceType_COGNITO_USER_POOL :: ResourceType |
Instances
ResponseContentType
newtype ResponseContentType Source #
pattern ResponseContentType_APPLICATION_JSON :: ResponseContentType | |
pattern ResponseContentType_TEXT_HTML :: ResponseContentType | |
pattern ResponseContentType_TEXT_PLAIN :: ResponseContentType |
Instances
Scope
pattern Scope_CLOUDFRONT :: Scope | |
pattern Scope_REGIONAL :: Scope |
Instances
SensitivityLevel
newtype SensitivityLevel Source #
pattern SensitivityLevel_HIGH :: SensitivityLevel | |
pattern SensitivityLevel_LOW :: SensitivityLevel |
Instances
TextTransformationType
newtype TextTransformationType Source #
Instances
AWSManagedRulesBotControlRuleSet
data AWSManagedRulesBotControlRuleSet Source #
Details for your use of the Bot Control managed rule group, used in
ManagedRuleGroupConfig
.
See: newAWSManagedRulesBotControlRuleSet
smart constructor.
AWSManagedRulesBotControlRuleSet' | |
|
Instances
newAWSManagedRulesBotControlRuleSet Source #
Create a value of AWSManagedRulesBotControlRuleSet
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:inspectionLevel:AWSManagedRulesBotControlRuleSet'
, aWSManagedRulesBotControlRuleSet_inspectionLevel
- The inspection level to use for the Bot Control rule group. The common
level is the least expensive. The targeted level includes all common
level rules and adds rules with more advanced inspection criteria. For
details, see
WAF Bot Control rule group.
aWSManagedRulesBotControlRuleSet_inspectionLevel :: Lens' AWSManagedRulesBotControlRuleSet InspectionLevel Source #
The inspection level to use for the Bot Control rule group. The common level is the least expensive. The targeted level includes all common level rules and adds rules with more advanced inspection criteria. For details, see WAF Bot Control rule group.
ActionCondition
data ActionCondition Source #
A single action condition for a Condition in a logging filter.
See: newActionCondition
smart constructor.
ActionCondition' | |
|
Instances
Create a value of ActionCondition
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:action:ActionCondition'
, actionCondition_action
- The action setting that a log record must contain in order to meet the
condition. This is the action that WAF applied to the web request.
For rule groups, this is either the configured rule action setting, or
if you've applied a rule action override to the rule, it's the
override action. The value EXCLUDED_AS_COUNT
matches on excluded rules
and also on rules that have a rule action override of Count.
actionCondition_action :: Lens' ActionCondition ActionValue Source #
The action setting that a log record must contain in order to meet the condition. This is the action that WAF applied to the web request.
For rule groups, this is either the configured rule action setting, or
if you've applied a rule action override to the rule, it's the
override action. The value EXCLUDED_AS_COUNT
matches on excluded rules
and also on rules that have a rule action override of Count.
All
Inspect all of the elements that WAF has parsed and extracted from the web request component that you've identified in your FieldToMatch specifications.
This is used only in the FieldToMatch specification for some web request component types.
JSON specification: "All": {}
See: newAll
smart constructor.
Create a value of All
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
AllQueryArguments
data AllQueryArguments Source #
Inspect all query arguments of the web request.
This is used only in the FieldToMatch specification for some web request component types.
JSON specification: "AllQueryArguments": {}
See: newAllQueryArguments
smart constructor.
Instances
newAllQueryArguments :: AllQueryArguments Source #
Create a value of AllQueryArguments
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
AllowAction
data AllowAction Source #
Specifies that WAF should allow the request and optionally defines additional custom handling for the request.
This is used in the context of other settings, for example to specify values for RuleAction and web ACL DefaultAction.
See: newAllowAction
smart constructor.
AllowAction' | |
|
Instances
newAllowAction :: AllowAction Source #
Create a value of AllowAction
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:customRequestHandling:AllowAction'
, allowAction_customRequestHandling
- Defines custom handling for the web request.
For information about customizing web requests and responses, see Customizing web requests and responses in WAF in the WAF Developer Guide.
allowAction_customRequestHandling :: Lens' AllowAction (Maybe CustomRequestHandling) Source #
Defines custom handling for the web request.
For information about customizing web requests and responses, see Customizing web requests and responses in WAF in the WAF Developer Guide.
AndStatement
data AndStatement Source #
A logical rule statement used to combine other rule statements with AND
logic. You provide more than one Statement within the AndStatement
.
See: newAndStatement
smart constructor.
AndStatement' | |
|
Instances
newAndStatement :: AndStatement Source #
Create a value of AndStatement
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:statements:AndStatement'
, andStatement_statements
- The statements to combine with AND logic. You can use any statements
that can be nested.
andStatement_statements :: Lens' AndStatement [Statement] Source #
The statements to combine with AND logic. You can use any statements that can be nested.
BlockAction
data BlockAction Source #
Specifies that WAF should block the request and optionally defines additional custom handling for the response to the web request.
This is used in the context of other settings, for example to specify values for RuleAction and web ACL DefaultAction.
See: newBlockAction
smart constructor.
BlockAction' | |
|
Instances
newBlockAction :: BlockAction Source #
Create a value of BlockAction
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:customResponse:BlockAction'
, blockAction_customResponse
- Defines a custom response for the web request.
For information about customizing web requests and responses, see Customizing web requests and responses in WAF in the WAF Developer Guide.
blockAction_customResponse :: Lens' BlockAction (Maybe CustomResponse) Source #
Defines a custom response for the web request.
For information about customizing web requests and responses, see Customizing web requests and responses in WAF in the WAF Developer Guide.
Body
Inspect the body of the web request. The body immediately follows the request headers.
This is used to indicate the web request component to inspect, in the FieldToMatch specification.
See: newBody
smart constructor.
Body' | |
|
Instances
FromJSON Body Source # | |
ToJSON Body Source # | |
Defined in Amazonka.WAFV2.Types.Body | |
Generic Body Source # | |
Read Body Source # | |
Show Body Source # | |
NFData Body Source # | |
Defined in Amazonka.WAFV2.Types.Body | |
Eq Body Source # | |
Hashable Body Source # | |
Defined in Amazonka.WAFV2.Types.Body | |
type Rep Body Source # | |
Defined in Amazonka.WAFV2.Types.Body type Rep Body = D1 ('MetaData "Body" "Amazonka.WAFV2.Types.Body" "amazonka-wafv2-2.0-3v3WgpYn7RT5hSd6MsT5dN" 'False) (C1 ('MetaCons "Body'" 'PrefixI 'True) (S1 ('MetaSel ('Just "oversizeHandling") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Maybe OversizeHandling)))) |
Create a value of Body
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:oversizeHandling:Body'
, body_oversizeHandling
- What WAF should do if the body is larger than WAF can inspect. WAF does
not support inspecting the entire contents of the body of a web request
when the body exceeds 8 KB (8192 bytes). Only the first 8 KB of the
request body are forwarded to WAF by the underlying host service.
The options for oversize handling are the following:
CONTINUE
- Inspect the body normally, according to the rule inspection criteria.MATCH
- Treat the web request as matching the rule statement. WAF applies the rule action to the request.NO_MATCH
- Treat the web request as not matching the rule statement.
You can combine the MATCH
or NO_MATCH
settings for oversize handling
with your rule and web ACL action settings, so that you block any
request whose body is over 8 KB.
Default: CONTINUE
body_oversizeHandling :: Lens' Body (Maybe OversizeHandling) Source #
What WAF should do if the body is larger than WAF can inspect. WAF does not support inspecting the entire contents of the body of a web request when the body exceeds 8 KB (8192 bytes). Only the first 8 KB of the request body are forwarded to WAF by the underlying host service.
The options for oversize handling are the following:
CONTINUE
- Inspect the body normally, according to the rule inspection criteria.MATCH
- Treat the web request as matching the rule statement. WAF applies the rule action to the request.NO_MATCH
- Treat the web request as not matching the rule statement.
You can combine the MATCH
or NO_MATCH
settings for oversize handling
with your rule and web ACL action settings, so that you block any
request whose body is over 8 KB.
Default: CONTINUE
ByteMatchStatement
data ByteMatchStatement Source #
A rule statement that defines a string match search for WAF to apply to web requests. The byte match statement provides the bytes to search for, the location in requests that you want WAF to search, and other settings. The bytes to search for are typically a string that corresponds with ASCII characters. In the WAF console and the developer guide, this is called a string match statement.
See: newByteMatchStatement
smart constructor.
ByteMatchStatement' | |
|
Instances
newByteMatchStatement Source #
:: ByteString | |
-> FieldToMatch | |
-> NonEmpty TextTransformation | |
-> PositionalConstraint | |
-> ByteMatchStatement |
Create a value of ByteMatchStatement
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:searchString:ByteMatchStatement'
, byteMatchStatement_searchString
- A string value that you want WAF to search for. WAF searches only in the
part of web requests that you designate for inspection in FieldToMatch.
The maximum length of the value is 50 bytes.
Valid values depend on the component that you specify for inspection in
FieldToMatch
:
Method
: The HTTP method that you want WAF to search for. This indicates the type of operation specified in the request.UriPath
: The value that you want WAF to search for in the URI path, for example,/images/daily-ad.jpg
.
If SearchString
includes alphabetic characters A-Z and a-z, note that
the value is case sensitive.
If you're using the 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 SearchString
.
If you're using the CLI or one of the Amazon Web Services SDKs
The value that you want 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.
$sel:fieldToMatch:ByteMatchStatement'
, byteMatchStatement_fieldToMatch
- The part of the web request that you want WAF to inspect.
$sel:textTransformations:ByteMatchStatement'
, byteMatchStatement_textTransformations
- Text transformations eliminate some of the unusual formatting that
attackers use in web requests in an effort to bypass detection. If you
specify one or more transformations in a rule statement, WAF performs
all transformations on the content of the request component identified
by FieldToMatch
, starting from the lowest priority setting, before
inspecting the content for a match.
$sel:positionalConstraint:ByteMatchStatement'
, byteMatchStatement_positionalConstraint
- The area within the portion of the web request that you want WAF to
search for SearchString
. Valid values include the following:
CONTAINS
The specified part of the web request must include the value of
SearchString
, but the location doesn't matter.
CONTAINS_WORD
The specified part of the web request must include the value of
SearchString
, and SearchString
must contain only alphanumeric
characters or underscore (A-Z, a-z, 0-9, or _). In addition,
SearchString
must be a word, which means that both of the following
are true:
SearchString
is at the beginning of the specified part of the web request or is preceded by a character other than an alphanumeric character or underscore (_). Examples include the value of a header and;BadBot
.SearchString
is at the end of the specified part of the web request or is followed by a character other than an alphanumeric character or underscore (_), for example,BadBot;
and-BadBot;
.
EXACTLY
The value of the specified part of the web request must exactly match
the value of SearchString
.
STARTS_WITH
The value of SearchString
must appear at the beginning of the
specified part of the web request.
ENDS_WITH
The value of SearchString
must appear at the end of the specified part
of the web request.
byteMatchStatement_searchString :: Lens' ByteMatchStatement ByteString Source #
A string value that you want WAF to search for. WAF searches only in the part of web requests that you designate for inspection in FieldToMatch. The maximum length of the value is 50 bytes.
Valid values depend on the component that you specify for inspection in
FieldToMatch
:
Method
: The HTTP method that you want WAF to search for. This indicates the type of operation specified in the request.UriPath
: The value that you want WAF to search for in the URI path, for example,/images/daily-ad.jpg
.
If SearchString
includes alphabetic characters A-Z and a-z, note that
the value is case sensitive.
If you're using the 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 SearchString
.
If you're using the CLI or one of the Amazon Web Services SDKs
The value that you want 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.
byteMatchStatement_fieldToMatch :: Lens' ByteMatchStatement FieldToMatch Source #
The part of the web request that you want WAF to inspect.
byteMatchStatement_textTransformations :: Lens' ByteMatchStatement (NonEmpty TextTransformation) Source #
Text transformations eliminate some of the unusual formatting that
attackers use in web requests in an effort to bypass detection. If you
specify one or more transformations in a rule statement, WAF performs
all transformations on the content of the request component identified
by FieldToMatch
, starting from the lowest priority setting, before
inspecting the content for a match.
byteMatchStatement_positionalConstraint :: Lens' ByteMatchStatement PositionalConstraint Source #
The area within the portion of the web request that you want WAF to
search for SearchString
. Valid values include the following:
CONTAINS
The specified part of the web request must include the value of
SearchString
, but the location doesn't matter.
CONTAINS_WORD
The specified part of the web request must include the value of
SearchString
, and SearchString
must contain only alphanumeric
characters or underscore (A-Z, a-z, 0-9, or _). In addition,
SearchString
must be a word, which means that both of the following
are true:
SearchString
is at the beginning of the specified part of the web request or is preceded by a character other than an alphanumeric character or underscore (_). Examples include the value of a header and;BadBot
.SearchString
is at the end of the specified part of the web request or is followed by a character other than an alphanumeric character or underscore (_), for example,BadBot;
and-BadBot;
.
EXACTLY
The value of the specified part of the web request must exactly match
the value of SearchString
.
STARTS_WITH
The value of SearchString
must appear at the beginning of the
specified part of the web request.
ENDS_WITH
The value of SearchString
must appear at the end of the specified part
of the web request.
CaptchaAction
data CaptchaAction Source #
Specifies that WAF should run a CAPTCHA
check against the request:
- If the request includes a valid, unexpired
CAPTCHA
token, WAF applies any custom request handling and labels that you've configured and then allows the web request inspection to proceed to the next rule, similar to aCountAction
. If the request doesn't include a valid, unexpired token, WAF discontinues the web ACL evaluation of the request and blocks it from going to its intended destination.
WAF generates a response that it sends back to the client, which includes the following:
- The header
x-amzn-waf-action
with a value ofcaptcha
. - The HTTP status code
405 Method Not Allowed
. - If the request contains an
Accept
header with a value oftext/html
, the response includes aCAPTCHA
JavaScript page interstitial.
- The header
You can configure the expiration time in the CaptchaConfig
ImmunityTimeProperty
setting at the rule and web ACL level. The rule
setting overrides the web ACL setting.
This action option is available for rules. It isn't available for web ACL default actions.
See: newCaptchaAction
smart constructor.
CaptchaAction' | |
|
Instances
newCaptchaAction :: CaptchaAction Source #
Create a value of CaptchaAction
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:customRequestHandling:CaptchaAction'
, captchaAction_customRequestHandling
- Defines custom handling for the web request, used when the CAPTCHA
inspection determines that the request's token is valid and unexpired.
For information about customizing web requests and responses, see Customizing web requests and responses in WAF in the WAF Developer Guide.
captchaAction_customRequestHandling :: Lens' CaptchaAction (Maybe CustomRequestHandling) Source #
Defines custom handling for the web request, used when the CAPTCHA
inspection determines that the request's token is valid and unexpired.
For information about customizing web requests and responses, see Customizing web requests and responses in WAF in the WAF Developer Guide.
CaptchaConfig
data CaptchaConfig Source #
Specifies how WAF should handle CAPTCHA
evaluations. This is available
at the web ACL level and in each rule.
See: newCaptchaConfig
smart constructor.
CaptchaConfig' | |
|
Instances
newCaptchaConfig :: CaptchaConfig Source #
Create a value of CaptchaConfig
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:immunityTimeProperty:CaptchaConfig'
, captchaConfig_immunityTimeProperty
- Determines how long a CAPTCHA
timestamp in the token remains valid
after the client successfully solves a CAPTCHA
puzzle.
captchaConfig_immunityTimeProperty :: Lens' CaptchaConfig (Maybe ImmunityTimeProperty) Source #
Determines how long a CAPTCHA
timestamp in the token remains valid
after the client successfully solves a CAPTCHA
puzzle.
CaptchaResponse
data CaptchaResponse Source #
The result from the inspection of the web request for a valid CAPTCHA
token.
See: newCaptchaResponse
smart constructor.
CaptchaResponse' | |
|
Instances
newCaptchaResponse :: CaptchaResponse Source #
Create a value of CaptchaResponse
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:failureReason:CaptchaResponse'
, captchaResponse_failureReason
- The reason for failure, populated when the evaluation of the token
fails.
$sel:responseCode:CaptchaResponse'
, captchaResponse_responseCode
- The HTTP response code indicating the status of the CAPTCHA
token in
the web request. If the token is missing, invalid, or expired, this code
is 405 Method Not Allowed
.
$sel:solveTimestamp:CaptchaResponse'
, captchaResponse_solveTimestamp
- The time that the CAPTCHA
was last solved for the supplied token.
captchaResponse_failureReason :: Lens' CaptchaResponse (Maybe FailureReason) Source #
The reason for failure, populated when the evaluation of the token fails.
captchaResponse_responseCode :: Lens' CaptchaResponse (Maybe Int) Source #
The HTTP response code indicating the status of the CAPTCHA
token in
the web request. If the token is missing, invalid, or expired, this code
is 405 Method Not Allowed
.
captchaResponse_solveTimestamp :: Lens' CaptchaResponse (Maybe Integer) Source #
The time that the CAPTCHA
was last solved for the supplied token.
ChallengeAction
data ChallengeAction Source #
Specifies that WAF should run a Challenge
check against the request to
verify that the request is coming from a legitimate client session:
- If the request includes a valid, unexpired challenge token, WAF
applies any custom request handling and labels that you've
configured and then allows the web request inspection to proceed to
the next rule, similar to a
CountAction
. If the request doesn't include a valid, unexpired challenge token, WAF discontinues the web ACL evaluation of the request and blocks it from going to its intended destination.
WAF then generates a challenge response that it sends back to the client, which includes the following:
- The header
x-amzn-waf-action
with a value ofchallenge
. - The HTTP status code
202 Request Accepted
. - If the request contains an
Accept
header with a value oftext/html
, the response includes a JavaScript page interstitial with a challenge script.
Challenges run silent browser interrogations in the background, and don't generally affect the end user experience.
A challenge enforces token acquisition using an interstitial JavaScript challenge that inspects the client session for legitimate behavior. The challenge blocks bots or at least increases the cost of operating sophisticated bots.
After the client session successfully responds to the challenge, it receives a new token from WAF, which the challenge script uses to resubmit the original request.
- The header
You can configure the expiration time in the ChallengeConfig
ImmunityTimeProperty
setting at the rule and web ACL level. The rule
setting overrides the web ACL setting.
This action option is available for rules. It isn't available for web ACL default actions.
See: newChallengeAction
smart constructor.
ChallengeAction' | |
|
Instances
newChallengeAction :: ChallengeAction Source #
Create a value of ChallengeAction
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:customRequestHandling:ChallengeAction'
, challengeAction_customRequestHandling
- Defines custom handling for the web request, used when the challenge
inspection determines that the request's token is valid and unexpired.
For information about customizing web requests and responses, see Customizing web requests and responses in WAF in the WAF Developer Guide.
challengeAction_customRequestHandling :: Lens' ChallengeAction (Maybe CustomRequestHandling) Source #
Defines custom handling for the web request, used when the challenge inspection determines that the request's token is valid and unexpired.
For information about customizing web requests and responses, see Customizing web requests and responses in WAF in the WAF Developer Guide.
ChallengeConfig
data ChallengeConfig Source #
Specifies how WAF should handle Challenge
evaluations. This is
available at the web ACL level and in each rule.
See: newChallengeConfig
smart constructor.
ChallengeConfig' | |
|
Instances
newChallengeConfig :: ChallengeConfig Source #
Create a value of ChallengeConfig
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:immunityTimeProperty:ChallengeConfig'
, challengeConfig_immunityTimeProperty
- Determines how long a challenge timestamp in the token remains valid
after the client successfully responds to a challenge.
challengeConfig_immunityTimeProperty :: Lens' ChallengeConfig (Maybe ImmunityTimeProperty) Source #
Determines how long a challenge timestamp in the token remains valid after the client successfully responds to a challenge.
ChallengeResponse
data ChallengeResponse Source #
The result from the inspection of the web request for a valid challenge token.
See: newChallengeResponse
smart constructor.
ChallengeResponse' | |
|
Instances
newChallengeResponse :: ChallengeResponse Source #
Create a value of ChallengeResponse
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:failureReason:ChallengeResponse'
, challengeResponse_failureReason
- The reason for failure, populated when the evaluation of the token
fails.
$sel:responseCode:ChallengeResponse'
, challengeResponse_responseCode
- The HTTP response code indicating the status of the challenge token in
the web request. If the token is missing, invalid, or expired, this code
is 202 Request Accepted
.
$sel:solveTimestamp:ChallengeResponse'
, challengeResponse_solveTimestamp
- The time that the challenge was last solved for the supplied token.
challengeResponse_failureReason :: Lens' ChallengeResponse (Maybe FailureReason) Source #
The reason for failure, populated when the evaluation of the token fails.
challengeResponse_responseCode :: Lens' ChallengeResponse (Maybe Int) Source #
The HTTP response code indicating the status of the challenge token in
the web request. If the token is missing, invalid, or expired, this code
is 202 Request Accepted
.
challengeResponse_solveTimestamp :: Lens' ChallengeResponse (Maybe Integer) Source #
The time that the challenge was last solved for the supplied token.
Condition
A single match condition for a Filter.
See: newCondition
smart constructor.
Condition' | |
|
Instances
FromJSON Condition Source # | |
ToJSON Condition Source # | |
Defined in Amazonka.WAFV2.Types.Condition | |
Generic Condition Source # | |
Read Condition Source # | |
Show Condition Source # | |
NFData Condition Source # | |
Defined in Amazonka.WAFV2.Types.Condition | |
Eq Condition Source # | |
Hashable Condition Source # | |
Defined in Amazonka.WAFV2.Types.Condition | |
type Rep Condition Source # | |
Defined in Amazonka.WAFV2.Types.Condition type Rep Condition = D1 ('MetaData "Condition" "Amazonka.WAFV2.Types.Condition" "amazonka-wafv2-2.0-3v3WgpYn7RT5hSd6MsT5dN" 'False) (C1 ('MetaCons "Condition'" 'PrefixI 'True) (S1 ('MetaSel ('Just "actionCondition") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Maybe ActionCondition)) :*: S1 ('MetaSel ('Just "labelNameCondition") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Maybe LabelNameCondition)))) |
newCondition :: Condition Source #
Create a value of Condition
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:actionCondition:Condition'
, condition_actionCondition
- A single action condition. This is the action setting that a log record
must contain in order to meet the condition.
$sel:labelNameCondition:Condition'
, condition_labelNameCondition
- A single label name condition. This is the fully qualified label name
that a log record must contain in order to meet the condition. Fully
qualified labels have a prefix, optional namespaces, and label name. The
prefix identifies the rule group or web ACL context of the rule that
added the label.
condition_actionCondition :: Lens' Condition (Maybe ActionCondition) Source #
A single action condition. This is the action setting that a log record must contain in order to meet the condition.
condition_labelNameCondition :: Lens' Condition (Maybe LabelNameCondition) Source #
A single label name condition. This is the fully qualified label name that a log record must contain in order to meet the condition. Fully qualified labels have a prefix, optional namespaces, and label name. The prefix identifies the rule group or web ACL context of the rule that added the label.
CookieMatchPattern
data CookieMatchPattern Source #
The filter to use to identify the subset of cookies to inspect in a web request.
You must specify exactly one setting: either All
, IncludedCookies
,
or ExcludedCookies
.
Example JSON:
"MatchPattern": { "IncludedCookies": {"KeyToInclude1", "KeyToInclude2", "KeyToInclude3"} }
See: newCookieMatchPattern
smart constructor.
Instances
newCookieMatchPattern :: CookieMatchPattern Source #
Create a value of CookieMatchPattern
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:all:CookieMatchPattern'
, cookieMatchPattern_all
- Inspect all cookies.
$sel:excludedCookies:CookieMatchPattern'
, cookieMatchPattern_excludedCookies
- Inspect only the cookies whose keys don't match any of the strings
specified here.
$sel:includedCookies:CookieMatchPattern'
, cookieMatchPattern_includedCookies
- Inspect only the cookies that have a key that matches one of the strings
specified here.
cookieMatchPattern_all :: Lens' CookieMatchPattern (Maybe All) Source #
Inspect all cookies.
cookieMatchPattern_excludedCookies :: Lens' CookieMatchPattern (Maybe (NonEmpty Text)) Source #
Inspect only the cookies whose keys don't match any of the strings specified here.
cookieMatchPattern_includedCookies :: Lens' CookieMatchPattern (Maybe (NonEmpty Text)) Source #
Inspect only the cookies that have a key that matches one of the strings specified here.
Cookies
Inspect the cookies in the web request. You can specify the parts of the cookies to inspect and you can narrow the set of cookies to inspect by including or excluding specific keys.
This is used to indicate the web request component to inspect, in the FieldToMatch specification.
Example JSON:
"Cookies": { "MatchPattern": { "All": {} }, "MatchScope": "KEY", "OversizeHandling": "MATCH" }
See: newCookies
smart constructor.
Cookies' | |
|
Instances
FromJSON Cookies Source # | |
ToJSON Cookies Source # | |
Defined in Amazonka.WAFV2.Types.Cookies | |
Generic Cookies Source # | |
Read Cookies Source # | |
Show Cookies Source # | |
NFData Cookies Source # | |
Defined in Amazonka.WAFV2.Types.Cookies | |
Eq Cookies Source # | |
Hashable Cookies Source # | |
Defined in Amazonka.WAFV2.Types.Cookies | |
type Rep Cookies Source # | |
Defined in Amazonka.WAFV2.Types.Cookies type Rep Cookies = D1 ('MetaData "Cookies" "Amazonka.WAFV2.Types.Cookies" "amazonka-wafv2-2.0-3v3WgpYn7RT5hSd6MsT5dN" 'False) (C1 ('MetaCons "Cookies'" 'PrefixI 'True) (S1 ('MetaSel ('Just "matchPattern") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 CookieMatchPattern) :*: (S1 ('MetaSel ('Just "matchScope") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 MapMatchScope) :*: S1 ('MetaSel ('Just "oversizeHandling") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 OversizeHandling)))) |
Create a value of Cookies
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:matchPattern:Cookies'
, cookies_matchPattern
- The filter to use to identify the subset of cookies to inspect in a web
request.
You must specify exactly one setting: either All
, IncludedCookies
,
or ExcludedCookies
.
Example JSON:
"MatchPattern": { "IncludedCookies": {"KeyToInclude1", "KeyToInclude2", "KeyToInclude3"} }
$sel:matchScope:Cookies'
, cookies_matchScope
- The parts of the cookies to inspect with the rule inspection criteria.
If you specify All
, WAF inspects both keys and values.
$sel:oversizeHandling:Cookies'
, cookies_oversizeHandling
- What WAF should do if the cookies of the request are larger than WAF can
inspect. WAF does not support inspecting the entire contents of request
cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The
underlying host service forwards a maximum of 200 cookies and at most 8
KB of cookie contents to WAF.
The options for oversize handling are the following:
CONTINUE
- Inspect the cookies normally, according to the rule inspection criteria.MATCH
- Treat the web request as matching the rule statement. WAF applies the rule action to the request.NO_MATCH
- Treat the web request as not matching the rule statement.
cookies_matchPattern :: Lens' Cookies CookieMatchPattern Source #
The filter to use to identify the subset of cookies to inspect in a web request.
You must specify exactly one setting: either All
, IncludedCookies
,
or ExcludedCookies
.
Example JSON:
"MatchPattern": { "IncludedCookies": {"KeyToInclude1", "KeyToInclude2", "KeyToInclude3"} }
cookies_matchScope :: Lens' Cookies MapMatchScope Source #
The parts of the cookies to inspect with the rule inspection criteria.
If you specify All
, WAF inspects both keys and values.
cookies_oversizeHandling :: Lens' Cookies OversizeHandling Source #
What WAF should do if the cookies of the request are larger than WAF can inspect. WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to WAF.
The options for oversize handling are the following:
CONTINUE
- Inspect the cookies normally, according to the rule inspection criteria.MATCH
- Treat the web request as matching the rule statement. WAF applies the rule action to the request.NO_MATCH
- Treat the web request as not matching the rule statement.
CountAction
data CountAction Source #
Specifies that WAF should count the request. Optionally defines additional custom handling for the request.
This is used in the context of other settings, for example to specify values for RuleAction and web ACL DefaultAction.
See: newCountAction
smart constructor.
CountAction' | |
|
Instances
newCountAction :: CountAction Source #
Create a value of CountAction
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:customRequestHandling:CountAction'
, countAction_customRequestHandling
- Defines custom handling for the web request.
For information about customizing web requests and responses, see Customizing web requests and responses in WAF in the WAF Developer Guide.
countAction_customRequestHandling :: Lens' CountAction (Maybe CustomRequestHandling) Source #
Defines custom handling for the web request.
For information about customizing web requests and responses, see Customizing web requests and responses in WAF in the WAF Developer Guide.
CustomHTTPHeader
data CustomHTTPHeader Source #
A custom header for custom request and response handling. This is used in CustomResponse and CustomRequestHandling.
See: newCustomHTTPHeader
smart constructor.
CustomHTTPHeader' | |
|
Instances
Create a value of CustomHTTPHeader
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:name:CustomHTTPHeader'
, customHTTPHeader_name
- The name of the custom header.
For custom request header insertion, when WAF inserts the header into
the request, it prefixes this name x-amzn-waf-
, to avoid confusion
with the headers that are already in the request. For example, for the
header name sample
, WAF inserts the header x-amzn-waf-sample
.
$sel:value:CustomHTTPHeader'
, customHTTPHeader_value
- The value of the custom header.
customHTTPHeader_name :: Lens' CustomHTTPHeader Text Source #
The name of the custom header.
For custom request header insertion, when WAF inserts the header into
the request, it prefixes this name x-amzn-waf-
, to avoid confusion
with the headers that are already in the request. For example, for the
header name sample
, WAF inserts the header x-amzn-waf-sample
.
customHTTPHeader_value :: Lens' CustomHTTPHeader Text Source #
The value of the custom header.
CustomRequestHandling
data CustomRequestHandling Source #
Custom request handling behavior that inserts custom headers into a web
request. You can add custom request handling for WAF to use when the
rule action doesn't block the request. For example, CaptchaAction
for
requests with valid t okens, and AllowAction
.
For information about customizing web requests and responses, see Customizing web requests and responses in WAF in the WAF Developer Guide.
See: newCustomRequestHandling
smart constructor.
CustomRequestHandling' | |
|
Instances
newCustomRequestHandling Source #
Create a value of CustomRequestHandling
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:insertHeaders:CustomRequestHandling'
, customRequestHandling_insertHeaders
- The HTTP headers to insert into the request. Duplicate header names are
not allowed.
For information about the limits on count and size for custom request and response settings, see WAF quotas in the WAF Developer Guide.
customRequestHandling_insertHeaders :: Lens' CustomRequestHandling (NonEmpty CustomHTTPHeader) Source #
The HTTP headers to insert into the request. Duplicate header names are not allowed.
For information about the limits on count and size for custom request and response settings, see WAF quotas in the WAF Developer Guide.
CustomResponse
data CustomResponse Source #
A custom response to send to the client. You can define a custom response for rule actions and default web ACL actions that are set to BlockAction.
For information about customizing web requests and responses, see Customizing web requests and responses in WAF in the WAF Developer Guide.
See: newCustomResponse
smart constructor.
CustomResponse' | |
|
Instances
Create a value of CustomResponse
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:customResponseBodyKey:CustomResponse'
, customResponse_customResponseBodyKey
- References the response body that you want WAF to return to the web
request client. You can define a custom response for a rule action or a
default web ACL action that is set to block. To do this, you first
define the response body key and value in the CustomResponseBodies
setting for the WebACL or RuleGroup where you want to use it. Then, in
the rule action or web ACL default action BlockAction
setting, you
reference the response body using this key.
$sel:responseHeaders:CustomResponse'
, customResponse_responseHeaders
- The HTTP headers to use in the response. Duplicate header names are not
allowed.
For information about the limits on count and size for custom request and response settings, see WAF quotas in the WAF Developer Guide.
$sel:responseCode:CustomResponse'
, customResponse_responseCode
- The HTTP status code to return to the client.
For a list of status codes that you can use in your custom responses, see Supported status codes for custom response in the WAF Developer Guide.
customResponse_customResponseBodyKey :: Lens' CustomResponse (Maybe Text) Source #
References the response body that you want WAF to return to the web
request client. You can define a custom response for a rule action or a
default web ACL action that is set to block. To do this, you first
define the response body key and value in the CustomResponseBodies
setting for the WebACL or RuleGroup where you want to use it. Then, in
the rule action or web ACL default action BlockAction
setting, you
reference the response body using this key.
customResponse_responseHeaders :: Lens' CustomResponse (Maybe (NonEmpty CustomHTTPHeader)) Source #
The HTTP headers to use in the response. Duplicate header names are not allowed.
For information about the limits on count and size for custom request and response settings, see WAF quotas in the WAF Developer Guide.
customResponse_responseCode :: Lens' CustomResponse Natural Source #
The HTTP status code to return to the client.
For a list of status codes that you can use in your custom responses, see Supported status codes for custom response in the WAF Developer Guide.
CustomResponseBody
data CustomResponseBody Source #
The response body to use in a custom response to a web request. This is
referenced by key from CustomResponse CustomResponseBodyKey
.
See: newCustomResponseBody
smart constructor.
CustomResponseBody' | |
|
Instances
newCustomResponseBody Source #
Create a value of CustomResponseBody
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:contentType:CustomResponseBody'
, customResponseBody_contentType
- The type of content in the payload that you are defining in the
Content
string.
$sel:content:CustomResponseBody'
, customResponseBody_content
- The payload of the custom response.
You can use JSON escape strings in JSON content. To do this, you must
specify JSON content in the ContentType
setting.
For information about the limits on count and size for custom request and response settings, see WAF quotas in the WAF Developer Guide.
customResponseBody_contentType :: Lens' CustomResponseBody ResponseContentType Source #
The type of content in the payload that you are defining in the
Content
string.
customResponseBody_content :: Lens' CustomResponseBody Text Source #
The payload of the custom response.
You can use JSON escape strings in JSON content. To do this, you must
specify JSON content in the ContentType
setting.
For information about the limits on count and size for custom request and response settings, see WAF quotas in the WAF Developer Guide.
DefaultAction
data DefaultAction Source #
In a WebACL, this is the action that you want WAF to perform when a web
request doesn't match any of the rules in the WebACL
. The default
action must be a terminating action.
See: newDefaultAction
smart constructor.
DefaultAction' | |
|
Instances
newDefaultAction :: DefaultAction Source #
Create a value of DefaultAction
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:allow:DefaultAction'
, defaultAction_allow
- Specifies that WAF should allow requests by default.
$sel:block:DefaultAction'
, defaultAction_block
- Specifies that WAF should block requests by default.
defaultAction_allow :: Lens' DefaultAction (Maybe AllowAction) Source #
Specifies that WAF should allow requests by default.
defaultAction_block :: Lens' DefaultAction (Maybe BlockAction) Source #
Specifies that WAF should block requests by default.
ExcludedRule
data ExcludedRule Source #
Specifies a single rule in a rule group whose action you want to
override to Count
.
Instead of this option, use RuleActionOverrides
. It accepts any valid
action setting, including Count
.
See: newExcludedRule
smart constructor.
Instances
Create a value of ExcludedRule
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:name:ExcludedRule'
, excludedRule_name
- The name of the rule whose action you want to override to Count
.
excludedRule_name :: Lens' ExcludedRule Text Source #
The name of the rule whose action you want to override to Count
.
FieldToMatch
data FieldToMatch Source #
The part of the web request that you want WAF to inspect. Include the
single FieldToMatch
type that you want to inspect, with additional
specifications as needed, according to the type. You specify a single
request component in FieldToMatch
for each rule statement that
requires it. To inspect more than one component of the web request,
create a separate rule statement for each component.
Example JSON for a QueryString
field to match:
"FieldToMatch": { "QueryString": {} }
Example JSON for a Method
field to match specification:
"FieldToMatch": { "Method": { "Name": "DELETE" } }
See: newFieldToMatch
smart constructor.
FieldToMatch' | |
|
Instances
newFieldToMatch :: FieldToMatch Source #
Create a value of FieldToMatch
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:allQueryArguments:FieldToMatch'
, fieldToMatch_allQueryArguments
- Inspect all query arguments.
$sel:body:FieldToMatch'
, fieldToMatch_body
- Inspect the request body as plain text. The request body immediately
follows the request headers. This is 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.
Only the first 8 KB (8192 bytes) of the request body are forwarded to
WAF for inspection by the underlying host service. For information about
how to handle oversized request bodies, see the Body
object
configuration.
$sel:cookies:FieldToMatch'
, fieldToMatch_cookies
- Inspect the request cookies. You must configure scope and pattern
matching filters in the Cookies
object, to define the set of cookies
and the parts of the cookies that WAF inspects.
Only the first 8 KB (8192 bytes) of a request's cookies and only the
first 200 cookies are forwarded to WAF for inspection by the underlying
host service. You must configure how to handle any oversize cookie
content in the Cookies
object. WAF applies the pattern matching
filters to the cookies that it receives from the underlying host
service.
$sel:headers:FieldToMatch'
, fieldToMatch_headers
- Inspect the request headers. You must configure scope and pattern
matching filters in the Headers
object, to define the set of headers
to and the parts of the headers that WAF inspects.
Only the first 8 KB (8192 bytes) of a request's headers and only the
first 200 headers are forwarded to WAF for inspection by the underlying
host service. You must configure how to handle any oversize header
content in the Headers
object. WAF applies the pattern matching
filters to the headers that it receives from the underlying host
service.
$sel:jsonBody:FieldToMatch'
, fieldToMatch_jsonBody
- Inspect the request body as JSON. The request body immediately follows
the request headers. This is 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.
Only the first 8 KB (8192 bytes) of the request body are forwarded to
WAF for inspection by the underlying host service. For information about
how to handle oversized request bodies, see the JsonBody
object
configuration.
$sel:method:FieldToMatch'
, fieldToMatch_method
- Inspect the HTTP method. The method indicates the type of operation that
the request is asking the origin to perform.
$sel:queryString:FieldToMatch'
, fieldToMatch_queryString
- Inspect the query string. This is the part of a URL that appears after a
?
character, if any.
$sel:singleHeader:FieldToMatch'
, fieldToMatch_singleHeader
- Inspect a single header. Provide the name of the header to inspect, for
example, User-Agent
or Referer
. This setting isn't case sensitive.
Example JSON: "SingleHeader": { "Name": "haystack" }
Alternately, you can filter and inspect all headers with the Headers
FieldToMatch
setting.
$sel:singleQueryArgument:FieldToMatch'
, fieldToMatch_singleQueryArgument
- Inspect a single query argument. Provide the name of the query argument
to inspect, such as UserName or SalesRegion. The name can be up to
30 characters long and isn't case sensitive.
Example JSON: "SingleQueryArgument": { "Name": "myArgument" }
$sel:uriPath:FieldToMatch'
, fieldToMatch_uriPath
- Inspect the request URI path. This is the part of the web request that
identifies a resource, for example, /images/daily-ad.jpg
.
fieldToMatch_allQueryArguments :: Lens' FieldToMatch (Maybe AllQueryArguments) Source #
Inspect all query arguments.
fieldToMatch_body :: Lens' FieldToMatch (Maybe Body) Source #
Inspect the request body as plain text. The request body immediately follows the request headers. This is 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.
Only the first 8 KB (8192 bytes) of the request body are forwarded to
WAF for inspection by the underlying host service. For information about
how to handle oversized request bodies, see the Body
object
configuration.
fieldToMatch_cookies :: Lens' FieldToMatch (Maybe Cookies) Source #
Inspect the request cookies. You must configure scope and pattern
matching filters in the Cookies
object, to define the set of cookies
and the parts of the cookies that WAF inspects.
Only the first 8 KB (8192 bytes) of a request's cookies and only the
first 200 cookies are forwarded to WAF for inspection by the underlying
host service. You must configure how to handle any oversize cookie
content in the Cookies
object. WAF applies the pattern matching
filters to the cookies that it receives from the underlying host
service.
fieldToMatch_headers :: Lens' FieldToMatch (Maybe Headers) Source #
Inspect the request headers. You must configure scope and pattern
matching filters in the Headers
object, to define the set of headers
to and the parts of the headers that WAF inspects.
Only the first 8 KB (8192 bytes) of a request's headers and only the
first 200 headers are forwarded to WAF for inspection by the underlying
host service. You must configure how to handle any oversize header
content in the Headers
object. WAF applies the pattern matching
filters to the headers that it receives from the underlying host
service.
fieldToMatch_jsonBody :: Lens' FieldToMatch (Maybe JsonBody) Source #
Inspect the request body as JSON. The request body immediately follows the request headers. This is 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.
Only the first 8 KB (8192 bytes) of the request body are forwarded to
WAF for inspection by the underlying host service. For information about
how to handle oversized request bodies, see the JsonBody
object
configuration.
fieldToMatch_method :: Lens' FieldToMatch (Maybe Method) Source #
Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
fieldToMatch_queryString :: Lens' FieldToMatch (Maybe QueryString) Source #
Inspect the query string. This is the part of a URL that appears after a
?
character, if any.
fieldToMatch_singleHeader :: Lens' FieldToMatch (Maybe SingleHeader) Source #
Inspect a single header. Provide the name of the header to inspect, for
example, User-Agent
or Referer
. This setting isn't case sensitive.
Example JSON: "SingleHeader": { "Name": "haystack" }
Alternately, you can filter and inspect all headers with the Headers
FieldToMatch
setting.
fieldToMatch_singleQueryArgument :: Lens' FieldToMatch (Maybe SingleQueryArgument) Source #
Inspect a single query argument. Provide the name of the query argument to inspect, such as UserName or SalesRegion. The name can be up to 30 characters long and isn't case sensitive.
Example JSON: "SingleQueryArgument": { "Name": "myArgument" }
fieldToMatch_uriPath :: Lens' FieldToMatch (Maybe UriPath) Source #
Inspect the request URI path. This is the part of the web request that
identifies a resource, for example, /images/daily-ad.jpg
.
Filter
A single logging filter, used in LoggingFilter.
See: newFilter
smart constructor.
Filter' | |
|
Instances
FromJSON Filter Source # | |
ToJSON Filter Source # | |
Defined in Amazonka.WAFV2.Types.Filter | |
Generic Filter Source # | |
Read Filter Source # | |
Show Filter Source # | |
NFData Filter Source # | |
Defined in Amazonka.WAFV2.Types.Filter | |
Eq Filter Source # | |
Hashable Filter Source # | |
Defined in Amazonka.WAFV2.Types.Filter | |
type Rep Filter Source # | |
Defined in Amazonka.WAFV2.Types.Filter type Rep Filter = D1 ('MetaData "Filter" "Amazonka.WAFV2.Types.Filter" "amazonka-wafv2-2.0-3v3WgpYn7RT5hSd6MsT5dN" 'False) (C1 ('MetaCons "Filter'" 'PrefixI 'True) (S1 ('MetaSel ('Just "behavior") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 FilterBehavior) :*: (S1 ('MetaSel ('Just "requirement") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 FilterRequirement) :*: S1 ('MetaSel ('Just "conditions") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (NonEmpty Condition))))) |
Create a value of Filter
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:behavior:Filter'
, filter_behavior
- How to handle logs that satisfy the filter's conditions and
requirement.
$sel:requirement:Filter'
, filter_requirement
- Logic to apply to the filtering conditions. You can specify that, in
order to satisfy the filter, a log must match all conditions or must
match at least one condition.
$sel:conditions:Filter'
, filter_conditions
- Match conditions for the filter.
filter_behavior :: Lens' Filter FilterBehavior Source #
How to handle logs that satisfy the filter's conditions and requirement.
filter_requirement :: Lens' Filter FilterRequirement Source #
Logic to apply to the filtering conditions. You can specify that, in order to satisfy the filter, a log must match all conditions or must match at least one condition.
FirewallManagerRuleGroup
data FirewallManagerRuleGroup Source #
A rule group that's defined for an Firewall Manager WAF policy.
See: newFirewallManagerRuleGroup
smart constructor.
FirewallManagerRuleGroup' | |
|
Instances
newFirewallManagerRuleGroup Source #
:: Text | |
-> Natural | |
-> FirewallManagerStatement | |
-> OverrideAction | |
-> VisibilityConfig | |
-> FirewallManagerRuleGroup |
Create a value of FirewallManagerRuleGroup
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:name:FirewallManagerRuleGroup'
, firewallManagerRuleGroup_name
- The name of the rule group. You cannot change the name of a rule group
after you create it.
$sel:priority:FirewallManagerRuleGroup'
, firewallManagerRuleGroup_priority
- If you define more than one rule group in the first or last Firewall
Manager rule groups, WAF evaluates each request against the rule groups
in order, starting from the lowest priority setting. The priorities
don't need to be consecutive, but they must all be different.
$sel:firewallManagerStatement:FirewallManagerRuleGroup'
, firewallManagerRuleGroup_firewallManagerStatement
- The processing guidance for an Firewall Manager rule. This is like a
regular rule Statement, but it can only contain a rule group reference.
$sel:overrideAction:FirewallManagerRuleGroup'
, firewallManagerRuleGroup_overrideAction
- The action to use in the place of the action that results from the rule
group evaluation. Set the override action to none to leave the result of
the rule group alone. Set it to count to override the result to count
only.
You can only use this for rule statements that reference a rule group,
like RuleGroupReferenceStatement
and ManagedRuleGroupStatement
.
This option is usually set to none. It does not affect how the rules in
the rule group are evaluated. If you want the rules in the rule group to
only count matches, do not use this and instead use the rule action
override option, with Count
action, in your rule group reference
statement settings.
$sel:visibilityConfig:FirewallManagerRuleGroup'
, firewallManagerRuleGroup_visibilityConfig
- Defines and enables Amazon CloudWatch metrics and web request sample
collection.
firewallManagerRuleGroup_name :: Lens' FirewallManagerRuleGroup Text Source #
The name of the rule group. You cannot change the name of a rule group after you create it.
firewallManagerRuleGroup_priority :: Lens' FirewallManagerRuleGroup Natural Source #
If you define more than one rule group in the first or last Firewall Manager rule groups, WAF evaluates each request against the rule groups in order, starting from the lowest priority setting. The priorities don't need to be consecutive, but they must all be different.
firewallManagerRuleGroup_firewallManagerStatement :: Lens' FirewallManagerRuleGroup FirewallManagerStatement Source #
The processing guidance for an Firewall Manager rule. This is like a regular rule Statement, but it can only contain a rule group reference.
firewallManagerRuleGroup_overrideAction :: Lens' FirewallManagerRuleGroup OverrideAction Source #
The action to use in the place of the action that results from the rule group evaluation. Set the override action to none to leave the result of the rule group alone. Set it to count to override the result to count only.
You can only use this for rule statements that reference a rule group,
like RuleGroupReferenceStatement
and ManagedRuleGroupStatement
.
This option is usually set to none. It does not affect how the rules in
the rule group are evaluated. If you want the rules in the rule group to
only count matches, do not use this and instead use the rule action
override option, with Count
action, in your rule group reference
statement settings.
firewallManagerRuleGroup_visibilityConfig :: Lens' FirewallManagerRuleGroup VisibilityConfig Source #
Defines and enables Amazon CloudWatch metrics and web request sample collection.
FirewallManagerStatement
data FirewallManagerStatement Source #
The processing guidance for an Firewall Manager rule. This is like a regular rule Statement, but it can only contain a rule group reference.
See: newFirewallManagerStatement
smart constructor.
FirewallManagerStatement' | |
|
Instances
newFirewallManagerStatement :: FirewallManagerStatement Source #
Create a value of FirewallManagerStatement
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:managedRuleGroupStatement:FirewallManagerStatement'
, firewallManagerStatement_managedRuleGroupStatement
- A rule statement used to run the rules that are defined in a managed
rule group. To use this, provide the vendor name and the name of the
rule group in this statement. You can retrieve the required names by
calling ListAvailableManagedRuleGroups.
You cannot nest a ManagedRuleGroupStatement
, for example for use
inside a NotStatement
or OrStatement
. It can only be referenced as a
top-level statement within a rule.
You are charged additional fees when you use the WAF Bot Control managed
rule group AWSManagedRulesBotControlRuleSet
or the WAF Fraud Control
account takeover prevention (ATP) managed rule group
AWSManagedRulesATPRuleSet
. For more information, see
WAF Pricing.
$sel:ruleGroupReferenceStatement:FirewallManagerStatement'
, firewallManagerStatement_ruleGroupReferenceStatement
- A rule statement used to run the rules that are defined in a RuleGroup.
To use this, create a rule group with your rules, then provide the ARN
of the rule group in this statement.
You cannot nest a RuleGroupReferenceStatement
, for example for use
inside a NotStatement
or OrStatement
. You can only use a rule group
reference statement at the top level inside a web ACL.
firewallManagerStatement_managedRuleGroupStatement :: Lens' FirewallManagerStatement (Maybe ManagedRuleGroupStatement) Source #
A rule statement used to run the rules that are defined in a managed rule group. To use this, provide the vendor name and the name of the rule group in this statement. You can retrieve the required names by calling ListAvailableManagedRuleGroups.
You cannot nest a ManagedRuleGroupStatement
, for example for use
inside a NotStatement
or OrStatement
. It can only be referenced as a
top-level statement within a rule.
You are charged additional fees when you use the WAF Bot Control managed
rule group AWSManagedRulesBotControlRuleSet
or the WAF Fraud Control
account takeover prevention (ATP) managed rule group
AWSManagedRulesATPRuleSet
. For more information, see
WAF Pricing.
firewallManagerStatement_ruleGroupReferenceStatement :: Lens' FirewallManagerStatement (Maybe RuleGroupReferenceStatement) Source #
A rule statement used to run the rules that are defined in a RuleGroup. To use this, create a rule group with your rules, then provide the ARN of the rule group in this statement.
You cannot nest a RuleGroupReferenceStatement
, for example for use
inside a NotStatement
or OrStatement
. You can only use a rule group
reference statement at the top level inside a web ACL.
ForwardedIPConfig
data ForwardedIPConfig Source #
The configuration for inspecting IP addresses in an HTTP header that you specify, instead of using the IP address that's reported by the web request origin. Commonly, this is the X-Forwarded-For (XFF) header, but you can specify any header name.
If the specified header isn't present in the request, WAF doesn't apply the rule to the web request at all.
This configuration is used for GeoMatchStatement and RateBasedStatement. For IPSetReferenceStatement, use IPSetForwardedIPConfig instead.
WAF only evaluates the first IP address found in the specified HTTP header.
See: newForwardedIPConfig
smart constructor.
ForwardedIPConfig' | |
|
Instances
Create a value of ForwardedIPConfig
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:headerName:ForwardedIPConfig'
, forwardedIPConfig_headerName
- The name of the HTTP header to use for the IP address. For example, to
use the X-Forwarded-For (XFF) header, set this to X-Forwarded-For
.
If the specified header isn't present in the request, WAF doesn't apply the rule to the web request at all.
$sel:fallbackBehavior:ForwardedIPConfig'
, forwardedIPConfig_fallbackBehavior
- The match status to assign to the web request if the request doesn't
have a valid IP address in the specified position.
If the specified header isn't present in the request, WAF doesn't apply the rule to the web request at all.
You can specify the following fallback behaviors:
MATCH
- Treat the web request as matching the rule statement. WAF applies the rule action to the request.NO_MATCH
- Treat the web request as not matching the rule statement.
forwardedIPConfig_headerName :: Lens' ForwardedIPConfig Text Source #
The name of the HTTP header to use for the IP address. For example, to
use the X-Forwarded-For (XFF) header, set this to X-Forwarded-For
.
If the specified header isn't present in the request, WAF doesn't apply the rule to the web request at all.
forwardedIPConfig_fallbackBehavior :: Lens' ForwardedIPConfig FallbackBehavior Source #
The match status to assign to the web request if the request doesn't have a valid IP address in the specified position.
If the specified header isn't present in the request, WAF doesn't apply the rule to the web request at all.
You can specify the following fallback behaviors:
MATCH
- Treat the web request as matching the rule statement. WAF applies the rule action to the request.NO_MATCH
- Treat the web request as not matching the rule statement.
GeoMatchStatement
data GeoMatchStatement Source #
A rule statement that labels web requests by country and region and that matches against web requests based on country code. A geo match rule labels every request that it inspects regardless of whether it finds a match.
- To manage requests only by country, you can use this statement by
itself and specify the countries that you want to match against in
the
CountryCodes
array. - Otherwise, configure your geo match rule with Count action so that it only labels requests. Then, add one or more label match rules to run after the geo match rule and configure them to match against the geographic labels and handle the requests as needed.
WAF labels requests using the alpha-2 country and region codes from the
International Organization for Standardization (ISO) 3166 standard. WAF
determines the codes using either the IP address in the web request
origin or, if you specify it, the address in the geo match
ForwardedIPConfig
.
If you use the web request origin, the label formats are
awswaf:clientip:geo:region:<ISO country code>-<ISO region code>
and
awswaf:clientip:geo:country:<ISO country code>
.
If you use a forwarded IP address, the label formats are
awswaf:forwardedip:geo:region:<ISO country code>-<ISO region code>
and awswaf:forwardedip:geo:country:<ISO country code>
.
For additional details, see Geographic match rule statement in the WAF Developer Guide.
See: newGeoMatchStatement
smart constructor.
GeoMatchStatement' | |
|
Instances
newGeoMatchStatement :: GeoMatchStatement Source #
Create a value of GeoMatchStatement
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:countryCodes:GeoMatchStatement'
, geoMatchStatement_countryCodes
- An array of two-character country codes that you want to match against,
for example, [ "US", "CN" ]
, from the alpha-2 country ISO codes of
the ISO 3166 international standard.
When you use a geo match statement just for the region and country labels that it adds to requests, you still have to supply a country code for the rule to evaluate. In this case, you configure the rule to only count matching requests, but it will still generate logging and count metrics for any matches. You can reduce the logging and metrics that the rule produces by specifying a country that's unlikely to be a source of traffic to your site.
$sel:forwardedIPConfig:GeoMatchStatement'
, geoMatchStatement_forwardedIPConfig
- The configuration for inspecting IP addresses in an HTTP header that you
specify, instead of using the IP address that's reported by the web
request origin. Commonly, this is the X-Forwarded-For (XFF) header, but
you can specify any header name.
If the specified header isn't present in the request, WAF doesn't apply the rule to the web request at all.
geoMatchStatement_countryCodes :: Lens' GeoMatchStatement (Maybe (NonEmpty CountryCode)) Source #
An array of two-character country codes that you want to match against,
for example, [ "US", "CN" ]
, from the alpha-2 country ISO codes of
the ISO 3166 international standard.
When you use a geo match statement just for the region and country labels that it adds to requests, you still have to supply a country code for the rule to evaluate. In this case, you configure the rule to only count matching requests, but it will still generate logging and count metrics for any matches. You can reduce the logging and metrics that the rule produces by specifying a country that's unlikely to be a source of traffic to your site.
geoMatchStatement_forwardedIPConfig :: Lens' GeoMatchStatement (Maybe ForwardedIPConfig) Source #
The configuration for inspecting IP addresses in an HTTP header that you specify, instead of using the IP address that's reported by the web request origin. Commonly, this is the X-Forwarded-For (XFF) header, but you can specify any header name.
If the specified header isn't present in the request, WAF doesn't apply the rule to the web request at all.
HTTPHeader
data HTTPHeader Source #
Part of the response from GetSampledRequests. This is a 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.
See: newHTTPHeader
smart constructor.
Instances
newHTTPHeader :: HTTPHeader Source #
Create a value of HTTPHeader
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:name:HTTPHeader'
, hTTPHeader_name
- The name of the HTTP header.
$sel:value:HTTPHeader'
, hTTPHeader_value
- The value of the HTTP header.
hTTPHeader_name :: Lens' HTTPHeader (Maybe Text) Source #
The name of the HTTP header.
hTTPHeader_value :: Lens' HTTPHeader (Maybe Text) Source #
The value of the HTTP header.
HTTPRequest
data HTTPRequest Source #
Part of the response from GetSampledRequests. This is a complex type
that appears as Request
in the response syntax. HTTPRequest
contains
information about one of the web requests.
See: newHTTPRequest
smart constructor.
HTTPRequest' | |
|
Instances
newHTTPRequest :: HTTPRequest Source #
Create a value of HTTPRequest
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:clientIP:HTTPRequest'
, hTTPRequest_clientIP
- The IP address that the request originated from. If the web ACL 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 requestx-forwarded-for
, if the viewer did use an HTTP proxy or a load balancer to send the request
$sel:country:HTTPRequest'
, hTTPRequest_country
- The two-letter country code for the country that the request originated
from. For a current list of country codes, see the Wikipedia entry
ISO 3166-1 alpha-2.
$sel:hTTPVersion:HTTPRequest'
, hTTPRequest_hTTPVersion
- The HTTP version specified in the sampled web request, for example,
HTTP/1.1
.
$sel:headers:HTTPRequest'
, hTTPRequest_headers
- A complex type that contains the name and value for each header in the
sampled web request.
$sel:method:HTTPRequest'
, hTTPRequest_method
- The HTTP method specified in the sampled web request.
$sel:uri:HTTPRequest'
, hTTPRequest_uri
- The URI path of the request, which identifies the resource, for example,
/images/daily-ad.jpg
.
hTTPRequest_clientIP :: Lens' HTTPRequest (Maybe Text) Source #
The IP address that the request originated from. If the web ACL 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 requestx-forwarded-for
, if the viewer did use an HTTP proxy or a load balancer to send the request
hTTPRequest_country :: Lens' HTTPRequest (Maybe Text) Source #
The two-letter country code for the country that the request originated from. For a current list of country codes, see the Wikipedia entry ISO 3166-1 alpha-2.
hTTPRequest_hTTPVersion :: Lens' HTTPRequest (Maybe Text) Source #
The HTTP version specified in the sampled web request, for example,
HTTP/1.1
.
hTTPRequest_headers :: Lens' HTTPRequest (Maybe [HTTPHeader]) Source #
A complex type that contains the name and value for each header in the sampled web request.
hTTPRequest_method :: Lens' HTTPRequest (Maybe Text) Source #
The HTTP method specified in the sampled web request.
hTTPRequest_uri :: Lens' HTTPRequest (Maybe Text) Source #
The URI path of the request, which identifies the resource, for example,
/images/daily-ad.jpg
.
HeaderMatchPattern
data HeaderMatchPattern Source #
The filter to use to identify the subset of headers to inspect in a web request.
You must specify exactly one setting: either All
, IncludedHeaders
,
or ExcludedHeaders
.
Example JSON:
"MatchPattern": { "ExcludedHeaders": {"KeyToExclude1", "KeyToExclude2"} }
See: newHeaderMatchPattern
smart constructor.
Instances
newHeaderMatchPattern :: HeaderMatchPattern Source #
Create a value of HeaderMatchPattern
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:all:HeaderMatchPattern'
, headerMatchPattern_all
- Inspect all headers.
$sel:excludedHeaders:HeaderMatchPattern'
, headerMatchPattern_excludedHeaders
- Inspect only the headers whose keys don't match any of the strings
specified here.
$sel:includedHeaders:HeaderMatchPattern'
, headerMatchPattern_includedHeaders
- Inspect only the headers that have a key that matches one of the strings
specified here.
headerMatchPattern_all :: Lens' HeaderMatchPattern (Maybe All) Source #
Inspect all headers.
headerMatchPattern_excludedHeaders :: Lens' HeaderMatchPattern (Maybe (NonEmpty Text)) Source #
Inspect only the headers whose keys don't match any of the strings specified here.
headerMatchPattern_includedHeaders :: Lens' HeaderMatchPattern (Maybe (NonEmpty Text)) Source #
Inspect only the headers that have a key that matches one of the strings specified here.
Headers
Inspect all headers in the web request. You can specify the parts of the headers to inspect and you can narrow the set of headers to inspect by including or excluding specific keys.
This is used to indicate the web request component to inspect, in the FieldToMatch specification.
If you want to inspect just the value of a single header, use the
SingleHeader
FieldToMatch
setting instead.
Example JSON:
"Headers": { "MatchPattern": { "All": {} }, "MatchScope": "KEY", "OversizeHandling": "MATCH" }
See: newHeaders
smart constructor.
Headers' | |
|
Instances
FromJSON Headers Source # | |
ToJSON Headers Source # | |
Defined in Amazonka.WAFV2.Types.Headers | |
Generic Headers Source # | |
Read Headers Source # | |
Show Headers Source # | |
NFData Headers Source # | |
Defined in Amazonka.WAFV2.Types.Headers | |
Eq Headers Source # | |
Hashable Headers Source # | |
Defined in Amazonka.WAFV2.Types.Headers | |
type Rep Headers Source # | |
Defined in Amazonka.WAFV2.Types.Headers type Rep Headers = D1 ('MetaData "Headers" "Amazonka.WAFV2.Types.Headers" "amazonka-wafv2-2.0-3v3WgpYn7RT5hSd6MsT5dN" 'False) (C1 ('MetaCons "Headers'" 'PrefixI 'True) (S1 ('MetaSel ('Just "matchPattern") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 HeaderMatchPattern) :*: (S1 ('MetaSel ('Just "matchScope") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 MapMatchScope) :*: S1 ('MetaSel ('Just "oversizeHandling") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 OversizeHandling)))) |
Create a value of Headers
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:matchPattern:Headers'
, headers_matchPattern
- The filter to use to identify the subset of headers to inspect in a web
request.
You must specify exactly one setting: either All
, IncludedHeaders
,
or ExcludedHeaders
.
Example JSON:
"MatchPattern": { "ExcludedHeaders": {"KeyToExclude1", "KeyToExclude2"} }
$sel:matchScope:Headers'
, headers_matchScope
- The parts of the headers to match with the rule inspection criteria. If
you specify All
, WAF inspects both keys and values.
$sel:oversizeHandling:Headers'
, headers_oversizeHandling
- What WAF should do if the headers of the request are larger than WAF can
inspect. WAF does not support inspecting the entire contents of request
headers when they exceed 8 KB (8192 bytes) or 200 total headers. The
underlying host service forwards a maximum of 200 headers and at most 8
KB of header contents to WAF.
The options for oversize handling are the following:
CONTINUE
- Inspect the headers normally, according to the rule inspection criteria.MATCH
- Treat the web request as matching the rule statement. WAF applies the rule action to the request.NO_MATCH
- Treat the web request as not matching the rule statement.
headers_matchPattern :: Lens' Headers HeaderMatchPattern Source #
The filter to use to identify the subset of headers to inspect in a web request.
You must specify exactly one setting: either All
, IncludedHeaders
,
or ExcludedHeaders
.
Example JSON:
"MatchPattern": { "ExcludedHeaders": {"KeyToExclude1", "KeyToExclude2"} }
headers_matchScope :: Lens' Headers MapMatchScope Source #
The parts of the headers to match with the rule inspection criteria. If
you specify All
, WAF inspects both keys and values.
headers_oversizeHandling :: Lens' Headers OversizeHandling Source #
What WAF should do if the headers of the request are larger than WAF can inspect. WAF does not support inspecting the entire contents of request headers when they exceed 8 KB (8192 bytes) or 200 total headers. The underlying host service forwards a maximum of 200 headers and at most 8 KB of header contents to WAF.
The options for oversize handling are the following:
CONTINUE
- Inspect the headers normally, according to the rule inspection criteria.MATCH
- Treat the web request as matching the rule statement. WAF applies the rule action to the request.NO_MATCH
- Treat the web request as not matching the rule statement.
IPSet
Contains zero or more IP addresses or blocks of IP addresses specified in Classless Inter-Domain Routing (CIDR) notation. WAF supports all IPv4 and IPv6 CIDR ranges except for /0. For information about CIDR notation, see the Wikipedia entry Classless Inter-Domain Routing.
WAF assigns an ARN to each IPSet
that you create. To use an IP set in
a rule, you provide the ARN to the Rule statement
IPSetReferenceStatement.
See: newIPSet
smart constructor.
IPSet' | |
|
Instances
:: Text | |
-> Text | |
-> Text | |
-> IPAddressVersion | |
-> IPSet |
Create a value of IPSet
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:description:IPSet'
, iPSet_description
- A description of the IP set that helps with identification.
$sel:name:IPSet'
, iPSet_name
- The name of the IP set. You cannot change the name of an IPSet
after
you create it.
$sel:id:IPSet'
, iPSet_id
- A unique identifier for the set. This ID is returned in the responses to
create and list commands. You provide it to operations like update and
delete.
$sel:arn:IPSet'
, iPSet_arn
- The Amazon Resource Name (ARN) of the entity.
$sel:iPAddressVersion:IPSet'
, iPSet_iPAddressVersion
- The version of the IP addresses, either IPV4
or IPV6
.
$sel:addresses:IPSet'
, iPSet_addresses
- Contains an array of strings that specifies zero or more IP addresses or
blocks of IP addresses. All addresses must be specified using Classless
Inter-Domain Routing (CIDR) notation. WAF supports all IPv4 and IPv6
CIDR ranges except for /0
.
Example address strings:
- To configure 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 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
. - To configure 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 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
.
For more information about CIDR notation, see the Wikipedia entry Classless Inter-Domain Routing.
Example JSON Addresses
specifications:
- Empty array:
"Addresses": []
- Array with one address:
"Addresses": ["192.0.2.44/32"]
- Array with three addresses:
"Addresses": ["192.0.2.44/32", "192.0.2.0/24", "192.0.0.0/16"]
- INVALID specification:
"Addresses": [""]
INVALID
iPSet_description :: Lens' IPSet (Maybe Text) Source #
A description of the IP set that helps with identification.
iPSet_name :: Lens' IPSet Text Source #
The name of the IP set. You cannot change the name of an IPSet
after
you create it.
iPSet_id :: Lens' IPSet Text Source #
A unique identifier for the set. This ID is returned in the responses to create and list commands. You provide it to operations like update and delete.
iPSet_iPAddressVersion :: Lens' IPSet IPAddressVersion Source #
The version of the IP addresses, either IPV4
or IPV6
.
iPSet_addresses :: Lens' IPSet [Text] Source #
Contains an array of strings that specifies zero or more IP addresses or
blocks of IP addresses. All addresses must be specified using Classless
Inter-Domain Routing (CIDR) notation. WAF supports all IPv4 and IPv6
CIDR ranges except for /0
.
Example address strings:
- To configure 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 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
. - To configure 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 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
.
For more information about CIDR notation, see the Wikipedia entry Classless Inter-Domain Routing.
Example JSON Addresses
specifications:
- Empty array:
"Addresses": []
- Array with one address:
"Addresses": ["192.0.2.44/32"]
- Array with three addresses:
"Addresses": ["192.0.2.44/32", "192.0.2.0/24", "192.0.0.0/16"]
- INVALID specification:
"Addresses": [""]
INVALID
IPSetForwardedIPConfig
data IPSetForwardedIPConfig Source #
The configuration for inspecting IP addresses in an HTTP header that you specify, instead of using the IP address that's reported by the web request origin. Commonly, this is the X-Forwarded-For (XFF) header, but you can specify any header name.
If the specified header isn't present in the request, WAF doesn't apply the rule to the web request at all.
This configuration is used only for IPSetReferenceStatement. For GeoMatchStatement and RateBasedStatement, use ForwardedIPConfig instead.
See: newIPSetForwardedIPConfig
smart constructor.
IPSetForwardedIPConfig' | |
|
Instances
newIPSetForwardedIPConfig Source #
Create a value of IPSetForwardedIPConfig
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:headerName:IPSetForwardedIPConfig'
, iPSetForwardedIPConfig_headerName
- The name of the HTTP header to use for the IP address. For example, to
use the X-Forwarded-For (XFF) header, set this to X-Forwarded-For
.
If the specified header isn't present in the request, WAF doesn't apply the rule to the web request at all.
$sel:fallbackBehavior:IPSetForwardedIPConfig'
, iPSetForwardedIPConfig_fallbackBehavior
- The match status to assign to the web request if the request doesn't
have a valid IP address in the specified position.
If the specified header isn't present in the request, WAF doesn't apply the rule to the web request at all.
You can specify the following fallback behaviors:
MATCH
- Treat the web request as matching the rule statement. WAF applies the rule action to the request.NO_MATCH
- Treat the web request as not matching the rule statement.
$sel:position:IPSetForwardedIPConfig'
, iPSetForwardedIPConfig_position
- The position in the header to search for the IP address. The header can
contain IP addresses of the original client and also of proxies. For
example, the header value could be 10.1.1.1, 127.0.0.0, 10.10.10.10
where the first IP address identifies the original client and the rest
identify proxies that the request went through.
The options for this setting are the following:
- FIRST - Inspect the first IP address in the list of IP addresses in the header. This is usually the client's original IP.
- LAST - Inspect the last IP address in the list of IP addresses in the header.
- ANY - Inspect all IP addresses in the header for a match. If the header contains more than 10 IP addresses, WAF inspects the last 10.
iPSetForwardedIPConfig_headerName :: Lens' IPSetForwardedIPConfig Text Source #
The name of the HTTP header to use for the IP address. For example, to
use the X-Forwarded-For (XFF) header, set this to X-Forwarded-For
.
If the specified header isn't present in the request, WAF doesn't apply the rule to the web request at all.
iPSetForwardedIPConfig_fallbackBehavior :: Lens' IPSetForwardedIPConfig FallbackBehavior Source #
The match status to assign to the web request if the request doesn't have a valid IP address in the specified position.
If the specified header isn't present in the request, WAF doesn't apply the rule to the web request at all.
You can specify the following fallback behaviors:
MATCH
- Treat the web request as matching the rule statement. WAF applies the rule action to the request.NO_MATCH
- Treat the web request as not matching the rule statement.
iPSetForwardedIPConfig_position :: Lens' IPSetForwardedIPConfig ForwardedIPPosition Source #
The position in the header to search for the IP address. The header can
contain IP addresses of the original client and also of proxies. For
example, the header value could be 10.1.1.1, 127.0.0.0, 10.10.10.10
where the first IP address identifies the original client and the rest
identify proxies that the request went through.
The options for this setting are the following:
- FIRST - Inspect the first IP address in the list of IP addresses in the header. This is usually the client's original IP.
- LAST - Inspect the last IP address in the list of IP addresses in the header.
- ANY - Inspect all IP addresses in the header for a match. If the header contains more than 10 IP addresses, WAF inspects the last 10.
IPSetReferenceStatement
data IPSetReferenceStatement Source #
A rule statement used to detect web requests coming from particular IP addresses or address ranges. To use this, create an IPSet that specifies the addresses you want to detect, then use the ARN of that set in this statement. To create an IP set, see CreateIPSet.
Each IP set rule statement references an IP set. You create and maintain the set independent of your rules. This allows you to use the single set in multiple rules. When you update the referenced set, WAF automatically updates all rules that reference it.
See: newIPSetReferenceStatement
smart constructor.
IPSetReferenceStatement' | |
|
Instances
newIPSetReferenceStatement Source #
Create a value of IPSetReferenceStatement
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:iPSetForwardedIPConfig:IPSetReferenceStatement'
, iPSetReferenceStatement_iPSetForwardedIPConfig
- The configuration for inspecting IP addresses in an HTTP header that you
specify, instead of using the IP address that's reported by the web
request origin. Commonly, this is the X-Forwarded-For (XFF) header, but
you can specify any header name.
If the specified header isn't present in the request, WAF doesn't apply the rule to the web request at all.
$sel:arn:IPSetReferenceStatement'
, iPSetReferenceStatement_arn
- The Amazon Resource Name (ARN) of the IPSet that this statement
references.
iPSetReferenceStatement_iPSetForwardedIPConfig :: Lens' IPSetReferenceStatement (Maybe IPSetForwardedIPConfig) Source #
The configuration for inspecting IP addresses in an HTTP header that you specify, instead of using the IP address that's reported by the web request origin. Commonly, this is the X-Forwarded-For (XFF) header, but you can specify any header name.
If the specified header isn't present in the request, WAF doesn't apply the rule to the web request at all.
iPSetReferenceStatement_arn :: Lens' IPSetReferenceStatement Text Source #
The Amazon Resource Name (ARN) of the IPSet that this statement references.
IPSetSummary
data IPSetSummary Source #
High-level information about an IPSet, returned by operations like
create and list. This provides information like the ID, that you can use
to retrieve and manage an IPSet
, and the ARN, that you provide to the
IPSetReferenceStatement to use the address set in a Rule.
See: newIPSetSummary
smart constructor.
IPSetSummary' | |
|
Instances
newIPSetSummary :: IPSetSummary Source #
Create a value of IPSetSummary
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:arn:IPSetSummary'
, iPSetSummary_arn
- The Amazon Resource Name (ARN) of the entity.
$sel:description:IPSetSummary'
, iPSetSummary_description
- A description of the IP set that helps with identification.
$sel:id:IPSetSummary'
, iPSetSummary_id
- A unique identifier for the set. This ID is returned in the responses to
create and list commands. You provide it to operations like update and
delete.
$sel:lockToken:IPSetSummary'
, iPSetSummary_lockToken
- A token used for optimistic locking. WAF returns a token to your get
and list
requests, to mark the state of the entity at the time of the
request. To make changes to the entity associated with the token, you
provide the token to operations like update
and delete
. WAF uses the
token to ensure that no changes have been made to the entity since you
last retrieved it. If a change has been made, the update fails with a
WAFOptimisticLockException
. If this happens, perform another get
,
and use the new token returned by that operation.
$sel:name:IPSetSummary'
, iPSetSummary_name
- The name of the IP set. You cannot change the name of an IPSet
after
you create it.
iPSetSummary_arn :: Lens' IPSetSummary (Maybe Text) Source #
The Amazon Resource Name (ARN) of the entity.
iPSetSummary_description :: Lens' IPSetSummary (Maybe Text) Source #
A description of the IP set that helps with identification.
iPSetSummary_id :: Lens' IPSetSummary (Maybe Text) Source #
A unique identifier for the set. This ID is returned in the responses to create and list commands. You provide it to operations like update and delete.
iPSetSummary_lockToken :: Lens' IPSetSummary (Maybe Text) Source #
A token used for optimistic locking. WAF returns a token to your get
and list
requests, to mark the state of the entity at the time of the
request. To make changes to the entity associated with the token, you
provide the token to operations like update
and delete
. WAF uses the
token to ensure that no changes have been made to the entity since you
last retrieved it. If a change has been made, the update fails with a
WAFOptimisticLockException
. If this happens, perform another get
,
and use the new token returned by that operation.
iPSetSummary_name :: Lens' IPSetSummary (Maybe Text) Source #
The name of the IP set. You cannot change the name of an IPSet
after
you create it.
ImmunityTimeProperty
data ImmunityTimeProperty Source #
Used for CAPTCHA and challenge token settings. Determines how long a
CAPTCHA
or challenge timestamp remains valid after WAF updates it for
a successful CAPTCHA
or challenge response.
See: newImmunityTimeProperty
smart constructor.
ImmunityTimeProperty' | |
|
Instances
newImmunityTimeProperty Source #
Create a value of ImmunityTimeProperty
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:immunityTime:ImmunityTimeProperty'
, immunityTimeProperty_immunityTime
- The amount of time, in seconds, that a CAPTCHA
or challenge timestamp
is considered valid by WAF. The default setting is 300.
For the Challenge action, the minimum setting is 300.
immunityTimeProperty_immunityTime :: Lens' ImmunityTimeProperty Natural Source #
The amount of time, in seconds, that a CAPTCHA
or challenge timestamp
is considered valid by WAF. The default setting is 300.
For the Challenge action, the minimum setting is 300.
JsonBody
Inspect the body of the web request as JSON. The body immediately follows the request headers.
This is used to indicate the web request component to inspect, in the FieldToMatch specification.
Use the specifications in this object to indicate which parts of the JSON body to inspect using the rule's inspection criteria. WAF inspects only the parts of the JSON that result from the matches that you indicate.
Example JSON:
"JsonBody": { "MatchPattern": { "All": {} }, "MatchScope": "ALL" }
See: newJsonBody
smart constructor.
JsonBody' | |
|
Instances
Create a value of JsonBody
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:invalidFallbackBehavior:JsonBody'
, jsonBody_invalidFallbackBehavior
- What WAF should do if it fails to completely parse the JSON body. The
options are the following:
EVALUATE_AS_STRING
- Inspect the body as plain text. WAF applies the text transformations and inspection criteria that you defined for the JSON inspection to the body text string.MATCH
- Treat the web request as matching the rule statement. WAF applies the rule action to the request.NO_MATCH
- Treat the web request as not matching the rule statement.
If you don't provide this setting, WAF parses and evaluates the content only up to the first parsing failure that it encounters.
WAF does its best to parse the entire JSON body, but might be forced to stop for reasons such as invalid characters, duplicate keys, truncation, and any content whose root node isn't an object or an array.
WAF parses the JSON in the following examples as two valid key, value pairs:
- Missing comma:
{"key1":"value1""key2":"value2"}
- Missing colon:
{"key1":"value1","key2""value2"}
- Extra colons:
{"key1"::"value1","key2""value2"}
$sel:oversizeHandling:JsonBody'
, jsonBody_oversizeHandling
- What WAF should do if the body is larger than WAF can inspect. WAF does
not support inspecting the entire contents of the body of a web request
when the body exceeds 8 KB (8192 bytes). Only the first 8 KB of the
request body are forwarded to WAF by the underlying host service.
The options for oversize handling are the following:
CONTINUE
- Inspect the body normally, according to the rule inspection criteria.MATCH
- Treat the web request as matching the rule statement. WAF applies the rule action to the request.NO_MATCH
- Treat the web request as not matching the rule statement.
You can combine the MATCH
or NO_MATCH
settings for oversize handling
with your rule and web ACL action settings, so that you block any
request whose body is over 8 KB.
Default: CONTINUE
$sel:matchPattern:JsonBody'
, jsonBody_matchPattern
- The patterns to look for in the JSON body. WAF inspects the results of
these pattern matches against the rule inspection criteria.
$sel:matchScope:JsonBody'
, jsonBody_matchScope
- The parts of the JSON to match against using the MatchPattern
. If you
specify All
, WAF matches against keys and values.
jsonBody_invalidFallbackBehavior :: Lens' JsonBody (Maybe BodyParsingFallbackBehavior) Source #
What WAF should do if it fails to completely parse the JSON body. The options are the following:
EVALUATE_AS_STRING
- Inspect the body as plain text. WAF applies the text transformations and inspection criteria that you defined for the JSON inspection to the body text string.MATCH
- Treat the web request as matching the rule statement. WAF applies the rule action to the request.NO_MATCH
- Treat the web request as not matching the rule statement.
If you don't provide this setting, WAF parses and evaluates the content only up to the first parsing failure that it encounters.
WAF does its best to parse the entire JSON body, but might be forced to stop for reasons such as invalid characters, duplicate keys, truncation, and any content whose root node isn't an object or an array.
WAF parses the JSON in the following examples as two valid key, value pairs:
- Missing comma:
{"key1":"value1""key2":"value2"}
- Missing colon:
{"key1":"value1","key2""value2"}
- Extra colons:
{"key1"::"value1","key2""value2"}
jsonBody_oversizeHandling :: Lens' JsonBody (Maybe OversizeHandling) Source #
What WAF should do if the body is larger than WAF can inspect. WAF does not support inspecting the entire contents of the body of a web request when the body exceeds 8 KB (8192 bytes). Only the first 8 KB of the request body are forwarded to WAF by the underlying host service.
The options for oversize handling are the following:
CONTINUE
- Inspect the body normally, according to the rule inspection criteria.MATCH
- Treat the web request as matching the rule statement. WAF applies the rule action to the request.NO_MATCH
- Treat the web request as not matching the rule statement.
You can combine the MATCH
or NO_MATCH
settings for oversize handling
with your rule and web ACL action settings, so that you block any
request whose body is over 8 KB.
Default: CONTINUE
jsonBody_matchPattern :: Lens' JsonBody JsonMatchPattern Source #
The patterns to look for in the JSON body. WAF inspects the results of these pattern matches against the rule inspection criteria.
jsonBody_matchScope :: Lens' JsonBody JsonMatchScope Source #
The parts of the JSON to match against using the MatchPattern
. If you
specify All
, WAF matches against keys and values.
JsonMatchPattern
data JsonMatchPattern Source #
The patterns to look for in the JSON body. WAF inspects the results of
these pattern matches against the rule inspection criteria. This is used
with the FieldToMatch option JsonBody
.
See: newJsonMatchPattern
smart constructor.
JsonMatchPattern' | |
|
Instances
newJsonMatchPattern :: JsonMatchPattern Source #
Create a value of JsonMatchPattern
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:all:JsonMatchPattern'
, jsonMatchPattern_all
- Match all of the elements. See also MatchScope
in JsonBody.
You must specify either this setting or the IncludedPaths
setting, but
not both.
$sel:includedPaths:JsonMatchPattern'
, jsonMatchPattern_includedPaths
- Match only the specified include paths. See also MatchScope
in
JsonBody.
Provide the include paths using JSON Pointer syntax. For example,
"IncludedPaths": ["/dogs/0/name", "/dogs/1/name"]
. For
information about this syntax, see the Internet Engineering Task Force
(IETF) documentation
JavaScript Object Notation (JSON) Pointer.
You must specify either this setting or the All
setting, but not both.
Don't use this option to include all paths. Instead, use the All
setting.
jsonMatchPattern_all :: Lens' JsonMatchPattern (Maybe All) Source #
Match all of the elements. See also MatchScope
in JsonBody.
You must specify either this setting or the IncludedPaths
setting, but
not both.
jsonMatchPattern_includedPaths :: Lens' JsonMatchPattern (Maybe (NonEmpty Text)) Source #
Match only the specified include paths. See also MatchScope
in
JsonBody.
Provide the include paths using JSON Pointer syntax. For example,
"IncludedPaths": ["/dogs/0/name", "/dogs/1/name"]
. For
information about this syntax, see the Internet Engineering Task Force
(IETF) documentation
JavaScript Object Notation (JSON) Pointer.
You must specify either this setting or the All
setting, but not both.
Don't use this option to include all paths. Instead, use the All
setting.
Label
A single label container. This is used as an element of a label array in
multiple contexts, for example, in RuleLabels
inside a Rule and in
Labels
inside a SampledHTTPRequest.
See: newLabel
smart constructor.
Instances
FromJSON Label Source # | |
ToJSON Label Source # | |
Defined in Amazonka.WAFV2.Types.Label | |
Generic Label Source # | |
Read Label Source # | |
Show Label Source # | |
NFData Label Source # | |
Defined in Amazonka.WAFV2.Types.Label | |
Eq Label Source # | |
Hashable Label Source # | |
Defined in Amazonka.WAFV2.Types.Label | |
type Rep Label Source # | |
Defined in Amazonka.WAFV2.Types.Label |
Create a value of Label
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:name:Label'
, label_name
- The label string.
LabelMatchStatement
data LabelMatchStatement Source #
A rule statement to match against labels that have been added to the web request by rules that have already run in the web ACL.
The label match statement provides the label or namespace string to search for. The label string can represent a part or all of the fully qualified label name that had been added to the web request. Fully qualified labels have a prefix, optional namespaces, and label name. The prefix identifies the rule group or web ACL context of the rule that added the label. If you do not provide the fully qualified name in your label match string, WAF performs the search for labels that were added in the same context as the label match statement.
See: newLabelMatchStatement
smart constructor.
LabelMatchStatement' | |
|
Instances
newLabelMatchStatement Source #
Create a value of LabelMatchStatement
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:scope:LabelMatchStatement'
, labelMatchStatement_scope
- Specify whether you want to match using the label name or just the
namespace.
$sel:key:LabelMatchStatement'
, labelMatchStatement_key
- The string to match against. The setting you provide for this depends on
the match statement's Scope
setting:
- If the
Scope
indicatesLABEL
, then this specification must include the name and can include any number of preceding namespace specifications and prefix up to providing the fully qualified label name. - If the
Scope
indicatesNAMESPACE
, then this specification can include any number of contiguous namespace strings, and can include the entire label namespace prefix from the rule group or web ACL where the label originates.
Labels are case sensitive and components of a label must be separated by
colon, for example NS1:NS2:name
.
labelMatchStatement_scope :: Lens' LabelMatchStatement LabelMatchScope Source #
Specify whether you want to match using the label name or just the namespace.
labelMatchStatement_key :: Lens' LabelMatchStatement Text Source #
The string to match against. The setting you provide for this depends on
the match statement's Scope
setting:
- If the
Scope
indicatesLABEL
, then this specification must include the name and can include any number of preceding namespace specifications and prefix up to providing the fully qualified label name. - If the
Scope
indicatesNAMESPACE
, then this specification can include any number of contiguous namespace strings, and can include the entire label namespace prefix from the rule group or web ACL where the label originates.
Labels are case sensitive and components of a label must be separated by
colon, for example NS1:NS2:name
.
LabelNameCondition
data LabelNameCondition Source #
A single label name condition for a Condition in a logging filter.
See: newLabelNameCondition
smart constructor.
LabelNameCondition' | |
|
Instances
newLabelNameCondition Source #
Create a value of LabelNameCondition
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:labelName:LabelNameCondition'
, labelNameCondition_labelName
- The label name that a log record must contain in order to meet the
condition. This must be a fully qualified label name. Fully qualified
labels have a prefix, optional namespaces, and label name. The prefix
identifies the rule group or web ACL context of the rule that added the
label.
labelNameCondition_labelName :: Lens' LabelNameCondition Text Source #
The label name that a log record must contain in order to meet the condition. This must be a fully qualified label name. Fully qualified labels have a prefix, optional namespaces, and label name. The prefix identifies the rule group or web ACL context of the rule that added the label.
LabelSummary
data LabelSummary Source #
List of labels used by one or more of the rules of a RuleGroup. This summary object is used for the following rule group lists:
AvailableLabels
- Labels that rules add to matching requests. These labels are defined in theRuleLabels
for a Rule.ConsumedLabels
- Labels that rules match against. These labels are defined in aLabelMatchStatement
specification, in the Statement definition of a rule.
See: newLabelSummary
smart constructor.
Instances
newLabelSummary :: LabelSummary Source #
Create a value of LabelSummary
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:name:LabelSummary'
, labelSummary_name
- An individual label specification.
labelSummary_name :: Lens' LabelSummary (Maybe Text) Source #
An individual label specification.
LoggingConfiguration
data LoggingConfiguration Source #
Defines an association between logging destinations and a web ACL resource, for logging from WAF. As part of the association, you can specify parts of the standard logging fields to keep out of the logs and you can specify filters so that you log only a subset of the logging records.
You can define one logging destination per web ACL.
You can access information about the traffic that WAF inspects using the following steps:
Create your logging destination. You can use an Amazon CloudWatch Logs log group, an Amazon Simple Storage Service (Amazon S3) bucket, or an Amazon Kinesis Data Firehose.
The name that you give the destination must start with
aws-waf-logs-
. Depending on the type of destination, you might need to configure additional settings or permissions.For configuration requirements and pricing information for each destination type, see Logging web ACL traffic in the WAF Developer Guide.
- Associate your logging destination to your web ACL using a
PutLoggingConfiguration
request.
When you successfully enable logging using a PutLoggingConfiguration
request, WAF creates an additional role or policy that is required to
write logs to the logging destination. For an Amazon CloudWatch Logs log
group, WAF creates a resource policy on the log group. For an Amazon S3
bucket, WAF creates a bucket policy. For an Amazon Kinesis Data
Firehose, WAF creates a service-linked role.
For additional information about web ACL logging, see Logging web ACL traffic information in the WAF Developer Guide.
See: newLoggingConfiguration
smart constructor.
LoggingConfiguration' | |
|
Instances
newLoggingConfiguration Source #
:: Text | |
-> NonEmpty Text | |
-> LoggingConfiguration |
Create a value of LoggingConfiguration
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:loggingFilter:LoggingConfiguration'
, loggingConfiguration_loggingFilter
- Filtering that specifies which web requests are kept in the logs and
which are dropped. You can filter on the rule action and on the web
request labels that were applied by matching rules during web ACL
evaluation.
$sel:managedByFirewallManager:LoggingConfiguration'
, loggingConfiguration_managedByFirewallManager
- Indicates whether the logging configuration was created by Firewall
Manager, as part of an WAF policy configuration. If true, only Firewall
Manager can modify or delete the configuration.
$sel:redactedFields:LoggingConfiguration'
, loggingConfiguration_redactedFields
- The parts of the request that you want to keep out of the logs. For
example, if you redact the SingleHeader
field, the HEADER
field in
the logs will be xxx
.
You can specify only the following fields for redaction: UriPath
,
QueryString
, SingleHeader
, Method
, and JsonBody
.
$sel:resourceArn:LoggingConfiguration'
, loggingConfiguration_resourceArn
- The Amazon Resource Name (ARN) of the web ACL that you want to associate
with LogDestinationConfigs
.
$sel:logDestinationConfigs:LoggingConfiguration'
, loggingConfiguration_logDestinationConfigs
- The logging destination configuration that you want to associate with
the web ACL.
You can associate one logging destination to a web ACL.
loggingConfiguration_loggingFilter :: Lens' LoggingConfiguration (Maybe LoggingFilter) Source #
Filtering that specifies which web requests are kept in the logs and which are dropped. You can filter on the rule action and on the web request labels that were applied by matching rules during web ACL evaluation.
loggingConfiguration_managedByFirewallManager :: Lens' LoggingConfiguration (Maybe Bool) Source #
Indicates whether the logging configuration was created by Firewall Manager, as part of an WAF policy configuration. If true, only Firewall Manager can modify or delete the configuration.
loggingConfiguration_redactedFields :: Lens' LoggingConfiguration (Maybe [FieldToMatch]) Source #
The parts of the request that you want to keep out of the logs. For
example, if you redact the SingleHeader
field, the HEADER
field in
the logs will be xxx
.
You can specify only the following fields for redaction: UriPath
,
QueryString
, SingleHeader
, Method
, and JsonBody
.
loggingConfiguration_resourceArn :: Lens' LoggingConfiguration Text Source #
The Amazon Resource Name (ARN) of the web ACL that you want to associate
with LogDestinationConfigs
.
loggingConfiguration_logDestinationConfigs :: Lens' LoggingConfiguration (NonEmpty Text) Source #
The logging destination configuration that you want to associate with the web ACL.
You can associate one logging destination to a web ACL.
LoggingFilter
data LoggingFilter Source #
Filtering that specifies which web requests are kept in the logs and which are dropped, defined for a web ACL's LoggingConfiguration.
You can filter on the rule action and on the web request labels that were applied by matching rules during web ACL evaluation.
See: newLoggingFilter
smart constructor.
LoggingFilter' | |
|
Instances
Create a value of LoggingFilter
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:filters:LoggingFilter'
, loggingFilter_filters
- The filters that you want to apply to the logs.
$sel:defaultBehavior:LoggingFilter'
, loggingFilter_defaultBehavior
- Default handling for logs that don't match any of the specified
filtering conditions.
loggingFilter_filters :: Lens' LoggingFilter (NonEmpty Filter) Source #
The filters that you want to apply to the logs.
loggingFilter_defaultBehavior :: Lens' LoggingFilter FilterBehavior Source #
Default handling for logs that don't match any of the specified filtering conditions.
ManagedRuleGroupConfig
data ManagedRuleGroupConfig Source #
Additional information that's used by a managed rule group. Many managed rule groups don't require this.
Use the AWSManagedRulesBotControlRuleSet
configuration object to
configure the protection level that you want the Bot Control rule group
to use.
For example specifications, see the examples section of CreateWebACL.
See: newManagedRuleGroupConfig
smart constructor.
ManagedRuleGroupConfig' | |
|
Instances
newManagedRuleGroupConfig :: ManagedRuleGroupConfig Source #
Create a value of ManagedRuleGroupConfig
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:aWSManagedRulesBotControlRuleSet:ManagedRuleGroupConfig'
, managedRuleGroupConfig_aWSManagedRulesBotControlRuleSet
- Additional configuration for using the Bot Control managed rule group.
Use this to specify the inspection level that you want to use. For
information about using the Bot Control managed rule group, see
WAF Bot Control rule group
and
WAF Bot Control
in the WAF Developer Guide.
$sel:loginPath:ManagedRuleGroupConfig'
, managedRuleGroupConfig_loginPath
- The path of the login endpoint for your application. For example, for
the URL https://example.com/web/login
, you would provide the path
/web/login
.
$sel:passwordField:ManagedRuleGroupConfig'
, managedRuleGroupConfig_passwordField
- Details about your login page password field.
$sel:payloadType:ManagedRuleGroupConfig'
, managedRuleGroupConfig_payloadType
- The payload type for your login endpoint, either JSON or form encoded.
$sel:usernameField:ManagedRuleGroupConfig'
, managedRuleGroupConfig_usernameField
- Details about your login page username field.
managedRuleGroupConfig_aWSManagedRulesBotControlRuleSet :: Lens' ManagedRuleGroupConfig (Maybe AWSManagedRulesBotControlRuleSet) Source #
Additional configuration for using the Bot Control managed rule group. Use this to specify the inspection level that you want to use. For information about using the Bot Control managed rule group, see WAF Bot Control rule group and WAF Bot Control in the WAF Developer Guide.
managedRuleGroupConfig_loginPath :: Lens' ManagedRuleGroupConfig (Maybe Text) Source #
The path of the login endpoint for your application. For example, for
the URL https://example.com/web/login
, you would provide the path
/web/login
.
managedRuleGroupConfig_passwordField :: Lens' ManagedRuleGroupConfig (Maybe PasswordField) Source #
Details about your login page password field.
managedRuleGroupConfig_payloadType :: Lens' ManagedRuleGroupConfig (Maybe PayloadType) Source #
The payload type for your login endpoint, either JSON or form encoded.
managedRuleGroupConfig_usernameField :: Lens' ManagedRuleGroupConfig (Maybe UsernameField) Source #
Details about your login page username field.
ManagedRuleGroupStatement
data ManagedRuleGroupStatement Source #
A rule statement used to run the rules that are defined in a managed rule group. To use this, provide the vendor name and the name of the rule group in this statement. You can retrieve the required names by calling ListAvailableManagedRuleGroups.
You cannot nest a ManagedRuleGroupStatement
, for example for use
inside a NotStatement
or OrStatement
. It can only be referenced as a
top-level statement within a rule.
You are charged additional fees when you use the WAF Bot Control managed
rule group AWSManagedRulesBotControlRuleSet
or the WAF Fraud Control
account takeover prevention (ATP) managed rule group
AWSManagedRulesATPRuleSet
. For more information, see
WAF Pricing.
See: newManagedRuleGroupStatement
smart constructor.
ManagedRuleGroupStatement' | |
|
Instances
newManagedRuleGroupStatement Source #
:: Text | |
-> Text | |
-> ManagedRuleGroupStatement |
Create a value of ManagedRuleGroupStatement
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:excludedRules:ManagedRuleGroupStatement'
, managedRuleGroupStatement_excludedRules
- Rules in the referenced rule group whose actions are set to Count
.
Instead of this option, use RuleActionOverrides
. It accepts any valid
action setting, including Count
.
$sel:managedRuleGroupConfigs:ManagedRuleGroupStatement'
, managedRuleGroupStatement_managedRuleGroupConfigs
- Additional information that's used by a managed rule group. Many
managed rule groups don't require this.
Use the AWSManagedRulesBotControlRuleSet
configuration object to
configure the protection level that you want the Bot Control rule group
to use.
$sel:ruleActionOverrides:ManagedRuleGroupStatement'
, managedRuleGroupStatement_ruleActionOverrides
- Action settings to use in the place of the rule actions that are
configured inside the rule group. You specify one override for each rule
whose action you want to change.
You can use overrides for testing, for example you can override all of
rule actions to Count
and then monitor the resulting count metrics to
understand how the rule group would handle your web traffic. You can
also permanently override some or all actions, to modify how the rule
group manages your web traffic.
$sel:scopeDownStatement:ManagedRuleGroupStatement'
, managedRuleGroupStatement_scopeDownStatement
- An optional nested statement that narrows the scope of the web requests
that are evaluated by the managed rule group. Requests are only
evaluated by the rule group if they match the scope-down statement. You
can use any nestable Statement in the scope-down statement, and you can
nest statements at any level, the same as you can for a rule statement.
$sel:version:ManagedRuleGroupStatement'
, managedRuleGroupStatement_version
- The version of the managed rule group to use. If you specify this, the
version setting is fixed until you change it. If you don't specify
this, WAF uses the vendor's default version, and then keeps the version
at the vendor's default when the vendor updates the managed rule group
settings.
$sel:vendorName:ManagedRuleGroupStatement'
, managedRuleGroupStatement_vendorName
- The name of the managed rule group vendor. You use this, along with the
rule group name, to identify the rule group.
RuleActionOverride
, managedRuleGroupStatement_name
- The name of the managed rule group. You use this, along with the vendor
name, to identify the rule group.
managedRuleGroupStatement_excludedRules :: Lens' ManagedRuleGroupStatement (Maybe [ExcludedRule]) Source #
Rules in the referenced rule group whose actions are set to Count
.
Instead of this option, use RuleActionOverrides
. It accepts any valid
action setting, including Count
.
managedRuleGroupStatement_managedRuleGroupConfigs :: Lens' ManagedRuleGroupStatement (Maybe (NonEmpty ManagedRuleGroupConfig)) Source #
Additional information that's used by a managed rule group. Many managed rule groups don't require this.
Use the AWSManagedRulesBotControlRuleSet
configuration object to
configure the protection level that you want the Bot Control rule group
to use.
managedRuleGroupStatement_ruleActionOverrides :: Lens' ManagedRuleGroupStatement (Maybe (NonEmpty RuleActionOverride)) Source #
Action settings to use in the place of the rule actions that are configured inside the rule group. You specify one override for each rule whose action you want to change.
You can use overrides for testing, for example you can override all of
rule actions to Count
and then monitor the resulting count metrics to
understand how the rule group would handle your web traffic. You can
also permanently override some or all actions, to modify how the rule
group manages your web traffic.
managedRuleGroupStatement_scopeDownStatement :: Lens' ManagedRuleGroupStatement (Maybe Statement) Source #
An optional nested statement that narrows the scope of the web requests that are evaluated by the managed rule group. Requests are only evaluated by the rule group if they match the scope-down statement. You can use any nestable Statement in the scope-down statement, and you can nest statements at any level, the same as you can for a rule statement.
managedRuleGroupStatement_version :: Lens' ManagedRuleGroupStatement (Maybe Text) Source #
The version of the managed rule group to use. If you specify this, the version setting is fixed until you change it. If you don't specify this, WAF uses the vendor's default version, and then keeps the version at the vendor's default when the vendor updates the managed rule group settings.
managedRuleGroupStatement_vendorName :: Lens' ManagedRuleGroupStatement Text Source #
The name of the managed rule group vendor. You use this, along with the rule group name, to identify the rule group.
managedRuleGroupStatement_name :: Lens' ManagedRuleGroupStatement Text Source #
The name of the managed rule group. You use this, along with the vendor name, to identify the rule group.
ManagedRuleGroupSummary
data ManagedRuleGroupSummary Source #
High-level information about a managed rule group, returned by ListAvailableManagedRuleGroups. This provides information like the name and vendor name, that you provide when you add a ManagedRuleGroupStatement to a web ACL. Managed rule groups include Amazon Web Services Managed Rules rule groups, which are free of charge to WAF customers, and Amazon Web Services Marketplace managed rule groups, which you can subscribe to through Amazon Web Services Marketplace.
See: newManagedRuleGroupSummary
smart constructor.
ManagedRuleGroupSummary' | |
|
Instances
newManagedRuleGroupSummary :: ManagedRuleGroupSummary Source #
Create a value of ManagedRuleGroupSummary
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:description:ManagedRuleGroupSummary'
, managedRuleGroupSummary_description
- The description of the managed rule group, provided by Amazon Web
Services Managed Rules or the Amazon Web Services Marketplace seller who
manages it.
$sel:name:ManagedRuleGroupSummary'
, managedRuleGroupSummary_name
- The name of the managed rule group. You use this, along with the vendor
name, to identify the rule group.
$sel:vendorName:ManagedRuleGroupSummary'
, managedRuleGroupSummary_vendorName
- The name of the managed rule group vendor. You use this, along with the
rule group name, to identify the rule group.
$sel:versioningSupported:ManagedRuleGroupSummary'
, managedRuleGroupSummary_versioningSupported
- Indicates whether the managed rule group is versioned. If it is, you can
retrieve the versions list by calling
ListAvailableManagedRuleGroupVersions.
managedRuleGroupSummary_description :: Lens' ManagedRuleGroupSummary (Maybe Text) Source #
The description of the managed rule group, provided by Amazon Web Services Managed Rules or the Amazon Web Services Marketplace seller who manages it.
managedRuleGroupSummary_name :: Lens' ManagedRuleGroupSummary (Maybe Text) Source #
The name of the managed rule group. You use this, along with the vendor name, to identify the rule group.
managedRuleGroupSummary_vendorName :: Lens' ManagedRuleGroupSummary (Maybe Text) Source #
The name of the managed rule group vendor. You use this, along with the rule group name, to identify the rule group.
managedRuleGroupSummary_versioningSupported :: Lens' ManagedRuleGroupSummary (Maybe Bool) Source #
Indicates whether the managed rule group is versioned. If it is, you can retrieve the versions list by calling ListAvailableManagedRuleGroupVersions.
ManagedRuleGroupVersion
data ManagedRuleGroupVersion Source #
Describes a single version of a managed rule group.
See: newManagedRuleGroupVersion
smart constructor.
Instances
newManagedRuleGroupVersion :: ManagedRuleGroupVersion Source #
Create a value of ManagedRuleGroupVersion
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:lastUpdateTimestamp:ManagedRuleGroupVersion'
, managedRuleGroupVersion_lastUpdateTimestamp
- The date and time that the managed rule group owner updated the rule
group version information.
$sel:name:ManagedRuleGroupVersion'
, managedRuleGroupVersion_name
- The version name.
managedRuleGroupVersion_lastUpdateTimestamp :: Lens' ManagedRuleGroupVersion (Maybe UTCTime) Source #
The date and time that the managed rule group owner updated the rule group version information.
managedRuleGroupVersion_name :: Lens' ManagedRuleGroupVersion (Maybe Text) Source #
The version name.
ManagedRuleSet
data ManagedRuleSet Source #
A set of rules that is managed by Amazon Web Services and Amazon Web Services Marketplace sellers to provide versioned managed rule groups for customers of WAF.
This is intended for use only by vendors of managed rule sets. Vendors are Amazon Web Services and Amazon Web Services Marketplace sellers.
Vendors, you can use the managed rule set APIs to provide controlled
rollout of your versioned managed rule group offerings for your
customers. The APIs are ListManagedRuleSets
, GetManagedRuleSet
,
PutManagedRuleSetVersions
, and
UpdateManagedRuleSetVersionExpiryDate
.
See: newManagedRuleSet
smart constructor.
ManagedRuleSet' | |
|
Instances
:: Text | |
-> Text | |
-> Text | |
-> ManagedRuleSet |
Create a value of ManagedRuleSet
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:description:ManagedRuleSet'
, managedRuleSet_description
- A description of the set that helps with identification.
$sel:labelNamespace:ManagedRuleSet'
, managedRuleSet_labelNamespace
- The label namespace prefix for the managed rule groups that are offered
to customers from this managed rule set. All labels that are added by
rules in the managed rule group have this prefix.
The syntax for the label namespace prefix for a managed rule group is the following:
awswaf:managed:<vendor>:<rule group name>
:When a rule with a label matches a web request, WAF adds the fully qualified label to the request. A fully qualified label is made up of the label namespace from the rule group or web ACL where the rule is defined and the label from the rule, separated by a colon:
<label namespace>:<label from rule>
$sel:publishedVersions:ManagedRuleSet'
, managedRuleSet_publishedVersions
- The versions of this managed rule set that are available for use by
customers.
$sel:recommendedVersion:ManagedRuleSet'
, managedRuleSet_recommendedVersion
- The version that you would like your customers to use.
$sel:name:ManagedRuleSet'
, managedRuleSet_name
- The name of the managed rule set. You use this, along with the rule set
ID, to identify the rule set.
This name is assigned to the corresponding managed rule group, which your customers can access and use.
$sel:id:ManagedRuleSet'
, managedRuleSet_id
- A unique identifier for the managed rule set. The ID is returned in the
responses to commands like list
. You provide it to operations like
get
and update
.
$sel:arn:ManagedRuleSet'
, managedRuleSet_arn
- The Amazon Resource Name (ARN) of the entity.
managedRuleSet_description :: Lens' ManagedRuleSet (Maybe Text) Source #
A description of the set that helps with identification.
managedRuleSet_labelNamespace :: Lens' ManagedRuleSet (Maybe Text) Source #
The label namespace prefix for the managed rule groups that are offered to customers from this managed rule set. All labels that are added by rules in the managed rule group have this prefix.
The syntax for the label namespace prefix for a managed rule group is the following:
awswaf:managed:<vendor>:<rule group name>
:When a rule with a label matches a web request, WAF adds the fully qualified label to the request. A fully qualified label is made up of the label namespace from the rule group or web ACL where the rule is defined and the label from the rule, separated by a colon:
<label namespace>:<label from rule>
managedRuleSet_publishedVersions :: Lens' ManagedRuleSet (Maybe (HashMap Text ManagedRuleSetVersion)) Source #
The versions of this managed rule set that are available for use by customers.
managedRuleSet_recommendedVersion :: Lens' ManagedRuleSet (Maybe Text) Source #
The version that you would like your customers to use.
managedRuleSet_name :: Lens' ManagedRuleSet Text Source #
The name of the managed rule set. You use this, along with the rule set ID, to identify the rule set.
This name is assigned to the corresponding managed rule group, which your customers can access and use.
managedRuleSet_id :: Lens' ManagedRuleSet Text Source #
A unique identifier for the managed rule set. The ID is returned in the
responses to commands like list
. You provide it to operations like
get
and update
.
managedRuleSet_arn :: Lens' ManagedRuleSet Text Source #
The Amazon Resource Name (ARN) of the entity.
ManagedRuleSetSummary
data ManagedRuleSetSummary Source #
High-level information for a managed rule set.
This is intended for use only by vendors of managed rule sets. Vendors are Amazon Web Services and Amazon Web Services Marketplace sellers.
Vendors, you can use the managed rule set APIs to provide controlled
rollout of your versioned managed rule group offerings for your
customers. The APIs are ListManagedRuleSets
, GetManagedRuleSet
,
PutManagedRuleSetVersions
, and
UpdateManagedRuleSetVersionExpiryDate
.
See: newManagedRuleSetSummary
smart constructor.
ManagedRuleSetSummary' | |
|
Instances
newManagedRuleSetSummary :: ManagedRuleSetSummary Source #
Create a value of ManagedRuleSetSummary
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:arn:ManagedRuleSetSummary'
, managedRuleSetSummary_arn
- The Amazon Resource Name (ARN) of the entity.
$sel:description:ManagedRuleSetSummary'
, managedRuleSetSummary_description
- A description of the set that helps with identification.
$sel:id:ManagedRuleSetSummary'
, managedRuleSetSummary_id
- A unique identifier for the managed rule set. The ID is returned in the
responses to commands like list
. You provide it to operations like
get
and update
.
$sel:labelNamespace:ManagedRuleSetSummary'
, managedRuleSetSummary_labelNamespace
- The label namespace prefix for the managed rule groups that are offered
to customers from this managed rule set. All labels that are added by
rules in the managed rule group have this prefix.
The syntax for the label namespace prefix for a managed rule group is the following:
awswaf:managed:<vendor>:<rule group name>
:When a rule with a label matches a web request, WAF adds the fully qualified label to the request. A fully qualified label is made up of the label namespace from the rule group or web ACL where the rule is defined and the label from the rule, separated by a colon:
<label namespace>:<label from rule>
$sel:lockToken:ManagedRuleSetSummary'
, managedRuleSetSummary_lockToken
- A token used for optimistic locking. WAF returns a token to your get
and list
requests, to mark the state of the entity at the time of the
request. To make changes to the entity associated with the token, you
provide the token to operations like update
and delete
. WAF uses the
token to ensure that no changes have been made to the entity since you
last retrieved it. If a change has been made, the update fails with a
WAFOptimisticLockException
. If this happens, perform another get
,
and use the new token returned by that operation.
$sel:name:ManagedRuleSetSummary'
, managedRuleSetSummary_name
- The name of the managed rule set. You use this, along with the rule set
ID, to identify the rule set.
This name is assigned to the corresponding managed rule group, which your customers can access and use.
managedRuleSetSummary_arn :: Lens' ManagedRuleSetSummary (Maybe Text) Source #
The Amazon Resource Name (ARN) of the entity.
managedRuleSetSummary_description :: Lens' ManagedRuleSetSummary (Maybe Text) Source #
A description of the set that helps with identification.
managedRuleSetSummary_id :: Lens' ManagedRuleSetSummary (Maybe Text) Source #
A unique identifier for the managed rule set. The ID is returned in the
responses to commands like list
. You provide it to operations like
get
and update
.
managedRuleSetSummary_labelNamespace :: Lens' ManagedRuleSetSummary (Maybe Text) Source #
The label namespace prefix for the managed rule groups that are offered to customers from this managed rule set. All labels that are added by rules in the managed rule group have this prefix.
The syntax for the label namespace prefix for a managed rule group is the following:
awswaf:managed:<vendor>:<rule group name>
:When a rule with a label matches a web request, WAF adds the fully qualified label to the request. A fully qualified label is made up of the label namespace from the rule group or web ACL where the rule is defined and the label from the rule, separated by a colon:
<label namespace>:<label from rule>
managedRuleSetSummary_lockToken :: Lens' ManagedRuleSetSummary (Maybe Text) Source #
A token used for optimistic locking. WAF returns a token to your get
and list
requests, to mark the state of the entity at the time of the
request. To make changes to the entity associated with the token, you
provide the token to operations like update
and delete
. WAF uses the
token to ensure that no changes have been made to the entity since you
last retrieved it. If a change has been made, the update fails with a
WAFOptimisticLockException
. If this happens, perform another get
,
and use the new token returned by that operation.
managedRuleSetSummary_name :: Lens' ManagedRuleSetSummary (Maybe Text) Source #
The name of the managed rule set. You use this, along with the rule set ID, to identify the rule set.
This name is assigned to the corresponding managed rule group, which your customers can access and use.
ManagedRuleSetVersion
data ManagedRuleSetVersion Source #
Information for a single version of a managed rule set.
This is intended for use only by vendors of managed rule sets. Vendors are Amazon Web Services and Amazon Web Services Marketplace sellers.
Vendors, you can use the managed rule set APIs to provide controlled
rollout of your versioned managed rule group offerings for your
customers. The APIs are ListManagedRuleSets
, GetManagedRuleSet
,
PutManagedRuleSetVersions
, and
UpdateManagedRuleSetVersionExpiryDate
.
See: newManagedRuleSetVersion
smart constructor.
ManagedRuleSetVersion' | |
|
Instances
newManagedRuleSetVersion :: ManagedRuleSetVersion Source #
Create a value of ManagedRuleSetVersion
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:associatedRuleGroupArn:ManagedRuleSetVersion'
, managedRuleSetVersion_associatedRuleGroupArn
- The Amazon Resource Name (ARN) of the vendor rule group that's used to
define the published version of your managed rule group.
$sel:capacity:ManagedRuleSetVersion'
, managedRuleSetVersion_capacity
- The web ACL capacity units (WCUs) required for this rule group.
WAF uses WCUs to calculate and control the operating resources that are used to run your rules, rule groups, and web ACLs. WAF calculates capacity differently for each rule type, to reflect the relative cost of each rule. Simple rules that cost little to run use fewer WCUs than more complex rules that use more processing power. Rule group capacity is fixed at creation, which helps users plan their web ACL WCU usage when they use a rule group. The WCU limit for web ACLs is 1,500.
$sel:expiryTimestamp:ManagedRuleSetVersion'
, managedRuleSetVersion_expiryTimestamp
- The time that this version is set to expire.
Times are in Coordinated Universal Time (UTC) format. UTC format includes the special designator, Z. For example, "2016-09-27T14:50Z".
$sel:forecastedLifetime:ManagedRuleSetVersion'
, managedRuleSetVersion_forecastedLifetime
- The amount of time you expect this version of your managed rule group to
last, in days.
$sel:lastUpdateTimestamp:ManagedRuleSetVersion'
, managedRuleSetVersion_lastUpdateTimestamp
- The last time that you updated this version.
Times are in Coordinated Universal Time (UTC) format. UTC format includes the special designator, Z. For example, "2016-09-27T14:50Z".
$sel:publishTimestamp:ManagedRuleSetVersion'
, managedRuleSetVersion_publishTimestamp
- The time that you first published this version.
Times are in Coordinated Universal Time (UTC) format. UTC format includes the special designator, Z. For example, "2016-09-27T14:50Z".
managedRuleSetVersion_associatedRuleGroupArn :: Lens' ManagedRuleSetVersion (Maybe Text) Source #
The Amazon Resource Name (ARN) of the vendor rule group that's used to define the published version of your managed rule group.
managedRuleSetVersion_capacity :: Lens' ManagedRuleSetVersion (Maybe Natural) Source #
The web ACL capacity units (WCUs) required for this rule group.
WAF uses WCUs to calculate and control the operating resources that are used to run your rules, rule groups, and web ACLs. WAF calculates capacity differently for each rule type, to reflect the relative cost of each rule. Simple rules that cost little to run use fewer WCUs than more complex rules that use more processing power. Rule group capacity is fixed at creation, which helps users plan their web ACL WCU usage when they use a rule group. The WCU limit for web ACLs is 1,500.
managedRuleSetVersion_expiryTimestamp :: Lens' ManagedRuleSetVersion (Maybe UTCTime) Source #
The time that this version is set to expire.
Times are in Coordinated Universal Time (UTC) format. UTC format includes the special designator, Z. For example, "2016-09-27T14:50Z".
managedRuleSetVersion_forecastedLifetime :: Lens' ManagedRuleSetVersion (Maybe Natural) Source #
The amount of time you expect this version of your managed rule group to last, in days.
managedRuleSetVersion_lastUpdateTimestamp :: Lens' ManagedRuleSetVersion (Maybe UTCTime) Source #
The last time that you updated this version.
Times are in Coordinated Universal Time (UTC) format. UTC format includes the special designator, Z. For example, "2016-09-27T14:50Z".
managedRuleSetVersion_publishTimestamp :: Lens' ManagedRuleSetVersion (Maybe UTCTime) Source #
The time that you first published this version.
Times are in Coordinated Universal Time (UTC) format. UTC format includes the special designator, Z. For example, "2016-09-27T14:50Z".
Method
Inspect the HTTP method of the web request. The method indicates the type of operation that the request is asking the origin to perform.
This is used only in the FieldToMatch specification for some web request component types.
JSON specification: "Method": {}
See: newMethod
smart constructor.
Instances
FromJSON Method Source # | |
ToJSON Method Source # | |
Defined in Amazonka.WAFV2.Types.Method | |
Generic Method Source # | |
Read Method Source # | |
Show Method Source # | |
NFData Method Source # | |
Defined in Amazonka.WAFV2.Types.Method | |
Eq Method Source # | |
Hashable Method Source # | |
Defined in Amazonka.WAFV2.Types.Method | |
type Rep Method Source # | |
Create a value of Method
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
MobileSdkRelease
data MobileSdkRelease Source #
Information for a release of the mobile SDK, including release notes and tags.
The mobile SDK is not generally available. Customers who have access to the mobile SDK can use it to establish and manage WAF tokens for use in HTTP(S) requests from a mobile device to WAF. For more information, see WAF client application integration in the WAF Developer Guide.
See: newMobileSdkRelease
smart constructor.
Instances
newMobileSdkRelease :: MobileSdkRelease Source #
Create a value of MobileSdkRelease
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:releaseNotes:MobileSdkRelease'
, mobileSdkRelease_releaseNotes
- Notes describing the release.
$sel:releaseVersion:MobileSdkRelease'
, mobileSdkRelease_releaseVersion
- The release version.
$sel:tags:MobileSdkRelease'
, mobileSdkRelease_tags
- Tags that are associated with the release.
$sel:timestamp:MobileSdkRelease'
, mobileSdkRelease_timestamp
- The timestamp of the release.
mobileSdkRelease_releaseNotes :: Lens' MobileSdkRelease (Maybe Text) Source #
Notes describing the release.
mobileSdkRelease_releaseVersion :: Lens' MobileSdkRelease (Maybe Text) Source #
The release version.
mobileSdkRelease_tags :: Lens' MobileSdkRelease (Maybe (NonEmpty Tag)) Source #
Tags that are associated with the release.
mobileSdkRelease_timestamp :: Lens' MobileSdkRelease (Maybe UTCTime) Source #
The timestamp of the release.
NoneAction
data NoneAction Source #
Specifies that WAF should do nothing. This is used for the
OverrideAction
setting on a Rule when the rule uses a rule group
reference statement.
This is used in the context of other settings, for example to specify values for RuleAction and web ACL DefaultAction.
JSON specification: "None": {}
See: newNoneAction
smart constructor.
Instances
newNoneAction :: NoneAction Source #
Create a value of NoneAction
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
NotStatement
data NotStatement Source #
A logical rule statement used to negate the results of another rule
statement. You provide one Statement within the NotStatement
.
See: newNotStatement
smart constructor.
Instances
Create a value of NotStatement
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:statement:NotStatement'
, notStatement_statement
- The statement to negate. You can use any statement that can be nested.
notStatement_statement :: Lens' NotStatement Statement Source #
The statement to negate. You can use any statement that can be nested.
OrStatement
data OrStatement Source #
A logical rule statement used to combine other rule statements with OR
logic. You provide more than one Statement within the OrStatement
.
See: newOrStatement
smart constructor.
OrStatement' | |
|
Instances
newOrStatement :: OrStatement Source #
Create a value of OrStatement
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:statements:OrStatement'
, orStatement_statements
- The statements to combine with OR logic. You can use any statements that
can be nested.
orStatement_statements :: Lens' OrStatement [Statement] Source #
The statements to combine with OR logic. You can use any statements that can be nested.
OverrideAction
data OverrideAction Source #
The action to use in the place of the action that results from the rule group evaluation. Set the override action to none to leave the result of the rule group alone. Set it to count to override the result to count only.
You can only use this for rule statements that reference a rule group,
like RuleGroupReferenceStatement
and ManagedRuleGroupStatement
.
This option is usually set to none. It does not affect how the rules in
the rule group are evaluated. If you want the rules in the rule group to
only count matches, do not use this and instead use the rule action
override option, with Count
action, in your rule group reference
statement settings.
See: newOverrideAction
smart constructor.
OverrideAction' | |
|
Instances
newOverrideAction :: OverrideAction Source #
Create a value of OverrideAction
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:count:OverrideAction'
, overrideAction_count
- Override the rule group evaluation result to count only.
This option is usually set to none. It does not affect how the rules in
the rule group are evaluated. If you want the rules in the rule group to
only count matches, do not use this and instead use the rule action
override option, with Count
action, in your rule group reference
statement settings.
$sel:none:OverrideAction'
, overrideAction_none
- Don't override the rule group evaluation result. This is the most
common setting.
overrideAction_count :: Lens' OverrideAction (Maybe CountAction) Source #
Override the rule group evaluation result to count only.
This option is usually set to none. It does not affect how the rules in
the rule group are evaluated. If you want the rules in the rule group to
only count matches, do not use this and instead use the rule action
override option, with Count
action, in your rule group reference
statement settings.
overrideAction_none :: Lens' OverrideAction (Maybe NoneAction) Source #
Don't override the rule group evaluation result. This is the most common setting.
PasswordField
data PasswordField Source #
Details about your login page password field, used in a
ManagedRuleGroupConfig
.
See: newPasswordField
smart constructor.
PasswordField' | |
|
Instances
Create a value of PasswordField
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:identifier:PasswordField'
, passwordField_identifier
- The name of the password field. For example /form/password
.
passwordField_identifier :: Lens' PasswordField Text Source #
The name of the password field. For example /form/password
.
QueryString
data QueryString Source #
Inspect the query string of the web request. This is the part of a URL
that appears after a ?
character, if any.
This is used only in the FieldToMatch specification for some web request component types.
JSON specification: "QueryString": {}
See: newQueryString
smart constructor.
Instances
newQueryString :: QueryString Source #
Create a value of QueryString
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
RateBasedStatement
data RateBasedStatement Source #
A rate-based rule tracks the rate of requests for each originating IP address, and triggers the rule action when the rate exceeds a limit that you specify on the number of requests in any 5-minute time span. You can use this to put a temporary block on requests from an IP address that is sending excessive requests.
WAF tracks and manages web requests separately for each instance of a rate-based rule that you use. For example, if you provide the same rate-based rule settings in two web ACLs, each of the two rule statements represents a separate instance of the rate-based rule and gets its own tracking and management by WAF. If you define a rate-based rule inside a rule group, and then use that rule group in multiple places, each use creates a separate instance of the rate-based rule that gets its own tracking and management by WAF.
When the rule action triggers, WAF blocks additional requests from the IP address until the request rate falls below the limit.
You can optionally nest another statement inside the rate-based statement, to narrow the scope of the rule so that it only counts requests that match the nested statement. For example, based on recent requests that you have seen from an attacker, you might create a rate-based rule with a nested AND rule statement that contains the following nested statements:
- An IP match statement with an IP set that specified the address 192.0.2.44.
- A string match statement that searches in the User-Agent header for the string BadBot.
In this rate-based rule, you also define a rate limit. For this example, the rate limit is 1,000. Requests that meet the criteria of both of the nested statements are counted. If the count exceeds 1,000 requests per five minutes, the rule action triggers. Requests that do not meet the criteria of both of the nested statements are not counted towards the rate limit and are not affected by this rule.
You cannot nest a RateBasedStatement
inside another statement, for
example inside a NotStatement
or OrStatement
. You can define a
RateBasedStatement
inside a web ACL and inside a rule group.
See: newRateBasedStatement
smart constructor.
RateBasedStatement' | |
|
Instances
newRateBasedStatement Source #
Create a value of RateBasedStatement
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:forwardedIPConfig:RateBasedStatement'
, rateBasedStatement_forwardedIPConfig
- The configuration for inspecting IP addresses in an HTTP header that you
specify, instead of using the IP address that's reported by the web
request origin. Commonly, this is the X-Forwarded-For (XFF) header, but
you can specify any header name.
If the specified header isn't present in the request, WAF doesn't apply the rule to the web request at all.
This is required if AggregateKeyType
is set to FORWARDED_IP
.
$sel:scopeDownStatement:RateBasedStatement'
, rateBasedStatement_scopeDownStatement
- An optional nested statement that narrows the scope of the web requests
that are evaluated by the rate-based statement. Requests are only
tracked by the rate-based statement if they match the scope-down
statement. You can use any nestable Statement in the scope-down
statement, and you can nest statements at any level, the same as you can
for a rule statement.
$sel:limit:RateBasedStatement'
, rateBasedStatement_limit
- The limit on requests per 5-minute period for a single originating IP
address. If the statement includes a ScopeDownStatement
, this limit is
applied only to the requests that match the statement.
$sel:aggregateKeyType:RateBasedStatement'
, rateBasedStatement_aggregateKeyType
- Setting that indicates how to aggregate the request counts. The options
are the following:
- IP - Aggregate the request counts on the IP address from the web request origin.
- FORWARDED_IP - Aggregate the request counts on the first IP address
in an HTTP header. If you use this, configure the
ForwardedIPConfig
, to specify the header to use.
rateBasedStatement_forwardedIPConfig :: Lens' RateBasedStatement (Maybe ForwardedIPConfig) Source #
The configuration for inspecting IP addresses in an HTTP header that you specify, instead of using the IP address that's reported by the web request origin. Commonly, this is the X-Forwarded-For (XFF) header, but you can specify any header name.
If the specified header isn't present in the request, WAF doesn't apply the rule to the web request at all.
This is required if AggregateKeyType
is set to FORWARDED_IP
.
rateBasedStatement_scopeDownStatement :: Lens' RateBasedStatement (Maybe Statement) Source #
An optional nested statement that narrows the scope of the web requests that are evaluated by the rate-based statement. Requests are only tracked by the rate-based statement if they match the scope-down statement. You can use any nestable Statement in the scope-down statement, and you can nest statements at any level, the same as you can for a rule statement.
rateBasedStatement_limit :: Lens' RateBasedStatement Natural Source #
The limit on requests per 5-minute period for a single originating IP
address. If the statement includes a ScopeDownStatement
, this limit is
applied only to the requests that match the statement.
rateBasedStatement_aggregateKeyType :: Lens' RateBasedStatement RateBasedStatementAggregateKeyType Source #
Setting that indicates how to aggregate the request counts. The options are the following:
- IP - Aggregate the request counts on the IP address from the web request origin.
- FORWARDED_IP - Aggregate the request counts on the first IP address
in an HTTP header. If you use this, configure the
ForwardedIPConfig
, to specify the header to use.
RateBasedStatementManagedKeysIPSet
data RateBasedStatementManagedKeysIPSet Source #
The set of IP addresses that are currently blocked for a RateBasedStatement.
See: newRateBasedStatementManagedKeysIPSet
smart constructor.
RateBasedStatementManagedKeysIPSet' | |
|
Instances
newRateBasedStatementManagedKeysIPSet :: RateBasedStatementManagedKeysIPSet Source #
Create a value of RateBasedStatementManagedKeysIPSet
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:addresses:RateBasedStatementManagedKeysIPSet'
, rateBasedStatementManagedKeysIPSet_addresses
- The IP addresses that are currently blocked.
$sel:iPAddressVersion:RateBasedStatementManagedKeysIPSet'
, rateBasedStatementManagedKeysIPSet_iPAddressVersion
- The version of the IP addresses, either IPV4
or IPV6
.
rateBasedStatementManagedKeysIPSet_addresses :: Lens' RateBasedStatementManagedKeysIPSet (Maybe [Text]) Source #
The IP addresses that are currently blocked.
rateBasedStatementManagedKeysIPSet_iPAddressVersion :: Lens' RateBasedStatementManagedKeysIPSet (Maybe IPAddressVersion) Source #
The version of the IP addresses, either IPV4
or IPV6
.
Regex
A single regular expression. This is used in a RegexPatternSet.
See: newRegex
smart constructor.
Regex' | |
|
Instances
FromJSON Regex Source # | |
ToJSON Regex Source # | |
Defined in Amazonka.WAFV2.Types.Regex | |
Generic Regex Source # | |
Read Regex Source # | |
Show Regex Source # | |
NFData Regex Source # | |
Defined in Amazonka.WAFV2.Types.Regex | |
Eq Regex Source # | |
Hashable Regex Source # | |
Defined in Amazonka.WAFV2.Types.Regex | |
type Rep Regex Source # | |
Defined in Amazonka.WAFV2.Types.Regex |
Create a value of Regex
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:regexString:Regex'
, regex_regexString
- The string representing the regular expression.
regex_regexString :: Lens' Regex (Maybe Text) Source #
The string representing the regular expression.
RegexMatchStatement
data RegexMatchStatement Source #
A rule statement used to search web request components for a match against a single regular expression.
See: newRegexMatchStatement
smart constructor.
RegexMatchStatement' | |
|
Instances
newRegexMatchStatement Source #
Create a value of RegexMatchStatement
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:regexString:RegexMatchStatement'
, regexMatchStatement_regexString
- The string representing the regular expression.
$sel:fieldToMatch:RegexMatchStatement'
, regexMatchStatement_fieldToMatch
- The part of the web request that you want WAF to inspect.
$sel:textTransformations:RegexMatchStatement'
, regexMatchStatement_textTransformations
- Text transformations eliminate some of the unusual formatting that
attackers use in web requests in an effort to bypass detection. If you
specify one or more transformations in a rule statement, WAF performs
all transformations on the content of the request component identified
by FieldToMatch
, starting from the lowest priority setting, before
inspecting the content for a match.
regexMatchStatement_regexString :: Lens' RegexMatchStatement Text Source #
The string representing the regular expression.
regexMatchStatement_fieldToMatch :: Lens' RegexMatchStatement FieldToMatch Source #
The part of the web request that you want WAF to inspect.
regexMatchStatement_textTransformations :: Lens' RegexMatchStatement (NonEmpty TextTransformation) Source #
Text transformations eliminate some of the unusual formatting that
attackers use in web requests in an effort to bypass detection. If you
specify one or more transformations in a rule statement, WAF performs
all transformations on the content of the request component identified
by FieldToMatch
, starting from the lowest priority setting, before
inspecting the content for a match.
RegexPatternSet
data RegexPatternSet Source #
Contains one or more regular expressions.
WAF assigns an ARN to each RegexPatternSet
that you create. To use a
set in a rule, you provide the ARN to the Rule statement
RegexPatternSetReferenceStatement.
See: newRegexPatternSet
smart constructor.
RegexPatternSet' | |
|
Instances
newRegexPatternSet :: RegexPatternSet Source #
Create a value of RegexPatternSet
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:arn:RegexPatternSet'
, regexPatternSet_arn
- The Amazon Resource Name (ARN) of the entity.
$sel:description:RegexPatternSet'
, regexPatternSet_description
- A description of the set that helps with identification.
$sel:id:RegexPatternSet'
, regexPatternSet_id
- A unique identifier for the set. This ID is returned in the responses to
create and list commands. You provide it to operations like update and
delete.
$sel:name:RegexPatternSet'
, regexPatternSet_name
- The name of the set. You cannot change the name after you create the
set.
$sel:regularExpressionList:RegexPatternSet'
, regexPatternSet_regularExpressionList
- The regular expression patterns in the set.
regexPatternSet_arn :: Lens' RegexPatternSet (Maybe Text) Source #
The Amazon Resource Name (ARN) of the entity.
regexPatternSet_description :: Lens' RegexPatternSet (Maybe Text) Source #
A description of the set that helps with identification.
regexPatternSet_id :: Lens' RegexPatternSet (Maybe Text) Source #
A unique identifier for the set. This ID is returned in the responses to create and list commands. You provide it to operations like update and delete.
regexPatternSet_name :: Lens' RegexPatternSet (Maybe Text) Source #
The name of the set. You cannot change the name after you create the set.
regexPatternSet_regularExpressionList :: Lens' RegexPatternSet (Maybe [Regex]) Source #
The regular expression patterns in the set.
RegexPatternSetReferenceStatement
data RegexPatternSetReferenceStatement Source #
A rule statement used to search web request components for matches with regular expressions. To use this, create a RegexPatternSet that specifies the expressions that you want to detect, then use the ARN of that set in this statement. A web request matches the pattern set rule statement if the request component matches any of the patterns in the set. To create a regex pattern set, see CreateRegexPatternSet.
Each regex pattern set rule statement references a regex pattern set. You create and maintain the set independent of your rules. This allows you to use the single set in multiple rules. When you update the referenced set, WAF automatically updates all rules that reference it.
See: newRegexPatternSetReferenceStatement
smart constructor.
RegexPatternSetReferenceStatement' | |
|
Instances
newRegexPatternSetReferenceStatement Source #
Create a value of RegexPatternSetReferenceStatement
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:arn:RegexPatternSetReferenceStatement'
, regexPatternSetReferenceStatement_arn
- The Amazon Resource Name (ARN) of the RegexPatternSet that this
statement references.
$sel:fieldToMatch:RegexPatternSetReferenceStatement'
, regexPatternSetReferenceStatement_fieldToMatch
- The part of the web request that you want WAF to inspect.
$sel:textTransformations:RegexPatternSetReferenceStatement'
, regexPatternSetReferenceStatement_textTransformations
- Text transformations eliminate some of the unusual formatting that
attackers use in web requests in an effort to bypass detection. If you
specify one or more transformations in a rule statement, WAF performs
all transformations on the content of the request component identified
by FieldToMatch
, starting from the lowest priority setting, before
inspecting the content for a match.
regexPatternSetReferenceStatement_arn :: Lens' RegexPatternSetReferenceStatement Text Source #
The Amazon Resource Name (ARN) of the RegexPatternSet that this statement references.
regexPatternSetReferenceStatement_fieldToMatch :: Lens' RegexPatternSetReferenceStatement FieldToMatch Source #
The part of the web request that you want WAF to inspect.
regexPatternSetReferenceStatement_textTransformations :: Lens' RegexPatternSetReferenceStatement (NonEmpty TextTransformation) Source #
Text transformations eliminate some of the unusual formatting that
attackers use in web requests in an effort to bypass detection. If you
specify one or more transformations in a rule statement, WAF performs
all transformations on the content of the request component identified
by FieldToMatch
, starting from the lowest priority setting, before
inspecting the content for a match.
RegexPatternSetSummary
data RegexPatternSetSummary Source #
High-level information about a RegexPatternSet, returned by operations
like create and list. This provides information like the ID, that you
can use to retrieve and manage a RegexPatternSet
, and the ARN, that
you provide to the RegexPatternSetReferenceStatement to use the pattern
set in a Rule.
See: newRegexPatternSetSummary
smart constructor.
RegexPatternSetSummary' | |
|
Instances
newRegexPatternSetSummary :: RegexPatternSetSummary Source #
Create a value of RegexPatternSetSummary
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:arn:RegexPatternSetSummary'
, regexPatternSetSummary_arn
- The Amazon Resource Name (ARN) of the entity.
$sel:description:RegexPatternSetSummary'
, regexPatternSetSummary_description
- A description of the set that helps with identification.
$sel:id:RegexPatternSetSummary'
, regexPatternSetSummary_id
- A unique identifier for the set. This ID is returned in the responses to
create and list commands. You provide it to operations like update and
delete.
$sel:lockToken:RegexPatternSetSummary'
, regexPatternSetSummary_lockToken
- A token used for optimistic locking. WAF returns a token to your get
and list
requests, to mark the state of the entity at the time of the
request. To make changes to the entity associated with the token, you
provide the token to operations like update
and delete
. WAF uses the
token to ensure that no changes have been made to the entity since you
last retrieved it. If a change has been made, the update fails with a
WAFOptimisticLockException
. If this happens, perform another get
,
and use the new token returned by that operation.
$sel:name:RegexPatternSetSummary'
, regexPatternSetSummary_name
- The name of the data type instance. You cannot change the name after you
create the instance.
regexPatternSetSummary_arn :: Lens' RegexPatternSetSummary (Maybe Text) Source #
The Amazon Resource Name (ARN) of the entity.
regexPatternSetSummary_description :: Lens' RegexPatternSetSummary (Maybe Text) Source #
A description of the set that helps with identification.
regexPatternSetSummary_id :: Lens' RegexPatternSetSummary (Maybe Text) Source #
A unique identifier for the set. This ID is returned in the responses to create and list commands. You provide it to operations like update and delete.
regexPatternSetSummary_lockToken :: Lens' RegexPatternSetSummary (Maybe Text) Source #
A token used for optimistic locking. WAF returns a token to your get
and list
requests, to mark the state of the entity at the time of the
request. To make changes to the entity associated with the token, you
provide the token to operations like update
and delete
. WAF uses the
token to ensure that no changes have been made to the entity since you
last retrieved it. If a change has been made, the update fails with a
WAFOptimisticLockException
. If this happens, perform another get
,
and use the new token returned by that operation.
regexPatternSetSummary_name :: Lens' RegexPatternSetSummary (Maybe Text) Source #
The name of the data type instance. You cannot change the name after you create the instance.
ReleaseSummary
data ReleaseSummary Source #
High level information for an SDK release.
See: newReleaseSummary
smart constructor.
Instances
newReleaseSummary :: ReleaseSummary Source #
Create a value of ReleaseSummary
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:releaseVersion:ReleaseSummary'
, releaseSummary_releaseVersion
- The release version.
$sel:timestamp:ReleaseSummary'
, releaseSummary_timestamp
- The timestamp of the release.
releaseSummary_releaseVersion :: Lens' ReleaseSummary (Maybe Text) Source #
The release version.
releaseSummary_timestamp :: Lens' ReleaseSummary (Maybe UTCTime) Source #
The timestamp of the release.
Rule
A single rule, which you can use in a WebACL or RuleGroup to identify web requests that you want to allow, block, or count. Each rule includes one top-level Statement that WAF uses to identify matching web requests, and parameters that govern how WAF handles them.
See: newRule
smart constructor.
Rule' | |
|
Instances
:: Text | |
-> Natural | |
-> Statement | |
-> VisibilityConfig | |
-> Rule |
Create a value of Rule
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:action:Rule'
, rule_action
- The action that WAF should take on a web request when it matches the
rule statement. Settings at the web ACL level can override the rule
action setting.
This is used only for rules whose statements do not reference a rule
group. Rule statements that reference a rule group include
RuleGroupReferenceStatement
and ManagedRuleGroupStatement
.
You must specify either this Action
setting or the rule
OverrideAction
setting, but not both:
- If the rule statement does not reference a rule group, use this rule action setting and not the rule override action setting.
- If the rule statement references a rule group, use the override action setting and not this action setting.
$sel:captchaConfig:Rule'
, rule_captchaConfig
- Specifies how WAF should handle CAPTCHA
evaluations. If you don't
specify this, WAF uses the CAPTCHA
configuration that's defined for
the web ACL.
$sel:challengeConfig:Rule'
, rule_challengeConfig
- Specifies how WAF should handle Challenge
evaluations. If you don't
specify this, WAF uses the challenge configuration that's defined for
the web ACL.
$sel:overrideAction:Rule'
, rule_overrideAction
- The action to use in the place of the action that results from the rule
group evaluation. Set the override action to none to leave the result of
the rule group alone. Set it to count to override the result to count
only.
You can only use this for rule statements that reference a rule group,
like RuleGroupReferenceStatement
and ManagedRuleGroupStatement
.
This option is usually set to none. It does not affect how the rules in
the rule group are evaluated. If you want the rules in the rule group to
only count matches, do not use this and instead use the rule action
override option, with Count
action, in your rule group reference
statement settings.
$sel:ruleLabels:Rule'
, rule_ruleLabels
- Labels to apply to web requests that match the rule match statement. WAF
applies fully qualified labels to matching web requests. A fully
qualified label is the concatenation of a label namespace and a rule
label. The rule's rule group or web ACL defines the label namespace.
Rules that run after this rule in the web ACL can match against these
labels using a LabelMatchStatement
.
For each label, provide a case-sensitive string containing optional namespaces and a label name, according to the following guidelines:
- Separate each component of the label with a colon.
- Each namespace or name can have up to 128 characters.
- You can specify up to 5 namespaces in a label.
- Don't use the following reserved words in your label specification:
aws
,waf
,managed
,rulegroup
,webacl
,regexpatternset
, oripset
.
For example, myLabelName
or nameSpace1:nameSpace2:myLabelName
.
Rule
, rule_name
- The name of the rule. You can't change the name of a Rule
after you
create it.
$sel:priority:Rule'
, rule_priority
- If you define more than one Rule
in a WebACL
, WAF evaluates each
request against the Rules
in order based on the value of Priority
.
WAF processes rules with lower priority first. The priorities don't
need to be consecutive, but they must all be different.
$sel:statement:Rule'
, rule_statement
- The WAF processing statement for the rule, for example
ByteMatchStatement or SizeConstraintStatement.
$sel:visibilityConfig:Rule'
, rule_visibilityConfig
- Defines and enables Amazon CloudWatch metrics and web request sample
collection.
rule_action :: Lens' Rule (Maybe RuleAction) Source #
The action that WAF should take on a web request when it matches the rule statement. Settings at the web ACL level can override the rule action setting.
This is used only for rules whose statements do not reference a rule
group. Rule statements that reference a rule group include
RuleGroupReferenceStatement
and ManagedRuleGroupStatement
.
You must specify either this Action
setting or the rule
OverrideAction
setting, but not both:
- If the rule statement does not reference a rule group, use this rule action setting and not the rule override action setting.
- If the rule statement references a rule group, use the override action setting and not this action setting.
rule_captchaConfig :: Lens' Rule (Maybe CaptchaConfig) Source #
Specifies how WAF should handle CAPTCHA
evaluations. If you don't
specify this, WAF uses the CAPTCHA
configuration that's defined for
the web ACL.
rule_challengeConfig :: Lens' Rule (Maybe ChallengeConfig) Source #
Specifies how WAF should handle Challenge
evaluations. If you don't
specify this, WAF uses the challenge configuration that's defined for
the web ACL.
rule_overrideAction :: Lens' Rule (Maybe OverrideAction) Source #
The action to use in the place of the action that results from the rule group evaluation. Set the override action to none to leave the result of the rule group alone. Set it to count to override the result to count only.
You can only use this for rule statements that reference a rule group,
like RuleGroupReferenceStatement
and ManagedRuleGroupStatement
.
This option is usually set to none. It does not affect how the rules in
the rule group are evaluated. If you want the rules in the rule group to
only count matches, do not use this and instead use the rule action
override option, with Count
action, in your rule group reference
statement settings.
rule_ruleLabels :: Lens' Rule (Maybe [Label]) Source #
Labels to apply to web requests that match the rule match statement. WAF applies fully qualified labels to matching web requests. A fully qualified label is the concatenation of a label namespace and a rule label. The rule's rule group or web ACL defines the label namespace.
Rules that run after this rule in the web ACL can match against these
labels using a LabelMatchStatement
.
For each label, provide a case-sensitive string containing optional namespaces and a label name, according to the following guidelines:
- Separate each component of the label with a colon.
- Each namespace or name can have up to 128 characters.
- You can specify up to 5 namespaces in a label.
- Don't use the following reserved words in your label specification:
aws
,waf
,managed
,rulegroup
,webacl
,regexpatternset
, oripset
.
For example, myLabelName
or nameSpace1:nameSpace2:myLabelName
.
rule_name :: Lens' Rule Text Source #
The name of the rule. You can't change the name of a Rule
after you
create it.
rule_priority :: Lens' Rule Natural Source #
If you define more than one Rule
in a WebACL
, WAF evaluates each
request against the Rules
in order based on the value of Priority
.
WAF processes rules with lower priority first. The priorities don't
need to be consecutive, but they must all be different.
rule_statement :: Lens' Rule Statement Source #
The WAF processing statement for the rule, for example ByteMatchStatement or SizeConstraintStatement.
rule_visibilityConfig :: Lens' Rule VisibilityConfig Source #
Defines and enables Amazon CloudWatch metrics and web request sample collection.
RuleAction
data RuleAction Source #
The action that WAF should take on a web request when it matches a rule's statement. Settings at the web ACL level can override the rule action setting.
See: newRuleAction
smart constructor.
RuleAction' | |
|
Instances
newRuleAction :: RuleAction Source #
Create a value of RuleAction
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:allow:RuleAction'
, ruleAction_allow
- Instructs WAF to allow the web request.
$sel:block:RuleAction'
, ruleAction_block
- Instructs WAF to block the web request.
$sel:captcha:RuleAction'
, ruleAction_captcha
- Instructs WAF to run a CAPTCHA
check against the web request.
$sel:challenge:RuleAction'
, ruleAction_challenge
- Instructs WAF to run a Challenge
check against the web request.
$sel:count:RuleAction'
, ruleAction_count
- Instructs WAF to count the web request and then continue evaluating the
request using the remaining rules in the web ACL.
ruleAction_allow :: Lens' RuleAction (Maybe AllowAction) Source #
Instructs WAF to allow the web request.
ruleAction_block :: Lens' RuleAction (Maybe BlockAction) Source #
Instructs WAF to block the web request.
ruleAction_captcha :: Lens' RuleAction (Maybe CaptchaAction) Source #
Instructs WAF to run a CAPTCHA
check against the web request.
ruleAction_challenge :: Lens' RuleAction (Maybe ChallengeAction) Source #
Instructs WAF to run a Challenge
check against the web request.
ruleAction_count :: Lens' RuleAction (Maybe CountAction) Source #
Instructs WAF to count the web request and then continue evaluating the request using the remaining rules in the web ACL.
RuleActionOverride
data RuleActionOverride Source #
Action setting to use in the place of a rule action that is configured inside the rule group. You specify one override for each rule whose action you want to change.
You can use overrides for testing, for example you can override all of
rule actions to Count
and then monitor the resulting count metrics to
understand how the rule group would handle your web traffic. You can
also permanently override some or all actions, to modify how the rule
group manages your web traffic.
See: newRuleActionOverride
smart constructor.
RuleActionOverride' | |
|
Instances
newRuleActionOverride Source #
:: Text | |
-> RuleAction | |
-> RuleActionOverride |
Create a value of RuleActionOverride
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:name:RuleActionOverride'
, ruleActionOverride_name
- The name of the rule to override.
$sel:actionToUse:RuleActionOverride'
, ruleActionOverride_actionToUse
- The override action to use, in place of the configured action of the
rule in the rule group.
ruleActionOverride_name :: Lens' RuleActionOverride Text Source #
The name of the rule to override.
ruleActionOverride_actionToUse :: Lens' RuleActionOverride RuleAction Source #
The override action to use, in place of the configured action of the rule in the rule group.
RuleGroup
A rule group defines a collection of rules to inspect and control web requests that you can use in a WebACL. When you create a rule group, you define an immutable capacity limit. If you update a rule group, you must stay within the capacity. This allows others to reuse the rule group with confidence in its capacity requirements.
See: newRuleGroup
smart constructor.
RuleGroup' | |
|
Instances
Create a value of RuleGroup
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:availableLabels:RuleGroup'
, ruleGroup_availableLabels
- The labels that one or more rules in this rule group add to matching web
requests. These labels are defined in the RuleLabels
for a Rule.
$sel:consumedLabels:RuleGroup'
, ruleGroup_consumedLabels
- The labels that one or more rules in this rule group match against in
label match statements. These labels are defined in a
LabelMatchStatement
specification, in the Statement definition of a
rule.
$sel:customResponseBodies:RuleGroup'
, ruleGroup_customResponseBodies
- A map of custom response keys and content bodies. When you create a rule
with a block action, you can send a custom response to the web request.
You define these for the rule group, and then use them in the rules that
you define in the rule group.
For information about customizing web requests and responses, see Customizing web requests and responses in WAF in the WAF Developer Guide.
For information about the limits on count and size for custom request and response settings, see WAF quotas in the WAF Developer Guide.
$sel:description:RuleGroup'
, ruleGroup_description
- A description of the rule group that helps with identification.
$sel:labelNamespace:RuleGroup'
, ruleGroup_labelNamespace
- The label namespace prefix for this rule group. All labels added by
rules in this rule group have this prefix.
The syntax for the label namespace prefix for your rule groups is the following:
awswaf:<account ID>:rulegroup:<rule group name>:
When a rule with a label matches a web request, WAF adds the fully qualified label to the request. A fully qualified label is made up of the label namespace from the rule group or web ACL where the rule is defined and the label from the rule, separated by a colon:
<label namespace>:<label from rule>
$sel:rules:RuleGroup'
, ruleGroup_rules
- The Rule statements used to identify the web requests that you want to
allow, block, or count. Each rule includes one top-level statement that
WAF uses to identify matching web requests, and parameters that govern
how WAF handles them.
RuleGroup
, ruleGroup_name
- The name of the rule group. You cannot change the name of a rule group
after you create it.
$sel:id:RuleGroup'
, ruleGroup_id
- A unique identifier for the rule group. This ID is returned in the
responses to create and list commands. You provide it to operations like
update and delete.
$sel:capacity:RuleGroup'
, ruleGroup_capacity
- The web ACL capacity units (WCUs) required for this rule group.
When you create your own rule group, you define this, and you cannot change it after creation. When you add or modify the rules in a rule group, WAF enforces this limit. You can check the capacity for a set of rules using CheckCapacity.
WAF uses WCUs to calculate and control the operating resources that are used to run your rules, rule groups, and web ACLs. WAF calculates capacity differently for each rule type, to reflect the relative cost of each rule. Simple rules that cost little to run use fewer WCUs than more complex rules that use more processing power. Rule group capacity is fixed at creation, which helps users plan their web ACL WCU usage when they use a rule group. The WCU limit for web ACLs is 1,500.
$sel:arn:RuleGroup'
, ruleGroup_arn
- The Amazon Resource Name (ARN) of the entity.
RuleGroup
, ruleGroup_visibilityConfig
- Defines and enables Amazon CloudWatch metrics and web request sample
collection.
ruleGroup_availableLabels :: Lens' RuleGroup (Maybe [LabelSummary]) Source #
The labels that one or more rules in this rule group add to matching web
requests. These labels are defined in the RuleLabels
for a Rule.
ruleGroup_consumedLabels :: Lens' RuleGroup (Maybe [LabelSummary]) Source #
The labels that one or more rules in this rule group match against in
label match statements. These labels are defined in a
LabelMatchStatement
specification, in the Statement definition of a
rule.
ruleGroup_customResponseBodies :: Lens' RuleGroup (Maybe (HashMap Text CustomResponseBody)) Source #
A map of custom response keys and content bodies. When you create a rule with a block action, you can send a custom response to the web request. You define these for the rule group, and then use them in the rules that you define in the rule group.
For information about customizing web requests and responses, see Customizing web requests and responses in WAF in the WAF Developer Guide.
For information about the limits on count and size for custom request and response settings, see WAF quotas in the WAF Developer Guide.
ruleGroup_description :: Lens' RuleGroup (Maybe Text) Source #
A description of the rule group that helps with identification.
ruleGroup_labelNamespace :: Lens' RuleGroup (Maybe Text) Source #
The label namespace prefix for this rule group. All labels added by rules in this rule group have this prefix.
The syntax for the label namespace prefix for your rule groups is the following:
awswaf:<account ID>:rulegroup:<rule group name>:
When a rule with a label matches a web request, WAF adds the fully qualified label to the request. A fully qualified label is made up of the label namespace from the rule group or web ACL where the rule is defined and the label from the rule, separated by a colon:
<label namespace>:<label from rule>
ruleGroup_rules :: Lens' RuleGroup (Maybe [Rule]) Source #
The Rule statements used to identify the web requests that you want to allow, block, or count. Each rule includes one top-level statement that WAF uses to identify matching web requests, and parameters that govern how WAF handles them.
ruleGroup_name :: Lens' RuleGroup Text Source #
The name of the rule group. You cannot change the name of a rule group after you create it.
ruleGroup_id :: Lens' RuleGroup Text Source #
A unique identifier for the rule group. This ID is returned in the responses to create and list commands. You provide it to operations like update and delete.
ruleGroup_capacity :: Lens' RuleGroup Natural Source #
The web ACL capacity units (WCUs) required for this rule group.
When you create your own rule group, you define this, and you cannot change it after creation. When you add or modify the rules in a rule group, WAF enforces this limit. You can check the capacity for a set of rules using CheckCapacity.
WAF uses WCUs to calculate and control the operating resources that are used to run your rules, rule groups, and web ACLs. WAF calculates capacity differently for each rule type, to reflect the relative cost of each rule. Simple rules that cost little to run use fewer WCUs than more complex rules that use more processing power. Rule group capacity is fixed at creation, which helps users plan their web ACL WCU usage when they use a rule group. The WCU limit for web ACLs is 1,500.
ruleGroup_visibilityConfig :: Lens' RuleGroup VisibilityConfig Source #
Defines and enables Amazon CloudWatch metrics and web request sample collection.
RuleGroupReferenceStatement
data RuleGroupReferenceStatement Source #
A rule statement used to run the rules that are defined in a RuleGroup. To use this, create a rule group with your rules, then provide the ARN of the rule group in this statement.
You cannot nest a RuleGroupReferenceStatement
, for example for use
inside a NotStatement
or OrStatement
. You can only use a rule group
reference statement at the top level inside a web ACL.
See: newRuleGroupReferenceStatement
smart constructor.
RuleGroupReferenceStatement' | |
|
Instances
newRuleGroupReferenceStatement Source #
Create a value of RuleGroupReferenceStatement
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:excludedRules:RuleGroupReferenceStatement'
, ruleGroupReferenceStatement_excludedRules
- Rules in the referenced rule group whose actions are set to Count
.
Instead of this option, use RuleActionOverrides
. It accepts any valid
action setting, including Count
.
$sel:ruleActionOverrides:RuleGroupReferenceStatement'
, ruleGroupReferenceStatement_ruleActionOverrides
- Action settings to use in the place of the rule actions that are
configured inside the rule group. You specify one override for each rule
whose action you want to change.
You can use overrides for testing, for example you can override all of
rule actions to Count
and then monitor the resulting count metrics to
understand how the rule group would handle your web traffic. You can
also permanently override some or all actions, to modify how the rule
group manages your web traffic.
$sel:arn:RuleGroupReferenceStatement'
, ruleGroupReferenceStatement_arn
- The Amazon Resource Name (ARN) of the entity.
ruleGroupReferenceStatement_excludedRules :: Lens' RuleGroupReferenceStatement (Maybe [ExcludedRule]) Source #
Rules in the referenced rule group whose actions are set to Count
.
Instead of this option, use RuleActionOverrides
. It accepts any valid
action setting, including Count
.
ruleGroupReferenceStatement_ruleActionOverrides :: Lens' RuleGroupReferenceStatement (Maybe (NonEmpty RuleActionOverride)) Source #
Action settings to use in the place of the rule actions that are configured inside the rule group. You specify one override for each rule whose action you want to change.
You can use overrides for testing, for example you can override all of
rule actions to Count
and then monitor the resulting count metrics to
understand how the rule group would handle your web traffic. You can
also permanently override some or all actions, to modify how the rule
group manages your web traffic.
ruleGroupReferenceStatement_arn :: Lens' RuleGroupReferenceStatement Text Source #
The Amazon Resource Name (ARN) of the entity.
RuleGroupSummary
data RuleGroupSummary Source #
High-level information about a RuleGroup, returned by operations like
create and list. This provides information like the ID, that you can use
to retrieve and manage a RuleGroup
, and the ARN, that you provide to
the RuleGroupReferenceStatement to use the rule group in a Rule.
See: newRuleGroupSummary
smart constructor.
RuleGroupSummary' | |
|
Instances
newRuleGroupSummary :: RuleGroupSummary Source #
Create a value of RuleGroupSummary
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:arn:RuleGroupSummary'
, ruleGroupSummary_arn
- The Amazon Resource Name (ARN) of the entity.
$sel:description:RuleGroupSummary'
, ruleGroupSummary_description
- A description of the rule group that helps with identification.
$sel:id:RuleGroupSummary'
, ruleGroupSummary_id
- A unique identifier for the rule group. This ID is returned in the
responses to create and list commands. You provide it to operations like
update and delete.
$sel:lockToken:RuleGroupSummary'
, ruleGroupSummary_lockToken
- A token used for optimistic locking. WAF returns a token to your get
and list
requests, to mark the state of the entity at the time of the
request. To make changes to the entity associated with the token, you
provide the token to operations like update
and delete
. WAF uses the
token to ensure that no changes have been made to the entity since you
last retrieved it. If a change has been made, the update fails with a
WAFOptimisticLockException
. If this happens, perform another get
,
and use the new token returned by that operation.
$sel:name:RuleGroupSummary'
, ruleGroupSummary_name
- The name of the data type instance. You cannot change the name after you
create the instance.
ruleGroupSummary_arn :: Lens' RuleGroupSummary (Maybe Text) Source #
The Amazon Resource Name (ARN) of the entity.
ruleGroupSummary_description :: Lens' RuleGroupSummary (Maybe Text) Source #
A description of the rule group that helps with identification.
ruleGroupSummary_id :: Lens' RuleGroupSummary (Maybe Text) Source #
A unique identifier for the rule group. This ID is returned in the responses to create and list commands. You provide it to operations like update and delete.
ruleGroupSummary_lockToken :: Lens' RuleGroupSummary (Maybe Text) Source #
A token used for optimistic locking. WAF returns a token to your get
and list
requests, to mark the state of the entity at the time of the
request. To make changes to the entity associated with the token, you
provide the token to operations like update
and delete
. WAF uses the
token to ensure that no changes have been made to the entity since you
last retrieved it. If a change has been made, the update fails with a
WAFOptimisticLockException
. If this happens, perform another get
,
and use the new token returned by that operation.
ruleGroupSummary_name :: Lens' RuleGroupSummary (Maybe Text) Source #
The name of the data type instance. You cannot change the name after you create the instance.
RuleSummary
data RuleSummary Source #
High-level information about a Rule, returned by operations like
DescribeManagedRuleGroup. This provides information like the ID, that
you can use to retrieve and manage a RuleGroup
, and the ARN, that you
provide to the RuleGroupReferenceStatement to use the rule group in a
Rule.
See: newRuleSummary
smart constructor.
Instances
newRuleSummary :: RuleSummary Source #
Create a value of RuleSummary
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:action:RuleSummary'
, ruleSummary_action
- The action that WAF should take on a web request when it matches a
rule's statement. Settings at the web ACL level can override the rule
action setting.
$sel:name:RuleSummary'
, ruleSummary_name
- The name of the rule.
ruleSummary_action :: Lens' RuleSummary (Maybe RuleAction) Source #
The action that WAF should take on a web request when it matches a rule's statement. Settings at the web ACL level can override the rule action setting.
ruleSummary_name :: Lens' RuleSummary (Maybe Text) Source #
The name of the rule.
SampledHTTPRequest
data SampledHTTPRequest Source #
Represents a single sampled web request. The response from
GetSampledRequests includes a SampledHTTPRequests
complex type that
appears as SampledRequests
in the response syntax.
SampledHTTPRequests
contains an array of SampledHTTPRequest
objects.
See: newSampledHTTPRequest
smart constructor.
SampledHTTPRequest' | |
|
Instances
newSampledHTTPRequest Source #
:: HTTPRequest | |
-> Natural | |
-> SampledHTTPRequest |
Create a value of SampledHTTPRequest
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:action:SampledHTTPRequest'
, sampledHTTPRequest_action
- The action that WAF applied to the request.
$sel:captchaResponse:SampledHTTPRequest'
, sampledHTTPRequest_captchaResponse
- The CAPTCHA
response for the request.
$sel:challengeResponse:SampledHTTPRequest'
, sampledHTTPRequest_challengeResponse
- The Challenge
response for the request.
$sel:labels:SampledHTTPRequest'
, sampledHTTPRequest_labels
- Labels applied to the web request by matching rules. WAF applies fully
qualified labels to matching web requests. A fully qualified label is
the concatenation of a label namespace and a rule label. The rule's
rule group or web ACL defines the label namespace.
For example,
awswaf:111122223333:myRuleGroup:testRules:testNS1:testNS2:labelNameA
or awswaf:managed:aws:managed-rule-set:header:encoding:utf8
.
$sel:overriddenAction:SampledHTTPRequest'
, sampledHTTPRequest_overriddenAction
- Used only for rule group rules that have a rule action override in place
in the web ACL. This is the action that the rule group rule is
configured for, and not the action that was applied to the request. The
action that WAF applied is the Action
value.
$sel:requestHeadersInserted:SampledHTTPRequest'
, sampledHTTPRequest_requestHeadersInserted
- Custom request headers inserted by WAF into the request, according to
the custom request configuration for the matching rule action.
$sel:responseCodeSent:SampledHTTPRequest'
, sampledHTTPRequest_responseCodeSent
- The response code that was sent for the request.
$sel:ruleNameWithinRuleGroup:SampledHTTPRequest'
, sampledHTTPRequest_ruleNameWithinRuleGroup
- The name of the Rule
that the request matched. For managed rule
groups, the format for this name is
<vendor name>#<managed rule group name>#<rule name>
. For your own
rule groups, the format for this name is
<rule group name>#<rule name>
. If the rule is not in a rule group,
this field is absent.
$sel:timestamp:SampledHTTPRequest'
, sampledHTTPRequest_timestamp
- The time at which WAF received the request from your Amazon Web Services
resource, in Unix time format (in seconds).
$sel:request:SampledHTTPRequest'
, sampledHTTPRequest_request
- A complex type that contains detailed information about the request.
$sel:weight:SampledHTTPRequest'
, sampledHTTPRequest_weight
- A value that indicates how one result in the response relates
proportionally to other results in the response. For example, a result
that has a weight of 2
represents roughly twice as many web requests
as a result that has a weight of 1
.
sampledHTTPRequest_action :: Lens' SampledHTTPRequest (Maybe Text) Source #
The action that WAF applied to the request.
sampledHTTPRequest_captchaResponse :: Lens' SampledHTTPRequest (Maybe CaptchaResponse) Source #
The CAPTCHA
response for the request.
sampledHTTPRequest_challengeResponse :: Lens' SampledHTTPRequest (Maybe ChallengeResponse) Source #
The Challenge
response for the request.
sampledHTTPRequest_labels :: Lens' SampledHTTPRequest (Maybe [Label]) Source #
Labels applied to the web request by matching rules. WAF applies fully qualified labels to matching web requests. A fully qualified label is the concatenation of a label namespace and a rule label. The rule's rule group or web ACL defines the label namespace.
For example,
awswaf:111122223333:myRuleGroup:testRules:testNS1:testNS2:labelNameA
or awswaf:managed:aws:managed-rule-set:header:encoding:utf8
.
sampledHTTPRequest_overriddenAction :: Lens' SampledHTTPRequest (Maybe Text) Source #
Used only for rule group rules that have a rule action override in place
in the web ACL. This is the action that the rule group rule is
configured for, and not the action that was applied to the request. The
action that WAF applied is the Action
value.
sampledHTTPRequest_requestHeadersInserted :: Lens' SampledHTTPRequest (Maybe [HTTPHeader]) Source #
Custom request headers inserted by WAF into the request, according to the custom request configuration for the matching rule action.
sampledHTTPRequest_responseCodeSent :: Lens' SampledHTTPRequest (Maybe Natural) Source #
The response code that was sent for the request.
sampledHTTPRequest_ruleNameWithinRuleGroup :: Lens' SampledHTTPRequest (Maybe Text) Source #
The name of the Rule
that the request matched. For managed rule
groups, the format for this name is
<vendor name>#<managed rule group name>#<rule name>
. For your own
rule groups, the format for this name is
<rule group name>#<rule name>
. If the rule is not in a rule group,
this field is absent.
sampledHTTPRequest_timestamp :: Lens' SampledHTTPRequest (Maybe UTCTime) Source #
The time at which WAF received the request from your Amazon Web Services resource, in Unix time format (in seconds).
sampledHTTPRequest_request :: Lens' SampledHTTPRequest HTTPRequest Source #
A complex type that contains detailed information about the request.
sampledHTTPRequest_weight :: Lens' SampledHTTPRequest Natural Source #
A value that indicates how one result in the response relates
proportionally to other results in the response. For example, a result
that has a weight of 2
represents roughly twice as many web requests
as a result that has a weight of 1
.
SingleHeader
data SingleHeader Source #
Inspect one of the headers in the web request, identified by name, for
example, User-Agent
or Referer
. The name isn't case sensitive.
You can filter and inspect all headers with the FieldToMatch
setting
Headers
.
This is used to indicate the web request component to inspect, in the FieldToMatch specification.
Example JSON: "SingleHeader": { "Name": "haystack" }
See: newSingleHeader
smart constructor.
Instances
Create a value of SingleHeader
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:name:SingleHeader'
, singleHeader_name
- The name of the query header to inspect.
singleHeader_name :: Lens' SingleHeader Text Source #
The name of the query header to inspect.
SingleQueryArgument
data SingleQueryArgument Source #
Inspect one query argument in the web request, identified by name, for example UserName or SalesRegion. The name isn't case sensitive.
This is used to indicate the web request component to inspect, in the FieldToMatch specification.
Example JSON: "SingleQueryArgument": { "Name": "myArgument" }
See: newSingleQueryArgument
smart constructor.
Instances
newSingleQueryArgument Source #
Create a value of SingleQueryArgument
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:name:SingleQueryArgument'
, singleQueryArgument_name
- The name of the query argument to inspect.
singleQueryArgument_name :: Lens' SingleQueryArgument Text Source #
The name of the query argument to inspect.
SizeConstraintStatement
data SizeConstraintStatement Source #
A rule statement that compares a number of bytes against the size of a request component, using a comparison operator, such as greater than (>) or less than (<). For example, you can use a size constraint statement to look for query strings that are longer than 100 bytes.
If you configure WAF to inspect the request body, WAF inspects only the first 8192 bytes (8 KB). If the request body for your web requests never exceeds 8192 bytes, you could use a size constraint statement to block requests that have a request body greater than 8192 bytes.
If you choose URI for the value of Part of the request to filter on, the
slash (/) in the URI counts as one character. For example, the URI
/logo.jpg
is nine characters long.
See: newSizeConstraintStatement
smart constructor.
SizeConstraintStatement' | |
|
Instances
newSizeConstraintStatement Source #
:: FieldToMatch | |
-> ComparisonOperator | |
-> Natural | |
-> NonEmpty TextTransformation | |
-> SizeConstraintStatement |
Create a value of SizeConstraintStatement
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:fieldToMatch:SizeConstraintStatement'
, sizeConstraintStatement_fieldToMatch
- The part of the web request that you want WAF to inspect.
$sel:comparisonOperator:SizeConstraintStatement'
, sizeConstraintStatement_comparisonOperator
- The operator to use to compare the request part to the size setting.
$sel:size:SizeConstraintStatement'
, sizeConstraintStatement_size
- The size, in byte, to compare to the request part, after any
transformations.
$sel:textTransformations:SizeConstraintStatement'
, sizeConstraintStatement_textTransformations
- Text transformations eliminate some of the unusual formatting that
attackers use in web requests in an effort to bypass detection. If you
specify one or more transformations in a rule statement, WAF performs
all transformations on the content of the request component identified
by FieldToMatch
, starting from the lowest priority setting, before
inspecting the content for a match.
sizeConstraintStatement_fieldToMatch :: Lens' SizeConstraintStatement FieldToMatch Source #
The part of the web request that you want WAF to inspect.
sizeConstraintStatement_comparisonOperator :: Lens' SizeConstraintStatement ComparisonOperator Source #
The operator to use to compare the request part to the size setting.
sizeConstraintStatement_size :: Lens' SizeConstraintStatement Natural Source #
The size, in byte, to compare to the request part, after any transformations.
sizeConstraintStatement_textTransformations :: Lens' SizeConstraintStatement (NonEmpty TextTransformation) Source #
Text transformations eliminate some of the unusual formatting that
attackers use in web requests in an effort to bypass detection. If you
specify one or more transformations in a rule statement, WAF performs
all transformations on the content of the request component identified
by FieldToMatch
, starting from the lowest priority setting, before
inspecting the content for a match.
SqliMatchStatement
data SqliMatchStatement Source #
A rule statement that inspects for malicious SQL code. Attackers insert malicious SQL code into web requests to do things like modify your database or extract data from it.
See: newSqliMatchStatement
smart constructor.
SqliMatchStatement' | |
|
Instances
newSqliMatchStatement Source #
Create a value of SqliMatchStatement
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:sensitivityLevel:SqliMatchStatement'
, sqliMatchStatement_sensitivityLevel
- The sensitivity that you want WAF to use to inspect for SQL injection
attacks.
HIGH
detects more attacks, but might generate more false positives,
especially if your web requests frequently contain unusual strings. For
information about identifying and mitigating false positives, see
Testing and tuning
in the WAF Developer Guide.
LOW
is generally a better choice for resources that already have other
protections against SQL injection attacks or that have a low tolerance
for false positives.
Default: LOW
$sel:fieldToMatch:SqliMatchStatement'
, sqliMatchStatement_fieldToMatch
- The part of the web request that you want WAF to inspect.
$sel:textTransformations:SqliMatchStatement'
, sqliMatchStatement_textTransformations
- Text transformations eliminate some of the unusual formatting that
attackers use in web requests in an effort to bypass detection. If you
specify one or more transformations in a rule statement, WAF performs
all transformations on the content of the request component identified
by FieldToMatch
, starting from the lowest priority setting, before
inspecting the content for a match.
sqliMatchStatement_sensitivityLevel :: Lens' SqliMatchStatement (Maybe SensitivityLevel) Source #
The sensitivity that you want WAF to use to inspect for SQL injection attacks.
HIGH
detects more attacks, but might generate more false positives,
especially if your web requests frequently contain unusual strings. For
information about identifying and mitigating false positives, see
Testing and tuning
in the WAF Developer Guide.
LOW
is generally a better choice for resources that already have other
protections against SQL injection attacks or that have a low tolerance
for false positives.
Default: LOW
sqliMatchStatement_fieldToMatch :: Lens' SqliMatchStatement FieldToMatch Source #
The part of the web request that you want WAF to inspect.
sqliMatchStatement_textTransformations :: Lens' SqliMatchStatement (NonEmpty TextTransformation) Source #
Text transformations eliminate some of the unusual formatting that
attackers use in web requests in an effort to bypass detection. If you
specify one or more transformations in a rule statement, WAF performs
all transformations on the content of the request component identified
by FieldToMatch
, starting from the lowest priority setting, before
inspecting the content for a match.
Statement
The processing guidance for a Rule, used by WAF to determine whether a web request matches the rule.
For example specifications, see the examples section of CreateWebACL.
See: newStatement
smart constructor.
Statement' | |
|
Instances
newStatement :: Statement Source #
Create a value of Statement
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:andStatement:Statement'
, statement_andStatement
- A logical rule statement used to combine other rule statements with AND
logic. You provide more than one Statement within the AndStatement
.
$sel:byteMatchStatement:Statement'
, statement_byteMatchStatement
- A rule statement that defines a string match search for WAF to apply to
web requests. The byte match statement provides the bytes to search for,
the location in requests that you want WAF to search, and other
settings. The bytes to search for are typically a string that
corresponds with ASCII characters. In the WAF console and the developer
guide, this is called a string match statement.
$sel:geoMatchStatement:Statement'
, statement_geoMatchStatement
- A rule statement that labels web requests by country and region and that
matches against web requests based on country code. A geo match rule
labels every request that it inspects regardless of whether it finds a
match.
- To manage requests only by country, you can use this statement by
itself and specify the countries that you want to match against in
the
CountryCodes
array. - Otherwise, configure your geo match rule with Count action so that it only labels requests. Then, add one or more label match rules to run after the geo match rule and configure them to match against the geographic labels and handle the requests as needed.
WAF labels requests using the alpha-2 country and region codes from the
International Organization for Standardization (ISO) 3166 standard. WAF
determines the codes using either the IP address in the web request
origin or, if you specify it, the address in the geo match
ForwardedIPConfig
.
If you use the web request origin, the label formats are
awswaf:clientip:geo:region:<ISO country code>-<ISO region code>
and
awswaf:clientip:geo:country:<ISO country code>
.
If you use a forwarded IP address, the label formats are
awswaf:forwardedip:geo:region:<ISO country code>-<ISO region code>
and awswaf:forwardedip:geo:country:<ISO country code>
.
For additional details, see Geographic match rule statement in the WAF Developer Guide.
$sel:iPSetReferenceStatement:Statement'
, statement_iPSetReferenceStatement
- A rule statement used to detect web requests coming from particular IP
addresses or address ranges. To use this, create an IPSet that specifies
the addresses you want to detect, then use the ARN of that set in this
statement. To create an IP set, see CreateIPSet.
Each IP set rule statement references an IP set. You create and maintain the set independent of your rules. This allows you to use the single set in multiple rules. When you update the referenced set, WAF automatically updates all rules that reference it.
$sel:labelMatchStatement:Statement'
, statement_labelMatchStatement
- A rule statement to match against labels that have been added to the web
request by rules that have already run in the web ACL.
The label match statement provides the label or namespace string to search for. The label string can represent a part or all of the fully qualified label name that had been added to the web request. Fully qualified labels have a prefix, optional namespaces, and label name. The prefix identifies the rule group or web ACL context of the rule that added the label. If you do not provide the fully qualified name in your label match string, WAF performs the search for labels that were added in the same context as the label match statement.
$sel:managedRuleGroupStatement:Statement'
, statement_managedRuleGroupStatement
- A rule statement used to run the rules that are defined in a managed
rule group. To use this, provide the vendor name and the name of the
rule group in this statement. You can retrieve the required names by
calling ListAvailableManagedRuleGroups.
You cannot nest a ManagedRuleGroupStatement
, for example for use
inside a NotStatement
or OrStatement
. It can only be referenced as a
top-level statement within a rule.
You are charged additional fees when you use the WAF Bot Control managed
rule group AWSManagedRulesBotControlRuleSet
or the WAF Fraud Control
account takeover prevention (ATP) managed rule group
AWSManagedRulesATPRuleSet
. For more information, see
WAF Pricing.
$sel:notStatement:Statement'
, statement_notStatement
- A logical rule statement used to negate the results of another rule
statement. You provide one Statement within the NotStatement
.
$sel:orStatement:Statement'
, statement_orStatement
- A logical rule statement used to combine other rule statements with OR
logic. You provide more than one Statement within the OrStatement
.
$sel:rateBasedStatement:Statement'
, statement_rateBasedStatement
- A rate-based rule tracks the rate of requests for each originating IP
address, and triggers the rule action when the rate exceeds a limit that
you specify on the number of requests in any 5-minute time span. You can
use this to put a temporary block on requests from an IP address that is
sending excessive requests.
WAF tracks and manages web requests separately for each instance of a rate-based rule that you use. For example, if you provide the same rate-based rule settings in two web ACLs, each of the two rule statements represents a separate instance of the rate-based rule and gets its own tracking and management by WAF. If you define a rate-based rule inside a rule group, and then use that rule group in multiple places, each use creates a separate instance of the rate-based rule that gets its own tracking and management by WAF.
When the rule action triggers, WAF blocks additional requests from the IP address until the request rate falls below the limit.
You can optionally nest another statement inside the rate-based statement, to narrow the scope of the rule so that it only counts requests that match the nested statement. For example, based on recent requests that you have seen from an attacker, you might create a rate-based rule with a nested AND rule statement that contains the following nested statements:
- An IP match statement with an IP set that specified the address 192.0.2.44.
- A string match statement that searches in the User-Agent header for the string BadBot.
In this rate-based rule, you also define a rate limit. For this example, the rate limit is 1,000. Requests that meet the criteria of both of the nested statements are counted. If the count exceeds 1,000 requests per five minutes, the rule action triggers. Requests that do not meet the criteria of both of the nested statements are not counted towards the rate limit and are not affected by this rule.
You cannot nest a RateBasedStatement
inside another statement, for
example inside a NotStatement
or OrStatement
. You can define a
RateBasedStatement
inside a web ACL and inside a rule group.
$sel:regexMatchStatement:Statement'
, statement_regexMatchStatement
- A rule statement used to search web request components for a match
against a single regular expression.
$sel:regexPatternSetReferenceStatement:Statement'
, statement_regexPatternSetReferenceStatement
- A rule statement used to search web request components for matches with
regular expressions. To use this, create a RegexPatternSet that
specifies the expressions that you want to detect, then use the ARN of
that set in this statement. A web request matches the pattern set rule
statement if the request component matches any of the patterns in the
set. To create a regex pattern set, see CreateRegexPatternSet.
Each regex pattern set rule statement references a regex pattern set. You create and maintain the set independent of your rules. This allows you to use the single set in multiple rules. When you update the referenced set, WAF automatically updates all rules that reference it.
$sel:ruleGroupReferenceStatement:Statement'
, statement_ruleGroupReferenceStatement
- A rule statement used to run the rules that are defined in a RuleGroup.
To use this, create a rule group with your rules, then provide the ARN
of the rule group in this statement.
You cannot nest a RuleGroupReferenceStatement
, for example for use
inside a NotStatement
or OrStatement
. You can only use a rule group
reference statement at the top level inside a web ACL.
$sel:sizeConstraintStatement:Statement'
, statement_sizeConstraintStatement
- A rule statement that compares a number of bytes against the size of a
request component, using a comparison operator, such as greater than (>)
or less than (<). For example, you can use a size constraint statement
to look for query strings that are longer than 100 bytes.
If you configure WAF to inspect the request body, WAF inspects only the first 8192 bytes (8 KB). If the request body for your web requests never exceeds 8192 bytes, you could use a size constraint statement to block requests that have a request body greater than 8192 bytes.
If you choose URI for the value of Part of the request to filter on, the
slash (/) in the URI counts as one character. For example, the URI
/logo.jpg
is nine characters long.
$sel:sqliMatchStatement:Statement'
, statement_sqliMatchStatement
- A rule statement that inspects for malicious SQL code. Attackers insert
malicious SQL code into web requests to do things like modify your
database or extract data from it.
$sel:xssMatchStatement:Statement'
, statement_xssMatchStatement
- A rule statement that inspects for cross-site scripting (XSS) attacks.
In XSS attacks, the attacker uses vulnerabilities in a benign website as
a vehicle to inject malicious client-site scripts into other legitimate
web browsers.
statement_andStatement :: Lens' Statement (Maybe AndStatement) Source #
A logical rule statement used to combine other rule statements with AND
logic. You provide more than one Statement within the AndStatement
.
statement_byteMatchStatement :: Lens' Statement (Maybe ByteMatchStatement) Source #
A rule statement that defines a string match search for WAF to apply to web requests. The byte match statement provides the bytes to search for, the location in requests that you want WAF to search, and other settings. The bytes to search for are typically a string that corresponds with ASCII characters. In the WAF console and the developer guide, this is called a string match statement.
statement_geoMatchStatement :: Lens' Statement (Maybe GeoMatchStatement) Source #
A rule statement that labels web requests by country and region and that matches against web requests based on country code. A geo match rule labels every request that it inspects regardless of whether it finds a match.
- To manage requests only by country, you can use this statement by
itself and specify the countries that you want to match against in
the
CountryCodes
array. - Otherwise, configure your geo match rule with Count action so that it only labels requests. Then, add one or more label match rules to run after the geo match rule and configure them to match against the geographic labels and handle the requests as needed.
WAF labels requests using the alpha-2 country and region codes from the
International Organization for Standardization (ISO) 3166 standard. WAF
determines the codes using either the IP address in the web request
origin or, if you specify it, the address in the geo match
ForwardedIPConfig
.
If you use the web request origin, the label formats are
awswaf:clientip:geo:region:<ISO country code>-<ISO region code>
and
awswaf:clientip:geo:country:<ISO country code>
.
If you use a forwarded IP address, the label formats are
awswaf:forwardedip:geo:region:<ISO country code>-<ISO region code>
and awswaf:forwardedip:geo:country:<ISO country code>
.
For additional details, see Geographic match rule statement in the WAF Developer Guide.
statement_iPSetReferenceStatement :: Lens' Statement (Maybe IPSetReferenceStatement) Source #
A rule statement used to detect web requests coming from particular IP addresses or address ranges. To use this, create an IPSet that specifies the addresses you want to detect, then use the ARN of that set in this statement. To create an IP set, see CreateIPSet.
Each IP set rule statement references an IP set. You create and maintain the set independent of your rules. This allows you to use the single set in multiple rules. When you update the referenced set, WAF automatically updates all rules that reference it.
statement_labelMatchStatement :: Lens' Statement (Maybe LabelMatchStatement) Source #
A rule statement to match against labels that have been added to the web request by rules that have already run in the web ACL.
The label match statement provides the label or namespace string to search for. The label string can represent a part or all of the fully qualified label name that had been added to the web request. Fully qualified labels have a prefix, optional namespaces, and label name. The prefix identifies the rule group or web ACL context of the rule that added the label. If you do not provide the fully qualified name in your label match string, WAF performs the search for labels that were added in the same context as the label match statement.
statement_managedRuleGroupStatement :: Lens' Statement (Maybe ManagedRuleGroupStatement) Source #
A rule statement used to run the rules that are defined in a managed rule group. To use this, provide the vendor name and the name of the rule group in this statement. You can retrieve the required names by calling ListAvailableManagedRuleGroups.
You cannot nest a ManagedRuleGroupStatement
, for example for use
inside a NotStatement
or OrStatement
. It can only be referenced as a
top-level statement within a rule.
You are charged additional fees when you use the WAF Bot Control managed
rule group AWSManagedRulesBotControlRuleSet
or the WAF Fraud Control
account takeover prevention (ATP) managed rule group
AWSManagedRulesATPRuleSet
. For more information, see
WAF Pricing.
statement_notStatement :: Lens' Statement (Maybe NotStatement) Source #
A logical rule statement used to negate the results of another rule
statement. You provide one Statement within the NotStatement
.
statement_orStatement :: Lens' Statement (Maybe OrStatement) Source #
A logical rule statement used to combine other rule statements with OR
logic. You provide more than one Statement within the OrStatement
.
statement_rateBasedStatement :: Lens' Statement (Maybe RateBasedStatement) Source #
A rate-based rule tracks the rate of requests for each originating IP address, and triggers the rule action when the rate exceeds a limit that you specify on the number of requests in any 5-minute time span. You can use this to put a temporary block on requests from an IP address that is sending excessive requests.
WAF tracks and manages web requests separately for each instance of a rate-based rule that you use. For example, if you provide the same rate-based rule settings in two web ACLs, each of the two rule statements represents a separate instance of the rate-based rule and gets its own tracking and management by WAF. If you define a rate-based rule inside a rule group, and then use that rule group in multiple places, each use creates a separate instance of the rate-based rule that gets its own tracking and management by WAF.
When the rule action triggers, WAF blocks additional requests from the IP address until the request rate falls below the limit.
You can optionally nest another statement inside the rate-based statement, to narrow the scope of the rule so that it only counts requests that match the nested statement. For example, based on recent requests that you have seen from an attacker, you might create a rate-based rule with a nested AND rule statement that contains the following nested statements:
- An IP match statement with an IP set that specified the address 192.0.2.44.
- A string match statement that searches in the User-Agent header for the string BadBot.
In this rate-based rule, you also define a rate limit. For this example, the rate limit is 1,000. Requests that meet the criteria of both of the nested statements are counted. If the count exceeds 1,000 requests per five minutes, the rule action triggers. Requests that do not meet the criteria of both of the nested statements are not counted towards the rate limit and are not affected by this rule.
You cannot nest a RateBasedStatement
inside another statement, for
example inside a NotStatement
or OrStatement
. You can define a
RateBasedStatement
inside a web ACL and inside a rule group.
statement_regexMatchStatement :: Lens' Statement (Maybe RegexMatchStatement) Source #
A rule statement used to search web request components for a match against a single regular expression.
statement_regexPatternSetReferenceStatement :: Lens' Statement (Maybe RegexPatternSetReferenceStatement) Source #
A rule statement used to search web request components for matches with regular expressions. To use this, create a RegexPatternSet that specifies the expressions that you want to detect, then use the ARN of that set in this statement. A web request matches the pattern set rule statement if the request component matches any of the patterns in the set. To create a regex pattern set, see CreateRegexPatternSet.
Each regex pattern set rule statement references a regex pattern set. You create and maintain the set independent of your rules. This allows you to use the single set in multiple rules. When you update the referenced set, WAF automatically updates all rules that reference it.
statement_ruleGroupReferenceStatement :: Lens' Statement (Maybe RuleGroupReferenceStatement) Source #
A rule statement used to run the rules that are defined in a RuleGroup. To use this, create a rule group with your rules, then provide the ARN of the rule group in this statement.
You cannot nest a RuleGroupReferenceStatement
, for example for use
inside a NotStatement
or OrStatement
. You can only use a rule group
reference statement at the top level inside a web ACL.
statement_sizeConstraintStatement :: Lens' Statement (Maybe SizeConstraintStatement) Source #
A rule statement that compares a number of bytes against the size of a request component, using a comparison operator, such as greater than (>) or less than (<). For example, you can use a size constraint statement to look for query strings that are longer than 100 bytes.
If you configure WAF to inspect the request body, WAF inspects only the first 8192 bytes (8 KB). If the request body for your web requests never exceeds 8192 bytes, you could use a size constraint statement to block requests that have a request body greater than 8192 bytes.
If you choose URI for the value of Part of the request to filter on, the
slash (/) in the URI counts as one character. For example, the URI
/logo.jpg
is nine characters long.
statement_sqliMatchStatement :: Lens' Statement (Maybe SqliMatchStatement) Source #
A rule statement that inspects for malicious SQL code. Attackers insert malicious SQL code into web requests to do things like modify your database or extract data from it.
statement_xssMatchStatement :: Lens' Statement (Maybe XssMatchStatement) Source #
A rule statement that inspects for cross-site scripting (XSS) attacks. In XSS attacks, the attacker uses vulnerabilities in a benign website as a vehicle to inject malicious client-site scripts into other legitimate web browsers.
Tag
A tag associated with an Amazon Web Services resource. Tags are key:value pairs that you can use to categorize and manage your resources, for purposes like billing or other management. Typically, the tag key represents a category, such as "environment", and the tag value represents a specific value within that category, such as "test," "development," or "production". Or you might set the tag key to "customer" and the value to the customer name or ID. You can specify one or more tags to add to each Amazon Web Services resource, up to 50 tags for a resource.
You can tag the Amazon Web Services resources that you manage through WAF: web ACLs, rule groups, IP sets, and regex pattern sets. You can't manage or view tags through the WAF console.
See: newTag
smart constructor.
Tag' | |
|
Instances
FromJSON Tag Source # | |
ToJSON Tag Source # | |
Defined in Amazonka.WAFV2.Types.Tag | |
Generic Tag Source # | |
Read Tag Source # | |
Show Tag Source # | |
NFData Tag Source # | |
Defined in Amazonka.WAFV2.Types.Tag | |
Eq Tag Source # | |
Hashable Tag Source # | |
Defined in Amazonka.WAFV2.Types.Tag | |
type Rep Tag Source # | |
Defined in Amazonka.WAFV2.Types.Tag type Rep Tag = D1 ('MetaData "Tag" "Amazonka.WAFV2.Types.Tag" "amazonka-wafv2-2.0-3v3WgpYn7RT5hSd6MsT5dN" 'False) (C1 ('MetaCons "Tag'" 'PrefixI 'True) (S1 ('MetaSel ('Just "key") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Text) :*: S1 ('MetaSel ('Just "value") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Text))) |
Create a value of Tag
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:key:Tag'
, tag_key
- Part of the key:value pair that defines a tag. You can use a tag key to
describe a category of information, such as "customer." Tag keys are
case-sensitive.
$sel:value:Tag'
, tag_value
- Part of the key:value pair that defines a tag. You can use a tag value
to describe a specific value within a category, such as "companyA" or
"companyB." Tag values are case-sensitive.
tag_key :: Lens' Tag Text Source #
Part of the key:value pair that defines a tag. You can use a tag key to describe a category of information, such as "customer." Tag keys are case-sensitive.
tag_value :: Lens' Tag Text Source #
Part of the key:value pair that defines a tag. You can use a tag value to describe a specific value within a category, such as "companyA" or "companyB." Tag values are case-sensitive.
TagInfoForResource
data TagInfoForResource Source #
The collection of tagging definitions for an Amazon Web Services resource. Tags are key:value pairs that you can use to categorize and manage your resources, for purposes like billing or other management. Typically, the tag key represents a category, such as "environment", and the tag value represents a specific value within that category, such as "test," "development," or "production". Or you might set the tag key to "customer" and the value to the customer name or ID. You can specify one or more tags to add to each Amazon Web Services resource, up to 50 tags for a resource.
You can tag the Amazon Web Services resources that you manage through WAF: web ACLs, rule groups, IP sets, and regex pattern sets. You can't manage or view tags through the WAF console.
See: newTagInfoForResource
smart constructor.
Instances
newTagInfoForResource :: TagInfoForResource Source #
Create a value of TagInfoForResource
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:resourceARN:TagInfoForResource'
, tagInfoForResource_resourceARN
- The Amazon Resource Name (ARN) of the resource.
$sel:tagList:TagInfoForResource'
, tagInfoForResource_tagList
- The array of Tag objects defined for the resource.
tagInfoForResource_resourceARN :: Lens' TagInfoForResource (Maybe Text) Source #
The Amazon Resource Name (ARN) of the resource.
tagInfoForResource_tagList :: Lens' TagInfoForResource (Maybe (NonEmpty Tag)) Source #
The array of Tag objects defined for the resource.
TextTransformation
data TextTransformation Source #
Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection.
See: newTextTransformation
smart constructor.
TextTransformation' | |
|
Instances
newTextTransformation Source #
Create a value of TextTransformation
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:priority:TextTransformation'
, textTransformation_priority
- Sets the relative processing order for multiple transformations that are
defined for a rule statement. WAF processes all transformations, from
lowest priority to highest, before inspecting the transformed content.
The priorities don't need to be consecutive, but they must all be
different.
$sel:type':TextTransformation'
, textTransformation_type
- You can specify the following transformation types:
BASE64_DECODE - Decode a Base64
-encoded string.
BASE64_DECODE_EXT - Decode a Base64
-encoded string, but use a
forgiving implementation that ignores characters that aren't valid.
CMD_LINE - Command-line transformations. These are helpful in reducing effectiveness of attackers who inject an operating system command-line command and use unusual formatting to disguise some or all of the command.
- 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 - Replace these 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.
CSS_DECODE - Decode characters that were encoded using CSS 2.x
escape rules syndata.html#characters
. This function uses up to two
bytes in the decoding process, so it can help to uncover ASCII
characters that were encoded using CSS encoding that wouldn’t typically
be encoded. It's also useful in countering evasion, which is a
combination of a backslash and non-hexadecimal characters. For example,
ja\vascript
for javascript.
ESCAPE_SEQ_DECODE - Decode the following ANSI C escape sequences:
\a
, \b
, \f
, \n
, \r
, \t
, \v
, \\
, \?
, \'
,
\"
, \xHH
(hexadecimal), \0OOO
(octal). Encodings that aren't
valid remain in the output.
HEX_DECODE - Decode a string of hexadecimal characters into a binary.
HTML_ENTITY_DECODE - Replace HTML-encoded characters with unencoded
characters. HTML_ENTITY_DECODE
performs these 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
JS_DECODE - Decode JavaScript escape sequences. If a \
u
HHHH
code is in the full-width ASCII code range of FF01-FF5E
, then the
higher byte is used to detect and adjust the lower byte. If not, only
the lower byte is used and the higher byte is zeroed, causing a possible
loss of information.
LOWERCASE - Convert uppercase letters (A-Z) to lowercase (a-z).
MD5 - Calculate an MD5 hash from the data in the input. The computed hash is in a raw binary form.
NONE - Specify NONE
if you don't want any text transformations.
NORMALIZE_PATH - Remove multiple slashes, directory self-references, and directory back-references that are not at the beginning of the input from an input string.
NORMALIZE_PATH_WIN - This is the same as NORMALIZE_PATH
, but first
converts backslash characters to forward slashes.
REMOVE_NULLS - Remove all NULL
bytes from the input.
REPLACE_COMMENTS - Replace each occurrence of a C-style comment
(/* ... */
) with a single space. Multiple consecutive occurrences
are not compressed. Unterminated comments are also replaced with a space
(ASCII 0x20). However, a standalone termination of a comment (*/
) is
not acted upon.
REPLACE_NULLS - Replace NULL bytes in the input with space
characters (ASCII 0x20
).
SQL_HEX_DECODE - Decode SQL hex data. Example (0x414243
) will be
decoded to (ABC
).
URL_DECODE - Decode a URL-encoded value.
URL_DECODE_UNI - Like URL_DECODE
, but with support for
Microsoft-specific %u
encoding. If the code is in the full-width ASCII
code range of FF01-FF5E
, the higher byte is used to detect and adjust
the lower byte. Otherwise, only the lower byte is used and the higher
byte is zeroed.
UTF8_TO_UNICODE - Convert all UTF-8 character sequences to Unicode. This helps input normalization, and minimizing false-positives and false-negatives for non-English languages.
textTransformation_priority :: Lens' TextTransformation Natural Source #
Sets the relative processing order for multiple transformations that are defined for a rule statement. WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. The priorities don't need to be consecutive, but they must all be different.
textTransformation_type :: Lens' TextTransformation TextTransformationType Source #
You can specify the following transformation types:
BASE64_DECODE - Decode a Base64
-encoded string.
BASE64_DECODE_EXT - Decode a Base64
-encoded string, but use a
forgiving implementation that ignores characters that aren't valid.
CMD_LINE - Command-line transformations. These are helpful in reducing effectiveness of attackers who inject an operating system command-line command and use unusual formatting to disguise some or all of the command.
- 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 - Replace these 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.
CSS_DECODE - Decode characters that were encoded using CSS 2.x
escape rules syndata.html#characters
. This function uses up to two
bytes in the decoding process, so it can help to uncover ASCII
characters that were encoded using CSS encoding that wouldn’t typically
be encoded. It's also useful in countering evasion, which is a
combination of a backslash and non-hexadecimal characters. For example,
ja\vascript
for javascript.
ESCAPE_SEQ_DECODE - Decode the following ANSI C escape sequences:
\a
, \b
, \f
, \n
, \r
, \t
, \v
, \\
, \?
, \'
,
\"
, \xHH
(hexadecimal), \0OOO
(octal). Encodings that aren't
valid remain in the output.
HEX_DECODE - Decode a string of hexadecimal characters into a binary.
HTML_ENTITY_DECODE - Replace HTML-encoded characters with unencoded
characters. HTML_ENTITY_DECODE
performs these 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
JS_DECODE - Decode JavaScript escape sequences. If a \
u
HHHH
code is in the full-width ASCII code range of FF01-FF5E
, then the
higher byte is used to detect and adjust the lower byte. If not, only
the lower byte is used and the higher byte is zeroed, causing a possible
loss of information.
LOWERCASE - Convert uppercase letters (A-Z) to lowercase (a-z).
MD5 - Calculate an MD5 hash from the data in the input. The computed hash is in a raw binary form.
NONE - Specify NONE
if you don't want any text transformations.
NORMALIZE_PATH - Remove multiple slashes, directory self-references, and directory back-references that are not at the beginning of the input from an input string.
NORMALIZE_PATH_WIN - This is the same as NORMALIZE_PATH
, but first
converts backslash characters to forward slashes.
REMOVE_NULLS - Remove all NULL
bytes from the input.
REPLACE_COMMENTS - Replace each occurrence of a C-style comment
(/* ... */
) with a single space. Multiple consecutive occurrences
are not compressed. Unterminated comments are also replaced with a space
(ASCII 0x20). However, a standalone termination of a comment (*/
) is
not acted upon.
REPLACE_NULLS - Replace NULL bytes in the input with space
characters (ASCII 0x20
).
SQL_HEX_DECODE - Decode SQL hex data. Example (0x414243
) will be
decoded to (ABC
).
URL_DECODE - Decode a URL-encoded value.
URL_DECODE_UNI - Like URL_DECODE
, but with support for
Microsoft-specific %u
encoding. If the code is in the full-width ASCII
code range of FF01-FF5E
, the higher byte is used to detect and adjust
the lower byte. Otherwise, only the lower byte is used and the higher
byte is zeroed.
UTF8_TO_UNICODE - Convert all UTF-8 character sequences to Unicode. This helps input normalization, and minimizing false-positives and false-negatives for non-English languages.
TimeWindow
data TimeWindow Source #
In a GetSampledRequests request, the StartTime
and EndTime
objects
specify the time range for which you want WAF to return a sample of web
requests.
You must specify the times in Coordinated Universal Time (UTC) format.
UTC format includes the special designator, Z
. For example,
"2016-09-27T14:50Z"
. You can specify any time range in the previous
three hours.
In a GetSampledRequests response, the StartTime
and EndTime
objects
specify the time range for which WAF actually returned a sample of web
requests. WAF gets the specified number of requests from among the first
5,000 requests that your Amazon Web Services resource receives during
the specified time period. If your resource receives more than 5,000
requests during that period, WAF stops sampling after the 5,000th
request. In that case, EndTime
is the time that WAF received the
5,000th request.
See: newTimeWindow
smart constructor.
TimeWindow' | |
|
Instances
Create a value of TimeWindow
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:startTime:TimeWindow'
, timeWindow_startTime
- The beginning of the time range from which you want GetSampledRequests
to return a sample of the requests that your Amazon Web Services
resource received. You must specify the times in Coordinated Universal
Time (UTC) format. UTC format includes the special designator, Z
. For
example, "2016-09-27T14:50Z"
. You can specify any time range in the
previous three hours.
$sel:endTime:TimeWindow'
, timeWindow_endTime
- The end of the time range from which you want GetSampledRequests
to
return a sample of the requests that your Amazon Web Services resource
received. You must specify the times in Coordinated Universal Time (UTC)
format. UTC format includes the special designator, Z
. For example,
"2016-09-27T14:50Z"
. You can specify any time range in the previous
three hours.
timeWindow_startTime :: Lens' TimeWindow UTCTime Source #
The beginning of the time range from which you want GetSampledRequests
to return a sample of the requests that your Amazon Web Services
resource received. You must specify the times in Coordinated Universal
Time (UTC) format. UTC format includes the special designator, Z
. For
example, "2016-09-27T14:50Z"
. You can specify any time range in the
previous three hours.
timeWindow_endTime :: Lens' TimeWindow UTCTime Source #
The end of the time range from which you want GetSampledRequests
to
return a sample of the requests that your Amazon Web Services resource
received. You must specify the times in Coordinated Universal Time (UTC)
format. UTC format includes the special designator, Z
. For example,
"2016-09-27T14:50Z"
. You can specify any time range in the previous
three hours.
UriPath
Inspect the path component of the URI of the web request. This is the
part of the web request that identifies a resource. For example,
/images/daily-ad.jpg
.
This is used only in the FieldToMatch specification for some web request component types.
JSON specification: "UriPath": {}
See: newUriPath
smart constructor.
Instances
FromJSON UriPath Source # | |
ToJSON UriPath Source # | |
Defined in Amazonka.WAFV2.Types.UriPath | |
Generic UriPath Source # | |
Read UriPath Source # | |
Show UriPath Source # | |
NFData UriPath Source # | |
Defined in Amazonka.WAFV2.Types.UriPath | |
Eq UriPath Source # | |
Hashable UriPath Source # | |
Defined in Amazonka.WAFV2.Types.UriPath | |
type Rep UriPath Source # | |
newUriPath :: UriPath Source #
Create a value of UriPath
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
UsernameField
data UsernameField Source #
Details about your login page username field, used in a
ManagedRuleGroupConfig
.
See: newUsernameField
smart constructor.
UsernameField' | |
|
Instances
Create a value of UsernameField
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:identifier:UsernameField'
, usernameField_identifier
- The name of the username field. For example /form/username
.
usernameField_identifier :: Lens' UsernameField Text Source #
The name of the username field. For example /form/username
.
VersionToPublish
data VersionToPublish Source #
A version of the named managed rule group, that the rule group's vendor publishes for use by customers.
This is intended for use only by vendors of managed rule sets. Vendors are Amazon Web Services and Amazon Web Services Marketplace sellers.
Vendors, you can use the managed rule set APIs to provide controlled
rollout of your versioned managed rule group offerings for your
customers. The APIs are ListManagedRuleSets
, GetManagedRuleSet
,
PutManagedRuleSetVersions
, and
UpdateManagedRuleSetVersionExpiryDate
.
See: newVersionToPublish
smart constructor.
VersionToPublish' | |
|
Instances
newVersionToPublish :: VersionToPublish Source #
Create a value of VersionToPublish
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:associatedRuleGroupArn:VersionToPublish'
, versionToPublish_associatedRuleGroupArn
- The Amazon Resource Name (ARN) of the vendor's rule group that's used
in the published managed rule group version.
$sel:forecastedLifetime:VersionToPublish'
, versionToPublish_forecastedLifetime
- The amount of time the vendor expects this version of the managed rule
group to last, in days.
versionToPublish_associatedRuleGroupArn :: Lens' VersionToPublish (Maybe Text) Source #
The Amazon Resource Name (ARN) of the vendor's rule group that's used in the published managed rule group version.
versionToPublish_forecastedLifetime :: Lens' VersionToPublish (Maybe Natural) Source #
The amount of time the vendor expects this version of the managed rule group to last, in days.
VisibilityConfig
data VisibilityConfig Source #
Defines and enables Amazon CloudWatch metrics and web request sample collection.
See: newVisibilityConfig
smart constructor.
VisibilityConfig' | |
|
Instances
:: Bool | |
-> Bool | |
-> Text | |
-> VisibilityConfig |
Create a value of VisibilityConfig
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:sampledRequestsEnabled:VisibilityConfig'
, visibilityConfig_sampledRequestsEnabled
- A boolean indicating whether WAF should store a sampling of the web
requests that match the rules. You can view the sampled requests through
the WAF console.
$sel:cloudWatchMetricsEnabled:VisibilityConfig'
, visibilityConfig_cloudWatchMetricsEnabled
- A boolean indicating whether the associated resource sends metrics to
Amazon CloudWatch. For the list of available metrics, see
WAF Metrics.
$sel:metricName:VisibilityConfig'
, visibilityConfig_metricName
- A name of the Amazon CloudWatch metric. The name can contain only the
characters: A-Z, a-z, 0-9, - (hyphen), and _ (underscore). The name can
be from one to 128 characters long. It can't contain whitespace or
metric names reserved for WAF, for example All
and Default_Action
.
visibilityConfig_sampledRequestsEnabled :: Lens' VisibilityConfig Bool Source #
A boolean indicating whether WAF should store a sampling of the web requests that match the rules. You can view the sampled requests through the WAF console.
visibilityConfig_cloudWatchMetricsEnabled :: Lens' VisibilityConfig Bool Source #
A boolean indicating whether the associated resource sends metrics to Amazon CloudWatch. For the list of available metrics, see WAF Metrics.
visibilityConfig_metricName :: Lens' VisibilityConfig Text Source #
A name of the Amazon CloudWatch metric. The name can contain only the
characters: A-Z, a-z, 0-9, - (hyphen), and _ (underscore). The name can
be from one to 128 characters long. It can't contain whitespace or
metric names reserved for WAF, for example All
and Default_Action
.
WebACL
A web ACL defines a collection of rules to use to inspect and control web requests. Each rule has an action defined (allow, block, or count) for requests that match the statement of the rule. In the web ACL, you assign a default action to take (allow, block) for any request that does not match any of the rules. The rules in a web ACL can be a combination of the types Rule, RuleGroup, and managed rule group. You can associate a web ACL with one or more Amazon Web Services resources to protect. The resources can be an Amazon CloudFront distribution, an Amazon API Gateway REST API, an Application Load Balancer, an AppSync GraphQL API, or an Amazon Cognito user pool.
See: newWebACL
smart constructor.
WebACL' | |
|
Instances
:: Text | |
-> Text | |
-> Text | |
-> DefaultAction | |
-> VisibilityConfig | |
-> WebACL |
Create a value of WebACL
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:capacity:WebACL'
, webACL_capacity
- The web ACL capacity units (WCUs) currently being used by this web ACL.
WAF uses WCUs to calculate and control the operating resources that are used to run your rules, rule groups, and web ACLs. WAF calculates capacity differently for each rule type, to reflect the relative cost of each rule. Simple rules that cost little to run use fewer WCUs than more complex rules that use more processing power. Rule group capacity is fixed at creation, which helps users plan their web ACL WCU usage when they use a rule group. The WCU limit for web ACLs is 1,500.
WebACL
, webACL_captchaConfig
- Specifies how WAF should handle CAPTCHA
evaluations for rules that
don't have their own CaptchaConfig
settings. If you don't specify
this, WAF uses its default settings for CaptchaConfig
.
WebACL
, webACL_challengeConfig
- Specifies how WAF should handle challenge evaluations for rules that
don't have their own ChallengeConfig
settings. If you don't specify
this, WAF uses its default settings for ChallengeConfig
.
$sel:customResponseBodies:WebACL'
, webACL_customResponseBodies
- A map of custom response keys and content bodies. When you create a rule
with a block action, you can send a custom response to the web request.
You define these for the web ACL, and then use them in the rules and
default actions that you define in the web ACL.
For information about customizing web requests and responses, see Customizing web requests and responses in WAF in the WAF Developer Guide.
For information about the limits on count and size for custom request and response settings, see WAF quotas in the WAF Developer Guide.
$sel:description:WebACL'
, webACL_description
- A description of the web ACL that helps with identification.
$sel:labelNamespace:WebACL'
, webACL_labelNamespace
- The label namespace prefix for this web ACL. All labels added by rules
in this web ACL have this prefix.
The syntax for the label namespace prefix for a web ACL is the following:
awswaf:<account ID>:webacl:<web ACL name>:
When a rule with a label matches a web request, WAF adds the fully qualified label to the request. A fully qualified label is made up of the label namespace from the rule group or web ACL where the rule is defined and the label from the rule, separated by a colon:
<label namespace>:<label from rule>
$sel:managedByFirewallManager:WebACL'
, webACL_managedByFirewallManager
- Indicates whether this web ACL is managed by Firewall Manager. If true,
then only Firewall Manager can delete the web ACL or any Firewall
Manager rule groups in the web ACL.
$sel:postProcessFirewallManagerRuleGroups:WebACL'
, webACL_postProcessFirewallManagerRuleGroups
- The last set of rules for WAF to process in the web ACL. This is defined
in an Firewall Manager WAF policy and contains only rule group
references. You can't alter these. Any rules and rule groups that you
define for the web ACL are prioritized before these.
In the Firewall Manager WAF policy, the Firewall Manager administrator can define a set of rule groups to run first in the web ACL and a set of rule groups to run last. Within each set, the administrator prioritizes the rule groups, to determine their relative processing order.
$sel:preProcessFirewallManagerRuleGroups:WebACL'
, webACL_preProcessFirewallManagerRuleGroups
- The first set of rules for WAF to process in the web ACL. This is
defined in an Firewall Manager WAF policy and contains only rule group
references. You can't alter these. Any rules and rule groups that you
define for the web ACL are prioritized after these.
In the Firewall Manager WAF policy, the Firewall Manager administrator can define a set of rule groups to run first in the web ACL and a set of rule groups to run last. Within each set, the administrator prioritizes the rule groups, to determine their relative processing order.
$sel:rules:WebACL'
, webACL_rules
- The Rule statements used to identify the web requests that you want to
allow, block, or count. Each rule includes one top-level statement that
WAF uses to identify matching web requests, and parameters that govern
how WAF handles them.
$sel:tokenDomains:WebACL'
, webACL_tokenDomains
- Specifies the domains that WAF should accept in a web request token.
This enables the use of tokens across multiple protected websites. When
WAF provides a token, it uses the domain of the Amazon Web Services
resource that the web ACL is protecting. If you don't specify a list of
token domains, WAF accepts tokens only for the domain of the protected
resource. With a token domain list, WAF accepts the resource's host
domain plus all domains in the token domain list, including their
prefixed subdomains.
WebACL
, webACL_name
- The name of the web ACL. You cannot change the name of a web ACL after
you create it.
$sel:id:WebACL'
, webACL_id
- A unique identifier for the WebACL
. This ID is returned in the
responses to create and list commands. You use this ID to do things like
get, update, and delete a WebACL
.
$sel:arn:WebACL'
, webACL_arn
- The Amazon Resource Name (ARN) of the web ACL that you want to associate
with the resource.
$sel:defaultAction:WebACL'
, webACL_defaultAction
- The action to perform if none of the Rules
contained in the WebACL
match.
WebACL
, webACL_visibilityConfig
- Defines and enables Amazon CloudWatch metrics and web request sample
collection.
webACL_capacity :: Lens' WebACL (Maybe Natural) Source #
The web ACL capacity units (WCUs) currently being used by this web ACL.
WAF uses WCUs to calculate and control the operating resources that are used to run your rules, rule groups, and web ACLs. WAF calculates capacity differently for each rule type, to reflect the relative cost of each rule. Simple rules that cost little to run use fewer WCUs than more complex rules that use more processing power. Rule group capacity is fixed at creation, which helps users plan their web ACL WCU usage when they use a rule group. The WCU limit for web ACLs is 1,500.
webACL_captchaConfig :: Lens' WebACL (Maybe CaptchaConfig) Source #
Specifies how WAF should handle CAPTCHA
evaluations for rules that
don't have their own CaptchaConfig
settings. If you don't specify
this, WAF uses its default settings for CaptchaConfig
.
webACL_challengeConfig :: Lens' WebACL (Maybe ChallengeConfig) Source #
Specifies how WAF should handle challenge evaluations for rules that
don't have their own ChallengeConfig
settings. If you don't specify
this, WAF uses its default settings for ChallengeConfig
.
webACL_customResponseBodies :: Lens' WebACL (Maybe (HashMap Text CustomResponseBody)) Source #
A map of custom response keys and content bodies. When you create a rule with a block action, you can send a custom response to the web request. You define these for the web ACL, and then use them in the rules and default actions that you define in the web ACL.
For information about customizing web requests and responses, see Customizing web requests and responses in WAF in the WAF Developer Guide.
For information about the limits on count and size for custom request and response settings, see WAF quotas in the WAF Developer Guide.
webACL_description :: Lens' WebACL (Maybe Text) Source #
A description of the web ACL that helps with identification.
webACL_labelNamespace :: Lens' WebACL (Maybe Text) Source #
The label namespace prefix for this web ACL. All labels added by rules in this web ACL have this prefix.
The syntax for the label namespace prefix for a web ACL is the following:
awswaf:<account ID>:webacl:<web ACL name>:
When a rule with a label matches a web request, WAF adds the fully qualified label to the request. A fully qualified label is made up of the label namespace from the rule group or web ACL where the rule is defined and the label from the rule, separated by a colon:
<label namespace>:<label from rule>
webACL_managedByFirewallManager :: Lens' WebACL (Maybe Bool) Source #
Indicates whether this web ACL is managed by Firewall Manager. If true, then only Firewall Manager can delete the web ACL or any Firewall Manager rule groups in the web ACL.
webACL_postProcessFirewallManagerRuleGroups :: Lens' WebACL (Maybe [FirewallManagerRuleGroup]) Source #
The last set of rules for WAF to process in the web ACL. This is defined in an Firewall Manager WAF policy and contains only rule group references. You can't alter these. Any rules and rule groups that you define for the web ACL are prioritized before these.
In the Firewall Manager WAF policy, the Firewall Manager administrator can define a set of rule groups to run first in the web ACL and a set of rule groups to run last. Within each set, the administrator prioritizes the rule groups, to determine their relative processing order.
webACL_preProcessFirewallManagerRuleGroups :: Lens' WebACL (Maybe [FirewallManagerRuleGroup]) Source #
The first set of rules for WAF to process in the web ACL. This is defined in an Firewall Manager WAF policy and contains only rule group references. You can't alter these. Any rules and rule groups that you define for the web ACL are prioritized after these.
In the Firewall Manager WAF policy, the Firewall Manager administrator can define a set of rule groups to run first in the web ACL and a set of rule groups to run last. Within each set, the administrator prioritizes the rule groups, to determine their relative processing order.
webACL_rules :: Lens' WebACL (Maybe [Rule]) Source #
The Rule statements used to identify the web requests that you want to allow, block, or count. Each rule includes one top-level statement that WAF uses to identify matching web requests, and parameters that govern how WAF handles them.
webACL_tokenDomains :: Lens' WebACL (Maybe (NonEmpty Text)) Source #
Specifies the domains that WAF should accept in a web request token. This enables the use of tokens across multiple protected websites. When WAF provides a token, it uses the domain of the Amazon Web Services resource that the web ACL is protecting. If you don't specify a list of token domains, WAF accepts tokens only for the domain of the protected resource. With a token domain list, WAF accepts the resource's host domain plus all domains in the token domain list, including their prefixed subdomains.
webACL_name :: Lens' WebACL Text Source #
The name of the web ACL. You cannot change the name of a web ACL after you create it.
webACL_id :: Lens' WebACL Text Source #
A unique identifier for the WebACL
. This ID is returned in the
responses to create and list commands. You use this ID to do things like
get, update, and delete a WebACL
.
webACL_arn :: Lens' WebACL Text Source #
The Amazon Resource Name (ARN) of the web ACL that you want to associate with the resource.
webACL_defaultAction :: Lens' WebACL DefaultAction Source #
The action to perform if none of the Rules
contained in the WebACL
match.
webACL_visibilityConfig :: Lens' WebACL VisibilityConfig Source #
Defines and enables Amazon CloudWatch metrics and web request sample collection.
WebACLSummary
data WebACLSummary Source #
High-level information about a WebACL, returned by operations like
create and list. This provides information like the ID, that you can use
to retrieve and manage a WebACL
, and the ARN, that you provide to
operations like AssociateWebACL.
See: newWebACLSummary
smart constructor.
WebACLSummary' | |
|
Instances
newWebACLSummary :: WebACLSummary Source #
Create a value of WebACLSummary
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:arn:WebACLSummary'
, webACLSummary_arn
- The Amazon Resource Name (ARN) of the entity.
$sel:description:WebACLSummary'
, webACLSummary_description
- A description of the web ACL that helps with identification.
$sel:id:WebACLSummary'
, webACLSummary_id
- The unique identifier for the web ACL. This ID is returned in the
responses to create and list commands. You provide it to operations like
update and delete.
$sel:lockToken:WebACLSummary'
, webACLSummary_lockToken
- A token used for optimistic locking. WAF returns a token to your get
and list
requests, to mark the state of the entity at the time of the
request. To make changes to the entity associated with the token, you
provide the token to operations like update
and delete
. WAF uses the
token to ensure that no changes have been made to the entity since you
last retrieved it. If a change has been made, the update fails with a
WAFOptimisticLockException
. If this happens, perform another get
,
and use the new token returned by that operation.
$sel:name:WebACLSummary'
, webACLSummary_name
- The name of the web ACL. You cannot change the name of a web ACL after
you create it.
webACLSummary_arn :: Lens' WebACLSummary (Maybe Text) Source #
The Amazon Resource Name (ARN) of the entity.
webACLSummary_description :: Lens' WebACLSummary (Maybe Text) Source #
A description of the web ACL that helps with identification.
webACLSummary_id :: Lens' WebACLSummary (Maybe Text) Source #
The unique identifier for the web ACL. This ID is returned in the responses to create and list commands. You provide it to operations like update and delete.
webACLSummary_lockToken :: Lens' WebACLSummary (Maybe Text) Source #
A token used for optimistic locking. WAF returns a token to your get
and list
requests, to mark the state of the entity at the time of the
request. To make changes to the entity associated with the token, you
provide the token to operations like update
and delete
. WAF uses the
token to ensure that no changes have been made to the entity since you
last retrieved it. If a change has been made, the update fails with a
WAFOptimisticLockException
. If this happens, perform another get
,
and use the new token returned by that operation.
webACLSummary_name :: Lens' WebACLSummary (Maybe Text) Source #
The name of the web ACL. You cannot change the name of a web ACL after you create it.
XssMatchStatement
data XssMatchStatement Source #
A rule statement that inspects for cross-site scripting (XSS) attacks. In XSS attacks, the attacker uses vulnerabilities in a benign website as a vehicle to inject malicious client-site scripts into other legitimate web browsers.
See: newXssMatchStatement
smart constructor.
XssMatchStatement' | |
|
Instances
Create a value of XssMatchStatement
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:fieldToMatch:XssMatchStatement'
, xssMatchStatement_fieldToMatch
- The part of the web request that you want WAF to inspect.
$sel:textTransformations:XssMatchStatement'
, xssMatchStatement_textTransformations
- Text transformations eliminate some of the unusual formatting that
attackers use in web requests in an effort to bypass detection. If you
specify one or more transformations in a rule statement, WAF performs
all transformations on the content of the request component identified
by FieldToMatch
, starting from the lowest priority setting, before
inspecting the content for a match.
xssMatchStatement_fieldToMatch :: Lens' XssMatchStatement FieldToMatch Source #
The part of the web request that you want WAF to inspect.
xssMatchStatement_textTransformations :: Lens' XssMatchStatement (NonEmpty TextTransformation) Source #
Text transformations eliminate some of the unusual formatting that
attackers use in web requests in an effort to bypass detection. If you
specify one or more transformations in a rule statement, WAF performs
all transformations on the content of the request component identified
by FieldToMatch
, starting from the lowest priority setting, before
inspecting the content for a match.