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

*****************************
start_source_network_recovery
*****************************



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

  

  Deploy VPC for the specified Source Network and modify launch templates to use this network. The VPC will be deployed using a dedicated CloudFormation stack.

  

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


  **Request Syntax**
  ::

    response = client.start_source_network_recovery(
        deployAsNew=True|False,
        sourceNetworks=[
            {
                'cfnStackName': 'string',
                'sourceNetworkID': 'string'
            },
        ],
        tags={
            'string': 'string'
        }
    )
    
  :type deployAsNew: boolean
  :param deployAsNew: 

    Don't update existing CloudFormation Stack, recover the network using a new stack.

    

  
  :type sourceNetworks: list
  :param sourceNetworks: **[REQUIRED]** 

    The Source Networks that we want to start a Recovery Job for.

    

  
    - *(dict) --* 

      An object representing the Source Network to recover.

      

    
      - **cfnStackName** *(string) --* 

        CloudFormation stack name to be used for recovering the network.

        

      
      - **sourceNetworkID** *(string) --* **[REQUIRED]** 

        The ID of the Source Network you want to recover.

        

      
    

  :type tags: dict
  :param tags: 

    The tags to be associated with the Source Network recovery Job.

    

  
    - *(string) --* 

    
      - *(string) --* 

      


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

    
    ::

      {
          'job': {
              'arn': 'string',
              'creationDateTime': 'string',
              'endDateTime': 'string',
              'initiatedBy': 'START_RECOVERY'|'START_DRILL'|'FAILBACK'|'DIAGNOSTIC'|'TERMINATE_RECOVERY_INSTANCES'|'TARGET_ACCOUNT'|'CREATE_NETWORK_RECOVERY'|'UPDATE_NETWORK_RECOVERY'|'ASSOCIATE_NETWORK_RECOVERY',
              'jobID': 'string',
              'participatingResources': [
                  {
                      'launchStatus': 'PENDING'|'IN_PROGRESS'|'LAUNCHED'|'FAILED'|'TERMINATED',
                      'participatingResourceID': {
                          'sourceNetworkID': 'string'
                      }
                  },
              ],
              'participatingServers': [
                  {
                      'launchActionsStatus': {
                          'runs': [
                              {
                                  'action': {
                                      'actionCode': 'string',
                                      'actionId': 'string',
                                      'actionVersion': 'string',
                                      'active': True|False,
                                      'category': 'MONITORING'|'VALIDATION'|'CONFIGURATION'|'SECURITY'|'OTHER',
                                      'description': 'string',
                                      'name': 'string',
                                      'optional': True|False,
                                      'order': 123,
                                      'parameters': {
                                          'string': {
                                              'type': 'SSM_STORE'|'DYNAMIC',
                                              'value': 'string'
                                          }
                                      },
                                      'type': 'SSM_AUTOMATION'|'SSM_COMMAND'
                                  },
                                  'failureReason': 'string',
                                  'runId': 'string',
                                  'status': 'IN_PROGRESS'|'SUCCEEDED'|'FAILED'
                              },
                          ],
                          'ssmAgentDiscoveryDatetime': 'string'
                      },
                      'launchStatus': 'PENDING'|'IN_PROGRESS'|'LAUNCHED'|'FAILED'|'TERMINATED',
                      'recoveryInstanceID': 'string',
                      'sourceServerID': 'string'
                  },
              ],
              'status': 'PENDING'|'STARTED'|'COMPLETED',
              'tags': {
                  'string': 'string'
              },
              'type': 'LAUNCH'|'TERMINATE'|'CREATE_CONVERTED_SNAPSHOT'
          }
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **job** *(dict) --* 

        The Source Network recovery Job.

        
        

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

          The ARN of a Job.

          
        

        - **creationDateTime** *(string) --* 

          The date and time of when the Job was created.

          
        

        - **endDateTime** *(string) --* 

          The date and time of when the Job ended.

          
        

        - **initiatedBy** *(string) --* 

          A string representing who initiated the Job.

          
        

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

          The ID of the Job.

          
        

        - **participatingResources** *(list) --* 

          A list of resources that the Job is acting upon.

          
          

          - *(dict) --* 

            Represents a resource participating in an asynchronous Job.

            
            

            - **launchStatus** *(string) --* 

              The launch status of a participating resource.

              
            

            - **participatingResourceID** *(dict) --* 

              The ID of a participating resource.

              .. note::    This is a Tagged Union structure. Only one of the     following top level keys will be set: ``sourceNetworkID``.     If a client receives an unknown member it will     set ``SDK_UNKNOWN_MEMBER`` as the top level key,     which maps to the name or tag of the unknown     member. The structure of ``SDK_UNKNOWN_MEMBER`` is     as follows::

                            'SDK_UNKNOWN_MEMBER': {'name': 'UnknownMemberName'}


            
              

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

                Source Network ID.

                
          
        
      
        

        - **participatingServers** *(list) --* 

          A list of servers that the Job is acting upon.

          
          

          - *(dict) --* 

            Represents a server participating in an asynchronous Job.

            
            

            - **launchActionsStatus** *(dict) --* 

              The post-launch action runs of a participating server.

              
              

              - **runs** *(list) --* 

                List of post launch action status.

                
                

                - *(dict) --* 

                  Launch action run.

                  
                  

                  - **action** *(dict) --* 

                    Action.

                    
                    

                    - **actionCode** *(string) --* 

                      Launch action code.

                      
                    

                    - **actionId** *(string) --* 

                      Launch action Id.

                      
                    

                    - **actionVersion** *(string) --* 

                      Launch action version.

                      
                    

                    - **active** *(boolean) --* 

                      Whether the launch action is active.

                      
                    

                    - **category** *(string) --* 

                      Launch action category.

                      
                    

                    - **description** *(string) --* 

                      Launch action description.

                      
                    

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

                      Launch action name.

                      
                    

                    - **optional** *(boolean) --* 

                      Whether the launch will not be marked as failed if this action fails.

                      
                    

                    - **order** *(integer) --* 

                      Launch action order.

                      
                    

                    - **parameters** *(dict) --* 

                      Launch action parameters.

                      
                      

                      - *(string) --* 
                        

                        - *(dict) --* 

                          Launch action parameter.

                          
                          

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

                            Type.

                            
                          

                          - **value** *(string) --* 

                            Value.

                            
                      
                  
                
                    

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

                      Launch action type.

                      
                
                  

                  - **failureReason** *(string) --* 

                    Failure reason.

                    
                  

                  - **runId** *(string) --* 

                    Run Id.

                    
                  

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

                    Run status.

                    
              
            
              

              - **ssmAgentDiscoveryDatetime** *(string) --* 

                Time where the AWS Systems Manager was detected as running on the launched instance.

                
          
            

            - **launchStatus** *(string) --* 

              The launch status of a participating server.

              
            

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

              The Recovery Instance ID of a participating server.

              
            

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

              The Source Server ID of a participating server.

              
        
      
        

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

          The status of the Job.

          
        

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

          A list of tags associated with the Job.

          
          

          - *(string) --* 
            

            - *(string) --* 
      
    
        

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

          The type of the Job.

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

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

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

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

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

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

  