:doc:`Proton <../../proton>` / Client / create_service_template_version

*******************************
create_service_template_version
*******************************



.. py:method:: Proton.Client.create_service_template_version(**kwargs)

  

  Create a new major or minor version of a service template. A major version of a service template is a version that *isn't* backward compatible. A minor version of a service template is a version that's backward compatible within its major version.

  

  .. danger::

        This operation is deprecated and may not function as expected. This operation should not be used going forward and is only kept for the purpose of backwards compatiblity.


  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/proton-2020-07-20/CreateServiceTemplateVersion>`_  


  **Request Syntax**
  ::

    response = client.create_service_template_version(
        clientToken='string',
        compatibleEnvironmentTemplates=[
            {
                'majorVersion': 'string',
                'templateName': 'string'
            },
        ],
        description='string',
        majorVersion='string',
        source={
            's3': {
                'bucket': 'string',
                'key': 'string'
            }
        },
        supportedComponentSources=[
            'DIRECTLY_DEFINED',
        ],
        tags=[
            {
                'key': 'string',
                'value': 'string'
            },
        ],
        templateName='string'
    )
    
  :type clientToken: string
  :param clientToken: 

    When included, if two identical requests are made with the same client token, Proton returns the service template version that the first request created.

    This field is autopopulated if not provided.

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

    An array of environment template objects that are compatible with the new service template version. A service instance based on this service template version can run in environments based on compatible templates.

    

  
    - *(dict) --* 

      Compatible environment template data.

      

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

        The major version of the compatible environment template.

        

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

        The compatible environment template name.

        

      
    

  :type description: string
  :param description: 

    A description of the new version of a service template.

    

  
  :type majorVersion: string
  :param majorVersion: 

    To create a new minor version of the service template, include a ``major Version``.

     

    To create a new major and minor version of the service template, *exclude* ``major Version``.

    

  
  :type source: dict
  :param source: **[REQUIRED]** 

    An object that includes the template bundle S3 bucket path and name for the new version of a service template.

    .. note::    This is a Tagged Union structure. Only one of the     following top level keys can be set: ``s3``. 

  
    - **s3** *(dict) --* 

      An S3 source object that includes the template bundle S3 path and name for a template minor version.

      

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

        The name of the S3 bucket that contains a template bundle.

        

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

        The path to the S3 bucket that contains a template bundle.

        

      
    
  
  :type supportedComponentSources: list
  :param supportedComponentSources: 

    An array of supported component sources. Components with supported sources can be attached to service instances based on this service template version.

     

    For more information about components, see `Proton components <https://docs.aws.amazon.com/proton/latest/userguide/ag-components.html>`__ in the *Proton User Guide*.

    

  
    - *(string) --* 

    

  :type tags: list
  :param tags: 

    An optional list of metadata items that you can associate with the Proton service template version. A tag is a key-value pair.

     

    For more information, see `Proton resources and tagging <https://docs.aws.amazon.com/proton/latest/userguide/resources.html>`__ in the *Proton User Guide*.

    

  
    - *(dict) --* 

      A description of a resource tag.

      

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

        The key of the resource tag.

        

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

        The value of the resource tag.

        

      
    

  :type templateName: string
  :param templateName: **[REQUIRED]** 

    The name of the service template.

    

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

    
    ::

      {
          'serviceTemplateVersion': {
              'arn': 'string',
              'compatibleEnvironmentTemplates': [
                  {
                      'majorVersion': 'string',
                      'templateName': 'string'
                  },
              ],
              'createdAt': datetime(2015, 1, 1),
              'description': 'string',
              'lastModifiedAt': datetime(2015, 1, 1),
              'majorVersion': 'string',
              'minorVersion': 'string',
              'recommendedMinorVersion': 'string',
              'schema': 'string',
              'status': 'REGISTRATION_IN_PROGRESS'|'REGISTRATION_FAILED'|'DRAFT'|'PUBLISHED',
              'statusMessage': 'string',
              'supportedComponentSources': [
                  'DIRECTLY_DEFINED',
              ],
              'templateName': 'string'
          }
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **serviceTemplateVersion** *(dict) --* 

        The service template version summary of detail data that's returned by Proton.

        
        

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

          The Amazon Resource Name (ARN) of the version of a service template.

          
        

        - **compatibleEnvironmentTemplates** *(list) --* 

          An array of compatible environment template names for the major version of a service template.

          
          

          - *(dict) --* 

            Compatible environment template data.

            
            

            - **majorVersion** *(string) --* 

              The major version of the compatible environment template.

              
            

            - **templateName** *(string) --* 

              The compatible environment template name.

              
        
      
        

        - **createdAt** *(datetime) --* 

          The time when the version of a service template was created.

          
        

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

          A description of the version of a service template.

          
        

        - **lastModifiedAt** *(datetime) --* 

          The time when the version of a service template was last modified.

          
        

        - **majorVersion** *(string) --* 

          The latest major version that's associated with the version of a service template.

          
        

        - **minorVersion** *(string) --* 

          The minor version of a service template.

          
        

        - **recommendedMinorVersion** *(string) --* 

          The recommended minor version of the service template.

          
        

        - **schema** *(string) --* 

          The schema of the version of a service template.

          
        

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

          The service template version status.

          
        

        - **statusMessage** *(string) --* 

          A service template version status message.

          
        

        - **supportedComponentSources** *(list) --* 

          An array of supported component sources. Components with supported sources can be attached to service instances based on this service template version.

           

          For more information about components, see `Proton components <https://docs.aws.amazon.com/proton/latest/userguide/ag-components.html>`__ in the *Proton User Guide*.

          
          

          - *(string) --* 
      
        

        - **templateName** *(string) --* 

          The name of the version of a service template.

          
    
  
  **Exceptions**
  
  *   :py:class:`Proton.Client.exceptions.ServiceQuotaExceededException`

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

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

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

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

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

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

  