deleteReplicationGroup method

Future<DeleteReplicationGroupResult> deleteReplicationGroup({
  1. required String replicationGroupId,
  2. String? finalSnapshotIdentifier,
  3. bool? retainPrimaryCluster,
})

Deletes an existing replication group. By default, this operation deletes the entire replication group, including the primary/primaries and all of the read replicas. If the replication group has only one primary, you can optionally delete only the read replicas, while retaining the primary by setting RetainPrimaryCluster=true.

When you receive a successful response from this operation, Amazon ElastiCache immediately begins deleting the selected resources; you cannot cancel or revert this operation.

  • CreateSnapshot permission is required to create a final snapshot. Without this permission, the API call will fail with an Access Denied exception.
  • This operation is valid for Redis OSS only.

May throw InvalidParameterCombinationException. May throw InvalidParameterValueException. May throw InvalidReplicationGroupStateFault. May throw ReplicationGroupNotFoundFault. May throw SnapshotAlreadyExistsFault. May throw SnapshotFeatureNotSupportedFault. May throw SnapshotQuotaExceededFault.

Parameter replicationGroupId : The identifier for the cluster to be deleted. This parameter is not case sensitive.

Parameter finalSnapshotIdentifier : The name of a final node group (shard) snapshot. ElastiCache creates the snapshot from the primary node in the cluster, rather than one of the replicas; this is to ensure that it captures the freshest data. After the final snapshot is taken, the replication group is immediately deleted.

Parameter retainPrimaryCluster : If set to true, all of the read replicas are deleted, but the primary node is retained.

Implementation

Future<DeleteReplicationGroupResult> deleteReplicationGroup({
  required String replicationGroupId,
  String? finalSnapshotIdentifier,
  bool? retainPrimaryCluster,
}) async {
  final $request = <String, String>{
    'ReplicationGroupId': replicationGroupId,
    if (finalSnapshotIdentifier != null)
      'FinalSnapshotIdentifier': finalSnapshotIdentifier,
    if (retainPrimaryCluster != null)
      'RetainPrimaryCluster': retainPrimaryCluster.toString(),
  };
  final $result = await _protocol.send(
    $request,
    action: 'DeleteReplicationGroup',
    version: '2015-02-02',
    method: 'POST',
    requestUri: '/',
    exceptionFnMap: _exceptionFns,
    resultWrapper: 'DeleteReplicationGroupResult',
  );
  return DeleteReplicationGroupResult.fromXml($result);
}