
# 批量结束任务或删除任务 - BatchDeleteJobs
#### 功能介绍
批量结束任务或删除实时迁移、实时同步、实时灾备任务。
对于包年/包月的任务，任务启动之后，您需要先进行订单退订，然后调该接口删除任务，退订详细操作请参见[退订包周期任务](https://support.huaweicloud.com/realtimesyn-drs/drs_10_0405.html)。
#### 调试
您可以在[API Explorer](https://apiexplorer.developer.huaweicloud.com/apiexplorer/doc?product=DRS&api=BatchDeleteJobs)中调试该接口，支持自动认证鉴权。API Explorer可以自动生成SDK代码示例，并提供SDK代码示例调试功能。
#### 接口约束
- CREATE_FAILED（创建失败）、RELEASE_RESOURCE_COMPLETE（已结束）和RELEASE_CHILD_TRANSFER_COMPLETE（子任务已结束）状态的任务才能删除，其他状态需要先结束任务，再进行删除。
- 双主灾备时，父任务才能调用。
 
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-drs/drs_api_0035.html)。
#### URI
DELETE /v3/{project_id}/jobs/batch-jobs
表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字段数据结构说明 
| **参数**                      | **是否必选** | **参数类型** | **描述**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
|:---|:---|:---|:---|
| delete_type                 | 是        | String   | **参数解释**： 批量结束或删除任务的操作类型，指定对任务执行结束还是删除操作。 **约束限制**： 包年/包月任务需要先手动退订，然后delete_type参数设置为delete调用该接口删除任务。 **取值范围**： - **terminate**：结束任务。  - **force_terminate**：强制结束任务。  - **delete**：删除任务。  - **roll_back_upgrade_active_standby**：转主备任务回滚。   **默认取值**： 不涉及。 |
| job_id                      | 是        | String   | **参数解释**： 任务ID，用于唯一标识需要结束或删除的数据复制任务。 **约束限制**： 不涉及。 **取值范围**： 不涉及。 **默认取值**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| is_show_breakpoint_position | 否        | Boolean  | **参数解释**： MySQL为源的数据复制任务，结束任务时是否展示断点信息。 **约束限制**： 仅MySQL为源的实时迁移、实时同步、实时灾备任务适用。 **取值范围**： - **true**：展示断点信息   - **false**：不展示断点信息    **默认取值**： 不涉及。                                                           |
   
#### 响应参数
**状态码：202**
表5响应Body参数 
| **参数**  | **参数类型**         | **描述**                                                                                                                                                                                                                                                                                                                                                                                                            |
|:---|:---|:---|
| results | Array of objects | **参数解释**： 批量结束任务或删除任务的响应体集合，包含每个任务的操作结果。 详情请参见[表6]。                                                                                                                                                                           |
| count   | Integer          | **参数解释**： 批量结束或删除任务的结果总数，与results数组的长度一致。 **约束限制**： 不涉及。 **取值范围**： 不涉及。 |
   
 表6results字段数据结构说明 
| **参数**     | **参数类型** | **描述**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
|:---|:---|:---|
| id         | String   | **参数解释**： 结束或删除操作的任务ID，用于标识该操作结果对应的任务。 **约束限制**： 不涉及。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                       |
| status     | String   | **参数解释**： 批量结束或删除操作的任务执行结果状态，表示该任务的操作是否成功。 **约束限制**： 不涉及。 **取值范围**： - **success**：操作成功。  - **failed**：操作失败。   |
| error_code | String   | **参数解释**： 错误码，当任务操作失败时返回的错误代码。 **约束限制**： 不涉及。 **取值范围**： 格式为DRS.XXXXXX。                                                                                                                                                                                                                                                                                      |
| error_msg  | String   | **参数解释**： 错误详细信息，当任务操作失败时返回的具体错误描述。 **约束限制**： 不涉及。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                           |
   
#### 请求示例
- 结束指定的两个任务
  ```
  https://{endpoint}/v3/054ba152d480d55b2f5dc0069e7ddef0/jobs/batch-jobs
  {
    "jobs" : [ {
      "delete_type" : "terminate",
      "job_id" : "4c6ac8c0-2f51-426a-97b2-cb2c668jb201"
    }, {
      "delete_type" : "terminate",
      "job_id" : "6211d20d-0006-41da-836e-db3301ajb20b"
    } ]
  }
  ```
  
- 删除指定任务
  ```
  https://{endpoint}/v3/054ba152d480d55b2f5dc0069e7ddef0/jobs/batch-jobs
  {
    "jobs" : [ {
      "delete_type" : "delete",
      "job_id" : "140b5236-88ad-43c8-811c-1268453jb101"
    } ]
  }
  ```
  
 
- 结束任务时展示断点信息请求示例：
  ```
  https://{endpoint}/v3/054ba152d480d55b2f5dc0069e7ddef0/jobs/batch-jobs 
    
   { 
     "jobs" : [{ 
       "delete_type" : "terminate", 
       "job_id" : "6211d20d-0006-41da-836e-db3301ajb20b", 
       "is_show_breakpoint_position" : true 
     } ] 
   }
  ```
  
#### 响应示例
**状态码：202**
Accepted
- 结束任务响应示例
  ```
  {
    "count" : 2,
    "results" : [ {
      "id" : "4c6ac8c0-2f51-426a-97b2-cb2c668jb201",
      "status" : "success"
    }, {
      "id" : "6211d20d-0006-41da-836e-db3301ajb20b",
      "status" : "failed",
      "error_code" : "DRS.M01504",
      "error_msg" : "Another operation is being performed on the migration task or the migration task is abnormal. Try again later."
    } ]
  }
  ```
  
- 删除任务响应示例
  ```
  {
    "count" : 1,
    "results" : [ {
      "id" : "140b5236-88ad-43c8-811c-1268453jb101",
      "status" : "success"
    } ]
  }
  ```
  
 
#### 状态码
| **状态码** | **描述**      |
|:---|:---|
| 202     | Accepted    |
| 400     | Bad Request |
   
其他状态请参见[状态码](https://support.huaweicloud.com/api-drs/drs_api_0108.html)。
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-drs/drs_05_0004.html)。
