check_capacity
(**kwargs)¶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. The WCU limit for web ACLs is 1,500.
See also: AWS API Documentation
Request Syntax
response = 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'
}
},
'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'
}
},
'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'
}
},
'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'
}
},
'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'
}
},
'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',
'ScopeDownStatement': {'... recursive ...'},
'ForwardedIPConfig': {
'HeaderName': 'string',
'FallbackBehavior': 'MATCH'|'NO_MATCH'
}
},
'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'
},
'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',
]
}
}
}
},
],
'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'
}
},
'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>`_
{
'Capacity': 123
}
Response Structure
The capacity required by the rules and scope.
Exceptions
WAFV2.Client.exceptions.WAFInternalErrorException
WAFV2.Client.exceptions.WAFInvalidParameterException
WAFV2.Client.exceptions.WAFNonexistentItemException
WAFV2.Client.exceptions.WAFLimitsExceededException
WAFV2.Client.exceptions.WAFInvalidResourceException
WAFV2.Client.exceptions.WAFUnavailableEntityException
WAFV2.Client.exceptions.WAFSubscriptionNotFoundException
WAFV2.Client.exceptions.WAFExpiredManagedRuleGroupVersionException
WAFV2.Client.exceptions.WAFInvalidOperationException