API Reference

The AWS Documentation website is getting a new look!
Try it now and let us know what you think. Switch to the new look >>

You can return to the original look by selecting English in the language selector above.


Creates a job.

Request Syntax

PUT /jobs/jobId HTTP/1.1 Content-type: application/json { "abortConfig": { "criteriaList": [ { "action": "string", "failureType": "string", "minNumberOfExecutedThings": number, "thresholdPercentage": number } ] }, "description": "string", "document": "string", "documentSource": "string", "jobExecutionsRolloutConfig": { "exponentialRate": { "baseRatePerMinute": number, "incrementFactor": number, "rateIncreaseCriteria": { "numberOfNotifiedThings": number, "numberOfSucceededThings": number } }, "maximumPerMinute": number }, "presignedUrlConfig": { "expiresInSec": number, "roleArn": "string" }, "tags": [ { "Key": "string", "Value": "string" } ], "targets": [ "string" ], "targetSelection": "string", "timeoutConfig": { "inProgressTimeoutInMinutes": number } }

URI Request Parameters

The request requires the following URI parameters.


A job identifier which must be unique for your AWS account. We recommend using a UUID. Alpha-numeric characters, "-" and "_" are valid for use here.

Length Constraints: Minimum length of 1. Maximum length of 64.

Pattern: [a-zA-Z0-9_-]+

Request Body

The request accepts the following data in JSON format.


Allows you to create criteria to abort a job.

Type: AbortConfig object

Required: No


A short text description of the job.

Type: String

Length Constraints: Maximum length of 2028.

Pattern: [^\p{C}]+

Required: No


The job document.


If the job document resides in an S3 bucket, you must use a placeholder link when specifying the document.

The placeholder link is of the following form:


where bucket is your bucket name and key is the object in the bucket to which you are linking.

Type: String

Length Constraints: Maximum length of 32768.

Required: No


An S3 link to the job document.

Type: String

Length Constraints: Minimum length of 1. Maximum length of 1350.

Required: No


Allows you to create a staged rollout of the job.

Type: JobExecutionsRolloutConfig object

Required: No


Configuration information for pre-signed S3 URLs.

Type: PresignedUrlConfig object

Required: No


Metadata which can be used to manage the job.

Type: Array of Tag objects

Required: No


A list of things and thing groups to which the job should be sent.

Type: Array of strings

Array Members: Minimum number of 1 item.

Required: Yes


Specifies whether the job will continue to run (CONTINUOUS), or will be complete after all those things specified as targets have completed the job (SNAPSHOT). If continuous, the job may also be run on a thing when a change is detected in a target. For example, a job will run on a thing when the thing is added to a target group, even after the job was completed by all things originally in the group.

Type: String


Required: No


Specifies the amount of time each device has to finish its execution of the job. The timer is started when the job execution status is set to IN_PROGRESS. If the job execution status is not set to another terminal state before the time expires, it will be automatically set to TIMED_OUT.

Type: TimeoutConfig object

Required: No

Response Syntax

HTTP/1.1 200 Content-type: application/json { "description": "string", "jobArn": "string", "jobId": "string" }

Response Elements

If the action is successful, the service sends back an HTTP 200 response.

The following data is returned in JSON format by the service.


The job description.

Type: String

Length Constraints: Maximum length of 2028.

Pattern: [^\p{C}]+


The job ARN.

Type: String


The unique identifier you assigned to this job.

Type: String

Length Constraints: Minimum length of 1. Maximum length of 64.

Pattern: [a-zA-Z0-9_-]+



The request is not valid.

HTTP Status Code: 400


A limit has been exceeded.

HTTP Status Code: 410


The resource already exists.

HTTP Status Code: 409


The specified resource does not exist.

HTTP Status Code: 404


The service is temporarily unavailable.

HTTP Status Code: 503


The rate exceeds the limit.

HTTP Status Code: 429

See Also

For more information about using this API in one of the language-specific AWS SDKs, see the following: