Package-level declarations

Types

Link copied to clipboard
@JsonSerializable
data class DescribedJobExecution(val execution: JobExecution? = null)
Link copied to clipboard
data class DescribeJobExecution(val thingName: ThingName, val jobId: JobId, val executionNumber: Long? = null, val includeJobDocument: Boolean? = null) : IotJobsDataPlaneAction<DescribedJobExecution>

Gets details of a job execution, without any state transition: jobId may be JobId.NEXT (the literal $next), which reads the device's next pending execution - the oldest IN_PROGRESS one, else the oldest QUEUED one - and, being read-only, is safe to poll on every connect. With $next and nothing pending the service answers 200 with an empty document, surfaced here as a null DescribedJobExecution.execution (the AWS docs imply this by leaving the response's execution member optional).

Link copied to clipboard

Gets every job execution for the thing which is not in a terminal state.

Link copied to clipboard
@JsonSerializable
data class JobExecutionState(val status: JobExecutionStatus, val versionNumber: Long, val statusDetails: Map<String, String>? = null)
Link copied to clipboard
@JsonSerializable
data class JobExecutionSummary(val jobId: JobId, val queuedAt: Timestamp? = null, val startedAt: Timestamp? = null, val lastUpdatedAt: Timestamp? = null, val versionNumber: Long? = null, val executionNumber: Long? = null)
Link copied to clipboard
@JsonSerializable
data class PendingJobExecutions(val inProgressJobs: List<JobExecutionSummary> = emptyList(), val queuedJobs: List<JobExecutionSummary> = emptyList())
Link copied to clipboard
@JsonSerializable
data class StartedJobExecution(val execution: JobExecution? = null)
Link copied to clipboard
data class StartNextPendingJobExecution(val thingName: ThingName, val statusDetails: Map<String, String>? = null, val stepTimeoutInMinutes: Long? = null) : IotJobsDataPlaneAction<StartedJobExecution>

Gets and starts the device's next pending job execution: a QUEUED pick transitions to IN_PROGRESS. With nothing pending the service answers 200 with an empty document, surfaced here as a null StartedJobExecution.execution.

Link copied to clipboard
@JsonSerializable
data class StartNextPendingJobExecutionData(val statusDetails: Map<String, String>? = null, val stepTimeoutInMinutes: Long? = null)
Link copied to clipboard
@JsonSerializable
data class UpdatedJobExecution(val executionState: JobExecutionState? = null, val jobDocument: String? = null)
Link copied to clipboard
data class UpdateJobExecution(val thingName: ThingName, val jobId: JobId, val status: JobExecutionStatus, val statusDetails: Map<String, String>? = null, val expectedVersion: Long? = null, val includeJobExecutionState: Boolean? = null, val includeJobDocument: Boolean? = null, val executionNumber: Long? = null, val stepTimeoutInMinutes: Long? = null) : IotJobsDataPlaneAction<UpdatedJobExecution>

Updates the status of a job execution. A device may only set IN_PROGRESS, SUCCEEDED, FAILED or REJECTED. When expectedVersion does not match the stored version the update is rejected with 409; the AWS docs call this "a VersionMismatch error" but the service model declares no such exception, so it surfaces under the operation's only declared 409, InvalidStateTransitionException. When statusDetails is not specified the stored details are unchanged; when specified they replace the stored map. includeJobExecutionState and includeJobDocument both default to false on the server.

Link copied to clipboard
@JsonSerializable
data class UpdateJobExecutionData(val status: JobExecutionStatus, val statusDetails: Map<String, String>? = null, val expectedVersion: Long? = null, val includeJobExecutionState: Boolean? = null, val includeJobDocument: Boolean? = null, val executionNumber: Long? = null, val stepTimeoutInMinutes: Long? = null)