

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# AWS IoT ジョブ API オペレーション
<a name="jobs-api"></a>

AWS IoT Jobs API は、次のいずれかのカテゴリに使用できます。
+ ジョブの管理や制御などの管理タスク。これは、*コントロールプレーン*です。
+ それらのジョブを実行するデバイス。これは、*データプレーンです*。これにより、データの送受信が可能になります。

ジョブの管理と制御には HTTPS プロトコル API を使用します。デバイスは、MQTT または HTTPS プロトコル API を使用できます。コントロールプレーンは、ジョブの作成と追跡の際に一般的な少数の呼び出しに対応するように設計されています。これは、通常、単一のリクエストの接続を開き、レスポンスが受信された後で接続を閉じます。データプレーンの HTTPS および MQTT API により、長時間のポーリングが可能になります。これらの API オペレーションは、数百万のデバイスに拡張できる大量のトラフィック用に設計されています。

各 AWS IoT Jobs HTTPS API には、 AWS Command Line Interface () から API を呼び出すことができる対応するコマンドがありますAWS CLI。コマンドは小文字で、API の名前を構成する単語の間にハイフンが付きます。たとえば、CLI で `CreateJob` API を呼び出すには、次のように入力します。

```
aws iot create-job ...
```

オペレーション中にエラーが発生した場合は、エラーに関する情報を含むエラーレスポンスが返されます。

## ErrorResponse
<a name="jobs-mqtt-error-response"></a>

 AWS IoT ジョブサービスオペレーション中に発生したエラーに関する情報が含まれます。

以下の例は、このオペレーションの構文を示しています。

```
{
    "code": "ErrorCode",
    "message": "string",
    "clientToken": "string",
    "timestamp": timestamp,
    "executionState": JobExecutionState
}
```

以下は、この `ErrorResponse` の説明です。

`code`  
ErrorCode を以下に設定できます。    
InvalidTopic  
リクエストは、どの API オペレーションにもマッピングされない AWS IoT Jobs 名前空間のトピックに送信されました。  
InvalidJson  
リクエストの内容を有効な UTF-8 エンコード JSON として解釈できませんでした。  
InvalidRequest  
リクエストの内容が無効です。たとえば、このコードは、`UpdateJobExecution` リクエストに無効なステータスの詳細が含まれている場合に返されます。メッセージには、エラーに関する詳細情報が含まれています。  
InvalidStateTransition  
ジョブ実行の現在の状態が原因で、ジョブ実行を有効でない状態に変更しようとするアップデートが試行されました。たとえば、「SUCCEEDED」状態のリクエストを「IN\$1PROGRESS」状態に変更しようとします。この場合、エラーメッセージの本文には `executionState` フィールドも含まれます。  
ResourceNotFound  
リクエストトピックによって指定された `JobExecution` が存在しません。  
VersionMismatch  
リクエストで指定された想定バージョンが、 AWS IoT ジョブサービスのジョブ実行のバージョンと一致しません。この場合、エラーメッセージの本文には `executionState` フィールドも含まれます。  
InternalError  
リクエストの処理中に内部エラーが発生しました。  
RequestThrottled  
リクエストがスロットリングされました。  
TerminalStateReached  
ターミナル状態のジョブでジョブについて説明するコマンドが実行されたときに発生します。

`message`  
エラーメッセージ文字列。

`clientToken`  
リクエストをその応答に関連付けるために使用される任意の文字列。

`timestamp`  
エポックからの秒単位の時間。

`executionState`  
[https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_JobExecutionState.html](https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_JobExecutionState.html) オブジェクト。このフィールドは、`code` フィールドの値が `InvalidStateTransition` または `VersionMismatch` の場合にのみ含まれます。これにより、これらの場合、現在のジョブ実行ステータスデータを取得するための別の `DescribeJobExecution` リクエストを実行する必要はありません。

**Topics**
+ [ジョブ管理と制御のデータ型](jobs-management-control-api.md)
+ [ジョブデバイス MQTT および HTTPS API オペレーションとデータ型](jobs-mqtt-https-api.md)

# ジョブ管理と制御のデータ型
<a name="jobs-management-control-api"></a>

**Topics**
+ [ジョブ管理と制御のデータ型](#jobs-control-plane-data-types)
+ [ジョブ管理と制御の API オペレーション](#jobs-http-api)

CLI コマンドの *endpoint-url* パラメータを特定するには、次のコマンドを実行します。

```
aws iot describe-endpoint --endpoint-type=iot:Jobs
```

このコマンドは、次の出力を返します。

```
{
"endpointAddress": "account-specific-prefix.jobs.iot.aws-region.amazonaws.com"
}
```

**注記**  
ジョブエンドポイントは ALPN `x-amzn-http-ca` をサポートしていません。  
デュアルスタックエンドポイント (IPv6 と IPv6) を使用している場合は、`iot:Data-ATS` エンドポイントを使用します。`iot:Jobs` エンドポイントは IPv4 のみをサポートします。

## ジョブ管理と制御のデータ型
<a name="jobs-control-plane-data-types"></a>

次のデータ型は、管理および制御アプリケーションが AWS IoT ジョブと通信するために使用されます。

### ジョブ
<a name="jobs-job"></a>

`Job` オブジェクトにはジョブの詳細が含まれています。以下に構文例を示します。

```
{
    "jobArn": "string", 
    "jobId": "string", 
    "status": "IN_PROGRESS|CANCELED|SUCCEEDED", 
    "forceCanceled": boolean,
    "targetSelection": "CONTINUOUS|SNAPSHOT",
    "comment": "string",
    "targets": ["string"], 
    "description": "string",
    "createdAt": timestamp,
    "lastUpdatedAt": timestamp,
    "completedAt": timestamp,
    "jobProcessDetails": {
        "processingTargets": ["string"],
        "numberOfCanceledThings": long, 
        "numberOfSucceededThings": long, 
        "numberOfFailedThings": long,
        "numberOfRejectedThings": long, 
        "numberOfQueuedThings": long, 
        "numberOfInProgressThings": long, 
        "numberOfRemovedThings": long, 
        "numberOfTimedOutThings": long
    }, 
    "presignedUrlConfig": {
        "expiresInSec": number, 
        "roleArn": "string"
    }, 
    "jobExecutionsRolloutConfig": { 
        "exponentialRate": { 
           "baseRatePerMinute": integer,
           "incrementFactor": integer,
           "rateIncreaseCriteria": { 
              "numberOfNotifiedThings": integer, // Set one or the other
              "numberOfSucceededThings": integer // of these two values.
           },
           "maximumPerMinute": integer
      }
    },    
    "abortConfig": { 
       "criteriaList": [ 
          { 
             "action": "string",
             "failureType": "string",
             "minNumberOfExecutedThings": integer,
             "thresholdPercentage": integer
          }
       ]
    },
    "SchedulingConfig": { 
      "startTime": string
      "endTime": string
      "timeZone": string


      "endTimeBehavior": string

   },
    "timeoutConfig": {
        "inProgressTimeoutInMinutes": long
    }
}
```

詳細については、「[https://docs.aws.amazon.com/iot/latest/apireference/API_Job.html](https://docs.aws.amazon.com/iot/latest/apireference/API_Job.html)」または「[https://docs.aws.amazon.com/cli/latest/reference/iot/job.html](https://docs.aws.amazon.com/cli/latest/reference/iot/job.html)」を参照してください。

### JobSummary
<a name="jobs-job-summary"></a>

`JobSummary` オブジェクトにはジョブの概要が含まれています。以下に構文例を示します。

```
{
    "jobArn": "string", 
    "jobId": "string",
    "status": "IN_PROGRESS|CANCELED|SUCCEEDED|SCHEDULED", 
    "targetSelection": "CONTINUOUS|SNAPSHOT",
    "thingGroupId": "string",
    "createdAt": timestamp, 
    "lastUpdatedAt": timestamp, 
    "completedAt": timestamp
}
```

詳細については、「[https://docs.aws.amazon.com/iot/latest/apireference/API_JobSummary.html](https://docs.aws.amazon.com/iot/latest/apireference/API_JobSummary.html)」または「[https://docs.aws.amazon.com/cli/latest/reference/iot/job-summary.html](https://docs.aws.amazon.com/cli/latest/reference/iot/job-summary.html)」を参照してください。

### JobExecution
<a name="jobs-job-execution"></a>

`JobExecution` オブジェクトは､デバイスでのジョブの実行を表します。以下に構文例を示します。

**注記**  
コントロールプレーン API オペレーションを使用する場合、`JobExecution` データ型には `JobDocument` フィールドが含まれません。この情報を取得するには、[https://docs.aws.amazon.com/iot/latest/apireference/API_GetJobDocument.html](https://docs.aws.amazon.com/iot/latest/apireference/API_GetJobDocument.html) API オペレーションまたは [https://docs.aws.amazon.com/cli/latest/reference/get-job-document.html](https://docs.aws.amazon.com/cli/latest/reference/get-job-document.html) CLI コマンドを使用できます。

```
{
    "approximateSecondsBeforeTimedOut": 50,
    "executionNumber": 1234567890,
    "forceCanceled": true|false,
    "jobId": "string",
    "lastUpdatedAt": timestamp, 
    "queuedAt": timestamp,
    "startedAt": timestamp,
    "status": "QUEUED|IN_PROGRESS|FAILED|SUCCEEDED|CANCELED|TIMED_OUT|REJECTED|REMOVED",
    "forceCanceled": boolean,
    "statusDetails": {
        "detailsMap": { 
            "string": "string" ...
        },
        "status": "string"
    }, 
    "thingArn": "string", 
    "versionNumber": 123
}
```

詳細については、「[https://docs.aws.amazon.com/iot/latest/apireference/API_JobExecution.html](https://docs.aws.amazon.com/iot/latest/apireference/API_JobExecution.html)」または「[https://docs.aws.amazon.com/cli/latest/reference/iot/job-execution.html](https://docs.aws.amazon.com/cli/latest/reference/iot/job-execution.html)」を参照してください。

### JobExecutionSummary
<a name="jobs-job-execution-summary"></a>

`JobExecutionSummary` オブジェクトには､ジョブ実行の概要情報が含まれています。以下に構文例を示します。

```
{
    "executionNumber": 1234567890,
    "queuedAt": timestamp,
    "lastUpdatedAt": timestamp,
    "startedAt": timestamp,
    "status": "QUEUED|IN_PROGRESS|FAILED|SUCCEEDED|CANCELED|TIMED_OUT|REJECTED|REMOVED"
}
```

詳細については、「[https://docs.aws.amazon.com/iot/latest/apireference/API_JobExecutionSummary.html](https://docs.aws.amazon.com/iot/latest/apireference/API_JobExecutionSummary.html)」または「[https://docs.aws.amazon.com/cli/latest/reference/iot/job-execution-summary.html](https://docs.aws.amazon.com/cli/latest/reference/iot/job-execution-summary.html)」を参照してください。

### JobExecutionSummaryForJob
<a name="jobs-job-execution-summary-for-job"></a>

`JobExecutionSummaryForJob` オブジェクトには、特定のジョブのジョブ実行に関する情報の概要が含まれています。以下に構文例を示します。

```
{
    "executionSummaries": [
        {
            "thingArn": "arn:aws:iot:us-west-2:123456789012:thing/MyThing", 
            "jobExecutionSummary": {
                "status": "IN_PROGRESS", 
                "lastUpdatedAt": 1549395301.389, 
                "queuedAt": 1541526002.609, 
                "executionNumber": 1
            }
        }, 
        ...
    ]
}
```

詳細については、「[https://docs.aws.amazon.com/iot/latest/apireference/API_JobExecutionSummaryForJob.html](https://docs.aws.amazon.com/iot/latest/apireference/API_JobExecutionSummaryForJob.html)」または「[https://docs.aws.amazon.com/cli/latest/reference/iot/job-execution-summary-for-job.html](https://docs.aws.amazon.com/cli/latest/reference/iot/job-execution-summary-for-job.html)」を参照してください。

### JobExecutionSummaryForThing
<a name="jobs-job-execution-summary-for-thing"></a>

`JobExecutionSummaryForThing` オブジェクトには、特定のモノのジョブ実行に関する情報の概要が含まれています。以下に構文例を示します。

```
{
    "executionSummaries": [
        {
            "jobExecutionSummary": {
                "status": "IN_PROGRESS", 
                "lastUpdatedAt": 1549395301.389, 
                "queuedAt": 1541526002.609, 
                "executionNumber": 1
            }, 
            "jobId": "MyThingJob"
        },
        ...
    ]
}
```

詳細については、「[https://docs.aws.amazon.com/iot/latest/apireference/API_JobExecutionSummaryForThing.html](https://docs.aws.amazon.com/iot/latest/apireference/API_JobExecutionSummaryForThing.html)」または「[https://docs.aws.amazon.com/cli/latest/reference/iot/job-execution-summary-for-thing.html](https://docs.aws.amazon.com/cli/latest/reference/iot/job-execution-summary-for-thing.html)」を参照してください。

## ジョブ管理と制御の API オペレーション
<a name="jobs-http-api"></a>

次の API オペレーションまたは CLI コマンドを使用します。

### AssociateTargetsWithJob
<a name="jobs-AssociateTargetsWithJob"></a>

グループを連続ジョブに関連付けます。以下の条件を満たす必要があります。
+ ジョブは､`targetSelection` フィールドを `CONTINUOUS` に設定して作成しておく必要があります。
+ ジョブのステータスは、現在 `IN_PROGRESS` です。
+ ジョブに関連付けられたターゲットの合計数が 100 を超えることはできません。

------
#### [ HTTPS request ]

```
POST /jobs/jobId/targets
 
{ 
"targets": [ "string" ],
"comment": "string"
}
```

詳細については、「[https://docs.aws.amazon.com/iot/latest/apireference/API_AssociateTargetsWithJob.html](https://docs.aws.amazon.com/iot/latest/apireference/API_AssociateTargetsWithJob.html)」を参照してください。

------
#### [ CLI syntax ]

```
aws iot  associate-targets-with-job \
--targets <value> \
--job-id <value> \
[--comment <value>]  \
[--cli-input-json <value>] \
[--generate-cli-skeleton]
```

 `cli-input-json` 形式:

```
{
"targets": [
"string"
],
"jobId": "string",
"comment": "string"
}
```

詳細については、「[https://docs.aws.amazon.com/cli/latest/reference/iot/associate-targets-with-job.html](https://docs.aws.amazon.com/cli/latest/reference/iot/associate-targets-with-job.html)」を参照してください。

------

### CancelJob
<a name="jobs-CancelJob"></a>

ジョブをキャンセルします｡

------
#### [ HTTPS request ]

```
PUT /jobs/jobId/cancel
 
{ 
"force": boolean,
"comment": "string",
"reasonCode": "string"
}
```

詳細については、「[https://docs.aws.amazon.com/iot/latest/apireference/API_CancelJob.html](https://docs.aws.amazon.com/iot/latest/apireference/API_CancelJob.html)」を参照してください。

------
#### [ CLI syntax ]

```
aws iot cancel-job \
    --job-id <value> \
    [--force <value>]  \
    [--comment <value>]  \
    [--reasonCode <value>]  \
    [--cli-input-json <value>] \
    [--generate-cli-skeleton]
```

 `cli-input-json` 形式:

```
{
    "jobId": "string",
    "force": boolean,
    "comment": "string"
}
```

詳細については、「[https://docs.aws.amazon.com/cli/latest/reference/iot/cancel-job.html](https://docs.aws.amazon.com/cli/latest/reference/iot/cancel-job.html)」を参照してください。

------

### CancelJobExecution
<a name="jobs-CancelJobExecution"></a>

デバイスでジョブ実行をキャンセルする。

------
#### [ HTTPS request ]

```
PUT /things/thingName/jobs/jobId/cancel
 
{ 
"force": boolean,
"expectedVersion": "string",
"statusDetails": {
    "string": "string"
    ...
}
}
```

詳細については、「[https://docs.aws.amazon.com/iot/latest/apireference/API_CancelJobExecution.html](https://docs.aws.amazon.com/iot/latest/apireference/API_CancelJobExecution.html)」を参照してください。

------
#### [ CLI syntax ]

```
aws iot cancel-job-execution \
--job-id <value> \
--thing-name <value> \
[--force | --no-force] \
[--expected-version <value>] \
[--status-details <value>]  \
[--cli-input-json <value>] \
[--generate-cli-skeleton]
```

 `cli-input-json` 形式:

```
{
"jobId": "string",
"thingName": "string",
"force": boolean,
"expectedVersion": long,
"statusDetails": {
"string": "string"
}
}
```

詳細については、「[https://docs.aws.amazon.com/cli/latest/reference/iot/cancel-job-execution.html](https://docs.aws.amazon.com/cli/latest/reference/iot/cancel-job-execution.html)」を参照してください。

------

### CreateJob
<a name="jobs-CreateJob"></a>

ジョブを作成します｡ ジョブドキュメントは、Amazon S3 バケット (`documentSource` パラメータ) またはリクエストの本文 (`document` パラメータ) のファイルへのリンクとして提供できます。

オプションの `targetSelection` パラメータを `CONTINUOUS` に設定することで、ジョブを*連続*にすることができます (デフォルトは `SNAPSHOT`)。連続ジョブは実行され続け、新規追加されたモノで起動するため、連続ジョブを使用して､グループに追加されたデバイスをオンボードまたはアップグレードできます。これは、ジョブ作成時点のグループ内のモノがジョブを完了した後でも発生する可能性があります。

ジョブでは、オプションの [TimeoutConfig](https://docs.aws.amazon.com//iot/latest/apireference/API_TimeoutConfig.html) に進捗タイマーの値を設定できます。進捗タイマーは更新できず、ジョブのすべての実行に適用されます。

`CreateJob` API の引数に対して、次の検証が実行されます。
+ `targets` 引数は、有効なモノまたはモノのグループの ARN のリストでなければなりません。すべてのモノとモノのグループは に存在する必要があります AWS アカウント。
+ `documentSource` 引数は、ジョブドキュメント有効な Amazon S3 URL である必要があります｡ Amazon S3 URL は `https://s3.amazonaws.com/bucketName/objectName` という形式です。
+ `documentSource` 引数で指定された URL に格納されているドキュメントは、UTF-8 でエンコードされた JSON ドキュメントである必要があります。
+ ジョブドキュメントのサイズは、MQTT メッセージのサイズ (128 KB) と暗号化の制限から､32 KB に制限されています。
+ は 内で一意`jobId`である必要があります AWS アカウント。

------
#### [ HTTPS request ]

```
PUT /jobs/jobId
 
{
"targets": [ "string" ],
"document": "string",
"documentSource": "string",
"description": "string",
"jobTemplateArn": "string",
"presignedUrlConfigData": {
    "roleArn": "string", 
    "expiresInSec": "integer" 
},
"targetSelection": "CONTINUOUS|SNAPSHOT",
"jobExecutionsRolloutConfig": { 
    "exponentialRate": { 
       "baseRatePerMinute": integer,
       "incrementFactor": integer,
       "rateIncreaseCriteria": { 
          "numberOfNotifiedThings": integer, // Set one or the other
          "numberOfSucceededThings": integer // of these two values.
       },
       "maximumPerMinute": integer
  }
},
"abortConfig": { 
   "criteriaList": [ 
      { 
         "action": "string",
         "failureType": "string",
         "minNumberOfExecutedThings": integer,
         "thresholdPercentage": integer
      }
   ]
},
"SchedulingConfig": { 
    "startTime": string
    "endTime": string
    "timeZone": string


    "endTimeBehavior": string

   }
"timeoutConfig": { 
  "inProgressTimeoutInMinutes": long
}
}
```

詳細については、「[https://docs.aws.amazon.com/iot/latest/apireference/API_CreateJob.html](https://docs.aws.amazon.com/iot/latest/apireference/API_CreateJob.html)」を参照してください。

------
#### [ CLI syntax ]

```
aws iot create-job \
    --job-id <value> \
    --targets <value> \
    [--document-source <value>] \
    [--document <value>] \
    [--description <value>] \
    [--job-template-arn <value>] \
    [--presigned-url-config <value>] \
    [--target-selection <value>] \
    [--job-executions-rollout-config <value>] \
    [--abort-config <value>] \
    [--timeout-config <value>] \
    [--document-parameters <value>]  \
    [--cli-input-json <value>] \
    [--generate-cli-skeleton]
```

 `cli-input-json` 形式:

```
{
    "jobId": "string",
    "targets": [ "string" ],
    "documentSource": "string",
    "document": "string",
    "description": "string",
    "jobTemplateArn": "string",
    "presignedUrlConfig": {
        "roleArn": "string",
        "expiresInSec": long
     },
    "targetSelection": "string",
    "jobExecutionsRolloutConfig": { 
          "exponentialRate": { 
              "baseRatePerMinute": integer,
              "incrementFactor": integer,
              "rateIncreaseCriteria": { 
                 "numberOfNotifiedThings": integer, // Set one or the other
                 "numberOfSucceededThings": integer // of these two values.
              },
      "maximumPerMinute": integer
      }
    }, 
    "abortConfig": { 
    "criteriaList": [ 
        { 
           "action": "string",
           "failureType": "string",
           "minNumberOfExecutedThings": integer,
           "thresholdPercentage": integer
         }
      ]
    },
    "timeoutConfig": { 
          "inProgressTimeoutInMinutes": long
    },
    "documentParameters": {
    "string": "string"
    }
}
```

詳細については、「[https://docs.aws.amazon.com/cli/latest/reference/iot/create-job.html](https://docs.aws.amazon.com/cli/latest/reference/iot/create-job.html)」を参照してください。

------

### DeleteJob
<a name="jobs-DeleteJob"></a>

ジョブおよびそれに関連するジョブの実行を削除します。

ジョブに作成されたジョブ実行の数およびその他さまざまな要素に応じて、ジョブの削除には時間がかかる場合があります。ジョブの削除中、そのジョブのステータスは「DELETION\$1IN\$1PROGRESS」として表示されます。ステータスがすでに「DELETION\$1IN\$1PROGRESS」のジョブを削除あるいはキャンセルしようとすると、エラーになります。

------
#### [ HTTPS request ]

```
DELETE /jobs/jobId?force=force 
```

詳細については、「[https://docs.aws.amazon.com/iot/latest/apireference/API_DeleteJob.html](https://docs.aws.amazon.com/iot/latest/apireference/API_DeleteJob.html)」を参照してください。

------
#### [ CLI syntax ]

```
aws iot  delete-job \
--job-id <value> \
[--force | --no-force]  \
[--cli-input-json <value>] \
[--generate-cli-skeleton]
```

 `cli-input-json` 形式:

```
{
"jobId": "string",
"force": boolean
}
```

詳細については、「[https://docs.aws.amazon.com/cli/latest/reference/iot/delete-job.html](https://docs.aws.amazon.com/cli/latest/reference/iot/delete-job.html)」を参照してください。

------

### DeleteJobExecution
<a name="jobs-DeleteJobExecution"></a>

ジョブの実行を削除します。

------
#### [ HTTPS request ]

```
DELETE /things/thingName/jobs/jobId/executionNumber/executionNumber?force=force
```

詳細については、「[https://docs.aws.amazon.com/iot/latest/apireference/API_DeleteJobExecution.html](https://docs.aws.amazon.com/iot/latest/apireference/API_DeleteJobExecution.html)」を参照してください。

------
#### [ CLI syntax ]

```
aws iot  delete-job-execution \
--job-id <value> \
--thing-name <value> \
--execution-number <value> \
[--force | --no-force]  \
[--cli-input-json <value>] \
[--generate-cli-skeleton]
```

 `cli-input-json` 形式:

```
{
"jobId": "string",
"thingName": "string",
"executionNumber": long,
"force": boolean
}
```

詳細については、「[https://docs.aws.amazon.com/cli/latest/reference/iot/delete-job-execution.html](https://docs.aws.amazon.com/cli/latest/reference/iot/delete-job-execution.html)」を参照してください。

------

### DescribeJob
<a name="jobs-DescribeJob"></a>

ジョブ実行の詳細を取得します。

------
#### [ HTTPS request ]

```
GET /jobs/jobId
```

詳細については、「[https://docs.aws.amazon.com/iot/latest/apireference/API_DescribeJob.html](https://docs.aws.amazon.com/iot/latest/apireference/API_DescribeJob.html)」を参照してください。

------
#### [ CLI syntax ]

```
aws iot describe-job \
--job-id <value>  \
[--cli-input-json <value>] \
[--generate-cli-skeleton]
```

 `cli-input-json` 形式:

```
{
"jobId": "string"
}
```

詳細については、「[https://docs.aws.amazon.com/cli/latest/reference/iot/describe-job.html](https://docs.aws.amazon.com/cli/latest/reference/iot/describe-job.html)」を参照してください。

------

### DescribeJobExecution
<a name="jobs-DescribeJobExecution"></a>

ジョブ実行の詳細を取得します。ジョブの実行ステータスは、`SUCCEEDED` または `FAILED` である必要があります。

------
#### [ HTTPS request ]

```
GET /things/thingName/jobs/jobId?executionNumber=executionNumber
```

詳細については、「[https://docs.aws.amazon.com/iot/latest/apireference/API_DescribeJobExecution.html](https://docs.aws.amazon.com/iot/latest/apireference/API_DescribeJobExecution.html)」を参照してください。

------
#### [ CLI syntax ]

```
aws iot  describe-job-execution \
--job-id <value> \
--thing-name <value> \
[--execution-number <value>]  \
[--cli-input-json <value>] \
[--generate-cli-skeleton]
```

 `cli-input-json` 形式:

```
{
"jobId": "string",
"thingName": "string",
"executionNumber": long
}
```

詳細については、「[https://docs.aws.amazon.com/cli/latest/reference/iot/describe-job-execution.html](https://docs.aws.amazon.com/cli/latest/reference/iot/describe-job-execution.html)」を参照してください。

------

### GetJobDocument
<a name="jobs-GetJobDocument"></a>

ジョブのジョブドキュメントを取得します。

**注記**  
プレースホルダーの URL は、返されたドキュメントの署名付き Amazon S3 URL に置き換えられません。署名付き URLs は、 AWS IoT ジョブサービスが MQTT 経由でリクエストを受け取った場合にのみ生成されます。

------
#### [ HTTPS request ]

```
GET /jobs/jobId/job-document
```

詳細については、「[https://docs.aws.amazon.com/iot/latest/apireference/API_GetJobDocument.html](https://docs.aws.amazon.com/iot/latest/apireference/API_GetJobDocument.html)」を参照してください。

------
#### [ CLI syntax ]

```
aws iot get-job-document \
--job-id <value>  \
[--cli-input-json <value>] \
[--generate-cli-skeleton]
```

 `cli-input-json` 形式:

```
{
"jobId": "string"
}
```

詳細については、「[https://docs.aws.amazon.com/cli/latest/reference/iot/get-job-document.html](https://docs.aws.amazon.com/cli/latest/reference/iot/get-job-document.html)」を参照してください。

------

### ListJobExecutionsForJob
<a name="jobs-listJobExecutionsForJob"></a>

ジョブのジョブ実行リストを取得します。

------
#### [ HTTPS request ]

```
GET /jobs/jobId/things?status=status&maxResults=maxResults&nextToken=nextToken
```

詳細については、「[https://docs.aws.amazon.com/iot/latest/apireference/API_ListJobExecutionsForJob.html](https://docs.aws.amazon.com/iot/latest/apireference/API_ListJobExecutionsForJob.html)」を参照してください。

------
#### [ CLI syntax ]

```
aws iot  list-job-executions-for-job \
--job-id <value> \
[--status <value>] \
[--max-results <value>] \
[--next-token <value>]  \
[--cli-input-json <value>] \
[--generate-cli-skeleton]
```

 `cli-input-json` 形式:

```
{
"jobId": "string",
"status": "string",
"maxResults": "integer",
"nextToken": "string"
}
```

詳細については、「[https://docs.aws.amazon.com/cli/latest/reference/iot/list-job-executions-for-job.html](https://docs.aws.amazon.com/cli/latest/reference/iot/list-job-executions-for-job.html)」を参照してください。

------

### ListJobExecutionsForThing
<a name="jobs-ListJobExecutionsForThing"></a>

モノのジョブ実行リストを取得します。

------
#### [ HTTPS request ]

```
GET /things/thingName/jobs?status=status&maxResults=maxResults&nextToken=nextToken
```

詳細については、「[https://docs.aws.amazon.com/iot/latest/apireference/API_ListJobExecutionsForThing.html](https://docs.aws.amazon.com/iot/latest/apireference/API_ListJobExecutionsForThing.html)」を参照してください。

------
#### [ CLI syntax ]

```
aws iot list-job-executions-for-thing \
--thing-name <value> \
[--status <value>] \
[--max-results <value>] \
[--next-token <value>]  \
[--cli-input-json <value>] \
[--generate-cli-skeleton]
```

 `cli-input-json` 形式:

```
{
"thingName": "string",
"status": "string",
"maxResults": "integer",
"nextToken": "string"
}
```

詳細については、「[https://docs.aws.amazon.com/cli/latest/reference/iot/list-job-executions-for-thing.html](https://docs.aws.amazon.com/cli/latest/reference/iot/list-job-executions-for-thing.html)」を参照してください。

------

### ListJobs
<a name="jobs-listJobs"></a>

内のジョブのリストを取得します AWS アカウント。

------
#### [ HTTPS request ]

```
GET /jobs?status=status&targetSelection=targetSelection&thingGroupName=thingGroupName&thingGroupId=thingGroupId&maxResults=maxResults&nextToken=nextToken
```

詳細については、「[https://docs.aws.amazon.com/iot/latest/apireference/API_ListJobs.html](https://docs.aws.amazon.com/iot/latest/apireference/API_ListJobs.html)」を参照してください。

------
#### [ CLI syntax ]

```
aws iot list-jobs \
[--status <value>] \
[--target-selection <value>] \
[--max-results <value>] \
[--next-token <value>] \
[--thing-group-name <value>] \
[--thing-group-id <value>]  \
[--cli-input-json <value>] \
[--generate-cli-skeleton]
```

 `cli-input-json` 形式:

```
{
"status": "string",
"targetSelection": "string",
"maxResults": "integer",
"nextToken": "string",
"thingGroupName": "string",
"thingGroupId": "string"
}
```

詳細については、「[https://docs.aws.amazon.com/cli/latest/reference/iot/list-jobs.html](https://docs.aws.amazon.com/cli/latest/reference/iot/list-jobs.html)」を参照してください。

------

### UpdateJob
<a name="jobs-UpdateJob"></a>

指定されたジョブのサポート対象フィールドを更新する。`timeoutConfig` の更新された値は、新しく進行中の起動に対してのみ有効になります。現在、進行中の起動は、以前のタイムアウト設定で引き続き起動します。

------
#### [ HTTPS request ]

```
PATCH /jobs/jobId
{
"description": "string",
"presignedUrlConfig": { 
  "expiresInSec": number,
  "roleArn": "string"
},
"jobExecutionsRolloutConfig": { 
  "exponentialRate": { 
     "baseRatePerMinute": number,
     "incrementFactor": number,
     "rateIncreaseCriteria": { 
        "numberOfNotifiedThings": number,
        "numberOfSucceededThings": number
     }, 
  "maximumPerMinute": number
  },
"abortConfig": { 
  "criteriaList": [ 
     { 
        "action": "string",
        "failureType": "string",
        "minNumberOfExecutedThings": number,
        "thresholdPercentage": number
     }
  ]
},
"timeoutConfig": { 
  "inProgressTimeoutInMinutes": number
}
}
```

詳細については、「[https://docs.aws.amazon.com/iot/latest/apireference/API_UpdateJob.html](https://docs.aws.amazon.com/iot/latest/apireference/API_UpdateJob.html)」を参照してください。

------
#### [ CLI syntax ]

```
aws iot  update-job \
--job-id <value> \
[--description <value>] \
[--presigned-url-config <value>] \
[--job-executions-rollout-config <value>] \
[--abort-config <value>] \
[--timeout-config <value>] \
[--cli-input-json <value>] \
[--generate-cli-skeleton]
```

 `cli-input-json` 形式:

```
{
"description": "string",
"presignedUrlConfig": { 
  "expiresInSec": number,
  "roleArn": "string"
},
"jobExecutionsRolloutConfig": { 
  "exponentialRate": { 
     "baseRatePerMinute": number,
     "incrementFactor": number,
     "rateIncreaseCriteria": { 
        "numberOfNotifiedThings": number,
        "numberOfSucceededThings": number
     }
  },
  "maximumPerMinute": number
},
"abortConfig": { 
  "criteriaList": [ 
     { 
        "action": "string",
        "failureType": "string",
        "minNumberOfExecutedThings": number,
        "thresholdPercentage": number
     }
  ]
},
"timeoutConfig": { 
  "inProgressTimeoutInMinutes": number
}
}
```

詳細については、「[https://docs.aws.amazon.com/cli/latest/reference/iot/update-job.html](https://docs.aws.amazon.com/cli/latest/reference/iot/update-job.html)」を参照してください。

------

# ジョブデバイス MQTT および HTTPS API オペレーションとデータ型
<a name="jobs-mqtt-https-api"></a>

次のコマンドは、MQTT および HTTPS プロトコル経由で利用できます。ジョブを実行するデバイスのデータプレーンで、これらの API オペレーションを使用します。

## ジョブデバイス MQTT および HTTPS データ型
<a name="jobs-data-plane-data-types"></a>

次のデータ型は、MQTT および HTTPS プロトコルを介して AWS IoT Jobs サービスと通信するために使用されます。

### JobExecution
<a name="jobs-mqtt-job-execution-data"></a>

`JobExecution` オブジェクトは､デバイスでのジョブの実行を表します。以下に構文例を示します。

**注記**  
MQTT および HTTP データプレーン API オペレーションを使用する場合、`JobExecution` データ型には `JobDocument` フィールドが含まれます。デバイスはこの情報を使用して、ジョブ実行からジョブドキュメントを取得できます。

```
{
    "jobId" : "string",
    "thingName" : "string",
    "jobDocument" : "string",
    "status": "QUEUED|IN_PROGRESS|FAILED|SUCCEEDED|CANCELED|TIMED_OUT|REJECTED|REMOVED",
    "statusDetails": {
        "string": "string"
    },
    "queuedAt" : "timestamp",
    "startedAt" : "timestamp",
    "lastUpdatedAt" : "timestamp",
    "versionNumber" : "number",
    "executionNumber": long
}
```

詳細については、「[https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_JobExecution.html](https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_JobExecution.html)」または「[https://docs.aws.amazon.com/cli/latest/reference/iot-data/job-execution.html](https://docs.aws.amazon.com/cli/latest/reference/iot-data/job-execution.html)」を参照してください。

### JobExecutionState
<a name="jobs-mqtt-job-execution-state"></a>

`JobExecutionState` には、ジョブの実行状態に関する情報が含まれます。以下に構文例を示します。

```
{
    "status": "QUEUED|IN_PROGRESS|FAILED|SUCCEEDED|CANCELED|TIMED_OUT|REJECTED|REMOVED",
    "statusDetails": {
        "string": "string"
        ...
    }
    "versionNumber": "number"
}
```

詳細については、「[https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_JobExecutionState.html](https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_JobExecutionState.html)」または「[https://docs.aws.amazon.com/cli/latest/reference/iot-data/job-execution-state.html](https://docs.aws.amazon.com/cli/latest/reference/iot-data/job-execution-state.html)」を参照してください。

### JobExecutionSummary
<a name="jobs-mqtt-job-execution-summary"></a>

ジョブの実行に関する情報のサブセットが含まれています。以下に構文例を示します。

```
{
    "jobId": "string",
    "queuedAt": timestamp,
    "startedAt": timestamp,
    "lastUpdatedAt": timestamp,
    "versionNumber": "number",
    "executionNumber": long 
}
```

詳細については、「[https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_JobExecutionSummary.html](https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_JobExecutionSummary.html)」または「[https://docs.aws.amazon.com/cli/latest/reference/iot-data/job-execution-summary.html](https://docs.aws.amazon.com/cli/latest/reference/iot-data/job-execution-summary.html)」を参照してください。

**Topics**
+ [ジョブデバイス MQTT および HTTPS データ型](#jobs-data-plane-data-types)
+ [ジョブデバイス MQTT API オペレーション](jobs-mqtt-api.md)
+ [ジョブデバイス MQTT API](jobs-http-device-api.md)

# ジョブデバイス MQTT API オペレーション
<a name="jobs-mqtt-api"></a><a name="jobs-mqtt-note"></a>

ジョブデバイスコマンドは、[ジョブコマンドに使用される予約済みトピック](reserved-topics.md#reserved-topics-job)に MQTT メッセージを発行することで発行できます。

デバイス側のクライアントは、これらのコマンドの応答メッセージトピックにサブスクライブする必要があります。 AWS IoT Device Client を使用する場合、デバイスはレスポンストピックに自動的にサブスクライブします。つまり、クライアントが応答メッセージトピックをサブスクライブしているかどうかにかかわらず、メッセージブローカーはコマンドメッセージを発行したクライアントに応答メッセージトピックを発行することになります。これらの応答メッセージはメッセージブローカーを通過せず、他のクライアントまたはルールによってサブスクライブする事はできません。

フリートモニタリングソリューション用のジョブと `jobExecution` イベントトピックをサブスクライブする際は、まず[ジョブおよびジョブ実行イベント](iot-events.md)を有効にして、クラウド側でイベント受信します。メッセージブローカーを介して処理され、 AWS IoT ルールで使用できるジョブ進行状況メッセージは [ジョブイベント](events-jobs.md) として発行されます。メッセージブローカーは、応答メッセージを発行するため、明示的なサブスクリプションがない場合でも、クライアントは、メッセージを受信し、受信したメッセージを識別するように設定される必要があります。また、クライアントは、クライアントがメッセージを処理する前に、受信メッセージトピックの *thingName* がクライアントの Thing 名に適用されることを確認する必要もあります。

**注記**  
MQTT Jobs API コマンドメッセージに応答して が AWS IoT 送信するメッセージは、明示的にサブスクライブしたかどうかにかかわらず、アカウントに課金されます。

以下は、MQTT API オペレーションとそのリクエストとレスポンスの構文を示しています。すべての MQTT API オペレーションには次のパラメータがあります。

clientToken  
リクエストとレスポンスを関連付けるために使用されるオプションのクライアントトークン。ここに任意の値を入力すると、レスポンスに反映されます。

`timestamp`  
メッセージが送信されたときの、エポックからの秒単位の時間。

## GetPendingJobExecutions
<a name="mqtt-getpendingjobexecutions"></a>

特定のモノについて、ターミナル状態にないすべてのジョブのリストを取得します。

この API を呼び出すには、`$aws/things/thingName/jobs/get` にメッセージを発行します。

リクエストペイロード:

```
{ "clientToken": "string" }
```

メッセージブローカーは、特定のサブスクリプションがなくても `$aws/things/thingName/jobs/get/accepted` および `$aws/things/thingName/jobs/get/rejected` を発行します。ただし、クライアントがメッセージを受信するには、それらをリッスンしている必要があります。詳細については、[[the note about Jobs API messages](#jobs-mqtt-note)](Jobs API メッセージに関する注記) を参照してください。

レスポンスペイロード:

```
{
"inProgressJobs" : [ JobExecutionSummary ... ], 
"queuedJobs" : [ JobExecutionSummary ... ],
"timestamp" : 1489096425069,
"clientToken" : "client-001"
}
```

ここで、`inProgressJobs` と `queuedJobs` は、`IN_PROGRESS` または `QUEUED` のステータスを持つ [JobExecutionSummary](jobs-mqtt-https-api.md#jobs-mqtt-job-execution-summary) オブジェクトのリストを返します。

## StartNextPendingJobExecution
<a name="mqtt-startnextpendingjobexecution"></a>

モノの次の保留中のジョブ実行を取得し、開始します (ステータスが `IN_PROGRESS` または `QUEUED`)。
+ ステータスが `IN_PROGRESS` のジョブの実行が最初に返されます。
+ ジョブの実行は、キューに保存された順に返されます。ジョブのターゲットグループにモノが追加または削除された場合は、既存のジョブ実行と比較して、新しいジョブ実行のロールアウト順序を確認します。
+ 次の保留中のジョブの実行が `QUEUED` の場合、そのステータスは `IN_PROGRESS` に変更され、ジョブの実行の詳細は指定どおりに設定されます。
+ 次の保留中のジョブの実行がすでに `IN_PROGRESS` である場合、そのステータスの詳細は変更されません。
+ 保留中のジョブの実行がない場合、レスポンスに `execution` フィールドは含まれません。
+ オプションで、`stepTimeoutInMinutes` プロパティの値を設定してステップタイマーを作成できます。`UpdateJobExecution` を実行してこのプロパティの値を更新しない場合、ステップタイマーが時間切れになると、ジョブの実行がタイムアウトになります。

この API を呼び出すには、`$aws/things/thingName/jobs/start-next` にメッセージを発行します。

リクエストペイロード:

```
{ 
"statusDetails": {
    "string": "job-execution-state"
    ...
},
"stepTimeoutInMinutes": long,
"clientToken": "string"
}
```

`statusDetails`  
ジョブ実行のステータスについて説明する名前と値のペアの集合。指定しない場合、`statusDetails` は変更されません。

`stepTimeOutInMinutes`  
このデバイスがこのジョブの実行を終了する必要のある時間を指定します。このタイマーが時間切れになるか、再設定される (`UpdateJobExecution` を呼び出し、ステータスを `IN_PROGRESS` に設定して、`stepTimeoutInMinutes` フィールドで新しいタイムアウト値を指定する) までに、ジョブの実行ステータスが終了状態に設定されない場合、ジョブの実行ステータスは `TIMED_OUT` に設定されます。このタイムアウトを設定しても、ジョブの作成時に指定したジョブの実行タイムアウト (`CreateJob` で `timeoutConfig` フィールドを使用することにより) には影響を与えません。  
このパラメータの有効な値の範囲は 1 〜 10,080 (1 分〜 7 日) です。-1 の値も有効で、現在のステップタイマー (先ほど UpdateJobExecutionRequest を使用して作成したもの) をキャンセルします。

メッセージブローカーは、特定のサブスクリプションがなくても `$aws/things/thingName/jobs/start-next/accepted` および `$aws/things/thingName/jobs/start-next/rejected` を発行します。ただし、クライアントがメッセージを受信するには、それらをリッスンしている必要があります。詳細については、[[the note about Jobs API messages](#jobs-mqtt-note)](Jobs API メッセージに関する注記) を参照してください。

レスポンスペイロード:

```
{
"execution" : JobExecutionData,
"timestamp" : timestamp,
"clientToken" : "string"
}
```

ここで、`execution` は [JobExecution](jobs-mqtt-https-api.md#jobs-mqtt-job-execution-data) オブジェクトです。例:

```
{
"execution" : {
    "jobId" : "022",
    "thingName" : "MyThing",
    "jobDocument" : "< contents of job document >",
    "status" : "IN_PROGRESS",
    "queuedAt" : 1489096123309,
    "lastUpdatedAt" : 1489096123309,
    "versionNumber" : 1,
    "executionNumber" : 1234567890
},
"clientToken" : "client-1",
"timestamp" : 1489088524284,
}
```

## DescribeJobExecution
<a name="mqtt-describejobexecution"></a>

ジョブの実行に関する詳細情報を取得します。

`jobId` を `$next` に設定して、モノ (ステータスが `IN_PROGRESS` または `QUEUED` のもの) に対して保留中の次のジョブ実行を返すことができます。

この API を呼び出すには、`$aws/things/thingName/jobs/jobId/get` にメッセージを発行します。

リクエストペイロード:

```
{ 
"jobId" : "022",
"thingName" : "MyThing",
"executionNumber": long,
"includeJobDocument": boolean,
"clientToken": "string" 
}
```

`thingName`  
デバイスに関連付けられたモノの名前。

`jobId`  
作成時にこのジョブに割り当てた一意の識別子。  
または、`$next` を使用して、モノ (ステータスが `IN_PROGRESS` または `QUEUED` のもの) に対して保留中の次のジョブ実行を返すことができます。この場合は､ステータスが `IN_PROGRESS` のジョブの実行が最初に返されます。ジョブの実行は、作成された順に返されます。

`executionNumber`  
(オプション) デバイスでジョブの実行を識別する番号。指定しない場合、最新のジョブ実行が返されます。

`includeJobDocument`  
(オプション) `false` に設定しない限り、レスポンスにはジョブドキュメントが含まれます。デフォルトは `true` です。

メッセージブローカーは、特定のサブスクリプションがなくても `$aws/things/thingName/jobs/jobId/get/accepted` および `$aws/things/thingName/jobs/jobId/get/rejected` を発行します。ただし、クライアントがメッセージを受信するには、それらをリッスンしている必要があります。詳細については、[[the note about Jobs API messages](#jobs-mqtt-note)](Jobs API メッセージに関する注記) を参照してください。

レスポンスペイロード:

```
{
"execution" : JobExecutionData,
"timestamp": "timestamp",
"clientToken": "string"
}
```

ここで、`execution` は [JobExecution](jobs-mqtt-https-api.md#jobs-mqtt-job-execution-data) オブジェクトです。

## UpdateJobExecution
<a name="mqtt-updatejobexecution"></a>

ジョブ実行のステータスを更新します。オプションで、ステップタイマーを作成するには、`stepTimeoutInMinutes` プロパティの値を設定します。`UpdateJobExecution` を再び実行してこのプロパティの値を更新しない場合、ステップタイマーが時間切れになると、ジョブの実行がタイムアウトになります。

この API を呼び出すには、`$aws/things/thingName/jobs/jobId/update` にメッセージを発行します。

リクエストペイロード:

```
{
"status": "job-execution-state",
"statusDetails": { 
    "string": "string"
    ...
},
"expectedVersion": "number",
"executionNumber": long,
"includeJobExecutionState": boolean,
"includeJobDocument": boolean,
"stepTimeoutInMinutes": long,
"clientToken": "string"
}
```

`status`  
ジョブ実行の新しいステータス (`IN_PROGRESS`、`FAILED`、`SUCCEEDED`、または `REJECTED`)。これはすべての更新時に指定する必要があります。

`statusDetails`  
ジョブ実行のステータスについて説明する名前と値のペアの集合。指定しない場合、`statusDetails` は変更されません。

`expectedVersion`  
ジョブ実行の予想される現在のバージョン。ジョブの実行を更新するたびに、そのバージョンがインクリメントされます。 AWS IoT Jobs サービスに保存されているジョブ実行のバージョンが一致しない場合、更新は`VersionMismatch`エラーで拒否されます。現在のジョブ実行ステータスデータを含む [ErrorResponse](jobs-api.md#jobs-mqtt-error-response) も返されます。(これにより、ジョブ実行ステータスデータを取得するために別の `DescribeJobExecution` リクエストを実行する必要はありません。)

`executionNumber`  
(オプション) デバイスでジョブの実行を識別する番号。指定しない場合、最新のジョブ実行が使用されます。

`includeJobExecutionState`  
(オプション) これが含まれ、`true` に設定されている場合、レスポンスには `JobExecutionState` フィールドが含まれます。デフォルトは `false` です。

`includeJobDocument`  
(オプション) これが含まれ、`true` に設定されている場合、レスポンスには `JobDocument` が含まれます。デフォルトは`false`です。

`stepTimeoutInMinutes`  
このデバイスがこのジョブの実行を終了する必要のある時間を指定します。タイマーが期限切れになるかタイマーがリセットされる前にジョブ実行ステータスが終了状態に設定されない場合、ジョブ実行ステータスは `TIMED_OUT` に設定されます。このタイムアウトを設定または再設定しても、ジョブの作成時に指定したジョブの実行タイムアウトには影響を与えません。

メッセージブローカーは、特定のサブスクリプションがなくても `$aws/things/thingName/jobs/jobId/update/accepted` および `$aws/things/thingName/jobs/jobId/update/rejected` を発行します。ただし、クライアントがメッセージを受信するには、それらをリッスンしている必要があります。詳細については、[[the note about Jobs API messages](#jobs-mqtt-note)](Jobs API メッセージに関する注記) を参照してください。

レスポンスペイロード:

```
{
"executionState": JobExecutionState,
"jobDocument": "string",
"timestamp": timestamp,
"clientToken": "string"
}
```

`executionState`  
[JobExecutionState](jobs-mqtt-https-api.md#jobs-mqtt-job-execution-state) オブジェクト。

`jobDocument`  
[ジョブドキュメント](key-concepts-jobs.md)オブジェクト。  
MQTT レスポンスでは、`jobDocument` フィールドは JSON オブジェクトです。HTTP レスポンスの場合は、JSON オブジェクトの文字列表現です。

`timestamp`  
メッセージが送信されたときの、エポックからの秒単位の時間。

`clientToken`  
リクエストとレスポンスを相関させるために使用されるクライアントトークン。

MQTT プロトコルを使用する場合、以下の更新を実行することもできます。

## JobExecutionsChanged
<a name="mqtt-jobexecutionschanged"></a>

あるジョブの実行中のジョブのリストに､ジョブの実行が追加または削除されるたびに送信されます。

トピックを使用します。

`$aws/things/thingName/jobs/notify`

メッセージペイロード:

```
{
"jobs" : {
    "JobExecutionState": [ [https://docs.aws.amazon.com/iot/latest/apireference/API_JobExecutionSummary.html](https://docs.aws.amazon.com/iot/latest/apireference/API_JobExecutionSummary.html) ... ]
         },
    "timestamp": timestamp
}
```

## NextJobExecutionChanged
<a name="mqtt-nextjobexecutionchanged"></a>

[https://docs.aws.amazon.com/iot/latest/apireference/API_DescribeJobExecution.html](https://docs.aws.amazon.com/iot/latest/apireference/API_DescribeJobExecution.html) に対して `jobId` `$next` で定義されている、モノに対する保留されているジョブ実行のリストで、次の順番のジョブに変更があったときに送信されます。このメッセージは、次のジョブの実行の詳細が変更されたときには送信されません。これは､`jobId` `$next` とともに `DescribeJobExecution` で返される次のジョブが変更されたときだけです。ステータスが `QUEUED` のジョブ実行 J1 と J2 を考えてみましょう。保留中のジョブの実行リストの次に J1 が表示されます。J1 の状態が変更されないまま J2 のステータスが `IN_PROGRESS` に変更された場合、この通知が送信され、J2 の詳細が含まれます。

トピックを使用します。

`$aws/things/thingName/jobs/notify-next`

メッセージペイロード:

```
{
"execution" : [https://docs.aws.amazon.com/iot/latest/apireference/API_JobExecution.html](https://docs.aws.amazon.com/iot/latest/apireference/API_JobExecution.html),
"timestamp": timestamp,
}
```

# ジョブデバイス MQTT API
<a name="jobs-http-device-api"></a>

デバイスは、ポート 443 の HTTP 署名バージョン 4 を使用して AWS IoT ジョブと通信できます。これは、 AWS SDKs と CLI で使用される方法です。これらのツールの詳細については、「[AWS CLI コマンドリファレンス: iot-jobs-data](https://docs.aws.amazon.com/cli/latest/reference/iot-jobs-data/index.html)」または「[AWS SDK とツール](https://aws.amazon.com/tools/#sdk)」を参照してください。

ジョブを実行するデバイスでは、次のコマンドを使用できます。MQTT プロトコルでの API オペレーションの使用方法については、「[ジョブデバイス MQTT API オペレーション](jobs-mqtt-api.md)」を参照してください。

## GetPendingJobExecutions
<a name="http-getpendingjobexecutions"></a>

特定のモノについて、ターミナル状態にないすべてのジョブのリストを取得します。

------
#### [ HTTPS request ]

```
GET /things/thingName/jobs
```

レスポンス:

```
{
"inProgressJobs" : [ JobExecutionSummary ... ], 
"queuedJobs" : [ JobExecutionSummary ... ]
}
```

詳細については、「[https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_GetPendingJobExecutions.html](https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_GetPendingJobExecutions.html)」を参照してください。

------
#### [ CLI syntax ]

```
aws iot-jobs-data get-pending-job-executions \
--thing-name <value>  \
[--cli-input-json <value>] \
[--generate-cli-skeleton]
```

 `cli-input-json` 形式:

```
{
"thingName": "string"
}
```

詳細については、「[https://docs.aws.amazon.com/cli/latest/reference/iot-jobs-data/get-pending-job-executions.html](https://docs.aws.amazon.com/cli/latest/reference/iot-jobs-data/get-pending-job-executions.html)」を参照してください。

------

## StartNextPendingJobExecution
<a name="http-startnextpendingjobexecution"></a>

モノ (ステータスが `IN_PROGRESS` または `QUEUED` のもの) に対する次の保留中のジョブ実行を取得し、開始します。
+ ステータスが `IN_PROGRESS` のジョブの実行が最初に返されます。
+ ジョブの実行は、作成された順に返されます。
+ 次の保留中のジョブの実行が `QUEUED` の場合、そのステータスは `IN_PROGRESS` に変更され、ジョブの実行のステータスの詳細は指定どおりに設定されます。
+ 次の保留中のジョブの実行がすでに `IN_PROGRESS` である場合、そのステータスの詳細は変更されません。
+ 保留中のジョブの実行がない場合、レスポンスに `execution` フィールドは含まれません。
+ オプションで、`stepTimeoutInMinutes` プロパティの値を設定してステップタイマーを作成できます。`UpdateJobExecution` を実行してこのプロパティの値を更新しない場合、ステップタイマーが時間切れになると、ジョブの実行がタイムアウトになります。

------
#### [ HTTPS request ]

以下に構文例を示します。

```
PUT /things/thingName/jobs/$next
{
"statusDetails": { 
    "string": "string" 
    ... 
},
"stepTimeoutInMinutes": long
}
```

詳細については、「[https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_StartNextPendingJobExecution.html](https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_StartNextPendingJobExecution.html)」を参照してください。

------
#### [ CLI syntax ]

**概要:**

```
aws iot-jobs-data  start-next-pending-job-execution \
--thing-name <value> \
{--step-timeout-in-minutes <value>] \
[--status-details <value>]  \
[--cli-input-json <value>] \
[--generate-cli-skeleton]
```

 `cli-input-json` 形式:

```
{
"thingName": "string",
"statusDetails": {
"string": "string"
},
"stepTimeoutInMinutes": long
}
```

詳細については、「[https://docs.aws.amazon.com/cli/latest/reference/iot-jobs-data/start-next-pending-job-execution.html](https://docs.aws.amazon.com/cli/latest/reference/iot-jobs-data/start-next-pending-job-execution.html)」を参照してください。

------

## DescribeJobExecution
<a name="http-describejobexecution"></a>

ジョブの実行に関する詳細情報を取得します。

`jobId` を `$next` に設定して、モノに対して保留中の次のジョブ実行を返すことができます。ジョブの実行ステータスは、`QUEUED` または `IN_PROGRESS` である必要があります。

------
#### [ HTTPS request ]

リクエスト:

```
GET /things/thingName/jobs/jobId?executionNumber=executionNumber&includeJobDocument=includeJobDocument
```

レスポンス:

```
{
"execution" : JobExecution,
}
```

詳細については、「[https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_DescribeJobExecution.html](https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_DescribeJobExecution.html)」を参照してください。

------
#### [ CLI syntax ]

**概要:**

```
aws iot-jobs-data  describe-job-execution \
--job-id <value> \
--thing-name <value> \
[--include-job-document | --no-include-job-document] \
[--execution-number <value>]  \
[--cli-input-json <value>] \
[--generate-cli-skeleton]
```

 `cli-input-json` 形式:

```
{
"jobId": "string",
"thingName": "string",
"includeJobDocument": boolean,
"executionNumber": long
}
```

詳細については、「[https://docs.aws.amazon.com/cli/latest/reference/iot-data/describe-job-execution.html](https://docs.aws.amazon.com/cli/latest/reference/iot-data/describe-job-execution.html)」を参照してください。

------

## UpdateJobExecution
<a name="http-updatejobexecution"></a>

ジョブ実行のステータスを更新します。オプションで、`stepTimeoutInMinutes` プロパティの値を設定してステップタイマーを作成できます。`UpdateJobExecution` を再び実行してこのプロパティの値を更新しない場合、ステップタイマーが時間切れになると、ジョブの実行がタイムアウトになります。

------
#### [ HTTPS request ]

リクエスト:

```
POST /things/thingName/jobs/jobId
{
"status": "job-execution-state",
"statusDetails": { 
    "string": "string"
    ...
},
"expectedVersion": "number",
"includeJobExecutionState": boolean,
"includeJobDocument": boolean,
"stepTimeoutInMinutes": long,
"executionNumber": long 
}
```

詳細については、「[https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_UpdateJobExecution.html](https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_UpdateJobExecution.html)」を参照してください。

------
#### [ CLI syntax ]

**概要:**

```
aws iot-jobs-data  update-job-execution \
--job-id <value> \
--thing-name <value> \
--status <value> \
[--status-details <value>] \
[--expected-version <value>] \
[--include-job-execution-state | --no-include-job-execution-state] \
[--include-job-document | --no-include-job-document] \
[--execution-number <value>]  \
[--cli-input-json <value>] \
[--step-timeout-in-minutes <value>] \
[--generate-cli-skeleton]
```

 `cli-input-json` 形式:

```
{
"jobId": "string",
"thingName": "string",
"status": "string",
"statusDetails": {
"string": "string"
},
"stepTimeoutInMinutes": number,
"expectedVersion": long,
"includeJobExecutionState": boolean,
"includeJobDocument": boolean,
"executionNumber": long
}
```

詳細については、「[https://docs.aws.amazon.com/cli/latest/reference/iot-data/update-job-execution.html](https://docs.aws.amazon.com/cli/latest/reference/iot-data/update-job-execution.html)」を参照してください。

------