updateAccessEntry method

Future<UpdateAccessEntryResponse> updateAccessEntry({
  1. required String clusterName,
  2. required String principalArn,
  3. String? clientRequestToken,
  4. List<String>? kubernetesGroups,
  5. String? username,
})

Updates an access entry.

May throw InvalidParameterException. May throw InvalidRequestException. May throw ResourceNotFoundException. May throw ServerException.

Parameter clusterName : The name of your cluster.

Parameter principalArn : The ARN of the IAM principal for the AccessEntry.

Parameter clientRequestToken : A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

Parameter kubernetesGroups : The value for name that you've specified for kind: Group as a subject in a Kubernetes RoleBinding or ClusterRoleBinding object. Amazon EKS doesn't confirm that the value for name exists in any bindings on your cluster. You can specify one or more names.

Kubernetes authorizes the principalArn of the access entry to access any cluster objects that you've specified in a Kubernetes Role or ClusterRole object that is also specified in a binding's roleRef. For more information about creating Kubernetes RoleBinding, ClusterRoleBinding, Role, or ClusterRole objects, see Using RBAC Authorization in the Kubernetes documentation.

If you want Amazon EKS to authorize the principalArn (instead of, or in addition to Kubernetes authorizing the principalArn), you can associate one or more access policies to the access entry using AssociateAccessPolicy. If you associate any access policies, the principalARN has all permissions assigned in the associated access policies and all permissions in any Kubernetes Role or ClusterRole objects that the group names are bound to.

Parameter username : The username to authenticate to Kubernetes with. We recommend not specifying a username and letting Amazon EKS specify it for you. For more information about the value Amazon EKS specifies for you, or constraints before specifying your own username, see Creating access entries in the Amazon EKS User Guide.

Implementation

Future<UpdateAccessEntryResponse> updateAccessEntry({
  required String clusterName,
  required String principalArn,
  String? clientRequestToken,
  List<String>? kubernetesGroups,
  String? username,
}) async {
  final $payload = <String, dynamic>{
    'clientRequestToken': clientRequestToken ?? _s.generateIdempotencyToken(),
    if (kubernetesGroups != null) 'kubernetesGroups': kubernetesGroups,
    if (username != null) 'username': username,
  };
  final response = await _protocol.send(
    payload: $payload,
    method: 'POST',
    requestUri:
        '/clusters/${Uri.encodeComponent(clusterName)}/access-entries/${Uri.encodeComponent(principalArn)}',
    exceptionFnMap: _exceptionFns,
  );
  return UpdateAccessEntryResponse.fromJson(response);
}