getManagedRuleSet method

Future<GetManagedRuleSetResponse> getManagedRuleSet({
  1. required String id,
  2. required String name,
  3. required Scope scope,
})

Retrieves the specified managed rule set.

Vendors, you can use the managed rule set APIs to provide controlled rollout of your versioned managed rule group offerings for your customers. The APIs are ListManagedRuleSets, GetManagedRuleSet, PutManagedRuleSetVersions, and UpdateManagedRuleSetVersionExpiryDate.

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

Parameter id : A unique identifier for the managed rule set. The ID is returned in the responses to commands like list. You provide it to operations like get and update.

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

This name is assigned to the corresponding managed rule group, which your customers can access and use.

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<GetManagedRuleSetResponse> getManagedRuleSet({
  required String id,
  required String name,
  required Scope scope,
}) async {
  final headers = <String, String>{
    'Content-Type': 'application/x-amz-json-1.1',
    'X-Amz-Target': 'AWSWAF_20190729.GetManagedRuleSet'
  };
  final jsonResponse = await _protocol.send(
    method: 'POST',
    requestUri: '/',
    exceptionFnMap: _exceptionFns,
    // TODO queryParams
    headers: headers,
    payload: {
      'Id': id,
      'Name': name,
      'Scope': scope.value,
    },
  );

  return GetManagedRuleSetResponse.fromJson(jsonResponse.body);
}