:doc:`ServiceCatalog <../../servicecatalog>` / Client / update_product

**************
update_product
**************



.. py:method:: ServiceCatalog.Client.update_product(**kwargs)

  

  Updates the specified product.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/UpdateProduct>`_  


  **Request Syntax**
  ::

    response = client.update_product(
        AcceptLanguage='string',
        Id='string',
        Name='string',
        Owner='string',
        Description='string',
        Distributor='string',
        SupportDescription='string',
        SupportEmail='string',
        SupportUrl='string',
        AddTags=[
            {
                'Key': 'string',
                'Value': 'string'
            },
        ],
        RemoveTags=[
            'string',
        ],
        SourceConnection={
            'Type': 'CODESTAR',
            'ConnectionParameters': {
                'CodeStar': {
                    'ConnectionArn': 'string',
                    'Repository': 'string',
                    'Branch': 'string',
                    'ArtifactPath': 'string'
                }
            }
        }
    )
    
  :type AcceptLanguage: string
  :param AcceptLanguage: 

    The language code.

     

    
    * ``jp`` - Japanese
     
    * ``zh`` - Chinese
    

    

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

    The product identifier.

    

  
  :type Name: string
  :param Name: 

    The updated product name.

    

  
  :type Owner: string
  :param Owner: 

    The updated owner of the product.

    

  
  :type Description: string
  :param Description: 

    The updated description of the product.

    

  
  :type Distributor: string
  :param Distributor: 

    The updated distributor of the product.

    

  
  :type SupportDescription: string
  :param SupportDescription: 

    The updated support description for the product.

    

  
  :type SupportEmail: string
  :param SupportEmail: 

    The updated support email for the product.

    

  
  :type SupportUrl: string
  :param SupportUrl: 

    The updated support URL for the product.

    

  
  :type AddTags: list
  :param AddTags: 

    The tags to add to the product.

    

  
    - *(dict) --* 

      Information about a tag. A tag is a key-value pair. Tags are propagated to the resources created when provisioning a product.

      

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

        The tag key.

        

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

        The value for this key.

        

      
    

  :type RemoveTags: list
  :param RemoveTags: 

    The tags to remove from the product.

    

  
    - *(string) --* 

    

  :type SourceConnection: dict
  :param SourceConnection: 

    Specifies connection details for the updated product and syncs the product to the connection source artifact. This automatically manages the product's artifacts based on changes to the source. The ``SourceConnection`` parameter consists of the following sub-fields.

     

    
    * ``Type``
     
    * ``ConnectionParamters``
    

    

  
    - **Type** *(string) --* 

      The only supported ``SourceConnection`` type is Codestar.

      

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

      The connection details based on the connection ``Type``.

      

    
      - **CodeStar** *(dict) --* 

        Provides ``ConnectionType`` details.

        

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

          The CodeStar ARN, which is the connection between Service Catalog and the external repository.

          

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

          The specific repository where the product’s artifact-to-be-synced resides, formatted as "Account/Repo."

          

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

          The specific branch where the artifact resides.

          

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

          The absolute path wehre the artifact resides within the repo and branch, formatted as "folder/file.json."

          

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

    
    ::

      {
          'ProductViewDetail': {
              'ProductViewSummary': {
                  'Id': 'string',
                  'ProductId': 'string',
                  'Name': 'string',
                  'Owner': 'string',
                  'ShortDescription': 'string',
                  'Type': 'CLOUD_FORMATION_TEMPLATE'|'MARKETPLACE'|'TERRAFORM_OPEN_SOURCE'|'TERRAFORM_CLOUD'|'EXTERNAL',
                  'Distributor': 'string',
                  'HasDefaultPath': True|False,
                  'SupportEmail': 'string',
                  'SupportDescription': 'string',
                  'SupportUrl': 'string'
              },
              'Status': 'AVAILABLE'|'CREATING'|'FAILED',
              'ProductARN': 'string',
              'CreatedTime': datetime(2015, 1, 1),
              'SourceConnection': {
                  'Type': 'CODESTAR',
                  'ConnectionParameters': {
                      'CodeStar': {
                          'ConnectionArn': 'string',
                          'Repository': 'string',
                          'Branch': 'string',
                          'ArtifactPath': 'string'
                      }
                  },
                  'LastSync': {
                      'LastSyncTime': datetime(2015, 1, 1),
                      'LastSyncStatus': 'SUCCEEDED'|'FAILED',
                      'LastSyncStatusMessage': 'string',
                      'LastSuccessfulSyncTime': datetime(2015, 1, 1),
                      'LastSuccessfulSyncProvisioningArtifactId': 'string'
                  }
              }
          },
          'Tags': [
              {
                  'Key': 'string',
                  'Value': 'string'
              },
          ]
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **ProductViewDetail** *(dict) --* 

        Information about the product view.

        
        

        - **ProductViewSummary** *(dict) --* 

          Summary information about the product view.

          
          

          - **Id** *(string) --* 

            The product view identifier.

            
          

          - **ProductId** *(string) --* 

            The product identifier.

            
          

          - **Name** *(string) --* 

            The name of the product.

            
          

          - **Owner** *(string) --* 

            The owner of the product. Contact the product administrator for the significance of this value.

            
          

          - **ShortDescription** *(string) --* 

            Short description of the product.

            
          

          - **Type** *(string) --* 

            The product type. Contact the product administrator for the significance of this value. If this value is ``MARKETPLACE``, the product was created by Amazon Web Services Marketplace.

            
          

          - **Distributor** *(string) --* 

            The distributor of the product. Contact the product administrator for the significance of this value.

            
          

          - **HasDefaultPath** *(boolean) --* 

            Indicates whether the product has a default path. If the product does not have a default path, call  ListLaunchPaths to disambiguate between paths. Otherwise,  ListLaunchPaths is not required, and the output of  ProductViewSummary can be used directly with  DescribeProvisioningParameters.

            
          

          - **SupportEmail** *(string) --* 

            The email contact information to obtain support for this Product.

            
          

          - **SupportDescription** *(string) --* 

            The description of the support for this Product.

            
          

          - **SupportUrl** *(string) --* 

            The URL information to obtain support for this Product.

            
      
        

        - **Status** *(string) --* 

          The status of the product.

           

          
          * ``AVAILABLE`` - The product is ready for use.
           
          * ``CREATING`` - Product creation has started; the product is not ready for use.
           
          * ``FAILED`` - An action failed.
          

          
        

        - **ProductARN** *(string) --* 

          The ARN of the product.

          
        

        - **CreatedTime** *(datetime) --* 

          The UTC time stamp of the creation time.

          
        

        - **SourceConnection** *(dict) --* 

          A top level ``ProductViewDetail`` response containing details about the product’s connection. Service Catalog returns this field for the ``CreateProduct``, ``UpdateProduct``, ``DescribeProductAsAdmin``, and ``SearchProductAsAdmin`` APIs. This response contains the same fields as the ``ConnectionParameters`` request, with the addition of the ``LastSync`` response.

          
          

          - **Type** *(string) --* 

            The only supported ``SourceConnection`` type is Codestar.

            
          

          - **ConnectionParameters** *(dict) --* 

            The connection details based on the connection ``Type``.

            
            

            - **CodeStar** *(dict) --* 

              Provides ``ConnectionType`` details.

              
              

              - **ConnectionArn** *(string) --* 

                The CodeStar ARN, which is the connection between Service Catalog and the external repository.

                
              

              - **Repository** *(string) --* 

                The specific repository where the product’s artifact-to-be-synced resides, formatted as "Account/Repo."

                
              

              - **Branch** *(string) --* 

                The specific branch where the artifact resides.

                
              

              - **ArtifactPath** *(string) --* 

                The absolute path wehre the artifact resides within the repo and branch, formatted as "folder/file.json."

                
          
        
          

          - **LastSync** *(dict) --* 

            Provides details about the product's connection sync and contains the following sub-fields.

             

            
            * ``LastSyncTime``
             
            * ``LastSyncStatus``
             
            * ``LastSyncStatusMessage``
             
            * ``LastSuccessfulSyncTime``
             
            * ``LastSuccessfulSyncProvisioningArtifactID``
            

            
            

            - **LastSyncTime** *(datetime) --* 

              The time of the last attempted sync from the repository to the Service Catalog product.

              
            

            - **LastSyncStatus** *(string) --* 

              The current status of the sync. Responses include ``SUCCEEDED`` or ``FAILED``.

              
            

            - **LastSyncStatusMessage** *(string) --* 

              The sync's status message.

              
            

            - **LastSuccessfulSyncTime** *(datetime) --* 

              The time of the latest successful sync from the source repo artifact to the Service Catalog product.

              
            

            - **LastSuccessfulSyncProvisioningArtifactId** *(string) --* 

              The ProvisioningArtifactID of the ProvisioningArtifact created from the latest successful sync.

              
        
      
    
      

      - **Tags** *(list) --* 

        Information about the tags associated with the product.

        
        

        - *(dict) --* 

          Information about a tag. A tag is a key-value pair. Tags are propagated to the resources created when provisioning a product.

          
          

          - **Key** *(string) --* 

            The tag key.

            
          

          - **Value** *(string) --* 

            The value for this key.

            
      
    
  
  **Exceptions**
  
  *   :py:class:`ServiceCatalog.Client.exceptions.ResourceNotFoundException`

  
  *   :py:class:`ServiceCatalog.Client.exceptions.InvalidParametersException`

  
  *   :py:class:`ServiceCatalog.Client.exceptions.TagOptionNotMigratedException`

  