deleteCluster method

Future<DeleteClusterResult> deleteCluster({
  1. required String clusterIdentifier,
  2. String? finalClusterSnapshotIdentifier,
  3. int? finalClusterSnapshotRetentionPeriod,
  4. bool? skipFinalClusterSnapshot,
})

Deletes a previously provisioned cluster without its final snapshot being created. A successful response from the web service indicates that the request was received correctly. Use DescribeClusters to monitor the status of the deletion. The delete operation cannot be canceled or reverted once submitted. For more information about managing clusters, go to Amazon Redshift Clusters in the Amazon Redshift Cluster Management Guide.

If you want to shut down the cluster and retain it for future use, set SkipFinalClusterSnapshot to false and specify a name for FinalClusterSnapshotIdentifier. You can later restore this snapshot to resume using the cluster. If a final cluster snapshot is requested, the status of the cluster will be "final-snapshot" while the snapshot is being taken, then it's "deleting" once Amazon Redshift begins deleting the cluster.

For more information about managing clusters, go to Amazon Redshift Clusters in the Amazon Redshift Cluster Management Guide.

May throw ClusterNotFoundFault. May throw InvalidClusterStateFault. May throw ClusterSnapshotAlreadyExistsFault. May throw ClusterSnapshotQuotaExceededFault. May throw InvalidRetentionPeriodFault.

Parameter clusterIdentifier : The identifier of the cluster to be deleted.

Constraints:

  • Must contain lowercase characters.
  • Must contain from 1 to 63 alphanumeric characters or hyphens.
  • First character must be a letter.
  • Cannot end with a hyphen or contain two consecutive hyphens.

Parameter finalClusterSnapshotIdentifier : The identifier of the final snapshot that is to be created immediately before deleting the cluster. If this parameter is provided, SkipFinalClusterSnapshot must be false.

Constraints:

  • Must be 1 to 255 alphanumeric characters.
  • First character must be a letter.
  • Cannot end with a hyphen or contain two consecutive hyphens.

Parameter finalClusterSnapshotRetentionPeriod : The number of days that a manual snapshot is retained. If the value is -1, the manual snapshot is retained indefinitely.

The value must be either -1 or an integer between 1 and 3,653.

The default value is -1.

Parameter skipFinalClusterSnapshot : Determines whether a final snapshot of the cluster is created before Amazon Redshift deletes the cluster. If true, a final cluster snapshot is not created. If false, a final cluster snapshot is created before the cluster is deleted. Default: false

Implementation

Future<DeleteClusterResult> deleteCluster({
  required String clusterIdentifier,
  String? finalClusterSnapshotIdentifier,
  int? finalClusterSnapshotRetentionPeriod,
  bool? skipFinalClusterSnapshot,
}) async {
  ArgumentError.checkNotNull(clusterIdentifier, 'clusterIdentifier');
  _s.validateStringLength(
    'clusterIdentifier',
    clusterIdentifier,
    0,
    2147483647,
    isRequired: true,
  );
  _s.validateStringLength(
    'finalClusterSnapshotIdentifier',
    finalClusterSnapshotIdentifier,
    0,
    2147483647,
  );
  final $request = <String, dynamic>{};
  $request['ClusterIdentifier'] = clusterIdentifier;
  finalClusterSnapshotIdentifier
      ?.also((arg) => $request['FinalClusterSnapshotIdentifier'] = arg);
  finalClusterSnapshotRetentionPeriod
      ?.also((arg) => $request['FinalClusterSnapshotRetentionPeriod'] = arg);
  skipFinalClusterSnapshot
      ?.also((arg) => $request['SkipFinalClusterSnapshot'] = arg);
  final $result = await _protocol.send(
    $request,
    action: 'DeleteCluster',
    version: '2012-12-01',
    method: 'POST',
    requestUri: '/',
    exceptionFnMap: _exceptionFns,
    shape: shapes['DeleteClusterMessage'],
    shapes: shapes,
    resultWrapper: 'DeleteClusterResult',
  );
  return DeleteClusterResult.fromXml($result);
}