
# 批量创建保护实例 - BatchCreateProtectedInstances
#### 功能介绍
典型场景：没有特殊操作场景 接口功能：批量创建保护实例。保护实例创建完成后，系统默认容灾站点云服务器名称与生产站点云服务器名称相同，但ID不同。
#### 接口约束
接口约束：保护组的状态为available或者protected；云服务器不能挂载共享云硬盘；云服务器不能已经被创建保护实例；云服务器必须与保护组在同一个VPC；由弹性伸缩组伸缩时所创建的云服务器，在对该云服务器做容灾保护后，当弹性伸缩组缩容时，不支持对该云服务器执行删除操作。创建保护实例时，如果生产站点服务器为Windows云服务器且设置为密钥方式登录，请确保生产站点服务器使用的密钥对存在，否则可能导致云平台无法创建容灾站点云服务器，从而导致创建保护实例失败（如果生产站点云服务器对应的密钥对已被删除，请重新创建相同名称的密钥对）。创建保护实例时，选择的生产站点云服务器如果加入了企业项目，保护实例创建成功后，容灾站点云服务器不会自动加入企业项目，如有需要请手动将容灾站点云服务器加入到企业项目。创建保护实例完成并对生产站点的云服务器做容灾保护后，生产站点云服务器中的"主机名"、"云服务器名称"、"安全组"、"委托"、"云服务器组"、"标签"和"自动恢复"配置项修改不会再自动同步到容灾站点的云服务器上。您可以在控制台页面上手动将这些配置项的修改添加到容灾站点的云服务器上。
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/SDRS/doc?api=BatchCreateProtectedInstances)中调试该接口，支持自动认证鉴权。API Explorer可以自动生成SDK代码示例，并提供SDK代码示例调试功能。
#### URI
POST /v1/{project_id}/protected-instances/batch
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述    |
|:---|:---|:---|:---|
| project_id | 是    | String | 项目ID。 |
   
#### 请求参数
表2请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                      |
|:---|:---|:---|:---|
| X-Auth-Token | 是    | String | 用户Token。通过调用IAM服务获取用户Token接口获取（响应消息头中X-Subject-Token的值） |
   
表3请求Body参数 
| 参数                  | 是否必选 | 参数类型                                                                                                                   | 描述     |
|:---|:---|:---|:---|
| protected_instances | 是    | [BatchCreateProtectedInstancesRequestParams] object | 保护实例信息 |
   
 表4BatchCreateProtectedInstancesRequestParams 
| 参数                | 是否必选 | 参数类型                                                               | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
|:---|:---|:---|:---|
| name_prefix       | 是    | String                                                             | 保护实例的名称前缀，批量创建保护实例时，为区分不同保护实例，创建过程中系统会自动在名称后加"-0001"的类似标记，故此时名称的长度为\[1-59\]个字符。只包含中文字符、英文字母（a～ｚ、Ａ～Ｚ）、数字（０\~９）、小数点（．）、下划线（_）、中划线（-）。 最小长度：**1** 最大长度：**59**                                                                                                                                                                                                                                                                          |
| description       | 否    | String                                                             | 保护实例的描述，最大支持长度为64个字符。不能包含左尖括号（\<）或右尖括号（\>）。 最小长度：**1** 最大长度：**64**                                                                                                                                                                                                                                                                                                                                                                     |
| server_group_id   | 是    | String                                                             | 需要加入的保护组ID。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| cluster_id        | 否    | String                                                             | 专属分布式存储池ID。当容灾站点磁盘选择专属分布式存储时指定该字段。                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| primary_subnet_id | 否    | String                                                             | 容灾站点云服务器主网卡所在的子网subnetID，与neutron_network_id字段值一致。                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| tenancy           | 否    | String                                                             | 在专属主机或共享池中创建容灾站点云服务器，默认为在共享池中创建。值为：shared或dedicated。shared：表示共享池。dedicated：表示专属主机。 缺省值：**shared** 枚举值： - **shared**   - **dedicated**    |
| dedicated_host_id | 否    | String                                                             | 专属主机id，此属性仅在tenancy值为dedicated时有效。若不指定此属性，系统将自动分配租户可以自动放置弹性云服务器的专属主机。                                                                                                                                                                                                                                                                                                                                                                                                                              |
| servers           | 是    | Array of [ServerInfo] objects   | 用于创建保护实例的云服务器信息列表。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| tags              | 否    | Array of [ResourceTag] objects | 标签列表。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
   
 表5ServerInfo 
| 参数        | 是否必选 | 参数类型   | 描述                     |
|:---|:---|:---|:---|
| server_id | 是    | String | 指定的生产站点云服务器ID。         |
| flavorRef | 否    | String | 指定的容灾站点云服务器的flavor ID。 |
   
 表6ResourceTag 
| 参数    | 是否必选 | 参数类型   | 描述                                                                                                                                     |
|:---|:---|:---|:---|
| key   | 是    | String | 键。同一资源的key值不能重复。最大长度为36个UNICODE字符。key不能为空，不允许为空字符串。不能包含以下字符：非打印字符ASCII(0-31)特殊字符"\*","\<","\>","\\","=",",","\|","/"键。不能为空。对于同一资源键值唯一。 |
| value | 是    | String | 值。最大长度为43个UNICODE字符。value不能为空，可以为空字符串。不能包含以下字符：非打印字符ASCII(0-31)特殊字符"\*","\<","\>","\\","=",",","\|","/"。长度不超过43个字符。                    |
   
#### 响应参数
**状态码： 202**
表7响应Body参数 
| 参数     | 参数类型   | 描述          |
|:---|:---|:---|
| job_id | String | 成功返回jobId信息 |
   
**状态码： 400**
表8响应Body参数 
| 参数    | 参数类型                                                  | 描述     |
|:---|:---|:---|
| error | [ErrorInfo] object | 失败返回结构 |
   
 表9ErrorInfo 
| 参数      | 参数类型   | 描述   |
|:---|:---|:---|
| message | String | 错误信息 |
| code    | String | 错误码  |
   
**状态码： 401**
表10响应Body参数 
| 参数    | 参数类型                                                  | 描述     |
|:---|:---|:---|
| error | [ErrorInfo] object | 失败返回结构 |
   
表11ErrorInfo 
| 参数      | 参数类型   | 描述   |
|:---|:---|:---|
| message | String | 错误信息 |
| code    | String | 错误码  |
   
**状态码： 403**
表12响应Body参数 
| 参数    | 参数类型                                                  | 描述     |
|:---|:---|:---|
| error | [ErrorInfo] object | 失败返回结构 |
   
表13ErrorInfo 
| 参数      | 参数类型   | 描述   |
|:---|:---|:---|
| message | String | 错误信息 |
| code    | String | 错误码  |
   
**状态码： 404**
表14响应Body参数 
| 参数    | 参数类型                                                  | 描述     |
|:---|:---|:---|
| error | [ErrorInfo] object | 失败返回结构 |
   
表15ErrorInfo 
| 参数      | 参数类型   | 描述   |
|:---|:---|:---|
| message | String | 错误信息 |
| code    | String | 错误码  |
   
**状态码： 405**
表16响应Body参数 
| 参数    | 参数类型                                                  | 描述     |
|:---|:---|:---|
| error | [ErrorInfo] object | 失败返回结构 |
   
表17ErrorInfo 
| 参数      | 参数类型   | 描述   |
|:---|:---|:---|
| message | String | 错误信息 |
| code    | String | 错误码  |
   
**状态码： 406**
表18响应Body参数 
| 参数    | 参数类型                                                  | 描述     |
|:---|:---|:---|
| error | [ErrorInfo] object | 失败返回结构 |
   
表19ErrorInfo 
| 参数      | 参数类型   | 描述   |
|:---|:---|:---|
| message | String | 错误信息 |
| code    | String | 错误码  |
   
**状态码： 407**
表20响应Body参数 
| 参数    | 参数类型                                                  | 描述     |
|:---|:---|:---|
| error | [ErrorInfo] object | 失败返回结构 |
   
表21ErrorInfo 
| 参数      | 参数类型   | 描述   |
|:---|:---|:---|
| message | String | 错误信息 |
| code    | String | 错误码  |
   
**状态码： 408**
表22响应Body参数 
| 参数    | 参数类型                                                  | 描述     |
|:---|:---|:---|
| error | [ErrorInfo] object | 失败返回结构 |
   
表23ErrorInfo 
| 参数      | 参数类型   | 描述   |
|:---|:---|:---|
| message | String | 错误信息 |
| code    | String | 错误码  |
   
**状态码： 409**
表24响应Body参数 
| 参数    | 参数类型                                                  | 描述     |
|:---|:---|:---|
| error | [ErrorInfo] object | 失败返回结构 |
   
表25ErrorInfo 
| 参数      | 参数类型   | 描述   |
|:---|:---|:---|
| message | String | 错误信息 |
| code    | String | 错误码  |
   
**状态码： 500**
表26响应Body参数 
| 参数    | 参数类型                                                  | 描述     |
|:---|:---|:---|
| error | [ErrorInfo] object | 失败返回结构 |
   
表27ErrorInfo 
| 参数      | 参数类型   | 描述   |
|:---|:---|:---|
| message | String | 错误信息 |
| code    | String | 错误码  |
   
**状态码： 501**
表28响应Body参数 
| 参数    | 参数类型                                                  | 描述     |
|:---|:---|:---|
| error | [ErrorInfo] object | 失败返回结构 |
   
表29ErrorInfo 
| 参数      | 参数类型   | 描述   |
|:---|:---|:---|
| message | String | 错误信息 |
| code    | String | 错误码  |
   
**状态码： 502**
表30响应Body参数 
| 参数    | 参数类型                                                  | 描述     |
|:---|:---|:---|
| error | [ErrorInfo] object | 失败返回结构 |
   
表31ErrorInfo 
| 参数      | 参数类型   | 描述   |
|:---|:---|:---|
| message | String | 错误信息 |
| code    | String | 错误码  |
   
**状态码： 503**
表32响应Body参数 
| 参数    | 参数类型                                                  | 描述     |
|:---|:---|:---|
| error | [ErrorInfo] object | 失败返回结构 |
   
表33ErrorInfo 
| 参数      | 参数类型   | 描述   |
|:---|:---|:---|
| message | String | 错误信息 |
| code    | String | 错误码  |
   
**状态码： 504**
表34响应Body参数 
| 参数    | 参数类型                                                  | 描述     |
|:---|:---|:---|
| error | [ErrorInfo] object | 失败返回结构 |
   
表35ErrorInfo 
| 参数      | 参数类型   | 描述   |
|:---|:---|:---|
| message | String | 错误信息 |
| code    | String | 错误码  |
   
#### 请求示例
```
POST https://{Endpoint}/v1/{project_id}/protected-instances/batch
{
  "protected_instances" : {
    "name_prefix" : "test_protected_instance_name",
    "description" : "my description",
    "server_group_id" : "523ab8ad-3759-4933-9436-4cf4ebb20867",
    "primary_subnet_id" : "a32217fh-3413-c313-6342-3124d3491502",
    "servers" : [ {
      "server_id" : "403b603d-1d91-42cc-a357-81f3c2daf43f",
      "flavorRef" : "c3.medium.2"
    }, {
      "server_id" : "8f5dd226-6cc0-4fe8-9786-b8b3359b234b"
    } ],
    "tags" : [ {
      "key" : "test",
      "value" : "aaaaa"
    } ]
  }
}
```
#### 响应示例
**状态码： 202**
Accepted
```
{
  "job_id" : "0000000062db92d70162db9d200f00bb"
}
```
**状态码： 400**
Bad Request
```
{
  "error" : {
    "message" : "Server already used to create a protected instance",
    "code" : "SDRS.1305"
  }
}
```
#### 状态码
| 状态码 | 描述                            |
|:---|:---|
| 202 | Accepted                      |
| 400 | Bad Request                   |
| 401 | Unauthorized                  |
| 403 | Forbidden                     |
| 404 | Not Found                     |
| 405 | Method Not Allowed            |
| 406 | Not Acceptable                |
| 407 | Proxy Authentication Required |
| 408 | Request Timeout               |
| 409 | Conflict                      |
| 500 | Internal Server Error         |
| 501 | Not Implemented               |
| 502 | Bad Gateway                   |
| 503 | Service Unavailable           |
| 504 | Gateway Timeout               |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-sdrs/ErrorCode.html)。
