modifyCurrentDBClusterCapacity method

Future<DBClusterCapacityInfo> modifyCurrentDBClusterCapacity({
  1. required String dBClusterIdentifier,
  2. int? capacity,
  3. int? secondsBeforeTimeout,
  4. String? timeoutAction,
})

Set the capacity of an Aurora Serverless v1 DB cluster to a specific value.

Aurora Serverless v1 scales seamlessly based on the workload on the DB cluster. In some cases, the capacity might not scale fast enough to meet a sudden change in workload, such as a large number of new transactions. Call ModifyCurrentDBClusterCapacity to set the capacity explicitly.

After this call sets the DB cluster capacity, Aurora Serverless v1 can automatically scale the DB cluster based on the cooldown period for scaling up and the cooldown period for scaling down.

For more information about Aurora Serverless v1, see Using Amazon Aurora Serverless v1 in the Amazon Aurora User Guide.

May throw DBClusterNotFoundFault. May throw InvalidDBClusterCapacityFault. May throw InvalidDBClusterStateFault.

Parameter dBClusterIdentifier : The DB cluster identifier for the cluster being modified. This parameter isn't case-sensitive.

Constraints:

  • Must match the identifier of an existing DB cluster.

Parameter capacity : The DB cluster capacity.

When you change the capacity of a paused Aurora Serverless v1 DB cluster, it automatically resumes.

Constraints:

  • For Aurora MySQL, valid capacity values are 1, 2, 4, 8, 16, 32, 64, 128, and 256.
  • For Aurora PostgreSQL, valid capacity values are 2, 4, 8, 16, 32, 64, 192, and 384.

Parameter secondsBeforeTimeout : The amount of time, in seconds, that Aurora Serverless v1 tries to find a scaling point to perform seamless scaling before enforcing the timeout action. The default is 300.

Specify a value between 10 and 600 seconds.

Parameter timeoutAction : The action to take when the timeout is reached, either ForceApplyCapacityChange or RollbackCapacityChange.

ForceApplyCapacityChange, the default, sets the capacity to the specified value as soon as possible.

RollbackCapacityChange ignores the capacity change if a scaling point isn't found in the timeout period.

Implementation

Future<DBClusterCapacityInfo> modifyCurrentDBClusterCapacity({
  required String dBClusterIdentifier,
  int? capacity,
  int? secondsBeforeTimeout,
  String? timeoutAction,
}) async {
  final $request = <String, String>{
    'DBClusterIdentifier': dBClusterIdentifier,
    if (capacity != null) 'Capacity': capacity.toString(),
    if (secondsBeforeTimeout != null)
      'SecondsBeforeTimeout': secondsBeforeTimeout.toString(),
    if (timeoutAction != null) 'TimeoutAction': timeoutAction,
  };
  final $result = await _protocol.send(
    $request,
    action: 'ModifyCurrentDBClusterCapacity',
    version: '2014-10-31',
    method: 'POST',
    requestUri: '/',
    exceptionFnMap: _exceptionFns,
    resultWrapper: 'ModifyCurrentDBClusterCapacityResult',
  );
  return DBClusterCapacityInfo.fromXml($result);
}