# 批量导入SSH密钥对 - BatchImportKeypair
#### 功能介绍
批量导入SSH密钥对，单次批量导入不得超过10条记录
#### 调用方法
请参见[如何调用API](https://support.huaweicloud.com/api-dew/dew_02_0002.html)。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-dew/dew_02_0308.html)。
- 如果使用身份策略授权，当前API调用无需身份策略权限。
 
#### URI
POST /v3/{project_id}/keypairs/batch-import
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                              |
|:---|:---|:---|:---|
| project_id | 是    | String | **参数解释：** 项目ID。可参考[获取项目ID](https://support.huaweicloud.com/api-dew/dew_02_0009.html)获取。 **约束限制：** 不涉及 **取值范围：** 以IAM服务接口返回值为准，字符长度32-32 **默认取值：** 不涉及 |
   
#### 请求参数
表2请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                   |
|:---|:---|:---|:---|
| X-Auth-Token | 是    | String | **参数解释：** 用户Token。通过调用IAM服务查询用户Token接口获取（响应消息头中X-Subject-Token的值） **约束限制：** 不涉及 **取值范围：** IAM服务查询用户Token接口为准 **默认取值：** 不涉及 |
   
表3请求Body参数 
| 参数       | 是否必选 | 参数类型                                                                                               | 描述                                                                                                                                                                                                                                                                                                                                     |
|:---|:---|:---|:---|
| \[数组元素\] | 是    | Array of [CreateKeypairRequestBody] objects | **参数解释：** 创建密钥对请求体 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及 |
   
 表4CreateKeypairRequestBody 
| 参数      | 是否必选 | 参数类型                                                                           | 描述                                                                                                                                                                                                                                                                                                                                         |
|:---|:---|:---|:---|
| keypair | 是    | [CreateKeypairAction] object | **参数解释：** 创建密钥对请求体请求参数 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及 |
   
 表5CreateKeypairAction 
| 参数             | 是否必选 | 参数类型                                                               | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
|:---|:---|:---|:---|
| name           | 是    | String                                                             | **参数解释：** SSH密钥对的名称 **约束限制：** - 新创建的密钥对名称不能和已有密钥对的名称相同   - SSH密钥对名称由英文字母、数字、下划线、中划线组成，长度不能超过255个字节    **取值范围：** 不涉及 **默认取值：** 不涉及 |
| type           | 否    | String                                                             | **参数解释：** 密钥对类型 **约束限制：** 不涉及 **取值范围：** - ssh   - x509    **默认取值：** ssh                                                           |
| public_key     | 否    | String                                                             | **参数解释：** 密钥对公钥 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                             |
| scope          | 否    | String                                                             | **参数解释：** 密钥对所属域，租户级或用户级 **约束限制：** 不涉及 **取值范围：** - domain   - user    **默认取值：** user                                              |
| user_id        | 否    | String                                                             | **参数解释：** SSH密钥对所属的用户ID **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                     |
| key_protection | 否    | [KeyProtection] object | **参数解释：** SSH密钥对私钥托管与保护信息 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                   |
   
 表6KeyProtection 
| 参数          | 是否必选 | 参数类型                                                         | 描述                                                                                                                                                                                                                                                                                                                                         |
|:---|:---|:---|:---|
| private_key | 否    | String                                                       | **参数解释：** 导入SSH密钥对的私钥 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及  |
| encryption  | 是    | [Encryption] object | **参数解释：** 对私钥进行加密存储的方式 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及 |
   
 表7Encryption 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
|:---|:---|:---|:---|
| type         | 是    | String | **参数解释：** 加密类型 **约束限制：** 若局点没有kms服务，请填"default" **取值范围：** - "default"为默认加密方式，适用于没有kms服务的局点   - "kms"为采用kms服务加密方式    **默认取值：** default |
| kms_key_name | 否    | String | **参数解释：** kms密钥的名称 **约束限制：** - 若"type"为"kms"，则必须填入"kms_key_name"或"kms_key_id"    **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                    |
| kms_key_id   | 否    | String | **参数解释：** kms密钥的ID **约束限制：** - 若"type"为"kms"，则必须填入"kms_key_name"或"kms_key_id"    **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                    |
   
#### 响应参数
**状态码：200**
表8响应Body参数 
| 参数                 | 参数类型                                                                                                  | 描述                                                                                                                                                      |
|:---|:---|:---|
| failed_keypairs    | Array of [FailedKeypair] objects                         | **参数解释：** 导入失败的SSH密钥对列表 **取值范围：** 不涉及 |
| succeeded_keypairs | Array of [CreateKeypairResponseBody] objects | **参数解释：** 成功导入的SSH密钥对列表 **取值范围：** 不涉及 |
   
 表9FailedKeypair 
| 参数            | 参数类型   | 描述                                                                                                                                                 |
|:---|:---|:---|
| keypair_name  | String | **参数解释：** SSH密钥对名称 **取值范围：** 不涉及 |
| failed_reason | String | **参数解释：** 导入失败的原因 **取值范围：** 不涉及  |
   
 表10CreateKeypairResponseBody 
| 参数      | 参数类型                                                                        | 描述                                                                                                                                                      |
|:---|:---|:---|
| keypair | [CreateKeypairResp] object | **参数解释：** 创建SSH密钥对响应消息体 **取值范围：** 不涉及 |
   
 表11CreateKeypairResp 
| 参数          | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
|:---|:---|:---|
| name        | String | **参数解释：** SSH密钥对的名称 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                     |
| type        | String | **参数解释：** 密钥对类型 **取值范围：** - ssh   - x509                                                          |
| public_key  | String | **参数解释：** 密钥对公钥 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                         |
| private_key | String | **参数解释：** 密钥对私钥信息 **取值范围：** - 创建SSH密钥对时，响应中包括private_key的信息   - 导入SSH密钥对时，响应中不包括private_key的信息    |
| fingerprint | String | **参数解释：** SSH密钥对应指纹信息 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                   |
| user_id     | String | **参数解释：** SSH密钥对所属的用户ID **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                 |
   
#### 请求示例
批量导入名称为"demo2，demo3"的SSH密钥对
```
[ {
  "keypair" : {
    "name" : "demo2",
    "public_key" : "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAA... Generated-by-Nova"
  }
}, {
  "keypair" : {
    "name" : "demo3",
    "public_key" : "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAA... Generated-by-Nova"
  }
} ]
```
#### 响应示例
**状态码：200**
批量导入SSH密钥对响应信息
```
{
  "failed_keypairs" : [ {
    "keypair_name" : "demo3",
    "failed_reason" : "{\"error_code\":\"KPS.7004\", \"error_msg\":\"Key pair 'demo3' already exists.\"}"
  } ],
  "succeeded_keypairs" : [ {
    "keypair" : {
      "name" : "demo2",
      "fingerprint" : "SHA256:Wm91+h496cPk5JleSp4RdD2n4Z/5KdlDeD51lmiZ11M",
      "type" : "ssh",
      "public_key" : "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAA... Generated-by-Nova",
      "user_id" : "6c2a33b1b8474d0dbac0a24297127525"
    }
  } ]
}
```
#### 状态码
| 状态码 | 描述             |
|:---|:---|
| 200 | 批量导入SSH密钥对响应信息 |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-dew/ErrorCode.html)。
