:doc:`drs <../../drs>` / Client / describe_recovery_instances

***************************
describe_recovery_instances
***************************



.. py:method:: drs.Client.describe_recovery_instances(**kwargs)

  

  Lists all Recovery Instances or multiple Recovery Instances by ID.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/drs-2020-02-26/DescribeRecoveryInstances>`_  


  **Request Syntax**
  ::

    response = client.describe_recovery_instances(
        filters={
            'recoveryInstanceIDs': [
                'string',
            ],
            'sourceServerIDs': [
                'string',
            ]
        },
        maxResults=123,
        nextToken='string'
    )
    
  :type filters: dict
  :param filters: 

    A set of filters by which to return Recovery Instances.

    

  
    - **recoveryInstanceIDs** *(list) --* 

      An array of Recovery Instance IDs that should be returned. An empty array means all Recovery Instances.

      

    
      - *(string) --* 

      
  
    - **sourceServerIDs** *(list) --* 

      An array of Source Server IDs for which associated Recovery Instances should be returned.

      

    
      - *(string) --* 

      
  
  
  :type maxResults: integer
  :param maxResults: 

    Maximum number of Recovery Instances to retrieve.

    

  
  :type nextToken: string
  :param nextToken: 

    The token of the next Recovery Instance to retrieve.

    

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

    
    ::

      {
          'items': [
              {
                  'agentVersion': 'string',
                  'arn': 'string',
                  'dataReplicationInfo': {
                      'dataReplicationError': {
                          'error': 'AGENT_NOT_SEEN'|'FAILBACK_CLIENT_NOT_SEEN'|'NOT_CONVERGING'|'UNSTABLE_NETWORK'|'FAILED_TO_ESTABLISH_RECOVERY_INSTANCE_COMMUNICATION'|'FAILED_TO_DOWNLOAD_REPLICATION_SOFTWARE_TO_FAILBACK_CLIENT'|'FAILED_TO_CONFIGURE_REPLICATION_SOFTWARE'|'FAILED_TO_PAIR_AGENT_WITH_REPLICATION_SOFTWARE'|'FAILED_TO_ESTABLISH_AGENT_REPLICATOR_SOFTWARE_COMMUNICATION'|'FAILED_GETTING_REPLICATION_STATE'|'SNAPSHOTS_FAILURE'|'FAILED_TO_CREATE_SECURITY_GROUP'|'FAILED_TO_LAUNCH_REPLICATION_SERVER'|'FAILED_TO_BOOT_REPLICATION_SERVER'|'FAILED_TO_AUTHENTICATE_WITH_SERVICE'|'FAILED_TO_DOWNLOAD_REPLICATION_SOFTWARE'|'FAILED_TO_CREATE_STAGING_DISKS'|'FAILED_TO_ATTACH_STAGING_DISKS'|'FAILED_TO_PAIR_REPLICATION_SERVER_WITH_AGENT'|'FAILED_TO_CONNECT_AGENT_TO_REPLICATION_SERVER'|'FAILED_TO_START_DATA_TRANSFER',
                          'rawError': 'string'
                      },
                      'dataReplicationInitiation': {
                          'startDateTime': 'string',
                          'steps': [
                              {
                                  'name': 'LINK_FAILBACK_CLIENT_WITH_RECOVERY_INSTANCE'|'COMPLETE_VOLUME_MAPPING'|'ESTABLISH_RECOVERY_INSTANCE_COMMUNICATION'|'DOWNLOAD_REPLICATION_SOFTWARE_TO_FAILBACK_CLIENT'|'CONFIGURE_REPLICATION_SOFTWARE'|'PAIR_AGENT_WITH_REPLICATION_SOFTWARE'|'ESTABLISH_AGENT_REPLICATOR_SOFTWARE_COMMUNICATION'|'WAIT'|'CREATE_SECURITY_GROUP'|'LAUNCH_REPLICATION_SERVER'|'BOOT_REPLICATION_SERVER'|'AUTHENTICATE_WITH_SERVICE'|'DOWNLOAD_REPLICATION_SOFTWARE'|'CREATE_STAGING_DISKS'|'ATTACH_STAGING_DISKS'|'PAIR_REPLICATION_SERVER_WITH_AGENT'|'CONNECT_AGENT_TO_REPLICATION_SERVER'|'START_DATA_TRANSFER',
                                  'status': 'NOT_STARTED'|'IN_PROGRESS'|'SUCCEEDED'|'FAILED'|'SKIPPED'
                              },
                          ]
                      },
                      'dataReplicationState': 'STOPPED'|'INITIATING'|'INITIAL_SYNC'|'BACKLOG'|'CREATING_SNAPSHOT'|'CONTINUOUS'|'PAUSED'|'RESCAN'|'STALLED'|'DISCONNECTED'|'REPLICATION_STATE_NOT_AVAILABLE'|'NOT_STARTED',
                      'etaDateTime': 'string',
                      'lagDuration': 'string',
                      'replicatedDisks': [
                          {
                              'backloggedStorageBytes': 123,
                              'deviceName': 'string',
                              'replicatedStorageBytes': 123,
                              'rescannedStorageBytes': 123,
                              'totalStorageBytes': 123
                          },
                      ],
                      'stagingAvailabilityZone': 'string',
                      'stagingOutpostArn': 'string'
                  },
                  'ec2InstanceID': 'string',
                  'ec2InstanceState': 'PENDING'|'RUNNING'|'STOPPING'|'STOPPED'|'SHUTTING-DOWN'|'TERMINATED'|'NOT_FOUND',
                  'failback': {
                      'agentLastSeenByServiceDateTime': 'string',
                      'elapsedReplicationDuration': 'string',
                      'failbackClientID': 'string',
                      'failbackClientLastSeenByServiceDateTime': 'string',
                      'failbackInitiationTime': 'string',
                      'failbackJobID': 'string',
                      'failbackLaunchType': 'RECOVERY'|'DRILL',
                      'failbackToOriginalServer': True|False,
                      'firstByteDateTime': 'string',
                      'state': 'FAILBACK_NOT_STARTED'|'FAILBACK_IN_PROGRESS'|'FAILBACK_READY_FOR_LAUNCH'|'FAILBACK_COMPLETED'|'FAILBACK_ERROR'|'FAILBACK_NOT_READY_FOR_LAUNCH'|'FAILBACK_LAUNCH_STATE_NOT_AVAILABLE'
                  },
                  'isDrill': True|False,
                  'jobID': 'string',
                  'originAvailabilityZone': 'string',
                  'originEnvironment': 'ON_PREMISES'|'AWS',
                  'pointInTimeSnapshotDateTime': 'string',
                  'recoveryInstanceID': 'string',
                  'recoveryInstanceProperties': {
                      'cpus': [
                          {
                              'cores': 123,
                              'modelName': 'string'
                          },
                      ],
                      'disks': [
                          {
                              'bytes': 123,
                              'ebsVolumeID': 'string',
                              'internalDeviceName': 'string'
                          },
                      ],
                      'identificationHints': {
                          'awsInstanceID': 'string',
                          'fqdn': 'string',
                          'hostname': 'string',
                          'vmWareUuid': 'string'
                      },
                      'lastUpdatedDateTime': 'string',
                      'networkInterfaces': [
                          {
                              'ips': [
                                  'string',
                              ],
                              'isPrimary': True|False,
                              'macAddress': 'string'
                          },
                      ],
                      'os': {
                          'fullString': 'string'
                      },
                      'ramBytes': 123
                  },
                  'sourceOutpostArn': 'string',
                  'sourceServerID': 'string',
                  'tags': {
                      'string': 'string'
                  }
              },
          ],
          'nextToken': 'string'
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **items** *(list) --* 

        An array of Recovery Instances.

        
        

        - *(dict) --* 

          A Recovery Instance is a replica of a Source Server running on EC2.

          
          

          - **agentVersion** *(string) --* 

            The version of the DRS agent installed on the recovery instance

            
          

          - **arn** *(string) --* 

            The ARN of the Recovery Instance.

            
          

          - **dataReplicationInfo** *(dict) --* 

            The Data Replication Info of the Recovery Instance.

            
            

            - **dataReplicationError** *(dict) --* 

              Information about Data Replication

              
              

              - **error** *(string) --* 

                Error in data replication.

                
              

              - **rawError** *(string) --* 

                Error in data replication.

                
          
            

            - **dataReplicationInitiation** *(dict) --* 

              Information about whether the data replication has been initiated.

              
              

              - **startDateTime** *(string) --* 

                The date and time of the current attempt to initiate data replication.

                
              

              - **steps** *(list) --* 

                The steps of the current attempt to initiate data replication.

                
                

                - *(dict) --* 

                  Data replication initiation step.

                  
                  

                  - **name** *(string) --* 

                    The name of the step.

                    
                  

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

                    The status of the step.

                    
              
            
          
            

            - **dataReplicationState** *(string) --* 

              The state of the data replication.

              
            

            - **etaDateTime** *(string) --* 

              An estimate of when the data replication will be completed.

              
            

            - **lagDuration** *(string) --* 

              Data replication lag duration.

              
            

            - **replicatedDisks** *(list) --* 

              The disks that should be replicated.

              
              

              - *(dict) --* 

                A disk that should be replicated.

                
                

                - **backloggedStorageBytes** *(integer) --* 

                  The size of the replication backlog in bytes.

                  
                

                - **deviceName** *(string) --* 

                  The name of the device.

                  
                

                - **replicatedStorageBytes** *(integer) --* 

                  The amount of data replicated so far in bytes.

                  
                

                - **rescannedStorageBytes** *(integer) --* 

                  The amount of data to be rescanned in bytes.

                  
                

                - **totalStorageBytes** *(integer) --* 

                  The total amount of data to be replicated in bytes.

                  
            
          
            

            - **stagingAvailabilityZone** *(string) --* 

              AWS Availability zone into which data is being replicated.

              
            

            - **stagingOutpostArn** *(string) --* 

              The ARN of the staging Outpost

              
        
          

          - **ec2InstanceID** *(string) --* 

            The EC2 instance ID of the Recovery Instance.

            
          

          - **ec2InstanceState** *(string) --* 

            The state of the EC2 instance for this Recovery Instance.

            
          

          - **failback** *(dict) --* 

            An object representing failback related information of the Recovery Instance.

            
            

            - **agentLastSeenByServiceDateTime** *(string) --* 

              The date and time the agent on the Recovery Instance was last seen by the service.

              
            

            - **elapsedReplicationDuration** *(string) --* 

              The amount of time that the Recovery Instance has been replicating for.

              
            

            - **failbackClientID** *(string) --* 

              The ID of the failback client that this Recovery Instance is associated with.

              
            

            - **failbackClientLastSeenByServiceDateTime** *(string) --* 

              The date and time that the failback client was last seen by the service.

              
            

            - **failbackInitiationTime** *(string) --* 

              The date and time that the failback initiation started.

              
            

            - **failbackJobID** *(string) --* 

              The Job ID of the last failback log for this Recovery Instance.

              
            

            - **failbackLaunchType** *(string) --* 

              The launch type (Recovery / Drill) of the last launch for the failback replication of this recovery instance.

              
            

            - **failbackToOriginalServer** *(boolean) --* 

              Whether we are failing back to the original Source Server for this Recovery Instance.

              
            

            - **firstByteDateTime** *(string) --* 

              The date and time of the first byte that was replicated from the Recovery Instance.

              
            

            - **state** *(string) --* 

              The state of the failback process that this Recovery Instance is in.

              
        
          

          - **isDrill** *(boolean) --* 

            Whether this Recovery Instance was created for a drill or for an actual Recovery event.

            
          

          - **jobID** *(string) --* 

            The ID of the Job that created the Recovery Instance.

            
          

          - **originAvailabilityZone** *(string) --* 

            AWS availability zone associated with the recovery instance.

            
          

          - **originEnvironment** *(string) --* 

            Environment (On Premises / AWS) of the instance that the recovery instance originated from.

            
          

          - **pointInTimeSnapshotDateTime** *(string) --* 

            The date and time of the Point in Time (PIT) snapshot that this Recovery Instance was launched from.

            
          

          - **recoveryInstanceID** *(string) --* 

            The ID of the Recovery Instance.

            
          

          - **recoveryInstanceProperties** *(dict) --* 

            Properties of the Recovery Instance machine.

            
            

            - **cpus** *(list) --* 

              An array of CPUs.

              
              

              - *(dict) --* 

                Information about a server's CPU.

                
                

                - **cores** *(integer) --* 

                  The number of CPU cores.

                  
                

                - **modelName** *(string) --* 

                  The model name of the CPU.

                  
            
          
            

            - **disks** *(list) --* 

              An array of disks.

              
              

              - *(dict) --* 

                An object representing a block storage device on the Recovery Instance.

                
                

                - **bytes** *(integer) --* 

                  The amount of storage on the disk in bytes.

                  
                

                - **ebsVolumeID** *(string) --* 

                  The EBS Volume ID of this disk.

                  
                

                - **internalDeviceName** *(string) --* 

                  The internal device name of this disk. This is the name that is visible on the machine itself and not from the EC2 console.

                  
            
          
            

            - **identificationHints** *(dict) --* 

              Hints used to uniquely identify a machine.

              
              

              - **awsInstanceID** *(string) --* 

                AWS Instance ID identification hint.

                
              

              - **fqdn** *(string) --* 

                Fully Qualified Domain Name identification hint.

                
              

              - **hostname** *(string) --* 

                Hostname identification hint.

                
              

              - **vmWareUuid** *(string) --* 

                vCenter VM path identification hint.

                
          
            

            - **lastUpdatedDateTime** *(string) --* 

              The date and time the Recovery Instance properties were last updated on.

              
            

            - **networkInterfaces** *(list) --* 

              An array of network interfaces.

              
              

              - *(dict) --* 

                Network interface.

                
                

                - **ips** *(list) --* 

                  Network interface IPs.

                  
                  

                  - *(string) --* 
              
                

                - **isPrimary** *(boolean) --* 

                  Whether this is the primary network interface.

                  
                

                - **macAddress** *(string) --* 

                  The MAC address of the network interface.

                  
            
          
            

            - **os** *(dict) --* 

              Operating system.

              
              

              - **fullString** *(string) --* 

                The long name of the Operating System.

                
          
            

            - **ramBytes** *(integer) --* 

              The amount of RAM in bytes.

              
        
          

          - **sourceOutpostArn** *(string) --* 

            The ARN of the source Outpost

            
          

          - **sourceServerID** *(string) --* 

            The Source Server ID that this Recovery Instance is associated with.

            
          

          - **tags** *(dict) --* 

            An array of tags that are associated with the Recovery Instance.

            
            

            - *(string) --* 
              

              - *(string) --* 
        
      
      
    
      

      - **nextToken** *(string) --* 

        The token of the next Recovery Instance to retrieve.

        
  
  **Exceptions**
  
  *   :py:class:`drs.Client.exceptions.InternalServerException`

  
  *   :py:class:`drs.Client.exceptions.ThrottlingException`

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

  
  *   :py:class:`drs.Client.exceptions.UninitializedAccountException`

  