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

******************************
put_draft_app_version_template
******************************



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

  

  Adds or updates the app template for an Resilience Hub application draft version.

  

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


  **Request Syntax**
  ::

    response = client.put_draft_app_version_template(
        appArn='string',
        appTemplateBody='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 appTemplateBody: string
  :param appTemplateBody: **[REQUIRED]** 

    A JSON string that provides information about your application structure. To learn more about the ``appTemplateBody`` template, see the sample template provided in the *Examples* section.

     

    The ``appTemplateBody`` JSON string has the following structure:

     

    
    * ``resources`` The list of logical resources that must be included in the Resilience Hub application. Type: Array 

    .. note::

      Don't add the resources that you want to exclude.

     Each ``resources`` array item includes the following fields: 

      
      * ``logicalResourceId`` Logical identifier of the resource. Type: Object Each ``logicalResourceId`` object includes the following fields: 

        
        * ``identifier`` Identifier of the resource. Type: String
         
        * ``logicalStackName`` The name of the CloudFormation stack this resource belongs to. Type: String
         
        * ``resourceGroupName`` The name of the resource group this resource belongs to. Type: String
         
        * ``terraformSourceName`` The name of the Terraform S3 state file this resource belongs to. Type: String
         
        * ``eksSourceName`` Name of the Amazon Elastic Kubernetes Service cluster and namespace this resource belongs to. 

        .. note::

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

         Type: String
        

      
       
      * ``type`` The type of resource. Type: string
       
      * ``name`` The name of the resource. Type: String
       
      * ``additionalInfo`` Additional configuration parameters for an Resilience Hub application. If you want to implement ``additionalInfo`` through the Resilience Hub console rather than using an API call, see `Configure the application configuration parameters <https://docs.aws.amazon.com/resilience-hub/latest/userguide/app-config-param.html>`__. 

      .. note::

        Currently, this parameter accepts a key-value mapping (in a string format) of only one failover region and one associated account. Key: ``"failover-regions"`` Value: ``"[{"region":"<REGION>", "accounts":[{"id":"<ACCOUNT_ID>"}]}]"``

      
      

    
     
    * ``appComponents`` List of Application Components that this resource belongs to. If an Application Component is not part of the Resilience Hub application, it will be added. Type: Array Each ``appComponents`` array item includes the following fields: 

      
      * ``name`` Name of the Application Component. Type: String
       
      * ``type`` Type of Application Component. For more information about the types of Application Component, see `Grouping resources in an AppComponent <https://docs.aws.amazon.com/resilience-hub/latest/userguide/AppComponent.grouping.html>`__. Type: String
       
      * ``resourceNames`` The list of included resources that are assigned to the Application Component. Type: Array of strings
       
      * ``additionalInfo`` Additional configuration parameters for an Resilience Hub application. If you want to implement ``additionalInfo`` through the Resilience Hub console rather than using an API call, see `Configure the application configuration parameters <https://docs.aws.amazon.com/resilience-hub/latest/userguide/app-config-param.html>`__. 

      .. note::

        Currently, this parameter accepts a key-value mapping (in a string format) of only one failover region and one associated account. Key: ``"failover-regions"`` Value: ``"[{"region":"<REGION>", "accounts":[{"id":"<ACCOUNT_ID>"}]}]"``

      
      

    
     
    * ``excludedResources`` The list of logical resource identifiers to be excluded from the application. Type: Array 

    .. note::

      Don't add the resources that you want to include.

     Each ``excludedResources`` array item includes the following fields: 

      
      * ``logicalResourceIds`` Logical identifier of the resource. Type: Object 

      .. note::

        You can configure only one of the following fields: 

          
          * ``logicalStackName``
           
          * ``resourceGroupName``
           
          * ``terraformSourceName``
           
          * ``eksSourceName``
          

        

       

      Each ``logicalResourceIds`` object includes the following fields:

       

        
        * ``identifier`` Identifier of the resource. Type: String
         
        * ``logicalStackName`` The name of the CloudFormation stack this resource belongs to. Type: String
         
        * ``resourceGroupName`` The name of the resource group this resource belongs to. Type: String
         
        * ``terraformSourceName`` The name of the Terraform S3 state file this resource belongs to. Type: String
         
        * ``eksSourceName`` Name of the Amazon Elastic Kubernetes Service cluster and namespace this resource belongs to. 

        .. note::

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

         Type: String
        

      
      

    
     
    * ``version`` Resilience Hub application version.
     
    * ``additionalInfo`` Additional configuration parameters for an Resilience Hub application. If you want to implement ``additionalInfo`` through the Resilience Hub console rather than using an API call, see `Configure the application configuration parameters <https://docs.aws.amazon.com/resilience-hub/latest/userguide/app-config-param.html>`__. 

    .. note::

      Currently, this parameter accepts a key-value mapping (in a string format) of only one failover region and one associated account. Key: ``"failover-regions"`` Value: ``"[{"region":"<REGION>", "accounts":[{"id":"<ACCOUNT_ID>"}]}]"``

    
    

    

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

    
    ::

      {
          'appArn': 'string',
          'appVersion': '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.

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

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

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

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

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

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

  