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

*****************
start_replication
*****************



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

  

  Starts replication for a stopped Source Server. This action would make the Source Server protected again and restart billing for it.

  

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


  **Request Syntax**
  ::

    response = client.start_replication(
        sourceServerID='string'
    )
    
  :type sourceServerID: string
  :param sourceServerID: **[REQUIRED]** 

    The ID of the Source Server to start replication for.

    

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

    
    ::

      {
          'sourceServer': {
              'agentVersion': 'string',
              'arn': 'string',
              'dataReplicationInfo': {
                  'dataReplicationError': {
                      'error': 'AGENT_NOT_SEEN'|'SNAPSHOTS_FAILURE'|'NOT_CONVERGING'|'UNSTABLE_NETWORK'|'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': {
                      'nextAttemptDateTime': 'string',
                      'startDateTime': 'string',
                      'steps': [
                          {
                              'name': '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',
                  'etaDateTime': 'string',
                  'lagDuration': 'string',
                  'replicatedDisks': [
                      {
                          'backloggedStorageBytes': 123,
                          'deviceName': 'string',
                          'replicatedStorageBytes': 123,
                          'rescannedStorageBytes': 123,
                          'totalStorageBytes': 123,
                          'volumeStatus': 'REGULAR'|'CONTAINS_MARKETPLACE_PRODUCT_CODES'|'MISSING_VOLUME_ATTRIBUTES'|'MISSING_VOLUME_ATTRIBUTES_AND_PRECHECK_UNAVAILABLE'|'PENDING'
                      },
                  ],
                  'stagingAvailabilityZone': 'string',
                  'stagingOutpostArn': 'string'
              },
              'lastLaunchResult': 'NOT_STARTED'|'PENDING'|'SUCCEEDED'|'FAILED',
              'lifeCycle': {
                  'addedToServiceDateTime': 'string',
                  'elapsedReplicationDuration': 'string',
                  'firstByteDateTime': 'string',
                  'lastLaunch': {
                      'initiated': {
                          'apiCallDateTime': 'string',
                          'jobID': 'string',
                          'type': 'RECOVERY'|'DRILL'
                      },
                      'status': 'PENDING'|'IN_PROGRESS'|'LAUNCHED'|'FAILED'|'TERMINATED'
                  },
                  'lastSeenByServiceDateTime': 'string'
              },
              'recoveryInstanceId': 'string',
              'replicationDirection': 'FAILOVER'|'FAILBACK',
              'reversedDirectionSourceServerArn': 'string',
              'sourceCloudProperties': {
                  'originAccountID': 'string',
                  'originAvailabilityZone': 'string',
                  'originRegion': 'string',
                  'sourceOutpostArn': 'string'
              },
              'sourceNetworkID': 'string',
              'sourceProperties': {
                  'cpus': [
                      {
                          'cores': 123,
                          'modelName': 'string'
                      },
                  ],
                  'disks': [
                      {
                          'bytes': 123,
                          'deviceName': '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,
                  'recommendedInstanceType': 'string',
                  'supportsNitroInstances': True|False
              },
              'sourceServerID': 'string',
              'stagingArea': {
                  'errorMessage': 'string',
                  'stagingAccountID': 'string',
                  'stagingSourceServerArn': 'string',
                  'status': 'EXTENDED'|'EXTENSION_ERROR'|'NOT_EXTENDED'
              },
              'tags': {
                  'string': 'string'
              }
          }
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **sourceServer** *(dict) --* 

        The Source Server that this action was targeted on.

        
        

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

          The version of the DRS agent installed on the source server

          
        

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

          The ARN of the Source Server.

          
        

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

          The Data Replication Info of the Source Server.

          
          

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

            Error in 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.

            
            

            - **nextAttemptDateTime** *(string) --* 

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

              
            

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

                
              

              - **volumeStatus** *(string) --* 

                The status of the volume.

                
          
        
          

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

            AWS Availability zone into which data is being replicated.

            
          

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

            The ARN of the staging Outpost

            
      
        

        - **lastLaunchResult** *(string) --* 

          The status of the last recovery launch of this Source Server.

          
        

        - **lifeCycle** *(dict) --* 

          The lifecycle information of this Source Server.

          
          

          - **addedToServiceDateTime** *(string) --* 

            The date and time of when the Source Server was added to the service.

            
          

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

            The amount of time that the Source Server has been replicating for.

            
          

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

            The date and time of the first byte that was replicated from the Source Server.

            
          

          - **lastLaunch** *(dict) --* 

            An object containing information regarding the last launch of the Source Server.

            
            

            - **initiated** *(dict) --* 

              An object containing information regarding the initiation of the last launch of a Source Server.

              
              

              - **apiCallDateTime** *(string) --* 

                The date and time the last Source Server launch was initiated.

                
              

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

                The ID of the Job that was used to last launch the Source Server.

                
              

              - **type** *(string) --* 

                The Job type that was used to last launch the Source Server.

                
          
            

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

              Status of Source Server's last launch.

              
        
          

          - **lastSeenByServiceDateTime** *(string) --* 

            The date and time this Source Server was last seen by the service.

            
      
        

        - **recoveryInstanceId** *(string) --* 

          The ID of the Recovery Instance associated with this Source Server.

          
        

        - **replicationDirection** *(string) --* 

          Replication direction of the Source Server.

          
        

        - **reversedDirectionSourceServerArn** *(string) --* 

          For EC2-originated Source Servers which have been failed over and then failed back, this value will mean the ARN of the Source Server on the opposite replication direction.

          
        

        - **sourceCloudProperties** *(dict) --* 

          Source cloud properties of the Source Server.

          
          

          - **originAccountID** *(string) --* 

            AWS Account ID for an EC2-originated Source Server.

            
          

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

            AWS Availability Zone for an EC2-originated Source Server.

            
          

          - **originRegion** *(string) --* 

            AWS Region for an EC2-originated Source Server.

            
          

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

            The ARN of the source Outpost

            
      
        

        - **sourceNetworkID** *(string) --* 

          ID of the Source Network which is protecting this Source Server's network.

          
        

        - **sourceProperties** *(dict) --* 

          The source properties of the Source Server.

          
          

          - **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 data storage device on a server.

              
              

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

                The amount of storage on the disk in bytes.

                
              

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

                The disk or device name.

                
          
        
          

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

            
          

          - **recommendedInstanceType** *(string) --* 

            The recommended EC2 instance type that will be used when recovering the Source Server.

            
          

          - **supportsNitroInstances** *(boolean) --* 

            Are EC2 nitro instance types supported when recovering the Source Server.

            
      
        

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

          The ID of the Source Server.

          
        

        - **stagingArea** *(dict) --* 

          The staging area of the source server.

          
          

          - **errorMessage** *(string) --* 

            Shows an error message that occurred when DRS tried to access the staging source server. In this case StagingArea$status will have value EXTENSION_ERROR

            
          

          - **stagingAccountID** *(string) --* 

            Account ID of the account to which source server belongs. If this source server is extended - shows Account ID of staging source server.

            
          

          - **stagingSourceServerArn** *(string) --* 

            Arn of the staging source server if this source server is extended

            
          

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

            Status of Source server extension. Possible values: (a) NOT_EXTENDED - This is a source server that is replicating in the current account. (b) EXTENDED - Source server is extended from a staging source server. In this case, the value of stagingSourceServerArn is pointing to the Arn of the source server in the staging account. (c) EXTENSION_ERROR - Some issue occurred when accessing staging source server. In this case, errorMessage field will contain an error message that explains what happened.

            
      
        

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

          The tags associated with the Source Server.

          
          

          - *(string) --* 
            

            - *(string) --* 
      
    
    
  
  **Exceptions**
  
  *   :py:class:`drs.Client.exceptions.ResourceNotFoundException`

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

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

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

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

  