
# 停止数据迁移任务 - StopMigrationTask
#### 功能介绍
停止数据迁移任务。
#### 调用方法
请参见[如何调用API](https://support.huaweicloud.com/api-dcs/api-call-process.html)。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-dcs/api-grant-policy.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
  
  | 授权项                      | 访问级别  | 资源类型（\*为必须）      | 条件键 | 别名                                                                                                                                                                                                                                                        | 依赖的授权项 |
  |:---|:---|:---|:---|:---|:---|
  | dcs:migrationTask:modify | Write | migrationTask \* | -   | - dcs:migrationTask:exchangeIp  - dcs:migrationTask:rollbackIp   | -      |
     
  
 
#### URI
POST /v2/{project_id}/migration-task/{task_id}/stop
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                |
|:---|:---|:---|:---|
| project_id | 是    | String | **参数解释**： 项目ID。获取方法请参见[获取项目ID](https://support.huaweicloud.com/api-dcs/dcs-api-0312045.html)。 **约束限制**： 不涉及。 **取值范围**： 不涉及。 **默认取值**： 不涉及。                     |
| task_id    | 是    | String | **参数解释**： 数据迁移任务ID。可通过[查询迁移任务列表](https://support.huaweicloud.com/api-dcs/ListMigrationTask.html)接口的响应参数task_id获取。 **约束限制**： 不涉及。 **取值范围**： 不涉及。 **默认取值**： 不涉及。 |
   
#### 请求参数
无
#### 响应参数
**状态码：200**
表2响应Body参数 
| 参数                       | 参数类型                                                                                 | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
|:---|:---|:---|
| task_id                  | String                                                                               | **参数解释**： 迁移任务ID。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| task_name                | String                                                                               | **参数解释**： 迁移任务名称。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| description              | String                                                                               | **参数解释**： 迁移任务描述。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| status                   | String                                                                               | **参数解释**： 迁移任务状态。 **取值范围**： - SUCCESS：成功。   - FAILED：失败。   - MIGRATING：迁移中。   - TERMINATED：已结束。   - TERMINATING：停止中。   - INCRMIGEATING：增量迁移中。   - FULLMIGRATING：全量迁移中。   - RUNNING：待配置。   - MIGRATION_FAILED：迁移失败。   - RELEASED：已释放。    |
| migration_type           | String                                                                               | **参数解释**： 迁移任务描述。 **取值范围**： - backupfile_import：备份导入。   - online_migration：在线迁移。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| migration_method         | String                                                                               | **参数解释**： 迁移方式。 **取值范围**： - full_amount_migration：全量迁移。   - incremental_migration：在线迁移。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| ecs_tenant_private_ip    | String                                                                               | **参数解释**： 迁移机租户侧私有IP，与目的/源redis私有IP处于同VPC，可将此IP加入白名单。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| backup_files             | [BackupFilesRespBody] object       | **参数解释**： 备份文件导入场景的备份文件列表。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| network_type             | String                                                                               | **参数解释**： 网络类型，包括vpc和vpn两种类型。 **取值范围**： - vpc   - vpn                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| source_instance          | [SourceInstanceRespBody] object | **参数解释**： 源Redis信息。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| target_instance          | [TargetInstanceRespBody] object | **参数解释**： 目标Redis信息。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| created_at               | String                                                                               | **参数解释**： 迁移任务创建时间。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| updated_at               | String                                                                               | **参数解释**： 迁移任务完成时间。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| released_at              | String                                                                               | **参数解释**： 迁移机释放时间。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| version                  | String                                                                               | **参数解释**： 迁移机版本。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| resume_mode              | String                                                                               | **参数解释**： 数据迁移操作模式。 **取值范围**： - auto：自动迁移。   - manual：手动迁移。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| supported_features       | Array of strings                                                                     | **参数解释**： 支持的特性。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| tenant_vpc_id            | String                                                                               | **参数解释**： 租户VPC ID。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| tenant_subnet_id         | String                                                                               | **参数解释**： 租户子网ID。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| tenant_security_group_id | String                                                                               | **参数解释**： 租户安全组ID。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| bandwidth_limit_mb       | String                                                                               | **参数解释**： 带宽限制速度。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| task_status              | String                                                                               | **参数解释**： 任务状态，只有在交换IP时会返回EXCHANGING。 **取值范围**： EXCHANGING: IP交换中。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
   
 表3BackupFilesRespBody 
| 参数          | 参数类型                                                                 | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
|:---|:---|:---|
| file_source | String                                                               | **参数解释**： 数据来源，包含OBS桶和备份记录两种类型。 **取值范围**： - self_build_obs：obs桶数据。   - backup_record：Redis备份文件。    |
| bucket_name | String                                                               | **参数解释**： OBS桶名。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                           |
| files       | Array of [FilesResp] objects | **参数解释**： 导入的备份文件列表。                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| backup_id   | String                                                               | **参数解释**： 备份记录ID。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                          |
   
 表4FilesResp 
| 参数        | 参数类型   | 描述                                                                                                                                                                       |
|:---|:---|:---|
| file_name | String | **参数解释**： 备份文件名。 **取值范围**： 不涉及。                           |
| size      | String | **参数解释**： 文件大小（单位：Byte）。 **取值范围**： 不涉及。                   |
| update_at | String | **参数解释**： 文件最后修改时间（格式YYYY-MM-DD HH:MM:SS）。 **取值范围**： 不涉及。 |
   
 表5SourceInstanceRespBody 
| 参数             | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
|:---|:---|:---|
| addrs          | String  | **参数解释**： Redis实例IP和域名地址。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                                          |
| password       | String  | **参数解释**： Redis密码。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                                                 |
| id             | String  | **参数解释**： Redis实例ID。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                                               |
| ip             | String  | **参数解释**： Redis IP地址。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                                              |
| port           | String  | **参数解释**： Redis端口。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                                                 |
| name           | String  | **参数解释**： Redis名称。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                                                 |
| proxy_multi_db | Boolean | **参数解释**： Proxy实例是否开启了多DB。 **取值范围**： - true：开启。   - false：未开启。             |
| db             | String  | **参数解释**： Redis数据库。 **取值范围**： 0-255。                                                                                                                                                                                                                                                                                                                                              |
| withProxy      | Boolean | **参数解释**： 是否有Proxy节点。 **取值范围**： - true：带有Proxy节点。   - false：不带有Proxy节点。    |
   
 表6TargetInstanceRespBody 
| 参数             | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
|:---|:---|:---|
| addrs          | String  | **参数解释**： Redis实例地址（source_instance信息中填写）。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                         |
| password       | String  | **参数解释**： Redis密码。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                                                 |
| id             | String  | **参数解释**： Redis实例ID。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                                               |
| ip             | String  | **参数解释**： Redis IP地址。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                                              |
| port           | String  | **参数解释**： Redis端口。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                                                 |
| name           | String  | **参数解释**： Redis名称。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                                                 |
| proxy_multi_db | Boolean | **参数解释**： Proxy实例是否开启了多DB。 **取值范围**： - true：开启。   - false：未开启。             |
| db             | String  | **参数解释**： Redis数据库。 **取值范围**： 0-255。                                                                                                                                                                                                                                                                                                                                              |
| withProxy      | Boolean | **参数解释**： 是否有Proxy节点。 **取值范围**： - true：带有Proxy节点。   - false：不带有Proxy节点。    |
   
**状态码：400**
表7响应Body参数 
| 参数            | 参数类型   | 描述                                                                                                                                                                                                        |
|:---|:---|:---|
| error_msg     | String | **参数解释**： 错误信息。 **取值范围**： 不涉及。                                                             |
| error_code    | String | **参数解释**： 错误码。 **取值范围**： 请参见[错误码](https://support.huaweicloud.com/api-dcs/ErrorCode.html)。 |
| error_ext_msg | String | **参数解释**： 扩展错误信息（暂未使用，不返回）。 **取值范围**： 不涉及。                                                 |
   
**状态码：401**
表8响应Body参数 
| 参数            | 参数类型   | 描述                                                                                                                                                                                                        |
|:---|:---|:---|
| error_msg     | String | **参数解释**： 错误信息。 **取值范围**： 不涉及。                                                             |
| error_code    | String | **参数解释**： 错误码。 **取值范围**： 请参见[错误码](https://support.huaweicloud.com/api-dcs/ErrorCode.html)。 |
| error_ext_msg | String | **参数解释**： 扩展错误信息（暂未使用，不返回）。 **取值范围**： 不涉及。                                                 |
   
**状态码：403**
表9响应Body参数 
| 参数            | 参数类型   | 描述                                                                                                                                                                                                        |
|:---|:---|:---|
| error_msg     | String | **参数解释**： 错误信息。 **取值范围**： 不涉及。                                                             |
| error_code    | String | **参数解释**： 错误码。 **取值范围**： 请参见[错误码](https://support.huaweicloud.com/api-dcs/ErrorCode.html)。 |
| error_ext_msg | String | **参数解释**： 扩展错误信息（暂未使用，不返回）。 **取值范围**： 不涉及。                                                 |
   
**状态码：404**
表10响应Body参数 
| 参数            | 参数类型   | 描述                                                                                                                                                                                                        |
|:---|:---|:---|
| error_msg     | String | **参数解释**： 错误信息。 **取值范围**： 不涉及。                                                             |
| error_code    | String | **参数解释**： 错误码。 **取值范围**： 请参见[错误码](https://support.huaweicloud.com/api-dcs/ErrorCode.html)。 |
| error_ext_msg | String | **参数解释**： 扩展错误信息（暂未使用，不返回）。 **取值范围**： 不涉及。                                                 |
   
**状态码：500**
表11响应Body参数 
| 参数            | 参数类型   | 描述                                                                                                                                                                                                        |
|:---|:---|:---|
| error_msg     | String | **参数解释**： 错误信息。 **取值范围**： 不涉及。                                                             |
| error_code    | String | **参数解释**： 错误码。 **取值范围**： 请参见[错误码](https://support.huaweicloud.com/api-dcs/ErrorCode.html)。 |
| error_ext_msg | String | **参数解释**： 扩展错误信息（暂未使用，不返回）。 **取值范围**： 不涉及。                                                 |
   
#### 请求示例
```
POST https://{dcs_endpoint}/v2/666486c2d9b948c1bbea57e714d744fa/migration-task/2fb6b7e2-5eb8-4380-9d60-ce8d12b19aca/stop
```
#### 响应示例
**状态码：200**
停止数据迁移任务成功。
```
{
  "task_name" : "migration1",
  "task_id" : "a276c1ffa0a54c2597fc824b917db317",
  "status" : "TERMINATING",
  "migration_type" : "online_migration",
  "migration_method" : "incremental_migration",
  "network_type" : "vpc",
  "source_instance" : {
    "addrs" : "192.168.1.2:6379",
    "id" : "86157b69-8a62-47f9-8c55-fa6ddc8927e1",
    "name" : "dcs-test",
    "ip" : "192.168.1.2",
    "port" : "6379",
    "proxy_multi_db" : false,
    "password" : "DCStest123",
    "db" : "0"
  },
  "target_instance" : {
    "addrs" : "192.168.1.2:6379",
    "id" : "86157b69-8a62-47f9-8c55-fa6ddc8927ee",
    "name" : "test-instance",
    "ip" : "192.168.1.2",
    "port" : "6379",
    "proxy_multi_db" : false,
    "password" : "DCStest123",
    "db" : "0"
  },
  "created_at" : "2019-10-22T14:44:30.000Z",
  "updated_at" : "2019-10-22T18:00:00.000Z"
}
```
#### SDK代码示例
SDK代码示例如下。
- [Java]
  ```
  package com.huaweicloud.sdk.test;
  import com.huaweicloud.sdk.core.auth.ICredential;
  import com.huaweicloud.sdk.core.auth.BasicCredentials;
  import com.huaweicloud.sdk.core.exception.ConnectionException;
  import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
  import com.huaweicloud.sdk.core.exception.ServiceResponseException;
  import com.huaweicloud.sdk.dcs.v2.region.DcsRegion;
  import com.huaweicloud.sdk.dcs.v2.*;
  import com.huaweicloud.sdk.dcs.v2.model.*;
  public class StopMigrationTaskSolution {
      public static void main(String[] args) {
          // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
          // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
          String ak = System.getenv("CLOUD_SDK_AK");
          String sk = System.getenv("CLOUD_SDK_SK");
          String projectId = "{project_id}";
          ICredential auth = new BasicCredentials()
                  .withProjectId(projectId)
                  .withAk(ak)
                  .withSk(sk);
          DcsClient client = DcsClient.newBuilder()
                  .withCredential(auth)
                  .withRegion(DcsRegion.valueOf("<YOUR REGION>"))
                  .build();
          StopMigrationTaskRequest request = new StopMigrationTaskRequest();
          request.withTaskId("{task_id}");
          try {
              StopMigrationTaskResponse response = client.stopMigrationTask(request);
              System.out.println(response.toString());
          } catch (ConnectionException e) {
              e.printStackTrace();
          } catch (RequestTimeoutException e) {
              e.printStackTrace();
          } catch (ServiceResponseException e) {
              e.printStackTrace();
              System.out.println(e.getHttpStatusCode());
              System.out.println(e.getRequestId());
              System.out.println(e.getErrorCode());
              System.out.println(e.getErrorMsg());
          }
      }
  }
  ```
- [Python]
  ```
  # coding: utf-8
  import os
  from huaweicloudsdkcore.auth.credentials import BasicCredentials
  from huaweicloudsdkdcs.v2.region.dcs_region import DcsRegion
  from huaweicloudsdkcore.exceptions import exceptions
  from huaweicloudsdkdcs.v2 import *
  if __name__ == "__main__":
      # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
      # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
      ak = os.environ["CLOUD_SDK_AK"]
      sk = os.environ["CLOUD_SDK_SK"]
      projectId = "{project_id}"
      credentials = BasicCredentials(ak, sk, projectId)
      client = DcsClient.new_builder() \
          .with_credentials(credentials) \
          .with_region(DcsRegion.value_of("<YOUR REGION>")) \
          .build()
      try:
          request = StopMigrationTaskRequest()
          request.task_id = "{task_id}"
          response = client.stop_migration_task(request)
          print(response)
      except exceptions.ClientRequestException as e:
          print(e.status_code)
          print(e.request_id)
          print(e.error_code)
          print(e.error_msg)
  ```
- [Go]
  ```
  package main
  import (
  "fmt"
  "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
      dcs "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/dcs/v2"
  "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/dcs/v2/model"
      region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/dcs/v2/region"
  )
  func main() {
      // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
      // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
      ak := os.Getenv("CLOUD_SDK_AK")
      sk := os.Getenv("CLOUD_SDK_SK")
      projectId := "{project_id}"
      auth, err := basic.NewCredentialsBuilder().
          WithAk(ak).
          WithSk(sk).
          WithProjectId(projectId).
          SafeBuild()
      if err != nil {
          fmt.Println(err)
          return
      }
      hcClient, err := dcs.DcsClientBuilder().
           WithRegion(region.ValueOf("<YOUR REGION>")).
           WithCredential(auth).
           SafeBuild()
      if err != nil {
          fmt.Println(err)
          return
      }
      client := dcs.NewDcsClient(hcClient)
      request := &model.StopMigrationTaskRequest{}
  request.TaskId = "{task_id}"
  response, err := client.StopMigrationTask(request)
  if err == nil {
          fmt.Printf("%+v\n", response)
      } else {
          fmt.Println(err)
      }
  }
  ```
- [更多]
  更多编程语言的SDK代码示例，请参见[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/DCS/sdk?api=StopMigrationTask&version=v2)的代码示例页签，可生成自动对应的SDK代码示例。
#### 状态码
| 状态码 | 描述          |
|:---|:---|
| 200 | 停止数据迁移任务成功。 |
| 400 | 非法请求。       |
| 401 | 认证信息非法。     |
| 403 | 请求被拒绝访问。    |
| 404 | 所请求的资源不存在。  |
| 500 | 内部服务错误。     |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-dcs/ErrorCode.html)。
