grantResourcePolicy method
Implementation
Future<void> grantResourcePolicy({
required String projectId,
required String resourceType,
required String resourceId,
required AccessSubject subject,
required List<String> roles,
Uri? inviteRedirectUrl,
}) async {
_validateResourcePolicyType(resourceType);
final encodedProjectId = Uri.encodeComponent(projectId);
final encodedResourceType = Uri.encodeComponent(resourceType);
final encodedResourceId = Uri.encodeComponent(resourceId);
final uri = Uri.parse('$baseUrl/accounts/projects/$encodedProjectId/iam/$encodedResourceType/$encodedResourceId/policy:grant');
final body = {'subject': subject.toJson(), 'roles': roles, 'invite_redirect_url': ?inviteRedirectUrl?.toString()};
final response = await httpClient.post(uri, body: jsonEncode(body));
if (response.statusCode >= 400) {
throw MeshagentException(
'Failed to grant resource policy. '
'Status code: ${response.statusCode}, body: ${response.body}',
);
}
}