checkCapacity method
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.
May throw WAFExpiredManagedRuleGroupVersionException.
May throw WAFInternalErrorException.
May throw WAFInvalidOperationException.
May throw WAFInvalidParameterException.
May throw WAFInvalidResourceException.
May throw WAFLimitsExceededException.
May throw WAFNonexistentItemException.
May throw WAFSubscriptionNotFoundException.
May throw WAFUnavailableEntityException.
Parameter rules :
An array of Rule that you're configuring to use in a rule group or
web ACL.
Parameter scope :
Specifies whether this is for a global resource type, such as a Amazon
CloudFront distribution. For an Amplify application, use
CLOUDFRONT.
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.
Implementation
Future<CheckCapacityResponse> checkCapacity({
required List<Rule> rules,
required Scope scope,
}) async {
final headers = <String, String>{
'Content-Type': 'application/x-amz-json-1.1',
'X-Amz-Target': 'AWSWAF_20190729.CheckCapacity'
};
final jsonResponse = await _protocol.send(
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
// TODO queryParams
headers: headers,
payload: {
'Rules': rules,
'Scope': scope.value,
},
);
return CheckCapacityResponse.fromJson(jsonResponse.body);
}