
# 批量更新迁移用户信息 - BatchUpdateUser
#### 功能介绍
数据库的迁移过程中，迁移用户需要进行单独处理，该接口可以批量设置需要迁移的用户和角色。
#### 调试
您可以在[API Explorer](https://apiexplorer.developer.huaweicloud.com/apiexplorer/doc?product=DRS&api=BatchUpdateUser)中调试该接口，支持自动认证鉴权。API Explorer可以自动生成SDK代码示例，并提供SDK代码示例调试功能。
#### 接口约束
仅迁移场景、PostgreSQL同步支持。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-drs/drs_api_0035.html)。
#### URI
PUT /v3/{project_id}/jobs/batch-update-user
表1路径参数 
| **参数**     | **是否必选** | **参数类型** | **描述**                                                                                                                                            |
|:---|:---|:---|:---|
| project_id | 是        | String   | 租户在某一Region下的Project ID。 获取方法请参见[获取项目ID](https://support.huaweicloud.com/api-drs/drs_api_0106.html)。 |
   
#### 请求参数
表2请求Header参数 
| **参数**       | **是否必选** | **参数类型** | **描述**                                                                                                                                                                                                                                                                                                                                                                                                                                              |
|:---|:---|:---|:---|
| Content-Type | 是        | String   | 指定类型为application/json。 缺省值：**application/json**                                                                                                                                                                                                                                                                                                                                                        |
| X-Auth-Token | 是        | String   | 从IAM服务获取的用户Token。                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| X-Language   | 否        | String   | 请求语言类型。 缺省值：**en-us** 取值： - **en-us**  - **zh-cn**   |
   
表3请求Body参数 
| **参数** | **是否必选** | **参数类型**         | **描述**                                                                                                                          |
|:---|:---|:---|:---|
| jobs   | 是        | Array of objects | 批量更新迁移用户请求列表。 详情请参见[表4]。 |
   
 表4jobs字段数据结构说明 
| **参数**                   | **是否必选** | **参数类型**         | **描述**                                                                                                                        |
|:---|:---|:---|:---|
| job_id                   | 是        | String           | 任务ID。                                                                                                                         |
| password                 | 否        | String           | 全局密码。                                                                                                                         |
| list                     | 否        | Array of objects | 用户迁移信息，迁移用户时必填。 详情请参见[表5]。 |
| user_roles               | 否        | Array of objects | 角色迁移信息，迁移用户时必填。 详情请参见[表6]。    |
| is_set_password          | 是        | Boolean          | 是否设置密码。                                                                                                                       |
| is_migrate_user          | 是        | Boolean          | 是否迁移用户。                                                                                                                       |
| is_sync_object_privilege | 否        | Boolean          | 是否同步权限，不填默认为false，PostgreSQL同步使用。                                                                                             |
   
 表5list字段数据结构说明 
| **名称**          | **是否必选** | **参数类型**         | **说明**  |
|:---|:---|:---|:---|
| id              | 是        | String           | 用户ID。   |
| account         | 是        | String           | 用户。     |
| comment         | 否        | String           | 说明。     |
| is_transfer     | 是        | Boolean          | 是否支持迁移。 |
| privileges      | 否        | Array of strings | 权限列表。   |
| password        | 否        | String           | 密码。     |
| is_set_password | 否        | Boolean          | 是否重置密码。 |
| roles           | 是        | Array of strings | 角色。     |
| selected        | 是        | Boolean          | 是否选择。   |
   
 表6user_roles字段数据结构说明 
| **名称**         | **是否必选** | **参数类型**         | **说明**        |
|:---|:---|:---|:---|
| role           | 是        | String           | 角色。           |
| comment        | 否        | String           | 说明。           |
| is_transfer    | 是        | Boolean          | 是否支持迁移。       |
| privileges     | 是        | String           | 权限。           |
| inherits_roles | 否        | Array of strings | 继承角色列表。       |
| selected       | 否        | Boolean          | 是否选择，不填默认不迁移。 |
   
#### 响应参数
**状态码：200**
表7响应Body参数 
| **参数**     | **参数类型**         | **描述**                                                                                                                   |
|:---|:---|:---|
| all_counts | Integer          | 总数。                                                                                                                      |
| results    | Array of objects | 迁移用户信息。 详情请参见[表8] |
   
 表8results字段数据结构说明 
| **参数**             | **参数类型**         | **描述**                                                                                                                           |
|:---|:---|:---|
| job_id             | String           | 任务ID。                                                                                                                            |
| is_global_password | String           | 是否使用全局密码。                                                                                                                        |
| message            | String           | 错误码。                                                                                                                             |
| user_list          | Array of objects | 用户列表数据。 详情请参见[表9]。   |
| roles_list         | Array of objects | 角色列表数据。 详情请参见[表10]。 |
| is_success         | Boolean          | 是否成功。                                                                                                                            |
   
 表9user_list字段数据结构说明 
| **参数**            | **参数类型**         | **描述**        |
|:---|:---|:---|
| id                | String           | 用户账号ID。       |
| account           | String           | 账号。           |
| comment           | String           | 说明。           |
| is_transfer       | Boolean          | 是否迁移。         |
| privileges        | Array of strings | 权限。           |
| password          | String           | 密码。           |
| roles             | Array of strings | 拥有的角色。        |
| selected          | Boolean          | 是否选择。         |
| no_privileges     | String           | 无法同步的用户权限。    |
| parent_account    | String           | 父用户。          |
| no_parent_account | String           | 无法同步父子关系的父用户。 |
   
 表10roles_list字段数据结构说明 
| **参数**         | **参数类型**         | **描述** |
|:---|:---|:---|
| role           | String           | 角色。    |
| comment        | String           | 说明。    |
| is_transfer    | Boolean          | 是否迁移。  |
| privileges     | String           | 权限。    |
| inherits_roles | Array of strings | 继承的角色。 |
| selected       | Boolean          | 是否选择。  |
   
#### 请求示例
- 指定任务设置需要迁移的用户
  ```
  https://{endpoint}/v3/054ba152d480d55b2f5dc0069e7ddef0/jobs/batch-update-user
  {
  "jobs": [{
  "is_migrate_user": true,
  "is_set_password": false,
  "job_id": "36c368d7-c03f-46e1-839a-b5c5bddjb105",
  "list": [{
  "account": "admin.testuser2",
  "comment": "",
  "id": "admin.testuser2",
  "is_set_password": true,
  "is_transfer": true,
  "password": null,
  "privileges": null,
  "roles": ["admin.clusterAdmin"],
  "selected": true
  }],
  "password": "",
  "user_roles": [{
  "comment": "",
  "inherits_roles": [
  "admin.roletest1",
  "admin.roletest3",
  "fastunit.roletest1"
  ],
  "is_transfer": true,
  "privileges": "[{u'resource': {u'cluster': True}, u'actions': [u'addShard']}, {u'resource': {u'db': u'fastunit', u'collection': u'coll'}, u'actions': [u'find', u'insert', u'remove', u'update']}, {u'resource': {u'db': u'mgo', u'collection': u'mycollection3'}, u'actions': [u'insert', u'remove', u'update']}, {u'resource': {u'db': u'', u'collection': u''}, u'actions': [u'find']}, {u'resource': {u'db': u'admin', u'collection': u''}, u'actions': [u'find']}]",
  "role": "admin.roletest4",
  "selected": true
  }]
  }]
  }
  ```
  
- 指定任务设置不迁移用户
  ```
  https://{endpoint}/v3/0549a6a31000d4e82fd1c00c3d6f2d76/jobs/batch-update-user
  {
    "jobs" : [ {
      "is_migrate_user" : false,
      "is_set_password" : false,
      "job_id" : "a281f62f-4631-45d6-a2d3-679a9f4jb105"
    } ]
  }
  ```
  
 
#### 响应示例
**状态码：200**
OK
```
{
  "all_counts" : 1,
  "results" : [ {
    "job_id" : "71604be1-f441-42f1-a09f-c5a52f0djb15",
    "is_success" : true
  } ]
}
```
#### 状态码
| **状态码** | **描述**      |
|:---|:---|
| 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)。
