容器 API - 参考¶
GET /v1/containers¶
列出项目的容器。
返回的容器将按创建日期排序;最早到最新。
参数¶
名称 |
类型 |
描述 |
|---|---|---|
offset |
整数 |
您希望检索的容器总列表中开始的索引。 |
limit |
整数 |
返回的最大容器数量(最多 100 个)。默认限制为 10。 |
响应属性¶
名称 |
类型 |
描述 |
|---|---|---|
containers |
列表 |
包含填充容器数据的字典列表 |
total |
整数 |
用户可用的容器总数 |
下一个 |
字符串 |
一个 HATEOAS URL,用于根据偏移量和限制参数检索下一组容器。只有在容器总数大于偏移量和限制参数之和时,此属性才可用。 |
previous |
字符串 |
一个 HATEOAS URL,用于根据偏移量和限制参数检索前一组容器。只有在请求偏移量大于 0 时,此属性才可用。 |
请求:¶
GET /v1/containers
Headers:
X-Auth-Token: <token>
响应:¶
{
"containers": [
{
"consumers": [],
"container_ref": "https://{barbican_host}/v1/containers/{uuid}",
"created": "2015-03-26T21:10:45.417835",
"name": "container name",
"secret_refs": [
{
"name": "private_key",
"secret_ref": "https://{barbican_host}/v1/secrets/{uuid}"
}
],
"status": "ACTIVE",
"type": "generic",
"updated": "2015-03-26T21:10:45.417835"
}
],
"total": 1
}
HTTP 状态码¶
代码 |
描述 |
|---|---|
200 |
成功请求 |
401 |
无效的 X-Auth-Token 或令牌没有访问此资源的权限 |
GET /v1/containers/{uuid}¶
检索单个容器。
响应属性¶
名称 |
类型 |
描述 |
|---|---|---|
name |
字符串 |
(可选) 容器的人性化可读名称 |
type |
字符串 |
容器类型。选项:generic(通用)、rsa、certificate(证书) |
secret_refs |
列表 |
包含对密钥的引用的字典列表 |
请求:¶
GET /v1/containers/{uuid}
Headers:
X-Auth-Token: <token>
响应:¶
{
"type": "generic",
"status": "ACTIVE",
"name": "container name",
"consumers": [],
"container_ref": "https://{barbican_host}/v1/containers/{uuid}",
"secret_refs": [
{
"name": "private_key",
"secret_ref": "https://{barbican_host}/v1/secrets/{uuid}"
}
],
"created": "2015-03-26T21:10:45.417835",
"updated": "2015-03-26T21:10:45.417835"
}
HTTP 状态码¶
代码 |
描述 |
|---|---|
200 |
成功请求 |
401 |
无效的 X-Auth-Token 或令牌没有访问此资源的权限 |
404 |
容器未找到或不可用 |
POST /v1/containers¶
创建容器
可以创建三种不同类型的容器:generic(通用)、rsa 和 certificate(证书)。
通用
这种类型的容器可以容纳任意数量的密钥引用。每个密钥引用都伴随着一个名称。与其他容器类型不同,对 contents name 属性没有特定的限制。
RSA
这种类型的容器旨在容纳仅三个不同密钥的引用。这些密钥由其附带的名称强制执行:public_key(公钥)、private_key(私钥)和 private_key_passphrase(私钥密码短语)。
证书
这种类型的容器旨在容纳对证书的引用,以及可选的 private_key(私钥)、private_key_passphrase(私钥密码短语)和 intermediates(中间证书)。
请求属性¶
名称 |
类型 |
描述 |
|---|---|---|
name |
字符串 |
(可选) 用于标识容器的人性化可读名称 |
type |
字符串 |
容器类型。选项:generic(通用)、rsa、certificate(证书) |
secret_refs |
列表 |
包含对密钥的引用的字典列表 |
请求:¶
POST /v1/containers
Headers:
X-Auth-Token: <token>
Content:
{
"type": "generic",
"name": "container name",
"secret_refs": [
{
"name": "private_key",
"secret_ref": "https://{barbican_host}/v1/secrets/{secret_uuid}"
}
]
}
响应:¶
{
"container_ref": "https://{barbican_host}/v1/containers/{container_uuid}"
}
HTTP 状态码¶
代码 |
描述 |
|---|---|
201 |
成功创建容器 |
401 |
无效的 X-Auth-Token 或令牌没有访问此资源的权限 |
403 |
禁止。用户已通过身份验证,但无权创建容器。这可能基于用户的角色或项目的配额。 |
DELETE /v1/containers/{uuid}¶
删除容器
请求:¶
DELETE /v1/containers/{container_uuid}
Headers:
X-Auth-Token: <token>
响应:¶
204 No Content
HTTP 状态码¶
代码 |
描述 |
|---|---|
204 |
成功删除容器 |
401 |
无效的 X-Auth-Token 或令牌没有访问此资源的权限 |
404 |
容器未找到或不可用 |
POST /v1/containers/{container_uuid}/secrets¶
将密钥添加到现有容器。仅支持通用容器。
请求属性¶
名称 |
类型 |
描述 |
|---|---|---|
name |
字符串 |
(可选) 用于在容器中标识密钥的人性化可读名称。 |
secret_ref |
uri |
(必需) 对现有密钥的完整 URI 引用。 |
请求:¶
POST /v1/containers/{container_uuid}/secrets
Headers:
X-Project-Id: {project_id}
Content:
{
"name": "private_key",
"secret_ref": "https://{barbican_host}/v1/secrets/{secret_uuid}"
}
响应:¶
{
"container_ref": "https://{barbican_host}/v1/containers/{container_uuid}"
}
请注意,请求的“container_uuid”与响应中提供的“container_uuid”相同。
HTTP 状态码¶
通常,由容器 POST 调用产生的错误代码也适用于此处,尤其是在可以提供的密钥引用方面。
代码 |
描述 |
|---|---|
201 |
成功更新容器 |
400 |
缺少 secret_ref |
401 |
无效的 X-Auth-Token 或令牌没有访问此资源的权限 |
403 |
禁止。用户已通过身份验证,但无权将密钥添加到指定的容器。这可能基于用户的角色或项目的配额。 |
DELETE /v1/containers/{container_uuid}/secrets¶
从容器中删除密钥。仅支持通用容器。
请求属性¶
名称 |
类型 |
描述 |
|---|---|---|
name |
字符串 |
(可选) 用于在容器中标识密钥的人性化可读名称。 |
secret_ref |
uri |
(必需) 对现有密钥的完整 URI 引用。 |
请求:¶
DELETE /v1/containers/{container_uuid}/secrets
Headers:
X-Project-Id: {project_id}
Content:
{
"name": "private key",
"secret_ref": "https://{barbican_host}/v1/secrets/{secret_uuid}"
}
响应:¶
204 No Content
HTTP 状态码¶
代码 |
描述 |
|---|---|
204 |
成功从容器中删除密钥。 |
400 |
缺少 secret_ref |
401 |
无效的 X-Auth-Token 或令牌没有访问此资源的权限 |
403 |
禁止。用户已通过身份验证,但无权从指定的容器中删除密钥。这可能基于用户的角色或项目的配额。 |
404 |
指定的 secret_ref 在容器中未找到。 |