AWS WAFV2

2023/09/25 - AWS WAFV2 - 11 updated api methods

Changes  You can now perform an exact match against the web request's JA3 fingerprint.

CheckCapacity (updated) Link ¶
Changes (request)
{'Rules': {'Statement': {'ByteMatchStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                        '| '
                                                                                                        'NO_MATCH'}}},
                         'RegexMatchStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                         '| '
                                                                                                         'NO_MATCH'}}},
                         'RegexPatternSetReferenceStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                                       '| '
                                                                                                                       'NO_MATCH'}}},
                         'SizeConstraintStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                             '| '
                                                                                                             'NO_MATCH'}}},
                         'SqliMatchStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                        '| '
                                                                                                        'NO_MATCH'}}},
                         'XssMatchStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                       '| '
                                                                                                       'NO_MATCH'}}}}}}

Returns the web ACL capacity unit (WCU) requirements for a specified scope and set of rules. You can use this to check the capacity requirements for the rules you want to use in a RuleGroup or WebACL.

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. For more information, see WAF web ACL capacity units (WCU) in the WAF Developer Guide.

See also: AWS API Documentation

Request Syntax

client.check_capacity(
    Scope='CLOUDFRONT'|'REGIONAL',
    Rules=[
        {
            'Name': 'string',
            'Priority': 123,
            'Statement': {
                'ByteMatchStatement': {
                    'SearchString': b'bytes',
                    'FieldToMatch': {
                        'SingleHeader': {
                            'Name': 'string'
                        },
                        'SingleQueryArgument': {
                            'Name': 'string'
                        },
                        'AllQueryArguments': {}
                        ,
                        'UriPath': {}
                        ,
                        'QueryString': {}
                        ,
                        'Body': {
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Method': {}
                        ,
                        'JsonBody': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedPaths': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'InvalidFallbackBehavior': 'MATCH'|'NO_MATCH'|'EVALUATE_AS_STRING',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Headers': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedHeaders': [
                                    'string',
                                ],
                                'ExcludedHeaders': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Cookies': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedCookies': [
                                    'string',
                                ],
                                'ExcludedCookies': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'HeaderOrder': {
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'JA3Fingerprint': {
                            'FallbackBehavior': 'MATCH'|'NO_MATCH'
                        }
                    },
                    'TextTransformations': [
                        {
                            'Priority': 123,
                            'Type': 'NONE'|'COMPRESS_WHITE_SPACE'|'HTML_ENTITY_DECODE'|'LOWERCASE'|'CMD_LINE'|'URL_DECODE'|'BASE64_DECODE'|'HEX_DECODE'|'MD5'|'REPLACE_COMMENTS'|'ESCAPE_SEQ_DECODE'|'SQL_HEX_DECODE'|'CSS_DECODE'|'JS_DECODE'|'NORMALIZE_PATH'|'NORMALIZE_PATH_WIN'|'REMOVE_NULLS'|'REPLACE_NULLS'|'BASE64_DECODE_EXT'|'URL_DECODE_UNI'|'UTF8_TO_UNICODE'
                        },
                    ],
                    'PositionalConstraint': 'EXACTLY'|'STARTS_WITH'|'ENDS_WITH'|'CONTAINS'|'CONTAINS_WORD'
                },
                'SqliMatchStatement': {
                    'FieldToMatch': {
                        'SingleHeader': {
                            'Name': 'string'
                        },
                        'SingleQueryArgument': {
                            'Name': 'string'
                        },
                        'AllQueryArguments': {}
                        ,
                        'UriPath': {}
                        ,
                        'QueryString': {}
                        ,
                        'Body': {
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Method': {}
                        ,
                        'JsonBody': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedPaths': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'InvalidFallbackBehavior': 'MATCH'|'NO_MATCH'|'EVALUATE_AS_STRING',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Headers': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedHeaders': [
                                    'string',
                                ],
                                'ExcludedHeaders': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Cookies': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedCookies': [
                                    'string',
                                ],
                                'ExcludedCookies': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'HeaderOrder': {
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'JA3Fingerprint': {
                            'FallbackBehavior': 'MATCH'|'NO_MATCH'
                        }
                    },
                    'TextTransformations': [
                        {
                            'Priority': 123,
                            'Type': 'NONE'|'COMPRESS_WHITE_SPACE'|'HTML_ENTITY_DECODE'|'LOWERCASE'|'CMD_LINE'|'URL_DECODE'|'BASE64_DECODE'|'HEX_DECODE'|'MD5'|'REPLACE_COMMENTS'|'ESCAPE_SEQ_DECODE'|'SQL_HEX_DECODE'|'CSS_DECODE'|'JS_DECODE'|'NORMALIZE_PATH'|'NORMALIZE_PATH_WIN'|'REMOVE_NULLS'|'REPLACE_NULLS'|'BASE64_DECODE_EXT'|'URL_DECODE_UNI'|'UTF8_TO_UNICODE'
                        },
                    ],
                    'SensitivityLevel': 'LOW'|'HIGH'
                },
                'XssMatchStatement': {
                    'FieldToMatch': {
                        'SingleHeader': {
                            'Name': 'string'
                        },
                        'SingleQueryArgument': {
                            'Name': 'string'
                        },
                        'AllQueryArguments': {}
                        ,
                        'UriPath': {}
                        ,
                        'QueryString': {}
                        ,
                        'Body': {
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Method': {}
                        ,
                        'JsonBody': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedPaths': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'InvalidFallbackBehavior': 'MATCH'|'NO_MATCH'|'EVALUATE_AS_STRING',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Headers': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedHeaders': [
                                    'string',
                                ],
                                'ExcludedHeaders': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Cookies': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedCookies': [
                                    'string',
                                ],
                                'ExcludedCookies': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'HeaderOrder': {
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'JA3Fingerprint': {
                            'FallbackBehavior': 'MATCH'|'NO_MATCH'
                        }
                    },
                    'TextTransformations': [
                        {
                            'Priority': 123,
                            'Type': 'NONE'|'COMPRESS_WHITE_SPACE'|'HTML_ENTITY_DECODE'|'LOWERCASE'|'CMD_LINE'|'URL_DECODE'|'BASE64_DECODE'|'HEX_DECODE'|'MD5'|'REPLACE_COMMENTS'|'ESCAPE_SEQ_DECODE'|'SQL_HEX_DECODE'|'CSS_DECODE'|'JS_DECODE'|'NORMALIZE_PATH'|'NORMALIZE_PATH_WIN'|'REMOVE_NULLS'|'REPLACE_NULLS'|'BASE64_DECODE_EXT'|'URL_DECODE_UNI'|'UTF8_TO_UNICODE'
                        },
                    ]
                },
                'SizeConstraintStatement': {
                    'FieldToMatch': {
                        'SingleHeader': {
                            'Name': 'string'
                        },
                        'SingleQueryArgument': {
                            'Name': 'string'
                        },
                        'AllQueryArguments': {}
                        ,
                        'UriPath': {}
                        ,
                        'QueryString': {}
                        ,
                        'Body': {
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Method': {}
                        ,
                        'JsonBody': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedPaths': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'InvalidFallbackBehavior': 'MATCH'|'NO_MATCH'|'EVALUATE_AS_STRING',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Headers': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedHeaders': [
                                    'string',
                                ],
                                'ExcludedHeaders': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Cookies': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedCookies': [
                                    'string',
                                ],
                                'ExcludedCookies': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'HeaderOrder': {
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'JA3Fingerprint': {
                            'FallbackBehavior': 'MATCH'|'NO_MATCH'
                        }
                    },
                    'ComparisonOperator': 'EQ'|'NE'|'LE'|'LT'|'GE'|'GT',
                    'Size': 123,
                    'TextTransformations': [
                        {
                            'Priority': 123,
                            'Type': 'NONE'|'COMPRESS_WHITE_SPACE'|'HTML_ENTITY_DECODE'|'LOWERCASE'|'CMD_LINE'|'URL_DECODE'|'BASE64_DECODE'|'HEX_DECODE'|'MD5'|'REPLACE_COMMENTS'|'ESCAPE_SEQ_DECODE'|'SQL_HEX_DECODE'|'CSS_DECODE'|'JS_DECODE'|'NORMALIZE_PATH'|'NORMALIZE_PATH_WIN'|'REMOVE_NULLS'|'REPLACE_NULLS'|'BASE64_DECODE_EXT'|'URL_DECODE_UNI'|'UTF8_TO_UNICODE'
                        },
                    ]
                },
                'GeoMatchStatement': {
                    'CountryCodes': [
                        'AF'|'AX'|'AL'|'DZ'|'AS'|'AD'|'AO'|'AI'|'AQ'|'AG'|'AR'|'AM'|'AW'|'AU'|'AT'|'AZ'|'BS'|'BH'|'BD'|'BB'|'BY'|'BE'|'BZ'|'BJ'|'BM'|'BT'|'BO'|'BQ'|'BA'|'BW'|'BV'|'BR'|'IO'|'BN'|'BG'|'BF'|'BI'|'KH'|'CM'|'CA'|'CV'|'KY'|'CF'|'TD'|'CL'|'CN'|'CX'|'CC'|'CO'|'KM'|'CG'|'CD'|'CK'|'CR'|'CI'|'HR'|'CU'|'CW'|'CY'|'CZ'|'DK'|'DJ'|'DM'|'DO'|'EC'|'EG'|'SV'|'GQ'|'ER'|'EE'|'ET'|'FK'|'FO'|'FJ'|'FI'|'FR'|'GF'|'PF'|'TF'|'GA'|'GM'|'GE'|'DE'|'GH'|'GI'|'GR'|'GL'|'GD'|'GP'|'GU'|'GT'|'GG'|'GN'|'GW'|'GY'|'HT'|'HM'|'VA'|'HN'|'HK'|'HU'|'IS'|'IN'|'ID'|'IR'|'IQ'|'IE'|'IM'|'IL'|'IT'|'JM'|'JP'|'JE'|'JO'|'KZ'|'KE'|'KI'|'KP'|'KR'|'KW'|'KG'|'LA'|'LV'|'LB'|'LS'|'LR'|'LY'|'LI'|'LT'|'LU'|'MO'|'MK'|'MG'|'MW'|'MY'|'MV'|'ML'|'MT'|'MH'|'MQ'|'MR'|'MU'|'YT'|'MX'|'FM'|'MD'|'MC'|'MN'|'ME'|'MS'|'MA'|'MZ'|'MM'|'NA'|'NR'|'NP'|'NL'|'NC'|'NZ'|'NI'|'NE'|'NG'|'NU'|'NF'|'MP'|'NO'|'OM'|'PK'|'PW'|'PS'|'PA'|'PG'|'PY'|'PE'|'PH'|'PN'|'PL'|'PT'|'PR'|'QA'|'RE'|'RO'|'RU'|'RW'|'BL'|'SH'|'KN'|'LC'|'MF'|'PM'|'VC'|'WS'|'SM'|'ST'|'SA'|'SN'|'RS'|'SC'|'SL'|'SG'|'SX'|'SK'|'SI'|'SB'|'SO'|'ZA'|'GS'|'SS'|'ES'|'LK'|'SD'|'SR'|'SJ'|'SZ'|'SE'|'CH'|'SY'|'TW'|'TJ'|'TZ'|'TH'|'TL'|'TG'|'TK'|'TO'|'TT'|'TN'|'TR'|'TM'|'TC'|'TV'|'UG'|'UA'|'AE'|'GB'|'US'|'UM'|'UY'|'UZ'|'VU'|'VE'|'VN'|'VG'|'VI'|'WF'|'EH'|'YE'|'ZM'|'ZW'|'XK',
                    ],
                    'ForwardedIPConfig': {
                        'HeaderName': 'string',
                        'FallbackBehavior': 'MATCH'|'NO_MATCH'
                    }
                },
                'RuleGroupReferenceStatement': {
                    'ARN': 'string',
                    'ExcludedRules': [
                        {
                            'Name': 'string'
                        },
                    ],
                    'RuleActionOverrides': [
                        {
                            'Name': 'string',
                            'ActionToUse': {
                                'Block': {
                                    'CustomResponse': {
                                        'ResponseCode': 123,
                                        'CustomResponseBodyKey': 'string',
                                        'ResponseHeaders': [
                                            {
                                                'Name': 'string',
                                                'Value': 'string'
                                            },
                                        ]
                                    }
                                },
                                'Allow': {
                                    'CustomRequestHandling': {
                                        'InsertHeaders': [
                                            {
                                                'Name': 'string',
                                                'Value': 'string'
                                            },
                                        ]
                                    }
                                },
                                'Count': {
                                    'CustomRequestHandling': {
                                        'InsertHeaders': [
                                            {
                                                'Name': 'string',
                                                'Value': 'string'
                                            },
                                        ]
                                    }
                                },
                                'Captcha': {
                                    'CustomRequestHandling': {
                                        'InsertHeaders': [
                                            {
                                                'Name': 'string',
                                                'Value': 'string'
                                            },
                                        ]
                                    }
                                },
                                'Challenge': {
                                    'CustomRequestHandling': {
                                        'InsertHeaders': [
                                            {
                                                'Name': 'string',
                                                'Value': 'string'
                                            },
                                        ]
                                    }
                                }
                            }
                        },
                    ]
                },
                'IPSetReferenceStatement': {
                    'ARN': 'string',
                    'IPSetForwardedIPConfig': {
                        'HeaderName': 'string',
                        'FallbackBehavior': 'MATCH'|'NO_MATCH',
                        'Position': 'FIRST'|'LAST'|'ANY'
                    }
                },
                'RegexPatternSetReferenceStatement': {
                    'ARN': 'string',
                    'FieldToMatch': {
                        'SingleHeader': {
                            'Name': 'string'
                        },
                        'SingleQueryArgument': {
                            'Name': 'string'
                        },
                        'AllQueryArguments': {}
                        ,
                        'UriPath': {}
                        ,
                        'QueryString': {}
                        ,
                        'Body': {
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Method': {}
                        ,
                        'JsonBody': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedPaths': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'InvalidFallbackBehavior': 'MATCH'|'NO_MATCH'|'EVALUATE_AS_STRING',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Headers': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedHeaders': [
                                    'string',
                                ],
                                'ExcludedHeaders': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Cookies': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedCookies': [
                                    'string',
                                ],
                                'ExcludedCookies': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'HeaderOrder': {
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'JA3Fingerprint': {
                            'FallbackBehavior': 'MATCH'|'NO_MATCH'
                        }
                    },
                    'TextTransformations': [
                        {
                            'Priority': 123,
                            'Type': 'NONE'|'COMPRESS_WHITE_SPACE'|'HTML_ENTITY_DECODE'|'LOWERCASE'|'CMD_LINE'|'URL_DECODE'|'BASE64_DECODE'|'HEX_DECODE'|'MD5'|'REPLACE_COMMENTS'|'ESCAPE_SEQ_DECODE'|'SQL_HEX_DECODE'|'CSS_DECODE'|'JS_DECODE'|'NORMALIZE_PATH'|'NORMALIZE_PATH_WIN'|'REMOVE_NULLS'|'REPLACE_NULLS'|'BASE64_DECODE_EXT'|'URL_DECODE_UNI'|'UTF8_TO_UNICODE'
                        },
                    ]
                },
                'RateBasedStatement': {
                    'Limit': 123,
                    'AggregateKeyType': 'IP'|'FORWARDED_IP'|'CUSTOM_KEYS'|'CONSTANT',
                    'ScopeDownStatement': {'... recursive ...'},
                    'ForwardedIPConfig': {
                        'HeaderName': 'string',
                        'FallbackBehavior': 'MATCH'|'NO_MATCH'
                    },
                    'CustomKeys': [
                        {
                            'Header': {
                                'Name': 'string',
                                'TextTransformations': [
                                    {
                                        'Priority': 123,
                                        'Type': 'NONE'|'COMPRESS_WHITE_SPACE'|'HTML_ENTITY_DECODE'|'LOWERCASE'|'CMD_LINE'|'URL_DECODE'|'BASE64_DECODE'|'HEX_DECODE'|'MD5'|'REPLACE_COMMENTS'|'ESCAPE_SEQ_DECODE'|'SQL_HEX_DECODE'|'CSS_DECODE'|'JS_DECODE'|'NORMALIZE_PATH'|'NORMALIZE_PATH_WIN'|'REMOVE_NULLS'|'REPLACE_NULLS'|'BASE64_DECODE_EXT'|'URL_DECODE_UNI'|'UTF8_TO_UNICODE'
                                    },
                                ]
                            },
                            'Cookie': {
                                'Name': 'string',
                                'TextTransformations': [
                                    {
                                        'Priority': 123,
                                        'Type': 'NONE'|'COMPRESS_WHITE_SPACE'|'HTML_ENTITY_DECODE'|'LOWERCASE'|'CMD_LINE'|'URL_DECODE'|'BASE64_DECODE'|'HEX_DECODE'|'MD5'|'REPLACE_COMMENTS'|'ESCAPE_SEQ_DECODE'|'SQL_HEX_DECODE'|'CSS_DECODE'|'JS_DECODE'|'NORMALIZE_PATH'|'NORMALIZE_PATH_WIN'|'REMOVE_NULLS'|'REPLACE_NULLS'|'BASE64_DECODE_EXT'|'URL_DECODE_UNI'|'UTF8_TO_UNICODE'
                                    },
                                ]
                            },
                            'QueryArgument': {
                                'Name': 'string',
                                'TextTransformations': [
                                    {
                                        'Priority': 123,
                                        'Type': 'NONE'|'COMPRESS_WHITE_SPACE'|'HTML_ENTITY_DECODE'|'LOWERCASE'|'CMD_LINE'|'URL_DECODE'|'BASE64_DECODE'|'HEX_DECODE'|'MD5'|'REPLACE_COMMENTS'|'ESCAPE_SEQ_DECODE'|'SQL_HEX_DECODE'|'CSS_DECODE'|'JS_DECODE'|'NORMALIZE_PATH'|'NORMALIZE_PATH_WIN'|'REMOVE_NULLS'|'REPLACE_NULLS'|'BASE64_DECODE_EXT'|'URL_DECODE_UNI'|'UTF8_TO_UNICODE'
                                    },
                                ]
                            },
                            'QueryString': {
                                'TextTransformations': [
                                    {
                                        'Priority': 123,
                                        'Type': 'NONE'|'COMPRESS_WHITE_SPACE'|'HTML_ENTITY_DECODE'|'LOWERCASE'|'CMD_LINE'|'URL_DECODE'|'BASE64_DECODE'|'HEX_DECODE'|'MD5'|'REPLACE_COMMENTS'|'ESCAPE_SEQ_DECODE'|'SQL_HEX_DECODE'|'CSS_DECODE'|'JS_DECODE'|'NORMALIZE_PATH'|'NORMALIZE_PATH_WIN'|'REMOVE_NULLS'|'REPLACE_NULLS'|'BASE64_DECODE_EXT'|'URL_DECODE_UNI'|'UTF8_TO_UNICODE'
                                    },
                                ]
                            },
                            'HTTPMethod': {}
                            ,
                            'ForwardedIP': {}
                            ,
                            'IP': {}
                            ,
                            'LabelNamespace': {
                                'Namespace': 'string'
                            },
                            'UriPath': {
                                'TextTransformations': [
                                    {
                                        'Priority': 123,
                                        'Type': 'NONE'|'COMPRESS_WHITE_SPACE'|'HTML_ENTITY_DECODE'|'LOWERCASE'|'CMD_LINE'|'URL_DECODE'|'BASE64_DECODE'|'HEX_DECODE'|'MD5'|'REPLACE_COMMENTS'|'ESCAPE_SEQ_DECODE'|'SQL_HEX_DECODE'|'CSS_DECODE'|'JS_DECODE'|'NORMALIZE_PATH'|'NORMALIZE_PATH_WIN'|'REMOVE_NULLS'|'REPLACE_NULLS'|'BASE64_DECODE_EXT'|'URL_DECODE_UNI'|'UTF8_TO_UNICODE'
                                    },
                                ]
                            }
                        },
                    ]
                },
                'AndStatement': {
                    'Statements': [
                        {'... recursive ...'},
                    ]
                },
                'OrStatement': {
                    'Statements': [
                        {'... recursive ...'},
                    ]
                },
                'NotStatement': {
                    'Statement': {'... recursive ...'}
                },
                'ManagedRuleGroupStatement': {
                    'VendorName': 'string',
                    'Name': 'string',
                    'Version': 'string',
                    'ExcludedRules': [
                        {
                            'Name': 'string'
                        },
                    ],
                    'ScopeDownStatement': {'... recursive ...'},
                    'ManagedRuleGroupConfigs': [
                        {
                            'LoginPath': 'string',
                            'PayloadType': 'JSON'|'FORM_ENCODED',
                            'UsernameField': {
                                'Identifier': 'string'
                            },
                            'PasswordField': {
                                'Identifier': 'string'
                            },
                            'AWSManagedRulesBotControlRuleSet': {
                                'InspectionLevel': 'COMMON'|'TARGETED',
                                'EnableMachineLearning': True|False
                            },
                            'AWSManagedRulesATPRuleSet': {
                                'LoginPath': 'string',
                                'RequestInspection': {
                                    'PayloadType': 'JSON'|'FORM_ENCODED',
                                    'UsernameField': {
                                        'Identifier': 'string'
                                    },
                                    'PasswordField': {
                                        'Identifier': 'string'
                                    }
                                },
                                'ResponseInspection': {
                                    'StatusCode': {
                                        'SuccessCodes': [
                                            123,
                                        ],
                                        'FailureCodes': [
                                            123,
                                        ]
                                    },
                                    'Header': {
                                        'Name': 'string',
                                        'SuccessValues': [
                                            'string',
                                        ],
                                        'FailureValues': [
                                            'string',
                                        ]
                                    },
                                    'BodyContains': {
                                        'SuccessStrings': [
                                            'string',
                                        ],
                                        'FailureStrings': [
                                            'string',
                                        ]
                                    },
                                    'Json': {
                                        'Identifier': 'string',
                                        'SuccessValues': [
                                            'string',
                                        ],
                                        'FailureValues': [
                                            'string',
                                        ]
                                    }
                                },
                                'EnableRegexInPath': True|False
                            },
                            'AWSManagedRulesACFPRuleSet': {
                                'CreationPath': 'string',
                                'RegistrationPagePath': 'string',
                                'RequestInspection': {
                                    'PayloadType': 'JSON'|'FORM_ENCODED',
                                    'UsernameField': {
                                        'Identifier': 'string'
                                    },
                                    'PasswordField': {
                                        'Identifier': 'string'
                                    },
                                    'EmailField': {
                                        'Identifier': 'string'
                                    },
                                    'PhoneNumberFields': [
                                        {
                                            'Identifier': 'string'
                                        },
                                    ],
                                    'AddressFields': [
                                        {
                                            'Identifier': 'string'
                                        },
                                    ]
                                },
                                'ResponseInspection': {
                                    'StatusCode': {
                                        'SuccessCodes': [
                                            123,
                                        ],
                                        'FailureCodes': [
                                            123,
                                        ]
                                    },
                                    'Header': {
                                        'Name': 'string',
                                        'SuccessValues': [
                                            'string',
                                        ],
                                        'FailureValues': [
                                            'string',
                                        ]
                                    },
                                    'BodyContains': {
                                        'SuccessStrings': [
                                            'string',
                                        ],
                                        'FailureStrings': [
                                            'string',
                                        ]
                                    },
                                    'Json': {
                                        'Identifier': 'string',
                                        'SuccessValues': [
                                            'string',
                                        ],
                                        'FailureValues': [
                                            'string',
                                        ]
                                    }
                                },
                                'EnableRegexInPath': True|False
                            }
                        },
                    ],
                    'RuleActionOverrides': [
                        {
                            'Name': 'string',
                            'ActionToUse': {
                                'Block': {
                                    'CustomResponse': {
                                        'ResponseCode': 123,
                                        'CustomResponseBodyKey': 'string',
                                        'ResponseHeaders': [
                                            {
                                                'Name': 'string',
                                                'Value': 'string'
                                            },
                                        ]
                                    }
                                },
                                'Allow': {
                                    'CustomRequestHandling': {
                                        'InsertHeaders': [
                                            {
                                                'Name': 'string',
                                                'Value': 'string'
                                            },
                                        ]
                                    }
                                },
                                'Count': {
                                    'CustomRequestHandling': {
                                        'InsertHeaders': [
                                            {
                                                'Name': 'string',
                                                'Value': 'string'
                                            },
                                        ]
                                    }
                                },
                                'Captcha': {
                                    'CustomRequestHandling': {
                                        'InsertHeaders': [
                                            {
                                                'Name': 'string',
                                                'Value': 'string'
                                            },
                                        ]
                                    }
                                },
                                'Challenge': {
                                    'CustomRequestHandling': {
                                        'InsertHeaders': [
                                            {
                                                'Name': 'string',
                                                'Value': 'string'
                                            },
                                        ]
                                    }
                                }
                            }
                        },
                    ]
                },
                'LabelMatchStatement': {
                    'Scope': 'LABEL'|'NAMESPACE',
                    'Key': 'string'
                },
                'RegexMatchStatement': {
                    'RegexString': 'string',
                    'FieldToMatch': {
                        'SingleHeader': {
                            'Name': 'string'
                        },
                        'SingleQueryArgument': {
                            'Name': 'string'
                        },
                        'AllQueryArguments': {}
                        ,
                        'UriPath': {}
                        ,
                        'QueryString': {}
                        ,
                        'Body': {
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Method': {}
                        ,
                        'JsonBody': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedPaths': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'InvalidFallbackBehavior': 'MATCH'|'NO_MATCH'|'EVALUATE_AS_STRING',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Headers': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedHeaders': [
                                    'string',
                                ],
                                'ExcludedHeaders': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Cookies': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedCookies': [
                                    'string',
                                ],
                                'ExcludedCookies': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'HeaderOrder': {
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'JA3Fingerprint': {
                            'FallbackBehavior': 'MATCH'|'NO_MATCH'
                        }
                    },
                    'TextTransformations': [
                        {
                            'Priority': 123,
                            'Type': 'NONE'|'COMPRESS_WHITE_SPACE'|'HTML_ENTITY_DECODE'|'LOWERCASE'|'CMD_LINE'|'URL_DECODE'|'BASE64_DECODE'|'HEX_DECODE'|'MD5'|'REPLACE_COMMENTS'|'ESCAPE_SEQ_DECODE'|'SQL_HEX_DECODE'|'CSS_DECODE'|'JS_DECODE'|'NORMALIZE_PATH'|'NORMALIZE_PATH_WIN'|'REMOVE_NULLS'|'REPLACE_NULLS'|'BASE64_DECODE_EXT'|'URL_DECODE_UNI'|'UTF8_TO_UNICODE'
                        },
                    ]
                }
            },
            'Action': {
                'Block': {
                    'CustomResponse': {
                        'ResponseCode': 123,
                        'CustomResponseBodyKey': 'string',
                        'ResponseHeaders': [
                            {
                                'Name': 'string',
                                'Value': 'string'
                            },
                        ]
                    }
                },
                'Allow': {
                    'CustomRequestHandling': {
                        'InsertHeaders': [
                            {
                                'Name': 'string',
                                'Value': 'string'
                            },
                        ]
                    }
                },
                'Count': {
                    'CustomRequestHandling': {
                        'InsertHeaders': [
                            {
                                'Name': 'string',
                                'Value': 'string'
                            },
                        ]
                    }
                },
                'Captcha': {
                    'CustomRequestHandling': {
                        'InsertHeaders': [
                            {
                                'Name': 'string',
                                'Value': 'string'
                            },
                        ]
                    }
                },
                'Challenge': {
                    'CustomRequestHandling': {
                        'InsertHeaders': [
                            {
                                'Name': 'string',
                                'Value': 'string'
                            },
                        ]
                    }
                }
            },
            'OverrideAction': {
                'Count': {
                    'CustomRequestHandling': {
                        'InsertHeaders': [
                            {
                                'Name': 'string',
                                'Value': 'string'
                            },
                        ]
                    }
                },
                'None': {}

            },
            'RuleLabels': [
                {
                    'Name': 'string'
                },
            ],
            'VisibilityConfig': {
                'SampledRequestsEnabled': True|False,
                'CloudWatchMetricsEnabled': True|False,
                'MetricName': 'string'
            },
            'CaptchaConfig': {
                'ImmunityTimeProperty': {
                    'ImmunityTime': 123
                }
            },
            'ChallengeConfig': {
                'ImmunityTimeProperty': {
                    'ImmunityTime': 123
                }
            }
        },
    ]
)


  **Parameters**
  ::

      # This section is too large to render.
      # Please see the AWS API Documentation linked below.

  `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/CheckCapacity>`_
rtype:

dict

returns:

Response Syntax

{
    'Capacity': 123
}

Response Structure

  • (dict) --

    • Capacity (integer) --

      The capacity required by the rules and scope.

CreateRuleGroup (updated) Link ¶
Changes (request)
{'Rules': {'Statement': {'ByteMatchStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                        '| '
                                                                                                        'NO_MATCH'}}},
                         'RegexMatchStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                         '| '
                                                                                                         'NO_MATCH'}}},
                         'RegexPatternSetReferenceStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                                       '| '
                                                                                                                       'NO_MATCH'}}},
                         'SizeConstraintStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                             '| '
                                                                                                             'NO_MATCH'}}},
                         'SqliMatchStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                        '| '
                                                                                                        'NO_MATCH'}}},
                         'XssMatchStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                       '| '
                                                                                                       'NO_MATCH'}}}}}}

Creates a RuleGroup per the specifications provided.

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 also: AWS API Documentation

Request Syntax

client.create_rule_group(
    Name='string',
    Scope='CLOUDFRONT'|'REGIONAL',
    Capacity=123,
    Description='string',
    Rules=[
        {
            'Name': 'string',
            'Priority': 123,
            'Statement': {
                'ByteMatchStatement': {
                    'SearchString': b'bytes',
                    'FieldToMatch': {
                        'SingleHeader': {
                            'Name': 'string'
                        },
                        'SingleQueryArgument': {
                            'Name': 'string'
                        },
                        'AllQueryArguments': {}
                        ,
                        'UriPath': {}
                        ,
                        'QueryString': {}
                        ,
                        'Body': {
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Method': {}
                        ,
                        'JsonBody': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedPaths': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'InvalidFallbackBehavior': 'MATCH'|'NO_MATCH'|'EVALUATE_AS_STRING',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Headers': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedHeaders': [
                                    'string',
                                ],
                                'ExcludedHeaders': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Cookies': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedCookies': [
                                    'string',
                                ],
                                'ExcludedCookies': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'HeaderOrder': {
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'JA3Fingerprint': {
                            'FallbackBehavior': 'MATCH'|'NO_MATCH'
                        }
                    },
                    'TextTransformations': [
                        {
                            'Priority': 123,
                            'Type': 'NONE'|'COMPRESS_WHITE_SPACE'|'HTML_ENTITY_DECODE'|'LOWERCASE'|'CMD_LINE'|'URL_DECODE'|'BASE64_DECODE'|'HEX_DECODE'|'MD5'|'REPLACE_COMMENTS'|'ESCAPE_SEQ_DECODE'|'SQL_HEX_DECODE'|'CSS_DECODE'|'JS_DECODE'|'NORMALIZE_PATH'|'NORMALIZE_PATH_WIN'|'REMOVE_NULLS'|'REPLACE_NULLS'|'BASE64_DECODE_EXT'|'URL_DECODE_UNI'|'UTF8_TO_UNICODE'
                        },
                    ],
                    'PositionalConstraint': 'EXACTLY'|'STARTS_WITH'|'ENDS_WITH'|'CONTAINS'|'CONTAINS_WORD'
                },
                'SqliMatchStatement': {
                    'FieldToMatch': {
                        'SingleHeader': {
                            'Name': 'string'
                        },
                        'SingleQueryArgument': {
                            'Name': 'string'
                        },
                        'AllQueryArguments': {}
                        ,
                        'UriPath': {}
                        ,
                        'QueryString': {}
                        ,
                        'Body': {
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Method': {}
                        ,
                        'JsonBody': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedPaths': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'InvalidFallbackBehavior': 'MATCH'|'NO_MATCH'|'EVALUATE_AS_STRING',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Headers': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedHeaders': [
                                    'string',
                                ],
                                'ExcludedHeaders': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Cookies': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedCookies': [
                                    'string',
                                ],
                                'ExcludedCookies': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'HeaderOrder': {
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'JA3Fingerprint': {
                            'FallbackBehavior': 'MATCH'|'NO_MATCH'
                        }
                    },
                    'TextTransformations': [
                        {
                            'Priority': 123,
                            'Type': 'NONE'|'COMPRESS_WHITE_SPACE'|'HTML_ENTITY_DECODE'|'LOWERCASE'|'CMD_LINE'|'URL_DECODE'|'BASE64_DECODE'|'HEX_DECODE'|'MD5'|'REPLACE_COMMENTS'|'ESCAPE_SEQ_DECODE'|'SQL_HEX_DECODE'|'CSS_DECODE'|'JS_DECODE'|'NORMALIZE_PATH'|'NORMALIZE_PATH_WIN'|'REMOVE_NULLS'|'REPLACE_NULLS'|'BASE64_DECODE_EXT'|'URL_DECODE_UNI'|'UTF8_TO_UNICODE'
                        },
                    ],
                    'SensitivityLevel': 'LOW'|'HIGH'
                },
                'XssMatchStatement': {
                    'FieldToMatch': {
                        'SingleHeader': {
                            'Name': 'string'
                        },
                        'SingleQueryArgument': {
                            'Name': 'string'
                        },
                        'AllQueryArguments': {}
                        ,
                        'UriPath': {}
                        ,
                        'QueryString': {}
                        ,
                        'Body': {
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Method': {}
                        ,
                        'JsonBody': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedPaths': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'InvalidFallbackBehavior': 'MATCH'|'NO_MATCH'|'EVALUATE_AS_STRING',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Headers': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedHeaders': [
                                    'string',
                                ],
                                'ExcludedHeaders': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Cookies': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedCookies': [
                                    'string',
                                ],
                                'ExcludedCookies': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'HeaderOrder': {
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'JA3Fingerprint': {
                            'FallbackBehavior': 'MATCH'|'NO_MATCH'
                        }
                    },
                    'TextTransformations': [
                        {
                            'Priority': 123,
                            'Type': 'NONE'|'COMPRESS_WHITE_SPACE'|'HTML_ENTITY_DECODE'|'LOWERCASE'|'CMD_LINE'|'URL_DECODE'|'BASE64_DECODE'|'HEX_DECODE'|'MD5'|'REPLACE_COMMENTS'|'ESCAPE_SEQ_DECODE'|'SQL_HEX_DECODE'|'CSS_DECODE'|'JS_DECODE'|'NORMALIZE_PATH'|'NORMALIZE_PATH_WIN'|'REMOVE_NULLS'|'REPLACE_NULLS'|'BASE64_DECODE_EXT'|'URL_DECODE_UNI'|'UTF8_TO_UNICODE'
                        },
                    ]
                },
                'SizeConstraintStatement': {
                    'FieldToMatch': {
                        'SingleHeader': {
                            'Name': 'string'
                        },
                        'SingleQueryArgument': {
                            'Name': 'string'
                        },
                        'AllQueryArguments': {}
                        ,
                        'UriPath': {}
                        ,
                        'QueryString': {}
                        ,
                        'Body': {
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Method': {}
                        ,
                        'JsonBody': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedPaths': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'InvalidFallbackBehavior': 'MATCH'|'NO_MATCH'|'EVALUATE_AS_STRING',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Headers': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedHeaders': [
                                    'string',
                                ],
                                'ExcludedHeaders': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Cookies': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedCookies': [
                                    'string',
                                ],
                                'ExcludedCookies': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'HeaderOrder': {
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'JA3Fingerprint': {
                            'FallbackBehavior': 'MATCH'|'NO_MATCH'
                        }
                    },
                    'ComparisonOperator': 'EQ'|'NE'|'LE'|'LT'|'GE'|'GT',
                    'Size': 123,
                    'TextTransformations': [
                        {
                            'Priority': 123,
                            'Type': 'NONE'|'COMPRESS_WHITE_SPACE'|'HTML_ENTITY_DECODE'|'LOWERCASE'|'CMD_LINE'|'URL_DECODE'|'BASE64_DECODE'|'HEX_DECODE'|'MD5'|'REPLACE_COMMENTS'|'ESCAPE_SEQ_DECODE'|'SQL_HEX_DECODE'|'CSS_DECODE'|'JS_DECODE'|'NORMALIZE_PATH'|'NORMALIZE_PATH_WIN'|'REMOVE_NULLS'|'REPLACE_NULLS'|'BASE64_DECODE_EXT'|'URL_DECODE_UNI'|'UTF8_TO_UNICODE'
                        },
                    ]
                },
                'GeoMatchStatement': {
                    'CountryCodes': [
                        'AF'|'AX'|'AL'|'DZ'|'AS'|'AD'|'AO'|'AI'|'AQ'|'AG'|'AR'|'AM'|'AW'|'AU'|'AT'|'AZ'|'BS'|'BH'|'BD'|'BB'|'BY'|'BE'|'BZ'|'BJ'|'BM'|'BT'|'BO'|'BQ'|'BA'|'BW'|'BV'|'BR'|'IO'|'BN'|'BG'|'BF'|'BI'|'KH'|'CM'|'CA'|'CV'|'KY'|'CF'|'TD'|'CL'|'CN'|'CX'|'CC'|'CO'|'KM'|'CG'|'CD'|'CK'|'CR'|'CI'|'HR'|'CU'|'CW'|'CY'|'CZ'|'DK'|'DJ'|'DM'|'DO'|'EC'|'EG'|'SV'|'GQ'|'ER'|'EE'|'ET'|'FK'|'FO'|'FJ'|'FI'|'FR'|'GF'|'PF'|'TF'|'GA'|'GM'|'GE'|'DE'|'GH'|'GI'|'GR'|'GL'|'GD'|'GP'|'GU'|'GT'|'GG'|'GN'|'GW'|'GY'|'HT'|'HM'|'VA'|'HN'|'HK'|'HU'|'IS'|'IN'|'ID'|'IR'|'IQ'|'IE'|'IM'|'IL'|'IT'|'JM'|'JP'|'JE'|'JO'|'KZ'|'KE'|'KI'|'KP'|'KR'|'KW'|'KG'|'LA'|'LV'|'LB'|'LS'|'LR'|'LY'|'LI'|'LT'|'LU'|'MO'|'MK'|'MG'|'MW'|'MY'|'MV'|'ML'|'MT'|'MH'|'MQ'|'MR'|'MU'|'YT'|'MX'|'FM'|'MD'|'MC'|'MN'|'ME'|'MS'|'MA'|'MZ'|'MM'|'NA'|'NR'|'NP'|'NL'|'NC'|'NZ'|'NI'|'NE'|'NG'|'NU'|'NF'|'MP'|'NO'|'OM'|'PK'|'PW'|'PS'|'PA'|'PG'|'PY'|'PE'|'PH'|'PN'|'PL'|'PT'|'PR'|'QA'|'RE'|'RO'|'RU'|'RW'|'BL'|'SH'|'KN'|'LC'|'MF'|'PM'|'VC'|'WS'|'SM'|'ST'|'SA'|'SN'|'RS'|'SC'|'SL'|'SG'|'SX'|'SK'|'SI'|'SB'|'SO'|'ZA'|'GS'|'SS'|'ES'|'LK'|'SD'|'SR'|'SJ'|'SZ'|'SE'|'CH'|'SY'|'TW'|'TJ'|'TZ'|'TH'|'TL'|'TG'|'TK'|'TO'|'TT'|'TN'|'TR'|'TM'|'TC'|'TV'|'UG'|'UA'|'AE'|'GB'|'US'|'UM'|'UY'|'UZ'|'VU'|'VE'|'VN'|'VG'|'VI'|'WF'|'EH'|'YE'|'ZM'|'ZW'|'XK',
                    ],
                    'ForwardedIPConfig': {
                        'HeaderName': 'string',
                        'FallbackBehavior': 'MATCH'|'NO_MATCH'
                    }
                },
                'RuleGroupReferenceStatement': {
                    'ARN': 'string',
                    'ExcludedRules': [
                        {
                            'Name': 'string'
                        },
                    ],
                    'RuleActionOverrides': [
                        {
                            'Name': 'string',
                            'ActionToUse': {
                                'Block': {
                                    'CustomResponse': {
                                        'ResponseCode': 123,
                                        'CustomResponseBodyKey': 'string',
                                        'ResponseHeaders': [
                                            {
                                                'Name': 'string',
                                                'Value': 'string'
                                            },
                                        ]
                                    }
                                },
                                'Allow': {
                                    'CustomRequestHandling': {
                                        'InsertHeaders': [
                                            {
                                                'Name': 'string',
                                                'Value': 'string'
                                            },
                                        ]
                                    }
                                },
                                'Count': {
                                    'CustomRequestHandling': {
                                        'InsertHeaders': [
                                            {
                                                'Name': 'string',
                                                'Value': 'string'
                                            },
                                        ]
                                    }
                                },
                                'Captcha': {
                                    'CustomRequestHandling': {
                                        'InsertHeaders': [
                                            {
                                                'Name': 'string',
                                                'Value': 'string'
                                            },
                                        ]
                                    }
                                },
                                'Challenge': {
                                    'CustomRequestHandling': {
                                        'InsertHeaders': [
                                            {
                                                'Name': 'string',
                                                'Value': 'string'
                                            },
                                        ]
                                    }
                                }
                            }
                        },
                    ]
                },
                'IPSetReferenceStatement': {
                    'ARN': 'string',
                    'IPSetForwardedIPConfig': {
                        'HeaderName': 'string',
                        'FallbackBehavior': 'MATCH'|'NO_MATCH',
                        'Position': 'FIRST'|'LAST'|'ANY'
                    }
                },
                'RegexPatternSetReferenceStatement': {
                    'ARN': 'string',
                    'FieldToMatch': {
                        'SingleHeader': {
                            'Name': 'string'
                        },
                        'SingleQueryArgument': {
                            'Name': 'string'
                        },
                        'AllQueryArguments': {}
                        ,
                        'UriPath': {}
                        ,
                        'QueryString': {}
                        ,
                        'Body': {
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Method': {}
                        ,
                        'JsonBody': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedPaths': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'InvalidFallbackBehavior': 'MATCH'|'NO_MATCH'|'EVALUATE_AS_STRING',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Headers': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedHeaders': [
                                    'string',
                                ],
                                'ExcludedHeaders': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Cookies': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedCookies': [
                                    'string',
                                ],
                                'ExcludedCookies': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'HeaderOrder': {
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'JA3Fingerprint': {
                            'FallbackBehavior': 'MATCH'|'NO_MATCH'
                        }
                    },
                    'TextTransformations': [
                        {
                            'Priority': 123,
                            'Type': 'NONE'|'COMPRESS_WHITE_SPACE'|'HTML_ENTITY_DECODE'|'LOWERCASE'|'CMD_LINE'|'URL_DECODE'|'BASE64_DECODE'|'HEX_DECODE'|'MD5'|'REPLACE_COMMENTS'|'ESCAPE_SEQ_DECODE'|'SQL_HEX_DECODE'|'CSS_DECODE'|'JS_DECODE'|'NORMALIZE_PATH'|'NORMALIZE_PATH_WIN'|'REMOVE_NULLS'|'REPLACE_NULLS'|'BASE64_DECODE_EXT'|'URL_DECODE_UNI'|'UTF8_TO_UNICODE'
                        },
                    ]
                },
                'RateBasedStatement': {
                    'Limit': 123,
                    'AggregateKeyType': 'IP'|'FORWARDED_IP'|'CUSTOM_KEYS'|'CONSTANT',
                    'ScopeDownStatement': {'... recursive ...'},
                    'ForwardedIPConfig': {
                        'HeaderName': 'string',
                        'FallbackBehavior': 'MATCH'|'NO_MATCH'
                    },
                    'CustomKeys': [
                        {
                            'Header': {
                                'Name': 'string',
                                'TextTransformations': [
                                    {
                                        'Priority': 123,
                                        'Type': 'NONE'|'COMPRESS_WHITE_SPACE'|'HTML_ENTITY_DECODE'|'LOWERCASE'|'CMD_LINE'|'URL_DECODE'|'BASE64_DECODE'|'HEX_DECODE'|'MD5'|'REPLACE_COMMENTS'|'ESCAPE_SEQ_DECODE'|'SQL_HEX_DECODE'|'CSS_DECODE'|'JS_DECODE'|'NORMALIZE_PATH'|'NORMALIZE_PATH_WIN'|'REMOVE_NULLS'|'REPLACE_NULLS'|'BASE64_DECODE_EXT'|'URL_DECODE_UNI'|'UTF8_TO_UNICODE'
                                    },
                                ]
                            },
                            'Cookie': {
                                'Name': 'string',
                                'TextTransformations': [
                                    {
                                        'Priority': 123,
                                        'Type': 'NONE'|'COMPRESS_WHITE_SPACE'|'HTML_ENTITY_DECODE'|'LOWERCASE'|'CMD_LINE'|'URL_DECODE'|'BASE64_DECODE'|'HEX_DECODE'|'MD5'|'REPLACE_COMMENTS'|'ESCAPE_SEQ_DECODE'|'SQL_HEX_DECODE'|'CSS_DECODE'|'JS_DECODE'|'NORMALIZE_PATH'|'NORMALIZE_PATH_WIN'|'REMOVE_NULLS'|'REPLACE_NULLS'|'BASE64_DECODE_EXT'|'URL_DECODE_UNI'|'UTF8_TO_UNICODE'
                                    },
                                ]
                            },
                            'QueryArgument': {
                                'Name': 'string',
                                'TextTransformations': [
                                    {
                                        'Priority': 123,
                                        'Type': 'NONE'|'COMPRESS_WHITE_SPACE'|'HTML_ENTITY_DECODE'|'LOWERCASE'|'CMD_LINE'|'URL_DECODE'|'BASE64_DECODE'|'HEX_DECODE'|'MD5'|'REPLACE_COMMENTS'|'ESCAPE_SEQ_DECODE'|'SQL_HEX_DECODE'|'CSS_DECODE'|'JS_DECODE'|'NORMALIZE_PATH'|'NORMALIZE_PATH_WIN'|'REMOVE_NULLS'|'REPLACE_NULLS'|'BASE64_DECODE_EXT'|'URL_DECODE_UNI'|'UTF8_TO_UNICODE'
                                    },
                                ]
                            },
                            'QueryString': {
                                'TextTransformations': [
                                    {
                                        'Priority': 123,
                                        'Type': 'NONE'|'COMPRESS_WHITE_SPACE'|'HTML_ENTITY_DECODE'|'LOWERCASE'|'CMD_LINE'|'URL_DECODE'|'BASE64_DECODE'|'HEX_DECODE'|'MD5'|'REPLACE_COMMENTS'|'ESCAPE_SEQ_DECODE'|'SQL_HEX_DECODE'|'CSS_DECODE'|'JS_DECODE'|'NORMALIZE_PATH'|'NORMALIZE_PATH_WIN'|'REMOVE_NULLS'|'REPLACE_NULLS'|'BASE64_DECODE_EXT'|'URL_DECODE_UNI'|'UTF8_TO_UNICODE'
                                    },
                                ]
                            },
                            'HTTPMethod': {}
                            ,
                            'ForwardedIP': {}
                            ,
                            'IP': {}
                            ,
                            'LabelNamespace': {
                                'Namespace': 'string'
                            },
                            'UriPath': {
                                'TextTransformations': [
                                    {
                                        'Priority': 123,
                                        'Type': 'NONE'|'COMPRESS_WHITE_SPACE'|'HTML_ENTITY_DECODE'|'LOWERCASE'|'CMD_LINE'|'URL_DECODE'|'BASE64_DECODE'|'HEX_DECODE'|'MD5'|'REPLACE_COMMENTS'|'ESCAPE_SEQ_DECODE'|'SQL_HEX_DECODE'|'CSS_DECODE'|'JS_DECODE'|'NORMALIZE_PATH'|'NORMALIZE_PATH_WIN'|'REMOVE_NULLS'|'REPLACE_NULLS'|'BASE64_DECODE_EXT'|'URL_DECODE_UNI'|'UTF8_TO_UNICODE'
                                    },
                                ]
                            }
                        },
                    ]
                },
                'AndStatement': {
                    'Statements': [
                        {'... recursive ...'},
                    ]
                },
                'OrStatement': {
                    'Statements': [
                        {'... recursive ...'},
                    ]
                },
                'NotStatement': {
                    'Statement': {'... recursive ...'}
                },
                'ManagedRuleGroupStatement': {
                    'VendorName': 'string',
                    'Name': 'string',
                    'Version': 'string',
                    'ExcludedRules': [
                        {
                            'Name': 'string'
                        },
                    ],
                    'ScopeDownStatement': {'... recursive ...'},
                    'ManagedRuleGroupConfigs': [
                        {
                            'LoginPath': 'string',
                            'PayloadType': 'JSON'|'FORM_ENCODED',
                            'UsernameField': {
                                'Identifier': 'string'
                            },
                            'PasswordField': {
                                'Identifier': 'string'
                            },
                            'AWSManagedRulesBotControlRuleSet': {
                                'InspectionLevel': 'COMMON'|'TARGETED',
                                'EnableMachineLearning': True|False
                            },
                            'AWSManagedRulesATPRuleSet': {
                                'LoginPath': 'string',
                                'RequestInspection': {
                                    'PayloadType': 'JSON'|'FORM_ENCODED',
                                    'UsernameField': {
                                        'Identifier': 'string'
                                    },
                                    'PasswordField': {
                                        'Identifier': 'string'
                                    }
                                },
                                'ResponseInspection': {
                                    'StatusCode': {
                                        'SuccessCodes': [
                                            123,
                                        ],
                                        'FailureCodes': [
                                            123,
                                        ]
                                    },
                                    'Header': {
                                        'Name': 'string',
                                        'SuccessValues': [
                                            'string',
                                        ],
                                        'FailureValues': [
                                            'string',
                                        ]
                                    },
                                    'BodyContains': {
                                        'SuccessStrings': [
                                            'string',
                                        ],
                                        'FailureStrings': [
                                            'string',
                                        ]
                                    },
                                    'Json': {
                                        'Identifier': 'string',
                                        'SuccessValues': [
                                            'string',
                                        ],
                                        'FailureValues': [
                                            'string',
                                        ]
                                    }
                                },
                                'EnableRegexInPath': True|False
                            },
                            'AWSManagedRulesACFPRuleSet': {
                                'CreationPath': 'string',
                                'RegistrationPagePath': 'string',
                                'RequestInspection': {
                                    'PayloadType': 'JSON'|'FORM_ENCODED',
                                    'UsernameField': {
                                        'Identifier': 'string'
                                    },
                                    'PasswordField': {
                                        'Identifier': 'string'
                                    },
                                    'EmailField': {
                                        'Identifier': 'string'
                                    },
                                    'PhoneNumberFields': [
                                        {
                                            'Identifier': 'string'
                                        },
                                    ],
                                    'AddressFields': [
                                        {
                                            'Identifier': 'string'
                                        },
                                    ]
                                },
                                'ResponseInspection': {
                                    'StatusCode': {
                                        'SuccessCodes': [
                                            123,
                                        ],
                                        'FailureCodes': [
                                            123,
                                        ]
                                    },
                                    'Header': {
                                        'Name': 'string',
                                        'SuccessValues': [
                                            'string',
                                        ],
                                        'FailureValues': [
                                            'string',
                                        ]
                                    },
                                    'BodyContains': {
                                        'SuccessStrings': [
                                            'string',
                                        ],
                                        'FailureStrings': [
                                            'string',
                                        ]
                                    },
                                    'Json': {
                                        'Identifier': 'string',
                                        'SuccessValues': [
                                            'string',
                                        ],
                                        'FailureValues': [
                                            'string',
                                        ]
                                    }
                                },
                                'EnableRegexInPath': True|False
                            }
                        },
                    ],
                    'RuleActionOverrides': [
                        {
                            'Name': 'string',
                            'ActionToUse': {
                                'Block': {
                                    'CustomResponse': {
                                        'ResponseCode': 123,
                                        'CustomResponseBodyKey': 'string',
                                        'ResponseHeaders': [
                                            {
                                                'Name': 'string',
                                                'Value': 'string'
                                            },
                                        ]
                                    }
                                },
                                'Allow': {
                                    'CustomRequestHandling': {
                                        'InsertHeaders': [
                                            {
                                                'Name': 'string',
                                                'Value': 'string'
                                            },
                                        ]
                                    }
                                },
                                'Count': {
                                    'CustomRequestHandling': {
                                        'InsertHeaders': [
                                            {
                                                'Name': 'string',
                                                'Value': 'string'
                                            },
                                        ]
                                    }
                                },
                                'Captcha': {
                                    'CustomRequestHandling': {
                                        'InsertHeaders': [
                                            {
                                                'Name': 'string',
                                                'Value': 'string'
                                            },
                                        ]
                                    }
                                },
                                'Challenge': {
                                    'CustomRequestHandling': {
                                        'InsertHeaders': [
                                            {
                                                'Name': 'string',
                                                'Value': 'string'
                                            },
                                        ]
                                    }
                                }
                            }
                        },
                    ]
                },
                'LabelMatchStatement': {
                    'Scope': 'LABEL'|'NAMESPACE',
                    'Key': 'string'
                },
                'RegexMatchStatement': {
                    'RegexString': 'string',
                    'FieldToMatch': {
                        'SingleHeader': {
                            'Name': 'string'
                        },
                        'SingleQueryArgument': {
                            'Name': 'string'
                        },
                        'AllQueryArguments': {}
                        ,
                        'UriPath': {}
                        ,
                        'QueryString': {}
                        ,
                        'Body': {
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Method': {}
                        ,
                        'JsonBody': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedPaths': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'InvalidFallbackBehavior': 'MATCH'|'NO_MATCH'|'EVALUATE_AS_STRING',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Headers': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedHeaders': [
                                    'string',
                                ],
                                'ExcludedHeaders': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Cookies': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedCookies': [
                                    'string',
                                ],
                                'ExcludedCookies': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'HeaderOrder': {
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'JA3Fingerprint': {
                            'FallbackBehavior': 'MATCH'|'NO_MATCH'
                        }
                    },
                    'TextTransformations': [
                        {
                            'Priority': 123,
                            'Type': 'NONE'|'COMPRESS_WHITE_SPACE'|'HTML_ENTITY_DECODE'|'LOWERCASE'|'CMD_LINE'|'URL_DECODE'|'BASE64_DECODE'|'HEX_DECODE'|'MD5'|'REPLACE_COMMENTS'|'ESCAPE_SEQ_DECODE'|'SQL_HEX_DECODE'|'CSS_DECODE'|'JS_DECODE'|'NORMALIZE_PATH'|'NORMALIZE_PATH_WIN'|'REMOVE_NULLS'|'REPLACE_NULLS'|'BASE64_DECODE_EXT'|'URL_DECODE_UNI'|'UTF8_TO_UNICODE'
                        },
                    ]
                }
            },
            'Action': {
                'Block': {
                    'CustomResponse': {
                        'ResponseCode': 123,
                        'CustomResponseBodyKey': 'string',
                        'ResponseHeaders': [
                            {
                                'Name': 'string',
                                'Value': 'string'
                            },
                        ]
                    }
                },
                'Allow': {
                    'CustomRequestHandling': {
                        'InsertHeaders': [
                            {
                                'Name': 'string',
                                'Value': 'string'
                            },
                        ]
                    }
                },
                'Count': {
                    'CustomRequestHandling': {
                        'InsertHeaders': [
                            {
                                'Name': 'string',
                                'Value': 'string'
                            },
                        ]
                    }
                },
                'Captcha': {
                    'CustomRequestHandling': {
                        'InsertHeaders': [
                            {
                                'Name': 'string',
                                'Value': 'string'
                            },
                        ]
                    }
                },
                'Challenge': {
                    'CustomRequestHandling': {
                        'InsertHeaders': [
                            {
                                'Name': 'string',
                                'Value': 'string'
                            },
                        ]
                    }
                }
            },
            'OverrideAction': {
                'Count': {
                    'CustomRequestHandling': {
                        'InsertHeaders': [
                            {
                                'Name': 'string',
                                'Value': 'string'
                            },
                        ]
                    }
                },
                'None': {}

            },
            'RuleLabels': [
                {
                    'Name': 'string'
                },
            ],
            'VisibilityConfig': {
                'SampledRequestsEnabled': True|False,
                'CloudWatchMetricsEnabled': True|False,
                'MetricName': 'string'
            },
            'CaptchaConfig': {
                'ImmunityTimeProperty': {
                    'ImmunityTime': 123
                }
            },
            'ChallengeConfig': {
                'ImmunityTimeProperty': {
                    'ImmunityTime': 123
                }
            }
        },
    ],
    VisibilityConfig={
        'SampledRequestsEnabled': True|False,
        'CloudWatchMetricsEnabled': True|False,
        'MetricName': 'string'
    },
    Tags=[
        {
            'Key': 'string',
            'Value': 'string'
        },
    ],
    CustomResponseBodies={
        'string': {
            'ContentType': 'TEXT_PLAIN'|'TEXT_HTML'|'APPLICATION_JSON',
            'Content': 'string'
        }
    }
)


  **Parameters**
  ::

      # This section is too large to render.
      # Please see the AWS API Documentation linked below.

  `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/CreateRuleGroup>`_
rtype:

dict

returns:

Response Syntax

{
    'Summary': {
        'Name': 'string',
        'Id': 'string',
        'Description': 'string',
        'LockToken': 'string',
        'ARN': 'string'
    }
}

Response Structure

  • (dict) --

    • Summary (dict) --

      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.

      • Name (string) --

        The name of the data type instance. You cannot change the name after you create the instance.

      • Id (string) --

        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.

      • Description (string) --

        A description of the rule group that helps with identification.

      • LockToken (string) --

        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.

      • ARN (string) --

        The Amazon Resource Name (ARN) of the entity.

CreateWebACL (updated) Link ¶
Changes (request)
{'Rules': {'Statement': {'ByteMatchStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                        '| '
                                                                                                        'NO_MATCH'}}},
                         'RegexMatchStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                         '| '
                                                                                                         'NO_MATCH'}}},
                         'RegexPatternSetReferenceStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                                       '| '
                                                                                                                       'NO_MATCH'}}},
                         'SizeConstraintStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                             '| '
                                                                                                             'NO_MATCH'}}},
                         'SqliMatchStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                        '| '
                                                                                                        'NO_MATCH'}}},
                         'XssMatchStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                       '| '
                                                                                                       'NO_MATCH'}}}}}}

Creates a WebACL per the specifications provided.

A web ACL defines a collection of rules to use to inspect and control web requests. Each rule has a statement that defines what to look for in web requests and an action that WAF applies to requests that match the statement. 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, an Amazon Cognito user pool, an App Runner service, or an Amazon Web Services Verified Access instance.

See also: AWS API Documentation

Request Syntax

client.create_web_acl(
    Name='string',
    Scope='CLOUDFRONT'|'REGIONAL',
    DefaultAction={
        'Block': {
            'CustomResponse': {
                'ResponseCode': 123,
                'CustomResponseBodyKey': 'string',
                'ResponseHeaders': [
                    {
                        'Name': 'string',
                        'Value': 'string'
                    },
                ]
            }
        },
        'Allow': {
            'CustomRequestHandling': {
                'InsertHeaders': [
                    {
                        'Name': 'string',
                        'Value': 'string'
                    },
                ]
            }
        }
    },
    Description='string',
    Rules=[
        {
            'Name': 'string',
            'Priority': 123,
            'Statement': {
                'ByteMatchStatement': {
                    'SearchString': b'bytes',
                    'FieldToMatch': {
                        'SingleHeader': {
                            'Name': 'string'
                        },
                        'SingleQueryArgument': {
                            'Name': 'string'
                        },
                        'AllQueryArguments': {}
                        ,
                        'UriPath': {}
                        ,
                        'QueryString': {}
                        ,
                        'Body': {
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Method': {}
                        ,
                        'JsonBody': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedPaths': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'InvalidFallbackBehavior': 'MATCH'|'NO_MATCH'|'EVALUATE_AS_STRING',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Headers': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedHeaders': [
                                    'string',
                                ],
                                'ExcludedHeaders': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Cookies': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedCookies': [
                                    'string',
                                ],
                                'ExcludedCookies': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'HeaderOrder': {
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'JA3Fingerprint': {
                            'FallbackBehavior': 'MATCH'|'NO_MATCH'
                        }
                    },
                    'TextTransformations': [
                        {
                            'Priority': 123,
                            'Type': 'NONE'|'COMPRESS_WHITE_SPACE'|'HTML_ENTITY_DECODE'|'LOWERCASE'|'CMD_LINE'|'URL_DECODE'|'BASE64_DECODE'|'HEX_DECODE'|'MD5'|'REPLACE_COMMENTS'|'ESCAPE_SEQ_DECODE'|'SQL_HEX_DECODE'|'CSS_DECODE'|'JS_DECODE'|'NORMALIZE_PATH'|'NORMALIZE_PATH_WIN'|'REMOVE_NULLS'|'REPLACE_NULLS'|'BASE64_DECODE_EXT'|'URL_DECODE_UNI'|'UTF8_TO_UNICODE'
                        },
                    ],
                    'PositionalConstraint': 'EXACTLY'|'STARTS_WITH'|'ENDS_WITH'|'CONTAINS'|'CONTAINS_WORD'
                },
                'SqliMatchStatement': {
                    'FieldToMatch': {
                        'SingleHeader': {
                            'Name': 'string'
                        },
                        'SingleQueryArgument': {
                            'Name': 'string'
                        },
                        'AllQueryArguments': {}
                        ,
                        'UriPath': {}
                        ,
                        'QueryString': {}
                        ,
                        'Body': {
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Method': {}
                        ,
                        'JsonBody': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedPaths': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'InvalidFallbackBehavior': 'MATCH'|'NO_MATCH'|'EVALUATE_AS_STRING',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Headers': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedHeaders': [
                                    'string',
                                ],
                                'ExcludedHeaders': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Cookies': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedCookies': [
                                    'string',
                                ],
                                'ExcludedCookies': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'HeaderOrder': {
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'JA3Fingerprint': {
                            'FallbackBehavior': 'MATCH'|'NO_MATCH'
                        }
                    },
                    'TextTransformations': [
                        {
                            'Priority': 123,
                            'Type': 'NONE'|'COMPRESS_WHITE_SPACE'|'HTML_ENTITY_DECODE'|'LOWERCASE'|'CMD_LINE'|'URL_DECODE'|'BASE64_DECODE'|'HEX_DECODE'|'MD5'|'REPLACE_COMMENTS'|'ESCAPE_SEQ_DECODE'|'SQL_HEX_DECODE'|'CSS_DECODE'|'JS_DECODE'|'NORMALIZE_PATH'|'NORMALIZE_PATH_WIN'|'REMOVE_NULLS'|'REPLACE_NULLS'|'BASE64_DECODE_EXT'|'URL_DECODE_UNI'|'UTF8_TO_UNICODE'
                        },
                    ],
                    'SensitivityLevel': 'LOW'|'HIGH'
                },
                'XssMatchStatement': {
                    'FieldToMatch': {
                        'SingleHeader': {
                            'Name': 'string'
                        },
                        'SingleQueryArgument': {
                            'Name': 'string'
                        },
                        'AllQueryArguments': {}
                        ,
                        'UriPath': {}
                        ,
                        'QueryString': {}
                        ,
                        'Body': {
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Method': {}
                        ,
                        'JsonBody': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedPaths': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'InvalidFallbackBehavior': 'MATCH'|'NO_MATCH'|'EVALUATE_AS_STRING',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Headers': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedHeaders': [
                                    'string',
                                ],
                                'ExcludedHeaders': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Cookies': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedCookies': [
                                    'string',
                                ],
                                'ExcludedCookies': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'HeaderOrder': {
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'JA3Fingerprint': {
                            'FallbackBehavior': 'MATCH'|'NO_MATCH'
                        }
                    },
                    'TextTransformations': [
                        {
                            'Priority': 123,
                            'Type': 'NONE'|'COMPRESS_WHITE_SPACE'|'HTML_ENTITY_DECODE'|'LOWERCASE'|'CMD_LINE'|'URL_DECODE'|'BASE64_DECODE'|'HEX_DECODE'|'MD5'|'REPLACE_COMMENTS'|'ESCAPE_SEQ_DECODE'|'SQL_HEX_DECODE'|'CSS_DECODE'|'JS_DECODE'|'NORMALIZE_PATH'|'NORMALIZE_PATH_WIN'|'REMOVE_NULLS'|'REPLACE_NULLS'|'BASE64_DECODE_EXT'|'URL_DECODE_UNI'|'UTF8_TO_UNICODE'
                        },
                    ]
                },
                'SizeConstraintStatement': {
                    'FieldToMatch': {
                        'SingleHeader': {
                            'Name': 'string'
                        },
                        'SingleQueryArgument': {
                            'Name': 'string'
                        },
                        'AllQueryArguments': {}
                        ,
                        'UriPath': {}
                        ,
                        'QueryString': {}
                        ,
                        'Body': {
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Method': {}
                        ,
                        'JsonBody': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedPaths': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'InvalidFallbackBehavior': 'MATCH'|'NO_MATCH'|'EVALUATE_AS_STRING',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Headers': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedHeaders': [
                                    'string',
                                ],
                                'ExcludedHeaders': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Cookies': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedCookies': [
                                    'string',
                                ],
                                'ExcludedCookies': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'HeaderOrder': {
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'JA3Fingerprint': {
                            'FallbackBehavior': 'MATCH'|'NO_MATCH'
                        }
                    },
                    'ComparisonOperator': 'EQ'|'NE'|'LE'|'LT'|'GE'|'GT',
                    'Size': 123,
                    'TextTransformations': [
                        {
                            'Priority': 123,
                            'Type': 'NONE'|'COMPRESS_WHITE_SPACE'|'HTML_ENTITY_DECODE'|'LOWERCASE'|'CMD_LINE'|'URL_DECODE'|'BASE64_DECODE'|'HEX_DECODE'|'MD5'|'REPLACE_COMMENTS'|'ESCAPE_SEQ_DECODE'|'SQL_HEX_DECODE'|'CSS_DECODE'|'JS_DECODE'|'NORMALIZE_PATH'|'NORMALIZE_PATH_WIN'|'REMOVE_NULLS'|'REPLACE_NULLS'|'BASE64_DECODE_EXT'|'URL_DECODE_UNI'|'UTF8_TO_UNICODE'
                        },
                    ]
                },
                'GeoMatchStatement': {
                    'CountryCodes': [
                        'AF'|'AX'|'AL'|'DZ'|'AS'|'AD'|'AO'|'AI'|'AQ'|'AG'|'AR'|'AM'|'AW'|'AU'|'AT'|'AZ'|'BS'|'BH'|'BD'|'BB'|'BY'|'BE'|'BZ'|'BJ'|'BM'|'BT'|'BO'|'BQ'|'BA'|'BW'|'BV'|'BR'|'IO'|'BN'|'BG'|'BF'|'BI'|'KH'|'CM'|'CA'|'CV'|'KY'|'CF'|'TD'|'CL'|'CN'|'CX'|'CC'|'CO'|'KM'|'CG'|'CD'|'CK'|'CR'|'CI'|'HR'|'CU'|'CW'|'CY'|'CZ'|'DK'|'DJ'|'DM'|'DO'|'EC'|'EG'|'SV'|'GQ'|'ER'|'EE'|'ET'|'FK'|'FO'|'FJ'|'FI'|'FR'|'GF'|'PF'|'TF'|'GA'|'GM'|'GE'|'DE'|'GH'|'GI'|'GR'|'GL'|'GD'|'GP'|'GU'|'GT'|'GG'|'GN'|'GW'|'GY'|'HT'|'HM'|'VA'|'HN'|'HK'|'HU'|'IS'|'IN'|'ID'|'IR'|'IQ'|'IE'|'IM'|'IL'|'IT'|'JM'|'JP'|'JE'|'JO'|'KZ'|'KE'|'KI'|'KP'|'KR'|'KW'|'KG'|'LA'|'LV'|'LB'|'LS'|'LR'|'LY'|'LI'|'LT'|'LU'|'MO'|'MK'|'MG'|'MW'|'MY'|'MV'|'ML'|'MT'|'MH'|'MQ'|'MR'|'MU'|'YT'|'MX'|'FM'|'MD'|'MC'|'MN'|'ME'|'MS'|'MA'|'MZ'|'MM'|'NA'|'NR'|'NP'|'NL'|'NC'|'NZ'|'NI'|'NE'|'NG'|'NU'|'NF'|'MP'|'NO'|'OM'|'PK'|'PW'|'PS'|'PA'|'PG'|'PY'|'PE'|'PH'|'PN'|'PL'|'PT'|'PR'|'QA'|'RE'|'RO'|'RU'|'RW'|'BL'|'SH'|'KN'|'LC'|'MF'|'PM'|'VC'|'WS'|'SM'|'ST'|'SA'|'SN'|'RS'|'SC'|'SL'|'SG'|'SX'|'SK'|'SI'|'SB'|'SO'|'ZA'|'GS'|'SS'|'ES'|'LK'|'SD'|'SR'|'SJ'|'SZ'|'SE'|'CH'|'SY'|'TW'|'TJ'|'TZ'|'TH'|'TL'|'TG'|'TK'|'TO'|'TT'|'TN'|'TR'|'TM'|'TC'|'TV'|'UG'|'UA'|'AE'|'GB'|'US'|'UM'|'UY'|'UZ'|'VU'|'VE'|'VN'|'VG'|'VI'|'WF'|'EH'|'YE'|'ZM'|'ZW'|'XK',
                    ],
                    'ForwardedIPConfig': {
                        'HeaderName': 'string',
                        'FallbackBehavior': 'MATCH'|'NO_MATCH'
                    }
                },
                'RuleGroupReferenceStatement': {
                    'ARN': 'string',
                    'ExcludedRules': [
                        {
                            'Name': 'string'
                        },
                    ],
                    'RuleActionOverrides': [
                        {
                            'Name': 'string',
                            'ActionToUse': {
                                'Block': {
                                    'CustomResponse': {
                                        'ResponseCode': 123,
                                        'CustomResponseBodyKey': 'string',
                                        'ResponseHeaders': [
                                            {
                                                'Name': 'string',
                                                'Value': 'string'
                                            },
                                        ]
                                    }
                                },
                                'Allow': {
                                    'CustomRequestHandling': {
                                        'InsertHeaders': [
                                            {
                                                'Name': 'string',
                                                'Value': 'string'
                                            },
                                        ]
                                    }
                                },
                                'Count': {
                                    'CustomRequestHandling': {
                                        'InsertHeaders': [
                                            {
                                                'Name': 'string',
                                                'Value': 'string'
                                            },
                                        ]
                                    }
                                },
                                'Captcha': {
                                    'CustomRequestHandling': {
                                        'InsertHeaders': [
                                            {
                                                'Name': 'string',
                                                'Value': 'string'
                                            },
                                        ]
                                    }
                                },
                                'Challenge': {
                                    'CustomRequestHandling': {
                                        'InsertHeaders': [
                                            {
                                                'Name': 'string',
                                                'Value': 'string'
                                            },
                                        ]
                                    }
                                }
                            }
                        },
                    ]
                },
                'IPSetReferenceStatement': {
                    'ARN': 'string',
                    'IPSetForwardedIPConfig': {
                        'HeaderName': 'string',
                        'FallbackBehavior': 'MATCH'|'NO_MATCH',
                        'Position': 'FIRST'|'LAST'|'ANY'
                    }
                },
                'RegexPatternSetReferenceStatement': {
                    'ARN': 'string',
                    'FieldToMatch': {
                        'SingleHeader': {
                            'Name': 'string'
                        },
                        'SingleQueryArgument': {
                            'Name': 'string'
                        },
                        'AllQueryArguments': {}
                        ,
                        'UriPath': {}
                        ,
                        'QueryString': {}
                        ,
                        'Body': {
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Method': {}
                        ,
                        'JsonBody': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedPaths': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'InvalidFallbackBehavior': 'MATCH'|'NO_MATCH'|'EVALUATE_AS_STRING',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Headers': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedHeaders': [
                                    'string',
                                ],
                                'ExcludedHeaders': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Cookies': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedCookies': [
                                    'string',
                                ],
                                'ExcludedCookies': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'HeaderOrder': {
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'JA3Fingerprint': {
                            'FallbackBehavior': 'MATCH'|'NO_MATCH'
                        }
                    },
                    'TextTransformations': [
                        {
                            'Priority': 123,
                            'Type': 'NONE'|'COMPRESS_WHITE_SPACE'|'HTML_ENTITY_DECODE'|'LOWERCASE'|'CMD_LINE'|'URL_DECODE'|'BASE64_DECODE'|'HEX_DECODE'|'MD5'|'REPLACE_COMMENTS'|'ESCAPE_SEQ_DECODE'|'SQL_HEX_DECODE'|'CSS_DECODE'|'JS_DECODE'|'NORMALIZE_PATH'|'NORMALIZE_PATH_WIN'|'REMOVE_NULLS'|'REPLACE_NULLS'|'BASE64_DECODE_EXT'|'URL_DECODE_UNI'|'UTF8_TO_UNICODE'
                        },
                    ]
                },
                'RateBasedStatement': {
                    'Limit': 123,
                    'AggregateKeyType': 'IP'|'FORWARDED_IP'|'CUSTOM_KEYS'|'CONSTANT',
                    'ScopeDownStatement': {'... recursive ...'},
                    'ForwardedIPConfig': {
                        'HeaderName': 'string',
                        'FallbackBehavior': 'MATCH'|'NO_MATCH'
                    },
                    'CustomKeys': [
                        {
                            'Header': {
                                'Name': 'string',
                                'TextTransformations': [
                                    {
                                        'Priority': 123,
                                        'Type': 'NONE'|'COMPRESS_WHITE_SPACE'|'HTML_ENTITY_DECODE'|'LOWERCASE'|'CMD_LINE'|'URL_DECODE'|'BASE64_DECODE'|'HEX_DECODE'|'MD5'|'REPLACE_COMMENTS'|'ESCAPE_SEQ_DECODE'|'SQL_HEX_DECODE'|'CSS_DECODE'|'JS_DECODE'|'NORMALIZE_PATH'|'NORMALIZE_PATH_WIN'|'REMOVE_NULLS'|'REPLACE_NULLS'|'BASE64_DECODE_EXT'|'URL_DECODE_UNI'|'UTF8_TO_UNICODE'
                                    },
                                ]
                            },
                            'Cookie': {
                                'Name': 'string',
                                'TextTransformations': [
                                    {
                                        'Priority': 123,
                                        'Type': 'NONE'|'COMPRESS_WHITE_SPACE'|'HTML_ENTITY_DECODE'|'LOWERCASE'|'CMD_LINE'|'URL_DECODE'|'BASE64_DECODE'|'HEX_DECODE'|'MD5'|'REPLACE_COMMENTS'|'ESCAPE_SEQ_DECODE'|'SQL_HEX_DECODE'|'CSS_DECODE'|'JS_DECODE'|'NORMALIZE_PATH'|'NORMALIZE_PATH_WIN'|'REMOVE_NULLS'|'REPLACE_NULLS'|'BASE64_DECODE_EXT'|'URL_DECODE_UNI'|'UTF8_TO_UNICODE'
                                    },
                                ]
                            },
                            'QueryArgument': {
                                'Name': 'string',
                                'TextTransformations': [
                                    {
                                        'Priority': 123,
                                        'Type': 'NONE'|'COMPRESS_WHITE_SPACE'|'HTML_ENTITY_DECODE'|'LOWERCASE'|'CMD_LINE'|'URL_DECODE'|'BASE64_DECODE'|'HEX_DECODE'|'MD5'|'REPLACE_COMMENTS'|'ESCAPE_SEQ_DECODE'|'SQL_HEX_DECODE'|'CSS_DECODE'|'JS_DECODE'|'NORMALIZE_PATH'|'NORMALIZE_PATH_WIN'|'REMOVE_NULLS'|'REPLACE_NULLS'|'BASE64_DECODE_EXT'|'URL_DECODE_UNI'|'UTF8_TO_UNICODE'
                                    },
                                ]
                            },
                            'QueryString': {
                                'TextTransformations': [
                                    {
                                        'Priority': 123,
                                        'Type': 'NONE'|'COMPRESS_WHITE_SPACE'|'HTML_ENTITY_DECODE'|'LOWERCASE'|'CMD_LINE'|'URL_DECODE'|'BASE64_DECODE'|'HEX_DECODE'|'MD5'|'REPLACE_COMMENTS'|'ESCAPE_SEQ_DECODE'|'SQL_HEX_DECODE'|'CSS_DECODE'|'JS_DECODE'|'NORMALIZE_PATH'|'NORMALIZE_PATH_WIN'|'REMOVE_NULLS'|'REPLACE_NULLS'|'BASE64_DECODE_EXT'|'URL_DECODE_UNI'|'UTF8_TO_UNICODE'
                                    },
                                ]
                            },
                            'HTTPMethod': {}
                            ,
                            'ForwardedIP': {}
                            ,
                            'IP': {}
                            ,
                            'LabelNamespace': {
                                'Namespace': 'string'
                            },
                            'UriPath': {
                                'TextTransformations': [
                                    {
                                        'Priority': 123,
                                        'Type': 'NONE'|'COMPRESS_WHITE_SPACE'|'HTML_ENTITY_DECODE'|'LOWERCASE'|'CMD_LINE'|'URL_DECODE'|'BASE64_DECODE'|'HEX_DECODE'|'MD5'|'REPLACE_COMMENTS'|'ESCAPE_SEQ_DECODE'|'SQL_HEX_DECODE'|'CSS_DECODE'|'JS_DECODE'|'NORMALIZE_PATH'|'NORMALIZE_PATH_WIN'|'REMOVE_NULLS'|'REPLACE_NULLS'|'BASE64_DECODE_EXT'|'URL_DECODE_UNI'|'UTF8_TO_UNICODE'
                                    },
                                ]
                            }
                        },
                    ]
                },
                'AndStatement': {
                    'Statements': [
                        {'... recursive ...'},
                    ]
                },
                'OrStatement': {
                    'Statements': [
                        {'... recursive ...'},
                    ]
                },
                'NotStatement': {
                    'Statement': {'... recursive ...'}
                },
                'ManagedRuleGroupStatement': {
                    'VendorName': 'string',
                    'Name': 'string',
                    'Version': 'string',
                    'ExcludedRules': [
                        {
                            'Name': 'string'
                        },
                    ],
                    'ScopeDownStatement': {'... recursive ...'},
                    'ManagedRuleGroupConfigs': [
                        {
                            'LoginPath': 'string',
                            'PayloadType': 'JSON'|'FORM_ENCODED',
                            'UsernameField': {
                                'Identifier': 'string'
                            },
                            'PasswordField': {
                                'Identifier': 'string'
                            },
                            'AWSManagedRulesBotControlRuleSet': {
                                'InspectionLevel': 'COMMON'|'TARGETED',
                                'EnableMachineLearning': True|False
                            },
                            'AWSManagedRulesATPRuleSet': {
                                'LoginPath': 'string',
                                'RequestInspection': {
                                    'PayloadType': 'JSON'|'FORM_ENCODED',
                                    'UsernameField': {
                                        'Identifier': 'string'
                                    },
                                    'PasswordField': {
                                        'Identifier': 'string'
                                    }
                                },
                                'ResponseInspection': {
                                    'StatusCode': {
                                        'SuccessCodes': [
                                            123,
                                        ],
                                        'FailureCodes': [
                                            123,
                                        ]
                                    },
                                    'Header': {
                                        'Name': 'string',
                                        'SuccessValues': [
                                            'string',
                                        ],
                                        'FailureValues': [
                                            'string',
                                        ]
                                    },
                                    'BodyContains': {
                                        'SuccessStrings': [
                                            'string',
                                        ],
                                        'FailureStrings': [
                                            'string',
                                        ]
                                    },
                                    'Json': {
                                        'Identifier': 'string',
                                        'SuccessValues': [
                                            'string',
                                        ],
                                        'FailureValues': [
                                            'string',
                                        ]
                                    }
                                },
                                'EnableRegexInPath': True|False
                            },
                            'AWSManagedRulesACFPRuleSet': {
                                'CreationPath': 'string',
                                'RegistrationPagePath': 'string',
                                'RequestInspection': {
                                    'PayloadType': 'JSON'|'FORM_ENCODED',
                                    'UsernameField': {
                                        'Identifier': 'string'
                                    },
                                    'PasswordField': {
                                        'Identifier': 'string'
                                    },
                                    'EmailField': {
                                        'Identifier': 'string'
                                    },
                                    'PhoneNumberFields': [
                                        {
                                            'Identifier': 'string'
                                        },
                                    ],
                                    'AddressFields': [
                                        {
                                            'Identifier': 'string'
                                        },
                                    ]
                                },
                                'ResponseInspection': {
                                    'StatusCode': {
                                        'SuccessCodes': [
                                            123,
                                        ],
                                        'FailureCodes': [
                                            123,
                                        ]
                                    },
                                    'Header': {
                                        'Name': 'string',
                                        'SuccessValues': [
                                            'string',
                                        ],
                                        'FailureValues': [
                                            'string',
                                        ]
                                    },
                                    'BodyContains': {
                                        'SuccessStrings': [
                                            'string',
                                        ],
                                        'FailureStrings': [
                                            'string',
                                        ]
                                    },
                                    'Json': {
                                        'Identifier': 'string',
                                        'SuccessValues': [
                                            'string',
                                        ],
                                        'FailureValues': [
                                            'string',
                                        ]
                                    }
                                },
                                'EnableRegexInPath': True|False
                            }
                        },
                    ],
                    'RuleActionOverrides': [
                        {
                            'Name': 'string',
                            'ActionToUse': {
                                'Block': {
                                    'CustomResponse': {
                                        'ResponseCode': 123,
                                        'CustomResponseBodyKey': 'string',
                                        'ResponseHeaders': [
                                            {
                                                'Name': 'string',
                                                'Value': 'string'
                                            },
                                        ]
                                    }
                                },
                                'Allow': {
                                    'CustomRequestHandling': {
                                        'InsertHeaders': [
                                            {
                                                'Name': 'string',
                                                'Value': 'string'
                                            },
                                        ]
                                    }
                                },
                                'Count': {
                                    'CustomRequestHandling': {
                                        'InsertHeaders': [
                                            {
                                                'Name': 'string',
                                                'Value': 'string'
                                            },
                                        ]
                                    }
                                },
                                'Captcha': {
                                    'CustomRequestHandling': {
                                        'InsertHeaders': [
                                            {
                                                'Name': 'string',
                                                'Value': 'string'
                                            },
                                        ]
                                    }
                                },
                                'Challenge': {
                                    'CustomRequestHandling': {
                                        'InsertHeaders': [
                                            {
                                                'Name': 'string',
                                                'Value': 'string'
                                            },
                                        ]
                                    }
                                }
                            }
                        },
                    ]
                },
                'LabelMatchStatement': {
                    'Scope': 'LABEL'|'NAMESPACE',
                    'Key': 'string'
                },
                'RegexMatchStatement': {
                    'RegexString': 'string',
                    'FieldToMatch': {
                        'SingleHeader': {
                            'Name': 'string'
                        },
                        'SingleQueryArgument': {
                            'Name': 'string'
                        },
                        'AllQueryArguments': {}
                        ,
                        'UriPath': {}
                        ,
                        'QueryString': {}
                        ,
                        'Body': {
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Method': {}
                        ,
                        'JsonBody': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedPaths': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'InvalidFallbackBehavior': 'MATCH'|'NO_MATCH'|'EVALUATE_AS_STRING',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Headers': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedHeaders': [
                                    'string',
                                ],
                                'ExcludedHeaders': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Cookies': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedCookies': [
                                    'string',
                                ],
                                'ExcludedCookies': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'HeaderOrder': {
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'JA3Fingerprint': {
                            'FallbackBehavior': 'MATCH'|'NO_MATCH'
                        }
                    },
                    'TextTransformations': [
                        {
                            'Priority': 123,
                            'Type': 'NONE'|'COMPRESS_WHITE_SPACE'|'HTML_ENTITY_DECODE'|'LOWERCASE'|'CMD_LINE'|'URL_DECODE'|'BASE64_DECODE'|'HEX_DECODE'|'MD5'|'REPLACE_COMMENTS'|'ESCAPE_SEQ_DECODE'|'SQL_HEX_DECODE'|'CSS_DECODE'|'JS_DECODE'|'NORMALIZE_PATH'|'NORMALIZE_PATH_WIN'|'REMOVE_NULLS'|'REPLACE_NULLS'|'BASE64_DECODE_EXT'|'URL_DECODE_UNI'|'UTF8_TO_UNICODE'
                        },
                    ]
                }
            },
            'Action': {
                'Block': {
                    'CustomResponse': {
                        'ResponseCode': 123,
                        'CustomResponseBodyKey': 'string',
                        'ResponseHeaders': [
                            {
                                'Name': 'string',
                                'Value': 'string'
                            },
                        ]
                    }
                },
                'Allow': {
                    'CustomRequestHandling': {
                        'InsertHeaders': [
                            {
                                'Name': 'string',
                                'Value': 'string'
                            },
                        ]
                    }
                },
                'Count': {
                    'CustomRequestHandling': {
                        'InsertHeaders': [
                            {
                                'Name': 'string',
                                'Value': 'string'
                            },
                        ]
                    }
                },
                'Captcha': {
                    'CustomRequestHandling': {
                        'InsertHeaders': [
                            {
                                'Name': 'string',
                                'Value': 'string'
                            },
                        ]
                    }
                },
                'Challenge': {
                    'CustomRequestHandling': {
                        'InsertHeaders': [
                            {
                                'Name': 'string',
                                'Value': 'string'
                            },
                        ]
                    }
                }
            },
            'OverrideAction': {
                'Count': {
                    'CustomRequestHandling': {
                        'InsertHeaders': [
                            {
                                'Name': 'string',
                                'Value': 'string'
                            },
                        ]
                    }
                },
                'None': {}

            },
            'RuleLabels': [
                {
                    'Name': 'string'
                },
            ],
            'VisibilityConfig': {
                'SampledRequestsEnabled': True|False,
                'CloudWatchMetricsEnabled': True|False,
                'MetricName': 'string'
            },
            'CaptchaConfig': {
                'ImmunityTimeProperty': {
                    'ImmunityTime': 123
                }
            },
            'ChallengeConfig': {
                'ImmunityTimeProperty': {
                    'ImmunityTime': 123
                }
            }
        },
    ],
    VisibilityConfig={
        'SampledRequestsEnabled': True|False,
        'CloudWatchMetricsEnabled': True|False,
        'MetricName': 'string'
    },
    Tags=[
        {
            'Key': 'string',
            'Value': 'string'
        },
    ],
    CustomResponseBodies={
        'string': {
            'ContentType': 'TEXT_PLAIN'|'TEXT_HTML'|'APPLICATION_JSON',
            'Content': 'string'
        }
    },
    CaptchaConfig={
        'ImmunityTimeProperty': {
            'ImmunityTime': 123
        }
    },
    ChallengeConfig={
        'ImmunityTimeProperty': {
            'ImmunityTime': 123
        }
    },
    TokenDomains=[
        'string',
    ],
    AssociationConfig={
        'RequestBody': {
            'string': {
                'DefaultSizeInspectionLimit': 'KB_16'|'KB_32'|'KB_48'|'KB_64'
            }
        }
    }
)


  **Parameters**
  ::

      # This section is too large to render.
      # Please see the AWS API Documentation linked below.

  `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/CreateWebACL>`_
rtype:

dict

returns:

Response Syntax

{
    'Summary': {
        'Name': 'string',
        'Id': 'string',
        'Description': 'string',
        'LockToken': 'string',
        'ARN': 'string'
    }
}

Response Structure

  • (dict) --

    • Summary (dict) --

      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.

      • Name (string) --

        The name of the web ACL. You cannot change the name of a web ACL after you create it.

      • Id (string) --

        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.

      • Description (string) --

        A description of the web ACL that helps with identification.

      • LockToken (string) --

        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.

      • ARN (string) --

        The Amazon Resource Name (ARN) of the entity.

GetLoggingConfiguration (updated) Link ¶
Changes (response)
{'LoggingConfiguration': {'RedactedFields': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                    '| '
                                                                                    'NO_MATCH'}}}}

Returns the LoggingConfiguration for the specified web ACL.

See also: AWS API Documentation

Request Syntax

client.get_logging_configuration(
    ResourceArn='string'
)
type ResourceArn:

string

param ResourceArn:

[REQUIRED]

The Amazon Resource Name (ARN) of the web ACL for which you want to get the LoggingConfiguration.

rtype:

dict

returns:

Response Syntax

{
    'LoggingConfiguration': {
        'ResourceArn': 'string',
        'LogDestinationConfigs': [
            'string',
        ],
        'RedactedFields': [
            {
                'SingleHeader': {
                    'Name': 'string'
                },
                'SingleQueryArgument': {
                    'Name': 'string'
                },
                'AllQueryArguments': {},
                'UriPath': {},
                'QueryString': {},
                'Body': {
                    'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                },
                'Method': {},
                'JsonBody': {
                    'MatchPattern': {
                        'All': {},
                        'IncludedPaths': [
                            'string',
                        ]
                    },
                    'MatchScope': 'ALL'|'KEY'|'VALUE',
                    'InvalidFallbackBehavior': 'MATCH'|'NO_MATCH'|'EVALUATE_AS_STRING',
                    'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                },
                'Headers': {
                    'MatchPattern': {
                        'All': {},
                        'IncludedHeaders': [
                            'string',
                        ],
                        'ExcludedHeaders': [
                            'string',
                        ]
                    },
                    'MatchScope': 'ALL'|'KEY'|'VALUE',
                    'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                },
                'Cookies': {
                    'MatchPattern': {
                        'All': {},
                        'IncludedCookies': [
                            'string',
                        ],
                        'ExcludedCookies': [
                            'string',
                        ]
                    },
                    'MatchScope': 'ALL'|'KEY'|'VALUE',
                    'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                },
                'HeaderOrder': {
                    'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                },
                'JA3Fingerprint': {
                    'FallbackBehavior': 'MATCH'|'NO_MATCH'
                }
            },
        ],
        'ManagedByFirewallManager': True|False,
        'LoggingFilter': {
            'Filters': [
                {
                    'Behavior': 'KEEP'|'DROP',
                    'Requirement': 'MEETS_ALL'|'MEETS_ANY',
                    'Conditions': [
                        {
                            'ActionCondition': {
                                'Action': 'ALLOW'|'BLOCK'|'COUNT'|'CAPTCHA'|'CHALLENGE'|'EXCLUDED_AS_COUNT'
                            },
                            'LabelNameCondition': {
                                'LabelName': 'string'
                            }
                        },
                    ]
                },
            ],
            'DefaultBehavior': 'KEEP'|'DROP'
        }
    }
}

Response Structure

  • (dict) --

    • LoggingConfiguration (dict) --

      The LoggingConfiguration for the specified web ACL.

      • ResourceArn (string) --

        The Amazon Resource Name (ARN) of the web ACL that you want to associate with LogDestinationConfigs.

      • LogDestinationConfigs (list) --

        The logging destination configuration that you want to associate with the web ACL.

        • (string) --

      • RedactedFields (list) --

        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 REDACTED for all rules that use the SingleHeader FieldToMatch setting.

        Redaction applies only to the component that's specified in the rule's FieldToMatch setting, so the SingleHeader redaction doesn't apply to rules that use the Headers FieldToMatch.

        • (dict) --

          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" } }

          • SingleHeader (dict) --

            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.

            • Name (string) --

              The name of the query header to inspect.

          • SingleQueryArgument (dict) --

            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" }

            • Name (string) --

              The name of the query argument to inspect.

          • AllQueryArguments (dict) --

            Inspect all query arguments.

          • UriPath (dict) --

            Inspect the request URI path. This is the part of the web request that identifies a resource, for example, /images/daily-ad.jpg.

          • QueryString (dict) --

            Inspect the query string. This is the part of a URL that appears after a ? character, if any.

          • Body (dict) --

            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.

            A limited amount of the request body is forwarded to WAF for inspection by the underlying host service. For regional resources, the limit is 8 KB (8,192 bytes) and for CloudFront distributions, the limit is 16 KB (16,384 bytes). For CloudFront distributions, you can increase the limit in the web ACL's AssociationConfig, for additional processing fees.

            For information about how to handle oversized request bodies, see the Body object configuration.

            • OversizeHandling (string) --

              What WAF should do if the body is larger than WAF can inspect. WAF does not support inspecting the entire contents of the web request body if the body exceeds the limit for the resource type. If the body is larger than the limit, the underlying host service only forwards the contents that are below the limit to WAF for inspection.

              The default limit is 8 KB (8,192 bytes) for regional resources and 16 KB (16,384 bytes) for CloudFront distributions. For CloudFront distributions, you can increase the limit in the web ACL AssociationConfig, for additional processing fees.

              The options for oversize handling are the following:

              • CONTINUE - Inspect the available body contents 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 the limit.

              Default: CONTINUE

          • Method (dict) --

            Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.

          • JsonBody (dict) --

            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.

            A limited amount of the request body is forwarded to WAF for inspection by the underlying host service. For regional resources, the limit is 8 KB (8,192 bytes) and for CloudFront distributions, the limit is 16 KB (16,384 bytes). For CloudFront distributions, you can increase the limit in the web ACL's AssociationConfig, for additional processing fees.

            For information about how to handle oversized request bodies, see the JsonBody object configuration.

            • MatchPattern (dict) --

              The patterns to look for in the JSON body. WAF inspects the results of these pattern matches against the rule inspection criteria.

              • All (dict) --

                Match all of the elements. See also MatchScope in JsonBody.

                You must specify either this setting or the IncludedPaths setting, but not both.

              • IncludedPaths (list) --

                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.

                • (string) --

            • MatchScope (string) --

              The parts of the JSON to match against using the MatchPattern. If you specify All, WAF matches against keys and values.

            • InvalidFallbackBehavior (string) --

              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"}

            • OversizeHandling (string) --

              What WAF should do if the body is larger than WAF can inspect. WAF does not support inspecting the entire contents of the web request body if the body exceeds the limit for the resource type. If the body is larger than the limit, the underlying host service only forwards the contents that are below the limit to WAF for inspection.

              The default limit is 8 KB (8,192 bytes) for regional resources and 16 KB (16,384 bytes) for CloudFront distributions. For CloudFront distributions, you can increase the limit in the web ACL AssociationConfig, for additional processing fees.

              The options for oversize handling are the following:

              • CONTINUE - Inspect the available body contents 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 the limit.

              Default: CONTINUE

          • Headers (dict) --

            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.

            • MatchPattern (dict) --

              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" ] }

              • All (dict) --

                Inspect all headers.

              • IncludedHeaders (list) --

                Inspect only the headers that have a key that matches one of the strings specified here.

                • (string) --

              • ExcludedHeaders (list) --

                Inspect only the headers whose keys don't match any of the strings specified here.

                • (string) --

            • MatchScope (string) --

              The parts of the headers to match with the rule inspection criteria. If you specify All, WAF inspects both keys and values.

            • OversizeHandling (string) --

              What WAF should do if the headers of the request are more numerous or 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 available 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.

          • Cookies (dict) --

            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.

            • MatchPattern (dict) --

              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": [ "session-id-time", "session-id" ] }

              • All (dict) --

                Inspect all cookies.

              • IncludedCookies (list) --

                Inspect only the cookies that have a key that matches one of the strings specified here.

                • (string) --

              • ExcludedCookies (list) --

                Inspect only the cookies whose keys don't match any of the strings specified here.

                • (string) --

            • MatchScope (string) --

              The parts of the cookies to inspect with the rule inspection criteria. If you specify All, WAF inspects both keys and values.

            • OversizeHandling (string) --

              What WAF should do if the cookies of the request are more numerous or 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 available 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.

          • HeaderOrder (dict) --

            Inspect a string containing the list of the request's header names, ordered as they appear in the web request that WAF receives for inspection. WAF generates the string and then uses that as the field to match component in its inspection. WAF separates the header names in the string using colons and no added spaces, for example host:user-agent:accept:authorization:referer.

            • OversizeHandling (string) --

              What WAF should do if the headers of the request are more numerous or 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 available 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.

          • JA3Fingerprint (dict) --

            Match against the request's JA3 fingerprint header. The header contains a hash fingerprint of the TLS Client Hello packet for the request.

            • FallbackBehavior (string) --

              The match status to assign to the web request if the request doesn't have a JA3 fingerprint.

              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.

      • ManagedByFirewallManager (boolean) --

        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.

      • LoggingFilter (dict) --

        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.

        • Filters (list) --

          The filters that you want to apply to the logs.

          • (dict) --

            A single logging filter, used in LoggingFilter.

            • Behavior (string) --

              How to handle logs that satisfy the filter's conditions and requirement.

            • Requirement (string) --

              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.

            • Conditions (list) --

              Match conditions for the filter.

              • (dict) --

                A single match condition for a Filter.

                • ActionCondition (dict) --

                  A single action condition. This is the action setting that a log record must contain in order to meet the condition.

                  • Action (string) --

                    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.

                • LabelNameCondition (dict) --

                  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.

                  • LabelName (string) --

                    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.

        • DefaultBehavior (string) --

          Default handling for logs that don't match any of the specified filtering conditions.

GetRuleGroup (updated) Link ¶
Changes (response)
{'RuleGroup': {'Rules': {'Statement': {'ByteMatchStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                                      '| '
                                                                                                                      'NO_MATCH'}}},
                                       'RegexMatchStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                                       '| '
                                                                                                                       'NO_MATCH'}}},
                                       'RegexPatternSetReferenceStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                                                     '| '
                                                                                                                                     'NO_MATCH'}}},
                                       'SizeConstraintStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                                           '| '
                                                                                                                           'NO_MATCH'}}},
                                       'SqliMatchStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                                      '| '
                                                                                                                      'NO_MATCH'}}},
                                       'XssMatchStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                                     '| '
                                                                                                                     'NO_MATCH'}}}}}}}

Retrieves the specified RuleGroup.

See also: AWS API Documentation

Request Syntax

client.get_rule_group(
    Name='string',
    Scope='CLOUDFRONT'|'REGIONAL',
    Id='string',
    ARN='string'
)
type Name:

string

param Name:

The name of the rule group. You cannot change the name of a rule group after you create it.

type Scope:

string

param Scope:

Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, an Amazon Cognito user pool, an App Runner service, or an Amazon Web Services Verified Access instance.

To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

  • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

  • API and SDKs - For all calls, use the Region endpoint us-east-1.

type Id:

string

param 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.

type ARN:

string

param ARN:

The Amazon Resource Name (ARN) of the entity.

rtype:

dict

returns:

Response Syntax

{
    'RuleGroup': {
        'Name': 'string',
        'Id': 'string',
        'Capacity': 123,
        'ARN': 'string',
        'Description': 'string',
        'Rules': [
            {
                'Name': 'string',
                'Priority': 123,
                'Statement': {
                    'ByteMatchStatement': {
                        'SearchString': b'bytes',
                        'FieldToMatch': {
                            'SingleHeader': {
                                'Name': 'string'
                            },
                            'SingleQueryArgument': {
                                'Name': 'string'
                            },
                            'AllQueryArguments': {},
                            'UriPath': {},
                            'QueryString': {},
                            'Body': {
                                'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                            },
                            'Method': {},
                            'JsonBody': {
                                'MatchPattern': {
                                    'All': {},
                                    'IncludedPaths': [
                                        'string',
                                    ]
                                },
                                'MatchScope': 'ALL'|'KEY'|'VALUE',
                                'InvalidFallbackBehavior': 'MATCH'|'NO_MATCH'|'EVALUATE_AS_STRING',
                                'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                            },
                            'Headers': {
                                'MatchPattern': {
                                    'All': {},
                                    'IncludedHeaders': [
                                        'string',
                                    ],
                                    'ExcludedHeaders': [
                                        'string',
                                    ]
                                },
                                'MatchScope': 'ALL'|'KEY'|'VALUE',
                                'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                            },
                            'Cookies': {
                                'MatchPattern': {
                                    'All': {},
                                    'IncludedCookies': [
                                        'string',
                                    ],
                                    'ExcludedCookies': [
                                        'string',
                                    ]
                                },
                                'MatchScope': 'ALL'|'KEY'|'VALUE',
                                'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                            },
                            'HeaderOrder': {
                                'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                            },
                            'JA3Fingerprint': {
                                'FallbackBehavior': 'MATCH'|'NO_MATCH'
                            }
                        },
                        'TextTransformations': [
                            {
                                'Priority': 123,
                                'Type': 'NONE'|'COMPRESS_WHITE_SPACE'|'HTML_ENTITY_DECODE'|'LOWERCASE'|'CMD_LINE'|'URL_DECODE'|'BASE64_DECODE'|'HEX_DECODE'|'MD5'|'REPLACE_COMMENTS'|'ESCAPE_SEQ_DECODE'|'SQL_HEX_DECODE'|'CSS_DECODE'|'JS_DECODE'|'NORMALIZE_PATH'|'NORMALIZE_PATH_WIN'|'REMOVE_NULLS'|'REPLACE_NULLS'|'BASE64_DECODE_EXT'|'URL_DECODE_UNI'|'UTF8_TO_UNICODE'
                            },
                        ],
                        'PositionalConstraint': 'EXACTLY'|'STARTS_WITH'|'ENDS_WITH'|'CONTAINS'|'CONTAINS_WORD'
                    },
                    'SqliMatchStatement': {
                        'FieldToMatch': {
                            'SingleHeader': {
                                'Name': 'string'
                            },
                            'SingleQueryArgument': {
                                'Name': 'string'
                            },
                            'AllQueryArguments': {},
                            'UriPath': {},
                            'QueryString': {},
                            'Body': {
                                'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                            },
                            'Method': {},
                            'JsonBody': {
                                'MatchPattern': {
                                    'All': {},
                                    'IncludedPaths': [
                                        'string',
                                    ]
                                },
                                'MatchScope': 'ALL'|'KEY'|'VALUE',
                                'InvalidFallbackBehavior': 'MATCH'|'NO_MATCH'|'EVALUATE_AS_STRING',
                                'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                            },
                            'Headers': {
                                'MatchPattern': {
                                    'All': {},
                                    'IncludedHeaders': [
                                        'string',
                                    ],
                                    'ExcludedHeaders': [
                                        'string',
                                    ]
                                },
                                'MatchScope': 'ALL'|'KEY'|'VALUE',
                                'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                            },
                            'Cookies': {
                                'MatchPattern': {
                                    'All': {},
                                    'IncludedCookies': [
                                        'string',
                                    ],
                                    'ExcludedCookies': [
                                        'string',
                                    ]
                                },
                                'MatchScope': 'ALL'|'KEY'|'VALUE',
                                'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                            },
                            'HeaderOrder': {
                                'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                            },
                            'JA3Fingerprint': {
                                'FallbackBehavior': 'MATCH'|'NO_MATCH'
                            }
                        },
                        'TextTransformations': [
                            {
                                'Priority': 123,
                                'Type': 'NONE'|'COMPRESS_WHITE_SPACE'|'HTML_ENTITY_DECODE'|'LOWERCASE'|'CMD_LINE'|'URL_DECODE'|'BASE64_DECODE'|'HEX_DECODE'|'MD5'|'REPLACE_COMMENTS'|'ESCAPE_SEQ_DECODE'|'SQL_HEX_DECODE'|'CSS_DECODE'|'JS_DECODE'|'NORMALIZE_PATH'|'NORMALIZE_PATH_WIN'|'REMOVE_NULLS'|'REPLACE_NULLS'|'BASE64_DECODE_EXT'|'URL_DECODE_UNI'|'UTF8_TO_UNICODE'
                            },
                        ],
                        'SensitivityLevel': 'LOW'|'HIGH'
                    },
                    'XssMatchStatement': {
                        'FieldToMatch': {
                            'SingleHeader': {
                                'Name': 'string'
                            },
                            'SingleQueryArgument': {
                                'Name': 'string'
                            },
                            'AllQueryArguments': {},
                            'UriPath': {},
                            'QueryString': {},
                            'Body': {
                                'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                            },
                            'Method': {},
                            'JsonBody': {
                                'MatchPattern': {
                                    'All': {},
                                    'IncludedPaths': [
                                        'string',
                                    ]
                                },
                                'MatchScope': 'ALL'|'KEY'|'VALUE',
                                'InvalidFallbackBehavior': 'MATCH'|'NO_MATCH'|'EVALUATE_AS_STRING',
                                'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                            },
                            'Headers': {
                                'MatchPattern': {
                                    'All': {},
                                    'IncludedHeaders': [
                                        'string',
                                    ],
                                    'ExcludedHeaders': [
                                        'string',
                                    ]
                                },
                                'MatchScope': 'ALL'|'KEY'|'VALUE',
                                'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                            },
                            'Cookies': {
                                'MatchPattern': {
                                    'All': {},
                                    'IncludedCookies': [
                                        'string',
                                    ],
                                    'ExcludedCookies': [
                                        'string',
                                    ]
                                },
                                'MatchScope': 'ALL'|'KEY'|'VALUE',
                                'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                            },
                            'HeaderOrder': {
                                'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                            },
                            'JA3Fingerprint': {
                                'FallbackBehavior': 'MATCH'|'NO_MATCH'
                            }
                        },
                        'TextTransformations': [
                            {
                                'Priority': 123,
                                'Type': 'NONE'|'COMPRESS_WHITE_SPACE'|'HTML_ENTITY_DECODE'|'LOWERCASE'|'CMD_LINE'|'URL_DECODE'|'BASE64_DECODE'|'HEX_DECODE'|'MD5'|'REPLACE_COMMENTS'|'ESCAPE_SEQ_DECODE'|'SQL_HEX_DECODE'|'CSS_DECODE'|'JS_DECODE'|'NORMALIZE_PATH'|'NORMALIZE_PATH_WIN'|'REMOVE_NULLS'|'REPLACE_NULLS'|'BASE64_DECODE_EXT'|'URL_DECODE_UNI'|'UTF8_TO_UNICODE'
                            },
                        ]
                    },
                    'SizeConstraintStatement': {
                        'FieldToMatch': {
                            'SingleHeader': {
                                'Name': 'string'
                            },
                            'SingleQueryArgument': {
                                'Name': 'string'
                            },
                            'AllQueryArguments': {},
                            'UriPath': {},
                            'QueryString': {},
                            'Body': {
                                'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                            },
                            'Method': {},
                            'JsonBody': {
                                'MatchPattern': {
                                    'All': {},
                                    'IncludedPaths': [
                                        'string',
                                    ]
                                },
                                'MatchScope': 'ALL'|'KEY'|'VALUE',
                                'InvalidFallbackBehavior': 'MATCH'|'NO_MATCH'|'EVALUATE_AS_STRING',
                                'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                            },
                            'Headers': {
                                'MatchPattern': {
                                    'All': {},
                                    'IncludedHeaders': [
                                        'string',
                                    ],
                                    'ExcludedHeaders': [
                                        'string',
                                    ]
                                },
                                'MatchScope': 'ALL'|'KEY'|'VALUE',
                                'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                            },
                            'Cookies': {
                                'MatchPattern': {
                                    'All': {},
                                    'IncludedCookies': [
                                        'string',
                                    ],
                                    'ExcludedCookies': [
                                        'string',
                                    ]
                                },
                                'MatchScope': 'ALL'|'KEY'|'VALUE',
                                'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                            },
                            'HeaderOrder': {
                                'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                            },
                            'JA3Fingerprint': {
                                'FallbackBehavior': 'MATCH'|'NO_MATCH'
                            }
                        },
                        'ComparisonOperator': 'EQ'|'NE'|'LE'|'LT'|'GE'|'GT',
                        'Size': 123,
                        'TextTransformations': [
                            {
                                'Priority': 123,
                                'Type': 'NONE'|'COMPRESS_WHITE_SPACE'|'HTML_ENTITY_DECODE'|'LOWERCASE'|'CMD_LINE'|'URL_DECODE'|'BASE64_DECODE'|'HEX_DECODE'|'MD5'|'REPLACE_COMMENTS'|'ESCAPE_SEQ_DECODE'|'SQL_HEX_DECODE'|'CSS_DECODE'|'JS_DECODE'|'NORMALIZE_PATH'|'NORMALIZE_PATH_WIN'|'REMOVE_NULLS'|'REPLACE_NULLS'|'BASE64_DECODE_EXT'|'URL_DECODE_UNI'|'UTF8_TO_UNICODE'
                            },
                        ]
                    },
                    'GeoMatchStatement': {
                        'CountryCodes': [
                            'AF'|'AX'|'AL'|'DZ'|'AS'|'AD'|'AO'|'AI'|'AQ'|'AG'|'AR'|'AM'|'AW'|'AU'|'AT'|'AZ'|'BS'|'BH'|'BD'|'BB'|'BY'|'BE'|'BZ'|'BJ'|'BM'|'BT'|'BO'|'BQ'|'BA'|'BW'|'BV'|'BR'|'IO'|'BN'|'BG'|'BF'|'BI'|'KH'|'CM'|'CA'|'CV'|'KY'|'CF'|'TD'|'CL'|'CN'|'CX'|'CC'|'CO'|'KM'|'CG'|'CD'|'CK'|'CR'|'CI'|'HR'|'CU'|'CW'|'CY'|'CZ'|'DK'|'DJ'|'DM'|'DO'|'EC'|'EG'|'SV'|'GQ'|'ER'|'EE'|'ET'|'FK'|'FO'|'FJ'|'FI'|'FR'|'GF'|'PF'|'TF'|'GA'|'GM'|'GE'|'DE'|'GH'|'GI'|'GR'|'GL'|'GD'|'GP'|'GU'|'GT'|'GG'|'GN'|'GW'|'GY'|'HT'|'HM'|'VA'|'HN'|'HK'|'HU'|'IS'|'IN'|'ID'|'IR'|'IQ'|'IE'|'IM'|'IL'|'IT'|'JM'|'JP'|'JE'|'JO'|'KZ'|'KE'|'KI'|'KP'|'KR'|'KW'|'KG'|'LA'|'LV'|'LB'|'LS'|'LR'|'LY'|'LI'|'LT'|'LU'|'MO'|'MK'|'MG'|'MW'|'MY'|'MV'|'ML'|'MT'|'MH'|'MQ'|'MR'|'MU'|'YT'|'MX'|'FM'|'MD'|'MC'|'MN'|'ME'|'MS'|'MA'|'MZ'|'MM'|'NA'|'NR'|'NP'|'NL'|'NC'|'NZ'|'NI'|'NE'|'NG'|'NU'|'NF'|'MP'|'NO'|'OM'|'PK'|'PW'|'PS'|'PA'|'PG'|'PY'|'PE'|'PH'|'PN'|'PL'|'PT'|'PR'|'QA'|'RE'|'RO'|'RU'|'RW'|'BL'|'SH'|'KN'|'LC'|'MF'|'PM'|'VC'|'WS'|'SM'|'ST'|'SA'|'SN'|'RS'|'SC'|'SL'|'SG'|'SX'|'SK'|'SI'|'SB'|'SO'|'ZA'|'GS'|'SS'|'ES'|'LK'|'SD'|'SR'|'SJ'|'SZ'|'SE'|'CH'|'SY'|'TW'|'TJ'|'TZ'|'TH'|'TL'|'TG'|'TK'|'TO'|'TT'|'TN'|'TR'|'TM'|'TC'|'TV'|'UG'|'UA'|'AE'|'GB'|'US'|'UM'|'UY'|'UZ'|'VU'|'VE'|'VN'|'VG'|'VI'|'WF'|'EH'|'YE'|'ZM'|'ZW'|'XK',
                        ],
                        'ForwardedIPConfig': {
                            'HeaderName': 'string',
                            'FallbackBehavior': 'MATCH'|'NO_MATCH'
                        }
                    },
                    'RuleGroupReferenceStatement': {
                        'ARN': 'string',
                        'ExcludedRules': [
                            {
                                'Name': 'string'
                            },
                        ],
                        'RuleActionOverrides': [
                            {
                                'Name': 'string',
                                'ActionToUse': {
                                    'Block': {
                                        'CustomResponse': {
                                            'ResponseCode': 123,
                                            'CustomResponseBodyKey': 'string',
                                            'ResponseHeaders': [
                                                {
                                                    'Name': 'string',
                                                    'Value': 'string'
                                                },
                                            ]
                                        }
                                    },
                                    'Allow': {
                                        'CustomRequestHandling': {
                                            'InsertHeaders': [
                                                {
                                                    'Name': 'string',
                                                    'Value': 'string'
                                                },
                                            ]
                                        }
                                    },
                                    'Count': {
                                        'CustomRequestHandling': {
                                            'InsertHeaders': [
                                                {
                                                    'Name': 'string',
                                                    'Value': 'string'
                                                },
                                            ]
                                        }
                                    },
                                    'Captcha': {
                                        'CustomRequestHandling': {
                                            'InsertHeaders': [
                                                {
                                                    'Name': 'string',
                                                    'Value': 'string'
                                                },
                                            ]
                                        }
                                    },
                                    'Challenge': {
                                        'CustomRequestHandling': {
                                            'InsertHeaders': [
                                                {
                                                    'Name': 'string',
                                                    'Value': 'string'
                                                },
                                            ]
                                        }
                                    }
                                }
                            },
                        ]
                    },
                    'IPSetReferenceStatement': {
                        'ARN': 'string',
                        'IPSetForwardedIPConfig': {
                            'HeaderName': 'string',
                            'FallbackBehavior': 'MATCH'|'NO_MATCH',
                            'Position': 'FIRST'|'LAST'|'ANY'
                        }
                    },
                    'RegexPatternSetReferenceStatement': {
                        'ARN': 'string',
                        'FieldToMatch': {
                            'SingleHeader': {
                                'Name': 'string'
                            },
                            'SingleQueryArgument': {
                                'Name': 'string'
                            },
                            'AllQueryArguments': {},
                            'UriPath': {},
                            'QueryString': {},
                            'Body': {
                                'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                            },
                            'Method': {},
                            'JsonBody': {
                                'MatchPattern': {
                                    'All': {},
                                    'IncludedPaths': [
                                        'string',
                                    ]
                                },
                                'MatchScope': 'ALL'|'KEY'|'VALUE',
                                'InvalidFallbackBehavior': 'MATCH'|'NO_MATCH'|'EVALUATE_AS_STRING',
                                'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                            },
                            'Headers': {
                                'MatchPattern': {
                                    'All': {},
                                    'IncludedHeaders': [
                                        'string',
                                    ],
                                    'ExcludedHeaders': [
                                        'string',
                                    ]
                                },
                                'MatchScope': 'ALL'|'KEY'|'VALUE',
                                'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                            },
                            'Cookies': {
                                'MatchPattern': {
                                    'All': {},
                                    'IncludedCookies': [
                                        'string',
                                    ],
                                    'ExcludedCookies': [
                                        'string',
                                    ]
                                },
                                'MatchScope': 'ALL'|'KEY'|'VALUE',
                                'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                            },
                            'HeaderOrder': {
                                'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                            },
                            'JA3Fingerprint': {
                                'FallbackBehavior': 'MATCH'|'NO_MATCH'
                            }
                        },
                        'TextTransformations': [
                            {
                                'Priority': 123,
                                'Type': 'NONE'|'COMPRESS_WHITE_SPACE'|'HTML_ENTITY_DECODE'|'LOWERCASE'|'CMD_LINE'|'URL_DECODE'|'BASE64_DECODE'|'HEX_DECODE'|'MD5'|'REPLACE_COMMENTS'|'ESCAPE_SEQ_DECODE'|'SQL_HEX_DECODE'|'CSS_DECODE'|'JS_DECODE'|'NORMALIZE_PATH'|'NORMALIZE_PATH_WIN'|'REMOVE_NULLS'|'REPLACE_NULLS'|'BASE64_DECODE_EXT'|'URL_DECODE_UNI'|'UTF8_TO_UNICODE'
                            },
                        ]
                    },
                    'RateBasedStatement': {
                        'Limit': 123,
                        'AggregateKeyType': 'IP'|'FORWARDED_IP'|'CUSTOM_KEYS'|'CONSTANT',
                        'ScopeDownStatement': {'... recursive ...'},
                        'ForwardedIPConfig': {
                            'HeaderName': 'string',
                            'FallbackBehavior': 'MATCH'|'NO_MATCH'
                        },
                        'CustomKeys': [
                            {
                                'Header': {
                                    'Name': 'string',
                                    'TextTransformations': [
                                        {
                                            'Priority': 123,
                                            'Type': 'NONE'|'COMPRESS_WHITE_SPACE'|'HTML_ENTITY_DECODE'|'LOWERCASE'|'CMD_LINE'|'URL_DECODE'|'BASE64_DECODE'|'HEX_DECODE'|'MD5'|'REPLACE_COMMENTS'|'ESCAPE_SEQ_DECODE'|'SQL_HEX_DECODE'|'CSS_DECODE'|'JS_DECODE'|'NORMALIZE_PATH'|'NORMALIZE_PATH_WIN'|'REMOVE_NULLS'|'REPLACE_NULLS'|'BASE64_DECODE_EXT'|'URL_DECODE_UNI'|'UTF8_TO_UNICODE'
                                        },
                                    ]
                                },
                                'Cookie': {
                                    'Name': 'string',
                                    'TextTransformations': [
                                        {
                                            'Priority': 123,
                                            'Type': 'NONE'|'COMPRESS_WHITE_SPACE'|'HTML_ENTITY_DECODE'|'LOWERCASE'|'CMD_LINE'|'URL_DECODE'|'BASE64_DECODE'|'HEX_DECODE'|'MD5'|'REPLACE_COMMENTS'|'ESCAPE_SEQ_DECODE'|'SQL_HEX_DECODE'|'CSS_DECODE'|'JS_DECODE'|'NORMALIZE_PATH'|'NORMALIZE_PATH_WIN'|'REMOVE_NULLS'|'REPLACE_NULLS'|'BASE64_DECODE_EXT'|'URL_DECODE_UNI'|'UTF8_TO_UNICODE'
                                        },
                                    ]
                                },
                                'QueryArgument': {
                                    'Name': 'string',
                                    'TextTransformations': [
                                        {
                                            'Priority': 123,
                                            'Type': 'NONE'|'COMPRESS_WHITE_SPACE'|'HTML_ENTITY_DECODE'|'LOWERCASE'|'CMD_LINE'|'URL_DECODE'|'BASE64_DECODE'|'HEX_DECODE'|'MD5'|'REPLACE_COMMENTS'|'ESCAPE_SEQ_DECODE'|'SQL_HEX_DECODE'|'CSS_DECODE'|'JS_DECODE'|'NORMALIZE_PATH'|'NORMALIZE_PATH_WIN'|'REMOVE_NULLS'|'REPLACE_NULLS'|'BASE64_DECODE_EXT'|'URL_DECODE_UNI'|'UTF8_TO_UNICODE'
                                        },
                                    ]
                                },
                                'QueryString': {
                                    'TextTransformations': [
                                        {
                                            'Priority': 123,
                                            'Type': 'NONE'|'COMPRESS_WHITE_SPACE'|'HTML_ENTITY_DECODE'|'LOWERCASE'|'CMD_LINE'|'URL_DECODE'|'BASE64_DECODE'|'HEX_DECODE'|'MD5'|'REPLACE_COMMENTS'|'ESCAPE_SEQ_DECODE'|'SQL_HEX_DECODE'|'CSS_DECODE'|'JS_DECODE'|'NORMALIZE_PATH'|'NORMALIZE_PATH_WIN'|'REMOVE_NULLS'|'REPLACE_NULLS'|'BASE64_DECODE_EXT'|'URL_DECODE_UNI'|'UTF8_TO_UNICODE'
                                        },
                                    ]
                                },
                                'HTTPMethod': {},
                                'ForwardedIP': {},
                                'IP': {},
                                'LabelNamespace': {
                                    'Namespace': 'string'
                                },
                                'UriPath': {
                                    'TextTransformations': [
                                        {
                                            'Priority': 123,
                                            'Type': 'NONE'|'COMPRESS_WHITE_SPACE'|'HTML_ENTITY_DECODE'|'LOWERCASE'|'CMD_LINE'|'URL_DECODE'|'BASE64_DECODE'|'HEX_DECODE'|'MD5'|'REPLACE_COMMENTS'|'ESCAPE_SEQ_DECODE'|'SQL_HEX_DECODE'|'CSS_DECODE'|'JS_DECODE'|'NORMALIZE_PATH'|'NORMALIZE_PATH_WIN'|'REMOVE_NULLS'|'REPLACE_NULLS'|'BASE64_DECODE_EXT'|'URL_DECODE_UNI'|'UTF8_TO_UNICODE'
                                        },
                                    ]
                                }
                            },
                        ]
                    },
                    'AndStatement': {
                        'Statements': [
                            {'... recursive ...'},
                        ]
                    },
                    'OrStatement': {
                        'Statements': [
                            {'... recursive ...'},
                        ]
                    },
                    'NotStatement': {
                        'Statement': {'... recursive ...'}
                    },
                    'ManagedRuleGroupStatement': {
                        'VendorName': 'string',
                        'Name': 'string',
                        'Version': 'string',
                        'ExcludedRules': [
                            {
                                'Name': 'string'
                            },
                        ],
                        'ScopeDownStatement': {'... recursive ...'},
                        'ManagedRuleGroupConfigs': [
                            {
                                'LoginPath': 'string',
                                'PayloadType': 'JSON'|'FORM_ENCODED',
                                'UsernameField': {
                                    'Identifier': 'string'
                                },
                                'PasswordField': {
                                    'Identifier': 'string'
                                },
                                'AWSManagedRulesBotControlRuleSet': {
                                    'InspectionLevel': 'COMMON'|'TARGETED',
                                    'EnableMachineLearning': True|False
                                },
                                'AWSManagedRulesATPRuleSet': {
                                    'LoginPath': 'string',
                                    'RequestInspection': {
                                        'PayloadType': 'JSON'|'FORM_ENCODED',
                                        'UsernameField': {
                                            'Identifier': 'string'
                                        },
                                        'PasswordField': {
                                            'Identifier': 'string'
                                        }
                                    },
                                    'ResponseInspection': {
                                        'StatusCode': {
                                            'SuccessCodes': [
                                                123,
                                            ],
                                            'FailureCodes': [
                                                123,
                                            ]
                                        },
                                        'Header': {
                                            'Name': 'string',
                                            'SuccessValues': [
                                                'string',
                                            ],
                                            'FailureValues': [
                                                'string',
                                            ]
                                        },
                                        'BodyContains': {
                                            'SuccessStrings': [
                                                'string',
                                            ],
                                            'FailureStrings': [
                                                'string',
                                            ]
                                        },
                                        'Json': {
                                            'Identifier': 'string',
                                            'SuccessValues': [
                                                'string',
                                            ],
                                            'FailureValues': [
                                                'string',
                                            ]
                                        }
                                    },
                                    'EnableRegexInPath': True|False
                                },
                                'AWSManagedRulesACFPRuleSet': {
                                    'CreationPath': 'string',
                                    'RegistrationPagePath': 'string',
                                    'RequestInspection': {
                                        'PayloadType': 'JSON'|'FORM_ENCODED',
                                        'UsernameField': {
                                            'Identifier': 'string'
                                        },
                                        'PasswordField': {
                                            'Identifier': 'string'
                                        },
                                        'EmailField': {
                                            'Identifier': 'string'
                                        },
                                        'PhoneNumberFields': [
                                            {
                                                'Identifier': 'string'
                                            },
                                        ],
                                        'AddressFields': [
                                            {
                                                'Identifier': 'string'
                                            },
                                        ]
                                    },
                                    'ResponseInspection': {
                                        'StatusCode': {
                                            'SuccessCodes': [
                                                123,
                                            ],
                                            'FailureCodes': [
                                                123,
                                            ]
                                        },
                                        'Header': {
                                            'Name': 'string',
                                            'SuccessValues': [
                                                'string',
                                            ],
                                            'FailureValues': [
                                                'string',
                                            ]
                                        },
                                        'BodyContains': {
                                            'SuccessStrings': [
                                                'string',
                                            ],
                                            'FailureStrings': [
                                                'string',
                                            ]
                                        },
                                        'Json': {
                                            'Identifier': 'string',
                                            'SuccessValues': [
                                                'string',
                                            ],
                                            'FailureValues': [
                                                'string',
                                            ]
                                        }
                                    },
                                    'EnableRegexInPath': True|False
                                }
                            },
                        ],
                        'RuleActionOverrides': [
                            {
                                'Name': 'string',
                                'ActionToUse': {
                                    'Block': {
                                        'CustomResponse': {
                                            'ResponseCode': 123,
                                            'CustomResponseBodyKey': 'string',
                                            'ResponseHeaders': [
                                                {
                                                    'Name': 'string',
                                                    'Value': 'string'
                                                },
                                            ]
                                        }
                                    },
                                    'Allow': {
                                        'CustomRequestHandling': {
                                            'InsertHeaders': [
                                                {
                                                    'Name': 'string',
                                                    'Value': 'string'
                                                },
                                            ]
                                        }
                                    },
                                    'Count': {
                                        'CustomRequestHandling': {
                                            'InsertHeaders': [
                                                {
                                                    'Name': 'string',
                                                    'Value': 'string'
                                                },
                                            ]
                                        }
                                    },
                                    'Captcha': {
                                        'CustomRequestHandling': {
                                            'InsertHeaders': [
                                                {
                                                    'Name': 'string',
                                                    'Value': 'string'
                                                },
                                            ]
                                        }
                                    },
                                    'Challenge': {
                                        'CustomRequestHandling': {
                                            'InsertHeaders': [
                                                {
                                                    'Name': 'string',
                                                    'Value': 'string'
                                                },
                                            ]
                                        }
                                    }
                                }
                            },
                        ]
                    },
                    'LabelMatchStatement': {
                        'Scope': 'LABEL'|'NAMESPACE',
                        'Key': 'string'
                    },
                    'RegexMatchStatement': {
                        'RegexString': 'string',
                        'FieldToMatch': {
                            'SingleHeader': {
                                'Name': 'string'
                            },
                            'SingleQueryArgument': {
                                'Name': 'string'
                            },
                            'AllQueryArguments': {},
                            'UriPath': {},
                            'QueryString': {},
                            'Body': {
                                'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                            },
                            'Method': {},
                            'JsonBody': {
                                'MatchPattern': {
                                    'All': {},
                                    'IncludedPaths': [
                                        'string',
                                    ]
                                },
                                'MatchScope': 'ALL'|'KEY'|'VALUE',
                                'InvalidFallbackBehavior': 'MATCH'|'NO_MATCH'|'EVALUATE_AS_STRING',
                                'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                            },
                            'Headers': {
                                'MatchPattern': {
                                    'All': {},
                                    'IncludedHeaders': [
                                        'string',
                                    ],
                                    'ExcludedHeaders': [
                                        'string',
                                    ]
                                },
                                'MatchScope': 'ALL'|'KEY'|'VALUE',
                                'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                            },
                            'Cookies': {
                                'MatchPattern': {
                                    'All': {},
                                    'IncludedCookies': [
                                        'string',
                                    ],
                                    'ExcludedCookies': [
                                        'string',
                                    ]
                                },
                                'MatchScope': 'ALL'|'KEY'|'VALUE',
                                'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                            },
                            'HeaderOrder': {
                                'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                            },
                            'JA3Fingerprint': {
                                'FallbackBehavior': 'MATCH'|'NO_MATCH'
                            }
                        },
                        'TextTransformations': [
                            {
                                'Priority': 123,
                                'Type': 'NONE'|'COMPRESS_WHITE_SPACE'|'HTML_ENTITY_DECODE'|'LOWERCASE'|'CMD_LINE'|'URL_DECODE'|'BASE64_DECODE'|'HEX_DECODE'|'MD5'|'REPLACE_COMMENTS'|'ESCAPE_SEQ_DECODE'|'SQL_HEX_DECODE'|'CSS_DECODE'|'JS_DECODE'|'NORMALIZE_PATH'|'NORMALIZE_PATH_WIN'|'REMOVE_NULLS'|'REPLACE_NULLS'|'BASE64_DECODE_EXT'|'URL_DECODE_UNI'|'UTF8_TO_UNICODE'
                            },
                        ]
                    }
                },
                'Action': {
                    'Block': {
                        'CustomResponse': {
                            'ResponseCode': 123,
                            'CustomResponseBodyKey': 'string',
                            'ResponseHeaders': [
                                {
                                    'Name': 'string',
                                    'Value': 'string'
                                },
                            ]
                        }
                    },
                    'Allow': {
                        'CustomRequestHandling': {
                            'InsertHeaders': [
                                {
                                    'Name': 'string',
                                    'Value': 'string'
                                },
                            ]
                        }
                    },
                    'Count': {
                        'CustomRequestHandling': {
                            'InsertHeaders': [
                                {
                                    'Name': 'string',
                                    'Value': 'string'
                                },
                            ]
                        }
                    },
                    'Captcha': {
                        'CustomRequestHandling': {
                            'InsertHeaders': [
                                {
                                    'Name': 'string',
                                    'Value': 'string'
                                },
                            ]
                        }
                    },
                    'Challenge': {
                        'CustomRequestHandling': {
                            'InsertHeaders': [
                                {
                                    'Name': 'string',
                                    'Value': 'string'
                                },
                            ]
                        }
                    }
                },
                'OverrideAction': {
                    'Count': {
                        'CustomRequestHandling': {
                            'InsertHeaders': [
                                {
                                    'Name': 'string',
                                    'Value': 'string'
                                },
                            ]
                        }
                    },
                    'None': {}
                },
                'RuleLabels': [
                    {
                        'Name': 'string'
                    },
                ],
                'VisibilityConfig': {
                    'SampledRequestsEnabled': True|False,
                    'CloudWatchMetricsEnabled': True|False,
                    'MetricName': 'string'
                },
                'CaptchaConfig': {
                    'ImmunityTimeProperty': {
                        'ImmunityTime': 123
                    }
                },
                'ChallengeConfig': {
                    'ImmunityTimeProperty': {
                        'ImmunityTime': 123
                    }
                }
            },
        ],
        'VisibilityConfig': {
            'SampledRequestsEnabled': True|False,
            'CloudWatchMetricsEnabled': True|False,
            'MetricName': 'string'
        },
        'LabelNamespace': 'string',
        'CustomResponseBodies': {
            'string': {
                'ContentType': 'TEXT_PLAIN'|'TEXT_HTML'|'APPLICATION_JSON',
                'Content': 'string'
            }
        },
        'AvailableLabels': [
            {
                'Name': 'string'
            },
        ],
        'ConsumedLabels': [
            {
                'Name': 'string'
            },
        ]
    },
    'LockToken': 'string'
}


**Response Structure**
::

    # This section is too large to render.
    # Please see the AWS API Documentation linked below.

`AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetRuleGroup>`_
GetWebACL (updated) Link ¶
Changes (response)
{'WebACL': {'PostProcessFirewallManagerRuleGroups': {'FirewallManagerStatement': {'ManagedRuleGroupStatement': {'ScopeDownStatement': {'ByteMatchStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                                                                                                                                      '| '
                                                                                                                                                                                                                      'NO_MATCH'}}},
                                                                                                                                       'RegexMatchStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                                                                                                                                       '| '
                                                                                                                                                                                                                       'NO_MATCH'}}},
                                                                                                                                       'RegexPatternSetReferenceStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                                                                                                                                                     '| '
                                                                                                                                                                                                                                     'NO_MATCH'}}},
                                                                                                                                       'SizeConstraintStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                                                                                                                                           '| '
                                                                                                                                                                                                                           'NO_MATCH'}}},
                                                                                                                                       'SqliMatchStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                                                                                                                                      '| '
                                                                                                                                                                                                                      'NO_MATCH'}}},
                                                                                                                                       'XssMatchStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                                                                                                                                     '| '
                                                                                                                                                                                                                     'NO_MATCH'}}}}}}},
            'PreProcessFirewallManagerRuleGroups': {'FirewallManagerStatement': {'ManagedRuleGroupStatement': {'ScopeDownStatement': {'ByteMatchStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                                                                                                                                     '| '
                                                                                                                                                                                                                     'NO_MATCH'}}},
                                                                                                                                      'RegexMatchStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                                                                                                                                      '| '
                                                                                                                                                                                                                      'NO_MATCH'}}},
                                                                                                                                      'RegexPatternSetReferenceStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                                                                                                                                                    '| '
                                                                                                                                                                                                                                    'NO_MATCH'}}},
                                                                                                                                      'SizeConstraintStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                                                                                                                                          '| '
                                                                                                                                                                                                                          'NO_MATCH'}}},
                                                                                                                                      'SqliMatchStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                                                                                                                                     '| '
                                                                                                                                                                                                                     'NO_MATCH'}}},
                                                                                                                                      'XssMatchStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                                                                                                                                    '| '
                                                                                                                                                                                                                    'NO_MATCH'}}}}}}},
            'Rules': {'Statement': {'ByteMatchStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                                   '| '
                                                                                                                   'NO_MATCH'}}},
                                    'RegexMatchStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                                    '| '
                                                                                                                    'NO_MATCH'}}},
                                    'RegexPatternSetReferenceStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                                                  '| '
                                                                                                                                  'NO_MATCH'}}},
                                    'SizeConstraintStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                                        '| '
                                                                                                                        'NO_MATCH'}}},
                                    'SqliMatchStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                                   '| '
                                                                                                                   'NO_MATCH'}}},
                                    'XssMatchStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                                  '| '
                                                                                                                  'NO_MATCH'}}}}}}}

Retrieves the specified WebACL.

See also: AWS API Documentation

Request Syntax

client.get_web_acl(
    Name='string',
    Scope='CLOUDFRONT'|'REGIONAL',
    Id='string'
)
type Name:

string

param Name:

[REQUIRED]

The name of the web ACL. You cannot change the name of a web ACL after you create it.

type Scope:

string

param Scope:

[REQUIRED]

Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, an Amazon Cognito user pool, an App Runner service, or an Amazon Web Services Verified Access instance.

To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

  • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

  • API and SDKs - For all calls, use the Region endpoint us-east-1.

type Id:

string

param Id:

[REQUIRED]

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.

rtype:

dict

returns:

Response Syntax

# This section is too large to render.
# Please see the AWS API Documentation linked below.

AWS API Documentation

Response Structure

# This section is too large to render.
# Please see the AWS API Documentation linked below.

AWS API Documentation

GetWebACLForResource (updated) Link ¶
Changes (response)
{'WebACL': {'PostProcessFirewallManagerRuleGroups': {'FirewallManagerStatement': {'ManagedRuleGroupStatement': {'ScopeDownStatement': {'ByteMatchStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                                                                                                                                      '| '
                                                                                                                                                                                                                      'NO_MATCH'}}},
                                                                                                                                       'RegexMatchStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                                                                                                                                       '| '
                                                                                                                                                                                                                       'NO_MATCH'}}},
                                                                                                                                       'RegexPatternSetReferenceStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                                                                                                                                                     '| '
                                                                                                                                                                                                                                     'NO_MATCH'}}},
                                                                                                                                       'SizeConstraintStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                                                                                                                                           '| '
                                                                                                                                                                                                                           'NO_MATCH'}}},
                                                                                                                                       'SqliMatchStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                                                                                                                                      '| '
                                                                                                                                                                                                                      'NO_MATCH'}}},
                                                                                                                                       'XssMatchStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                                                                                                                                     '| '
                                                                                                                                                                                                                     'NO_MATCH'}}}}}}},
            'PreProcessFirewallManagerRuleGroups': {'FirewallManagerStatement': {'ManagedRuleGroupStatement': {'ScopeDownStatement': {'ByteMatchStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                                                                                                                                     '| '
                                                                                                                                                                                                                     'NO_MATCH'}}},
                                                                                                                                      'RegexMatchStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                                                                                                                                      '| '
                                                                                                                                                                                                                      'NO_MATCH'}}},
                                                                                                                                      'RegexPatternSetReferenceStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                                                                                                                                                    '| '
                                                                                                                                                                                                                                    'NO_MATCH'}}},
                                                                                                                                      'SizeConstraintStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                                                                                                                                          '| '
                                                                                                                                                                                                                          'NO_MATCH'}}},
                                                                                                                                      'SqliMatchStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                                                                                                                                     '| '
                                                                                                                                                                                                                     'NO_MATCH'}}},
                                                                                                                                      'XssMatchStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                                                                                                                                    '| '
                                                                                                                                                                                                                    'NO_MATCH'}}}}}}},
            'Rules': {'Statement': {'ByteMatchStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                                   '| '
                                                                                                                   'NO_MATCH'}}},
                                    'RegexMatchStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                                    '| '
                                                                                                                    'NO_MATCH'}}},
                                    'RegexPatternSetReferenceStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                                                  '| '
                                                                                                                                  'NO_MATCH'}}},
                                    'SizeConstraintStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                                        '| '
                                                                                                                        'NO_MATCH'}}},
                                    'SqliMatchStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                                   '| '
                                                                                                                   'NO_MATCH'}}},
                                    'XssMatchStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                                  '| '
                                                                                                                  'NO_MATCH'}}}}}}}

Retrieves the WebACL for the specified resource.

See also: AWS API Documentation

Request Syntax

client.get_web_acl_for_resource(
    ResourceArn='string'
)
type ResourceArn:

string

param ResourceArn:

[REQUIRED]

The Amazon Resource Name (ARN) of the resource whose web ACL you want to retrieve.

The ARN must be in one of the following formats:

  • For an Application Load Balancer: arn:partition:elasticloadbalancing:region:account-id:loadbalancer/app/load-balancer-name/load-balancer-id

  • For an Amazon API Gateway REST API: arn:partition:apigateway:region::/restapis/api-id/stages/stage-name

  • For an AppSync GraphQL API: arn:partition:appsync:region:account-id:apis/GraphQLApiId

  • For an Amazon Cognito user pool: arn:partition:cognito-idp:region:account-id:userpool/user-pool-id

  • For an App Runner service: arn:partition:apprunner:region:account-id:service/apprunner-service-name/apprunner-service-id

  • For an Amazon Web Services Verified Access instance: arn:partition:ec2:region:account-id:verified-access-instance/instance-id

rtype:

dict

returns:

Response Syntax

# This section is too large to render.
# Please see the AWS API Documentation linked below.

AWS API Documentation

Response Structure

# This section is too large to render.
# Please see the AWS API Documentation linked below.

AWS API Documentation

ListLoggingConfigurations (updated) Link ¶
Changes (response)
{'LoggingConfigurations': {'RedactedFields': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                     '| '
                                                                                     'NO_MATCH'}}}}

Retrieves an array of your LoggingConfiguration objects.

See also: AWS API Documentation

Request Syntax

client.list_logging_configurations(
    Scope='CLOUDFRONT'|'REGIONAL',
    NextMarker='string',
    Limit=123
)
type Scope:

string

param Scope:

[REQUIRED]

Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, an Amazon Cognito user pool, an App Runner service, or an Amazon Web Services Verified Access instance.

To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

  • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

  • API and SDKs - For all calls, use the Region endpoint us-east-1.

type NextMarker:

string

param NextMarker:

When you request a list of objects with a Limit setting, if the number of objects that are still available for retrieval exceeds the limit, WAF returns a NextMarker value in the response. To retrieve the next batch of objects, provide the marker from the prior call in your next request.

type Limit:

integer

param Limit:

The maximum number of objects that you want WAF to return for this request. If more objects are available, in the response, WAF provides a NextMarker value that you can use in a subsequent call to get the next batch of objects.

rtype:

dict

returns:

Response Syntax

{
    'LoggingConfigurations': [
        {
            'ResourceArn': 'string',
            'LogDestinationConfigs': [
                'string',
            ],
            'RedactedFields': [
                {
                    'SingleHeader': {
                        'Name': 'string'
                    },
                    'SingleQueryArgument': {
                        'Name': 'string'
                    },
                    'AllQueryArguments': {},
                    'UriPath': {},
                    'QueryString': {},
                    'Body': {
                        'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                    },
                    'Method': {},
                    'JsonBody': {
                        'MatchPattern': {
                            'All': {},
                            'IncludedPaths': [
                                'string',
                            ]
                        },
                        'MatchScope': 'ALL'|'KEY'|'VALUE',
                        'InvalidFallbackBehavior': 'MATCH'|'NO_MATCH'|'EVALUATE_AS_STRING',
                        'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                    },
                    'Headers': {
                        'MatchPattern': {
                            'All': {},
                            'IncludedHeaders': [
                                'string',
                            ],
                            'ExcludedHeaders': [
                                'string',
                            ]
                        },
                        'MatchScope': 'ALL'|'KEY'|'VALUE',
                        'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                    },
                    'Cookies': {
                        'MatchPattern': {
                            'All': {},
                            'IncludedCookies': [
                                'string',
                            ],
                            'ExcludedCookies': [
                                'string',
                            ]
                        },
                        'MatchScope': 'ALL'|'KEY'|'VALUE',
                        'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                    },
                    'HeaderOrder': {
                        'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                    },
                    'JA3Fingerprint': {
                        'FallbackBehavior': 'MATCH'|'NO_MATCH'
                    }
                },
            ],
            'ManagedByFirewallManager': True|False,
            'LoggingFilter': {
                'Filters': [
                    {
                        'Behavior': 'KEEP'|'DROP',
                        'Requirement': 'MEETS_ALL'|'MEETS_ANY',
                        'Conditions': [
                            {
                                'ActionCondition': {
                                    'Action': 'ALLOW'|'BLOCK'|'COUNT'|'CAPTCHA'|'CHALLENGE'|'EXCLUDED_AS_COUNT'
                                },
                                'LabelNameCondition': {
                                    'LabelName': 'string'
                                }
                            },
                        ]
                    },
                ],
                'DefaultBehavior': 'KEEP'|'DROP'
            }
        },
    ],
    'NextMarker': 'string'
}

Response Structure

  • (dict) --

    • LoggingConfigurations (list) --

      Array of logging configurations. If you specified a Limit in your request, this might not be the full list.

      • (dict) --

        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 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.

        • ResourceArn (string) --

          The Amazon Resource Name (ARN) of the web ACL that you want to associate with LogDestinationConfigs.

        • LogDestinationConfigs (list) --

          The logging destination configuration that you want to associate with the web ACL.

          • (string) --

        • RedactedFields (list) --

          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 REDACTED for all rules that use the SingleHeader FieldToMatch setting.

          Redaction applies only to the component that's specified in the rule's FieldToMatch setting, so the SingleHeader redaction doesn't apply to rules that use the Headers FieldToMatch.

          • (dict) --

            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" } }

            • SingleHeader (dict) --

              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.

              • Name (string) --

                The name of the query header to inspect.

            • SingleQueryArgument (dict) --

              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" }

              • Name (string) --

                The name of the query argument to inspect.

            • AllQueryArguments (dict) --

              Inspect all query arguments.

            • UriPath (dict) --

              Inspect the request URI path. This is the part of the web request that identifies a resource, for example, /images/daily-ad.jpg.

            • QueryString (dict) --

              Inspect the query string. This is the part of a URL that appears after a ? character, if any.

            • Body (dict) --

              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.

              A limited amount of the request body is forwarded to WAF for inspection by the underlying host service. For regional resources, the limit is 8 KB (8,192 bytes) and for CloudFront distributions, the limit is 16 KB (16,384 bytes). For CloudFront distributions, you can increase the limit in the web ACL's AssociationConfig, for additional processing fees.

              For information about how to handle oversized request bodies, see the Body object configuration.

              • OversizeHandling (string) --

                What WAF should do if the body is larger than WAF can inspect. WAF does not support inspecting the entire contents of the web request body if the body exceeds the limit for the resource type. If the body is larger than the limit, the underlying host service only forwards the contents that are below the limit to WAF for inspection.

                The default limit is 8 KB (8,192 bytes) for regional resources and 16 KB (16,384 bytes) for CloudFront distributions. For CloudFront distributions, you can increase the limit in the web ACL AssociationConfig, for additional processing fees.

                The options for oversize handling are the following:

                • CONTINUE - Inspect the available body contents 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 the limit.

                Default: CONTINUE

            • Method (dict) --

              Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.

            • JsonBody (dict) --

              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.

              A limited amount of the request body is forwarded to WAF for inspection by the underlying host service. For regional resources, the limit is 8 KB (8,192 bytes) and for CloudFront distributions, the limit is 16 KB (16,384 bytes). For CloudFront distributions, you can increase the limit in the web ACL's AssociationConfig, for additional processing fees.

              For information about how to handle oversized request bodies, see the JsonBody object configuration.

              • MatchPattern (dict) --

                The patterns to look for in the JSON body. WAF inspects the results of these pattern matches against the rule inspection criteria.

                • All (dict) --

                  Match all of the elements. See also MatchScope in JsonBody.

                  You must specify either this setting or the IncludedPaths setting, but not both.

                • IncludedPaths (list) --

                  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.

                  • (string) --

              • MatchScope (string) --

                The parts of the JSON to match against using the MatchPattern. If you specify All, WAF matches against keys and values.

              • InvalidFallbackBehavior (string) --

                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"}

              • OversizeHandling (string) --

                What WAF should do if the body is larger than WAF can inspect. WAF does not support inspecting the entire contents of the web request body if the body exceeds the limit for the resource type. If the body is larger than the limit, the underlying host service only forwards the contents that are below the limit to WAF for inspection.

                The default limit is 8 KB (8,192 bytes) for regional resources and 16 KB (16,384 bytes) for CloudFront distributions. For CloudFront distributions, you can increase the limit in the web ACL AssociationConfig, for additional processing fees.

                The options for oversize handling are the following:

                • CONTINUE - Inspect the available body contents 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 the limit.

                Default: CONTINUE

            • Headers (dict) --

              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.

              • MatchPattern (dict) --

                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" ] }

                • All (dict) --

                  Inspect all headers.

                • IncludedHeaders (list) --

                  Inspect only the headers that have a key that matches one of the strings specified here.

                  • (string) --

                • ExcludedHeaders (list) --

                  Inspect only the headers whose keys don't match any of the strings specified here.

                  • (string) --

              • MatchScope (string) --

                The parts of the headers to match with the rule inspection criteria. If you specify All, WAF inspects both keys and values.

              • OversizeHandling (string) --

                What WAF should do if the headers of the request are more numerous or 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 available 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.

            • Cookies (dict) --

              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.

              • MatchPattern (dict) --

                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": [ "session-id-time", "session-id" ] }

                • All (dict) --

                  Inspect all cookies.

                • IncludedCookies (list) --

                  Inspect only the cookies that have a key that matches one of the strings specified here.

                  • (string) --

                • ExcludedCookies (list) --

                  Inspect only the cookies whose keys don't match any of the strings specified here.

                  • (string) --

              • MatchScope (string) --

                The parts of the cookies to inspect with the rule inspection criteria. If you specify All, WAF inspects both keys and values.

              • OversizeHandling (string) --

                What WAF should do if the cookies of the request are more numerous or 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 available 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.

            • HeaderOrder (dict) --

              Inspect a string containing the list of the request's header names, ordered as they appear in the web request that WAF receives for inspection. WAF generates the string and then uses that as the field to match component in its inspection. WAF separates the header names in the string using colons and no added spaces, for example host:user-agent:accept:authorization:referer.

              • OversizeHandling (string) --

                What WAF should do if the headers of the request are more numerous or 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 available 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.

            • JA3Fingerprint (dict) --

              Match against the request's JA3 fingerprint header. The header contains a hash fingerprint of the TLS Client Hello packet for the request.

              • FallbackBehavior (string) --

                The match status to assign to the web request if the request doesn't have a JA3 fingerprint.

                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.

        • ManagedByFirewallManager (boolean) --

          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.

        • LoggingFilter (dict) --

          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.

          • Filters (list) --

            The filters that you want to apply to the logs.

            • (dict) --

              A single logging filter, used in LoggingFilter.

              • Behavior (string) --

                How to handle logs that satisfy the filter's conditions and requirement.

              • Requirement (string) --

                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.

              • Conditions (list) --

                Match conditions for the filter.

                • (dict) --

                  A single match condition for a Filter.

                  • ActionCondition (dict) --

                    A single action condition. This is the action setting that a log record must contain in order to meet the condition.

                    • Action (string) --

                      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.

                  • LabelNameCondition (dict) --

                    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.

                    • LabelName (string) --

                      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.

          • DefaultBehavior (string) --

            Default handling for logs that don't match any of the specified filtering conditions.

    • NextMarker (string) --

      When you request a list of objects with a Limit setting, if the number of objects that are still available for retrieval exceeds the limit, WAF returns a NextMarker value in the response. To retrieve the next batch of objects, provide the marker from the prior call in your next request.

PutLoggingConfiguration (updated) Link ¶
Changes (both)
{'LoggingConfiguration': {'RedactedFields': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                    '| '
                                                                                    'NO_MATCH'}}}}

Enables the specified LoggingConfiguration, to start logging from a web ACL, according to the configuration provided.

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 also: AWS API Documentation

Request Syntax

client.put_logging_configuration(
    LoggingConfiguration={
        'ResourceArn': 'string',
        'LogDestinationConfigs': [
            'string',
        ],
        'RedactedFields': [
            {
                'SingleHeader': {
                    'Name': 'string'
                },
                'SingleQueryArgument': {
                    'Name': 'string'
                },
                'AllQueryArguments': {}
                ,
                'UriPath': {}
                ,
                'QueryString': {}
                ,
                'Body': {
                    'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                },
                'Method': {}
                ,
                'JsonBody': {
                    'MatchPattern': {
                        'All': {}
                        ,
                        'IncludedPaths': [
                            'string',
                        ]
                    },
                    'MatchScope': 'ALL'|'KEY'|'VALUE',
                    'InvalidFallbackBehavior': 'MATCH'|'NO_MATCH'|'EVALUATE_AS_STRING',
                    'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                },
                'Headers': {
                    'MatchPattern': {
                        'All': {}
                        ,
                        'IncludedHeaders': [
                            'string',
                        ],
                        'ExcludedHeaders': [
                            'string',
                        ]
                    },
                    'MatchScope': 'ALL'|'KEY'|'VALUE',
                    'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                },
                'Cookies': {
                    'MatchPattern': {
                        'All': {}
                        ,
                        'IncludedCookies': [
                            'string',
                        ],
                        'ExcludedCookies': [
                            'string',
                        ]
                    },
                    'MatchScope': 'ALL'|'KEY'|'VALUE',
                    'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                },
                'HeaderOrder': {
                    'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                },
                'JA3Fingerprint': {
                    'FallbackBehavior': 'MATCH'|'NO_MATCH'
                }
            },
        ],
        'ManagedByFirewallManager': True|False,
        'LoggingFilter': {
            'Filters': [
                {
                    'Behavior': 'KEEP'|'DROP',
                    'Requirement': 'MEETS_ALL'|'MEETS_ANY',
                    'Conditions': [
                        {
                            'ActionCondition': {
                                'Action': 'ALLOW'|'BLOCK'|'COUNT'|'CAPTCHA'|'CHALLENGE'|'EXCLUDED_AS_COUNT'
                            },
                            'LabelNameCondition': {
                                'LabelName': 'string'
                            }
                        },
                    ]
                },
            ],
            'DefaultBehavior': 'KEEP'|'DROP'
        }
    }
)
type LoggingConfiguration:

dict

param LoggingConfiguration:

[REQUIRED]

  • ResourceArn (string) -- [REQUIRED]

    The Amazon Resource Name (ARN) of the web ACL that you want to associate with LogDestinationConfigs.

  • LogDestinationConfigs (list) -- [REQUIRED]

    The logging destination configuration that you want to associate with the web ACL.

    • (string) --

  • RedactedFields (list) --

    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 REDACTED for all rules that use the SingleHeader FieldToMatch setting.

    Redaction applies only to the component that's specified in the rule's FieldToMatch setting, so the SingleHeader redaction doesn't apply to rules that use the Headers FieldToMatch.

    • (dict) --

      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" } }

      • SingleHeader (dict) --

        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.

        • Name (string) -- [REQUIRED]

          The name of the query header to inspect.

      • SingleQueryArgument (dict) --

        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" }

        • Name (string) -- [REQUIRED]

          The name of the query argument to inspect.

      • AllQueryArguments (dict) --

        Inspect all query arguments.

      • UriPath (dict) --

        Inspect the request URI path. This is the part of the web request that identifies a resource, for example, /images/daily-ad.jpg.

      • QueryString (dict) --

        Inspect the query string. This is the part of a URL that appears after a ? character, if any.

      • Body (dict) --

        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.

        A limited amount of the request body is forwarded to WAF for inspection by the underlying host service. For regional resources, the limit is 8 KB (8,192 bytes) and for CloudFront distributions, the limit is 16 KB (16,384 bytes). For CloudFront distributions, you can increase the limit in the web ACL's AssociationConfig, for additional processing fees.

        For information about how to handle oversized request bodies, see the Body object configuration.

        • OversizeHandling (string) --

          What WAF should do if the body is larger than WAF can inspect. WAF does not support inspecting the entire contents of the web request body if the body exceeds the limit for the resource type. If the body is larger than the limit, the underlying host service only forwards the contents that are below the limit to WAF for inspection.

          The default limit is 8 KB (8,192 bytes) for regional resources and 16 KB (16,384 bytes) for CloudFront distributions. For CloudFront distributions, you can increase the limit in the web ACL AssociationConfig, for additional processing fees.

          The options for oversize handling are the following:

          • CONTINUE - Inspect the available body contents 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 the limit.

          Default: CONTINUE

      • Method (dict) --

        Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.

      • JsonBody (dict) --

        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.

        A limited amount of the request body is forwarded to WAF for inspection by the underlying host service. For regional resources, the limit is 8 KB (8,192 bytes) and for CloudFront distributions, the limit is 16 KB (16,384 bytes). For CloudFront distributions, you can increase the limit in the web ACL's AssociationConfig, for additional processing fees.

        For information about how to handle oversized request bodies, see the JsonBody object configuration.

        • MatchPattern (dict) -- [REQUIRED]

          The patterns to look for in the JSON body. WAF inspects the results of these pattern matches against the rule inspection criteria.

          • All (dict) --

            Match all of the elements. See also MatchScope in JsonBody.

            You must specify either this setting or the IncludedPaths setting, but not both.

          • IncludedPaths (list) --

            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.

            • (string) --

        • MatchScope (string) -- [REQUIRED]

          The parts of the JSON to match against using the MatchPattern. If you specify All, WAF matches against keys and values.

        • InvalidFallbackBehavior (string) --

          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"}

        • OversizeHandling (string) --

          What WAF should do if the body is larger than WAF can inspect. WAF does not support inspecting the entire contents of the web request body if the body exceeds the limit for the resource type. If the body is larger than the limit, the underlying host service only forwards the contents that are below the limit to WAF for inspection.

          The default limit is 8 KB (8,192 bytes) for regional resources and 16 KB (16,384 bytes) for CloudFront distributions. For CloudFront distributions, you can increase the limit in the web ACL AssociationConfig, for additional processing fees.

          The options for oversize handling are the following:

          • CONTINUE - Inspect the available body contents 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 the limit.

          Default: CONTINUE

      • Headers (dict) --

        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.

        • MatchPattern (dict) -- [REQUIRED]

          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" ] }

          • All (dict) --

            Inspect all headers.

          • IncludedHeaders (list) --

            Inspect only the headers that have a key that matches one of the strings specified here.

            • (string) --

          • ExcludedHeaders (list) --

            Inspect only the headers whose keys don't match any of the strings specified here.

            • (string) --

        • MatchScope (string) -- [REQUIRED]

          The parts of the headers to match with the rule inspection criteria. If you specify All, WAF inspects both keys and values.

        • OversizeHandling (string) -- [REQUIRED]

          What WAF should do if the headers of the request are more numerous or 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 available 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.

      • Cookies (dict) --

        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.

        • MatchPattern (dict) -- [REQUIRED]

          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": [ "session-id-time", "session-id" ] }

          • All (dict) --

            Inspect all cookies.

          • IncludedCookies (list) --

            Inspect only the cookies that have a key that matches one of the strings specified here.

            • (string) --

          • ExcludedCookies (list) --

            Inspect only the cookies whose keys don't match any of the strings specified here.

            • (string) --

        • MatchScope (string) -- [REQUIRED]

          The parts of the cookies to inspect with the rule inspection criteria. If you specify All, WAF inspects both keys and values.

        • OversizeHandling (string) -- [REQUIRED]

          What WAF should do if the cookies of the request are more numerous or 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 available 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.

      • HeaderOrder (dict) --

        Inspect a string containing the list of the request's header names, ordered as they appear in the web request that WAF receives for inspection. WAF generates the string and then uses that as the field to match component in its inspection. WAF separates the header names in the string using colons and no added spaces, for example host:user-agent:accept:authorization:referer.

        • OversizeHandling (string) -- [REQUIRED]

          What WAF should do if the headers of the request are more numerous or 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 available 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.

      • JA3Fingerprint (dict) --

        Match against the request's JA3 fingerprint header. The header contains a hash fingerprint of the TLS Client Hello packet for the request.

        • FallbackBehavior (string) -- [REQUIRED]

          The match status to assign to the web request if the request doesn't have a JA3 fingerprint.

          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.

  • ManagedByFirewallManager (boolean) --

    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.

  • LoggingFilter (dict) --

    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.

    • Filters (list) -- [REQUIRED]

      The filters that you want to apply to the logs.

      • (dict) --

        A single logging filter, used in LoggingFilter.

        • Behavior (string) -- [REQUIRED]

          How to handle logs that satisfy the filter's conditions and requirement.

        • Requirement (string) -- [REQUIRED]

          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.

        • Conditions (list) -- [REQUIRED]

          Match conditions for the filter.

          • (dict) --

            A single match condition for a Filter.

            • ActionCondition (dict) --

              A single action condition. This is the action setting that a log record must contain in order to meet the condition.

              • Action (string) -- [REQUIRED]

                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.

            • LabelNameCondition (dict) --

              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.

              • LabelName (string) -- [REQUIRED]

                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.

    • DefaultBehavior (string) -- [REQUIRED]

      Default handling for logs that don't match any of the specified filtering conditions.

rtype:

dict

returns:

Response Syntax

{
    'LoggingConfiguration': {
        'ResourceArn': 'string',
        'LogDestinationConfigs': [
            'string',
        ],
        'RedactedFields': [
            {
                'SingleHeader': {
                    'Name': 'string'
                },
                'SingleQueryArgument': {
                    'Name': 'string'
                },
                'AllQueryArguments': {},
                'UriPath': {},
                'QueryString': {},
                'Body': {
                    'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                },
                'Method': {},
                'JsonBody': {
                    'MatchPattern': {
                        'All': {},
                        'IncludedPaths': [
                            'string',
                        ]
                    },
                    'MatchScope': 'ALL'|'KEY'|'VALUE',
                    'InvalidFallbackBehavior': 'MATCH'|'NO_MATCH'|'EVALUATE_AS_STRING',
                    'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                },
                'Headers': {
                    'MatchPattern': {
                        'All': {},
                        'IncludedHeaders': [
                            'string',
                        ],
                        'ExcludedHeaders': [
                            'string',
                        ]
                    },
                    'MatchScope': 'ALL'|'KEY'|'VALUE',
                    'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                },
                'Cookies': {
                    'MatchPattern': {
                        'All': {},
                        'IncludedCookies': [
                            'string',
                        ],
                        'ExcludedCookies': [
                            'string',
                        ]
                    },
                    'MatchScope': 'ALL'|'KEY'|'VALUE',
                    'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                },
                'HeaderOrder': {
                    'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                },
                'JA3Fingerprint': {
                    'FallbackBehavior': 'MATCH'|'NO_MATCH'
                }
            },
        ],
        'ManagedByFirewallManager': True|False,
        'LoggingFilter': {
            'Filters': [
                {
                    'Behavior': 'KEEP'|'DROP',
                    'Requirement': 'MEETS_ALL'|'MEETS_ANY',
                    'Conditions': [
                        {
                            'ActionCondition': {
                                'Action': 'ALLOW'|'BLOCK'|'COUNT'|'CAPTCHA'|'CHALLENGE'|'EXCLUDED_AS_COUNT'
                            },
                            'LabelNameCondition': {
                                'LabelName': 'string'
                            }
                        },
                    ]
                },
            ],
            'DefaultBehavior': 'KEEP'|'DROP'
        }
    }
}

Response Structure

  • (dict) --

    • LoggingConfiguration (dict) --

      • ResourceArn (string) --

        The Amazon Resource Name (ARN) of the web ACL that you want to associate with LogDestinationConfigs.

      • LogDestinationConfigs (list) --

        The logging destination configuration that you want to associate with the web ACL.

        • (string) --

      • RedactedFields (list) --

        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 REDACTED for all rules that use the SingleHeader FieldToMatch setting.

        Redaction applies only to the component that's specified in the rule's FieldToMatch setting, so the SingleHeader redaction doesn't apply to rules that use the Headers FieldToMatch.

        • (dict) --

          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" } }

          • SingleHeader (dict) --

            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.

            • Name (string) --

              The name of the query header to inspect.

          • SingleQueryArgument (dict) --

            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" }

            • Name (string) --

              The name of the query argument to inspect.

          • AllQueryArguments (dict) --

            Inspect all query arguments.

          • UriPath (dict) --

            Inspect the request URI path. This is the part of the web request that identifies a resource, for example, /images/daily-ad.jpg.

          • QueryString (dict) --

            Inspect the query string. This is the part of a URL that appears after a ? character, if any.

          • Body (dict) --

            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.

            A limited amount of the request body is forwarded to WAF for inspection by the underlying host service. For regional resources, the limit is 8 KB (8,192 bytes) and for CloudFront distributions, the limit is 16 KB (16,384 bytes). For CloudFront distributions, you can increase the limit in the web ACL's AssociationConfig, for additional processing fees.

            For information about how to handle oversized request bodies, see the Body object configuration.

            • OversizeHandling (string) --

              What WAF should do if the body is larger than WAF can inspect. WAF does not support inspecting the entire contents of the web request body if the body exceeds the limit for the resource type. If the body is larger than the limit, the underlying host service only forwards the contents that are below the limit to WAF for inspection.

              The default limit is 8 KB (8,192 bytes) for regional resources and 16 KB (16,384 bytes) for CloudFront distributions. For CloudFront distributions, you can increase the limit in the web ACL AssociationConfig, for additional processing fees.

              The options for oversize handling are the following:

              • CONTINUE - Inspect the available body contents 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 the limit.

              Default: CONTINUE

          • Method (dict) --

            Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.

          • JsonBody (dict) --

            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.

            A limited amount of the request body is forwarded to WAF for inspection by the underlying host service. For regional resources, the limit is 8 KB (8,192 bytes) and for CloudFront distributions, the limit is 16 KB (16,384 bytes). For CloudFront distributions, you can increase the limit in the web ACL's AssociationConfig, for additional processing fees.

            For information about how to handle oversized request bodies, see the JsonBody object configuration.

            • MatchPattern (dict) --

              The patterns to look for in the JSON body. WAF inspects the results of these pattern matches against the rule inspection criteria.

              • All (dict) --

                Match all of the elements. See also MatchScope in JsonBody.

                You must specify either this setting or the IncludedPaths setting, but not both.

              • IncludedPaths (list) --

                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.

                • (string) --

            • MatchScope (string) --

              The parts of the JSON to match against using the MatchPattern. If you specify All, WAF matches against keys and values.

            • InvalidFallbackBehavior (string) --

              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"}

            • OversizeHandling (string) --

              What WAF should do if the body is larger than WAF can inspect. WAF does not support inspecting the entire contents of the web request body if the body exceeds the limit for the resource type. If the body is larger than the limit, the underlying host service only forwards the contents that are below the limit to WAF for inspection.

              The default limit is 8 KB (8,192 bytes) for regional resources and 16 KB (16,384 bytes) for CloudFront distributions. For CloudFront distributions, you can increase the limit in the web ACL AssociationConfig, for additional processing fees.

              The options for oversize handling are the following:

              • CONTINUE - Inspect the available body contents 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 the limit.

              Default: CONTINUE

          • Headers (dict) --

            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.

            • MatchPattern (dict) --

              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" ] }

              • All (dict) --

                Inspect all headers.

              • IncludedHeaders (list) --

                Inspect only the headers that have a key that matches one of the strings specified here.

                • (string) --

              • ExcludedHeaders (list) --

                Inspect only the headers whose keys don't match any of the strings specified here.

                • (string) --

            • MatchScope (string) --

              The parts of the headers to match with the rule inspection criteria. If you specify All, WAF inspects both keys and values.

            • OversizeHandling (string) --

              What WAF should do if the headers of the request are more numerous or 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 available 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.

          • Cookies (dict) --

            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.

            • MatchPattern (dict) --

              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": [ "session-id-time", "session-id" ] }

              • All (dict) --

                Inspect all cookies.

              • IncludedCookies (list) --

                Inspect only the cookies that have a key that matches one of the strings specified here.

                • (string) --

              • ExcludedCookies (list) --

                Inspect only the cookies whose keys don't match any of the strings specified here.

                • (string) --

            • MatchScope (string) --

              The parts of the cookies to inspect with the rule inspection criteria. If you specify All, WAF inspects both keys and values.

            • OversizeHandling (string) --

              What WAF should do if the cookies of the request are more numerous or 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 available 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.

          • HeaderOrder (dict) --

            Inspect a string containing the list of the request's header names, ordered as they appear in the web request that WAF receives for inspection. WAF generates the string and then uses that as the field to match component in its inspection. WAF separates the header names in the string using colons and no added spaces, for example host:user-agent:accept:authorization:referer.

            • OversizeHandling (string) --

              What WAF should do if the headers of the request are more numerous or 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 available 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.

          • JA3Fingerprint (dict) --

            Match against the request's JA3 fingerprint header. The header contains a hash fingerprint of the TLS Client Hello packet for the request.

            • FallbackBehavior (string) --

              The match status to assign to the web request if the request doesn't have a JA3 fingerprint.

              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.

      • ManagedByFirewallManager (boolean) --

        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.

      • LoggingFilter (dict) --

        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.

        • Filters (list) --

          The filters that you want to apply to the logs.

          • (dict) --

            A single logging filter, used in LoggingFilter.

            • Behavior (string) --

              How to handle logs that satisfy the filter's conditions and requirement.

            • Requirement (string) --

              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.

            • Conditions (list) --

              Match conditions for the filter.

              • (dict) --

                A single match condition for a Filter.

                • ActionCondition (dict) --

                  A single action condition. This is the action setting that a log record must contain in order to meet the condition.

                  • Action (string) --

                    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.

                • LabelNameCondition (dict) --

                  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.

                  • LabelName (string) --

                    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.

        • DefaultBehavior (string) --

          Default handling for logs that don't match any of the specified filtering conditions.

UpdateRuleGroup (updated) Link ¶
Changes (request)
{'Rules': {'Statement': {'ByteMatchStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                        '| '
                                                                                                        'NO_MATCH'}}},
                         'RegexMatchStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                         '| '
                                                                                                         'NO_MATCH'}}},
                         'RegexPatternSetReferenceStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                                       '| '
                                                                                                                       'NO_MATCH'}}},
                         'SizeConstraintStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                             '| '
                                                                                                             'NO_MATCH'}}},
                         'SqliMatchStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                        '| '
                                                                                                        'NO_MATCH'}}},
                         'XssMatchStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                       '| '
                                                                                                       'NO_MATCH'}}}}}}

Updates the specified RuleGroup.

When you make changes to web ACLs or web ACL components, like rules and rule groups, WAF propagates the changes everywhere that the web ACL and its components are stored and used. Your changes are applied within seconds, but there might be a brief period of inconsistency when the changes have arrived in some places and not in others. So, for example, if you change a rule action setting, the action might be the old action in one area and the new action in another area. Or if you add an IP address to an IP set used in a blocking rule, the new address might briefly be blocked in one area while still allowed in another. This temporary inconsistency can occur when you first associate a web ACL with an Amazon Web Services resource and when you change a web ACL that is already associated with a resource. Generally, any inconsistencies of this type last only a few seconds.

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 also: AWS API Documentation

Request Syntax

client.update_rule_group(
    Name='string',
    Scope='CLOUDFRONT'|'REGIONAL',
    Id='string',
    Description='string',
    Rules=[
        {
            'Name': 'string',
            'Priority': 123,
            'Statement': {
                'ByteMatchStatement': {
                    'SearchString': b'bytes',
                    'FieldToMatch': {
                        'SingleHeader': {
                            'Name': 'string'
                        },
                        'SingleQueryArgument': {
                            'Name': 'string'
                        },
                        'AllQueryArguments': {}
                        ,
                        'UriPath': {}
                        ,
                        'QueryString': {}
                        ,
                        'Body': {
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Method': {}
                        ,
                        'JsonBody': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedPaths': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'InvalidFallbackBehavior': 'MATCH'|'NO_MATCH'|'EVALUATE_AS_STRING',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Headers': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedHeaders': [
                                    'string',
                                ],
                                'ExcludedHeaders': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Cookies': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedCookies': [
                                    'string',
                                ],
                                'ExcludedCookies': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'HeaderOrder': {
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'JA3Fingerprint': {
                            'FallbackBehavior': 'MATCH'|'NO_MATCH'
                        }
                    },
                    'TextTransformations': [
                        {
                            'Priority': 123,
                            'Type': 'NONE'|'COMPRESS_WHITE_SPACE'|'HTML_ENTITY_DECODE'|'LOWERCASE'|'CMD_LINE'|'URL_DECODE'|'BASE64_DECODE'|'HEX_DECODE'|'MD5'|'REPLACE_COMMENTS'|'ESCAPE_SEQ_DECODE'|'SQL_HEX_DECODE'|'CSS_DECODE'|'JS_DECODE'|'NORMALIZE_PATH'|'NORMALIZE_PATH_WIN'|'REMOVE_NULLS'|'REPLACE_NULLS'|'BASE64_DECODE_EXT'|'URL_DECODE_UNI'|'UTF8_TO_UNICODE'
                        },
                    ],
                    'PositionalConstraint': 'EXACTLY'|'STARTS_WITH'|'ENDS_WITH'|'CONTAINS'|'CONTAINS_WORD'
                },
                'SqliMatchStatement': {
                    'FieldToMatch': {
                        'SingleHeader': {
                            'Name': 'string'
                        },
                        'SingleQueryArgument': {
                            'Name': 'string'
                        },
                        'AllQueryArguments': {}
                        ,
                        'UriPath': {}
                        ,
                        'QueryString': {}
                        ,
                        'Body': {
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Method': {}
                        ,
                        'JsonBody': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedPaths': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'InvalidFallbackBehavior': 'MATCH'|'NO_MATCH'|'EVALUATE_AS_STRING',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Headers': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedHeaders': [
                                    'string',
                                ],
                                'ExcludedHeaders': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Cookies': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedCookies': [
                                    'string',
                                ],
                                'ExcludedCookies': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'HeaderOrder': {
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'JA3Fingerprint': {
                            'FallbackBehavior': 'MATCH'|'NO_MATCH'
                        }
                    },
                    'TextTransformations': [
                        {
                            'Priority': 123,
                            'Type': 'NONE'|'COMPRESS_WHITE_SPACE'|'HTML_ENTITY_DECODE'|'LOWERCASE'|'CMD_LINE'|'URL_DECODE'|'BASE64_DECODE'|'HEX_DECODE'|'MD5'|'REPLACE_COMMENTS'|'ESCAPE_SEQ_DECODE'|'SQL_HEX_DECODE'|'CSS_DECODE'|'JS_DECODE'|'NORMALIZE_PATH'|'NORMALIZE_PATH_WIN'|'REMOVE_NULLS'|'REPLACE_NULLS'|'BASE64_DECODE_EXT'|'URL_DECODE_UNI'|'UTF8_TO_UNICODE'
                        },
                    ],
                    'SensitivityLevel': 'LOW'|'HIGH'
                },
                'XssMatchStatement': {
                    'FieldToMatch': {
                        'SingleHeader': {
                            'Name': 'string'
                        },
                        'SingleQueryArgument': {
                            'Name': 'string'
                        },
                        'AllQueryArguments': {}
                        ,
                        'UriPath': {}
                        ,
                        'QueryString': {}
                        ,
                        'Body': {
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Method': {}
                        ,
                        'JsonBody': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedPaths': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'InvalidFallbackBehavior': 'MATCH'|'NO_MATCH'|'EVALUATE_AS_STRING',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Headers': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedHeaders': [
                                    'string',
                                ],
                                'ExcludedHeaders': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Cookies': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedCookies': [
                                    'string',
                                ],
                                'ExcludedCookies': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'HeaderOrder': {
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'JA3Fingerprint': {
                            'FallbackBehavior': 'MATCH'|'NO_MATCH'
                        }
                    },
                    'TextTransformations': [
                        {
                            'Priority': 123,
                            'Type': 'NONE'|'COMPRESS_WHITE_SPACE'|'HTML_ENTITY_DECODE'|'LOWERCASE'|'CMD_LINE'|'URL_DECODE'|'BASE64_DECODE'|'HEX_DECODE'|'MD5'|'REPLACE_COMMENTS'|'ESCAPE_SEQ_DECODE'|'SQL_HEX_DECODE'|'CSS_DECODE'|'JS_DECODE'|'NORMALIZE_PATH'|'NORMALIZE_PATH_WIN'|'REMOVE_NULLS'|'REPLACE_NULLS'|'BASE64_DECODE_EXT'|'URL_DECODE_UNI'|'UTF8_TO_UNICODE'
                        },
                    ]
                },
                'SizeConstraintStatement': {
                    'FieldToMatch': {
                        'SingleHeader': {
                            'Name': 'string'
                        },
                        'SingleQueryArgument': {
                            'Name': 'string'
                        },
                        'AllQueryArguments': {}
                        ,
                        'UriPath': {}
                        ,
                        'QueryString': {}
                        ,
                        'Body': {
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Method': {}
                        ,
                        'JsonBody': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedPaths': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'InvalidFallbackBehavior': 'MATCH'|'NO_MATCH'|'EVALUATE_AS_STRING',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Headers': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedHeaders': [
                                    'string',
                                ],
                                'ExcludedHeaders': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Cookies': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedCookies': [
                                    'string',
                                ],
                                'ExcludedCookies': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'HeaderOrder': {
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'JA3Fingerprint': {
                            'FallbackBehavior': 'MATCH'|'NO_MATCH'
                        }
                    },
                    'ComparisonOperator': 'EQ'|'NE'|'LE'|'LT'|'GE'|'GT',
                    'Size': 123,
                    'TextTransformations': [
                        {
                            'Priority': 123,
                            'Type': 'NONE'|'COMPRESS_WHITE_SPACE'|'HTML_ENTITY_DECODE'|'LOWERCASE'|'CMD_LINE'|'URL_DECODE'|'BASE64_DECODE'|'HEX_DECODE'|'MD5'|'REPLACE_COMMENTS'|'ESCAPE_SEQ_DECODE'|'SQL_HEX_DECODE'|'CSS_DECODE'|'JS_DECODE'|'NORMALIZE_PATH'|'NORMALIZE_PATH_WIN'|'REMOVE_NULLS'|'REPLACE_NULLS'|'BASE64_DECODE_EXT'|'URL_DECODE_UNI'|'UTF8_TO_UNICODE'
                        },
                    ]
                },
                'GeoMatchStatement': {
                    'CountryCodes': [
                        'AF'|'AX'|'AL'|'DZ'|'AS'|'AD'|'AO'|'AI'|'AQ'|'AG'|'AR'|'AM'|'AW'|'AU'|'AT'|'AZ'|'BS'|'BH'|'BD'|'BB'|'BY'|'BE'|'BZ'|'BJ'|'BM'|'BT'|'BO'|'BQ'|'BA'|'BW'|'BV'|'BR'|'IO'|'BN'|'BG'|'BF'|'BI'|'KH'|'CM'|'CA'|'CV'|'KY'|'CF'|'TD'|'CL'|'CN'|'CX'|'CC'|'CO'|'KM'|'CG'|'CD'|'CK'|'CR'|'CI'|'HR'|'CU'|'CW'|'CY'|'CZ'|'DK'|'DJ'|'DM'|'DO'|'EC'|'EG'|'SV'|'GQ'|'ER'|'EE'|'ET'|'FK'|'FO'|'FJ'|'FI'|'FR'|'GF'|'PF'|'TF'|'GA'|'GM'|'GE'|'DE'|'GH'|'GI'|'GR'|'GL'|'GD'|'GP'|'GU'|'GT'|'GG'|'GN'|'GW'|'GY'|'HT'|'HM'|'VA'|'HN'|'HK'|'HU'|'IS'|'IN'|'ID'|'IR'|'IQ'|'IE'|'IM'|'IL'|'IT'|'JM'|'JP'|'JE'|'JO'|'KZ'|'KE'|'KI'|'KP'|'KR'|'KW'|'KG'|'LA'|'LV'|'LB'|'LS'|'LR'|'LY'|'LI'|'LT'|'LU'|'MO'|'MK'|'MG'|'MW'|'MY'|'MV'|'ML'|'MT'|'MH'|'MQ'|'MR'|'MU'|'YT'|'MX'|'FM'|'MD'|'MC'|'MN'|'ME'|'MS'|'MA'|'MZ'|'MM'|'NA'|'NR'|'NP'|'NL'|'NC'|'NZ'|'NI'|'NE'|'NG'|'NU'|'NF'|'MP'|'NO'|'OM'|'PK'|'PW'|'PS'|'PA'|'PG'|'PY'|'PE'|'PH'|'PN'|'PL'|'PT'|'PR'|'QA'|'RE'|'RO'|'RU'|'RW'|'BL'|'SH'|'KN'|'LC'|'MF'|'PM'|'VC'|'WS'|'SM'|'ST'|'SA'|'SN'|'RS'|'SC'|'SL'|'SG'|'SX'|'SK'|'SI'|'SB'|'SO'|'ZA'|'GS'|'SS'|'ES'|'LK'|'SD'|'SR'|'SJ'|'SZ'|'SE'|'CH'|'SY'|'TW'|'TJ'|'TZ'|'TH'|'TL'|'TG'|'TK'|'TO'|'TT'|'TN'|'TR'|'TM'|'TC'|'TV'|'UG'|'UA'|'AE'|'GB'|'US'|'UM'|'UY'|'UZ'|'VU'|'VE'|'VN'|'VG'|'VI'|'WF'|'EH'|'YE'|'ZM'|'ZW'|'XK',
                    ],
                    'ForwardedIPConfig': {
                        'HeaderName': 'string',
                        'FallbackBehavior': 'MATCH'|'NO_MATCH'
                    }
                },
                'RuleGroupReferenceStatement': {
                    'ARN': 'string',
                    'ExcludedRules': [
                        {
                            'Name': 'string'
                        },
                    ],
                    'RuleActionOverrides': [
                        {
                            'Name': 'string',
                            'ActionToUse': {
                                'Block': {
                                    'CustomResponse': {
                                        'ResponseCode': 123,
                                        'CustomResponseBodyKey': 'string',
                                        'ResponseHeaders': [
                                            {
                                                'Name': 'string',
                                                'Value': 'string'
                                            },
                                        ]
                                    }
                                },
                                'Allow': {
                                    'CustomRequestHandling': {
                                        'InsertHeaders': [
                                            {
                                                'Name': 'string',
                                                'Value': 'string'
                                            },
                                        ]
                                    }
                                },
                                'Count': {
                                    'CustomRequestHandling': {
                                        'InsertHeaders': [
                                            {
                                                'Name': 'string',
                                                'Value': 'string'
                                            },
                                        ]
                                    }
                                },
                                'Captcha': {
                                    'CustomRequestHandling': {
                                        'InsertHeaders': [
                                            {
                                                'Name': 'string',
                                                'Value': 'string'
                                            },
                                        ]
                                    }
                                },
                                'Challenge': {
                                    'CustomRequestHandling': {
                                        'InsertHeaders': [
                                            {
                                                'Name': 'string',
                                                'Value': 'string'
                                            },
                                        ]
                                    }
                                }
                            }
                        },
                    ]
                },
                'IPSetReferenceStatement': {
                    'ARN': 'string',
                    'IPSetForwardedIPConfig': {
                        'HeaderName': 'string',
                        'FallbackBehavior': 'MATCH'|'NO_MATCH',
                        'Position': 'FIRST'|'LAST'|'ANY'
                    }
                },
                'RegexPatternSetReferenceStatement': {
                    'ARN': 'string',
                    'FieldToMatch': {
                        'SingleHeader': {
                            'Name': 'string'
                        },
                        'SingleQueryArgument': {
                            'Name': 'string'
                        },
                        'AllQueryArguments': {}
                        ,
                        'UriPath': {}
                        ,
                        'QueryString': {}
                        ,
                        'Body': {
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Method': {}
                        ,
                        'JsonBody': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedPaths': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'InvalidFallbackBehavior': 'MATCH'|'NO_MATCH'|'EVALUATE_AS_STRING',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Headers': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedHeaders': [
                                    'string',
                                ],
                                'ExcludedHeaders': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Cookies': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedCookies': [
                                    'string',
                                ],
                                'ExcludedCookies': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'HeaderOrder': {
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'JA3Fingerprint': {
                            'FallbackBehavior': 'MATCH'|'NO_MATCH'
                        }
                    },
                    'TextTransformations': [
                        {
                            'Priority': 123,
                            'Type': 'NONE'|'COMPRESS_WHITE_SPACE'|'HTML_ENTITY_DECODE'|'LOWERCASE'|'CMD_LINE'|'URL_DECODE'|'BASE64_DECODE'|'HEX_DECODE'|'MD5'|'REPLACE_COMMENTS'|'ESCAPE_SEQ_DECODE'|'SQL_HEX_DECODE'|'CSS_DECODE'|'JS_DECODE'|'NORMALIZE_PATH'|'NORMALIZE_PATH_WIN'|'REMOVE_NULLS'|'REPLACE_NULLS'|'BASE64_DECODE_EXT'|'URL_DECODE_UNI'|'UTF8_TO_UNICODE'
                        },
                    ]
                },
                'RateBasedStatement': {
                    'Limit': 123,
                    'AggregateKeyType': 'IP'|'FORWARDED_IP'|'CUSTOM_KEYS'|'CONSTANT',
                    'ScopeDownStatement': {'... recursive ...'},
                    'ForwardedIPConfig': {
                        'HeaderName': 'string',
                        'FallbackBehavior': 'MATCH'|'NO_MATCH'
                    },
                    'CustomKeys': [
                        {
                            'Header': {
                                'Name': 'string',
                                'TextTransformations': [
                                    {
                                        'Priority': 123,
                                        'Type': 'NONE'|'COMPRESS_WHITE_SPACE'|'HTML_ENTITY_DECODE'|'LOWERCASE'|'CMD_LINE'|'URL_DECODE'|'BASE64_DECODE'|'HEX_DECODE'|'MD5'|'REPLACE_COMMENTS'|'ESCAPE_SEQ_DECODE'|'SQL_HEX_DECODE'|'CSS_DECODE'|'JS_DECODE'|'NORMALIZE_PATH'|'NORMALIZE_PATH_WIN'|'REMOVE_NULLS'|'REPLACE_NULLS'|'BASE64_DECODE_EXT'|'URL_DECODE_UNI'|'UTF8_TO_UNICODE'
                                    },
                                ]
                            },
                            'Cookie': {
                                'Name': 'string',
                                'TextTransformations': [
                                    {
                                        'Priority': 123,
                                        'Type': 'NONE'|'COMPRESS_WHITE_SPACE'|'HTML_ENTITY_DECODE'|'LOWERCASE'|'CMD_LINE'|'URL_DECODE'|'BASE64_DECODE'|'HEX_DECODE'|'MD5'|'REPLACE_COMMENTS'|'ESCAPE_SEQ_DECODE'|'SQL_HEX_DECODE'|'CSS_DECODE'|'JS_DECODE'|'NORMALIZE_PATH'|'NORMALIZE_PATH_WIN'|'REMOVE_NULLS'|'REPLACE_NULLS'|'BASE64_DECODE_EXT'|'URL_DECODE_UNI'|'UTF8_TO_UNICODE'
                                    },
                                ]
                            },
                            'QueryArgument': {
                                'Name': 'string',
                                'TextTransformations': [
                                    {
                                        'Priority': 123,
                                        'Type': 'NONE'|'COMPRESS_WHITE_SPACE'|'HTML_ENTITY_DECODE'|'LOWERCASE'|'CMD_LINE'|'URL_DECODE'|'BASE64_DECODE'|'HEX_DECODE'|'MD5'|'REPLACE_COMMENTS'|'ESCAPE_SEQ_DECODE'|'SQL_HEX_DECODE'|'CSS_DECODE'|'JS_DECODE'|'NORMALIZE_PATH'|'NORMALIZE_PATH_WIN'|'REMOVE_NULLS'|'REPLACE_NULLS'|'BASE64_DECODE_EXT'|'URL_DECODE_UNI'|'UTF8_TO_UNICODE'
                                    },
                                ]
                            },
                            'QueryString': {
                                'TextTransformations': [
                                    {
                                        'Priority': 123,
                                        'Type': 'NONE'|'COMPRESS_WHITE_SPACE'|'HTML_ENTITY_DECODE'|'LOWERCASE'|'CMD_LINE'|'URL_DECODE'|'BASE64_DECODE'|'HEX_DECODE'|'MD5'|'REPLACE_COMMENTS'|'ESCAPE_SEQ_DECODE'|'SQL_HEX_DECODE'|'CSS_DECODE'|'JS_DECODE'|'NORMALIZE_PATH'|'NORMALIZE_PATH_WIN'|'REMOVE_NULLS'|'REPLACE_NULLS'|'BASE64_DECODE_EXT'|'URL_DECODE_UNI'|'UTF8_TO_UNICODE'
                                    },
                                ]
                            },
                            'HTTPMethod': {}
                            ,
                            'ForwardedIP': {}
                            ,
                            'IP': {}
                            ,
                            'LabelNamespace': {
                                'Namespace': 'string'
                            },
                            'UriPath': {
                                'TextTransformations': [
                                    {
                                        'Priority': 123,
                                        'Type': 'NONE'|'COMPRESS_WHITE_SPACE'|'HTML_ENTITY_DECODE'|'LOWERCASE'|'CMD_LINE'|'URL_DECODE'|'BASE64_DECODE'|'HEX_DECODE'|'MD5'|'REPLACE_COMMENTS'|'ESCAPE_SEQ_DECODE'|'SQL_HEX_DECODE'|'CSS_DECODE'|'JS_DECODE'|'NORMALIZE_PATH'|'NORMALIZE_PATH_WIN'|'REMOVE_NULLS'|'REPLACE_NULLS'|'BASE64_DECODE_EXT'|'URL_DECODE_UNI'|'UTF8_TO_UNICODE'
                                    },
                                ]
                            }
                        },
                    ]
                },
                'AndStatement': {
                    'Statements': [
                        {'... recursive ...'},
                    ]
                },
                'OrStatement': {
                    'Statements': [
                        {'... recursive ...'},
                    ]
                },
                'NotStatement': {
                    'Statement': {'... recursive ...'}
                },
                'ManagedRuleGroupStatement': {
                    'VendorName': 'string',
                    'Name': 'string',
                    'Version': 'string',
                    'ExcludedRules': [
                        {
                            'Name': 'string'
                        },
                    ],
                    'ScopeDownStatement': {'... recursive ...'},
                    'ManagedRuleGroupConfigs': [
                        {
                            'LoginPath': 'string',
                            'PayloadType': 'JSON'|'FORM_ENCODED',
                            'UsernameField': {
                                'Identifier': 'string'
                            },
                            'PasswordField': {
                                'Identifier': 'string'
                            },
                            'AWSManagedRulesBotControlRuleSet': {
                                'InspectionLevel': 'COMMON'|'TARGETED',
                                'EnableMachineLearning': True|False
                            },
                            'AWSManagedRulesATPRuleSet': {
                                'LoginPath': 'string',
                                'RequestInspection': {
                                    'PayloadType': 'JSON'|'FORM_ENCODED',
                                    'UsernameField': {
                                        'Identifier': 'string'
                                    },
                                    'PasswordField': {
                                        'Identifier': 'string'
                                    }
                                },
                                'ResponseInspection': {
                                    'StatusCode': {
                                        'SuccessCodes': [
                                            123,
                                        ],
                                        'FailureCodes': [
                                            123,
                                        ]
                                    },
                                    'Header': {
                                        'Name': 'string',
                                        'SuccessValues': [
                                            'string',
                                        ],
                                        'FailureValues': [
                                            'string',
                                        ]
                                    },
                                    'BodyContains': {
                                        'SuccessStrings': [
                                            'string',
                                        ],
                                        'FailureStrings': [
                                            'string',
                                        ]
                                    },
                                    'Json': {
                                        'Identifier': 'string',
                                        'SuccessValues': [
                                            'string',
                                        ],
                                        'FailureValues': [
                                            'string',
                                        ]
                                    }
                                },
                                'EnableRegexInPath': True|False
                            },
                            'AWSManagedRulesACFPRuleSet': {
                                'CreationPath': 'string',
                                'RegistrationPagePath': 'string',
                                'RequestInspection': {
                                    'PayloadType': 'JSON'|'FORM_ENCODED',
                                    'UsernameField': {
                                        'Identifier': 'string'
                                    },
                                    'PasswordField': {
                                        'Identifier': 'string'
                                    },
                                    'EmailField': {
                                        'Identifier': 'string'
                                    },
                                    'PhoneNumberFields': [
                                        {
                                            'Identifier': 'string'
                                        },
                                    ],
                                    'AddressFields': [
                                        {
                                            'Identifier': 'string'
                                        },
                                    ]
                                },
                                'ResponseInspection': {
                                    'StatusCode': {
                                        'SuccessCodes': [
                                            123,
                                        ],
                                        'FailureCodes': [
                                            123,
                                        ]
                                    },
                                    'Header': {
                                        'Name': 'string',
                                        'SuccessValues': [
                                            'string',
                                        ],
                                        'FailureValues': [
                                            'string',
                                        ]
                                    },
                                    'BodyContains': {
                                        'SuccessStrings': [
                                            'string',
                                        ],
                                        'FailureStrings': [
                                            'string',
                                        ]
                                    },
                                    'Json': {
                                        'Identifier': 'string',
                                        'SuccessValues': [
                                            'string',
                                        ],
                                        'FailureValues': [
                                            'string',
                                        ]
                                    }
                                },
                                'EnableRegexInPath': True|False
                            }
                        },
                    ],
                    'RuleActionOverrides': [
                        {
                            'Name': 'string',
                            'ActionToUse': {
                                'Block': {
                                    'CustomResponse': {
                                        'ResponseCode': 123,
                                        'CustomResponseBodyKey': 'string',
                                        'ResponseHeaders': [
                                            {
                                                'Name': 'string',
                                                'Value': 'string'
                                            },
                                        ]
                                    }
                                },
                                'Allow': {
                                    'CustomRequestHandling': {
                                        'InsertHeaders': [
                                            {
                                                'Name': 'string',
                                                'Value': 'string'
                                            },
                                        ]
                                    }
                                },
                                'Count': {
                                    'CustomRequestHandling': {
                                        'InsertHeaders': [
                                            {
                                                'Name': 'string',
                                                'Value': 'string'
                                            },
                                        ]
                                    }
                                },
                                'Captcha': {
                                    'CustomRequestHandling': {
                                        'InsertHeaders': [
                                            {
                                                'Name': 'string',
                                                'Value': 'string'
                                            },
                                        ]
                                    }
                                },
                                'Challenge': {
                                    'CustomRequestHandling': {
                                        'InsertHeaders': [
                                            {
                                                'Name': 'string',
                                                'Value': 'string'
                                            },
                                        ]
                                    }
                                }
                            }
                        },
                    ]
                },
                'LabelMatchStatement': {
                    'Scope': 'LABEL'|'NAMESPACE',
                    'Key': 'string'
                },
                'RegexMatchStatement': {
                    'RegexString': 'string',
                    'FieldToMatch': {
                        'SingleHeader': {
                            'Name': 'string'
                        },
                        'SingleQueryArgument': {
                            'Name': 'string'
                        },
                        'AllQueryArguments': {}
                        ,
                        'UriPath': {}
                        ,
                        'QueryString': {}
                        ,
                        'Body': {
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Method': {}
                        ,
                        'JsonBody': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedPaths': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'InvalidFallbackBehavior': 'MATCH'|'NO_MATCH'|'EVALUATE_AS_STRING',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Headers': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedHeaders': [
                                    'string',
                                ],
                                'ExcludedHeaders': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Cookies': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedCookies': [
                                    'string',
                                ],
                                'ExcludedCookies': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'HeaderOrder': {
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'JA3Fingerprint': {
                            'FallbackBehavior': 'MATCH'|'NO_MATCH'
                        }
                    },
                    'TextTransformations': [
                        {
                            'Priority': 123,
                            'Type': 'NONE'|'COMPRESS_WHITE_SPACE'|'HTML_ENTITY_DECODE'|'LOWERCASE'|'CMD_LINE'|'URL_DECODE'|'BASE64_DECODE'|'HEX_DECODE'|'MD5'|'REPLACE_COMMENTS'|'ESCAPE_SEQ_DECODE'|'SQL_HEX_DECODE'|'CSS_DECODE'|'JS_DECODE'|'NORMALIZE_PATH'|'NORMALIZE_PATH_WIN'|'REMOVE_NULLS'|'REPLACE_NULLS'|'BASE64_DECODE_EXT'|'URL_DECODE_UNI'|'UTF8_TO_UNICODE'
                        },
                    ]
                }
            },
            'Action': {
                'Block': {
                    'CustomResponse': {
                        'ResponseCode': 123,
                        'CustomResponseBodyKey': 'string',
                        'ResponseHeaders': [
                            {
                                'Name': 'string',
                                'Value': 'string'
                            },
                        ]
                    }
                },
                'Allow': {
                    'CustomRequestHandling': {
                        'InsertHeaders': [
                            {
                                'Name': 'string',
                                'Value': 'string'
                            },
                        ]
                    }
                },
                'Count': {
                    'CustomRequestHandling': {
                        'InsertHeaders': [
                            {
                                'Name': 'string',
                                'Value': 'string'
                            },
                        ]
                    }
                },
                'Captcha': {
                    'CustomRequestHandling': {
                        'InsertHeaders': [
                            {
                                'Name': 'string',
                                'Value': 'string'
                            },
                        ]
                    }
                },
                'Challenge': {
                    'CustomRequestHandling': {
                        'InsertHeaders': [
                            {
                                'Name': 'string',
                                'Value': 'string'
                            },
                        ]
                    }
                }
            },
            'OverrideAction': {
                'Count': {
                    'CustomRequestHandling': {
                        'InsertHeaders': [
                            {
                                'Name': 'string',
                                'Value': 'string'
                            },
                        ]
                    }
                },
                'None': {}

            },
            'RuleLabels': [
                {
                    'Name': 'string'
                },
            ],
            'VisibilityConfig': {
                'SampledRequestsEnabled': True|False,
                'CloudWatchMetricsEnabled': True|False,
                'MetricName': 'string'
            },
            'CaptchaConfig': {
                'ImmunityTimeProperty': {
                    'ImmunityTime': 123
                }
            },
            'ChallengeConfig': {
                'ImmunityTimeProperty': {
                    'ImmunityTime': 123
                }
            }
        },
    ],
    VisibilityConfig={
        'SampledRequestsEnabled': True|False,
        'CloudWatchMetricsEnabled': True|False,
        'MetricName': 'string'
    },
    LockToken='string',
    CustomResponseBodies={
        'string': {
            'ContentType': 'TEXT_PLAIN'|'TEXT_HTML'|'APPLICATION_JSON',
            'Content': 'string'
        }
    }
)


  **Parameters**
  ::

      # This section is too large to render.
      # Please see the AWS API Documentation linked below.

  `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/UpdateRuleGroup>`_
rtype:

dict

returns:

Response Syntax

{
    'NextLockToken': 'string'
}

Response Structure

  • (dict) --

    • NextLockToken (string) --

      A token used for optimistic locking. WAF returns this token to your update requests. You use NextLockToken in the same manner as you use LockToken.

UpdateWebACL (updated) Link ¶
Changes (request)
{'Rules': {'Statement': {'ByteMatchStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                        '| '
                                                                                                        'NO_MATCH'}}},
                         'RegexMatchStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                         '| '
                                                                                                         'NO_MATCH'}}},
                         'RegexPatternSetReferenceStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                                       '| '
                                                                                                                       'NO_MATCH'}}},
                         'SizeConstraintStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                             '| '
                                                                                                             'NO_MATCH'}}},
                         'SqliMatchStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                        '| '
                                                                                                        'NO_MATCH'}}},
                         'XssMatchStatement': {'FieldToMatch': {'JA3Fingerprint': {'FallbackBehavior': 'MATCH '
                                                                                                       '| '
                                                                                                       'NO_MATCH'}}}}}}

Updates the specified WebACL. While updating a web ACL, WAF provides continuous coverage to the resources that you have associated with the web ACL.

When you make changes to web ACLs or web ACL components, like rules and rule groups, WAF propagates the changes everywhere that the web ACL and its components are stored and used. Your changes are applied within seconds, but there might be a brief period of inconsistency when the changes have arrived in some places and not in others. So, for example, if you change a rule action setting, the action might be the old action in one area and the new action in another area. Or if you add an IP address to an IP set used in a blocking rule, the new address might briefly be blocked in one area while still allowed in another. This temporary inconsistency can occur when you first associate a web ACL with an Amazon Web Services resource and when you change a web ACL that is already associated with a resource. Generally, any inconsistencies of this type last only a few seconds.

A web ACL defines a collection of rules to use to inspect and control web requests. Each rule has a statement that defines what to look for in web requests and an action that WAF applies to requests that match the statement. 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, an Amazon Cognito user pool, an App Runner service, or an Amazon Web Services Verified Access instance.

See also: AWS API Documentation

Request Syntax

client.update_web_acl(
    Name='string',
    Scope='CLOUDFRONT'|'REGIONAL',
    Id='string',
    DefaultAction={
        'Block': {
            'CustomResponse': {
                'ResponseCode': 123,
                'CustomResponseBodyKey': 'string',
                'ResponseHeaders': [
                    {
                        'Name': 'string',
                        'Value': 'string'
                    },
                ]
            }
        },
        'Allow': {
            'CustomRequestHandling': {
                'InsertHeaders': [
                    {
                        'Name': 'string',
                        'Value': 'string'
                    },
                ]
            }
        }
    },
    Description='string',
    Rules=[
        {
            'Name': 'string',
            'Priority': 123,
            'Statement': {
                'ByteMatchStatement': {
                    'SearchString': b'bytes',
                    'FieldToMatch': {
                        'SingleHeader': {
                            'Name': 'string'
                        },
                        'SingleQueryArgument': {
                            'Name': 'string'
                        },
                        'AllQueryArguments': {}
                        ,
                        'UriPath': {}
                        ,
                        'QueryString': {}
                        ,
                        'Body': {
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Method': {}
                        ,
                        'JsonBody': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedPaths': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'InvalidFallbackBehavior': 'MATCH'|'NO_MATCH'|'EVALUATE_AS_STRING',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Headers': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedHeaders': [
                                    'string',
                                ],
                                'ExcludedHeaders': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Cookies': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedCookies': [
                                    'string',
                                ],
                                'ExcludedCookies': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'HeaderOrder': {
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'JA3Fingerprint': {
                            'FallbackBehavior': 'MATCH'|'NO_MATCH'
                        }
                    },
                    'TextTransformations': [
                        {
                            'Priority': 123,
                            'Type': 'NONE'|'COMPRESS_WHITE_SPACE'|'HTML_ENTITY_DECODE'|'LOWERCASE'|'CMD_LINE'|'URL_DECODE'|'BASE64_DECODE'|'HEX_DECODE'|'MD5'|'REPLACE_COMMENTS'|'ESCAPE_SEQ_DECODE'|'SQL_HEX_DECODE'|'CSS_DECODE'|'JS_DECODE'|'NORMALIZE_PATH'|'NORMALIZE_PATH_WIN'|'REMOVE_NULLS'|'REPLACE_NULLS'|'BASE64_DECODE_EXT'|'URL_DECODE_UNI'|'UTF8_TO_UNICODE'
                        },
                    ],
                    'PositionalConstraint': 'EXACTLY'|'STARTS_WITH'|'ENDS_WITH'|'CONTAINS'|'CONTAINS_WORD'
                },
                'SqliMatchStatement': {
                    'FieldToMatch': {
                        'SingleHeader': {
                            'Name': 'string'
                        },
                        'SingleQueryArgument': {
                            'Name': 'string'
                        },
                        'AllQueryArguments': {}
                        ,
                        'UriPath': {}
                        ,
                        'QueryString': {}
                        ,
                        'Body': {
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Method': {}
                        ,
                        'JsonBody': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedPaths': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'InvalidFallbackBehavior': 'MATCH'|'NO_MATCH'|'EVALUATE_AS_STRING',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Headers': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedHeaders': [
                                    'string',
                                ],
                                'ExcludedHeaders': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Cookies': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedCookies': [
                                    'string',
                                ],
                                'ExcludedCookies': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'HeaderOrder': {
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'JA3Fingerprint': {
                            'FallbackBehavior': 'MATCH'|'NO_MATCH'
                        }
                    },
                    'TextTransformations': [
                        {
                            'Priority': 123,
                            'Type': 'NONE'|'COMPRESS_WHITE_SPACE'|'HTML_ENTITY_DECODE'|'LOWERCASE'|'CMD_LINE'|'URL_DECODE'|'BASE64_DECODE'|'HEX_DECODE'|'MD5'|'REPLACE_COMMENTS'|'ESCAPE_SEQ_DECODE'|'SQL_HEX_DECODE'|'CSS_DECODE'|'JS_DECODE'|'NORMALIZE_PATH'|'NORMALIZE_PATH_WIN'|'REMOVE_NULLS'|'REPLACE_NULLS'|'BASE64_DECODE_EXT'|'URL_DECODE_UNI'|'UTF8_TO_UNICODE'
                        },
                    ],
                    'SensitivityLevel': 'LOW'|'HIGH'
                },
                'XssMatchStatement': {
                    'FieldToMatch': {
                        'SingleHeader': {
                            'Name': 'string'
                        },
                        'SingleQueryArgument': {
                            'Name': 'string'
                        },
                        'AllQueryArguments': {}
                        ,
                        'UriPath': {}
                        ,
                        'QueryString': {}
                        ,
                        'Body': {
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Method': {}
                        ,
                        'JsonBody': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedPaths': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'InvalidFallbackBehavior': 'MATCH'|'NO_MATCH'|'EVALUATE_AS_STRING',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Headers': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedHeaders': [
                                    'string',
                                ],
                                'ExcludedHeaders': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Cookies': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedCookies': [
                                    'string',
                                ],
                                'ExcludedCookies': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'HeaderOrder': {
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'JA3Fingerprint': {
                            'FallbackBehavior': 'MATCH'|'NO_MATCH'
                        }
                    },
                    'TextTransformations': [
                        {
                            'Priority': 123,
                            'Type': 'NONE'|'COMPRESS_WHITE_SPACE'|'HTML_ENTITY_DECODE'|'LOWERCASE'|'CMD_LINE'|'URL_DECODE'|'BASE64_DECODE'|'HEX_DECODE'|'MD5'|'REPLACE_COMMENTS'|'ESCAPE_SEQ_DECODE'|'SQL_HEX_DECODE'|'CSS_DECODE'|'JS_DECODE'|'NORMALIZE_PATH'|'NORMALIZE_PATH_WIN'|'REMOVE_NULLS'|'REPLACE_NULLS'|'BASE64_DECODE_EXT'|'URL_DECODE_UNI'|'UTF8_TO_UNICODE'
                        },
                    ]
                },
                'SizeConstraintStatement': {
                    'FieldToMatch': {
                        'SingleHeader': {
                            'Name': 'string'
                        },
                        'SingleQueryArgument': {
                            'Name': 'string'
                        },
                        'AllQueryArguments': {}
                        ,
                        'UriPath': {}
                        ,
                        'QueryString': {}
                        ,
                        'Body': {
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Method': {}
                        ,
                        'JsonBody': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedPaths': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'InvalidFallbackBehavior': 'MATCH'|'NO_MATCH'|'EVALUATE_AS_STRING',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Headers': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedHeaders': [
                                    'string',
                                ],
                                'ExcludedHeaders': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Cookies': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedCookies': [
                                    'string',
                                ],
                                'ExcludedCookies': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'HeaderOrder': {
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'JA3Fingerprint': {
                            'FallbackBehavior': 'MATCH'|'NO_MATCH'
                        }
                    },
                    'ComparisonOperator': 'EQ'|'NE'|'LE'|'LT'|'GE'|'GT',
                    'Size': 123,
                    'TextTransformations': [
                        {
                            'Priority': 123,
                            'Type': 'NONE'|'COMPRESS_WHITE_SPACE'|'HTML_ENTITY_DECODE'|'LOWERCASE'|'CMD_LINE'|'URL_DECODE'|'BASE64_DECODE'|'HEX_DECODE'|'MD5'|'REPLACE_COMMENTS'|'ESCAPE_SEQ_DECODE'|'SQL_HEX_DECODE'|'CSS_DECODE'|'JS_DECODE'|'NORMALIZE_PATH'|'NORMALIZE_PATH_WIN'|'REMOVE_NULLS'|'REPLACE_NULLS'|'BASE64_DECODE_EXT'|'URL_DECODE_UNI'|'UTF8_TO_UNICODE'
                        },
                    ]
                },
                'GeoMatchStatement': {
                    'CountryCodes': [
                        'AF'|'AX'|'AL'|'DZ'|'AS'|'AD'|'AO'|'AI'|'AQ'|'AG'|'AR'|'AM'|'AW'|'AU'|'AT'|'AZ'|'BS'|'BH'|'BD'|'BB'|'BY'|'BE'|'BZ'|'BJ'|'BM'|'BT'|'BO'|'BQ'|'BA'|'BW'|'BV'|'BR'|'IO'|'BN'|'BG'|'BF'|'BI'|'KH'|'CM'|'CA'|'CV'|'KY'|'CF'|'TD'|'CL'|'CN'|'CX'|'CC'|'CO'|'KM'|'CG'|'CD'|'CK'|'CR'|'CI'|'HR'|'CU'|'CW'|'CY'|'CZ'|'DK'|'DJ'|'DM'|'DO'|'EC'|'EG'|'SV'|'GQ'|'ER'|'EE'|'ET'|'FK'|'FO'|'FJ'|'FI'|'FR'|'GF'|'PF'|'TF'|'GA'|'GM'|'GE'|'DE'|'GH'|'GI'|'GR'|'GL'|'GD'|'GP'|'GU'|'GT'|'GG'|'GN'|'GW'|'GY'|'HT'|'HM'|'VA'|'HN'|'HK'|'HU'|'IS'|'IN'|'ID'|'IR'|'IQ'|'IE'|'IM'|'IL'|'IT'|'JM'|'JP'|'JE'|'JO'|'KZ'|'KE'|'KI'|'KP'|'KR'|'KW'|'KG'|'LA'|'LV'|'LB'|'LS'|'LR'|'LY'|'LI'|'LT'|'LU'|'MO'|'MK'|'MG'|'MW'|'MY'|'MV'|'ML'|'MT'|'MH'|'MQ'|'MR'|'MU'|'YT'|'MX'|'FM'|'MD'|'MC'|'MN'|'ME'|'MS'|'MA'|'MZ'|'MM'|'NA'|'NR'|'NP'|'NL'|'NC'|'NZ'|'NI'|'NE'|'NG'|'NU'|'NF'|'MP'|'NO'|'OM'|'PK'|'PW'|'PS'|'PA'|'PG'|'PY'|'PE'|'PH'|'PN'|'PL'|'PT'|'PR'|'QA'|'RE'|'RO'|'RU'|'RW'|'BL'|'SH'|'KN'|'LC'|'MF'|'PM'|'VC'|'WS'|'SM'|'ST'|'SA'|'SN'|'RS'|'SC'|'SL'|'SG'|'SX'|'SK'|'SI'|'SB'|'SO'|'ZA'|'GS'|'SS'|'ES'|'LK'|'SD'|'SR'|'SJ'|'SZ'|'SE'|'CH'|'SY'|'TW'|'TJ'|'TZ'|'TH'|'TL'|'TG'|'TK'|'TO'|'TT'|'TN'|'TR'|'TM'|'TC'|'TV'|'UG'|'UA'|'AE'|'GB'|'US'|'UM'|'UY'|'UZ'|'VU'|'VE'|'VN'|'VG'|'VI'|'WF'|'EH'|'YE'|'ZM'|'ZW'|'XK',
                    ],
                    'ForwardedIPConfig': {
                        'HeaderName': 'string',
                        'FallbackBehavior': 'MATCH'|'NO_MATCH'
                    }
                },
                'RuleGroupReferenceStatement': {
                    'ARN': 'string',
                    'ExcludedRules': [
                        {
                            'Name': 'string'
                        },
                    ],
                    'RuleActionOverrides': [
                        {
                            'Name': 'string',
                            'ActionToUse': {
                                'Block': {
                                    'CustomResponse': {
                                        'ResponseCode': 123,
                                        'CustomResponseBodyKey': 'string',
                                        'ResponseHeaders': [
                                            {
                                                'Name': 'string',
                                                'Value': 'string'
                                            },
                                        ]
                                    }
                                },
                                'Allow': {
                                    'CustomRequestHandling': {
                                        'InsertHeaders': [
                                            {
                                                'Name': 'string',
                                                'Value': 'string'
                                            },
                                        ]
                                    }
                                },
                                'Count': {
                                    'CustomRequestHandling': {
                                        'InsertHeaders': [
                                            {
                                                'Name': 'string',
                                                'Value': 'string'
                                            },
                                        ]
                                    }
                                },
                                'Captcha': {
                                    'CustomRequestHandling': {
                                        'InsertHeaders': [
                                            {
                                                'Name': 'string',
                                                'Value': 'string'
                                            },
                                        ]
                                    }
                                },
                                'Challenge': {
                                    'CustomRequestHandling': {
                                        'InsertHeaders': [
                                            {
                                                'Name': 'string',
                                                'Value': 'string'
                                            },
                                        ]
                                    }
                                }
                            }
                        },
                    ]
                },
                'IPSetReferenceStatement': {
                    'ARN': 'string',
                    'IPSetForwardedIPConfig': {
                        'HeaderName': 'string',
                        'FallbackBehavior': 'MATCH'|'NO_MATCH',
                        'Position': 'FIRST'|'LAST'|'ANY'
                    }
                },
                'RegexPatternSetReferenceStatement': {
                    'ARN': 'string',
                    'FieldToMatch': {
                        'SingleHeader': {
                            'Name': 'string'
                        },
                        'SingleQueryArgument': {
                            'Name': 'string'
                        },
                        'AllQueryArguments': {}
                        ,
                        'UriPath': {}
                        ,
                        'QueryString': {}
                        ,
                        'Body': {
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Method': {}
                        ,
                        'JsonBody': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedPaths': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'InvalidFallbackBehavior': 'MATCH'|'NO_MATCH'|'EVALUATE_AS_STRING',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Headers': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedHeaders': [
                                    'string',
                                ],
                                'ExcludedHeaders': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Cookies': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedCookies': [
                                    'string',
                                ],
                                'ExcludedCookies': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'HeaderOrder': {
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'JA3Fingerprint': {
                            'FallbackBehavior': 'MATCH'|'NO_MATCH'
                        }
                    },
                    'TextTransformations': [
                        {
                            'Priority': 123,
                            'Type': 'NONE'|'COMPRESS_WHITE_SPACE'|'HTML_ENTITY_DECODE'|'LOWERCASE'|'CMD_LINE'|'URL_DECODE'|'BASE64_DECODE'|'HEX_DECODE'|'MD5'|'REPLACE_COMMENTS'|'ESCAPE_SEQ_DECODE'|'SQL_HEX_DECODE'|'CSS_DECODE'|'JS_DECODE'|'NORMALIZE_PATH'|'NORMALIZE_PATH_WIN'|'REMOVE_NULLS'|'REPLACE_NULLS'|'BASE64_DECODE_EXT'|'URL_DECODE_UNI'|'UTF8_TO_UNICODE'
                        },
                    ]
                },
                'RateBasedStatement': {
                    'Limit': 123,
                    'AggregateKeyType': 'IP'|'FORWARDED_IP'|'CUSTOM_KEYS'|'CONSTANT',
                    'ScopeDownStatement': {'... recursive ...'},
                    'ForwardedIPConfig': {
                        'HeaderName': 'string',
                        'FallbackBehavior': 'MATCH'|'NO_MATCH'
                    },
                    'CustomKeys': [
                        {
                            'Header': {
                                'Name': 'string',
                                'TextTransformations': [
                                    {
                                        'Priority': 123,
                                        'Type': 'NONE'|'COMPRESS_WHITE_SPACE'|'HTML_ENTITY_DECODE'|'LOWERCASE'|'CMD_LINE'|'URL_DECODE'|'BASE64_DECODE'|'HEX_DECODE'|'MD5'|'REPLACE_COMMENTS'|'ESCAPE_SEQ_DECODE'|'SQL_HEX_DECODE'|'CSS_DECODE'|'JS_DECODE'|'NORMALIZE_PATH'|'NORMALIZE_PATH_WIN'|'REMOVE_NULLS'|'REPLACE_NULLS'|'BASE64_DECODE_EXT'|'URL_DECODE_UNI'|'UTF8_TO_UNICODE'
                                    },
                                ]
                            },
                            'Cookie': {
                                'Name': 'string',
                                'TextTransformations': [
                                    {
                                        'Priority': 123,
                                        'Type': 'NONE'|'COMPRESS_WHITE_SPACE'|'HTML_ENTITY_DECODE'|'LOWERCASE'|'CMD_LINE'|'URL_DECODE'|'BASE64_DECODE'|'HEX_DECODE'|'MD5'|'REPLACE_COMMENTS'|'ESCAPE_SEQ_DECODE'|'SQL_HEX_DECODE'|'CSS_DECODE'|'JS_DECODE'|'NORMALIZE_PATH'|'NORMALIZE_PATH_WIN'|'REMOVE_NULLS'|'REPLACE_NULLS'|'BASE64_DECODE_EXT'|'URL_DECODE_UNI'|'UTF8_TO_UNICODE'
                                    },
                                ]
                            },
                            'QueryArgument': {
                                'Name': 'string',
                                'TextTransformations': [
                                    {
                                        'Priority': 123,
                                        'Type': 'NONE'|'COMPRESS_WHITE_SPACE'|'HTML_ENTITY_DECODE'|'LOWERCASE'|'CMD_LINE'|'URL_DECODE'|'BASE64_DECODE'|'HEX_DECODE'|'MD5'|'REPLACE_COMMENTS'|'ESCAPE_SEQ_DECODE'|'SQL_HEX_DECODE'|'CSS_DECODE'|'JS_DECODE'|'NORMALIZE_PATH'|'NORMALIZE_PATH_WIN'|'REMOVE_NULLS'|'REPLACE_NULLS'|'BASE64_DECODE_EXT'|'URL_DECODE_UNI'|'UTF8_TO_UNICODE'
                                    },
                                ]
                            },
                            'QueryString': {
                                'TextTransformations': [
                                    {
                                        'Priority': 123,
                                        'Type': 'NONE'|'COMPRESS_WHITE_SPACE'|'HTML_ENTITY_DECODE'|'LOWERCASE'|'CMD_LINE'|'URL_DECODE'|'BASE64_DECODE'|'HEX_DECODE'|'MD5'|'REPLACE_COMMENTS'|'ESCAPE_SEQ_DECODE'|'SQL_HEX_DECODE'|'CSS_DECODE'|'JS_DECODE'|'NORMALIZE_PATH'|'NORMALIZE_PATH_WIN'|'REMOVE_NULLS'|'REPLACE_NULLS'|'BASE64_DECODE_EXT'|'URL_DECODE_UNI'|'UTF8_TO_UNICODE'
                                    },
                                ]
                            },
                            'HTTPMethod': {}
                            ,
                            'ForwardedIP': {}
                            ,
                            'IP': {}
                            ,
                            'LabelNamespace': {
                                'Namespace': 'string'
                            },
                            'UriPath': {
                                'TextTransformations': [
                                    {
                                        'Priority': 123,
                                        'Type': 'NONE'|'COMPRESS_WHITE_SPACE'|'HTML_ENTITY_DECODE'|'LOWERCASE'|'CMD_LINE'|'URL_DECODE'|'BASE64_DECODE'|'HEX_DECODE'|'MD5'|'REPLACE_COMMENTS'|'ESCAPE_SEQ_DECODE'|'SQL_HEX_DECODE'|'CSS_DECODE'|'JS_DECODE'|'NORMALIZE_PATH'|'NORMALIZE_PATH_WIN'|'REMOVE_NULLS'|'REPLACE_NULLS'|'BASE64_DECODE_EXT'|'URL_DECODE_UNI'|'UTF8_TO_UNICODE'
                                    },
                                ]
                            }
                        },
                    ]
                },
                'AndStatement': {
                    'Statements': [
                        {'... recursive ...'},
                    ]
                },
                'OrStatement': {
                    'Statements': [
                        {'... recursive ...'},
                    ]
                },
                'NotStatement': {
                    'Statement': {'... recursive ...'}
                },
                'ManagedRuleGroupStatement': {
                    'VendorName': 'string',
                    'Name': 'string',
                    'Version': 'string',
                    'ExcludedRules': [
                        {
                            'Name': 'string'
                        },
                    ],
                    'ScopeDownStatement': {'... recursive ...'},
                    'ManagedRuleGroupConfigs': [
                        {
                            'LoginPath': 'string',
                            'PayloadType': 'JSON'|'FORM_ENCODED',
                            'UsernameField': {
                                'Identifier': 'string'
                            },
                            'PasswordField': {
                                'Identifier': 'string'
                            },
                            'AWSManagedRulesBotControlRuleSet': {
                                'InspectionLevel': 'COMMON'|'TARGETED',
                                'EnableMachineLearning': True|False
                            },
                            'AWSManagedRulesATPRuleSet': {
                                'LoginPath': 'string',
                                'RequestInspection': {
                                    'PayloadType': 'JSON'|'FORM_ENCODED',
                                    'UsernameField': {
                                        'Identifier': 'string'
                                    },
                                    'PasswordField': {
                                        'Identifier': 'string'
                                    }
                                },
                                'ResponseInspection': {
                                    'StatusCode': {
                                        'SuccessCodes': [
                                            123,
                                        ],
                                        'FailureCodes': [
                                            123,
                                        ]
                                    },
                                    'Header': {
                                        'Name': 'string',
                                        'SuccessValues': [
                                            'string',
                                        ],
                                        'FailureValues': [
                                            'string',
                                        ]
                                    },
                                    'BodyContains': {
                                        'SuccessStrings': [
                                            'string',
                                        ],
                                        'FailureStrings': [
                                            'string',
                                        ]
                                    },
                                    'Json': {
                                        'Identifier': 'string',
                                        'SuccessValues': [
                                            'string',
                                        ],
                                        'FailureValues': [
                                            'string',
                                        ]
                                    }
                                },
                                'EnableRegexInPath': True|False
                            },
                            'AWSManagedRulesACFPRuleSet': {
                                'CreationPath': 'string',
                                'RegistrationPagePath': 'string',
                                'RequestInspection': {
                                    'PayloadType': 'JSON'|'FORM_ENCODED',
                                    'UsernameField': {
                                        'Identifier': 'string'
                                    },
                                    'PasswordField': {
                                        'Identifier': 'string'
                                    },
                                    'EmailField': {
                                        'Identifier': 'string'
                                    },
                                    'PhoneNumberFields': [
                                        {
                                            'Identifier': 'string'
                                        },
                                    ],
                                    'AddressFields': [
                                        {
                                            'Identifier': 'string'
                                        },
                                    ]
                                },
                                'ResponseInspection': {
                                    'StatusCode': {
                                        'SuccessCodes': [
                                            123,
                                        ],
                                        'FailureCodes': [
                                            123,
                                        ]
                                    },
                                    'Header': {
                                        'Name': 'string',
                                        'SuccessValues': [
                                            'string',
                                        ],
                                        'FailureValues': [
                                            'string',
                                        ]
                                    },
                                    'BodyContains': {
                                        'SuccessStrings': [
                                            'string',
                                        ],
                                        'FailureStrings': [
                                            'string',
                                        ]
                                    },
                                    'Json': {
                                        'Identifier': 'string',
                                        'SuccessValues': [
                                            'string',
                                        ],
                                        'FailureValues': [
                                            'string',
                                        ]
                                    }
                                },
                                'EnableRegexInPath': True|False
                            }
                        },
                    ],
                    'RuleActionOverrides': [
                        {
                            'Name': 'string',
                            'ActionToUse': {
                                'Block': {
                                    'CustomResponse': {
                                        'ResponseCode': 123,
                                        'CustomResponseBodyKey': 'string',
                                        'ResponseHeaders': [
                                            {
                                                'Name': 'string',
                                                'Value': 'string'
                                            },
                                        ]
                                    }
                                },
                                'Allow': {
                                    'CustomRequestHandling': {
                                        'InsertHeaders': [
                                            {
                                                'Name': 'string',
                                                'Value': 'string'
                                            },
                                        ]
                                    }
                                },
                                'Count': {
                                    'CustomRequestHandling': {
                                        'InsertHeaders': [
                                            {
                                                'Name': 'string',
                                                'Value': 'string'
                                            },
                                        ]
                                    }
                                },
                                'Captcha': {
                                    'CustomRequestHandling': {
                                        'InsertHeaders': [
                                            {
                                                'Name': 'string',
                                                'Value': 'string'
                                            },
                                        ]
                                    }
                                },
                                'Challenge': {
                                    'CustomRequestHandling': {
                                        'InsertHeaders': [
                                            {
                                                'Name': 'string',
                                                'Value': 'string'
                                            },
                                        ]
                                    }
                                }
                            }
                        },
                    ]
                },
                'LabelMatchStatement': {
                    'Scope': 'LABEL'|'NAMESPACE',
                    'Key': 'string'
                },
                'RegexMatchStatement': {
                    'RegexString': 'string',
                    'FieldToMatch': {
                        'SingleHeader': {
                            'Name': 'string'
                        },
                        'SingleQueryArgument': {
                            'Name': 'string'
                        },
                        'AllQueryArguments': {}
                        ,
                        'UriPath': {}
                        ,
                        'QueryString': {}
                        ,
                        'Body': {
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Method': {}
                        ,
                        'JsonBody': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedPaths': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'InvalidFallbackBehavior': 'MATCH'|'NO_MATCH'|'EVALUATE_AS_STRING',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Headers': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedHeaders': [
                                    'string',
                                ],
                                'ExcludedHeaders': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'Cookies': {
                            'MatchPattern': {
                                'All': {}
                                ,
                                'IncludedCookies': [
                                    'string',
                                ],
                                'ExcludedCookies': [
                                    'string',
                                ]
                            },
                            'MatchScope': 'ALL'|'KEY'|'VALUE',
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'HeaderOrder': {
                            'OversizeHandling': 'CONTINUE'|'MATCH'|'NO_MATCH'
                        },
                        'JA3Fingerprint': {
                            'FallbackBehavior': 'MATCH'|'NO_MATCH'
                        }
                    },
                    'TextTransformations': [
                        {
                            'Priority': 123,
                            'Type': 'NONE'|'COMPRESS_WHITE_SPACE'|'HTML_ENTITY_DECODE'|'LOWERCASE'|'CMD_LINE'|'URL_DECODE'|'BASE64_DECODE'|'HEX_DECODE'|'MD5'|'REPLACE_COMMENTS'|'ESCAPE_SEQ_DECODE'|'SQL_HEX_DECODE'|'CSS_DECODE'|'JS_DECODE'|'NORMALIZE_PATH'|'NORMALIZE_PATH_WIN'|'REMOVE_NULLS'|'REPLACE_NULLS'|'BASE64_DECODE_EXT'|'URL_DECODE_UNI'|'UTF8_TO_UNICODE'
                        },
                    ]
                }
            },
            'Action': {
                'Block': {
                    'CustomResponse': {
                        'ResponseCode': 123,
                        'CustomResponseBodyKey': 'string',
                        'ResponseHeaders': [
                            {
                                'Name': 'string',
                                'Value': 'string'
                            },
                        ]
                    }
                },
                'Allow': {
                    'CustomRequestHandling': {
                        'InsertHeaders': [
                            {
                                'Name': 'string',
                                'Value': 'string'
                            },
                        ]
                    }
                },
                'Count': {
                    'CustomRequestHandling': {
                        'InsertHeaders': [
                            {
                                'Name': 'string',
                                'Value': 'string'
                            },
                        ]
                    }
                },
                'Captcha': {
                    'CustomRequestHandling': {
                        'InsertHeaders': [
                            {
                                'Name': 'string',
                                'Value': 'string'
                            },
                        ]
                    }
                },
                'Challenge': {
                    'CustomRequestHandling': {
                        'InsertHeaders': [
                            {
                                'Name': 'string',
                                'Value': 'string'
                            },
                        ]
                    }
                }
            },
            'OverrideAction': {
                'Count': {
                    'CustomRequestHandling': {
                        'InsertHeaders': [
                            {
                                'Name': 'string',
                                'Value': 'string'
                            },
                        ]
                    }
                },
                'None': {}

            },
            'RuleLabels': [
                {
                    'Name': 'string'
                },
            ],
            'VisibilityConfig': {
                'SampledRequestsEnabled': True|False,
                'CloudWatchMetricsEnabled': True|False,
                'MetricName': 'string'
            },
            'CaptchaConfig': {
                'ImmunityTimeProperty': {
                    'ImmunityTime': 123
                }
            },
            'ChallengeConfig': {
                'ImmunityTimeProperty': {
                    'ImmunityTime': 123
                }
            }
        },
    ],
    VisibilityConfig={
        'SampledRequestsEnabled': True|False,
        'CloudWatchMetricsEnabled': True|False,
        'MetricName': 'string'
    },
    LockToken='string',
    CustomResponseBodies={
        'string': {
            'ContentType': 'TEXT_PLAIN'|'TEXT_HTML'|'APPLICATION_JSON',
            'Content': 'string'
        }
    },
    CaptchaConfig={
        'ImmunityTimeProperty': {
            'ImmunityTime': 123
        }
    },
    ChallengeConfig={
        'ImmunityTimeProperty': {
            'ImmunityTime': 123
        }
    },
    TokenDomains=[
        'string',
    ],
    AssociationConfig={
        'RequestBody': {
            'string': {
                'DefaultSizeInspectionLimit': 'KB_16'|'KB_32'|'KB_48'|'KB_64'
            }
        }
    }
)


  **Parameters**
  ::

      # This section is too large to render.
      # Please see the AWS API Documentation linked below.

  `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/UpdateWebACL>`_
rtype:

dict

returns:

Response Syntax

{
    'NextLockToken': 'string'
}

Response Structure

  • (dict) --

    • NextLockToken (string) --

      A token used for optimistic locking. WAF returns this token to your update requests. You use NextLockToken in the same manner as you use LockToken.