
# 批量预检查 - BatchCheckJobs
#### 功能介绍
批量预检查，校验是否可进行迁移、同步或灾备。
#### 调试
您可以在[API Explorer](https://apiexplorer.developer.huaweicloud.com/apiexplorer/doc?product=DRS&api=BatchCheckJobs)中调试该接口，支持自动认证鉴权。API Explorer可以自动生成SDK代码示例，并提供SDK代码示例调试功能。
#### 接口约束
- 任务创建成功之后，任务状态为CONFIGURATION，并且与源库、目标库测试连接均通过、修改任务接口调用成功后才能调用。
- 双主灾备时，需要正向任务状态为INCRE_TRANSFER_STARTED时，反向任务不需要调用该接口，父任务不支持调用。
- 为保证接口调用性能，建议批量调用数量不超过10个。
 
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-drs/drs_api_0035.html)。
#### URI
POST /v3/{project_id}/jobs/batch-precheck
表1路径参数 
| **参数**     | **是否必选** | **参数类型** | **描述**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
|:---|:---|:---|:---|
| project_id | 是        | String   | **参数解释：** 租户在某一Region下的Project ID。 获取方法请参见[获取项目ID](https://support.huaweicloud.com/api-drs/drs_api_0106.html)。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。 |
   
#### 请求参数
表2请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
|:---|:---|:---|:---|
| Content-Type | 是    | String | **参数解释**： 发送的实体的MIME类型。推荐用户默认使用application/json，如果API是对象、镜像上传等接口，媒体类型可按照流类型的不同进行确定。 **约束限制：** 不涉及。 **取值范围：** application/json **默认取值：** application/json                                                                                                                                                                                                                                                                |
| X-Auth-Token | 是    | String | **参数解释**： 从IAM服务获取的用户Token。 用户Token也就是调用获取用户Token接口的响应值，该接口是唯一不需要认证的接口。 请求响应成功后在响应消息头中包含的"X-Subject-Token"的值即为Token值。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                                                                                                                                                                                                                  |
| X-Language   | 否    | String | **参数解释**： 请求语言类型。 **约束限制：** 不涉及。 **取值范围：** - **en-us**：英语  - **zh-cn**：中文   **默认取** **值：** **en-us** |
   
表3请求Body参数 
| **参数** | **是否必选** | **参数类型**         | **描述**                                                                                                                                                                               |
|:---|:---|:---|:---|
| jobs   | 是        | Array of objects | **参数解释：** 批量预检查请求列表。 详情请参见[表4]。 |
   
 表4jobs字段数据结构说明 
| **参数**        | **是否必选** | **参数类型** | **描述**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
|:---|:---|:---|:---|
| job_id        | 是        | String   | **参数解释：** 任务ID，用于唯一标识一个数据复制任务，在查询、修改、删除等操作中作为任务的识别凭证。 **约束限制**： 不涉及。 **取值范围**： 不涉及。 **默认取值**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                   |
| precheck_mode | 是        | String   | **参数解释：** 预检查模式，指定执行预检查的场景类型。请按照任务对应的状态传值，否则可能导致预检查失败，影响任务启动。 **约束限制**： 不涉及。 **取值范围**： - **forStartJob：**任务配置中首次启动时预检查。  - **forRetryJob**：任务增量中编辑对象后预检查，或者任务失败后重试时预检查。   **默认取值**： 不涉及。 |
   
#### 响应参数
**状态码：200**
表5响应Body参数 
| **参数**  | **参数类型**         | **描述**                                                                                                                                                                                                                                                                                                                                                                                                       |
|:---|:---|:---|
| results | Array of objects | **参数解释：** 预检查响应体。 详情请参见[表6]。                                                                                                                                                                                         |
| count   | Integer          | **参数解释：** 返回的预检查结果总数，与results数组的长度一致。 **约束限制**： 不涉及。 **取值范围**： 不涉及。 |
   
 表6results字段数据结构说明 
| **参数**      | **参数类型** | **描述**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
|:---|:---|:---|
| id          | String   | **参数解释：** 任务ID，用于唯一标识一个数据复制任务，在查询、修改、删除等操作中作为任务的识别凭证。 **约束限制**： 不涉及。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                          |
| precheck_id | String   | **参数解释：** 预检查后返回的ID，可用于查询预检查结果。 **约束限制**： 不涉及。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                               |
| status      | String   | **参数解释：** 预检查结果状态，表示预检查是否通过。 **约束限制**： 不涉及。 **取值范围**： - **success**：预检查成功。  - **failed**：预检查失败。   |
| error_code  | String   | **参数解释：** 错误码，当预检查失败时返回的错误代码。 **约束限制**： 不涉及。 **取值范围**： 格式为DRS.XXXXXX。                                                                                                                                                                                                                                                                        |
| error_msg   | String   | **参数解释：** 错误详细信息，当预检查失败时返回的具体错误描述。 **约束限制**： 不涉及。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                             |
   
#### 请求示例
MySQL实时迁移任务首次启动预检查
```
https://{endpoint}/v3/054ba152d480d55b2f5dc0069e7ddef0/jobs/batch-precheck
{
  "jobs" : [ {
    "job_id" : "140b5236-88ad-43c8-811c-1268453jb101",
    "precheck_mode" : "forStartJob"
  } ]
}
```
#### 响应示例
**状态码：200**
OK
```
{
  "results" : [ {
    "id" : "140b5236-88ad-43c8-811c-1268453jb101",
    "status" : "success",
    "precheck_id" : "140b5236-88ad-43c8-811c-1268453jb101"
  } ],
  "count" : 1
}
```
#### 状态码
| **状态码** | **描述**      |
|:---|:---|
| 200     | OK          |
| 400     | Bad Request |
   
其他状态请参见[状态码](https://support.huaweicloud.com/api-drs/drs_api_0108.html)。
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-drs/drs_05_0004.html)。
