listAvailableManagedRuleGroupVersions method

Future<ListAvailableManagedRuleGroupVersionsResponse> listAvailableManagedRuleGroupVersions({
  1. required String name,
  2. required Scope scope,
  3. required String vendorName,
  4. int? limit,
  5. String? nextMarker,
})

Returns a list of the available versions for the specified managed rule group.

May throw WAFInternalErrorException. May throw WAFInvalidOperationException. May throw WAFInvalidParameterException. May throw WAFNonexistentItemException.

Parameter name : The name of the managed rule group. You use this, along with the vendor name, to identify the rule group.

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.

Parameter vendorName : The name of the managed rule group vendor. You use this, along with the rule group name, to identify a rule group.

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

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

Implementation

Future<ListAvailableManagedRuleGroupVersionsResponse>
    listAvailableManagedRuleGroupVersions({
  required String name,
  required Scope scope,
  required String vendorName,
  int? limit,
  String? nextMarker,
}) async {
  _s.validateNumRange(
    'limit',
    limit,
    1,
    100,
  );
  final headers = <String, String>{
    'Content-Type': 'application/x-amz-json-1.1',
    'X-Amz-Target': 'AWSWAF_20190729.ListAvailableManagedRuleGroupVersions'
  };
  final jsonResponse = await _protocol.send(
    method: 'POST',
    requestUri: '/',
    exceptionFnMap: _exceptionFns,
    // TODO queryParams
    headers: headers,
    payload: {
      'Name': name,
      'Scope': scope.value,
      'VendorName': vendorName,
      if (limit != null) 'Limit': limit,
      if (nextMarker != null) 'NextMarker': nextMarker,
    },
  );

  return ListAvailableManagedRuleGroupVersionsResponse.fromJson(
      jsonResponse.body);
}