setIamPolicy method

Future<Policy> setIamPolicy(
  1. SetIamPolicyRequest request,
  2. String resource, {
  3. String? $fields,
})

Sets the access control policy on a database or backup resource.

Replaces any existing policy. Authorization requires spanner.databases.setIamPolicy permission on resource. For backups, authorization requires spanner.backups.setIamPolicy permission on resource. For backup schedules, authorization requires spanner.backupSchedules.setIamPolicy permission on resource.

request - The metadata request object.

Request parameters:

resource - REQUIRED: The Cloud Spanner resource for which the policy is being set. The format is projects//instances/ for instance resources and projects//instances//databases/ for databases resources. Value must have pattern ^projects/\[^/\]+/instances/\[^/\]+/backups/\[^/\]+$.

$fields - Selector specifying which fields to include in a partial response.

Completes with a Policy.

Completes with a commons.ApiRequestError if the API endpoint returned an error.

If the used http.Client completes with an error when making a REST call, this method will complete with the same error.

Implementation

async.Future<Policy> setIamPolicy(
  SetIamPolicyRequest request,
  core.String resource, {
  core.String? $fields,
}) async {
  final body_ = convert.json.encode(request);
  final queryParams_ = <core.String, core.List<core.String>>{
    if ($fields != null) 'fields': [$fields],
  };

  final url_ = 'v1/' + core.Uri.encodeFull('$resource') + ':setIamPolicy';

  final response_ = await _requester.request(
    url_,
    'POST',
    body: body_,
    queryParams: queryParams_,
  );
  return Policy.fromJson(response_ as core.Map<core.String, core.dynamic>);
}