putPermission method
- required ActionGroup actionGroup,
- required List<
String> principals, - required String profilingGroupName,
- String? revisionId,
Adds permissions to a profiling group's resource-based policy that are
provided using an action group. If a profiling group doesn't have a
resource-based policy, one is created for it using the permissions in the
action group and the roles and users in the principals
parameter.
<p> The one supported action group that can be added is
<code>agentPermission</code> which grants
<code>ConfigureAgent</code> and
<code>PostAgent</code> permissions. For more information, see
<a
href="https://docs.aws.amazon.com/codeguru/latest/profiler-ug/resource-based-policies.html">Resource-based
policies in CodeGuru Profiler</a> in the <i>Amazon CodeGuru
Profiler User Guide</i>, <a
href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ConfigureAgent.html">
<code>ConfigureAgent</code> </a>, and <a
href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_PostAgentProfile.html">
<code>PostAgentProfile</code> </a>. </p> <p>
The first time you call <code>PutPermission</code> on a
profiling group, do not specify a <code>revisionId</code>
because it doesn't have a resource-based policy. Subsequent calls must
provide a <code>revisionId</code> to specify which revision of
the resource-based policy to add the permissions to. </p> <p>
The response contains the profiling group's JSON-formatted resource
policy. </p>
May throw InternalServerException. May throw ConflictException. May throw ValidationException. May throw ThrottlingException. May throw ResourceNotFoundException.
Parameter actionGroup
:
Specifies an action group that contains permissions to add to a profiling
group resource. One action group is supported,
agentPermissions
, which grants permission to perform actions
required by the profiling agent, ConfigureAgent
and
PostAgentProfile
permissions.
Parameter principals
:
A list ARNs for the roles and users you want to grant access to the
profiling group. Wildcards are not are supported in the ARNs.
Parameter profilingGroupName
:
The name of the profiling group to grant access to.
Parameter revisionId
:
A universally unique identifier (UUID) for the revision of the policy you
are adding to the profiling group. Do not specify this when you add
permissions to a profiling group for the first time. If a policy already
exists on the profiling group, you must specify the
revisionId
.
Implementation
Future<PutPermissionResponse> putPermission({
required ActionGroup actionGroup,
required List<String> principals,
required String profilingGroupName,
String? revisionId,
}) async {
ArgumentError.checkNotNull(actionGroup, 'actionGroup');
ArgumentError.checkNotNull(principals, 'principals');
ArgumentError.checkNotNull(profilingGroupName, 'profilingGroupName');
_s.validateStringLength(
'profilingGroupName',
profilingGroupName,
1,
255,
isRequired: true,
);
final $payload = <String, dynamic>{
'principals': principals,
if (revisionId != null) 'revisionId': revisionId,
};
final response = await _protocol.send(
payload: $payload,
method: 'PUT',
requestUri:
'/profilingGroups/${Uri.encodeComponent(profilingGroupName)}/policy/${Uri.encodeComponent(actionGroup.toValue())}',
exceptionFnMap: _exceptionFns,
);
return PutPermissionResponse.fromJson(response);
}