:doc:`DocDBElastic <../../docdb-elastic>` / Client / restore_cluster_from_snapshot

*****************************
restore_cluster_from_snapshot
*****************************



.. py:method:: DocDBElastic.Client.restore_cluster_from_snapshot(**kwargs)

  

  Restores an elastic cluster from a snapshot.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/docdb-elastic-2022-11-28/RestoreClusterFromSnapshot>`_  


  **Request Syntax**
  ::

    response = client.restore_cluster_from_snapshot(
        clusterName='string',
        kmsKeyId='string',
        shardCapacity=123,
        shardInstanceCount=123,
        snapshotArn='string',
        subnetIds=[
            'string',
        ],
        tags={
            'string': 'string'
        },
        vpcSecurityGroupIds=[
            'string',
        ]
    )
    
  :type clusterName: string
  :param clusterName: **[REQUIRED]** 

    The name of the elastic cluster.

    

  
  :type kmsKeyId: string
  :param kmsKeyId: 

    The KMS key identifier to use to encrypt the new Amazon DocumentDB elastic clusters cluster.

     

    The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption key. If you are creating a cluster using the same Amazon account that owns this KMS encryption key, you can use the KMS key alias instead of the ARN as the KMS encryption key.

     

    If an encryption key is not specified here, Amazon DocumentDB uses the default encryption key that KMS creates for your account. Your account has a different default encryption key for each Amazon Region.

    

  
  :type shardCapacity: integer
  :param shardCapacity: 

    The capacity of each shard in the new restored elastic cluster.

    

  
  :type shardInstanceCount: integer
  :param shardInstanceCount: 

    The number of replica instances applying to all shards in the elastic cluster. A ``shardInstanceCount`` value of 1 means there is one writer instance, and any additional instances are replicas that can be used for reads and to improve availability.

    

  
  :type snapshotArn: string
  :param snapshotArn: **[REQUIRED]** 

    The ARN identifier of the elastic cluster snapshot.

    

  
  :type subnetIds: list
  :param subnetIds: 

    The Amazon EC2 subnet IDs for the elastic cluster.

    

  
    - *(string) --* 

    

  :type tags: dict
  :param tags: 

    A list of the tag names to be assigned to the restored elastic cluster, in the form of an array of key-value pairs in which the key is the tag name and the value is the key value.

    

  
    - *(string) --* 

    
      - *(string) --* 

      


  :type vpcSecurityGroupIds: list
  :param vpcSecurityGroupIds: 

    A list of EC2 VPC security groups to associate with the elastic cluster.

    

  
    - *(string) --* 

    

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

    
    ::

      {
          'cluster': {
              'adminUserName': 'string',
              'authType': 'PLAIN_TEXT'|'SECRET_ARN',
              'backupRetentionPeriod': 123,
              'clusterArn': 'string',
              'clusterEndpoint': 'string',
              'clusterName': 'string',
              'createTime': 'string',
              'kmsKeyId': 'string',
              'preferredBackupWindow': 'string',
              'preferredMaintenanceWindow': 'string',
              'shardCapacity': 123,
              'shardCount': 123,
              'shardInstanceCount': 123,
              'shards': [
                  {
                      'createTime': 'string',
                      'shardId': 'string',
                      'status': 'CREATING'|'ACTIVE'|'DELETING'|'UPDATING'|'VPC_ENDPOINT_LIMIT_EXCEEDED'|'IP_ADDRESS_LIMIT_EXCEEDED'|'INVALID_SECURITY_GROUP_ID'|'INVALID_SUBNET_ID'|'INACCESSIBLE_ENCRYPTION_CREDS'|'INACCESSIBLE_SECRET_ARN'|'INACCESSIBLE_VPC_ENDPOINT'|'INCOMPATIBLE_NETWORK'|'MERGING'|'MODIFYING'|'SPLITTING'|'COPYING'|'STARTING'|'STOPPING'|'STOPPED'|'MAINTENANCE'|'INACCESSIBLE_ENCRYPTION_CREDENTIALS_RECOVERABLE'
                  },
              ],
              'status': 'CREATING'|'ACTIVE'|'DELETING'|'UPDATING'|'VPC_ENDPOINT_LIMIT_EXCEEDED'|'IP_ADDRESS_LIMIT_EXCEEDED'|'INVALID_SECURITY_GROUP_ID'|'INVALID_SUBNET_ID'|'INACCESSIBLE_ENCRYPTION_CREDS'|'INACCESSIBLE_SECRET_ARN'|'INACCESSIBLE_VPC_ENDPOINT'|'INCOMPATIBLE_NETWORK'|'MERGING'|'MODIFYING'|'SPLITTING'|'COPYING'|'STARTING'|'STOPPING'|'STOPPED'|'MAINTENANCE'|'INACCESSIBLE_ENCRYPTION_CREDENTIALS_RECOVERABLE',
              'subnetIds': [
                  'string',
              ],
              'vpcSecurityGroupIds': [
                  'string',
              ]
          }
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **cluster** *(dict) --* 

        Returns information about a the restored elastic cluster.

        
        

        - **adminUserName** *(string) --* 

          The name of the elastic cluster administrator.

          
        

        - **authType** *(string) --* 

          The authentication type for the elastic cluster.

          
        

        - **backupRetentionPeriod** *(integer) --* 

          The number of days for which automatic snapshots are retained.

          
        

        - **clusterArn** *(string) --* 

          The ARN identifier of the elastic cluster.

          
        

        - **clusterEndpoint** *(string) --* 

          The URL used to connect to the elastic cluster.

          
        

        - **clusterName** *(string) --* 

          The name of the elastic cluster.

          
        

        - **createTime** *(string) --* 

          The time when the elastic cluster was created in Universal Coordinated Time (UTC).

          
        

        - **kmsKeyId** *(string) --* 

          The KMS key identifier to use to encrypt the elastic cluster.

          
        

        - **preferredBackupWindow** *(string) --* 

          The daily time range during which automated backups are created if automated backups are enabled, as determined by ``backupRetentionPeriod``.

          
        

        - **preferredMaintenanceWindow** *(string) --* 

          The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).

           

          *Format*: ``ddd:hh24:mi-ddd:hh24:mi``

          
        

        - **shardCapacity** *(integer) --* 

          The number of vCPUs assigned to each elastic cluster shard. Maximum is 64. Allowed values are 2, 4, 8, 16, 32, 64.

          
        

        - **shardCount** *(integer) --* 

          The number of shards assigned to the elastic cluster. Maximum is 32.

          
        

        - **shardInstanceCount** *(integer) --* 

          The number of replica instances applying to all shards in the cluster. A ``shardInstanceCount`` value of 1 means there is one writer instance, and any additional instances are replicas that can be used for reads and to improve availability.

          
        

        - **shards** *(list) --* 

          The total number of shards in the cluster.

          
          

          - *(dict) --* 

            The name of the shard.

            
            

            - **createTime** *(string) --* 

              The time when the shard was created in Universal Coordinated Time (UTC).

              
            

            - **shardId** *(string) --* 

              The ID of the shard.

              
            

            - **status** *(string) --* 

              The current status of the shard.

              
        
      
        

        - **status** *(string) --* 

          The status of the elastic cluster.

          
        

        - **subnetIds** *(list) --* 

          The Amazon EC2 subnet IDs for the elastic cluster.

          
          

          - *(string) --* 
      
        

        - **vpcSecurityGroupIds** *(list) --* 

          A list of EC2 VPC security groups associated with thie elastic cluster.

          
          

          - *(string) --* 
      
    
  
  **Exceptions**
  
  *   :py:class:`DocDBElastic.Client.exceptions.ThrottlingException`

  
  *   :py:class:`DocDBElastic.Client.exceptions.ValidationException`

  
  *   :py:class:`DocDBElastic.Client.exceptions.ServiceQuotaExceededException`

  
  *   :py:class:`DocDBElastic.Client.exceptions.ConflictException`

  
  *   :py:class:`DocDBElastic.Client.exceptions.InternalServerException`

  
  *   :py:class:`DocDBElastic.Client.exceptions.ResourceNotFoundException`

  
  *   :py:class:`DocDBElastic.Client.exceptions.AccessDeniedException`

  