1{ 2 "version":"2.0", 3 "metadata":{ 4 "apiVersion":"2017-09-29", 5 "endpointPrefix":"data.jobs.iot", 6 "protocol":"rest-json", 7 "serviceFullName":"AWS IoT Jobs Data Plane", 8 "serviceId":"IoT Jobs Data Plane", 9 "signatureVersion":"v4", 10 "signingName":"iot-jobs-data", 11 "uid":"iot-jobs-data-2017-09-29" 12 }, 13 "operations":{ 14 "DescribeJobExecution":{ 15 "name":"DescribeJobExecution", 16 "http":{ 17 "method":"GET", 18 "requestUri":"/things/{thingName}/jobs/{jobId}" 19 }, 20 "input":{"shape":"DescribeJobExecutionRequest"}, 21 "output":{"shape":"DescribeJobExecutionResponse"}, 22 "errors":[ 23 {"shape":"InvalidRequestException"}, 24 {"shape":"ResourceNotFoundException"}, 25 {"shape":"ThrottlingException"}, 26 {"shape":"ServiceUnavailableException"}, 27 {"shape":"CertificateValidationException"}, 28 {"shape":"TerminalStateException"} 29 ] 30 }, 31 "GetPendingJobExecutions":{ 32 "name":"GetPendingJobExecutions", 33 "http":{ 34 "method":"GET", 35 "requestUri":"/things/{thingName}/jobs" 36 }, 37 "input":{"shape":"GetPendingJobExecutionsRequest"}, 38 "output":{"shape":"GetPendingJobExecutionsResponse"}, 39 "errors":[ 40 {"shape":"InvalidRequestException"}, 41 {"shape":"ResourceNotFoundException"}, 42 {"shape":"ThrottlingException"}, 43 {"shape":"ServiceUnavailableException"}, 44 {"shape":"CertificateValidationException"} 45 ] 46 }, 47 "StartNextPendingJobExecution":{ 48 "name":"StartNextPendingJobExecution", 49 "http":{ 50 "method":"PUT", 51 "requestUri":"/things/{thingName}/jobs/$next" 52 }, 53 "input":{"shape":"StartNextPendingJobExecutionRequest"}, 54 "output":{"shape":"StartNextPendingJobExecutionResponse"}, 55 "errors":[ 56 {"shape":"InvalidRequestException"}, 57 {"shape":"ResourceNotFoundException"}, 58 {"shape":"ThrottlingException"}, 59 {"shape":"ServiceUnavailableException"}, 60 {"shape":"CertificateValidationException"} 61 ] 62 }, 63 "UpdateJobExecution":{ 64 "name":"UpdateJobExecution", 65 "http":{ 66 "method":"POST", 67 "requestUri":"/things/{thingName}/jobs/{jobId}" 68 }, 69 "input":{"shape":"UpdateJobExecutionRequest"}, 70 "output":{"shape":"UpdateJobExecutionResponse"}, 71 "errors":[ 72 {"shape":"InvalidRequestException"}, 73 {"shape":"ResourceNotFoundException"}, 74 {"shape":"ThrottlingException"}, 75 {"shape":"ServiceUnavailableException"}, 76 {"shape":"CertificateValidationException"}, 77 {"shape":"InvalidStateTransitionException"} 78 ] 79 } 80 }, 81 "shapes":{ 82 "ApproximateSecondsBeforeTimedOut":{"type":"long"}, 83 "BinaryBlob":{"type":"blob"}, 84 "CertificateValidationException":{ 85 "type":"structure", 86 "members":{ 87 "message":{"shape":"errorMessage"} 88 }, 89 "error":{"httpStatusCode":400}, 90 "exception":true 91 }, 92 "DescribeJobExecutionJobId":{ 93 "type":"string", 94 "pattern":"[a-zA-Z0-9_-]+|^\\$next" 95 }, 96 "DescribeJobExecutionRequest":{ 97 "type":"structure", 98 "required":[ 99 "jobId", 100 "thingName" 101 ], 102 "members":{ 103 "jobId":{ 104 "shape":"DescribeJobExecutionJobId", 105 "location":"uri", 106 "locationName":"jobId" 107 }, 108 "thingName":{ 109 "shape":"ThingName", 110 "location":"uri", 111 "locationName":"thingName" 112 }, 113 "includeJobDocument":{ 114 "shape":"IncludeJobDocument", 115 "location":"querystring", 116 "locationName":"includeJobDocument" 117 }, 118 "executionNumber":{ 119 "shape":"ExecutionNumber", 120 "location":"querystring", 121 "locationName":"executionNumber" 122 } 123 } 124 }, 125 "DescribeJobExecutionResponse":{ 126 "type":"structure", 127 "members":{ 128 "execution":{"shape":"JobExecution"} 129 } 130 }, 131 "DetailsKey":{ 132 "type":"string", 133 "max":128, 134 "min":1, 135 "pattern":"[a-zA-Z0-9:_-]+" 136 }, 137 "DetailsMap":{ 138 "type":"map", 139 "key":{"shape":"DetailsKey"}, 140 "value":{"shape":"DetailsValue"} 141 }, 142 "DetailsValue":{ 143 "type":"string", 144 "max":1024, 145 "min":1, 146 "pattern":"[^\\p{C}]*+" 147 }, 148 "ExecutionNumber":{"type":"long"}, 149 "ExpectedVersion":{"type":"long"}, 150 "GetPendingJobExecutionsRequest":{ 151 "type":"structure", 152 "required":["thingName"], 153 "members":{ 154 "thingName":{ 155 "shape":"ThingName", 156 "location":"uri", 157 "locationName":"thingName" 158 } 159 } 160 }, 161 "GetPendingJobExecutionsResponse":{ 162 "type":"structure", 163 "members":{ 164 "inProgressJobs":{"shape":"JobExecutionSummaryList"}, 165 "queuedJobs":{"shape":"JobExecutionSummaryList"} 166 } 167 }, 168 "IncludeExecutionState":{"type":"boolean"}, 169 "IncludeJobDocument":{"type":"boolean"}, 170 "InvalidRequestException":{ 171 "type":"structure", 172 "members":{ 173 "message":{"shape":"errorMessage"} 174 }, 175 "error":{"httpStatusCode":400}, 176 "exception":true 177 }, 178 "InvalidStateTransitionException":{ 179 "type":"structure", 180 "members":{ 181 "message":{"shape":"errorMessage"} 182 }, 183 "error":{"httpStatusCode":409}, 184 "exception":true 185 }, 186 "JobDocument":{ 187 "type":"string", 188 "max":32768 189 }, 190 "JobExecution":{ 191 "type":"structure", 192 "members":{ 193 "jobId":{"shape":"JobId"}, 194 "thingName":{"shape":"ThingName"}, 195 "status":{"shape":"JobExecutionStatus"}, 196 "statusDetails":{"shape":"DetailsMap"}, 197 "queuedAt":{"shape":"QueuedAt"}, 198 "startedAt":{"shape":"StartedAt"}, 199 "lastUpdatedAt":{"shape":"LastUpdatedAt"}, 200 "approximateSecondsBeforeTimedOut":{"shape":"ApproximateSecondsBeforeTimedOut"}, 201 "versionNumber":{"shape":"VersionNumber"}, 202 "executionNumber":{"shape":"ExecutionNumber"}, 203 "jobDocument":{"shape":"JobDocument"} 204 } 205 }, 206 "JobExecutionState":{ 207 "type":"structure", 208 "members":{ 209 "status":{"shape":"JobExecutionStatus"}, 210 "statusDetails":{"shape":"DetailsMap"}, 211 "versionNumber":{"shape":"VersionNumber"} 212 } 213 }, 214 "JobExecutionStatus":{ 215 "type":"string", 216 "enum":[ 217 "QUEUED", 218 "IN_PROGRESS", 219 "SUCCEEDED", 220 "FAILED", 221 "TIMED_OUT", 222 "REJECTED", 223 "REMOVED", 224 "CANCELED" 225 ] 226 }, 227 "JobExecutionSummary":{ 228 "type":"structure", 229 "members":{ 230 "jobId":{"shape":"JobId"}, 231 "queuedAt":{"shape":"QueuedAt"}, 232 "startedAt":{"shape":"StartedAt"}, 233 "lastUpdatedAt":{"shape":"LastUpdatedAt"}, 234 "versionNumber":{"shape":"VersionNumber"}, 235 "executionNumber":{"shape":"ExecutionNumber"} 236 } 237 }, 238 "JobExecutionSummaryList":{ 239 "type":"list", 240 "member":{"shape":"JobExecutionSummary"} 241 }, 242 "JobId":{ 243 "type":"string", 244 "max":64, 245 "min":1, 246 "pattern":"[a-zA-Z0-9_-]+" 247 }, 248 "LastUpdatedAt":{"type":"long"}, 249 "QueuedAt":{"type":"long"}, 250 "ResourceNotFoundException":{ 251 "type":"structure", 252 "members":{ 253 "message":{"shape":"errorMessage"} 254 }, 255 "error":{"httpStatusCode":404}, 256 "exception":true 257 }, 258 "ServiceUnavailableException":{ 259 "type":"structure", 260 "members":{ 261 "message":{"shape":"errorMessage"} 262 }, 263 "error":{"httpStatusCode":503}, 264 "exception":true, 265 "fault":true 266 }, 267 "StartNextPendingJobExecutionRequest":{ 268 "type":"structure", 269 "required":["thingName"], 270 "members":{ 271 "thingName":{ 272 "shape":"ThingName", 273 "location":"uri", 274 "locationName":"thingName" 275 }, 276 "statusDetails":{"shape":"DetailsMap"}, 277 "stepTimeoutInMinutes":{"shape":"StepTimeoutInMinutes"} 278 } 279 }, 280 "StartNextPendingJobExecutionResponse":{ 281 "type":"structure", 282 "members":{ 283 "execution":{"shape":"JobExecution"} 284 } 285 }, 286 "StartedAt":{"type":"long"}, 287 "StepTimeoutInMinutes":{"type":"long"}, 288 "TerminalStateException":{ 289 "type":"structure", 290 "members":{ 291 "message":{"shape":"errorMessage"} 292 }, 293 "error":{"httpStatusCode":410}, 294 "exception":true 295 }, 296 "ThingName":{ 297 "type":"string", 298 "max":128, 299 "min":1, 300 "pattern":"[a-zA-Z0-9:_-]+" 301 }, 302 "ThrottlingException":{ 303 "type":"structure", 304 "members":{ 305 "message":{"shape":"errorMessage"}, 306 "payload":{"shape":"BinaryBlob"} 307 }, 308 "error":{"httpStatusCode":429}, 309 "exception":true 310 }, 311 "UpdateJobExecutionRequest":{ 312 "type":"structure", 313 "required":[ 314 "jobId", 315 "thingName", 316 "status" 317 ], 318 "members":{ 319 "jobId":{ 320 "shape":"JobId", 321 "location":"uri", 322 "locationName":"jobId" 323 }, 324 "thingName":{ 325 "shape":"ThingName", 326 "location":"uri", 327 "locationName":"thingName" 328 }, 329 "status":{"shape":"JobExecutionStatus"}, 330 "statusDetails":{"shape":"DetailsMap"}, 331 "stepTimeoutInMinutes":{"shape":"StepTimeoutInMinutes"}, 332 "expectedVersion":{"shape":"ExpectedVersion"}, 333 "includeJobExecutionState":{"shape":"IncludeExecutionState"}, 334 "includeJobDocument":{"shape":"IncludeJobDocument"}, 335 "executionNumber":{"shape":"ExecutionNumber"} 336 } 337 }, 338 "UpdateJobExecutionResponse":{ 339 "type":"structure", 340 "members":{ 341 "executionState":{"shape":"JobExecutionState"}, 342 "jobDocument":{"shape":"JobDocument"} 343 } 344 }, 345 "VersionNumber":{"type":"long"}, 346 "errorMessage":{"type":"string"} 347 } 348} 349