WAFV2 / Client / create_web_acl

create_web_acl#

WAFV2.Client.create_web_acl(**kwargs)#

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

response = 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,
                    'EvaluationWindowSec': 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>`_
Return type:

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.

Exceptions

  • WAFV2.Client.exceptions.WAFInternalErrorException

  • WAFV2.Client.exceptions.WAFInvalidParameterException

  • WAFV2.Client.exceptions.WAFDuplicateItemException

  • WAFV2.Client.exceptions.WAFOptimisticLockException

  • WAFV2.Client.exceptions.WAFLimitsExceededException

  • WAFV2.Client.exceptions.WAFInvalidResourceException

  • WAFV2.Client.exceptions.WAFUnavailableEntityException

  • WAFV2.Client.exceptions.WAFNonexistentItemException

  • WAFV2.Client.exceptions.WAFTagOperationException

  • WAFV2.Client.exceptions.WAFTagOperationInternalErrorException

  • WAFV2.Client.exceptions.WAFSubscriptionNotFoundException

  • WAFV2.Client.exceptions.WAFInvalidOperationException

  • WAFV2.Client.exceptions.WAFConfigurationWarningException

  • WAFV2.Client.exceptions.WAFExpiredManagedRuleGroupVersionException