:doc:`ResilienceHub <../../resiliencehub>` / Client / add_draft_app_version_resource_mappings

***************************************
add_draft_app_version_resource_mappings
***************************************



.. py:method:: ResilienceHub.Client.add_draft_app_version_resource_mappings(**kwargs)

  

  Adds the source of resource-maps to the draft version of an application. During assessment, Resilience Hub will use these resource-maps to resolve the latest physical ID for each resource in the application template. For more information about different types of resources supported by Resilience Hub and how to add them in your application, see `Step 2\: How is your application managed? <https://docs.aws.amazon.com/resilience-hub/latest/userguide/how-app-manage.html>`__ in the Resilience Hub User Guide.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/resiliencehub-2020-04-30/AddDraftAppVersionResourceMappings>`_  


  **Request Syntax**
  ::

    response = client.add_draft_app_version_resource_mappings(
        appArn='string',
        resourceMappings=[
            {
                'appRegistryAppName': 'string',
                'eksSourceName': 'string',
                'logicalStackName': 'string',
                'mappingType': 'CfnStack'|'Resource'|'AppRegistryApp'|'ResourceGroup'|'Terraform'|'EKS',
                'physicalResourceId': {
                    'awsAccountId': 'string',
                    'awsRegion': 'string',
                    'identifier': 'string',
                    'type': 'Arn'|'Native'
                },
                'resourceGroupName': 'string',
                'resourceName': 'string',
                'terraformSourceName': 'string'
            },
        ]
    )
    
  :type appArn: string
  :param appArn: **[REQUIRED]** 

    Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn: ``partition``:resiliencehub: ``region``: ``account``:app/ ``app-id``. For more information about ARNs, see `Amazon Resource Names (ARNs) <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html>`__ in the *Amazon Web Services General Reference* guide.

    

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

    Mappings used to map logical resources from the template to physical resources. You can use the mapping type ``CFN_STACK`` if the application template uses a logical stack name. Or you can map individual resources by using the mapping type ``RESOURCE``. We recommend using the mapping type ``CFN_STACK`` if the application is backed by a CloudFormation stack.

    

  
    - *(dict) --* 

      Defines a resource mapping.

      

    
      - **appRegistryAppName** *(string) --* 

        Name of the application this resource is mapped to when the ``mappingType`` is ``AppRegistryApp``.

        

      
      - **eksSourceName** *(string) --* 

        Name of the Amazon Elastic Kubernetes Service cluster and namespace that this resource is mapped to when the ``mappingType`` is ``EKS``.

         

        .. note::

          

          This parameter accepts values in "eks-cluster/namespace" format.

          

        

      
      - **logicalStackName** *(string) --* 

        Name of the CloudFormation stack this resource is mapped to when the ``mappingType`` is ``CfnStack``.

        

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

        Specifies the type of resource mapping.

        

      
      - **physicalResourceId** *(dict) --* **[REQUIRED]** 

        Identifier of the physical resource.

        

      
        - **awsAccountId** *(string) --* 

          The Amazon Web Services account that owns the physical resource.

          

        
        - **awsRegion** *(string) --* 

          The Amazon Web Services Region that the physical resource is located in.

          

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

          Identifier of the physical resource.

          

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

          Specifies the type of physical resource identifier.

            Arn  

          The resource identifier is an Amazon Resource Name (ARN) and it can identify the following list of resources:

           

          
          * ``AWS::ECS::Service``
           
          * ``AWS::EFS::FileSystem``
           
          * ``AWS::ElasticLoadBalancingV2::LoadBalancer``
           
          * ``AWS::Lambda::Function``
           
          * ``AWS::SNS::Topic``
          

            Native  

          The resource identifier is an Resilience Hub-native identifier and it can identify the following list of resources:

           

          
          * ``AWS::ApiGateway::RestApi``
           
          * ``AWS::ApiGatewayV2::Api``
           
          * ``AWS::AutoScaling::AutoScalingGroup``
           
          * ``AWS::DocDB::DBCluster``
           
          * ``AWS::DocDB::DBGlobalCluster``
           
          * ``AWS::DocDB::DBInstance``
           
          * ``AWS::DynamoDB::GlobalTable``
           
          * ``AWS::DynamoDB::Table``
           
          * ``AWS::EC2::EC2Fleet``
           
          * ``AWS::EC2::Instance``
           
          * ``AWS::EC2::NatGateway``
           
          * ``AWS::EC2::Volume``
           
          * ``AWS::ElasticLoadBalancing::LoadBalancer``
           
          * ``AWS::RDS::DBCluster``
           
          * ``AWS::RDS::DBInstance``
           
          * ``AWS::RDS::GlobalCluster``
           
          * ``AWS::Route53::RecordSet``
           
          * ``AWS::S3::Bucket``
           
          * ``AWS::SQS::Queue``
          

          

        
      
      - **resourceGroupName** *(string) --* 

        Name of the Resource Groups that this resource is mapped to when the ``mappingType`` is ``ResourceGroup``.

        

      
      - **resourceName** *(string) --* 

        Name of the resource that this resource is mapped to when the ``mappingType`` is ``Resource``.

        

      
      - **terraformSourceName** *(string) --* 

        Name of the Terraform source that this resource is mapped to when the ``mappingType`` is ``Terraform``.

        

      
    

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

    
    ::

      {
          'appArn': 'string',
          'appVersion': 'string',
          'resourceMappings': [
              {
                  'appRegistryAppName': 'string',
                  'eksSourceName': 'string',
                  'logicalStackName': 'string',
                  'mappingType': 'CfnStack'|'Resource'|'AppRegistryApp'|'ResourceGroup'|'Terraform'|'EKS',
                  'physicalResourceId': {
                      'awsAccountId': 'string',
                      'awsRegion': 'string',
                      'identifier': 'string',
                      'type': 'Arn'|'Native'
                  },
                  'resourceGroupName': 'string',
                  'resourceName': 'string',
                  'terraformSourceName': 'string'
              },
          ]
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **appArn** *(string) --* 

        Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn: ``partition``:resiliencehub: ``region``: ``account``:app/ ``app-id``. For more information about ARNs, see `Amazon Resource Names (ARNs) <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html>`__ in the *Amazon Web Services General Reference* guide.

        
      

      - **appVersion** *(string) --* 

        The version of the application.

        
      

      - **resourceMappings** *(list) --* 

        List of sources that are used to map a logical resource from the template to a physical resource. You can use sources such as CloudFormation, Terraform state files, AppRegistry applications, or Amazon EKS.

        
        

        - *(dict) --* 

          Defines a resource mapping.

          
          

          - **appRegistryAppName** *(string) --* 

            Name of the application this resource is mapped to when the ``mappingType`` is ``AppRegistryApp``.

            
          

          - **eksSourceName** *(string) --* 

            Name of the Amazon Elastic Kubernetes Service cluster and namespace that this resource is mapped to when the ``mappingType`` is ``EKS``.

             

            .. note::

              

              This parameter accepts values in "eks-cluster/namespace" format.

              

            
          

          - **logicalStackName** *(string) --* 

            Name of the CloudFormation stack this resource is mapped to when the ``mappingType`` is ``CfnStack``.

            
          

          - **mappingType** *(string) --* 

            Specifies the type of resource mapping.

            
          

          - **physicalResourceId** *(dict) --* 

            Identifier of the physical resource.

            
            

            - **awsAccountId** *(string) --* 

              The Amazon Web Services account that owns the physical resource.

              
            

            - **awsRegion** *(string) --* 

              The Amazon Web Services Region that the physical resource is located in.

              
            

            - **identifier** *(string) --* 

              Identifier of the physical resource.

              
            

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

              Specifies the type of physical resource identifier.

                Arn  

              The resource identifier is an Amazon Resource Name (ARN) and it can identify the following list of resources:

               

              
              * ``AWS::ECS::Service``
               
              * ``AWS::EFS::FileSystem``
               
              * ``AWS::ElasticLoadBalancingV2::LoadBalancer``
               
              * ``AWS::Lambda::Function``
               
              * ``AWS::SNS::Topic``
              

                Native  

              The resource identifier is an Resilience Hub-native identifier and it can identify the following list of resources:

               

              
              * ``AWS::ApiGateway::RestApi``
               
              * ``AWS::ApiGatewayV2::Api``
               
              * ``AWS::AutoScaling::AutoScalingGroup``
               
              * ``AWS::DocDB::DBCluster``
               
              * ``AWS::DocDB::DBGlobalCluster``
               
              * ``AWS::DocDB::DBInstance``
               
              * ``AWS::DynamoDB::GlobalTable``
               
              * ``AWS::DynamoDB::Table``
               
              * ``AWS::EC2::EC2Fleet``
               
              * ``AWS::EC2::Instance``
               
              * ``AWS::EC2::NatGateway``
               
              * ``AWS::EC2::Volume``
               
              * ``AWS::ElasticLoadBalancing::LoadBalancer``
               
              * ``AWS::RDS::DBCluster``
               
              * ``AWS::RDS::DBInstance``
               
              * ``AWS::RDS::GlobalCluster``
               
              * ``AWS::Route53::RecordSet``
               
              * ``AWS::S3::Bucket``
               
              * ``AWS::SQS::Queue``
              

              
        
          

          - **resourceGroupName** *(string) --* 

            Name of the Resource Groups that this resource is mapped to when the ``mappingType`` is ``ResourceGroup``.

            
          

          - **resourceName** *(string) --* 

            Name of the resource that this resource is mapped to when the ``mappingType`` is ``Resource``.

            
          

          - **terraformSourceName** *(string) --* 

            Name of the Terraform source that this resource is mapped to when the ``mappingType`` is ``Terraform``.

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

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

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

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

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

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

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

  