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

********************
batch_update_cluster
********************



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

  

  Apply the service update to a list of clusters supplied. For more information on service updates and applying them, see `Applying the service updates <https://docs.aws.amazon.com/MemoryDB/latest/devguide/managing-updates.html#applying-updates>`__.

  

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


  **Request Syntax**
  ::

    response = client.batch_update_cluster(
        ClusterNames=[
            'string',
        ],
        ServiceUpdate={
            'ServiceUpdateNameToApply': 'string'
        }
    )
    
  :type ClusterNames: list
  :param ClusterNames: **[REQUIRED]** 

    The cluster names to apply the updates.

    

  
    - *(string) --* 

    

  :type ServiceUpdate: dict
  :param ServiceUpdate: 

    The unique ID of the service update

    

  
    - **ServiceUpdateNameToApply** *(string) --* 

      The unique ID of the service update

      

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

    
    ::

      {
          'ProcessedClusters': [
              {
                  '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'
              },
          ],
          'UnprocessedClusters': [
              {
                  'ClusterName': 'string',
                  'ErrorType': 'string',
                  'ErrorMessage': 'string'
              },
          ]
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **ProcessedClusters** *(list) --* 

        The list of clusters that have been updated.

        
        

        - *(dict) --* 

          Contains all of the attributes of a specific cluster.

          
          

          - **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.

            
      
    
      

      - **UnprocessedClusters** *(list) --* 

        The list of clusters where updates have not been applied.

        
        

        - *(dict) --* 

          A cluster whose updates have failed

          
          

          - **ClusterName** *(string) --* 

            The name of the cluster

            
          

          - **ErrorType** *(string) --* 

            The error type associated with the update failure

            
          

          - **ErrorMessage** *(string) --* 

            The error message associated with the update failure

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

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

  