---
title: "PATCH /jobs/{jobId}"
method: PATCH
path: "/jobs/{jobId}"
---

# PATCH /jobs/{jobId}

`PATCH /jobs/{jobId}`

Updates supported fields of the specified job.

Requires permission to access the [UpdateJob](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions) action.

## Path parameters

- `jobId` string, required

## Query parameters

- `namespaceId` string

## Request body

- object
  - `description` string — A short text description of the job.
  - `presignedUrlConfig` object — Configuration for pre-signed S3 URLs.
    - `roleArn` string — <p>The ARN of an IAM role that grants grants permission to download files from the S3 bucket where the job data/updates are stored. The role must also grant permission for IoT to download the files.</p> <important> <p>For information about addressing the confused deputy problem, see <a href="https://docs.aws.amazon.com/iot/latest/developerguide/cross-service-confused-deputy-prevention.html">cross-service confused deputy prevention</a> in the <i>Amazon Web Services IoT Core developer guide</i>.</p> </important>
    - `expiresInSec` integer — How long (in seconds) pre-signed URLs are valid. Valid values are 60 - 3600, the default value is 3600 seconds. Pre-signed URLs are generated when Jobs receives an MQTT request for the job document.
  - `jobExecutionsRolloutConfig` object — Allows you to create a staged rollout of a job.
    - `maximumPerMinute` integer — The maximum number of things that will be notified of a pending job, per minute. This parameter allows you to create a staged rollout.
    - `exponentialRate` object — The rate of increase for a job rollout. This parameter allows you to define an exponential rate for a job rollout.
      - `baseRatePerMinute` integer, required — The minimum number of things that will be notified of a pending job, per minute at the start of job rollout. This parameter allows you to define the initial rate of rollout.
      - `incrementFactor` number, double, required — <p>The exponential factor to increase the rate of rollout for a job.</p> <p>Amazon Web Services IoT Core supports up to one digit after the decimal (for example, 1.5, but not 1.55).</p>
      - `rateIncreaseCriteria` object, required — The criteria to initiate the increase in rate of rollout for a job.
        - `numberOfNotifiedThings` integer — The threshold for number of notified things that will initiate the increase in rate of rollout.
        - `numberOfSucceededThings` integer — The threshold for number of succeeded things that will initiate the increase in rate of rollout.
  - `abortConfig` object — The criteria that determine when and how a job abort takes place.
    - `criteriaList` AbortCriteria[] — The list of criteria that determine when and how to abort the job.
      - `failureType` 'FAILED' | 'REJECTED' | 'TIMED_OUT' | 'ALL', required — The type of job execution failures that can initiate a job abort.
      - `action` 'CANCEL', required — The type of job action to take to initiate the job abort.
      - `thresholdPercentage` number, double, required — <p>The minimum percentage of job execution failures that must occur to initiate the job abort.</p> <p>Amazon Web Services IoT Core supports up to two digits after the decimal (for example, 10.9 and 10.99, but not 10.999).</p>
      - `minNumberOfExecutedThings` integer, required — The minimum number of things which must receive job execution notifications before the job can be aborted.
  - `timeoutConfig` object — Specifies the amount of time each device has to finish its execution of the job. A timer is started when the job execution status is set to <code>IN_PROGRESS</code>. If the job execution status is not set to another terminal state before the timer expires, it will be automatically set to <code>TIMED_OUT</code>.
    - `inProgressTimeoutInMinutes` integer — Specifies the amount of time, in minutes, this device has to finish execution of this job. The timeout interval can be anywhere between 1 minute and 7 days (1 to 10080 minutes). The in progress timer can't be updated and will apply to all job executions for the job. Whenever a job execution remains in the IN_PROGRESS status for longer than this interval, the job execution will fail and switch to the terminal <code>TIMED_OUT</code> status.
  - `jobExecutionsRetryConfig` object — The configuration that determines how many retries are allowed for each failure type for a job.
    - `criteriaList` RetryCriteria[] — The list of criteria that determines how many retries are allowed for each failure type for a job.
      - `failureType` 'FAILED' | 'TIMED_OUT' | 'ALL', required — The type of job execution failures that can initiate a job retry.
      - `numberOfRetries` integer, required — The number of retries allowed for a failure type for the job.

## Response `200`

Success

## Other responses

- `480` — InvalidRequestException
- `481` — ResourceNotFoundException
- `482` — ThrottlingException
- `483` — ServiceUnavailableException

---

[API](https://skmtc.net/aws/apis/iot.md) · [All operations](https://skmtc.net/aws/apis/iot/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/aws/iot/versions/deef5c4b09f0/schema)
