**Description**

        Publishes an MQTT message to a corresponding job execution specific topic to update its status according to the parameters.
        Can be used to change a job from QUEUED to IN_PROGRESS to SUCEEDED or FAILED.

        **Syntax**

        .. code:: python

          #Update job with id 'jobId123' to succeeded state, specifying new status details, with expectedVersion=1, executionNumber=2.
          #For the response, include job execution state and not the job document
          myAWSIoTMQTTJobsClient.sendJobsUpdate('jobId123', jobExecutionStatus.JOB_EXECUTION_SUCCEEDED, statusDetailsMap, 1, 2, True, False)


          #Update job with id 'jobId456' to failed state
          myAWSIoTMQTTJobsClient.sendJobsUpdate('jobId456', jobExecutionStatus.JOB_EXECUTION_FAILED)

        **Parameters**

        *jobId* - JobID String of the execution to update the status of

        *status* - job execution status to change the job execution to. Member of jobExecutionStatus

        *statusDetails* - new status details to set on the job execution

        *expectedVersion* - The expected current version of the job execution. IoT jobs increments expectedVersion each time you update the job execution.
        If the version of the job execution stored in Jobs does not match, the update is rejected with a VersionMismatch error, and an ErrorResponse
        that contains the current job execution status data is returned. (This makes it unnecessary to perform a separate DescribeJobExecution request
        n order to obtain the job execution status data.)

        *executionNumber* - A number that identifies a particular job execution on a particular device. If not specified, the latest job execution is used.

        *includeJobExecutionState* - When included and set to True, the response contains the JobExecutionState field. The default is False.

        *includeJobDocument* - When included and set to True, the response contains the JobDocument. The default is False.

        **Returns**

        True if the publish request has been sent to paho. False if the request did not reach paho.

def sendJobsUpdate(self, jobId, status, statusDetails=None, expectedVersion=0, executionNumber=0, includeJobExecutionState=False, includeJobDocument=False):
        """
        **Description**

        Publishes an MQTT message to a corresponding job execution specific topic to update its status according to the parameters.
        Can be used to change a job from QUEUED to IN_PROGRESS to SUCEEDED or FAILED.

        **Syntax**

        .. code:: python

          #Update job with id 'jobId123' to succeeded state, specifying new status details, with expectedVersion=1, executionNumber=2.
          #For the response, include job execution state and not the job document
          myAWSIoTMQTTJobsClient.sendJobsUpdate('jobId123', jobExecutionStatus.JOB_EXECUTION_SUCCEEDED, statusDetailsMap, 1, 2, True, False)


          #Update job with id 'jobId456' to failed state
          myAWSIoTMQTTJobsClient.sendJobsUpdate('jobId456', jobExecutionStatus.JOB_EXECUTION_FAILED)

        **Parameters**

        *jobId* - JobID String of the execution to update the status of

        *status* - job execution status to change the job execution to. Member of jobExecutionStatus

        *statusDetails* - new status details to set on the job execution

        *expectedVersion* - The expected current version of the job execution. IoT jobs increments expectedVersion each time you update the job execution.
        If the version of the job execution stored in Jobs does not match, the update is rejected with a VersionMismatch error, and an ErrorResponse
        that contains the current job execution status data is returned. (This makes it unnecessary to perform a separate DescribeJobExecution request
        n order to obtain the job execution status data.)

        *executionNumber* - A number that identifies a particular job execution on a particular device. If not specified, the latest job execution is used.

        *includeJobExecutionState* - When included and set to True, the response contains the JobExecutionState field. The default is False.

        *includeJobDocument* - When included and set to True, the response contains the JobDocument. The default is False.

        **Returns**

        True if the publish request has been sent to paho. False if the request did not reach paho.

        """
        topic = self._thingJobManager.getJobTopic(jobExecutionTopicType.JOB_UPDATE_TOPIC, jobExecutionTopicReplyType.JOB_REQUEST_TYPE, jobId)
        payload = self._thingJobManager.serializeJobExecutionUpdatePayload(status, statusDetails, expectedVersion, executionNumber, includeJobExecutionState, includeJobDocument)
        return self._AWSIoTMQTTClient.publish(topic, payload, self._QoS)