:doc:`MemoryDB <../../memorydb>` / Client / delete_cluster

**************
delete_cluster
**************



.. py:method:: MemoryDB.Client.delete_cluster(**kwargs)

  

  Deletes a cluster. It also deletes all associated nodes and node endpoints.

   

  .. note::

    

    ``CreateSnapshot`` permission is required to create a final snapshot. Without this permission, the API call will fail with an ``Access Denied`` exception.

    

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/DeleteCluster>`_  


  **Request Syntax**
  ::

    response = client.delete_cluster(
        ClusterName='string',
        MultiRegionClusterName='string',
        FinalSnapshotName='string'
    )
    
  :type ClusterName: string
  :param ClusterName: **[REQUIRED]** 

    The name of the cluster to be deleted

    

  
  :type MultiRegionClusterName: string
  :param MultiRegionClusterName: 

    The name of the multi-Region cluster to be deleted.

    

  
  :type FinalSnapshotName: string
  :param FinalSnapshotName: 

    The user-supplied name of a final cluster snapshot. This is the unique name that identifies the snapshot. MemoryDB creates the snapshot, and then deletes the cluster immediately afterward.

    

  
  
  :rtype: dict
  :returns: 
    
    **Response Syntax**

    
    ::

      {
          'Cluster': {
              'Name': 'string',
              'Description': 'string',
              'Status': 'string',
              'PendingUpdates': {
                  'Resharding': {
                      'SlotMigration': {
                          'ProgressPercentage': 123.0
                      }
                  },
                  'ACLs': {
                      'ACLToApply': 'string'
                  },
                  'ServiceUpdates': [
                      {
                          'ServiceUpdateName': 'string',
                          'Status': 'available'|'in-progress'|'complete'|'scheduled'
                      },
                  ]
              },
              'MultiRegionClusterName': 'string',
              'NumberOfShards': 123,
              'Shards': [
                  {
                      'Name': 'string',
                      'Status': 'string',
                      'Slots': 'string',
                      'Nodes': [
                          {
                              'Name': 'string',
                              'Status': 'string',
                              'AvailabilityZone': 'string',
                              'CreateTime': datetime(2015, 1, 1),
                              'Endpoint': {
                                  'Address': 'string',
                                  'Port': 123
                              }
                          },
                      ],
                      'NumberOfNodes': 123
                  },
              ],
              'AvailabilityMode': 'singleaz'|'multiaz',
              'ClusterEndpoint': {
                  'Address': 'string',
                  'Port': 123
              },
              'NodeType': 'string',
              'Engine': 'string',
              'EngineVersion': 'string',
              'EnginePatchVersion': 'string',
              'ParameterGroupName': 'string',
              'ParameterGroupStatus': 'string',
              'SecurityGroups': [
                  {
                      'SecurityGroupId': 'string',
                      'Status': 'string'
                  },
              ],
              'SubnetGroupName': 'string',
              'TLSEnabled': True|False,
              'KmsKeyId': 'string',
              'ARN': 'string',
              'SnsTopicArn': 'string',
              'SnsTopicStatus': 'string',
              'SnapshotRetentionLimit': 123,
              'MaintenanceWindow': 'string',
              'SnapshotWindow': 'string',
              'ACLName': 'string',
              'AutoMinorVersionUpgrade': True|False,
              'DataTiering': 'true'|'false',
              'NetworkType': 'ipv4'|'ipv6'|'dual_stack',
              'IpDiscovery': 'ipv4'|'ipv6'
          }
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **Cluster** *(dict) --* 

        The cluster object that has been deleted.

        
        

        - **Name** *(string) --* 

          The user-supplied name of the cluster. This identifier is a unique key that identifies a cluster.

          
        

        - **Description** *(string) --* 

          A description of the cluster

          
        

        - **Status** *(string) --* 

          The status of the cluster. For example, Available, Updating, Creating.

          
        

        - **PendingUpdates** *(dict) --* 

          A group of settings that are currently being applied.

          
          

          - **Resharding** *(dict) --* 

            The status of an online resharding operation.

            
            

            - **SlotMigration** *(dict) --* 

              The status of the online resharding slot migration

              
              

              - **ProgressPercentage** *(float) --* 

                The percentage of the slot migration that is complete.

                
          
        
          

          - **ACLs** *(dict) --* 

            A list of ACLs associated with the cluster that are being updated

            
            

            - **ACLToApply** *(string) --* 

              A list of ACLs pending to be applied.

              
        
          

          - **ServiceUpdates** *(list) --* 

            A list of service updates being applied to the cluster

            
            

            - *(dict) --* 

              Update action that has yet to be processed for the corresponding apply/stop request

              
              

              - **ServiceUpdateName** *(string) --* 

                The unique ID of the service update

                
              

              - **Status** *(string) --* 

                The status of the service update

                
          
        
      
        

        - **MultiRegionClusterName** *(string) --* 

          The name of the multi-Region cluster that this cluster belongs to.

          
        

        - **NumberOfShards** *(integer) --* 

          The number of shards in the cluster

          
        

        - **Shards** *(list) --* 

          A list of shards that are members of the cluster.

          
          

          - *(dict) --* 

            Represents a collection of nodes in a cluster. One node in the node group is the read/write primary node. All the other nodes are read-only Replica nodes.

            
            

            - **Name** *(string) --* 

              The name of the shard

              
            

            - **Status** *(string) --* 

              The current state of this replication group - creating, available, modifying, deleting.

              
            

            - **Slots** *(string) --* 

              The keyspace for this shard.

              
            

            - **Nodes** *(list) --* 

              A list containing information about individual nodes within the shard

              
              

              - *(dict) --* 

                Represents an individual node within a cluster. Each node runs its own instance of the cluster's protocol-compliant caching software.

                
                

                - **Name** *(string) --* 

                  The node identifier. A node name is a numeric identifier (0001, 0002, etc.). The combination of cluster name, shard name and node name uniquely identifies every node used in a customer's Amazon account.

                  
                

                - **Status** *(string) --* 

                  The status of the service update on the node

                  
                

                - **AvailabilityZone** *(string) --* 

                  The Availability Zone in which the node resides

                  
                

                - **CreateTime** *(datetime) --* 

                  The date and time when the node was created.

                  
                

                - **Endpoint** *(dict) --* 

                  The hostname for connecting to this node.

                  
                  

                  - **Address** *(string) --* 

                    The DNS hostname of the node.

                    
                  

                  - **Port** *(integer) --* 

                    The port number that the engine is listening on.

                    
              
            
          
            

            - **NumberOfNodes** *(integer) --* 

              The number of nodes in the shard

              
        
      
        

        - **AvailabilityMode** *(string) --* 

          Indicates if the cluster has a Multi-AZ configuration (multiaz) or not (singleaz).

          
        

        - **ClusterEndpoint** *(dict) --* 

          The cluster's configuration endpoint

          
          

          - **Address** *(string) --* 

            The DNS hostname of the node.

            
          

          - **Port** *(integer) --* 

            The port number that the engine is listening on.

            
      
        

        - **NodeType** *(string) --* 

          The cluster's node type

          
        

        - **Engine** *(string) --* 

          The name of the engine used by the cluster.

          
        

        - **EngineVersion** *(string) --* 

          The Redis OSS engine version used by the cluster

          
        

        - **EnginePatchVersion** *(string) --* 

          The Redis OSS engine patch version used by the cluster

          
        

        - **ParameterGroupName** *(string) --* 

          The name of the parameter group used by the cluster

          
        

        - **ParameterGroupStatus** *(string) --* 

          The status of the parameter group used by the cluster, for example 'active' or 'applying'.

          
        

        - **SecurityGroups** *(list) --* 

          A list of security groups used by the cluster

          
          

          - *(dict) --* 

            Represents a single security group and its status.

            
            

            - **SecurityGroupId** *(string) --* 

              The identifier of the security group.

              
            

            - **Status** *(string) --* 

              The status of the security group membership. The status changes whenever a security group is modified, or when the security groups assigned to a cluster are modified.

              
        
      
        

        - **SubnetGroupName** *(string) --* 

          The name of the subnet group used by the cluster

          
        

        - **TLSEnabled** *(boolean) --* 

          A flag to indicate if In-transit encryption is enabled

          
        

        - **KmsKeyId** *(string) --* 

          The ID of the KMS key used to encrypt the cluster

          
        

        - **ARN** *(string) --* 

          The Amazon Resource Name (ARN) of the cluster.

          
        

        - **SnsTopicArn** *(string) --* 

          The Amazon Resource Name (ARN) of the SNS notification topic

          
        

        - **SnsTopicStatus** *(string) --* 

          The SNS topic must be in Active status to receive notifications

          
        

        - **SnapshotRetentionLimit** *(integer) --* 

          The number of days for which MemoryDB retains automatic snapshots before deleting them. For example, if you set SnapshotRetentionLimit to 5, a snapshot that was taken today is retained for 5 days before being deleted.

          
        

        - **MaintenanceWindow** *(string) --* 

          Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period.

          
        

        - **SnapshotWindow** *(string) --* 

          The daily time range (in UTC) during which MemoryDB begins taking a daily snapshot of your shard. Example: 05:00-09:00 If you do not specify this parameter, MemoryDB automatically chooses an appropriate time range.

          
        

        - **ACLName** *(string) --* 

          The name of the Access Control List associated with this cluster.

          
        

        - **AutoMinorVersionUpgrade** *(boolean) --* 

          When set to true, the cluster will automatically receive minor engine version upgrades after launch.

          
        

        - **DataTiering** *(string) --* 

          Enables data tiering. Data tiering is only supported for clusters using the r6gd node type. This parameter must be set when using r6gd nodes. For more information, see `Data tiering <https://docs.aws.amazon.com/memorydb/latest/devguide/data-tiering.html>`__.

          
        

        - **NetworkType** *(string) --* 

          The IP address type for the cluster. Returns 'ipv4' for IPv4 only, 'ipv6' for IPv6 only, or 'dual-stack' if the cluster supports both IPv4 and IPv6 addressing.

          
        

        - **IpDiscovery** *(string) --* 

          The mechanism that the cluster uses to discover IP addresses. Returns 'ipv4' when DNS endpoints resolve to IPv4 addresses, or 'ipv6' when DNS endpoints resolve to IPv6 addresses.

          
    
  
  **Exceptions**
  
  *   :py:class:`MemoryDB.Client.exceptions.ClusterNotFoundFault`

  
  *   :py:class:`MemoryDB.Client.exceptions.InvalidClusterStateFault`

  
  *   :py:class:`MemoryDB.Client.exceptions.SnapshotAlreadyExistsFault`

  
  *   :py:class:`MemoryDB.Client.exceptions.ServiceLinkedRoleNotFoundFault`

  
  *   :py:class:`MemoryDB.Client.exceptions.InvalidParameterValueException`

  
  *   :py:class:`MemoryDB.Client.exceptions.InvalidParameterCombinationException`

  