Docker Hub · Capability

Docker HUB API

Docker Hub is a service provided by Docker for finding and sharing container images with your team. It is the world's largest library and community for container images. In addition to the [Docker Hub UI](https://docs.docker.com/docker-hub/) and [Docker Hub CLI tool](https://github.com/docker/hub-tool#readme) (currently experimental), Docker provides an API that allows you to interact with Docker Hub. Browse through the Docker Hub API documentation to explore the supported endpoints.

Run with Naftiko DockerHubAPI

What You Can Do

POST
Postuserslogin — Create an authentication token
/v2/users/login
POST
Postusers2falogin — Second factor authentication
/v2/users/2fa-login
POST
Authcreateaccesstoken — Create access token
/v2/auth/token
POST
Post v2 access tokens — Create personal access token
/v2/access-tokens
GET
Get v2 access tokens — List personal access tokens
/v2/access-tokens
PATCH
Patch v2 access tokens uuid — Update personal access token
/v2/access-tokens/{uuid}
GET
Get v2 access tokens uuid — Get personal access token
/v2/access-tokens/{uuid}
DELETE
Delete v2 access tokens uuid — Delete personal access token
/v2/access-tokens/{uuid}
GET
Auditlogs listauditactions — List audit log actions
/v2/auditlogs/{account}/actions
GET
Auditlogs listauditlogs — List audit log events
/v2/auditlogs/{account}
GET
Get v2 orgs name settings — Get organization settings
/v2/orgs/{name}/settings
PUT
Put v2 orgs name settings — Update organization settings
/v2/orgs/{name}/settings
POST
Post v2 orgs name access tokens — Create access token
/v2/orgs/{name}/access-tokens
GET
Get v2 orgs name access tokens — List access tokens
/v2/orgs/{name}/access-tokens
GET
Get v2 orgs org name access tokens access token — Get access token
/v2/orgs/{org_name}/access-tokens/{access_token_id}
PATCH
Patch v2 orgs org name access tokens access toke — Update access token
/v2/orgs/{org_name}/access-tokens/{access_token_id}
DELETE
Delete v2 orgs org name access tokens access tok — Delete access token
/v2/orgs/{org_name}/access-tokens/{access_token_id}
GET
Listrepositorytags — List repository tags
/v2/namespaces/{namespace}/repositories/{repository}/tags
GET
Getrepositorytag — Read repository tag
/v2/namespaces/{namespace}/repositories/{repository}/tags/{tag}
PATCH
Updaterepositoryimmutabletags — Update repository immutable tags
/v2/namespaces/{namespace}/repositories/{repository}/immutabletags
POST
Verifyrepositoryimmutabletags — Verify repository immutable tags
/v2/namespaces/{namespace}/repositories/{repository}/immutabletags/verify
POST
Createrepositorygroup — Assign a group (Team) to a repository for access
/v2/repositories/{namespace}/{repository}/groups
GET
Listnamespacerepositories — List repositories in a namespace
/v2/namespaces/{namespace}/repositories
POST
Createrepository — Create a new repository
/v2/namespaces/{namespace}/repositories
GET
Getrepository — Get repository in a namespace
/v2/namespaces/{namespace}/repositories/{repository}
GET
Get v2 orgs org name members — List org members
/v2/orgs/{org_name}/members
GET
Get v2 orgs org name members export — Export org members CSV
/v2/orgs/{org_name}/members/export
PUT
Put v2 orgs org name members username — Update org member (role)
/v2/orgs/{org_name}/members/{username}
DELETE
Delete v2 orgs org name members username — Remove member from org
/v2/orgs/{org_name}/members/{username}
GET
Get v2 orgs org name invites — List org invites
/v2/orgs/{org_name}/invites
GET
Get v2 orgs org name groups — Get groups of an organization
/v2/orgs/{org_name}/groups
POST
Post v2 orgs org name groups — Create a new group
/v2/orgs/{org_name}/groups
GET
Get v2 orgs org name groups group name — Get a group of an organization
/v2/orgs/{org_name}/groups/{group_name}
PUT
Put v2 orgs org name groups group name — Update the details for an organization group
/v2/orgs/{org_name}/groups/{group_name}
PATCH
Patch v2 orgs org name groups group name — Update some details for an organization group
/v2/orgs/{org_name}/groups/{group_name}
DELETE
Delete v2 orgs org name groups group name — Delete an organization group
/v2/orgs/{org_name}/groups/{group_name}
GET
Get v2 orgs org name groups group name members — List members of a group
/v2/orgs/{org_name}/groups/{group_name}/members
POST
Post v2 orgs org name groups group name members — Add a member to a group
/v2/orgs/{org_name}/groups/{group_name}/members
DELETE
Delete v2 orgs org name groups group name member — Remove a user from a group
/v2/orgs/{org_name}/groups/{group_name}/members/{username}
DELETE
Delete v2 invites id — Cancel an invite
/v2/invites/{id}
PATCH
Patch v2 invites id resend — Resend an invite
/v2/invites/{id}/resend
POST
Post v2 invites bulk — Bulk create invites
/v2/invites/bulk
GET
Get v2 scim 2 0 serviceproviderconfig — Get service provider config
/v2/scim/2.0/ServiceProviderConfig
GET
Get v2 scim 2 0 resourcetypes — List resource types
/v2/scim/2.0/ResourceTypes
GET
Get v2 scim 2 0 resourcetypes name — Get a resource type
/v2/scim/2.0/ResourceTypes/{name}
GET
Get v2 scim 2 0 schemas — List schemas
/v2/scim/2.0/Schemas
GET
Get v2 scim 2 0 schemas id — Get a schema
/v2/scim/2.0/Schemas/{id}
GET
Get v2 scim 2 0 users — List users
/v2/scim/2.0/Users
POST
Post v2 scim 2 0 users — Create user
/v2/scim/2.0/Users
GET
Get v2 scim 2 0 users id — Get a user
/v2/scim/2.0/Users/{id}
PUT
Put v2 scim 2 0 users id — Update a user
/v2/scim/2.0/Users/{id}

MCP Tools

postuserslogin

Create an authentication token

postusers2falogin

Second factor authentication

authcreateaccesstoken

Create access token

post-v2-access-tokens

Create personal access token

get-v2-access-tokens

List personal access tokens

read-only idempotent
patch-v2-access-tokens-uuid

Update personal access token

get-v2-access-tokens-uuid

Get personal access token

read-only idempotent
delete-v2-access-tokens-uuid

Delete personal access token

idempotent
auditlogs-listauditactions

List audit log actions

read-only idempotent
auditlogs-listauditlogs

List audit log events

read-only idempotent
get-v2-orgs-name-settings

Get organization settings

read-only idempotent
put-v2-orgs-name-settings

Update organization settings

idempotent
post-v2-orgs-name-access-tokens

Create access token

get-v2-orgs-name-access-tokens

List access tokens

read-only idempotent
get-v2-orgs-org-name-access-tokens-access-token-

Get access token

read-only idempotent
patch-v2-orgs-org-name-access-tokens-access-toke

Update access token

delete-v2-orgs-org-name-access-tokens-access-tok

Delete access token

idempotent
listrepositorytags

List repository tags

read-only idempotent
getrepositorytag

Read repository tag

read-only idempotent
updaterepositoryimmutabletags

Update repository immutable tags

verifyrepositoryimmutabletags

Verify repository immutable tags

createrepositorygroup

Assign a group (Team) to a repository for access

listnamespacerepositories

List repositories in a namespace

read-only idempotent
createrepository

Create a new repository

getrepository

Get repository in a namespace

read-only idempotent
get-v2-orgs-org-name-members

List org members

read-only idempotent
get-v2-orgs-org-name-members-export

Export org members CSV

read-only idempotent
put-v2-orgs-org-name-members-username

Update org member (role)

idempotent
delete-v2-orgs-org-name-members-username

Remove member from org

idempotent
get-v2-orgs-org-name-invites

List org invites

read-only idempotent
get-v2-orgs-org-name-groups

Get groups of an organization

read-only idempotent
post-v2-orgs-org-name-groups

Create a new group

get-v2-orgs-org-name-groups-group-name

Get a group of an organization

read-only idempotent
put-v2-orgs-org-name-groups-group-name

Update the details for an organization group

idempotent
patch-v2-orgs-org-name-groups-group-name

Update some details for an organization group

delete-v2-orgs-org-name-groups-group-name

Delete an organization group

idempotent
get-v2-orgs-org-name-groups-group-name-members

List members of a group

read-only idempotent
post-v2-orgs-org-name-groups-group-name-members

Add a member to a group

delete-v2-orgs-org-name-groups-group-name-member

Remove a user from a group

idempotent
delete-v2-invites-id

Cancel an invite

idempotent
patch-v2-invites-id-resend

Resend an invite

post-v2-invites-bulk

Bulk create invites

get-v2-scim-2-0-serviceproviderconfig

Get service provider config

read-only idempotent
get-v2-scim-2-0-resourcetypes

List resource types

read-only idempotent
get-v2-scim-2-0-resourcetypes-name

Get a resource type

read-only idempotent
get-v2-scim-2-0-schemas

List schemas

read-only idempotent
get-v2-scim-2-0-schemas-id

Get a schema

read-only idempotent
get-v2-scim-2-0-users

List users

read-only idempotent
post-v2-scim-2-0-users

Create user

get-v2-scim-2-0-users-id

Get a user

read-only idempotent
put-v2-scim-2-0-users-id

Update a user

idempotent

Capability Spec

docker-hub-capability.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Docker HUB API
  description: Docker Hub is a service provided by Docker for finding and sharing container images with your team. It is the
    world's largest library and community for container images. In addition to the [Docker Hub UI](https://docs.docker.com/docker-hub/)
    and [Docker Hub CLI tool](https://github.com/docker/hub-tool#readme) (currently experimental), Docker provides an API
    that allows you to interact with Docker Hub. Browse through the Docker Hub API documentation to explore the supported
    endpoints.
  tags:
  - Docker
  - Hub
  - API
  created: '2026-05-06'
  modified: '2026-05-06'
capability:
  consumes:
  - type: http
    namespace: docker-hub
    baseUri: https://hub.docker.com
    description: Docker HUB API HTTP API.
    authentication:
      type: bearer
      token: '{{DOCKER_HUB_TOKEN}}'
    resources:
    - name: v2-users-login
      path: /v2/users/login
      operations:
      - name: postuserslogin
        method: POST
        description: Create an authentication token
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v2-users-2fa-login
      path: /v2/users/2fa-login
      operations:
      - name: postusers2falogin
        method: POST
        description: Second factor authentication
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v2-auth-token
      path: /v2/auth/token
      operations:
      - name: authcreateaccesstoken
        method: POST
        description: Create access token
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v2-access-tokens
      path: /v2/access-tokens
      operations:
      - name: post-v2-access-tokens
        method: POST
        description: Create personal access token
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: get-v2-access-tokens
        method: GET
        description: List personal access tokens
        inputParameters:
        - name: page
          in: query
          type: number
        - name: page_size
          in: query
          type: number
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v2-access-tokens-uuid
      path: /v2/access-tokens/{uuid}
      operations:
      - name: patch-v2-access-tokens-uuid
        method: PATCH
        description: Update personal access token
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: get-v2-access-tokens-uuid
        method: GET
        description: Get personal access token
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: delete-v2-access-tokens-uuid
        method: DELETE
        description: Delete personal access token
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v2-auditlogs-account-actions
      path: /v2/auditlogs/{account}/actions
      operations:
      - name: auditlogs-listauditactions
        method: GET
        description: List audit log actions
        inputParameters:
        - name: account
          in: path
          type: string
          required: true
          description: Namespace to query audit log actions for.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v2-auditlogs-account
      path: /v2/auditlogs/{account}
      operations:
      - name: auditlogs-listauditlogs
        method: GET
        description: List audit log events
        inputParameters:
        - name: account
          in: path
          type: string
          required: true
          description: Namespace to query audit logs for.
        - name: action
          in: query
          type: string
          description: action name one of ["repo.tag.push", ...]. Optional parameter to filter specific audit log actions.
        - name: name
          in: query
          type: string
          description: name. Optional parameter to filter audit log events to a specific name. For repository events, this
            is the name of the repository. For organization events, this
        - name: actor
          in: query
          type: string
          description: actor name. Optional parameter to filter audit log events to the specific user who triggered the event.
        - name: from
          in: query
          type: string
          description: Start of the time window you wish to query audit events for.
        - name: to
          in: query
          type: string
          description: End of the time window you wish to query audit events for.
        - name: page
          in: query
          type: integer
          description: page - specify page number. Page number to get.
        - name: page_size
          in: query
          type: integer
          description: page_size - specify page size. Number of events to return per page.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v2-orgs-name-settings
      path: /v2/orgs/{name}/settings
      operations:
      - name: get-v2-orgs-name-settings
        method: GET
        description: Get organization settings
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: put-v2-orgs-name-settings
        method: PUT
        description: Update organization settings
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v2-orgs-name-access-tokens
      path: /v2/orgs/{name}/access-tokens
      operations:
      - name: post-v2-orgs-name-access-tokens
        method: POST
        description: Create access token
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: get-v2-orgs-name-access-tokens
        method: GET
        description: List access tokens
        inputParameters:
        - name: page
          in: query
          type: number
        - name: page_size
          in: query
          type: number
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v2-orgs-org-name-access-tokens-access-token-id
      path: /v2/orgs/{org_name}/access-tokens/{access_token_id}
      operations:
      - name: get-v2-orgs-org-name-access-tokens-access-token-
        method: GET
        description: Get access token
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: patch-v2-orgs-org-name-access-tokens-access-toke
        method: PATCH
        description: Update access token
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: delete-v2-orgs-org-name-access-tokens-access-tok
        method: DELETE
        description: Delete access token
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v2-namespaces-namespace-repositories-repository-
      path: /v2/namespaces/{namespace}/repositories/{repository}/tags
      operations:
      - name: listrepositorytags
        method: GET
        description: List repository tags
        inputParameters:
        - name: page
          in: query
          type: integer
          description: Page number to get. Defaults to 1.
        - name: page_size
          in: query
          type: integer
          description: Number of items to get per page. Defaults to 10. Max of 100.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v2-namespaces-namespace-repositories-repository-
      path: /v2/namespaces/{namespace}/repositories/{repository}/tags/{tag}
      operations:
      - name: getrepositorytag
        method: GET
        description: Read repository tag
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v2-namespaces-namespace-repositories-repository-
      path: /v2/namespaces/{namespace}/repositories/{repository}/immutabletags
      operations:
      - name: updaterepositoryimmutabletags
        method: PATCH
        description: Update repository immutable tags
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v2-namespaces-namespace-repositories-repository-
      path: /v2/namespaces/{namespace}/repositories/{repository}/immutabletags/verify
      operations:
      - name: verifyrepositoryimmutabletags
        method: POST
        description: Verify repository immutable tags
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v2-repositories-namespace-repository-groups
      path: /v2/repositories/{namespace}/{repository}/groups
      operations:
      - name: createrepositorygroup
        method: POST
        description: Assign a group (Team) to a repository for access
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v2-namespaces-namespace-repositories
      path: /v2/namespaces/{namespace}/repositories
      operations:
      - name: listnamespacerepositories
        method: GET
        description: List repositories in a namespace
        inputParameters:
        - name: page
          in: query
          type: integer
          description: Page number to get. Defaults to 1.
        - name: page_size
          in: query
          type: integer
          description: Number of repositories to get per page. Defaults to 10. Max of 100.
        - name: name
          in: query
          type: string
          description: Filter repositories by name (partial match).
        - name: ordering
          in: query
          type: string
          description: 'Order repositories by the specified field. Prefix with ''-'' for descending order. Available options:
            - `name` / `-name`: Repository name (ascending/descending) -'
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createrepository
        method: POST
        description: Create a new repository
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v2-namespaces-namespace-repositories-repository
      path: /v2/namespaces/{namespace}/repositories/{repository}
      operations:
      - name: getrepository
        method: GET
        description: Get repository in a namespace
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v2-orgs-org-name-members
      path: /v2/orgs/{org_name}/members
      operations:
      - name: get-v2-orgs-org-name-members
        method: GET
        description: List org members
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v2-orgs-org-name-members-export
      path: /v2/orgs/{org_name}/members/export
      operations:
      - name: get-v2-orgs-org-name-members-export
        method: GET
        description: Export org members CSV
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v2-orgs-org-name-members-username
      path: /v2/orgs/{org_name}/members/{username}
      operations:
      - name: put-v2-orgs-org-name-members-username
        method: PUT
        description: Update org member (role)
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: delete-v2-orgs-org-name-members-username
        method: DELETE
        description: Remove member from org
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v2-orgs-org-name-invites
      path: /v2/orgs/{org_name}/invites
      operations:
      - name: get-v2-orgs-org-name-invites
        method: GET
        description: List org invites
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v2-orgs-org-name-groups
      path: /v2/orgs/{org_name}/groups
      operations:
      - name: get-v2-orgs-org-name-groups
        method: GET
        description: Get groups of an organization
        inputParameters:
        - name: username
          in: query
          type: string
          description: Get groups for the specified username in the organization.
        - name: search
          in: query
          type: string
          description: Get groups for the specified group in the organization.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: post-v2-orgs-org-name-groups
        method: POST
        description: Create a new group
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v2-orgs-org-name-groups-group-name
      path: /v2/orgs/{org_name}/groups/{group_name}
      operations:
      - name: get-v2-orgs-org-name-groups-group-name
        method: GET
        description: Get a group of an organization
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: put-v2-orgs-org-name-groups-group-name
        method: PUT
        description: Update the details for an organization group
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: patch-v2-orgs-org-name-groups-group-name
        method: PATCH
        description: Update some details for an organization group
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: delete-v2-orgs-org-name-groups-group-name
        method: DELETE
        description: Delete an organization group
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v2-orgs-org-name-groups-group-name-members
      path: /v2/orgs/{org_name}/groups/{group_name}/members
      operations:
      - name: get-v2-orgs-org-name-groups-group-name-members
        method: GET
        description: List members of a group
        inputParameters:
        - name: search
          in: query
          type: string
          description: Search members by username, full_name or email.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: post-v2-orgs-org-name-groups-group-name-members
        method: POST
        description: Add a member to a group
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v2-orgs-org-name-groups-group-name-members-usern
      path: /v2/orgs/{org_name}/groups/{group_name}/members/{username}
      operations:
      - name: delete-v2-orgs-org-name-groups-group-name-member
        method: DELETE
        description: Remove a user from a group
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v2-invites-id
      path: /v2/invites/{id}
      operations:
      - name: delete-v2-invites-id
        method: DELETE
        description: Cancel an invite
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v2-invites-id-resend
      path: /v2/invites/{id}/resend
      operations:
      - name: patch-v2-invites-id-resend
        method: PATCH
        description: Resend an invite
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v2-invites-bulk
      path: /v2/invites/bulk
      operations:
      - name: post-v2-invites-bulk
        method: POST
        description: Bulk create invites
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v2-scim-2-0-serviceproviderconfig
      path: /v2/scim/2.0/ServiceProviderConfig
      operations:
      - name: get-v2-scim-2-0-serviceproviderconfig
        method: GET
        description: Get service provider config
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v2-scim-2-0-resourcetypes
      path: /v2/scim/2.0/ResourceTypes
      operations:
      - name: get-v2-scim-2-0-resourcetypes
        method: GET
        description: List resource types
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v2-scim-2-0-resourcetypes-name
      path: /v2/scim/2.0/ResourceTypes/{name}
      operations:
      - name: get-v2-scim-2-0-resourcetypes-name
        method: GET
        description: Get a resource type
        inputParameters:
        - name: name
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v2-scim-2-0-schemas
      path: /v2/scim/2.0/Schemas
      operations:
      - name: get-v2-scim-2-0-schemas
        method: GET
        description: List schemas
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v2-scim-2-0-schemas-id
      path: /v2/scim/2.0/Schemas/{id}
      operations:
      - name: get-v2-scim-2-0-schemas-id
        method: GET
        description: Get a schema
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v2-scim-2-0-users
      path: /v2/scim/2.0/Users
      operations:
      - name: get-v2-scim-2-0-users
        method: GET
        description: List users
        inputParameters:
        - name: startIndex
          in: query
          type: integer
        - name: count
          in: query
          type: integer
        - name: filter
          in: query
          type: string
        - name: sortOrder
          in: query
          type: string
        - name: sortBy
          in: query
          type: string
          description: User attribute to sort by.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: post-v2-scim-2-0-users
        method: POST
        description: Create user
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v2-scim-2-0-users-id
      path: /v2/scim/2.0/Users/{id}
      operations:
      - name: get-v2-scim-2-0-users-id
        method: GET
        description: Get a user
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: put-v2-scim-2-0-users-id
        method: PUT
        description: Update a user
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
  exposes:
  - type: rest
    port: 8080
    namespace: docker-hub-rest
    description: REST adapter for Docker HUB API.
    resources:
    - path: /v2/users/login
      name: postuserslogin
      operations:
      - method: POST
        name: postuserslogin
        description: Create an authentication token
        call: docker-hub.postuserslogin
        outputParameters:
        - type: object
          mapping: $.
    - path: /v2/users/2fa-login
      name: postusers2falogin
      operations:
      - method: POST
        name: postusers2falogin
        description: Second factor authentication
        call: docker-hub.postusers2falogin
        outputParameters:
        - type: object
          mapping: $.
    - path: /v2/auth/token
      name: authcreateaccesstoken
      operations:
      - method: POST
        name: authcreateaccesstoken
        description: Create access token
        call: docker-hub.authcreateaccesstoken
        outputParameters:
        - type: object
          mapping: $.
    - path: /v2/access-tokens
      name: post-v2-access-tokens
      operations:
      - method: POST
        name: post-v2-access-tokens
        description: Create personal access token
        call: docker-hub.post-v2-access-tokens
        outputParameters:
        - type: object
          mapping: $.
    - path: /v2/access-tokens
      name: get-v2-access-tokens
      operations:
      - method: GET
        name: get-v2-access-tokens
        description: List personal access tokens
        call: docker-hub.get-v2-access-tokens
        outputParameters:
        - type: object
          mapping: $.
    - path: /v2/access-tokens/{uuid}
      name: patch-v2-access-tokens-uuid
      operations:
      - method: PATCH
        name: patch-v2-access-tokens-uuid
        description: Update personal access token
        call: docker-hub.patch-v2-access-tokens-uuid
        outputParameters:
        - type: object
          mapping: $.
    - path: /v2/access-tokens/{uuid}
      name: get-v2-access-tokens-uuid
      operations:
      - method: GET
        name: get-v2-access-tokens-uuid
        description: Get personal access token
        call: docker-hub.get-v2-access-tokens-uuid
        outputParameters:
        - type: object
          mapping: $.
    - path: /v2/access-tokens/{uuid}
      name: delete-v2-access-tokens-uuid
      operations:
      - method: DELETE
        name: delete-v2-access-tokens-uuid
        description: Delete personal access token
        call: docker-hub.delete-v2-access-tokens-uuid
        outputParameters:
        - type: object
          mapping: $.
    - path: /v2/auditlogs/{account}/actions
      name: auditlogs-listauditactions
      operations:
      - method: GET
        name: auditlogs-listauditactions
        description: List audit log actions
        call: docker-hub.auditlogs-listauditactions
        with:
          account: rest.account
        outputParameters:
        - type: object
          mapping: $.
    - path: /v2/auditlogs/{account}
      name: auditlogs-listauditlogs
      operations:
      - method: GET
        name: auditlogs-listauditlogs
        description: List audit log events
        call: docker-hub.auditlogs-listauditlogs
        with:
          account: rest.account
        outputParameters:
        - type: object
          mapping: $.
    - path: /v2/orgs/{name}/settings
      name: get-v2-orgs-name-settings
      operations:
      - method: GET
        name: get-v2-orgs-name-settings
        description: Get organization settings
        call: docker-hub.get-v2-orgs-name-settings
        outputParameters:
        - type: object
          mapping: $.
    - path: /v2/orgs/{name}/settings
      name: put-v2-orgs-name-settings
      operations:
      - method: PUT
        name: put-v2-orgs-name-settings
        description: Update organization settings
        call: docker-hub.put-v2-orgs-name-settings
        outputParameters:
        - type: object
          mapping: $.
    - path: /v2/orgs/{name}/access-tokens
      name: post-v2-orgs-name-access-tokens
      operations:
      - method: POST
        name: post-v2-orgs-name-access-tokens
        description: Create access token
        call: docker-hub.post-v2-orgs-name-access-tokens
        outputParameters:
        - type: object
          mapping: $.
    - path: /v2/orgs/{name}/access-tokens
      name: get-v2-orgs-name-access-tokens
      operations:
      - method: GET
        name: get-v2-orgs-name-access-tokens
        description: List access tokens
        call: docker-hub.get-v2-orgs-name-access-tokens
        outputParameters:
        - type: object
          mapping: $.
    - path: /v2/orgs/{org_name}/access-tokens/{access_token_id}
      name: get-v2-orgs-org-name-access-tokens-access-token
      operations:
      - method: GET
        name: get-v2-orgs-org-name-access-tokens-access-token-
        description: Get access token
        call: docker-hub.get-v2-orgs-org-name-access-tokens-access-token-
        outputParameters:
        - type: object
          mapping: $.
    - path: /v2/orgs/{org_name}/access-tokens/{access_token_id}
      name: patch-v2-orgs-org-name-access-tokens-access-toke
      operations:
      - method: PATCH
        name: patch-v2-orgs-org-name-access-tokens-access-toke
        description: Update access token
        call: docker-hub.patch-v2-orgs-org-name-access-tokens-access-toke
        outputParameters:
        - type: object
          mapping: $.
    - path: /v2/orgs/{org_name}/access-tokens/{access_token_id}
      name: delete-v2-orgs-org-name-access-tokens-access-tok
      operations:
      - method: DELETE
        name: delete-v2-orgs-org-name-access-tokens-access-tok
        description: Delete access token
        call: docker-hub.delete-v2-orgs-org-name-access-tokens-access-tok
        outputParameters:
        - type: object
          mapping: $.
    - path: /v2/namespaces/{namespace}/repositories/{repository}/tags
      name: listrepositorytags
      operations:
      - method: GET
        name: listrepositorytags
        description: List repository tags
        call: docker-hub.listrepositorytags
        outputParameters:
        - type: object
          mapping: $.
    - path: /v2/namespaces/{namespace}/repositories/{repository}/tags/{tag}
      name: getrepositorytag
      operations:
      - method: GET
        name: getrepositorytag
        description: Read repository tag
        call: docker-hub.getrepositorytag
        outputParameters:
        - type: object
          mapping: $.
    - path: /v2/namespaces/{namespace}/repositories/{repository}/immutabletags
      name: updaterepositoryimmutabletags
      operations:
      - method: PATCH
        name: updaterepositoryimmutabletags
        description: Update repository immutable tags
        call: docker-hub.updaterepositoryimmutabletags
        outputParameters:
        - type: object
          mapping: $.
    - path: /v2/namespaces/{namespace}/repositories/{repository}/immutabletags/verify
      name: verifyrepositoryimmutabletags
      operations:
      - method: POST
        name: verifyrepositoryimmutabletags
        description: Verify repository immutable tags
        call: docker-hub.verifyrepositoryimmutabletags
        outputParameters:
        - type: object
          mapping: $.
    - path: /v2/repositories/{namespace}/{repository}/groups
      name: createrepositorygroup
      operations:
      - method: POST
        name: createrepositorygroup
        description: Assign a group (Team) to a repository for access
        call: docker-hub.createrepositorygroup
        outputParameters:
        - type: object
          mapping: $.
    - path: /v2/namespaces/{namespace}/repositories
      name: listnamespacerepositories
      operations:
      - method: GET
        name: listnamespacerepositories
        description: List repositories in a namespace
        call: docker-hub.listnamespacerepositories
        outputParameters:
        - type: object
          mapping: $.
    - path: /v2/namespaces/{namespace}/repositories
      name: createrepository
      operations:
      - method: POST
        name: createrepository
        description: Create a new repository
        call: docker-hub.createrepository
        outputParameters:
        - type: object
          mapping: $.
    - path: /v2/namespaces/{namespace}/repositories/{repository}
      name: getrepository
      operations:
      - method: GET
        name: getrepository
        description: Get repository in a namespace
        call: docker-hub.getrepository
        outputParameters:
        - type: object
          mapping: $.
    - path: /v2/orgs/{org_name}/members
      name: get-v2-orgs-org-name-members
      operations:
      - method: GET
        name: get-v2-orgs-org-name-members
        description: List org members
        call: docker-hub.get-v2-orgs-org-name-members
        outputParameters:
        - type: object
          mapping: $.
    - path: /v2/orgs/{org_name}/members/export
      name: get-v2-orgs-org-name-members-export
      operations:
      - method: GET
        name: get-v2-orgs-org-name-members-export
        description: Export org members CSV
        call: docker-hub.get-v2-orgs-org-name-members-export
        outputParameters:
        - type: object
          mapping: $.
    - path: /v2/orgs/{org_name}/members/{username}
      name: put-v2-orgs-org-name-members-username
      operations:
      - method: PUT
        name: put-v2-orgs-org-name-members-username
        description: Update org member (role)
        call: docker-hub.put-v2-orgs-org-name-members-username
        outputParameters:
        - type: object
          mapping: $.
    - path: /v2/orgs/{org_name}/members/{username}
      name: delete-v2-orgs-org-name-members-username
      operations:
      - method: DELETE
        name: delete-v2-orgs-org-name-members-username
        description: Remove member from org
        call: docker-hub.delete-v2-orgs-org-name-members-username
        outputParameters:
        - type: object
          mapping: $.
    - path: /v2/orgs/{org_name}/invites
      name: get-v2-orgs-org-name-invites
      operations:
      - method: GET
        name: get-v2-orgs-org-name-invites
        description: List org invites
        call: docker-hub.get-v2-orgs-org-name-invites
        outputParameters:
        - type: object
          mapping: $.
    - path: /v2/orgs/{org_name}/groups
      name: get-v2-orgs-org-name-groups
      operations:
      - method: GET
        name: get-v2-orgs-org-name-groups
        description: Get groups of an organization
        call: docker-hub.get-v2-orgs-org-name-groups
        outputParameters:
        - type: object
          mapping: $.
    - path: /v2/orgs/{org_name}/groups
      name: post-v2-orgs-org-name-groups
      operations:
      - method: POST
        name: post-v2-orgs-org-name-groups
        description: Create a new group
        call: docker-hub.post-v2-orgs-org-name-groups
        outputParameters:
        - type: object
          mapping: $.
    - path: /v2/orgs/{org_name}/groups/{group_name}
      name: get-v2-orgs-org-name-groups-group-name
      operations:
      - method: GET
        name: get-v2-orgs-org-name-groups-group-name
        description: Get a group of an organization
        call: docker-hub.get-v2-orgs-org-name-groups-group-name
        outputParameters:
        - type: object
          mapping: $.
    - path: /v2/orgs/{org_name}/groups/{group_name}
      name: put-v2-orgs-org-name-groups-group-name
      operations:
      - method: PUT
        name: put-v2-orgs-org-name-groups-group-name
        description: Update the details for an organization group
        call: docker-hub.put-v2-orgs-org-name-groups-group-name
        outputParameters:
        - type: object
          mapping: $.
    - path: /v2/orgs/{org_name}/groups/{group_name}
      name: patch-v2-orgs-org-name-groups-group-name
      operations:
      - method: PATCH
        name: patch-v2-orgs-org-name-groups-group-name
        description: Update some details for an organization group
        call: docker-hub.patch-v2-orgs-org-name-groups-group-name
        outputParameters:
        - type: object
          mapping: $.
    - path: /v2/orgs/{o

# --- truncated at 32 KB (56 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/docker-hub/refs/heads/main/capabilities/docker-hub-capability.yaml