From 325b03fd85ab7c9a30f5d06b1a5faaef617df884 Mon Sep 17 00:00:00 2001 From: Gurleen Sethi Date: Mon, 24 Mar 2025 13:04:17 -0400 Subject: [PATCH] Merge pull request #22279 from gurleensethi-docker/feat/oats_apis Add public OATs (Organization Access Token) APIs --- content/reference/api/hub/latest-changelog.md | 6 + content/reference/api/hub/latest.yaml | 1280 ++++++++++------- 2 files changed, 791 insertions(+), 495 deletions(-) diff --git a/content/reference/api/hub/latest-changelog.md b/content/reference/api/hub/latest-changelog.md index 030cfc991f4f..c1c8d7ed42c1 100644 --- a/content/reference/api/hub/latest-changelog.md +++ b/content/reference/api/hub/latest-changelog.md @@ -11,6 +11,12 @@ toc_max: 2 Here you can learn about the latest changes, new features, bug fixes, and known issues for Docker Service APIs. +## 2025-03-25 + +### New + +- Add [APIs](/reference/api/hub/latest/#tag/org-access-tokens) for organization access token (OATs) management. + ## 2025-03-18 ### New diff --git a/content/reference/api/hub/latest.yaml b/content/reference/api/hub/latest.yaml index 14e787825af7..44f4bab98c76 100644 --- a/content/reference/api/hub/latest.yaml +++ b/content/reference/api/hub/latest.yaml @@ -81,7 +81,7 @@ tags: ## Organization Access Token (OAT) Organization access tokens are scoped to specific resources and scopes in an organization. They are managed by organization owners. - + These tokens are meant for automation and are not meant to be used by users. @@ -154,6 +154,11 @@ tags: SCIM is a provisioning system that lets you manage users within your identity provider (IdP). For more information, see [System for Cross-domain Identity management](https://docs.docker.com/security/for-admins/provisioning/scim/). + - name: org-access-tokens + x-displayName: Organization Access Tokens + x-audience: public + description: | + The organization access token endpoints allow you to manage organization access tokens (OATs). See [Organization access tokens](https://docs.docker.com/security/for-admins/access-tokens/) for more information. paths: /v2/users/login: post: @@ -169,7 +174,7 @@ paths: The returned token is used in the HTTP Authorization header like `Authorization: Bearer {TOKEN}`. _**As of September 16, 2024, this route requires a personal access token (PAT) instead of a password if your organization has SSO enforced.**_ - +
Deprecated: Use [Create access token] instead.
@@ -177,22 +182,22 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/UsersLoginRequest' + $ref: "#/components/schemas/UsersLoginRequest" description: Login details. required: true responses: - '200': + "200": description: Authentication successful content: application/json: schema: - $ref: '#/components/schemas/PostUsersLoginSuccessResponse' - '401': + $ref: "#/components/schemas/PostUsersLoginSuccessResponse" + "401": description: Authentication failed or second factor required content: application/json: schema: - $ref: '#/components/schemas/PostUsersLoginErrorResponse' + $ref: "#/components/schemas/PostUsersLoginErrorResponse" /v2/users/2fa-login: post: tags: @@ -212,22 +217,22 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/Users2FALoginRequest' + $ref: "#/components/schemas/Users2FALoginRequest" description: Login details. required: true responses: - '200': + "200": description: Authentication successful content: application/json: schema: - $ref: '#/components/schemas/PostUsersLoginSuccessResponse' - '401': + $ref: "#/components/schemas/PostUsersLoginSuccessResponse" + "401": description: Authentication failed content: application/json: schema: - $ref: '#/components/schemas/PostUsers2FALoginErrorResponse' + $ref: "#/components/schemas/PostUsers2FALoginErrorResponse" /v2/auth/token: post: tags: @@ -237,7 +242,7 @@ paths: operationId: AuthCreateAccessToken description: | Creates and returns a short-lived access token in JWT format for use as a bearer when calling Docker APIs. - + If successful, the access token returned should be used in the HTTP Authorization header like `Authorization: Bearer {access_token}`. @@ -265,15 +270,15 @@ paths: type: string example: dckr_pat_124509ugsdjga93 responses: - '200': + "200": description: Token created content: application/json: schema: - $ref: '#/components/schemas/AuthCreateTokenResponse' - '401': + $ref: "#/components/schemas/AuthCreateTokenResponse" + "401": description: Authentication failed - $ref: '#/components/responses/unauthorized' + $ref: "#/components/responses/unauthorized" /v2/access-tokens: post: summary: Create personal access token @@ -286,25 +291,25 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/createAccessTokenRequest' + $ref: "#/components/schemas/createAccessTokenRequest" required: true responses: - '201': + "201": description: Created content: application/json: schema: - $ref: '#/components/schemas/createAccessTokensResponse' - '400': - $ref: '#/components/responses/BadRequest' - '401': - $ref: '#/components/responses/Unauthorized' + $ref: "#/components/schemas/createAccessTokensResponse" + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" get: summary: List personal access tokens description: Returns a paginated list of personal access tokens. tags: - access-tokens - security: + security: - bearerAuth: [] parameters: - in: query @@ -318,16 +323,16 @@ paths: type: number default: 10 responses: - '200': + "200": description: OK content: application/json: schema: - $ref: '#/components/schemas/getAccessTokensResponse' - '400': - $ref: '#/components/responses/BadRequest' - '401': - $ref: '#/components/responses/Unauthorized' + $ref: "#/components/schemas/getAccessTokensResponse" + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" /v2/access-tokens/{uuid}: parameters: - in: path @@ -341,64 +346,64 @@ paths: Updates a personal access token partially. You can either update the token's label or enable/disable it. tags: - access-tokens - security: + security: - bearerAuth: [] requestBody: content: application/json: schema: - $ref: '#/components/schemas/patchAccessTokenRequest' + $ref: "#/components/schemas/patchAccessTokenRequest" required: true responses: - '200': + "200": description: OK content: application/json: schema: - $ref: '#/components/schemas/patchAccessTokenResponse' - '400': - $ref: '#/components/responses/BadRequest' - '401': - $ref: '#/components/responses/Unauthorized' + $ref: "#/components/schemas/patchAccessTokenResponse" + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" get: summary: Get personal access token description: Returns a personal access token by UUID. tags: - access-tokens - security: + security: - bearerAuth: [] responses: - '200': + "200": description: OK content: application/json: schema: allOf: - - $ref: '#/components/schemas/accessToken' + - $ref: "#/components/schemas/accessToken" - type: object properties: token: type: string - example: '' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + example: "" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" delete: summary: Delete personal access token description: | Deletes a personal access token permanently. This cannot be undone. tags: - access-tokens - security: + security: - bearerAuth: [] responses: - '204': + "204": description: A successful response. - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" /v2/auditlogs/{account}/actions: get: summary: List audit log actions @@ -407,15 +412,15 @@ paths: operationId: AuditLogs_ListAuditActions - security: + security: - bearerAuth: [] responses: - '200': + "200": description: A successful response. content: application/json: schema: - $ref: '#/components/schemas/GetAuditActionsResponse' + $ref: "#/components/schemas/GetAuditActionsResponse" examples: response: value: @@ -462,8 +467,8 @@ paths: description: contains image tag delete events label: Tag Deleted label: Repository - '429': - description: '' + "429": + description: "" content: application/json: schema: {} @@ -472,8 +477,8 @@ paths: value: detail: Rate limit exceeded error: false - '500': - description: '' + "500": + description: "" content: application/json: schema: {} @@ -482,7 +487,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/rpcStatus' + $ref: "#/components/schemas/rpcStatus" parameters: - name: account description: Namespace to query audit log actions for. @@ -503,12 +508,12 @@ paths: security: - bearerAuth: [] responses: - '200': + "200": description: A successful response. content: application/json: schema: - $ref: '#/components/schemas/GetAuditLogsResponse' + $ref: "#/components/schemas/GetAuditLogsResponse" examples: response: value: @@ -520,11 +525,11 @@ paths: data: digest: sha256:c1ae9c435032a276f80220c7d9b40f76266bbe79243d34f9cda30b76fe114dfa tag: latest - timestamp: '2021-02-19T01:34:35Z' + timestamp: "2021-02-19T01:34:35Z" action_description: | pushed the tag latest with the digest sha256:c1ae9c435032a to the repository docker/example - '429': - description: '' + "429": + description: "" content: application/json: schema: {} @@ -533,8 +538,8 @@ paths: value: detail: Rate limit exceeded error: false - '500': - description: '' + "500": + description: "" content: application/json: schema: {} @@ -543,7 +548,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/rpcStatus' + $ref: "#/components/schemas/rpcStatus" parameters: - name: account description: Namespace to query audit logs for. @@ -618,21 +623,21 @@ paths: Returns organization settings by name. tags: - org-settings - security: + security: - bearerAuth: [] responses: - '200': + "200": description: OK content: application/json: schema: - $ref: '#/components/schemas/orgSettings' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' + $ref: "#/components/schemas/orgSettings" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" put: summary: Update organization settings description: | @@ -644,7 +649,7 @@ paths: - `restricted_images` tags: - org-settings - security: + security: - bearerAuth: [] requestBody: content: @@ -655,7 +660,7 @@ paths: properties: restricted_images: allOf: - - $ref: '#/components/schemas/restricted_images' + - $ref: "#/components/schemas/restricted_images" - type: object required: - enabled @@ -663,27 +668,165 @@ paths: - allow_verified_publishers required: true responses: - '200': + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/orgSettings" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + /v2/orgs/{name}/access-tokens: + post: + summary: Create access token + description: | + Create an access token for an organization. + tags: + - org-access-tokens + security: + - bearerAuth: [] + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/createOrgAccessTokenRequest" + required: true + responses: + "201": + description: Created + content: + application/json: + schema: + $ref: "#/components/schemas/createOrgAccessTokenResponse" + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + get: + summary: List access tokens + description: | + List access tokens for an organization. + tags: + - org-access-tokens + security: + - bearerAuth: [] + parameters: + - in: query + name: page + schema: + type: number + default: 1 + - in: query + name: page_size + schema: + type: number + default: 10 + responses: + "200": description: OK content: application/json: schema: - $ref: '#/components/schemas/orgSettings' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' + $ref: "#/components/schemas/getOrgAccessTokensResponse" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + + /v2/orgs/{org_name}/access-tokens/{access_token_id}: + parameters: + - $ref: "#/components/parameters/org_name" + - in: path + name: access_token_id + required: true + schema: + type: string + description: The ID of the access token to retrieve + example: "a7a5ef25-8889-43a0-8cc7-f2a94268e861" + get: + summary: Get access token + description: | + Get details of a specific access token for an organization. + tags: + - org-access-tokens + security: + - bearerAuth: [] + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/getOrgAccessTokenResponse" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + patch: + summary: Update access token + description: | + Update a specific access token for an organization. + tags: + - org-access-tokens + security: + - bearerAuth: [] + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/updateOrgAccessTokenRequest" + required: true + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/updateOrgAccessTokenResponse" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + delete: + summary: Delete access token + description: | + Delete a specific access token for an organization. This action cannot be undone. + tags: + - org-access-tokens + security: + - bearerAuth: [] + responses: + "204": + description: Access token deleted successfully + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" /v2/namespaces/{namespace}/repositories/{repository}/tags: parameters: - - $ref: '#/components/parameters/namespace' - - $ref: '#/components/parameters/repository' + - $ref: "#/components/parameters/namespace" + - $ref: "#/components/parameters/repository" get: summary: List repository tags tags: - repositories - security: + security: - bearerAuth: [] parameters: - in: query @@ -699,65 +842,65 @@ paths: type: integer description: Number of items to get per page. Defaults to 10. Max of 100. responses: - '200': - $ref: '#/components/responses/list_tags' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' + "200": + $ref: "#/components/responses/list_tags" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" head: summary: Check repository tags tags: - repositories - security: + security: - bearerAuth: [] responses: - '200': + "200": description: Repository contains tags - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" /v2/namespaces/{namespace}/repositories/{repository}/tags/{tag}: parameters: - - $ref: '#/components/parameters/namespace' - - $ref: '#/components/parameters/repository' - - $ref: '#/components/parameters/tag' + - $ref: "#/components/parameters/namespace" + - $ref: "#/components/parameters/repository" + - $ref: "#/components/parameters/tag" get: summary: Read repository tag tags: - repositories - security: + security: - bearerAuth: [] responses: - '200': - $ref: '#/components/responses/get_tag' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' + "200": + $ref: "#/components/responses/get_tag" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" head: summary: Check repository tag tags: - repositories - security: + security: - bearerAuth: [] responses: - '200': + "200": description: Repository tag exists - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" /v2/orgs/{org_name}/members: parameters: - - $ref: '#/components/parameters/org_name' - - $ref: '#/components/parameters/search' - - $ref: '#/components/parameters/page' - - $ref: '#/components/parameters/page_size' - - $ref: '#/components/parameters/invites' - - $ref: '#/components/parameters/type' - - $ref: '#/components/parameters/role' + - $ref: "#/components/parameters/org_name" + - $ref: "#/components/parameters/search" + - $ref: "#/components/parameters/page" + - $ref: "#/components/parameters/page_size" + - $ref: "#/components/parameters/invites" + - $ref: "#/components/parameters/type" + - $ref: "#/components/parameters/role" get: summary: List org members description: | @@ -774,28 +917,28 @@ paths: tags: - orgs - security: + security: - bearerAuth: [] responses: - '200': + "200": description: List of members content: application/json: schema: type: array items: - $ref: '#/components/schemas/org_member_paginated' - '400': - $ref: '#/components/responses/bad_request' - '401': - $ref: '#/components/responses/unauthorized' - '403': - $ref: '#/components/responses/forbidden' - '404': - $ref: '#/components/responses/not_found' + $ref: "#/components/schemas/org_member_paginated" + "400": + $ref: "#/components/responses/bad_request" + "401": + $ref: "#/components/responses/unauthorized" + "403": + $ref: "#/components/responses/forbidden" + "404": + $ref: "#/components/responses/not_found" /v2/orgs/{org_name}/members/export: parameters: - - $ref: '#/components/parameters/org_name' + - $ref: "#/components/parameters/org_name" get: summary: Export org members CSV description: | @@ -804,10 +947,10 @@ paths: tags: - orgs - security: + security: - bearerAuth: [] responses: - '200': + "200": description: Exported members content: text/csv: @@ -857,19 +1000,19 @@ paths: schema: type: string example: attachment;filename="{org_name}-members-{timestamp}.csv" - '400': - $ref: '#/components/responses/bad_request' - '401': - $ref: '#/components/responses/unauthorized' - '403': - $ref: '#/components/responses/forbidden' - '404': - $ref: '#/components/responses/not_found' + "400": + $ref: "#/components/responses/bad_request" + "401": + $ref: "#/components/responses/unauthorized" + "403": + $ref: "#/components/responses/forbidden" + "404": + $ref: "#/components/responses/not_found" /v2/orgs/{org_name}/members/{username}: x-audience: public parameters: - - $ref: '#/components/parameters/org_name' - - $ref: '#/components/parameters/username' + - $ref: "#/components/parameters/org_name" + - $ref: "#/components/parameters/username" put: summary: Update org member (role) description: | @@ -879,7 +1022,7 @@ paths: tags: - orgs - security: + security: - bearerAuth: [] requestBody: required: true @@ -897,20 +1040,20 @@ paths: - editor - member responses: - '200': + "200": description: Member role updated content: application/json: schema: - $ref: '#/components/schemas/org_member' - '400': - $ref: '#/components/responses/bad_request' - '401': - $ref: '#/components/responses/unauthorized' - '403': - $ref: '#/components/responses/forbidden' - '404': - $ref: '#/components/responses/not_found' + $ref: "#/components/schemas/org_member" + "400": + $ref: "#/components/responses/bad_request" + "401": + $ref: "#/components/responses/unauthorized" + "403": + $ref: "#/components/responses/forbidden" + "404": + $ref: "#/components/responses/not_found" delete: summary: Remove member from org description: | @@ -919,23 +1062,23 @@ paths: tags: - orgs - security: + security: - bearerAuth: [] responses: - '204': + "204": description: Member removed successfully - '400': - $ref: '#/components/responses/bad_request' - '401': - $ref: '#/components/responses/unauthorized' - '403': - $ref: '#/components/responses/forbidden' - '404': - $ref: '#/components/responses/not_found' + "400": + $ref: "#/components/responses/bad_request" + "401": + $ref: "#/components/responses/unauthorized" + "403": + $ref: "#/components/responses/forbidden" + "404": + $ref: "#/components/responses/not_found" /v2/orgs/{org_name}/invites: x-audience: public parameters: - - $ref: '#/components/parameters/org_name' + - $ref: "#/components/parameters/org_name" get: summary: List org invites description: | @@ -944,11 +1087,11 @@ paths: tags: - invites - security: + security: - bearerAuth: [] responses: - '200': - description: '' + "200": + description: "" content: application/json: schema: @@ -957,28 +1100,28 @@ paths: data: type: array items: - $ref: '#/components/schemas/invite' - '401': - $ref: '#/components/responses/unauthorized' - '403': - $ref: '#/components/responses/forbidden' - '404': - $ref: '#/components/responses/not_found' + $ref: "#/components/schemas/invite" + "401": + $ref: "#/components/responses/unauthorized" + "403": + $ref: "#/components/responses/forbidden" + "404": + $ref: "#/components/responses/not_found" /v2/orgs/{org_name}/groups: x-audience: public parameters: - - $ref: '#/components/parameters/org_name' + - $ref: "#/components/parameters/org_name" get: summary: Get groups of an organization description: | tags: - groups - security: + security: - bearerAuth: [] parameters: - - $ref: '#/components/parameters/page' - - $ref: '#/components/parameters/page_size' + - $ref: "#/components/parameters/page" + - $ref: "#/components/parameters/page_size" - in: query name: username schema: @@ -990,8 +1133,8 @@ paths: type: string description: Get groups for the specified group in the organization. responses: - '200': - description: '' + "200": + description: "" content: application/json: schema: @@ -1008,13 +1151,13 @@ paths: results: type: array items: - $ref: '#/components/schemas/org_group' - '401': - $ref: '#/components/responses/unauthorized' - '403': - $ref: '#/components/responses/forbidden' - '404': - $ref: '#/components/responses/not_found' + $ref: "#/components/schemas/org_group" + "401": + $ref: "#/components/responses/unauthorized" + "403": + $ref: "#/components/responses/forbidden" + "404": + $ref: "#/components/responses/not_found" post: summary: Create a new group description: | @@ -1023,7 +1166,7 @@ paths: tags: - groups - security: + security: - bearerAuth: [] requestBody: content: @@ -1037,51 +1180,51 @@ paths: description: type: string responses: - '201': + "201": description: Group created successfully content: application/json: schema: - $ref: '#/components/schemas/org_group' - '400': - $ref: '#/components/responses/bad_request' - '401': - $ref: '#/components/responses/unauthorized' - '403': - $ref: '#/components/responses/forbidden' + $ref: "#/components/schemas/org_group" + "400": + $ref: "#/components/responses/bad_request" + "401": + $ref: "#/components/responses/unauthorized" + "403": + $ref: "#/components/responses/forbidden" /v2/orgs/{org_name}/groups/{group_name}: x-audience: public parameters: - - $ref: '#/components/parameters/org_name' - - $ref: '#/components/parameters/group_name' + - $ref: "#/components/parameters/org_name" + - $ref: "#/components/parameters/group_name" get: summary: Get a group of an organization description: | tags: - groups - security: + security: - bearerAuth: [] responses: - '200': - description: '' + "200": + description: "" content: application/json: schema: - $ref: '#/components/schemas/org_group' - '401': - $ref: '#/components/responses/unauthorized' - '403': - $ref: '#/components/responses/forbidden' - '404': - $ref: '#/components/responses/not_found' + $ref: "#/components/schemas/org_group" + "401": + $ref: "#/components/responses/unauthorized" + "403": + $ref: "#/components/responses/forbidden" + "404": + $ref: "#/components/responses/not_found" put: summary: Update the details for an organization group description: | tags: - groups - security: + security: - bearerAuth: [] requestBody: content: @@ -1095,25 +1238,25 @@ paths: description: type: string responses: - '200': - description: '' + "200": + description: "" content: application/json: schema: - $ref: '#/components/schemas/org_group' - '401': - $ref: '#/components/responses/unauthorized' - '403': - $ref: '#/components/responses/forbidden' - '404': - $ref: '#/components/responses/not_found' + $ref: "#/components/schemas/org_group" + "401": + $ref: "#/components/responses/unauthorized" + "403": + $ref: "#/components/responses/forbidden" + "404": + $ref: "#/components/responses/not_found" patch: summary: Update some details for an organization group description: | tags: - groups - security: + security: - bearerAuth: [] requestBody: content: @@ -1125,45 +1268,45 @@ paths: description: type: string responses: - '200': - description: '' + "200": + description: "" content: application/json: schema: - $ref: '#/components/schemas/org_group' - '401': - $ref: '#/components/responses/unauthorized' - '403': - $ref: '#/components/responses/forbidden' - '404': - $ref: '#/components/responses/not_found' + $ref: "#/components/schemas/org_group" + "401": + $ref: "#/components/responses/unauthorized" + "403": + $ref: "#/components/responses/forbidden" + "404": + $ref: "#/components/responses/not_found" delete: summary: Delete an organization group description: | tags: - groups - security: + security: - bearerAuth: [] responses: - '204': + "204": description: Group deleted successfully - '401': - $ref: '#/components/responses/unauthorized' - '403': - $ref: '#/components/responses/forbidden' - '404': - $ref: '#/components/responses/not_found' + "401": + $ref: "#/components/responses/unauthorized" + "403": + $ref: "#/components/responses/forbidden" + "404": + $ref: "#/components/responses/not_found" /v2/orgs/{org_name}/groups/{group_name}/members: x-audience: public get: - security: + security: - bearerAuth: [] parameters: - - $ref: '#/components/parameters/org_name' - - $ref: '#/components/parameters/group_name' - - $ref: '#/components/parameters/page' - - $ref: '#/components/parameters/page_size' + - $ref: "#/components/parameters/org_name" + - $ref: "#/components/parameters/group_name" + - $ref: "#/components/parameters/page" + - $ref: "#/components/parameters/page_size" - in: query name: search schema: @@ -1178,8 +1321,8 @@ paths: tags: - groups responses: - '200': - description: '' + "200": + description: "" content: application/json: schema: @@ -1196,60 +1339,60 @@ paths: results: type: array items: - $ref: '#/components/schemas/group_member' - '401': - $ref: '#/components/responses/unauthorized' - '403': - $ref: '#/components/responses/forbidden' - '404': - $ref: '#/components/responses/not_found' + $ref: "#/components/schemas/group_member" + "401": + $ref: "#/components/responses/unauthorized" + "403": + $ref: "#/components/responses/forbidden" + "404": + $ref: "#/components/responses/not_found" post: parameters: - - $ref: '#/components/parameters/org_name' - - $ref: '#/components/parameters/group_name' + - $ref: "#/components/parameters/org_name" + - $ref: "#/components/parameters/group_name" summary: Add a member to a group description: | tags: - groups - security: + security: - bearerAuth: [] requestBody: - $ref: '#/components/requestBodies/add_member_to_org_group' + $ref: "#/components/requestBodies/add_member_to_org_group" responses: - '200': + "200": description: OK - '401': - $ref: '#/components/responses/unauthorized' - '403': - $ref: '#/components/responses/forbidden' - '404': - $ref: '#/components/responses/not_found' - '500': - $ref: '#/components/responses/internal_error' + "401": + $ref: "#/components/responses/unauthorized" + "403": + $ref: "#/components/responses/forbidden" + "404": + $ref: "#/components/responses/not_found" + "500": + $ref: "#/components/responses/internal_error" /v2/orgs/{org_name}/groups/{group_name}/members/{username}: x-audience: public parameters: - - $ref: '#/components/parameters/org_name' - - $ref: '#/components/parameters/group_name' - - $ref: '#/components/parameters/username' + - $ref: "#/components/parameters/org_name" + - $ref: "#/components/parameters/group_name" + - $ref: "#/components/parameters/username" delete: summary: Remove a user from a group description: | tags: - groups - security: + security: - bearerAuth: [] responses: - '204': + "204": description: User removed successfully - '401': - $ref: '#/components/responses/unauthorized' - '403': - $ref: '#/components/responses/forbidden' - '404': - $ref: '#/components/responses/not_found' + "401": + $ref: "#/components/responses/unauthorized" + "403": + $ref: "#/components/responses/forbidden" + "404": + $ref: "#/components/responses/not_found" /v2/invites/{id}: x-audience: public parameters: @@ -1266,17 +1409,17 @@ paths: tags: - invites - security: + security: - bearerAuth: [] responses: - '204': - description: '' - '401': - $ref: '#/components/responses/unauthorized' - '403': - $ref: '#/components/responses/forbidden' - '404': - $ref: '#/components/responses/not_found' + "204": + description: "" + "401": + $ref: "#/components/responses/unauthorized" + "403": + $ref: "#/components/responses/forbidden" + "404": + $ref: "#/components/responses/not_found" /v2/invites/{id}/resend: x-audience: public parameters: @@ -1293,21 +1436,21 @@ paths: tags: - invites - security: + security: - bearerAuth: [] responses: - '204': - description: '' - '401': - $ref: '#/components/responses/unauthorized' - '403': - $ref: '#/components/responses/forbidden' - '404': - $ref: '#/components/responses/not_found' + "204": + description: "" + "401": + $ref: "#/components/responses/unauthorized" + "403": + $ref: "#/components/responses/forbidden" + "404": + $ref: "#/components/responses/not_found" /v2/invites/bulk: x-audience: public parameters: - - $ref: '#/components/parameters/bulk_invite' + - $ref: "#/components/parameters/bulk_invite" post: summary: Bulk create invites description: | @@ -1317,11 +1460,11 @@ paths: tags: - invites requestBody: - $ref: '#/components/requestBodies/bulk_invite_request' - security: + $ref: "#/components/requestBodies/bulk_invite_request" + security: - bearerAuth: [] responses: - '202': + "202": description: Accepted content: application/json: @@ -1329,11 +1472,11 @@ paths: type: object properties: invitees: - $ref: '#/components/schemas/bulk_invite' - '400': - $ref: '#/components/responses/bad_request' - '409': - $ref: '#/components/responses/conflict' + $ref: "#/components/schemas/bulk_invite" + "400": + $ref: "#/components/responses/bad_request" + "409": + $ref: "#/components/responses/conflict" /v2/scim/2.0/ServiceProviderConfig: x-audience: public get: @@ -1345,12 +1488,12 @@ paths: security: - bearerSCIMAuth: [] responses: - '200': - $ref: '#/components/responses/scim_get_service_provider_config_resp' - '401': - $ref: '#/components/responses/scim_unauthorized' - '500': - $ref: '#/components/responses/scim_error' + "200": + $ref: "#/components/responses/scim_get_service_provider_config_resp" + "401": + $ref: "#/components/responses/scim_unauthorized" + "500": + $ref: "#/components/responses/scim_error" /v2/scim/2.0/ResourceTypes: x-audience: public get: @@ -1362,12 +1505,12 @@ paths: security: - bearerSCIMAuth: [] responses: - '200': - $ref: '#/components/responses/scim_get_resource_types_resp' - '401': - $ref: '#/components/responses/scim_unauthorized' - '500': - $ref: '#/components/responses/scim_error' + "200": + $ref: "#/components/responses/scim_get_resource_types_resp" + "401": + $ref: "#/components/responses/scim_unauthorized" + "500": + $ref: "#/components/responses/scim_error" /v2/scim/2.0/ResourceTypes/{name}: x-audience: public get: @@ -1386,14 +1529,14 @@ paths: security: - bearerSCIMAuth: [] responses: - '200': - $ref: '#/components/responses/scim_get_resource_type_resp' - '401': - $ref: '#/components/responses/scim_unauthorized' - '404': - $ref: '#/components/responses/scim_not_found' - '500': - $ref: '#/components/responses/scim_error' + "200": + $ref: "#/components/responses/scim_get_resource_type_resp" + "401": + $ref: "#/components/responses/scim_unauthorized" + "404": + $ref: "#/components/responses/scim_not_found" + "500": + $ref: "#/components/responses/scim_error" /v2/scim/2.0/Schemas: x-audience: public get: @@ -1405,12 +1548,12 @@ paths: security: - bearerSCIMAuth: [] responses: - '200': - $ref: '#/components/responses/scim_get_schemas_resp' - '401': - $ref: '#/components/responses/scim_unauthorized' - '500': - $ref: '#/components/responses/scim_error' + "200": + $ref: "#/components/responses/scim_get_schemas_resp" + "401": + $ref: "#/components/responses/scim_unauthorized" + "500": + $ref: "#/components/responses/scim_error" /v2/scim/2.0/Schemas/{id}: x-audience: public get: @@ -1429,14 +1572,14 @@ paths: security: - bearerSCIMAuth: [] responses: - '200': - $ref: '#/components/responses/scim_get_schema_resp' - '401': - $ref: '#/components/responses/scim_unauthorized' - '404': - $ref: '#/components/responses/scim_not_found' - '500': - $ref: '#/components/responses/scim_error' + "200": + $ref: "#/components/responses/scim_get_schema_resp" + "401": + $ref: "#/components/responses/scim_unauthorized" + "404": + $ref: "#/components/responses/scim_not_found" + "500": + $ref: "#/components/responses/scim_error" /v2/scim/2.0/Users: x-audience: public get: @@ -1474,7 +1617,7 @@ paths: schema: type: integer minimum: 1 - description: '' + description: "" example: 1 - name: count in: query @@ -1482,15 +1625,15 @@ paths: type: integer minimum: 1 maximum: 200 - description: '' + description: "" example: 10 - name: filter in: query schema: type: string - description: '' + description: "" example: userName eq "jon.snow@docker.com" - - $ref: '#/components/parameters/scim_attributes' + - $ref: "#/components/parameters/scim_attributes" - name: sortOrder in: query schema: @@ -1505,18 +1648,18 @@ paths: description: User attribute to sort by. example: userName responses: - '200': - $ref: '#/components/responses/scim_get_users_resp' - '400': - $ref: '#/components/responses/scim_bad_request' - '401': - $ref: '#/components/responses/scim_unauthorized' - '403': - $ref: '#/components/responses/scim_forbidden' - '404': - $ref: '#/components/responses/scim_not_found' - '500': - $ref: '#/components/responses/scim_error' + "200": + $ref: "#/components/responses/scim_get_users_resp" + "400": + $ref: "#/components/responses/scim_bad_request" + "401": + $ref: "#/components/responses/scim_unauthorized" + "403": + $ref: "#/components/responses/scim_forbidden" + "404": + $ref: "#/components/responses/scim_not_found" + "500": + $ref: "#/components/responses/scim_error" post: summary: Create user description: | @@ -1526,26 +1669,26 @@ paths: security: - bearerSCIMAuth: [] requestBody: - $ref: '#/components/requestBodies/scim_create_user_request' + $ref: "#/components/requestBodies/scim_create_user_request" responses: - '201': - $ref: '#/components/responses/scim_create_user_resp' - '400': - $ref: '#/components/responses/scim_bad_request' - '401': - $ref: '#/components/responses/scim_unauthorized' - '403': - $ref: '#/components/responses/scim_forbidden' - '404': - $ref: '#/components/responses/scim_not_found' - '409': - $ref: '#/components/responses/scim_conflict' - '500': - $ref: '#/components/responses/scim_error' + "201": + $ref: "#/components/responses/scim_create_user_resp" + "400": + $ref: "#/components/responses/scim_bad_request" + "401": + $ref: "#/components/responses/scim_unauthorized" + "403": + $ref: "#/components/responses/scim_forbidden" + "404": + $ref: "#/components/responses/scim_not_found" + "409": + $ref: "#/components/responses/scim_conflict" + "500": + $ref: "#/components/responses/scim_error" /v2/scim/2.0/Users/{id}: x-audience: public parameters: - - $ref: '#/components/parameters/scim_user_id' + - $ref: "#/components/parameters/scim_user_id" get: summary: Get a user description: | @@ -1555,18 +1698,18 @@ paths: security: - bearerSCIMAuth: [] responses: - '200': - $ref: '#/components/responses/scim_get_user_resp' - '400': - $ref: '#/components/responses/scim_bad_request' - '401': - $ref: '#/components/responses/scim_unauthorized' - '403': - $ref: '#/components/responses/scim_forbidden' - '404': - $ref: '#/components/responses/scim_not_found' - '500': - $ref: '#/components/responses/scim_error' + "200": + $ref: "#/components/responses/scim_get_user_resp" + "400": + $ref: "#/components/responses/scim_bad_request" + "401": + $ref: "#/components/responses/scim_unauthorized" + "403": + $ref: "#/components/responses/scim_forbidden" + "404": + $ref: "#/components/responses/scim_not_found" + "500": + $ref: "#/components/responses/scim_error" put: summary: Update a user description: | @@ -1576,22 +1719,22 @@ paths: security: - bearerSCIMAuth: [] requestBody: - $ref: '#/components/requestBodies/scim_update_user_request' + $ref: "#/components/requestBodies/scim_update_user_request" responses: - '200': - $ref: '#/components/responses/scim_update_user_resp' - '400': - $ref: '#/components/responses/scim_bad_request' - '401': - $ref: '#/components/responses/scim_unauthorized' - '403': - $ref: '#/components/responses/scim_forbidden' - '404': - $ref: '#/components/responses/scim_not_found' - '409': - $ref: '#/components/responses/scim_conflict' - '500': - $ref: '#/components/responses/scim_error' + "200": + $ref: "#/components/responses/scim_update_user_resp" + "400": + $ref: "#/components/responses/scim_bad_request" + "401": + $ref: "#/components/responses/scim_unauthorized" + "403": + $ref: "#/components/responses/scim_forbidden" + "404": + $ref: "#/components/responses/scim_not_found" + "409": + $ref: "#/components/responses/scim_conflict" + "500": + $ref: "#/components/responses/scim_error" components: responses: BadRequest: @@ -1599,83 +1742,83 @@ components: content: application/json: schema: - $ref: '#/components/schemas/ValueError' + $ref: "#/components/schemas/ValueError" Unauthorized: description: Unauthorized content: application/json: schema: - $ref: '#/components/schemas/Error' + $ref: "#/components/schemas/Error" Forbidden: description: Forbidden content: application/json: schema: - $ref: '#/components/schemas/Error' + $ref: "#/components/schemas/Error" NotFound: description: Not Found content: application/json: schema: - $ref: '#/components/schemas/Error' + $ref: "#/components/schemas/Error" list_tags: description: list repository tags content: application/json: schema: - $ref: '#/components/schemas/paginated_tags' + $ref: "#/components/schemas/paginated_tags" get_tag: description: repository tag content: application/json: schema: - $ref: '#/components/schemas/tag' + $ref: "#/components/schemas/tag" bad_request: description: Bad Request content: application/json: schema: - $ref: '#/components/schemas/error' + $ref: "#/components/schemas/error" unauthorized: description: Unauthorized content: application/json: schema: - $ref: '#/components/schemas/error' + $ref: "#/components/schemas/error" forbidden: description: Forbidden content: application/json: schema: - $ref: '#/components/schemas/error' + $ref: "#/components/schemas/error" not_found: description: Not Found content: application/json: schema: - $ref: '#/components/schemas/error' + $ref: "#/components/schemas/error" conflict: description: Conflict content: application/json: schema: - $ref: '#/components/schemas/error' + $ref: "#/components/schemas/error" internal_error: description: Internal content: application/json: schema: - $ref: '#/components/schemas/error' + $ref: "#/components/schemas/error" scim_bad_request: description: Bad Request content: application/scim+json: schema: allOf: - - $ref: '#/components/schemas/scim_error' + - $ref: "#/components/schemas/scim_error" - properties: status: - example: '400' + example: "400" scimType: type: string description: Some types of errors will return this per the specification. @@ -1685,58 +1828,58 @@ components: application/scim+json: schema: allOf: - - $ref: '#/components/schemas/scim_error' + - $ref: "#/components/schemas/scim_error" - properties: status: - example: '401' + example: "401" scim_forbidden: description: Forbidden content: application/scim+json: schema: allOf: - - $ref: '#/components/schemas/scim_error' + - $ref: "#/components/schemas/scim_error" - properties: status: - example: '403' + example: "403" scim_not_found: description: Not Found content: application/scim+json: schema: allOf: - - $ref: '#/components/schemas/scim_error' + - $ref: "#/components/schemas/scim_error" - properties: status: - example: '404' + example: "404" scim_conflict: description: Conflict content: application/scim+json: schema: allOf: - - $ref: '#/components/schemas/scim_error' + - $ref: "#/components/schemas/scim_error" - properties: status: - example: '409' + example: "409" scim_error: description: Internal Error content: application/scim+json: schema: allOf: - - $ref: '#/components/schemas/scim_error' + - $ref: "#/components/schemas/scim_error" - properties: status: - example: '500' + example: "500" scim_get_service_provider_config_resp: - description: '' + description: "" content: application/scim+json: schema: - $ref: '#/components/schemas/scim_service_provider_config' + $ref: "#/components/schemas/scim_service_provider_config" scim_get_resource_types_resp: - description: '' + description: "" content: application/scim+json: schema: @@ -1753,15 +1896,15 @@ components: resources: type: array items: - $ref: '#/components/schemas/scim_resource_type' + $ref: "#/components/schemas/scim_resource_type" scim_get_resource_type_resp: - description: '' + description: "" content: application/scim+json: schema: - $ref: '#/components/schemas/scim_resource_type' + $ref: "#/components/schemas/scim_resource_type" scim_get_schemas_resp: - description: '' + description: "" content: application/scim+json: schema: @@ -1778,15 +1921,15 @@ components: resources: type: array items: - $ref: '#/components/schemas/scim_schema' + $ref: "#/components/schemas/scim_schema" scim_get_schema_resp: - description: '' + description: "" content: application/scim+json: schema: - $ref: '#/components/schemas/scim_schema' + $ref: "#/components/schemas/scim_schema" scim_get_users_resp: - description: '' + description: "" content: application/scim+json: schema: @@ -1810,25 +1953,25 @@ components: resources: type: array items: - $ref: '#/components/schemas/scim_user' + $ref: "#/components/schemas/scim_user" scim_create_user_resp: - description: '' + description: "" content: application/scim+json: schema: - $ref: '#/components/schemas/scim_user' + $ref: "#/components/schemas/scim_user" scim_get_user_resp: - description: '' + description: "" content: application/scim+json: schema: - $ref: '#/components/schemas/scim_user' + $ref: "#/components/schemas/scim_user" scim_update_user_resp: - description: '' + description: "" content: application/scim+json: schema: - $ref: '#/components/schemas/scim_user' + $ref: "#/components/schemas/scim_user" schemas: UsersLoginRequest: description: User login details @@ -1926,7 +2069,7 @@ components: details: type: array items: - $ref: '#/components/schemas/protobufAny' + $ref: "#/components/schemas/protobufAny" AuditLogAction: type: object properties: @@ -1946,7 +2089,7 @@ components: actions: type: array items: - $ref: '#/components/schemas/AuditLogAction' + $ref: "#/components/schemas/AuditLogAction" description: List of audit log actions. label: type: string @@ -1957,7 +2100,7 @@ components: actions: type: object additionalProperties: - $ref: '#/components/schemas/AuditLogActions' + $ref: "#/components/schemas/AuditLogActions" description: Map of audit log actions. description: GetAuditActions response. GetAuditLogsResponse: @@ -1966,7 +2109,7 @@ components: logs: type: array items: - $ref: '#/components/schemas/AuditLog' + $ref: "#/components/schemas/AuditLog" description: List of audit log events. description: GetAuditLogs response. AuditLog: @@ -2024,7 +2167,7 @@ components: example: some user agent created_at: type: string - example: '2021-07-20T12:00:00.000000Z' + example: "2021-07-20T12:00:00.000000Z" last_used: type: string example: null @@ -2073,9 +2216,9 @@ components: Optional expiration date for the token. If omitted, the token will remain valid indefinitely. format: date-time - example: '2021-10-28T18:30:19.520861Z' + example: "2021-10-28T18:30:19.520861Z" createAccessTokensResponse: - $ref: '#/components/schemas/accessToken' + $ref: "#/components/schemas/accessToken" getAccessTokensResponse: type: object properties: @@ -2095,12 +2238,12 @@ components: type: array items: allOf: - - $ref: '#/components/schemas/accessToken' + - $ref: "#/components/schemas/accessToken" - type: object properties: token: type: string - example: '' + example: "" patchAccessTokenRequest: type: object properties: @@ -2113,12 +2256,12 @@ components: type: boolean example: false patchAccessTokenResponse: - $ref: '#/components/schemas/accessToken' + $ref: "#/components/schemas/accessToken" orgSettings: type: object properties: restricted_images: - $ref: '#/components/schemas/restricted_images' + $ref: "#/components/schemas/restricted_images" restricted_images: type: object properties: @@ -2166,7 +2309,7 @@ components: layers: type: array items: - $ref: '#/components/schemas/layer' + $ref: "#/components/schemas/layer" os: type: string description: operating system @@ -2187,12 +2330,12 @@ components: description: Status of the image last_pulled: type: string - example: '2021-01-05T21:06:53.506400Z' + example: "2021-01-05T21:06:53.506400Z" description: datetime of last pull nullable: true last_pushed: type: string - example: '2021-01-05T21:06:53.506400Z' + example: "2021-01-05T21:06:53.506400Z" description: datetime of last push nullable: true tag: @@ -2203,13 +2346,13 @@ components: description: tag ID images: type: object - $ref: '#/components/schemas/image' + $ref: "#/components/schemas/image" creator: type: integer description: ID of the user that pushed the tag last_updated: type: string - example: '2021-01-05T21:06:53.506400Z' + example: "2021-01-05T21:06:53.506400Z" description: datetime of last update nullable: true last_updater: @@ -2238,23 +2381,23 @@ components: description: whether a tag has been pushed to or pulled in the past month tag_last_pulled: type: string - example: '2021-01-05T21:06:53.506400Z' + example: "2021-01-05T21:06:53.506400Z" description: datetime of last pull nullable: true tag_last_pushed: type: string - example: '2021-01-05T21:06:53.506400Z' + example: "2021-01-05T21:06:53.506400Z" description: datetime of last push nullable: true paginated_tags: allOf: - - $ref: '#/components/schemas/page' + - $ref: "#/components/schemas/page" - type: object properties: results: type: array items: - $ref: '#/components/schemas/tag' + $ref: "#/components/schemas/tag" page: type: object properties: @@ -2305,13 +2448,13 @@ components: example: server scim_schema_parent_attribute: allOf: - - $ref: '#/components/schemas/scim_schema_attribute' + - $ref: "#/components/schemas/scim_schema_attribute" - type: object properties: subAttributes: type: array items: - $ref: '#/components/schemas/scim_schema_attribute' + $ref: "#/components/schemas/scim_schema_attribute" invite: type: object properties: @@ -2336,7 +2479,7 @@ components: example: owners created_at: type: string - example: '2021-10-28T18:30:19.520861Z' + example: "2021-10-28T18:30:19.520861Z" bulk_invite: type: object properties: @@ -2354,7 +2497,7 @@ components: description: status of the invite or validation error invite: description: Invite data if successfully invited - $ref: '#/components/schemas/invite' + $ref: "#/components/schemas/invite" example: invitees: - invitee: invitee@docker.com @@ -2365,7 +2508,7 @@ components: invitee: invitee@docker.com org: docker team: owners - created_at: '2021-10-28T18:30:19.520861Z' + created_at: "2021-10-28T18:30:19.520861Z" - invitee: invitee2@docker.com status: existing_org_member - invitee: invitee3@docker.com @@ -2407,7 +2550,7 @@ components: example: Docker Inc date_joined: type: string - example: '2021-01-05T21:06:53.506400Z' + example: "2021-01-05T21:06:53.506400Z" full_name: type: string example: Jon Snow @@ -2430,7 +2573,7 @@ components: example: dockeruser org_member: allOf: - - $ref: '#/components/schemas/user' + - $ref: "#/components/schemas/user" properties: email: type: string @@ -2467,21 +2610,21 @@ components: description: | Last time the user logged in. To access this field, you must have insights visible for your organization. See [Insights](https://docs.docker.com/admin/organization/insights/#view-insights-for-organization-users). - example: '2021-01-05T21:06:53.506400Z' + example: "2021-01-05T21:06:53.506400Z" last_seen_at: type: string format: date-time description: | Last time the user was seen. To access this field, you must have insights visible for your organization. See [Insights](https://docs.docker.com/admin/organization/insights/#view-insights-for-organization-users). - example: '2021-01-05T21:06:53.506400Z' + example: "2021-01-05T21:06:53.506400Z" last_desktop_version: type: string description: | Last desktop version the user used. To access this field, you must have insights visible for your organization. See [Insights](https://docs.docker.com/admin/organization/insights/#view-insights-for-organization-users). example: 4.29.0 - + org_member_paginated: type: object properties: @@ -2501,7 +2644,7 @@ components: type: array description: List of accounts. items: - $ref: '#/components/schemas/org_member' + $ref: "#/components/schemas/org_member" org_group: type: object properties: @@ -2537,7 +2680,7 @@ components: date_joined: type: string format: date-time - example: '2021-01-05T21:06:53.506400Z' + example: "2021-01-05T21:06:53.506400Z" full_name: type: string example: John Snow @@ -2577,7 +2720,7 @@ components: type: boolean legacy_email_address: allOf: - - $ref: '#/components/schemas/email_address' + - $ref: "#/components/schemas/email_address" - type: object properties: user: @@ -2585,7 +2728,7 @@ components: example: dockeruser email_with_username: allOf: - - $ref: '#/components/schemas/email_address' + - $ref: "#/components/schemas/email_address" - type: object properties: username: @@ -2602,7 +2745,7 @@ components: - urn:ietf:params:scim:schemas:core:2.0:ServiceProviderConfig documentationUri: type: string - example: '' + example: "" patch: properties: supported: @@ -2706,7 +2849,7 @@ components: type: array example: [] items: - $ref: '#/components/schemas/scim_schema_parent_attribute' + $ref: "#/components/schemas/scim_schema_parent_attribute" scim_email: type: object properties: @@ -2759,26 +2902,26 @@ components: type: object properties: schemas: - $ref: '#/components/schemas/scim_user_schemas' + $ref: "#/components/schemas/scim_user_schemas" id: - $ref: '#/components/schemas/scim_user_id' + $ref: "#/components/schemas/scim_user_id" userName: - $ref: '#/components/schemas/scim_user_username' + $ref: "#/components/schemas/scim_user_username" name: - $ref: '#/components/schemas/scim_user_name' + $ref: "#/components/schemas/scim_user_name" displayName: - $ref: '#/components/schemas/scim_user_display_name' + $ref: "#/components/schemas/scim_user_display_name" active: type: boolean example: true emails: type: array items: - $ref: '#/components/schemas/scim_email' + $ref: "#/components/schemas/scim_email" groups: type: array items: - $ref: '#/components/schemas/scim_group' + $ref: "#/components/schemas/scim_group" meta: type: object properties: @@ -2792,12 +2935,158 @@ components: type: string format: date-time description: The creation date for the user as a RFC3339 formatted string. - example: '2022-05-20T00:54:18Z' + example: "2022-05-20T00:54:18Z" lastModified: type: string format: date-time description: The date the user was last modified as a RFC3339 formatted string. - example: '2022-05-20T00:54:18Z' + example: "2022-05-20T00:54:18Z" + orgAccessToken: + type: object + properties: + id: + type: string + example: "a7a5ef25-8889-43a0-8cc7-f2a94268e861" + label: + type: string + example: "My organization token" + created_by: + type: string + example: "johndoe" + is_active: + type: boolean + example: true + created_at: + type: string + format: date-time + example: "2022-05-20T00:54:18Z" + expires_at: + type: string + format: date-time + example: "2023-05-20T00:54:18Z" + nullable: true + last_used_at: + type: string + format: date-time + example: "2022-06-15T12:30:45Z" + nullable: true + orgAccessTokenResource: + type: object + properties: + type: + type: string + enum: + - TYPE_REPO + - TYPE_ORG + example: "TYPE_REPO" + description: The type of resource + required: true + path: + type: string + example: "myorg/myrepo" + description: The path of the resource. The format of this will change depending on the type of resource. + required: true + scopes: + type: array + description: The scopes this token has access to + items: + type: string + example: "repo-pull" + required: true + getOrgAccessTokensResponse: + type: object + properties: + total: + type: number + example: 10 + next: + type: string + example: https://hub.docker.com/v2/orgs/docker/access-tokens?page=2&page_size=10 + previous: + type: string + example: https://hub.docker.com/v2/orgs/docker/access-tokens?page=1&page_size=10 + results: + type: array + items: + $ref: "#/components/schemas/orgAccessToken" + getOrgAccessTokenResponse: + allOf: + - $ref: "#/components/schemas/orgAccessToken" + - type: object + properties: + resources: + type: array + description: Resources this token has access to + items: + $ref: "#/components/schemas/orgAccessTokenResource" + createOrgAccessTokenRequest: + type: object + properties: + label: + type: string + description: Label for the access token + example: "My organization token" + required: true + description: + type: string + description: Description of the access token + example: "Token for CI/CD pipeline" + resources: + type: array + description: Resources this token has access to + items: + $ref: "#/components/schemas/orgAccessTokenResource" + expires_at: + type: string + format: date-time + description: Expiration date for the token + example: "2023-05-20T00:54:18Z" + nullable: true + createOrgAccessTokenResponse: + type: object + allOf: + - $ref: "#/components/schemas/orgAccessToken" + - type: object + properties: + token: + type: string + description: The actual token value that can be used for authentication + example: "dckr_oat_7awgM4jG5SQvxcvmNzhKj8PQjxo" + resources: + type: array + items: + $ref: "#/components/schemas/orgAccessTokenResource" + updateOrgAccessTokenRequest: + type: object + properties: + label: + type: string + description: Label for the access token + example: "My organization token" + description: + type: string + description: Description of the access token + example: "Token for CI/CD pipeline" + resources: + type: array + description: Resources this token has access to + items: + $ref: "#/components/schemas/orgAccessTokenResource" + is_active: + type: boolean + description: Whether the token is active + example: true + updateOrgAccessTokenResponse: + type: object + allOf: + - $ref: "#/components/schemas/orgAccessToken" + - type: object + properties: + resources: + type: array + description: Resources this token has access to + items: + $ref: "#/components/schemas/orgAccessTokenResource" parameters: namespace: in: path @@ -2954,11 +3243,11 @@ components: - userName properties: schemas: - $ref: '#/components/schemas/scim_user_schemas' + $ref: "#/components/schemas/scim_user_schemas" userName: - $ref: '#/components/schemas/scim_user_username' + $ref: "#/components/schemas/scim_user_username" name: - $ref: '#/components/schemas/scim_user_name' + $ref: "#/components/schemas/scim_user_name" scim_update_user_request: required: true content: @@ -2969,10 +3258,10 @@ components: - schemas properties: schemas: - $ref: '#/components/schemas/scim_user_schemas' + $ref: "#/components/schemas/scim_user_schemas" name: allOf: - - $ref: '#/components/schemas/scim_user_name' + - $ref: "#/components/schemas/scim_user_name" - description: If this is omitted from the request, the update will skip the update on it. We will only ever change the name, but not clear it. enabled: type: boolean @@ -3014,6 +3303,7 @@ x-tagGroups: - org-settings - repositories - scim - - orgs + - orgs + - org-access-tokens - groups - invites