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

***********************
update_service_instance
***********************



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

  

  Update a service instance.

   

  There are a few modes for updating a service instance. The ``deploymentType`` field defines the mode.

   

  .. note::

    

    You can't update a service instance while its deployment status, or the deployment status of a component attached to it, is ``IN_PROGRESS``.

     

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

    

  

  .. 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/UpdateServiceInstance>`_  


  **Request Syntax**
  ::

    response = client.update_service_instance(
        clientToken='string',
        deploymentType='NONE'|'CURRENT_VERSION'|'MINOR_VERSION'|'MAJOR_VERSION',
        name='string',
        serviceName='string',
        spec='string',
        templateMajorVersion='string',
        templateMinorVersion='string'
    )
    
  :type clientToken: string
  :param clientToken: 

    The client token of the service instance to update.

    This field is autopopulated if not provided.

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

    The deployment type. It defines the mode for updating a service instance, as follows:

        

    ``NONE``

     

    In this mode, a deployment *doesn't* occur. Only the requested metadata parameters are updated.

        

    ``CURRENT_VERSION``

     

    In this mode, the service instance is deployed and updated with the new spec that you provide. Only requested parameters are updated. *Don’t* include major or minor version parameters when you use this deployment type.

        

    ``MINOR_VERSION``

     

    In this mode, the service instance is deployed and updated with the published, recommended (latest) minor version of the current major version in use, by default. You can also specify a different minor version of the current major version in use.

        

    ``MAJOR_VERSION``

     

    In this mode, the service instance is deployed and updated with the published, recommended (latest) major and minor version of the current template, by default. You can specify a different major version that's higher than the major version in use and a minor version.

    

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

    The name of the service instance to update.

    

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

    The name of the service that the service instance belongs to.

    

  
  :type spec: string
  :param spec: 

    The formatted specification that defines the service instance update.

    

  
  :type templateMajorVersion: string
  :param templateMajorVersion: 

    The major version of the service template to update.

    

  
  :type templateMinorVersion: string
  :param templateMinorVersion: 

    The minor version of the service template to update.

    

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

    
    ::

      {
          'serviceInstance': {
              'arn': 'string',
              'createdAt': datetime(2015, 1, 1),
              'deploymentStatus': 'IN_PROGRESS'|'FAILED'|'SUCCEEDED'|'DELETE_IN_PROGRESS'|'DELETE_FAILED'|'DELETE_COMPLETE'|'CANCELLING'|'CANCELLED',
              'deploymentStatusMessage': 'string',
              'environmentName': 'string',
              'lastAttemptedDeploymentId': 'string',
              'lastClientRequestToken': 'string',
              'lastDeploymentAttemptedAt': datetime(2015, 1, 1),
              'lastDeploymentSucceededAt': datetime(2015, 1, 1),
              'lastSucceededDeploymentId': 'string',
              'name': 'string',
              'serviceName': 'string',
              'spec': 'string',
              'templateMajorVersion': 'string',
              'templateMinorVersion': 'string',
              'templateName': 'string'
          }
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **serviceInstance** *(dict) --* 

        The service instance summary data that's returned by Proton.

        
        

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

          The Amazon Resource Name (ARN) of the service instance.

          
        

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

          The time when the service instance was created.

          
        

        - **deploymentStatus** *(string) --* 

          The service instance deployment status.

          
        

        - **deploymentStatusMessage** *(string) --* 

          The message associated with the service instance deployment status.

          
        

        - **environmentName** *(string) --* 

          The name of the environment that the service instance was deployed into.

          
        

        - **lastAttemptedDeploymentId** *(string) --* 

          The ID of the last attempted deployment of this service instance.

          
        

        - **lastClientRequestToken** *(string) --* 

          The last client request token received.

          
        

        - **lastDeploymentAttemptedAt** *(datetime) --* 

          The time when a deployment of the service instance was last attempted.

          
        

        - **lastDeploymentSucceededAt** *(datetime) --* 

          The time when the service instance was last deployed successfully.

          
        

        - **lastSucceededDeploymentId** *(string) --* 

          The ID of the last successful deployment of this service instance.

          
        

        - **name** *(string) --* 

          The name of the service instance.

          
        

        - **serviceName** *(string) --* 

          The name of the service that the service instance belongs to.

          
        

        - **spec** *(string) --* 

          The service spec that was used to create the service instance.

          
        

        - **templateMajorVersion** *(string) --* 

          The major version of the service template that was used to create the service instance.

          
        

        - **templateMinorVersion** *(string) --* 

          The minor version of the service template that was used to create the service instance.

          
        

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

          The name of the service template that was used to create the service instance.

          
    
  
  **Exceptions**
  
  *   :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`

  