:doc:`MarketplaceCatalog <../../marketplace-catalog>` / Client / start_change_set

****************
start_change_set
****************



.. py:method:: MarketplaceCatalog.Client.start_change_set(**kwargs)

  

  Allows you to request changes for your entities. Within a single ``ChangeSet``, you can't start the same change type against the same entity multiple times. Additionally, when a ``ChangeSet`` is running, all the entities targeted by the different changes are locked until the change set has completed (either succeeded, cancelled, or failed). If you try to start a change set containing a change against an entity that is already locked, you will receive a ``ResourceInUseException`` error.

   

  For example, you can't start the ``ChangeSet`` described in the `example <https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/API_StartChangeSet.html#API_StartChangeSet_Examples>`__ later in this topic because it contains two changes to run the same change type ( ``AddRevisions``) against the same entity ( ``entity-id@1``).

   

  For more information about working with change sets, see `Working with change sets <https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/welcome.html#working-with-change-sets>`__. For information about change types for single-AMI products, see `Working with single-AMI products <https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/ami-products.html#working-with-single-AMI-products>`__. Also, for more information about change types available for container-based products, see `Working with container products <https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/container-products.html#working-with-container-products>`__.

   

  To download "DetailsDocument" shapes, see `Python <https://github.com/awslabs/aws-marketplace-catalog-api-shapes-for-python>`__ and `Java <https://github.com/awslabs/aws-marketplace-catalog-api-shapes-for-java/tree/main>`__ shapes on GitHub.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/marketplace-catalog-2018-09-17/StartChangeSet>`_  


  **Request Syntax**
  ::

    response = client.start_change_set(
        Catalog='string',
        ChangeSet=[
            {
                'ChangeType': 'string',
                'Entity': {
                    'Type': 'string',
                    'Identifier': 'string'
                },
                'EntityTags': [
                    {
                        'Key': 'string',
                        'Value': 'string'
                    },
                ],
                'Details': 'string',
                'DetailsDocument': {...}|[...]|123|123.4|'string'|True|None,
                'ChangeName': 'string'
            },
        ],
        ChangeSetName='string',
        ClientRequestToken='string',
        ChangeSetTags=[
            {
                'Key': 'string',
                'Value': 'string'
            },
        ],
        Intent='VALIDATE'|'APPLY'
    )
    
  :type Catalog: string
  :param Catalog: **[REQUIRED]** 

    The catalog related to the request. Fixed value: ``AWSMarketplace``

    

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

    Array of ``change`` object.

    

  
    - *(dict) --* 

      An object that contains the ``ChangeType``, ``Details``, and ``Entity``.

      

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

        Change types are single string values that describe your intention for the change. Each change type is unique for each ``EntityType`` provided in the change's scope. For more information about change types available for single-AMI products, see `Working with single-AMI products <https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/ami-products.html#working-with-single-AMI-products>`__. Also, for more information about change types available for container-based products, see `Working with container products <https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/container-products.html#working-with-container-products>`__.

        

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

        The entity to be changed.

        

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

          The type of entity.

          

        
        - **Identifier** *(string) --* 

          The identifier for the entity.

          

        
      
      - **EntityTags** *(list) --* 

        The tags associated with the change.

        

      
        - *(dict) --* 

          A list of objects specifying each key name and value.

          

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

            The key associated with the tag.

            

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

            The value associated with the tag.

            

          
        
    
      - **Details** *(string) --* 

        This object contains details specific to the change type of the requested change. For more information about change types available for single-AMI products, see `Working with single-AMI products <https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/ami-products.html#working-with-single-AMI-products>`__. Also, for more information about change types available for container-based products, see `Working with container products <https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/container-products.html#working-with-container-products>`__.

        

      
      - **DetailsDocument** (:ref:`document<document>`) -- 

        Alternative field that accepts a JSON value instead of a string for ``ChangeType`` details. You can use either ``Details`` or ``DetailsDocument``, but not both.

         

        To download the "DetailsDocument" shapes, see the `Python <https://github.com/awslabs/aws-marketplace-catalog-api-shapes-for-python>`__ and `Java <https://github.com/awslabs/aws-marketplace-catalog-api-shapes-for-java/tree/main>`__ shapes on GitHub.

        

      
      - **ChangeName** *(string) --* 

        Optional name for the change.

        

      
    

  :type ChangeSetName: string
  :param ChangeSetName: 

    Optional case sensitive string of up to 100 ASCII characters. The change set name can be used to filter the list of change sets.

    

  
  :type ClientRequestToken: string
  :param ClientRequestToken: 

    A unique token to identify the request to ensure idempotency.

    This field is autopopulated if not provided.

  
  :type ChangeSetTags: list
  :param ChangeSetTags: 

    A list of objects specifying each key name and value for the ``ChangeSetTags`` property.

    

  
    - *(dict) --* 

      A list of objects specifying each key name and value.

      

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

        The key associated with the tag.

        

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

        The value associated with the tag.

        

      
    

  :type Intent: string
  :param Intent: 

    The intent related to the request. The default is ``APPLY``. To test your request before applying changes to your entities, use ``VALIDATE``. This feature is currently available for adding versions to single-AMI products. For more information, see `Add a new version <https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/ami-products.html#ami-add-version>`__.

    

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

    
    ::

      {
          'ChangeSetId': 'string',
          'ChangeSetArn': 'string'
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **ChangeSetId** *(string) --* 

        Unique identifier generated for the request.

        
      

      - **ChangeSetArn** *(string) --* 

        The ARN associated to the unique identifier generated for the request.

        
  
  **Exceptions**
  
  *   :py:class:`MarketplaceCatalog.Client.exceptions.InternalServiceException`

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

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

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

  
  *   :py:class:`MarketplaceCatalog.Client.exceptions.ResourceInUseException`

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

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

  