Red Hat Quay API 指南
前言
Red Hat Quay 应用程序编程接口(API)提供了一个全面的 RESTful 接口,用于管理和自动化 Red Hat Quay 中的任务。此 API 围绕 OAuth 2.0 协议 而设计,支持安全、精细访问 Red Hat Quay 资源,并允许管理员和用户执行诸如创建存储库、管理镜像、设置权限等操作。
Red Hat Quay 遵循 Semantic Versioning (SemVer)原则,确保跨版本的可预测的 API 稳定性,例如:
- 主发行版本 :引入新功能。可能包括破坏对 API 兼容性的更改。例如,Red Hat Quay 2.0 的 API 与 Red Hat Quay 3.0 不同。
- 次发行版本 :以向后兼容的方式添加新功能。例如,3. y 版本为 版本 3. 发行版本添加了功能。
- 补丁版本 :提供 bug 修复和改进,同时保持与次要发行本(如 3.y.z )的向后兼容性。
以下指南更详细地描述了 Red Hat Quay API,并提供了有关以下主题的详情:
- OAuth 2 访问令牌以及如何比较传统的 API 令牌和 Red Hat Quay 机器人令牌
- 生成 OAuth 2 访问令牌
- 令牌管理的最佳实践
- OAuth 2 访问令牌功能
- 使用 Red Hat Quay API
- Red Hat Quay API 配置示例
本指南附带第二个指南 . . .,它提供有关所有 api/v1
端点的信息以及如何通过示例命令访问这些端点。
第 1 章 使用 Red Hat Quay API
Red Hat Quay 提供完整的 OAuth 2 RESTful API。[OAuth 2] RESTful API 提供了以下优点:
-
它可从 Red Hat Quay 主机的端点
/api/v1
端点获取。例如:https://<quay-server.example.com>/api/v1
。 -
它允许用户通过其浏览器连接到端点,通过启用 Swagger UI 来通过浏览器连接到
GET
、POST
、DELETE
和PUT
Red Hat Quay 设置。 - 它可以被发出 API 调用和使用 OAuth 令牌的应用程序访问。
- 它将数据作为 JSON 发送和接收。
下面的部分论述了如何访问 Red Hat Quay API,使其可用于您的部署。
1.1. 从 Quay.io 访问 Quay API
如果您还没有运行自己的 Red Hat Quay 集群,您可以从 Web 浏览器浏览 Quay.io 提供的 Red Hat Quay API:
https://docs.quay.io/api/swagger/
出现的 API Explorer 显示 Quay.io API 端点。您将看到 Quay.io 上未启用的 Red Hat Quay 功能的超级用户 API 端点或端点(如 Repository Mirroring)。
在 API Explorer 中,您可以获得以下相关信息:
- 账单、订阅和计划
- 存储库构建和构建触发器
- 错误消息和全局消息
- 存储库镜像、清单、权限、通知、漏洞和镜像签名
- 使用日志
- 机构、成员和 OAuth 应用程序
- 用户和机器人帐户
- 更多…
选择以打开端点,以查看端点的每个部分的 Model Schema。打开端点,输入任何所需参数(如存储库名称或镜像),然后选择 Try it out!
按钮来查询或更改与 Quay.io 端点关联的设置。
1.2. 创建 v1 OAuth 访问令牌
OAuth 访问令牌是凭证,允许您以安全的方式访问受保护的资源。使用 Red Hat Quay 时,您必须先创建一个 OAuth 访问令牌,然后才能访问机构的 API 端点。
使用以下步骤创建 OAuth 访问令牌。
先决条件
- 您已以管理员身份登录到 Red Hat Quay。
流程
- 在主页上,选择一个机构。
- 在导航窗格中,选择 Applications。
- 单击 Create New Application 并提供新应用程序名称,然后按 Enter 键。
- 在 OAuth Applications 页面中,选择应用程序的名称。
可选。输入以下信息:
- 应用程序名称
- 主页 URL
- 描述
- avatar E-mail
- redirect/Callback URL 前缀
- 在导航窗格中,选择 Generate Token。
选中以下选项的复选框:
- 管理机构
- 管理软件仓库
- 创建软件仓库
- 查看所有可见的存储库
- 对任何可访问的软件仓库的读/写
- 超级用户访问
- 管理用户
- 读取用户信息
- 单击 Generate Access Token。您将被重定向到新页面。
- 查看您允许的权限,然后点 授权应用程序。点 Authorize Application 确认您的决定。
您将被重定向到 Access Token 页面。复制并保存访问令牌。
重要这是复制并保存访问令牌的唯一机会。在离开此页面后,无法恢复它。
1.3. 创建 OCI 引用器 OAuth 访问令牌
在某些情况下,您可能需要创建 OCI 引用器 OAuth 访问令牌。此令牌用于列出存储库下清单的 OCI 引用器。
流程
更新
config.yaml
文件,使其包含FEATURE_REFERRERS_API: true
字段。例如:# ... FEATURE_REFERRERS_API: true # ...
输入以下命令对凭证进行 Base64 编码:
$ echo -n '<username>:<password>' | base64
输出示例
abcdeWFkbWluOjE5ODlraWROZXQxIQ==
输入以下命令使用 base64 编码字符串,并将 URL 端点改为 Red Hat Quay 服务器:
$ curl --location '<quay-server.example.com>/v2/auth?service=<quay-server.example.com>&scope=repository:quay/listocireferrs:pull,push' --header 'Authorization: Basic <base64_username:password_encode_token>' -k | jq
输出示例
{ "token": "<example_secret> }
1.4. 重新分配 OAuth 访问令牌
机构管理员可分配 OAuth API 令牌,供其他用户具有特定权限创建。这允许在没有机构管理权限创建 OAuth API 令牌的用户使用令牌时准确反映审计日志。
以下流程仅适用于当前的 Red Hat Quay UI。目前没有在 Red Hat Quay v2 UI 中实施。
先决条件
您以具有机构管理特权的用户身份登录,供您分配 OAuth API 令牌。
注意OAuth API 令牌用于身份验证,而不是授权。例如,您要分配 OAuth 令牌的用户必须具有
Admin
团队角色才能使用管理 API 端点。如需更多信息,请参阅管理对存储库的访问。
流程
可选。如果还没有更新,更新 Red Hat Quay
config.yaml
文件,使其包含FEATURE_ASSIGN_OAUTH_TOKEN: true
字段:# ... FEATURE_ASSIGN_OAUTH_TOKEN: true # ...
- 可选。重启 Red Hat Quay registry。
- 以机构管理员身份登录到您的 Red Hat Quay registry。
- 单击为您为其创建 OAuth 令牌的组织名称。
- 在导航窗格中,单击 Applications。
- 点正确的应用程序名称。
- 在导航窗格中,单击 Generate Token。
- 单击 Assign another user,并输入将要接管 OAuth 令牌的用户名称。
选中您希望新用户具有的所需权限框。例如,如果您只希望新用户能够创建存储库,请单击 Create Repositories。
重要权限控制由机构中的团队角色定义,无论这里选择的选项如何。例如,您要分配 OAuth 令牌的用户必须具有
Admin
团队角色才能使用管理 API 端点。仅选中 Super User Access 框并不实际授予用户这个权限。超级用户必须通过
config.yaml
文件配置,并且 此处必须选中该框。单击 Assign token。此时会出现一个弹出框,确认带有以下信息的授权,并显示批准的权限:
This will prompt user <username> to generate a token with the following permissions: repo:create
在弹出窗口中,单击 Assign token。您会被重定向到显示以下信息的新页面:
Token assigned successfully
验证
- 在重新分配 OAuth 令牌后,分配的用户必须接受令牌来接收 bearer 令牌,该令牌需要使用 API 端点。请求分配的用户登录到 Red Hat Quay registry。
- 登录后,他们必须在 Users 和 Organizations 下单击其用户名。
- 在导航窗格中,他们必须单击 External Logins & Applications。
- 在 Authorized Applications 下,它们必须单击 授权应用程序 来确认应用程序。它们会被定向到一个新页面,其中必须单击 授权应用程序 进行确认。
- 它们会被重定向到显示其 bearer 令牌的新页面。它们必须保存此 bearer 令牌,因为它无法再次查看。
1.5. 从 Web 浏览器访问 Quay API
通过启用 Swagger,您可以通过 Web 浏览器访问您自己的 Red Hat Quay 实例的 API。此 URL 通过 Swagger UI 和这个 URL 公开 Red Hat Quay API explorer:
https://<yourquayhost>/api/v1/discovery.
通过这种方式,API 不包括 Red Hat Quay 安装中提供的超级用户端点。以下是通过运行 swagger-ui 容器镜像来访问本地系统中运行的 Red Hat Quay API 接口示例:
# export SERVER_HOSTNAME=<yourhostname> # sudo podman run -p 8888:8080 -e API_URL=https://$SERVER_HOSTNAME:8443/api/v1/discovery docker.io/swaggerapi/swagger-ui
在 swagger-ui 容器运行时,打开 Web 浏览器到 localhost 端口 8888,以通过 swagger-ui 容器查看 API 端点。
为了避免日志中出现错误,如 "API 调用,则必须通过浏览器调用 X-Requested-With 标头调用,"在集群的所有节点上添加以下行到 config.yaml
中,并重启 Red Hat Quay:
BROWSER_API_CALLS_XHR_ONLY: false
1.6. 从命令行访问 Red Hat Quay API
您可以使用 curl
命令通过 Red Hat Quay 集群的 API 获取 GET、PUT、POST 或 DELETE 设置。将 <
;token> 替换为您之前创建的 OAuth 访问令牌,以便在以下示例中获取或更改设置。
第 2 章 Red Hat Quay 应用程序编程接口(API)
此 API 允许您执行处理 Red Hat Quay 存储库、用户和机构所需的许多操作。
2.1. 授权
oauth2_implicit
范围
以下范围用于控制对 API 端点的访问:
影响范围 | 描述 |
---|---|
repo:read | 此应用能够查看和拉取对授予用户或机器人帐户可见的所有存储库 |
repo:write | 此应用能够查看、推送和拉取到授予用户或机器人帐户具有写入访问权限的所有存储库 |
repo:admin | 此应用将具有授予用户或机器人帐户具有访问权限的所有存储库的管理员访问权限 |
repo:create | 此应用能够在 中创建存储库到任何允许授予用户或机器人帐户创建存储库的命名空间 |
user:read | 此应用程序将能够读取用户信息,如用户名和电子邮件地址。 |
org:admin | 此应用程序将能够管理您的组织,包括创建机器人、创建团队、调整团队成员资格和更改计费设置。在授予此权限前,您应该在请求的应用程序中具有绝对信任。 |
super:user | 此应用程序将能够管理您的安装,包括管理用户、管理机构和其他在超级用户面板中的功能。在授予此权限前,您应该在请求的应用程序中具有绝对信任。 |
user:admin | 此应用程序将能够管理您的帐户,包括创建机器人,并将它们授予您的存储库的权限。在授予此权限前,您应该在请求的应用程序中具有绝对信任。 |
2.2. appspecifictokens
管理当前用户的特定于应用的令牌。
2.2.1. createAppToken
为用户创建新应用特定令牌。
POST /api/v1/user/apptoken
授权: oauth2_implicit (user:admin)
请求正文模式(application/json)
新令牌的描述。
名称 | 描述 | 模式 |
---|---|---|
标题 | 有助于识别令牌的友好名称 | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
201 | 成功创建 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.2.2. listAppTokens
列出用户的特定应用令牌。
GET /api/v1/user/apptoken
授权: oauth2_implicit (user:admin)
查询参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
query |
expiring | 如果为 true,则只返回这些令牌过期 | 布尔值 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.2.3. getAppToken
返回用户的特定应用令牌。
GET /api/v1/user/apptoken/{token_uuid}
授权: oauth2_implicit (user:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
token_uuid | 特定于应用程序的 uuid | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.2.4. revokeAppToken
为用户撤销特定的应用令牌。
DELETE /api/v1/user/apptoken/{token_uuid}
授权: oauth2_implicit (user:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
token_uuid | 特定于应用程序的 uuid | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
204 | 已删除 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.3. build
创建、列出、取消和获取存储库构建的 status/logs。
2.3.1. getRepoBuildStatus
返回由 build uuids 指定的构建的状态。
GET /api/v1/repository/{repository}/build/{build_uuid}/status
授权: oauth2_implicit (存储库:read)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
需要 仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
path |
build_uuid | 构建的 UUID | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.3.2. getRepoBuildLogs
返回由 build uuid 指定的构建的构建日志。
GET /api/v1/repository/{repository}/build/{build_uuid}/logs
授权: oauth2_implicit (存储库:read)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
需要 仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
path |
build_uuid | 构建的 UUID | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.3.3. getRepoBuild
返回有关构建的信息。
GET /api/v1/repository/{repository}/build/{build_uuid}
授权: oauth2_implicit (存储库:read)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
需要 仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
path |
build_uuid | 构建的 UUID | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.3.4. cancelRepoBuild
取消存储库构建。
DELETE /api/v1/repository/{repository}/build/{build_uuid}
授权: oauth2_implicit (repo:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
需要 仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
path |
build_uuid | 构建的 UUID | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
204 | 已删除 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.3.5. requestRepoBuild
请求构建存储库并从指定的输入推送。
POST /api/v1/repository/{repository}/build/
授权: oauth2_implicit (存储库:写)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
需要 仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
请求正文模式(application/json)
新存储库构建的描述。
名称 | 描述 | 模式 |
---|---|---|
file_id | 上传构建 spec 时生成的文件 ID | 字符串 |
archive_url | 要构建的 .tar.gz 的 URL。必须以 "http" 或 "https" 开头。 | 字符串 |
子目录 | 可在其中找到 Dockerfile 的子目录。您只能指定这个或 dockerfile_path | 字符串 |
dockerfile_path | 到 dockerfile 的路径。您只能指定此或子目录。 | 字符串 |
上下文 | 传递 dockerfile 的上下文。这是可选的。 | 字符串 |
pull_robot | 用作拉取凭证的 Quay 机器人帐户的用户名 | string |
标签 | 构建的镜像要推送到的标签。如果没有指定,则使用 "latest"。 |
string 数组 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
201 | 成功创建 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.3.6. getRepoBuilds
获取存储库构建列表。
GET /api/v1/repository/{repository}/build/
授权: oauth2_implicit (存储库:read)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
需要 仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
查询参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
query |
从 | 返回自给定的 unix 时间码后的所有构建 | 整数 |
query |
限制 | 要返回的最大构建数 | 整数 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.4. discovery
API 发现信息。
2.4.1. discovery
列出 swagger API 格式提供的所有 API 端点。
GET /api/v1/discovery
授权:
查询参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
query |
内部 | 是否包含内部 API。 | 布尔值 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.5. 错误
错误详情 API。
2.5.1. getErrorDescription
获取错误的详细描述。
GET /api/v1/error/{error_type}
授权:
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
error_type | 标识错误类型的错误代码。 | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.6. globalmessages
消息 API.
2.6.1. createGlobalMessage
创建消息。
POST /api/v1/messages
授权: oauth2_implicit (超级:user)
请求正文模式(application/json)
创建新消息
名称 | 描述 | 模式 |
---|---|---|
message | 单个消息 | 对象 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
201 | 成功创建 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.6.2. getGlobalMessages
返回超级用户消息。
GET /api/v1/messages
授权:
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.6.3. deleteGlobalMessage
删除消息。
DELETE /api/v1/message/{uuid}
授权: oauth2_implicit (超级:user)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
UUID | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
204 | 已删除 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.7. logs
访问机构或存储库的使用情况日志。
2.7.1. getAggregateUserLogs
返回当前用户的聚合日志。
GET /api/v1/user/aggregatelogs
授权: oauth2_implicit (user:admin)
查询参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
query |
执行 | 过滤日志的用户名。 | 字符串 |
query |
ENDTIME | 日志的最新时间。格式: UTC 为 "%m/%d/%Y"。 | 字符串 |
query |
startTime | 日志的最早时间。格式: UTC 为 "%m/%d/%Y"。 | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
示例命令
$ curl -X GET \ -H "Authorization: Bearer <bearer_token>" \ -H "Accept: application/json" \ "<quay-server.example.com>/api/v1/user/aggregatelogs?performer=<username>&starttime=<MM/DD/YYYY>&endtime=<MM/DD/YYYY>"
2.7.2. exportUserLogs
返回当前用户的聚合日志。
POST /api/v1/user/exportlogs
授权: oauth2_implicit (user:admin)
查询参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
query |
ENDTIME | 日志的最新时间。格式: UTC 为 "%m/%d/%Y"。 | 字符串 |
query |
startTime | 日志的最早时间。格式: UTC 为 "%m/%d/%Y"。 | 字符串 |
请求正文模式(application/json)
配置导出日志操作
名称 | 描述 | 模式 |
---|---|---|
callback_url | 使用到导出日志的链接调用的回调 URL | 字符串 |
callback_email | 通过电子邮件发送到导出日志的链接的电子邮件地址 | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
201 | 成功创建 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
示例命令
$ curl -X POST \ -H "Authorization: Bearer <bearer_token>" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{ "starttime": "<MM/DD/YYYY>", "endtime": "<MM/DD/YYYY>", "callback_email": "your.email@example.com" }' \ "http://<quay-server.example.com>/api/v1/user/exportlogs"
2.7.3. listUserLogs
列出当前用户的日志。
GET /api/v1/user/logs
授权: oauth2_implicit (user:admin)
查询参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
query |
next_page | 下一页面的页面令牌 | 字符串 |
query |
执行 | 过滤日志的用户名。 | 字符串 |
query |
ENDTIME | 日志的最新时间。格式: UTC 为 "%m/%d/%Y"。 | 字符串 |
query |
startTime | 日志的最早时间。格式: UTC 为 "%m/%d/%Y"。 | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
示例命令
$ curl -X GET -H "Authorization: Bearer <bearer_token>" -H "Accept: application/json" "<quay-server.example.com>/api/v1/user/logs"
2.7.4. getAggregateOrgLogs
获取指定机构的聚合日志。
GET /api/v1/organization/{orgname}/aggregatelogs
授权: oauth2_implicit (org:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
需要OrgName | 机构名称 | 字符串 |
查询参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
query |
执行 | 过滤日志的用户名。 | 字符串 |
query |
ENDTIME | 日志的最新时间。格式: UTC 为 "%m/%d/%Y"。 | 字符串 |
query |
startTime | 日志的最早时间。格式: UTC 为 "%m/%d/%Y"。 | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
示例命令
$ curl -X GET \ -H "Authorization: Bearer <bearer_token>" \ -H "Accept: application/json" \ "<quay-server.example.com>/api/v1/organization/{orgname}/aggregatelogs"
2.7.5. exportOrgLogs
导出指定机构的日志。
POST /api/v1/organization/{orgname}/exportlogs
授权: oauth2_implicit (org:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
需要OrgName | 机构名称 | 字符串 |
查询参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
query |
ENDTIME | 日志的最新时间。格式: UTC 为 "%m/%d/%Y"。 | 字符串 |
query |
startTime | 日志的最早时间。格式: UTC 为 "%m/%d/%Y"。 | 字符串 |
请求正文模式(application/json)
配置导出日志操作
名称 | 描述 | 模式 |
---|---|---|
callback_url | 使用到导出日志的链接调用的回调 URL | 字符串 |
callback_email | 通过电子邮件发送到导出日志的链接的电子邮件地址 | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
201 | 成功创建 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
示例命令
$ curl -X POST \ -H "Authorization: Bearer <bearer_token>" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{ "starttime": "<MM/DD/YYYY>", "endtime": "<MM/DD/YYYY>", "callback_email": "org.logs@example.com" }' \ "http://<quay-server.example.com>/api/v1/organization/{orgname}/exportlogs"
2.7.6. listOrgLogs
列出指定机构的日志。
GET /api/v1/organization/{orgname}/logs
授权: oauth2_implicit (org:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
需要OrgName | 机构名称 | 字符串 |
查询参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
query |
next_page | 下一页面的页面令牌 | 字符串 |
query |
执行 | 过滤日志的用户名。 | 字符串 |
query |
ENDTIME | 日志的最新时间。格式: UTC 为 "%m/%d/%Y"。 | 字符串 |
query |
startTime | 日志的最早时间。格式: UTC 为 "%m/%d/%Y"。 | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
示例命令
$ curl -X GET \ -H "Authorization: Bearer <bearer_token>" \ -H "Accept: application/json" \ "http://<quay-server.example.com>/api/v1/organization/{orgname}/logs"
2.7.7. getAggregateRepoLogs
返回指定存储库的聚合日志。
GET /api/v1/repository/{repository}/aggregatelogs
授权: oauth2_implicit (repo:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
需要 仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
查询参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
query |
ENDTIME | 日志的最新时间。格式: UTC 为 "%m/%d/%Y"。 | 字符串 |
query |
startTime | 日志的最早时间。格式: UTC 为 "%m/%d/%Y"。 | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
示例命令
$ curl -X GET \ -H "Authorization: Bearer <bearer_token>" \ -H "Accept: application/json" \ "<quay-server.example.com>/api/v1/repository/<repository_name>/<namespace>/aggregatelogs?starttime=2024-01-01&endtime=2024-06-18""
2.7.8. exportRepoLogs
对指定存储库的日志导出排队。
POST /api/v1/repository/{repository}/exportlogs
授权: oauth2_implicit (repo:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
需要 仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
查询参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
query |
ENDTIME | 日志的最新时间。格式: UTC 为 "%m/%d/%Y"。 | 字符串 |
query |
startTime | 日志的最早时间。格式: UTC 为 "%m/%d/%Y"。 | 字符串 |
请求正文模式(application/json)
配置导出日志操作
名称 | 描述 | 模式 |
---|---|---|
callback_url | 使用到导出日志的链接调用的回调 URL | 字符串 |
callback_email | 通过电子邮件发送到导出日志的链接的电子邮件地址 | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
201 | 成功创建 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
示例命令
$ curl -X POST \ -H "Authorization: Bearer <bearer_token>" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{ "starttime": "2024-01-01", "endtime": "2024-06-18", "callback_url": "http://your-callback-url.example.com" }' \ "http://<quay-server.example.com>/api/v1/repository/{repository}/exportlogs"
2.7.9. listRepoLogs
列出指定存储库的日志。
GET /api/v1/repository/{repository}/logs
授权: oauth2_implicit (repo:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
需要 仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
查询参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
query |
next_page | 下一页面的页面令牌 | 字符串 |
query |
ENDTIME | 日志的最新时间。格式: UTC 为 "%m/%d/%Y"。 | 字符串 |
query |
startTime | 日志的最早时间。格式: UTC 为 "%m/%d/%Y"。 | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
示例命令
$ curl -X GET \ -H "Authorization: Bearer <bearer_token>" \ -H "Accept: application/json" \ "http://<quay-server.example.com>/api/v1/repository/{repository}/logs"
2.8. 清单(Inventory)
管理存储库的清单。
2.8.1. getManifestLabel
使用清单下特定 ID 检索标签。
GET /api/v1/repository/{repository}/manifest/{manifestref}/labels/{labelid}
授权: oauth2_implicit (存储库:read)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
需要 仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
path |
manifestref | 清单摘要 | 字符串 |
path |
labelid | 标签的 ID | string |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
示例命令
$ curl -X GET \ -H "Authorization: Bearer <bearer_token>" \ -H "Accept: application/json" \ https://<quay-server.example.com>/api/v1/repository/<repository>/manifest/<manifestref>/labels/<label_id>
2.8.2. deleteManifestLabel
从清单中删除现有标签。
DELETE /api/v1/repository/{repository}/manifest/{manifestref}/labels/{labelid}
授权: oauth2_implicit (存储库:写)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
需要 仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
path |
manifestref | 清单摘要 | 字符串 |
path |
labelid | 标签的 ID | string |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
204 | 已删除 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
示例命令
$ curl -X DELETE \ -H "Authorization: Bearer <bearer_token>" \ https://<quay-server.example.com>/api/v1/repository/<repository>/manifest/<manifestref>/labels/<labelid>
2.8.3. addManifestLabel
将新标签添加到标签清单中。
POST /api/v1/repository/{repository}/manifest/{manifestref}/labels
授权: oauth2_implicit (存储库:写)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
需要 仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
path |
manifestref | 清单摘要 | string |
请求正文模式(application/json)
为清单添加标签
名称 | 描述 | 模式 |
---|---|---|
key | 标签的密钥 | string |
需要 的值 | 标签的值 | string |
media_type | 此标签的介质类型 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
201 | 成功创建 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
示例命令
$ curl -X POST \ -H "Authorization: Bearer <bearer_token>" \ -H "Content-Type: application/json" \ --data '{ "key": "<key>", "value": "<value>", "media_type": "<media_type>" }' \ https://<quay-server.example.com>/api/v1/repository/<repository>/manifest/<manifestref>/labels
2.8.4. listManifestLabels
GET /api/v1/repository/{repository}/manifest/{manifestref}/labels
授权: oauth2_implicit (存储库:read)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
需要 仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
path |
manifestref | 清单摘要 | string |
查询参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
query |
过滤 | 如果指定,则仅返回与给定前缀匹配的标签 | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
示例命令
$ curl -X GET \ -H "Authorization: Bearer <bearer_token>" \ -H "Accept: application/json" \ https://<quay-server.example.com>/api/v1/repository/<repository>/manifest/<manifestref>/labels
2.8.5. getRepoManifest
GET /api/v1/repository/{repository}/manifest/{manifestref}
授权: oauth2_implicit (存储库:read)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
需要 仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
path |
manifestref | 清单摘要 | string |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
示例命令
$ curl -X GET \ -H "Authorization: Bearer <bearer_token>" \ -H "Accept: application/json" \ https://<quay-server.example.com>/api/v1/repository/<repository>/manifest/<manifestref>
2.9. mirror
2.9.1. syncCancel
为给定 Repository 的镜像配置更新 sync_status。
POST /api/v1/repository/{repository}/mirror/sync-cancel
授权: oauth2_implicit (repo:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
需要 仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
201 | 成功创建 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.9.2. syncNow
为给定 Repository 的镜像配置更新 sync_status。
POST /api/v1/repository/{repository}/mirror/sync-now
授权: oauth2_implicit (repo:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
需要 仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
201 | 成功创建 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.9.3. getRepoMirrorConfig
返回一个给定存储库的 Mirror 配置。
GET /api/v1/repository/{repository}/mirror
授权: oauth2_implicit (repo:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
需要 仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.9.4. changeRepoMirrorConfig
允许用户修改存储库的镜像配置。
PUT /api/v1/repository/{repository}/mirror
授权: oauth2_implicit (repo:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
需要 仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
请求正文模式(application/json)
更新存储库镜像配置。
名称 | 描述 | 模式 |
---|---|---|
is_enabled | 用于启用或禁用同步。 | 布尔值 |
external_reference | 外部存储库的位置。 | 字符串 |
external_registry_username | 用于与外部 registry 进行身份验证的用户名。 | |
external_registry_password | 用于与外部 registry 进行身份验证的密码。 | |
sync_start_date | 决定此存储库下次准备同步的时间。 | 字符串 |
sync_interval | next_start_date 开始同步后的秒数。 | 整数 |
robot_username | 用于镜像推送的机器人的用户名。 | 字符串 |
root_rule | 用于决定应同步哪些标签的 glob-patterns 列表。 | 对象 |
external_registry_config | 对象 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
201 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.9.5. createRepoMirrorConfig
为给定存储库创建一个 RepoMirrorConfig。
POST /api/v1/repository/{repository}/mirror
授权: oauth2_implicit (repo:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
需要 仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
请求正文模式(application/json)
创建存储库镜像配置。
名称 | 描述 | 模式 |
---|---|---|
is_enabled | 用于启用或禁用同步。 | 布尔值 |
external_reference | 外部存储库的位置。 | 字符串 |
external_registry_username | 用于与外部 registry 进行身份验证的用户名。 | |
external_registry_password | 用于与外部 registry 进行身份验证的密码。 | |
sync_start_date | 决定此存储库下次准备同步的时间。 | 字符串 |
sync_interval | next_start_date 开始同步后的秒数。 | 整数 |
robot_username | 用于镜像推送的机器人的用户名。 | 字符串 |
root_rule | 用于决定应同步哪些标签的 glob-patterns 列表。 | 对象 |
external_registry_config | 对象 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
201 | 成功创建 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.10. namespacequota
2.10.1. listUserQuota
GET /api/v1/user/quota
授权: oauth2_implicit (user:admin)
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.10.2. getOrganizationQuotaLimit
GET /api/v1/organization/{orgname}/quota/{quota_id}/limit/{limit_id}
授权:
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
quota_id | 字符串 | |
path |
limit_id | 字符串 | |
path |
需要OrgName | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.10.3. changeOrganizationQuotaLimit
PUT /api/v1/organization/{orgname}/quota/{quota_id}/limit/{limit_id}
授权: oauth2_implicit (超级:user)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
quota_id | 字符串 | |
path |
limit_id | 字符串 | |
path |
需要OrgName | 字符串 |
请求正文模式(application/json)
更改机构配额限制的描述
名称 | 描述 | 模式 |
---|---|---|
type | 配额限制类型:"Warning"或"Reject" | 字符串 |
threshold_percent | 配额阈值,以百分比为单位 | 整数 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.10.4. deleteOrganizationQuotaLimit
DELETE /api/v1/organization/{orgname}/quota/{quota_id}/limit/{limit_id}
授权: oauth2_implicit (超级:user)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
quota_id | 字符串 | |
path |
limit_id | 字符串 | |
path |
需要OrgName | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
204 | 已删除 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.10.5. createOrganizationQuotaLimit
POST /api/v1/organization/{orgname}/quota/{quota_id}/limit
授权: oauth2_implicit (超级:user)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
quota_id | 字符串 | |
path |
需要OrgName | 字符串 |
请求正文模式(application/json)
新机构配额限制的描述
名称 | 描述 | 模式 |
---|---|---|
type | 配额限制类型:"Warning"或"Reject" | string |
threshold_percent | 配额阈值,以百分比为单位 | 整数 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
201 | 成功创建 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.10.6. listOrganizationQuotaLimit
GET /api/v1/organization/{orgname}/quota/{quota_id}/limit
授权:
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
quota_id | 字符串 | |
path |
需要OrgName | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.10.7. getUserQuotaLimit
GET /api/v1/user/quota/{quota_id}/limit/{limit_id}
授权: oauth2_implicit (user:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
quota_id | 字符串 | |
path |
limit_id | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.10.8. listUserQuotaLimit
GET /api/v1/user/quota/{quota_id}/limit
授权: oauth2_implicit (user:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
quota_id | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.10.9. getOrganizationQuota
GET /api/v1/organization/{orgname}/quota/{quota_id}
授权:
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
quota_id | 字符串 | |
path |
需要OrgName | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.10.10. changeOrganizationQuota
PUT /api/v1/organization/{orgname}/quota/{quota_id}
授权: oauth2_implicit (超级:user)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
quota_id | 字符串 | |
path |
需要OrgName | 字符串 |
请求正文模式(application/json)
新机构配额的描述
名称 | 描述 | 模式 |
---|---|---|
limit_bytes | 允许机构的字节数 | 整数 |
限制 |
组织的人类可读存储容量。接受 SI 单位,如 Mi、Gi 或 Ti,以及非标准单位(如 GB 或 MB)。必须使用 | string |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.10.11. deleteOrganizationQuota
DELETE /api/v1/organization/{orgname}/quota/{quota_id}
授权: oauth2_implicit (超级:user)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
quota_id | 字符串 | |
path |
需要OrgName | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
204 | 已删除 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.10.12. createOrganizationQuota
创建新机构配额。
POST /api/v1/organization/{orgname}/quota
授权: oauth2_implicit (超级:user)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
需要OrgName | 字符串 |
请求正文模式(application/json)
新机构配额的描述
名称 | 描述 | 模式 |
---|---|---|
limit_bytes | 允许机构的字节数 | 整数 |
限制 |
组织的人类可读存储容量。接受 SI 单位,如 Mi、Gi 或 Ti,以及非标准单位(如 GB 或 MB)。必须使用 | string |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
201 | 成功创建 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.10.13. listOrganizationQuota
GET /api/v1/organization/{orgname}/quota
授权:
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
需要OrgName | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.10.14. getUserQuota
GET /api/v1/user/quota/{quota_id}
授权: oauth2_implicit (user:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
quota_id | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.11. 机构
管理机构、成员和 OAuth 应用。
2.11.1. createOrganization
创建新机构。
POST /api/v1/organization/
授权: oauth2_implicit (user:admin)
请求正文模式(application/json)
新组织的描述。
名称 | 描述 | 模式 |
---|---|---|
name | 机构用户名 | 字符串 |
email | 机构联系电子邮件 | 字符串 |
recaptcha_response | (可以禁用)recaptcha 响应代码进行验证 | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
201 | 成功创建 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
示例命令
$ curl -X POST -H "Authorization: Bearer <bearer_token>" -H "Content-Type: application/json" -d '{ "name": "<new_organization_name>" }' "https://<quay-server.example.com>/api/v1/organization/"
2.11.2. validateProxyCacheConfig
POST /api/v1/organization/{orgname}/validateproxycache
授权:
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
需要OrgName | 字符串 |
请求正文模式(application/json)
机构的代理缓存配置
名称 | 描述 | 模式 |
---|---|---|
upstream_registry | 要缓存的上游 registry 的名称 | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
202 | 成功创建 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.11.3. getOrganizationCollaborators
列出指定机构的外部协作者。
GET /api/v1/organization/{orgname}/collaborators
授权: oauth2_implicit (org:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
需要OrgName | 机构名称 | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.11.4. getOrganizationApplication
使用指定组织下的指定 client_id 检索应用。
GET /api/v1/organization/{orgname}/applications/{client_id}
授权: oauth2_implicit (org:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
client_id | OAuth 客户端 ID | 字符串 |
path |
需要OrgName | 机构名称 | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.11.5. updateOrganizationApplication
更新此机构下的应用程序。
PUT /api/v1/organization/{orgname}/applications/{client_id}
授权: oauth2_implicit (org:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
client_id | OAuth 客户端 ID | 字符串 |
path |
需要OrgName | 机构名称 | 字符串 |
请求正文模式(application/json)
更新的应用程序的描述。
名称 | 描述 | 模式 |
---|---|---|
name | 应用程序的名称 | 字符串 |
redirect_uri | 应用程序的 OAuth 重定向的 URI | 字符串 |
application_uri | 应用程序主页的 URI | 字符串 |
description | 应用程序的人类可读描述 | 字符串 |
avatar_email | 用于应用程序的 avatar 电子邮件地址 | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.11.6. deleteOrganizationApplication
删除此机构下的应用程序。
DELETE /api/v1/organization/{orgname}/applications/{client_id}
授权: oauth2_implicit (org:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
client_id | OAuth 客户端 ID | 字符串 |
path |
需要OrgName | 机构名称 | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
204 | 已删除 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.11.7. createOrganizationApplication
在此组织下创建新应用。
POST /api/v1/organization/{orgname}/applications
授权: oauth2_implicit (org:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
需要OrgName | 机构名称 | 字符串 |
请求正文模式(application/json)
新组织应用的描述。
名称 | 描述 | 模式 |
---|---|---|
name | 应用程序的名称 | 字符串 |
redirect_uri | 应用程序的 OAuth 重定向的 URI | 字符串 |
application_uri | 应用程序主页的 URI | 字符串 |
description | 应用程序的人类可读描述 | 字符串 |
avatar_email | 用于应用程序的 avatar 电子邮件地址 | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
201 | 成功创建 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.11.8. getOrganizationApplications
列出指定机构的应用程序。
GET /api/v1/organization/{orgname}/applications
授权: oauth2_implicit (org:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
需要OrgName | 机构名称 | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.11.9. getProxyCacheConfig
检索组织的代理缓存配置。
GET /api/v1/organization/{orgname}/proxycache
授权:
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
需要OrgName | 机构名称 | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.11.10. deleteProxyCacheConfig
删除机构的代理缓存配置。
DELETE /api/v1/organization/{orgname}/proxycache
授权:
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
需要OrgName | 机构名称 | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
204 | 已删除 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.11.11. createProxyCacheConfig
为机构创建代理缓存配置。
POST /api/v1/organization/{orgname}/proxycache
授权:
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
需要OrgName | 机构名称 | 字符串 |
请求正文模式(application/json)
机构的代理缓存配置
名称 | 描述 | 模式 |
---|---|---|
upstream_registry | 要缓存的上游 registry 的名称 | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
201 | 成功创建 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.11.12. getOrganizationMember
检索组织成员的详细信息。
GET /api/v1/organization/{orgname}/members/{membername}
授权: oauth2_implicit (org:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
需要 memberName | 机构成员的用户名 | string |
path |
需要OrgName | 机构名称 | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.11.13. removeOrganizationMember
从机构中删除成员,撤销其所有存储库的权限,并将其从机构中的所有团队中删除。
DELETE /api/v1/organization/{orgname}/members/{membername}
授权: oauth2_implicit (org:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
需要 memberName | 机构成员的用户名 | string |
path |
需要OrgName | 机构名称 | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
204 | 已删除 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.11.14. getOrganizationMembers
列出指定机构的人员成员。
GET /api/v1/organization/{orgname}/members
授权: oauth2_implicit (org:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
需要OrgName | 机构名称 | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.11.15. getOrganization
获取指定机构的详细信息。
GET /api/v1/organization/{orgname}
授权:
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
需要OrgName | 机构名称 | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
示例命令
$ curl -X GET \ -H "Authorization: Bearer <bearer_token>" \ "<quay-server.example.com>/api/v1/organization/<organization_name>"
2.11.16. changeOrganizationDetails
更改指定机构的详情。
PUT /api/v1/organization/{orgname}
授权: oauth2_implicit (org:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
需要OrgName | 机构名称 | 字符串 |
请求正文模式(application/json)
现有机构的更新描述
名称 | 描述 | 模式 |
---|---|---|
email | 机构联系电子邮件 | 字符串 |
invoice_email | 机构是否希望接收发票的电子邮件 | 布尔值 |
invoice_email_address | 要接收发票的电子邮件地址 | |
tag_expiration_s | 标签过期的秒数 | 整数 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.11.17. deleteAdminedOrganization
删除指定的机构。
DELETE /api/v1/organization/{orgname}
授权: oauth2_implicit (org:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
需要OrgName | 机构名称 | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
204 | 已删除 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
示例命令
$ curl -X GET \ -H "Authorization: Bearer <bearer_token>" \ "<quay-server.example.com>/api/v1/organization/<organization_name>"
2.11.18. getApplicationInformation
获取指定应用程序的信息。
GET /api/v1/app/{client_id}
授权:
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
client_id | OAuth 客户端 ID | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.12. 权限
管理存储库权限。
2.12.1. getUserTransitivePermission
获取指定用户的获取权限。
GET /api/v1/repository/{repository}/permissions/user/{username}/transitive
授权: oauth2_implicit (repo:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
需要 的用户名 | 权限应用到的用户的用户名 | 字符串 |
path |
需要 仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.12.2. getUserPermissions
获取指定用户的权限。
GET /api/v1/repository/{repository}/permissions/user/{username}
授权: oauth2_implicit (repo:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
需要 的用户名 | 权限应用到的用户的用户名 | 字符串 |
path |
需要 仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.12.3. changeUserPermissions
更新现有仓库的 perimsions。
PUT /api/v1/repository/{repository}/permissions/user/{username}
授权: oauth2_implicit (repo:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
需要 的用户名 | 权限应用到的用户的用户名 | 字符串 |
path |
需要 仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
请求正文模式(application/json)
用户权限的描述。
名称 | 描述 | 模式 |
---|---|---|
需要 角色 | 用户使用的角色 | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
示例命令
$ curl -X PUT \ -H "Authorization: Bearer <bearer_token>" \ -H "Content-Type: application/json" \ -d '{"role": "admin"}' \ https://<quay-server.example.com>/api/v1/repository/<namespace>/<repository>/permissions/user/<username>
2.12.4. deleteUserPermissions
删除用户权限。
DELETE /api/v1/repository/{repository}/permissions/user/{username}
授权: oauth2_implicit (repo:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
需要 的用户名 | 权限应用到的用户的用户名 | 字符串 |
path |
需要 仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
204 | 已删除 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
示例命令
$ curl -X DELETE \ -H "Authorization: Bearer <bearer_token>" \ -H "Accept: application/json" \ https://<quay-server.example.com>/api/v1/repository/<namespace>/<repository>/permissions/user/<username>
2.12.5. getTeamPermissions
获取指定团队的权限。
GET /api/v1/repository/{repository}/permissions/team/{teamname}
授权: oauth2_implicit (repo:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
需要 仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
path |
TeamName | 权限应用到的团队的名称 | string |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.12.6. changeTeamPermissions
更新现有团队权限。
PUT /api/v1/repository/{repository}/permissions/team/{teamname}
授权: oauth2_implicit (repo:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
需要 仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
path |
TeamName | 权限应用到的团队的名称 | string |
请求正文模式(application/json)
团队权限的描述。
名称 | 描述 | 模式 |
---|---|---|
需要 角色 | 用于团队的角色 | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.12.7. deleteTeamPermissions
删除指定团队的权限。
DELETE /api/v1/repository/{repository}/permissions/team/{teamname}
授权: oauth2_implicit (repo:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
需要 仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
path |
TeamName | 权限应用到的团队的名称 | string |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
204 | 已删除 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.12.8. listRepoTeamPermissions
列出所有团队权限。
GET /api/v1/repository/{repository}/permissions/team/
授权: oauth2_implicit (repo:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
需要 仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.12.9. listRepoUserPermissions
列出所有用户权限。
GET /api/v1/repository/{repository}/permissions/user/
授权: oauth2_implicit (repo:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
需要 仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
示例命令
$ curl -X GET \ -H "Authorization: Bearer <bearer_token>" \ -H "Accept: application/json" \ https://<quay-server.example.com>/api/v1/repository/<namespace>/<repository>/permissions/user/<username>/
2.13. policy
2.13.1. createOrganizationAutoPrunePolicy
为机构创建一个自动修剪策略
POST /api/v1/organization/{orgname}/autoprunepolicy/
授权: oauth2_implicit (org:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
需要OrgName | 机构名称 | 字符串 |
请求正文模式(application/json)
要应用到用户命名空间的策略配置
Name | 描述 | 模式 |
---|---|---|
所需 方法 | 用于修剪标签的方法(number_of_tags、create_date) | string |
需要 的值 | 用于修剪方法的值(标签数量(如 10 个,时间 delta,如 7d (7 天)) | |
tagPattern | 仅与此模式匹配的标签将被修剪 | string |
tagPatternMatches | 确定修剪的标签是否应该与 tagPattern 匹配 | 布尔值 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
201 | 成功创建 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.13.2. listOrganizationAutoPrunePolicies
列出机构的自动修剪策略
GET /api/v1/organization/{orgname}/autoprunepolicy/
授权: oauth2_implicit (org:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
需要OrgName | 机构名称 | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.13.3. getOrganizationAutoPrunePolicy
获取机构的自动修剪策略
GET /api/v1/organization/{orgname}/autoprunepolicy/{policy_uuid}
授权: oauth2_implicit (org:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
policy_uuid | 策略的唯一 ID | string |
path |
需要OrgName | 机构名称 | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.13.4. deleteOrganizationAutoPrunePolicy
删除机构的自动修剪策略
DELETE /api/v1/organization/{orgname}/autoprunepolicy/{policy_uuid}
授权: oauth2_implicit (org:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
policy_uuid | 策略的唯一 ID | string |
path |
需要OrgName | 机构名称 | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
204 | 已删除 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.13.5. updateOrganizationAutoPrunePolicy
更新机构的自动修剪策略
PUT /api/v1/organization/{orgname}/autoprunepolicy/{policy_uuid}
授权: oauth2_implicit (org:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
policy_uuid | 策略的唯一 ID | string |
path |
需要OrgName | 机构名称 | 字符串 |
请求正文模式(application/json)
要应用到用户命名空间的策略配置
Name | 描述 | 模式 |
---|---|---|
所需 方法 | 用于修剪标签的方法(number_of_tags、create_date) | string |
需要 的值 | 用于修剪方法的值(标签数量(如 10 个,时间 delta,如 7d (7 天)) | |
tagPattern | 仅与此模式匹配的标签将被修剪 | string |
tagPatternMatches | 确定修剪的标签是否应该与 tagPattern 匹配 | 布尔值 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
204 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.13.6. createRepositoryAutoPrunePolicy
为存储库创建一个自动修剪策略
POST /api/v1/repository/{repository}/autoprunepolicy/
授权: oauth2_implicit (repo:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
需要 仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
请求正文模式(application/json)
要应用到用户命名空间的策略配置
Name | 描述 | 模式 |
---|---|---|
所需 方法 | 用于修剪标签的方法(number_of_tags、create_date) | string |
需要 的值 | 用于修剪方法的值(标签数量(如 10 个,时间 delta,如 7d (7 天)) | |
tagPattern | 仅与此模式匹配的标签将被修剪 | string |
tagPatternMatches | 确定修剪的标签是否应该与 tagPattern 匹配 | 布尔值 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
201 | 成功创建 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.13.7. listRepositoryAutoPrunePolicies
列出存储库的自动修剪策略
GET /api/v1/repository/{repository}/autoprunepolicy/
授权: oauth2_implicit (repo:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
需要 仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.13.8. getRepositoryAutoPrunePolicy
获取存储库的自动修剪策略
GET /api/v1/repository/{repository}/autoprunepolicy/{policy_uuid}
授权: oauth2_implicit (repo:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
policy_uuid | 策略的唯一 ID | string |
path |
需要 仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.13.9. deleteRepositoryAutoPrunePolicy
删除存储库的自动修剪策略
DELETE /api/v1/repository/{repository}/autoprunepolicy/{policy_uuid}
授权: oauth2_implicit (repo:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
policy_uuid | 策略的唯一 ID | string |
path |
需要 仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
204 | 已删除 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.13.10. updateRepositoryAutoPrunePolicy
更新存储库的自动修剪策略
PUT /api/v1/repository/{repository}/autoprunepolicy/{policy_uuid}
授权: oauth2_implicit (repo:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
policy_uuid | 策略的唯一 ID | string |
path |
需要 仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
请求正文模式(application/json)
要应用到用户命名空间的策略配置
Name | 描述 | 模式 |
---|---|---|
所需 方法 | 用于修剪标签的方法(number_of_tags、create_date) | string |
需要 的值 | 用于修剪方法的值(标签数量(如 10 个,时间 delta,如 7d (7 天)) | |
tagPattern | 仅与此模式匹配的标签将被修剪 | string |
tagPatternMatches | 确定修剪的标签是否应该与 tagPattern 匹配 | 布尔值 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.13.11. createUserAutoPrunePolicy
为当前登录的用户创建自动修剪策略
POST /api/v1/user/autoprunepolicy/
授权: oauth2_implicit (user:admin)
请求正文模式(application/json)
要应用到用户命名空间的策略配置
Name | 描述 | 模式 |
---|---|---|
所需 方法 | 用于修剪标签的方法(number_of_tags、create_date) | string |
需要 的值 | 用于修剪方法的值(标签数量(如 10 个,时间 delta,如 7d (7 天)) | |
tagPattern | 仅与此模式匹配的标签将被修剪 | string |
tagPatternMatches | 确定修剪的标签是否应该与 tagPattern 匹配 | 布尔值 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
201 | 成功创建 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.13.12. listUserAutoPrunePolicies
列出当前登录用户的自动修剪策略
GET /api/v1/user/autoprunepolicy/
授权: oauth2_implicit (user:admin)
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.13.13. getUserAutoPrunePolicy
获取当前登录用户的自动修剪策略
GET /api/v1/user/autoprunepolicy/{policy_uuid}
授权: oauth2_implicit (user:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
policy_uuid | 策略的唯一 ID | string |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.13.14. deleteUserAutoPrunePolicy
删除当前登录的用户的自动修剪策略
DELETE /api/v1/user/autoprunepolicy/{policy_uuid}
授权: oauth2_implicit (user:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
policy_uuid | 策略的唯一 ID | string |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
204 | 已删除 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.13.15. updateUserAutoPrunePolicy
为当前登录的用户更新自动修剪策略
PUT /api/v1/user/autoprunepolicy/{policy_uuid}
授权: oauth2_implicit (user:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
policy_uuid | 策略的唯一 ID | string |
请求正文模式(application/json)
要应用到用户命名空间的策略配置
Name | 描述 | 模式 |
---|---|---|
所需 方法 | 用于修剪标签的方法(number_of_tags、create_date) | string |
需要 的值 | 用于修剪方法的值(标签数量(如 10 个,时间 delta,如 7d (7 天)) | |
tagPattern | 仅与此模式匹配的标签将被修剪 | string |
tagPatternMatches | 确定修剪的标签是否应该与 tagPattern 匹配 | 布尔值 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
204 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.14. Prototype
管理添加到存储库的默认权限。
2.14.1. updateOrganizationPrototypePermission
更新现有权限原型的角色。
PUT /api/v1/organization/{orgname}/prototypes/{prototypeid}
授权: oauth2_implicit (org:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
必要设计 | 原型的 ID | string |
path |
需要OrgName | 机构名称 | 字符串 |
请求正文模式(application/json)
新原型角色的描述
名称 | 描述 | 模式 |
---|---|---|
角色 | 应该应用到权限的角色 | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
示例命令
$ curl -X PUT \ -H "Authorization: Bearer <bearer_token>" \ -H "Content-Type: application/json" \ --data '{ "role": "write" }' \ https://<quay-server.example.com>/api/v1/organization/<organization_name>/prototypes/<prototypeid>
2.14.2. deleteOrganizationPrototypePermission
删除现有权限设计模型。
DELETE /api/v1/organization/{orgname}/prototypes/{prototypeid}
授权: oauth2_implicit (org:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
必要设计 | 原型的 ID | string |
path |
需要OrgName | 机构名称 | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
204 | 已删除 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
示例命令
curl -X DELETE \ -H "Authorization: Bearer <bearer_token>" \ -H "Accept: application/json" \ https://<quay-server.example.com>/api/v1/organization/<organization_name>/prototypes/<prototype_id>
2.14.3. createOrganizationPrototypePermission
创建新权限设计图。
POST /api/v1/organization/{orgname}/prototypes
授权: oauth2_implicit (org:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
需要OrgName | 机构名称 | 字符串 |
请求正文模式(application/json)
新原型描述
名称 | 描述 | 模式 |
---|---|---|
需要 角色 | 应该应用到委派的角色 | 字符串 |
activating_user | 创建规则应该应用的用户的存储库 | object |
需要 委托 | 有关规则授予访问权限的用户或团队的信息 | 对象 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
201 | 成功创建 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
示例命令
$ curl -X POST -H "Authorization: Bearer <bearer_token>" -H "Content-Type: application/json" --data '{ "role": "<admin_read_or_write>", "delegate": { "name": "<username>", "kind": "user" }, "activating_user": { "name": "<robot_name>" } }' https://<quay-server.example.com>/api/v1/organization/<organization_name>/prototypes
2.14.4. getOrganizationPrototypePermissions
列出此组织的现有原型。
GET /api/v1/organization/{orgname}/prototypes
授权: oauth2_implicit (org:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
需要OrgName | 机构名称 | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
示例命令
$ curl -X GET \ -H "Authorization: Bearer <bearer_token>" \ -H "Accept: application/json" \ https://<quay-server.example.com>/api/v1/organization/<organization_name>/prototypes
2.15. 引用器
列出 v2 API 引用器
2.15.1. getReferrers
列出镜像摘要的 v2 API 引用器。
GET /v2/{organization_name}/{repository_name}/referrers/{digest}
请求正文模式(application/json)
镜像摘要的引用。
类型 | Name | 描述 | 模式 |
path |
需要OrgName | 机构名称 | 字符串 |
path |
需要 仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
path |
所需引用 | 在存储库下查找清单的 OCI 引用器。 | string |
2.16. 软件仓库
列出、创建和管理存储库。
2.16.1. createRepo
创建新软件仓库。
POST /api/v1/repository
授权: oauth2_implicit (存储库:create)
请求正文模式(application/json)
新存储库的描述
名称 | 描述 | 模式 |
---|---|---|
需要 仓库 | 仓库名称 | string |
需要 可见性 | 存储库开始的可见性 | 字符串 |
namespace | 创建存储库的命名空间。如果省略,则使用调用者的用户名 | string |
描述 | Markdown 编码的仓库描述 | 字符串 |
repo_kind | 存储库类型 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
201 | 成功创建 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
示例命令
$ curl -X POST \ -H "Authorization: Bearer <bearer_token>" \ -H "Content-Type: application/json" \ -d '{ "repository": "<new_repository_name>", "visibility": "<public>", "description": "<This is a description of the new repository>." }' \ "https://quay-server.example.com/api/v1/repository"
2.16.2. listRepos
在各种情况下,获取当前用户对当前用户可见的存储库列表。
GET /api/v1/repository
授权: oauth2_implicit (存储库:read)
查询参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
query |
next_page | 下一页面的页面令牌 | 字符串 |
query |
repo_kind | 要返回的仓库类型 | 字符串 |
query |
popularity | 是否包含存储库的流行度指标。 | 布尔值 |
query |
last_modified | 是否包含存储库最后一次修改的时间。 | 布尔值 |
query |
需要 公共 | 通过 virtue public 来添加用户可见的任何软件仓库 | 布尔值 |
query |
需要不足 | 过滤用户返回到这些存储库的存储库 | 布尔值 |
query |
namespace | 过滤返回到此命名空间的存储库 | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.16.3. changeRepoVisibility
更改存储库的可见性。
POST /api/v1/repository/{repository}/changevisibility
授权: oauth2_implicit (repo:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
需要 仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
请求正文模式(application/json)
更改存储库的可见性。
名称 | 描述 | 模式 |
---|---|---|
需要 可见性 | 存储库开始的可见性 | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
201 | 成功创建 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.16.4. changeRepoState
更改存储库的状态。
PUT /api/v1/repository/{repository}/changestate
授权: oauth2_implicit (repo:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
需要 仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
请求正文模式(application/json)
更改存储库的状态。
名称 | 描述 | 模式 |
---|---|---|
需要 状态 | 确定是否允许推送。 | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.16.5. getRepo
获取指定的存储库。
GET /api/v1/repository/{repository}
授权: oauth2_implicit (存储库:read)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
需要 仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
查询参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
query |
IncludeTags | 是否包含存储库标签 | 布尔值 |
query |
includeStats | 是否包含操作统计信息 | 布尔值 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
示例命令
$ curl -X GET -H "Authorization: Bearer <bearer_token>" "<quay-server.example.com>/api/v1/repository/<namespace>/<repository_name>"
2.16.6. updateRepo
更新指定存储库中的描述。
PUT /api/v1/repository/{repository}
授权: oauth2_implicit (存储库:写)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
需要 仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
请求正文模式(application/json)
可以在存储库中更新的字段。
名称 | 描述 | 模式 |
---|---|---|
描述 | Markdown 编码的仓库描述 | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.16.7. deleteRepository
删除存储库。
DELETE /api/v1/repository/{repository}
授权: oauth2_implicit (repo:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
需要 仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
204 | 已删除 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
示例命令
$ curl -X DELETE -H "Authorization: Bearer <bearer_token>" "<quay-server.example.com>/api/v1/repository/<namespace>/<repository_name>"
2.17. repositorynotification
列出、创建和管理存储库事件/通知。
2.17.1. testRepoNotification
将测试通知排队此存储库。
POST /api/v1/repository/{repository}/notification/{uuid}/test
授权: oauth2_implicit (repo:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
需要 仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
path |
UUID | 通知的 UUID | string |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
201 | 成功创建 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
示例命令
$ curl -X POST \ -H "Authorization: Bearer <bearer_token>" \ https://<quay-server.example.com>/api/v1/repository/<repository>/notification/<uuid>/test
2.17.2. getRepoNotification
获取指定通知的信息。
GET /api/v1/repository/{repository}/notification/{uuid}
授权: oauth2_implicit (repo:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
需要 仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
path |
UUID | 通知的 UUID | string |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
示例命令
$ curl -X POST \ -H "Authorization: Bearer <bearer_token>" \ https://<quay-server.example.com>/api/v1/repository/<repository>/notification/<uuid>
2.17.3. deleteRepoNotification
删除指定的通知。
DELETE /api/v1/repository/{repository}/notification/{uuid}
授权: oauth2_implicit (repo:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
需要 仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
path |
UUID | 通知的 UUID | string |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
204 | 已删除 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
示例命令
$ curl -X DELETE \ -H "Authorization: Bearer <bearer_token>" \ https://<quay-server.example.com>/api/v1/repository/<namespace>/<repository_name>/notification/<uuid>
2.17.4. resetRepositoryNotificationFailures
将存储库通知重置为 0 个失败。
POST /api/v1/repository/{repository}/notification/{uuid}
授权: oauth2_implicit (repo:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
需要 仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
path |
UUID | 通知的 UUID | string |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
204 | 成功创建 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.17.5. createRepoNotification
POST /api/v1/repository/{repository}/notification/
授权: oauth2_implicit (repo:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
需要 仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
请求正文模式(application/json)
在仓库中创建通知的信息
名称 | 描述 | 模式 |
---|---|---|
需要 事件 | 通知将响应的事件 | string |
所需 方法 | 通知方法(如电子邮件或 Web 回调) | string |
需要配置 | 特定通知方法的 JSON 配置信息 | object |
eventConfig | 特定通知事件的 JSON 配置信息 | 对象 |
title | 通知的人类可读标题 | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
201 | 成功创建 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
示例命令
$ curl -X POST \ -H "Authorization: Bearer <bearer_token>" \ -H "Content-Type: application/json" \ --data '{ "event": "<event>", "method": "<method>", "config": { "<config_key>": "<config_value>" }, "eventConfig": { "<eventConfig_key>": "<eventConfig_value>" } }' \ https://<quay-server.example.com>/api/v1/repository/<namespace>/<repository_name>/notification/
2.17.6. listRepoNotifications
列出指定存储库的通知。
GET /api/v1/repository/{repository}/notification/
授权: oauth2_implicit (repo:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
需要 仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.18. robot
管理用户和组织机器人帐户。
2.18.1. getUserRobots
列出该用户的可用机器人。
GET /api/v1/user/robots
授权: oauth2_implicit (user:admin)
查询参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
query |
限制 | 如果指定,则要返回的机器人数。 | 整数 |
query |
令牌 | 如果为 false,则不会返回机器人的令牌。 | 布尔值 |
query |
权限 | 是否包括机器人具有权限的存储库和团队。 | 布尔值 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.18.2. getOrgRobotPermissions
返回组织机器人的存储库权限列表。
GET /api/v1/organization/{orgname}/robots/{robot_shortname}/permissions
授权: oauth2_implicit (user:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
robot_shortname | 机器人的短名称,没有任何用户或机构前缀 | string |
path |
需要OrgName | 机构名称 | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.18.3. regenerateOrgRobotToken
为机构机器人重新生成令牌。
POST /api/v1/organization/{orgname}/robots/{robot_shortname}/regenerate
授权: oauth2_implicit (org:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
robot_shortname | 机器人的短名称,没有任何用户或机构前缀 | string |
path |
需要OrgName | 机构名称 | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
201 | 成功创建 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
示例命令
$ curl -X POST \ -H "Authorization: Bearer <bearer_token>" \ "<quay-server.example.com>/api/v1/organization/<orgname>/robots/<robot_shortname>/regenerate"
2.18.4. getUserRobotPermissions
返回用户机器人的存储库权限列表。
GET /api/v1/user/robots/{robot_shortname}/permissions
授权: oauth2_implicit (user:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
robot_shortname | 机器人的短名称,没有任何用户或机构前缀 | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.18.5. regenerateUserRobotToken
为用户的机器人重新生成令牌。
POST /api/v1/user/robots/{robot_shortname}/regenerate
授权: oauth2_implicit (user:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
robot_shortname | 机器人的短名称,没有任何用户或机构前缀 | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
201 | 成功创建 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
示例命令
$ curl -X POST \ -H "Authorization: Bearer <bearer_token>" \ "<quay-server.example.com>/api/v1/user/robots/<robot_shortname>/regenerate"
2.18.6. getOrgRobot
使用指定名称返回机构的机器人。
GET /api/v1/organization/{orgname}/robots/{robot_shortname}
授权: oauth2_implicit (org:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
robot_shortname | 机器人的短名称,没有任何用户或机构前缀 | string |
path |
需要OrgName | 机构名称 | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.18.7. createOrgRobot
在组织中创建一个新的机器人。
PUT /api/v1/organization/{orgname}/robots/{robot_shortname}
授权: oauth2_implicit (org:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
robot_shortname | 机器人的短名称,没有任何用户或机构前缀 | string |
path |
需要OrgName | 机构名称 | 字符串 |
请求正文模式(application/json)
创建机器人的可选数据
名称 | 描述 | 模式 |
---|---|---|
description | 机器人的可选文本描述 | 字符串 |
unstructured_metadata | 机器人的可选非结构化元数据 | 对象 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
示例命令
$ curl -X PUT -H "Authorization: Bearer <bearer_token>" "https://<quay-server.example.com>/api/v1/organization/<organization_name>/robots/<robot_name>"
2.18.8. deleteOrgRobot
删除现有的组织机器人。
DELETE /api/v1/organization/{orgname}/robots/{robot_shortname}
授权: oauth2_implicit (org:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
robot_shortname | 机器人的短名称,没有任何用户或机构前缀 | string |
path |
需要OrgName | 机构名称 | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
204 | 已删除 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
示例命令
curl -X DELETE \ -H "Authorization: Bearer <bearer_token>" \ "<quay-server.example.com>/api/v1/organization/<organization_name>/robots/<robot_shortname>"
2.18.9. getOrgRobots
列出组织的机器人。
GET /api/v1/organization/{orgname}/robots
授权: oauth2_implicit (org:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
需要OrgName | 机构名称 | 字符串 |
查询参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
query |
限制 | 如果指定,则要返回的机器人数。 | 整数 |
query |
令牌 | 如果为 false,则不会返回机器人的令牌。 | 布尔值 |
query |
权限 | 是否包括机器人具有权限的存储库和团队。 | 布尔值 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
示例命令
$ curl -X GET -H "Authorization: Bearer <bearer_token>" "https://<quay-server.example.com>/api/v1/organization/<organization_name>/robots"
2.18.10. getUserRobot
返回具有指定名称的机器人。
GET /api/v1/user/robots/{robot_shortname}
授权: oauth2_implicit (user:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
robot_shortname | 机器人的短名称,没有任何用户或机构前缀 | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
示例命令
$ curl -X GET \ -H "Authorization: Bearer <bearer_token>" \ "<quay-server.example.com>/api/v1/user/robots/<robot_shortname>"
2.18.11. createUserRobot
使用指定名称创建一个新用户机器人。
PUT /api/v1/user/robots/{robot_shortname}
授权: oauth2_implicit (user:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
robot_shortname | 机器人的短名称,没有任何用户或机构前缀 | 字符串 |
请求正文模式(application/json)
创建机器人的可选数据
名称 | 描述 | 模式 |
---|---|---|
description | 机器人的可选文本描述 | 字符串 |
unstructured_metadata | 机器人的可选非结构化元数据 | 对象 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
示例命令
$ curl -X PUT -H "Authorization: Bearer <bearer_token>" "https://<quay-server.example.com>/api/v1/user/robots/<robot_name>"
2.18.12. deleteUserRobot
删除现有的机器人。
DELETE /api/v1/user/robots/{robot_shortname}
授权: oauth2_implicit (user:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
robot_shortname | 机器人的短名称,没有任何用户或机构前缀 | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
204 | 已删除 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
示例命令
$ curl -X DELETE \ -H "Authorization: Bearer <bearer_token>" \ "<quay-server.example.com>/api/v1/user/robots/<robot_shortname>"
2.18.13. Auth Federated Robot Token
使用机器人身份联邦机制返回过期机器人令牌。
GET oauth2/federation/robot/token
授权: oauth2_implicit (robot:auth)
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 身份验证和令牌生成成功 | { "token": "string" } |
401 | 未授权 :缺少或无效的身份验证 | { "error": "string" } |
请求正文
类型 | Name | 描述 | 模式 |
---|---|---|---|
正文(body) |
auth_result | 身份验证过程的结果,其中包含有关机器人身份的信息。 | { "missing": "boolean", "error_message": "string", "context": { "robot": "RobotObject" } } |
2.18.14. createOrgRobotFederation
为指定机构机器人创建联邦配置。
POST /api/v1/organization/{orgname}/robots/{robot_shortname}/federation
检索指定机构机器人的联邦配置。
授权: oauth2_implicit (user:admin)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path | orgname + robot_shortnamerequired | 机器人的机构名称和短名称,没有任何用户或机构前缀 | string |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
201 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 |
2.19. search
对所有 registry 上下文执行搜索。
2.19.1. conductRepoSearch
获取与指定查询匹配的应用程序和存储库列表。
GET /api/v1/find/repositories
授权:
查询参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
query |
includeUsage | 是否包含使用元数据 | 布尔值 |
query |
页 | 该页面。 | 整数 |
query |
query | 搜索查询。 | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.19.2. conductSearch
获取与指定查询匹配的实体和资源列表。
GET /api/v1/find/all
授权: oauth2_implicit (存储库:read)
查询参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
query |
query | 搜索查询。 | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.19.3. getMatchingEntities
获取与指定前缀匹配的实体列表。
GET /api/v1/entities/{prefix}
授权:
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
所需 前缀 | 字符串 |
查询参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
query |
includeOrgs | 是否包含机构名称。 | 布尔值 |
query |
includeTeams | 是否包含团队名称。 | 布尔值 |
query |
namespace | 在查询机构实体时要使用的命名空间。 | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.20. secscan
列出和管理存储库漏洞和其他安全信息。
2.20.1. getRepoManifestSecurity
GET /api/v1/repository/{repository}/manifest/{manifestref}/security
授权: oauth2_implicit (存储库:read)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
需要 仓库 | 存储库的完整路径。例如 namespace/name | 字符串 |
path |
manifestref | 清单摘要 | string |
查询参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
query |
漏洞 | 包括漏洞信息 | 布尔值 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
示例命令
$ curl -X GET \ -H "Authorization: Bearer <bearer_token>" \ -H "Accept: application/json" \ "https://quay-server.example.com/api/v1/repository/<namespace>/<repository>/manifest/<manifest_digest>/security?vulnerabilities=<true_or_false>"
2.21. 超级用户
超级用户 API。
2.21.1. createInstallUser
创建新用户。
POST /api/v1/superuser/users/
授权: oauth2_implicit (超级:user)
请求正文模式(application/json)
创建用户的数据
名称 | 描述 | 模式 |
---|---|---|
需要 的用户名 | 正在创建的用户的用户名 | 字符串 |
email | 正在创建的用户的电子邮件地址 | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
201 | 成功创建 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
示例命令
$ curl -X POST -H "Authorization: Bearer <bearer_token>" -H "Content-Type: application/json" -d '{ "username": "newuser", "email": "newuser@example.com" }' "https://<quay-server.example.com>/api/v1/superuser/users/"
2.21.2. deleteInstallUser
删除用户。
DELETE /api/v1/superuser/users/{username}
授权: oauth2_implicit (超级:user)
请求正文模式(application/json)
删除用户的数据
Name | 描述 | 模式 |
---|---|---|
需要 的用户名 | 要删除的用户的用户名 | string |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
201 | 成功创建 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
示例命令
$ curl -X DELETE -H "Authorization: Bearer <bearer_token>" "https://<quay-server.example.com>/api/v1/superuser/users/{username}"
2.21.3. listAllUsers
返回系统中所有用户的列表。
GET /api/v1/superuser/users/
授权: oauth2_implicit (超级:user)
查询参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
query |
next_page | 下一页面的页面令牌 | 字符串 |
query |
限制 | 限制为每个页面返回的结果数。最大 100。 | 整数 |
query |
禁用 | 如果为 false,则仅返回启用的用户。 | 布尔值 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
示例命令
$ curl -X GET -H "Authorization: Bearer <bearer_token>" "https://<quay-server.example.com>/api/v1/superuser/users/"
2.21.4. listAllLogs
列出当前系统的使用日志。
GET /api/v1/superuser/logs
授权: oauth2_implicit (超级:user)
查询参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
query |
next_page | 下一页面的页面令牌 | 字符串 |
query |
页 | 日志的页面号 | 整数 |
query |
ENDTIME | 获取日志的最新时间(%m/%d/%Y %Z) | 字符串 |
query |
startTime | 从中获取日志的最早时间(%m/%d/%Y %Z) | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.21.5. listAllOrganizations
列出当前系统的机构。
GET /api/v1/superuser/organizations
授权: oauth2_implicit (超级:user)
查询参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
name | 受管机构的名称 | string |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
示例命令
$ curl -X GET -H "Authorization: Bearer <bearer_token>" "https://<quay-server.example.com>/api/v1/superuser/organizations/"
2.21.6. createServiceKey
POST /api/v1/superuser/keys
授权: oauth2_implicit (超级:user)
请求正文模式(application/json)
创建服务密钥的描述
名称 | 描述 | 模式 |
---|---|---|
需要 服务 | 使用这个密钥验证的服务 | 字符串 |
name | 服务密钥的友好名称 | 字符串 |
元数据 | 此键元数据的键/值对 | 对象 |
notes | 如果指定,键的额外备注 | string |
过期 | 过期日期为 unix 时间戳 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
201 | 成功创建 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.21.7. listServiceKeys
GET /api/v1/superuser/keys
授权: oauth2_implicit (超级:user)
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.21.8. changeUserQuotaSuperUser
PUT /api/v1/superuser/organization/{namespace}/quota/{quota_id}
授权: oauth2_implicit (超级:user)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
namespace | 字符串 | |
path |
quota_id | 字符串 |
请求正文模式(application/json)
新机构配额的描述
名称 | 描述 | 模式 |
---|---|---|
limit_bytes | 允许机构的字节数 | 整数 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.21.9. deleteUserQuotaSuperUser
DELETE /api/v1/superuser/organization/{namespace}/quota/{quota_id}
授权: oauth2_implicit (超级:user)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
namespace | 字符串 | |
path |
quota_id | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
204 | 已删除 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.21.10. createUserQuotaSuperUser
POST /api/v1/superuser/organization/{namespace}/quota
授权: oauth2_implicit (超级:user)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
namespace | 字符串 |
请求正文模式(application/json)
新机构配额的描述
名称 | 描述 | 模式 |
---|---|---|
limit_bytes | 允许机构的字节数 | 整数 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
201 | 成功创建 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.21.11. listUserQuotaSuperUser
GET /api/v1/superuser/organization/{namespace}/quota
授权: oauth2_implicit (超级:user)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
namespace | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.21.12. changeOrganizationQuotaSuperUser
PUT /api/v1/superuser/users/{namespace}/quota/{quota_id}
授权: oauth2_implicit (超级:user)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
namespace | 字符串 | |
path |
quota_id | 字符串 |
请求正文模式(application/json)
新机构配额的描述
名称 | 描述 | 模式 |
---|---|---|
limit_bytes | 允许机构的字节数 | 整数 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.21.13. deleteOrganizationQuotaSuperUser
DELETE /api/v1/superuser/users/{namespace}/quota/{quota_id}
授权: oauth2_implicit (超级:user)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
namespace | 字符串 | |
path |
quota_id | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
204 | 已删除 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.21.14. createOrganizationQuotaSuperUser
POST /api/v1/superuser/users/{namespace}/quota
授权: oauth2_implicit (超级:user)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
namespace | 字符串 |
请求正文模式(application/json)
新机构配额的描述
名称 | 描述 | 模式 |
---|---|---|
limit_bytes | 允许机构的字节数 | 整数 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
201 | 成功创建 | |
400 | 错误请求 | |
401 | 需要会话 | |
403 | 未授权访问 | |
404 | 未找到 |
2.21.15. listOrganizationQuotaSuperUser
GET /api/v1/superuser/users/{namespace}/quota
授权: oauth2_implicit (超级:user)
路径参数
类型 | Name | 描述 | 模式 |
---|---|---|---|
path |
namespace | 字符串 |
响应
HTTP 代码 | 描述 | 模式 |
---|---|---|
200 | 成功调用 | |
400 | 错误请求 |