CheckCapacity - AWS WAFV2

CheckCapacity

Note

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

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.

AWS WAF uses WCUs to calculate and control the operating resources that are used to run your rules, rule groups, and web ACLs. AWS 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.

Request Syntax

{ "Rules": [ { "Action": { "Allow": { }, "Block": { }, "Count": { } }, "Name": "string", "OverrideAction": { "Count": { }, "None": { } }, "Priority": number, "Statement": { "AndStatement": { "Statements": [ "Statement" ] }, "ByteMatchStatement": { "FieldToMatch": { "AllQueryArguments": { }, "Body": { }, "Method": { }, "QueryString": { }, "SingleHeader": { "Name": "string" }, "SingleQueryArgument": { "Name": "string" }, "UriPath": { } }, "PositionalConstraint": "string", "SearchString": blob, "TextTransformations": [ { "Priority": number, "Type": "string" } ] }, "GeoMatchStatement": { "CountryCodes": [ "string" ], "ForwardedIPConfig": { "FallbackBehavior": "string", "HeaderName": "string" } }, "IPSetReferenceStatement": { "ARN": "string", "IPSetForwardedIPConfig": { "FallbackBehavior": "string", "HeaderName": "string", "Position": "string" } }, "ManagedRuleGroupStatement": { "ExcludedRules": [ { "Name": "string" } ], "Name": "string", "VendorName": "string" }, "NotStatement": { "Statement": "Statement" }, "OrStatement": { "Statements": [ "Statement" ] }, "RateBasedStatement": { "AggregateKeyType": "string", "ForwardedIPConfig": { "FallbackBehavior": "string", "HeaderName": "string" }, "Limit": number, "ScopeDownStatement": "Statement" }, "RegexPatternSetReferenceStatement": { "ARN": "string", "FieldToMatch": { "AllQueryArguments": { }, "Body": { }, "Method": { }, "QueryString": { }, "SingleHeader": { "Name": "string" }, "SingleQueryArgument": { "Name": "string" }, "UriPath": { } }, "TextTransformations": [ { "Priority": number, "Type": "string" } ] }, "RuleGroupReferenceStatement": { "ARN": "string", "ExcludedRules": [ { "Name": "string" } ] }, "SizeConstraintStatement": { "ComparisonOperator": "string", "FieldToMatch": { "AllQueryArguments": { }, "Body": { }, "Method": { }, "QueryString": { }, "SingleHeader": { "Name": "string" }, "SingleQueryArgument": { "Name": "string" }, "UriPath": { } }, "Size": number, "TextTransformations": [ { "Priority": number, "Type": "string" } ] }, "SqliMatchStatement": { "FieldToMatch": { "AllQueryArguments": { }, "Body": { }, "Method": { }, "QueryString": { }, "SingleHeader": { "Name": "string" }, "SingleQueryArgument": { "Name": "string" }, "UriPath": { } }, "TextTransformations": [ { "Priority": number, "Type": "string" } ] }, "XssMatchStatement": { "FieldToMatch": { "AllQueryArguments": { }, "Body": { }, "Method": { }, "QueryString": { }, "SingleHeader": { "Name": "string" }, "SingleQueryArgument": { "Name": "string" }, "UriPath": { } }, "TextTransformations": [ { "Priority": number, "Type": "string" } ] } }, "VisibilityConfig": { "CloudWatchMetricsEnabled": boolean, "MetricName": "string", "SampledRequestsEnabled": boolean } } ], "Scope": "string" }

Request Parameters

For information about the parameters that are common to all actions, see Common Parameters.

The request accepts the following data in JSON format.

Rules

An array of Rule that you're configuring to use in a rule group or web ACL.

Type: Array of Rule objects

Required: Yes

Scope

Specifies whether this is for an AWS CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB) or an API Gateway stage.

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: String

Valid Values: CLOUDFRONT | REGIONAL

Required: Yes

Response Syntax

{ "Capacity": number }

Response Elements

If the action is successful, the service sends back an HTTP 200 response.

The following data is returned in JSON format by the service.

Capacity

The capacity required by the rules and scope.

Type: Long

Valid Range: Minimum value of 0.

Errors

For information about the errors that are common to all actions, see Common Errors.

WAFInternalErrorException

Your request is valid, but AWS WAF couldn’t perform the operation because of a system problem. Retry your request.

HTTP Status Code: 500

WAFInvalidParameterException

The operation failed because AWS WAF didn't recognize a parameter in the request. For example:

  • You specified an invalid parameter name or value.

  • Your nested statement isn't valid. You might have tried to nest a statement that can’t be nested.

  • You tried to update a WebACL with a DefaultAction that isn't among the types available at DefaultAction.

  • Your request references an ARN that is malformed, or corresponds to a resource with which a Web ACL cannot be associated.

HTTP Status Code: 400

WAFInvalidResourceException

AWS WAF couldn’t perform the operation because the resource that you requested isn’t valid. Check the resource, and try again.

HTTP Status Code: 400

WAFLimitsExceededException

AWS WAF couldn’t perform the operation because you exceeded your resource limit. For example, the maximum number of WebACL objects that you can create for an AWS account. For more information, see Limits in the AWS WAF Developer Guide.

HTTP Status Code: 400

WAFNonexistentItemException

AWS WAF couldn’t perform the operation because your resource doesn’t exist.

HTTP Status Code: 400

WAFSubscriptionNotFoundException

HTTP Status Code: 400

WAFUnavailableEntityException

AWS WAF couldn’t retrieve the resource that you requested. Retry your request.

HTTP Status Code: 400

See Also

For more information about using this API in one of the language-specific AWS SDKs, see the following: