updateCluster method

Future<UpdateClusterOutput> updateCluster({
  1. required String clusterArn,
  2. String? adminUserPassword,
  3. Auth? authType,
  4. int? backupRetentionPeriod,
  5. String? clientToken,
  6. String? preferredBackupWindow,
  7. String? preferredMaintenanceWindow,
  8. int? shardCapacity,
  9. int? shardCount,
  10. int? shardInstanceCount,
  11. List<String>? subnetIds,
  12. List<String>? vpcSecurityGroupIds,
})

Modifies an elastic cluster. This includes updating admin-username/password, upgrading the API version, and setting up a backup window and maintenance window

May throw AccessDeniedException. May throw ConflictException. May throw InternalServerException. May throw ResourceNotFoundException. May throw ThrottlingException. May throw ValidationException.

Parameter clusterArn : The ARN identifier of the elastic cluster.

Parameter adminUserPassword : The password associated with the elastic cluster administrator. This password can contain any printable ASCII character except forward slash (/), double quote ("), or the "at" symbol (@).

Constraints: Must contain from 8 to 100 characters.

Parameter authType : The authentication type used to determine where to fetch the password used for accessing the elastic cluster. Valid types are PLAIN_TEXT or SECRET_ARN.

Parameter backupRetentionPeriod : The number of days for which automatic snapshots are retained.

Parameter clientToken : The client token for the elastic cluster.

Parameter preferredBackupWindow : The daily time range during which automated backups are created if automated backups are enabled, as determined by the backupRetentionPeriod.

Parameter preferredMaintenanceWindow : The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).

Format: ddd:hh24:mi-ddd:hh24:mi

Default: a 30-minute window selected at random from an 8-hour block of time for each Amazon Web Services Region, occurring on a random day of the week.

Valid days: Mon, Tue, Wed, Thu, Fri, Sat, Sun

Constraints: Minimum 30-minute window.

Parameter shardCapacity : The number of vCPUs assigned to each elastic cluster shard. Maximum is 64. Allowed values are 2, 4, 8, 16, 32, 64.

Parameter shardCount : The number of shards assigned to the elastic cluster. Maximum is 32.

Parameter shardInstanceCount : The number of replica instances applying to all shards in the elastic cluster. A shardInstanceCount value of 1 means there is one writer instance, and any additional instances are replicas that can be used for reads and to improve availability.

Parameter subnetIds : The Amazon EC2 subnet IDs for the elastic cluster.

Parameter vpcSecurityGroupIds : A list of EC2 VPC security groups to associate with the elastic cluster.

Implementation

Future<UpdateClusterOutput> updateCluster({
  required String clusterArn,
  String? adminUserPassword,
  Auth? authType,
  int? backupRetentionPeriod,
  String? clientToken,
  String? preferredBackupWindow,
  String? preferredMaintenanceWindow,
  int? shardCapacity,
  int? shardCount,
  int? shardInstanceCount,
  List<String>? subnetIds,
  List<String>? vpcSecurityGroupIds,
}) async {
  final $payload = <String, dynamic>{
    if (adminUserPassword != null) 'adminUserPassword': adminUserPassword,
    if (authType != null) 'authType': authType.value,
    if (backupRetentionPeriod != null)
      'backupRetentionPeriod': backupRetentionPeriod,
    'clientToken': clientToken ?? _s.generateIdempotencyToken(),
    if (preferredBackupWindow != null)
      'preferredBackupWindow': preferredBackupWindow,
    if (preferredMaintenanceWindow != null)
      'preferredMaintenanceWindow': preferredMaintenanceWindow,
    if (shardCapacity != null) 'shardCapacity': shardCapacity,
    if (shardCount != null) 'shardCount': shardCount,
    if (shardInstanceCount != null) 'shardInstanceCount': shardInstanceCount,
    if (subnetIds != null) 'subnetIds': subnetIds,
    if (vpcSecurityGroupIds != null)
      'vpcSecurityGroupIds': vpcSecurityGroupIds,
  };
  final response = await _protocol.send(
    payload: $payload,
    method: 'PUT',
    requestUri: '/cluster/${Uri.encodeComponent(clusterArn)}',
    exceptionFnMap: _exceptionFns,
  );
  return UpdateClusterOutput.fromJson(response);
}