# 创建API密钥凭证提供商
#### 功能介绍
创建一个新的API密钥凭证提供商。
#### URI
POST /v1/api-key-credential-providers
#### 请求参数
表1请求Body参数 
| 参数      | 是否必选 | 参数类型                                                                 | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
|:---|:---|:---|:---|
| name    | 是    | String                                                               | **参数解释**： 凭证提供商名称，用于唯一标识一个凭证提供商。 **约束限制**： 不涉及。 **取值范围**： 只能由英文字母、数字及"-"、"_"组成，长度为1\~56个字符。 **默认取值**： 不涉及。 |
| api_key | 是    | String                                                               | **参数解释**： 用于与外部提供者进行身份验证的API密钥。 **约束限制**： 不涉及。 **取值范围**： 不能以空格开头或结尾，长度为1\~4096个字符。 **默认取值**： 不涉及。          |
| tags    | 否    | Array of [Tag] objects | **参数解释**： 自定义标签列表。 **约束限制**： 列表最多20个标签。 **取值范围**： 不涉及。 **默认取值**： 不涉及。                                      |
   
 表2Tag 
| 参数    | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
|:---|:---|:---|:---|
| key   | 是    | String | **参数解释**： 标签键，用于标识标签的名称。 **约束限制**： 首尾不能包含空格，不能以"_sys_"开头。 **取值范围**： 可以包含任意语种字母、数字、空格以及"_"、"."、":"、"/"、"="、"+"、"-"、"@"符号的任意组合，长度为1\~128个字符。 **默认取值**： 不涉及。 |
| value | 是    | String | **参数解释**： 标签值，用于标识标签的具体内容。 **约束限制**： 不涉及。 **取值范围**： 可以包含任意语种字母、数字、空格以及"_"、"."、":"、"/"、"="、"+"、"-"、"@"、"\&"符号的任意组合，可以是空字符串，长度为0\~255个字符。 **默认取值**： 不涉及。    |
   
#### 响应参数
**状态码：201**
表3响应Body参数 
| 参数                  | 参数类型                                                                                                  | 描述                                                                                                                                                                                                                |
|:---|:---|:---|
| credential_provider | [ApiKeyCredentialProvider] object | **参数解释**： API Key凭证提供商，用于配置通过API密钥进行身份验证的参数。 **取值范围**： 不涉及。 |
   
 表4ApiKeyCredentialProvider 
| 参数                     | 参数类型                                                                  | 描述                                                                                                                                                                                                                                                          |
|:---|:---|:---|
| credential_provider_id | String                                                                | **参数解释**： 凭证提供商的唯一标识符。 **取值范围**： 只能由英文字母、数字及"-"、"_"组成，长度为1\~64个字符。                                    |
| name                   | String                                                                | **参数解释**： 凭证提供商名称，用于唯一标识一个凭证提供商。 **取值范围**： 只能由英文字母、数字及"-"、"_"组成，长度为1\~56个字符。                          |
| urn                    | String                                                                | **参数解释**： 凭证提供商的唯一资源名称（URN）。 **取值范围**： 只能由英文字母、数字及"/"、"="、"_"、":"、"-"组成，长度为16\~1500个字符。               |
| api_key_secret         | [Secret] object     | **参数解释**： 凭证信息，包含凭证ID和凭证名称。用于API Key授权方式下，标识存储在CSMS（凭证管理服务）中的API密钥凭证。 **取值范围**： 不涉及。                  |
| created_at             | String                                                                | **参数解释**： UTC时间戳，记录资源的创建或更新时间。 **取值范围**： 使用UTC+0时间格式，格式为yyyy-MM-ddTHH:mm:ssZ。例如：2025-01-01T00:00:00Z。 |
| updated_at             | String                                                                | **参数解释**： UTC时间戳，记录资源的创建或更新时间。 **取值范围**： 使用UTC+0时间格式，格式为yyyy-MM-ddTHH:mm:ssZ。例如：2025-01-01T00:00:00Z。 |
| tags                   | Array of [Tag] objects | **参数解释**： 自定义标签列表。 **取值范围**： 不涉及。                                                                     |
   
 表5Secret 
| 参数          | 参数类型   | 描述                                                                                                                                                                                                                             |
|:---|:---|:---|
| secret_id   | String | **参数解释**： 凭证ID，唯一标识CSMS中的凭证。 **取值范围**： 只能由英文字母、数字及"-"、"_"组成，长度为1\~64个字符。 |
| secret_name | String | **参数解释**： 凭证名称，CSMS中存储的凭证名称。 **取值范围**： 只能由英文字母、数字及"-"、"_"组成，长度为1\~64个字符。 |
   
 表6Tag 
| 参数    | 参数类型   | 描述                                                                                                                                                                                                                                                                             |
|:---|:---|:---|
| key   | String | **参数解释**： 标签键，用于标识标签的名称。 **取值范围**： 可以包含任意语种字母、数字、空格以及"_"、"."、":"、"/"、"="、"+"、"-"、"@"符号的任意组合，长度为1\~128个字符。                |
| value | String | **参数解释**： 标签值，用于标识标签的具体内容。 **取值范围**： 可以包含任意语种字母、数字、空格以及"_"、"."、":"、"/"、"="、"+"、"-"、"@"、"\&"符号的任意组合，可以是空字符串，长度为0\~255个字符。 |
   
**状态码：400**
表7响应Body参数 
| 参数                            | 参数类型   | 描述                                                                                                                                                                                                          |
|:---|:---|:---|
| error_code                    | String | **参数解释**： 错误码。 **取值范围**： 不涉及。                         |
| error_msg                     | String | **参数解释**： 错误信息。 **取值范围**： 不涉及。                        |
| request_id                    | String | **参数解释**： 请求ID。 **取值范围**： 不涉及。                        |
| encoded_authorization_message | String | **参数解释**： 加密后的认证失败信息，可以通过STS5解密接口进行解密。 **取值范围**： 不涉及。 |
   
**状态码：403**
表8响应Body参数 
| 参数                            | 参数类型   | 描述                                                                                                                                                                                                          |
|:---|:---|:---|
| error_code                    | String | **参数解释**： 错误码。 **取值范围**： 不涉及。                         |
| error_msg                     | String | **参数解释**： 错误信息。 **取值范围**： 不涉及。                        |
| request_id                    | String | **参数解释**： 请求ID。 **取值范围**： 不涉及。                        |
| encoded_authorization_message | String | **参数解释**： 加密后的认证失败信息，可以通过STS5解密接口进行解密。 **取值范围**： 不涉及。 |
   
**状态码：409**
表9响应Body参数 
| 参数                            | 参数类型   | 描述                                                                                                                                                                                                          |
|:---|:---|:---|
| error_code                    | String | **参数解释**： 错误码。 **取值范围**： 不涉及。                         |
| error_msg                     | String | **参数解释**： 错误信息。 **取值范围**： 不涉及。                        |
| request_id                    | String | **参数解释**： 请求ID。 **取值范围**： 不涉及。                        |
| encoded_authorization_message | String | **参数解释**： 加密后的认证失败信息，可以通过STS5解密接口进行解密。 **取值范围**： 不涉及。 |
   
#### 请求示例
创建API密钥凭证提供商。
```
POST https://{endpoint}/v1/api-key-credential-providers
{
  "name" : "my_apikeyprovider",
  "api_key" : "sk-example1234567890abcdef",
  "tags" : [ {
    "key" : "key-1",
    "value" : "value-1"
  } ]
}
```
#### 响应示例
**状态码：201**
```
{
  "credential_provider" : {
    "credential_provider_id" : "684a2c3e5f1b9d0e7a3c4f56",
    "name" : "my_apikeyprovider",
    "urn" : "agentIdentity:<region>:<account-id>:apiKeyCredentialProvider:tokenVault/<token-vault-id>/<name>",
    "api_key_secret" : {
      "secret_id" : "285624f5-5958-4f36-b171-168303615bce",
      "secret_name" : "test-secret"
    },
    "created_at" : "2025-01-02 00:00:00",
    "updated_at" : "2025-01-02 00:00:00",
    "tags" : [ {
      "key" : "key-1",
      "value" : "value-1"
    } ]
  }
}
```
#### 状态码
| 状态码 | 描述      |
|:---|:---|
| 201 | 请求成功。   |
| 400 | 请求体无效。  |
| 403 | 没有操作权限。 |
| 409 | 请求冲突。   |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-agentidentity/ErrorCode.html)。
