validatePolicy method

Future<ValidatePolicyResponse> validatePolicy({
  1. required String policyDocument,
  2. required PolicyType policyType,
  3. Locale? locale,
  4. int? maxResults,
  5. String? nextToken,
  6. ValidatePolicyResourceType? validatePolicyResourceType,
})

Requests the validation of a policy and returns a list of findings. The findings help you identify issues and provide actionable recommendations to resolve the issue and enable you to author functional policies that meet security best practices.

May throw AccessDeniedException. May throw InternalServerException. May throw ThrottlingException. May throw ValidationException.

Parameter policyDocument : The JSON policy document to use as the content for the policy.

Parameter policyType : The type of policy to validate. Identity policies grant permissions to IAM principals. Identity policies include managed and inline policies for IAM roles, users, and groups.

Resource policies grant permissions on Amazon Web Services resources. Resource policies include trust policies for IAM roles and bucket policies for Amazon S3 buckets. You can provide a generic input such as identity policy or resource policy or a specific input such as managed policy or Amazon S3 bucket policy.

Service control policies (SCPs) are a type of organization policy attached to an Amazon Web Services organization, organizational unit (OU), or an account.

Parameter locale : The locale to use for localizing the findings.

Parameter maxResults : The maximum number of results to return in the response.

Parameter nextToken : A token used for pagination of results returned.

Parameter validatePolicyResourceType : The type of resource to attach to your resource policy. Specify a value for the policy validation resource type only if the policy type is RESOURCE_POLICY. For example, to validate a resource policy to attach to an Amazon S3 bucket, you can choose AWS::S3::Bucket for the policy validation resource type.

For resource types not supported as valid values, IAM Access Analyzer runs policy checks that apply to all resource policies. For example, to validate a resource policy to attach to a KMS key, do not specify a value for the policy validation resource type and IAM Access Analyzer will run policy checks that apply to all resource policies.

Implementation

Future<ValidatePolicyResponse> validatePolicy({
  required String policyDocument,
  required PolicyType policyType,
  Locale? locale,
  int? maxResults,
  String? nextToken,
  ValidatePolicyResourceType? validatePolicyResourceType,
}) async {
  final $query = <String, List<String>>{
    if (maxResults != null) 'maxResults': [maxResults.toString()],
    if (nextToken != null) 'nextToken': [nextToken],
  };
  final $payload = <String, dynamic>{
    'policyDocument': policyDocument,
    'policyType': policyType.value,
    if (locale != null) 'locale': locale.value,
    if (validatePolicyResourceType != null)
      'validatePolicyResourceType': validatePolicyResourceType.value,
  };
  final response = await _protocol.send(
    payload: $payload,
    method: 'POST',
    requestUri: '/policy/validation',
    queryParams: $query,
    exceptionFnMap: _exceptionFns,
  );
  return ValidatePolicyResponse.fromJson(response);
}