AWS IoT
API Reference

CreateJob

Creates a job.

Request Syntax

PUT /jobs/jobId HTTP/1.1 Content-type: application/json { "description": "string", "document": "string", "documentSource": "string", "jobExecutionsRolloutConfig": { "maximumPerMinute": number }, "presignedUrlConfig": { "expiresInSec": number, "roleArn": "string" }, "targets": [ "string" ], "targetSelection": "string", "timeoutConfig": { "inProgressTimeoutInMinutes": number } }

URI Request Parameters

The request requires the following URI parameters.

jobId

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.

description

A short text description of the job.

Type: String

Length Constraints: Maximum length of 2028.

Pattern: [^\p{C}]+

Required: No

document

The job document.

Note

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:

${aws:iot:s3-presigned-url:https://s3.amazonaws.com/bucket/key}

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

documentSource

An S3 link to the job document.

Type: String

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

Required: No

jobExecutionsRolloutConfig

Allows you to create a staged rollout of the job.

Type: JobExecutionsRolloutConfig object

Required: No

presignedUrlConfig

Configuration information for pre-signed S3 URLs.

Type: PresignedUrlConfig object

Required: No

targets

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

targetSelection

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

Valid Values: CONTINUOUS | SNAPSHOT

Required: No

timeoutConfig

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.

description

The job description.

Type: String

Length Constraints: Maximum length of 2028.

Pattern: [^\p{C}]+

jobArn

The job ARN.

Type: String

jobId

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_-]+

Errors

InvalidRequestException

The request is not valid.

HTTP Status Code: 400

LimitExceededException

A limit has been exceeded.

HTTP Status Code: 410

ResourceAlreadyExistsException

The resource already exists.

HTTP Status Code: 409

ResourceNotFoundException

The specified resource does not exist.

HTTP Status Code: 404

ServiceUnavailableException

The service is temporarily unavailable.

HTTP Status Code: 503

ThrottlingException

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: