NVIDIA Run:ai Credentials API

Credentials are used to unlock protected resources such as applications, containers, and other assets. For more information, see [Credentials](https://run-ai-docs.nvidia.com/saas/workloads-in-nvidia-run-ai/assets/credentials).

Operations 26

GET /api/v1/asset/credentials List credentials. #
GET /api/v1/asset/credentials/access-key List access keys. #
POST /api/v1/asset/credentials/access-key Create an access key. #
GET /api/v1/asset/credentials/access-key/{AssetId} Get an access key. #
PUT /api/v1/asset/credentials/access-key/{AssetId} Update an access key. #
DELETE /api/v1/asset/credentials/access-key/{AssetId} Delete an access key. #
GET /api/v1/asset/credentials/password List password credentials. #
POST /api/v1/asset/credentials/password Create a userid / password credential. #
GET /api/v1/asset/credentials/password/{AssetId} Get a userid / password credential. #
PUT /api/v1/asset/credentials/password/{AssetId} Update a password credential. #
DELETE /api/v1/asset/credentials/password/{AssetId} Delete a password asset. #
GET /api/v1/asset/credentials/docker-registry List docker registry credentials. #
POST /api/v1/asset/credentials/docker-registry Create a docker registry credential. #
GET /api/v1/asset/credentials/docker-registry/{AssetId} Get a docker registry credential. #
PUT /api/v1/asset/credentials/docker-registry/{AssetId} Update a docker registry credential. #
DELETE /api/v1/asset/credentials/docker-registry/{AssetId} Delete a docker registry credential. #
GET /api/v1/asset/credentials/generic-secret List generic-secrets. #
POST /api/v1/asset/credentials/generic-secret Create a generic-secret. #
GET /api/v1/asset/credentials/generic-secret/{AssetId} Get a generic-secret. #
PUT /api/v1/asset/credentials/generic-secret/{AssetId} Update a generic-secret. #
DELETE /api/v1/asset/credentials/generic-secret/{AssetId} Delete a generic-secret. #
GET /api/v1/asset/credentials/ngc-api-key List ngc-api-keys. #
POST /api/v1/asset/credentials/ngc-api-key Create a ngc-api-key. #
GET /api/v1/asset/credentials/ngc-api-key/{AssetId} Get a ngc-api-key. #
PUT /api/v1/asset/credentials/ngc-api-key/{AssetId} Update a ngc-api-key. #
DELETE /api/v1/asset/credentials/ngc-api-key/{AssetId} Delete a ngc-api-key. #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/runai-credentials-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

runai-credentials-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: latest
  description: '# Introduction


    The NVIDIA Run:ai Control-Plane API reference is a guide that provides an easy-to-use programming interface for adding various tasks to your application, including workload submission, resource management, and administrative operations.


    NVIDIA Run:ai APIs are accessed using *bearer tokens*. To obtain a token, you need to create a **Service account** through the NVIDIA Run:ai user interface.

    To create a service account, in your UI, go to Access → Service Accounts (for organization-level service accounts) or User settings → Access Keys (for user access keys), and create a new one.


    After you have created a new service account, you will need to assign it access rules.

    To assign access rules to the service account, see [Create access rules](https://run-ai-docs.nvidia.com/saas/infrastructure-setup/authentication/accessrules#create-or-delete-rules).

    Make sure you assign the correct rules to your service account. Use the [Roles](https://run-ai-docs.nvidia.com/saas/infrastructure-setup/authentication/roles) to assign the correct access rules.


    To get your access token, follow the instructions in [Request a token](https://run-ai-docs.nvidia.com/saas/reference/api/rest-auth/#request-an-api-token).

    '
  title: NVIDIA Run:ai Access Keys Credentials API
  x-logo:
    url: https://api.redocly.com/registry/raw/runai-xq8/saas/latest/public/runai-logo-api.png
    altText: NVIDIA Run:ai
    href: https://run.ai
  license:
    name: NVIDIA Run:ai
    url: https://www.nvidia.com/en-us/agreements/enterprise-software/nvidia-software-license-agreement/
servers:
- url: https://app.run.ai
security:
- bearerAuth: []
tags:
- name: Credentials
  description: Credentials are used to unlock protected resources such as applications, containers, and other assets. For more information, see [Credentials](https://run-ai-docs.nvidia.com/saas/workloads-in-nvidia-run-ai/assets/credentials).
paths:
  /api/v1/asset/credentials:
    get:
      summary: List credentials.
      description: Use to retrieve a list of all existing credentials.
      operationId: list_credentials_assets
      tags:
      - Credentials
      parameters:
      - $ref: '#/components/parameters/AssetNameFilter'
      - $ref: '#/components/parameters/AssetScopeFilter'
      - $ref: '#/components/parameters/AssetProjectFilter'
      - $ref: '#/components/parameters/AssetDepartmentFilter'
      - $ref: '#/components/parameters/AssetClusterFilter'
      - $ref: '#/components/parameters/IncludeUsageInfo'
      - $ref: '#/components/parameters/IncludeStatus'
      responses:
        '200':
          description: Request completed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CredentialsListResponse'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
  /api/v1/asset/credentials/access-key:
    get:
      tags:
      - Credentials
      summary: List access keys.
      description: Use to retrieve a list of S3-compatible access key credentials.
      operationId: list_access_keys
      parameters:
      - $ref: '#/components/parameters/AssetNameFilter'
      - $ref: '#/components/parameters/AssetScopeFilter'
      - $ref: '#/components/parameters/AssetProjectFilter'
      - $ref: '#/components/parameters/AssetDepartmentFilter'
      - $ref: '#/components/parameters/AssetClusterFilter'
      - $ref: '#/components/parameters/IncludeUsageInfo'
      - $ref: '#/components/parameters/IncludeStatus'
      responses:
        '200':
          description: Request completed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccessKeyListResponse'
        '400':
          $ref: '#/components/responses/400BadRequest'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
    post:
      tags:
      - Credentials
      summary: Create an access key.
      description: Use to create an S3-compatible access key credential.
      operationId: create_access_key
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AccessKeyCreationRequest'
      responses:
        '202':
          description: Request accepted successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccessKey'
        '400':
          $ref: '#/components/responses/400BadRequest'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '409':
          $ref: '#/components/responses/409Conflict'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
  /api/v1/asset/credentials/access-key/{AssetId}:
    parameters:
    - $ref: '#/components/parameters/AssetId'
    get:
      tags:
      - Credentials
      summary: Get an access key.
      description: Use to retrieve the details of an S3-compatible access key credential by id.
      operationId: get_access_key_by_id
      parameters:
      - $ref: '#/components/parameters/IncludeUsageInfo'
      - $ref: '#/components/parameters/IncludeStatus'
      responses:
        '200':
          description: Request completed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccessKey'
        '400':
          $ref: '#/components/responses/400BadRequest'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '404':
          $ref: '#/components/responses/404NotFound'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
    put:
      tags:
      - Credentials
      summary: Update an access key.
      description: Use to update the details of an S3-compatible access key credential by id.
      operationId: update_access_key
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AccessKeyUpdateRequest'
      responses:
        '202':
          description: Request accepted successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccessKey'
        '400':
          $ref: '#/components/responses/400BadRequest'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '404':
          $ref: '#/components/responses/404NotFound'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
    delete:
      tags:
      - Credentials
      summary: Delete an access key.
      description: Use to delete an S3-compatible access key credential by id.
      operationId: delete_access_key
      responses:
        '202':
          $ref: '#/components/responses/202Accepted'
        '400':
          $ref: '#/components/responses/400BadRequest'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '404':
          $ref: '#/components/responses/404NotFound'
        '412':
          $ref: '#/components/responses/412PreconditionFailed'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
  /api/v1/asset/credentials/password:
    get:
      tags:
      - Credentials
      summary: List password credentials.
      description: Use to retrieve a list of password credentials.
      operationId: list_passwords
      parameters:
      - $ref: '#/components/parameters/AssetNameFilter'
      - $ref: '#/components/parameters/AssetScopeFilter'
      - $ref: '#/components/parameters/AssetProjectFilter'
      - $ref: '#/components/parameters/AssetDepartmentFilter'
      - $ref: '#/components/parameters/AssetClusterFilter'
      - $ref: '#/components/parameters/IncludeUsageInfo'
      - $ref: '#/components/parameters/IncludeStatus'
      responses:
        '200':
          description: Request completed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PasswordListResponse'
        '400':
          $ref: '#/components/responses/400BadRequest'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
    post:
      tags:
      - Credentials
      summary: Create a userid / password credential.
      description: Use to create a userid / password credential.
      operationId: create_password
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PasswordCreationRequest'
      responses:
        '202':
          description: Request accepted successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Password'
        '400':
          $ref: '#/components/responses/400BadRequest'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '409':
          $ref: '#/components/responses/409Conflict'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
  /api/v1/asset/credentials/password/{AssetId}:
    parameters:
    - $ref: '#/components/parameters/AssetId'
    get:
      tags:
      - Credentials
      summary: Get a userid / password credential.
      description: Use to retrieve the details of a userid / password credential asset by id.
      operationId: get_password_by_id
      parameters:
      - $ref: '#/components/parameters/IncludeUsageInfo'
      - $ref: '#/components/parameters/IncludeStatus'
      responses:
        '200':
          description: Request completed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Password'
        '400':
          $ref: '#/components/responses/400BadRequest'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '404':
          $ref: '#/components/responses/404NotFound'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
    put:
      tags:
      - Credentials
      summary: Update a password credential.
      description: Use to Update the details of a password credential by id.
      operationId: update_password
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PasswordUpdateRequest'
      responses:
        '202':
          description: Request accepted successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Password'
        '400':
          $ref: '#/components/responses/400BadRequest'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '404':
          $ref: '#/components/responses/404NotFound'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
    delete:
      tags:
      - Credentials
      summary: Delete a password asset.
      description: Udse to delete a password credential by id.
      operationId: delete_password
      responses:
        '202':
          $ref: '#/components/responses/202Accepted'
        '400':
          $ref: '#/components/responses/400BadRequest'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '404':
          $ref: '#/components/responses/404NotFound'
        '412':
          $ref: '#/components/responses/412PreconditionFailed'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
  /api/v1/asset/credentials/docker-registry:
    get:
      tags:
      - Credentials
      summary: List docker registry credentials.
      description: Use to retrieve a list of docker registry credentials.
      operationId: list_docker_registries
      parameters:
      - $ref: '#/components/parameters/AssetNameFilter'
      - $ref: '#/components/parameters/AssetScopeFilter'
      - $ref: '#/components/parameters/AssetProjectFilter'
      - $ref: '#/components/parameters/AssetDepartmentFilter'
      - $ref: '#/components/parameters/AssetClusterFilter'
      - $ref: '#/components/parameters/IncludeUsageInfo'
      - $ref: '#/components/parameters/IncludeStatus'
      responses:
        '200':
          description: Request completed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DockerRegistryListResponse'
        '400':
          $ref: '#/components/responses/400BadRequest'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
    post:
      tags:
      - Credentials
      summary: Create a docker registry credential.
      description: Use to create a docker registry credential containing userid, password and url.
      operationId: create_docker_registry
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DockerRegistryCreationRequest'
      responses:
        '202':
          description: Request accepted successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DockerRegistry'
        '400':
          $ref: '#/components/responses/400BadRequest'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '409':
          $ref: '#/components/responses/409Conflict'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
  /api/v1/asset/credentials/docker-registry/{AssetId}:
    parameters:
    - $ref: '#/components/parameters/AssetId'
    get:
      tags:
      - Credentials
      summary: Get a docker registry credential.
      description: Use to retrieve the details of a docker registry credential by id.
      operationId: get_docker_registry_by_id
      parameters:
      - $ref: '#/components/parameters/IncludeUsageInfo'
      - $ref: '#/components/parameters/IncludeStatus'
      responses:
        '200':
          description: Request completed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DockerRegistry'
        '400':
          $ref: '#/components/responses/400BadRequest'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '404':
          $ref: '#/components/responses/404NotFound'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
    put:
      tags:
      - Credentials
      summary: Update a docker registry credential.
      description: Use to updates the details of a docker registry credentials by id.
      operationId: update_docker_registry
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DockerRegistryUpdateRequest'
      responses:
        '202':
          description: Request accepted successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DockerRegistry'
        '400':
          $ref: '#/components/responses/400BadRequest'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '404':
          $ref: '#/components/responses/404NotFound'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
    delete:
      tags:
      - Credentials
      summary: Delete a docker registry credential.
      description: Use to deletes a docker registry credential by id.
      operationId: delete_docker_registry
      responses:
        '202':
          $ref: '#/components/responses/202Accepted'
        '400':
          $ref: '#/components/responses/400BadRequest'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '404':
          $ref: '#/components/responses/404NotFound'
        '412':
          $ref: '#/components/responses/412PreconditionFailed'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
  /api/v1/asset/credentials/generic-secret:
    get:
      tags:
      - Credentials
      summary: List generic-secrets.
      description: Retrieve a list of generic-secret assets.
      operationId: list_generic_secret
      parameters:
      - $ref: '#/components/parameters/AssetNameFilter'
      - $ref: '#/components/parameters/AssetScopeFilter'
      - $ref: '#/components/parameters/AssetProjectFilter'
      - $ref: '#/components/parameters/AssetDepartmentFilter'
      - $ref: '#/components/parameters/AssetClusterFilter'
      - $ref: '#/components/parameters/IncludeUsageInfo'
      - $ref: '#/components/parameters/IncludeStatus'
      responses:
        '200':
          description: Request completed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericSecretListResponse'
        '400':
          $ref: '#/components/responses/400BadRequest'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
    post:
      tags:
      - Credentials
      summary: Create a generic-secret.
      description: Use to create a generic-secret asset.
      operationId: create_generic_secret
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenericSecretCreationRequest'
      responses:
        '202':
          description: Request accepted successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericSecret'
        '400':
          $ref: '#/components/responses/400BadRequest'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '409':
          $ref: '#/components/responses/409Conflict'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
  /api/v1/asset/credentials/generic-secret/{AssetId}:
    parameters:
    - $ref: '#/components/parameters/AssetId'
    get:
      tags:
      - Credentials
      summary: Get a generic-secret.
      description: Returns the details of a generic-secret asset, by id.
      operationId: get_generic_secret_by_id
      parameters:
      - $ref: '#/components/parameters/IncludeUsageInfo'
      - $ref: '#/components/parameters/IncludeStatus'
      responses:
        '200':
          description: Request completed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericSecret'
        '400':
          $ref: '#/components/responses/400BadRequest'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '404':
          $ref: '#/components/responses/404NotFound'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
    put:
      tags:
      - Credentials
      summary: Update a generic-secret.
      description: Updates the details of a generic-secret asset, by id.
      operationId: update_generic_secret
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenericSecretUpdateRequest'
      responses:
        '202':
          description: Request accepted successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericSecret'
        '400':
          $ref: '#/components/responses/400BadRequest'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '404':
          $ref: '#/components/responses/404NotFound'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
    delete:
      tags:
      - Credentials
      summary: Delete a generic-secret.
      description: Use to delete a generic-secret asset, by id.
      operationId: delete_generic_secret
      responses:
        '204':
          $ref: '#/components/responses/204NoContent'
        '400':
          $ref: '#/components/responses/400BadRequest'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '404':
          $ref: '#/components/responses/404NotFound'
        '412':
          $ref: '#/components/responses/412PreconditionFailed'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
  /api/v1/asset/credentials/ngc-api-key:
    get:
      tags:
      - Credentials
      summary: List ngc-api-keys.
      description: Retrieve a list of ngcApiKey assets.
      operationId: list_ngc_api_key
      parameters:
      - $ref: '#/components/parameters/AssetNameFilter'
      - $ref: '#/components/parameters/AssetScopeFilter'
      - $ref: '#/components/parameters/AssetProjectFilter'
      - $ref: '#/components/parameters/AssetDepartmentFilter'
      - $ref: '#/components/parameters/AssetClusterFilter'
      - $ref: '#/components/parameters/IncludeUsageInfo'
      - $ref: '#/components/parameters/IncludeStatus'
      responses:
        '200':
          description: Request completed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NgcApiKeyListResponse'
        '400':
          $ref: '#/components/responses/400BadRequest'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
    post:
      tags:
      - Credentials
      summary: Create a ngc-api-key.
      description: Use to create a ngc-api-key asset.
      operationId: create_ngc_api_key
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NgcApiKeyCreationRequest'
      responses:
        '202':
          description: Request accepted successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NgcApiKey'
        '400':
          $ref: '#/components/responses/400BadRequest'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '409':
          $ref: '#/components/responses/409Conflict'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
  /api/v1/asset/credentials/ngc-api-key/{AssetId}:
    parameters:
    - $ref: '#/components/parameters/AssetId'
    get:
      tags:
      - Credentials
      summary: Get a ngc-api-key.
      description: Returns the details of a ngc-api-key asset, by id.
      operationId: get_ngc_api_key_by_id
      parameters:
      - $ref: '#/components/parameters/IncludeUsageInfo'
      - $ref: '#/components/parameters/IncludeStatus'
      responses:
        '200':
          description: Request completed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NgcApiKey'
        '400':
          $ref: '#/components/responses/400BadRequest'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '404':
          $ref: '#/components/responses/404NotFound'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
    put:
      tags:
      - Credentials
      summary: Update a ngc-api-key.
      description: Updates the details of a ngc-api-key asset, by id.
      operationId: update_ngc_api_key
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NgcApiKeyUpdateRequest'
      responses:
        '202':
          description: Request accepted successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NgcApiKey'
        '400':
          $ref: '#/components/responses/400BadRequest'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '404':
          $ref: '#/components/responses/404NotFound'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
    delete:
      tags:
      - Credentials
      summary: Delete a ngc-api-key.
      description: Use to delete a ngc-api-key asset, by id.
      operationId: delete_ngc_api_key
      responses:
        '204':
          $ref: '#/components/responses/204NoContent'
        '400':
          $ref: '#/components/responses/400BadRequest'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '404':
          $ref: '#/components/responses/404NotFound'
        '412':
          $ref: '#/components/responses/412PreconditionFailed'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
components:
  parameters:
    AssetProjectFilter:
      name: projectId
      in: query
      required: false
      description: Filter results by project id. If scope filter is project, only assets from the specific project will be included in the response. Otherwise, the response will include project, department, cluster, tenant and system assets.
      schema:
        type: integer
        format: int32
    IncludeStatus:
      name: statusInfo
      in: query
      required: false
      description: Whether the query should include asset status information as part of the response.
      schema:
        type: boolean
    IncludeUsageInfo:
      name: usageInfo
      in: query
      required: false
      description: Whether the query should include asset usage information as part of the response.
      schema:
        type: boolean
    AssetScopeFilter:
      name: scope
      in: query
      required: false
      description: 'Filters results by scope. Returns only assets that belong to the specified scope. Mutually exclusive with includeDescendants. Valid values: tenant, cluster, department, project.'
      schema:
        type: string
    AssetClusterFilter:
      name: clusterId
      in: query
      description: Filter results by Universally Unique Identifier (UUID) of the cluster. If scope filter is cluster, only assets from the specific cluster will be included in the response. Otherwise, the response will include cluster, tenant and system assets.
      required: false
      schema:
        type: string
        format: uuid
        example: d73a738f-fab3-430a-8fa3-5241493d7128
    AssetDepartmentFilter:
      name: departmentId
      in: query
      description: Filter results by department id. If scope filter is department, only assets from the specific department will be included in the response. Otherwise, the response will include department, cluster, tenant and system assets.
      required: false
      schema:
        type: string
        example: '1'
    AssetNameFilter:
      name: name
      in: query
      required: false
      description: Filter results by name.
      schema:
        type: string
    AssetId:
      name: AssetId
      in: path
      required: true
      description: Unique identifier of the asset.
      schema:
        type: string
        format: uuid
        minLength: 1
  schemas:
    UpdateCount:
      description: the value of an update counter of a data in the system.
      type: integer
      format: int64
      example: 12345
    Scope:
      description: The scope in which an asset can be used. The highest scope, system, is intended for internal purposes only.
      type: string
      minLength: 1
      enum:
      - system
      - tenant
      - cluster
      - department
      - project
    AssetClusterStatusInfo:
      properties:
        status:
          $ref: '#/components/schemas/AssetSyncStatusEnum'
        issues:
          $ref: '#/components/schemas/AssetClusterStatusIssues'
        message:
          type: string
        url:
          type: string
      type:
      - object
      - 'null'
    GenericSecretKeyValuePairs:
      description: Set of key-value pairs to store in the new credential.
      type:
      - array
      - 'null'
      items:
        $ref: '#/components/schemas/KeyValuePair'
    WorkloadSupportedTypes:
      properties:
        inference:
          description: Is inference a supported workload type.
          type:
          - boolean
          - 'null'
        workspace:
          description: Is workspace a supported workload type.
          type:
          - boolean
          - 'null'
        training:
          description: Is training a supported workload type.
          type:
          - boolean
          - 'null'
        distributed:
          description: Is distributed a supported workload type.
          type:
          - boolean
          - 'null'
        distFramework:
          description: The distributed training framework used in the workload.
          type:
          - string
          - 'null'
          enum:
          - MPI
          - PyTorch
          - TF
          - XGBoost
      type:
      - object
      - 'null'
    GenericSecretCreationSpec:
      properties:
        existingSecretName:
          description: name of existing secret in the cluster from which the general key-value values should be taken.
          type:
          - string
          - 'null'
          minLength: 1
        keyValuePairs:
          $ref: '#/components/schemas/GenericSecretKeyValuePairs'
    PasswordSpec:
      allOf:
      - $ref: '#/components/schemas/PasswordCreationSpec'
      - $ref: '#/components/schemas/EncryptionKeyId'
    ClusterIdOptional:
      description: The id of the cluster.
      type:
      - string
      - 'null'
      format: uuid
      minLength: 1
      example: 71f69d83-ba66-4822-adf5-55ce55efd210
    WorkloadId1:
      description: A unique ID of the workload.
      type: string
      format: uuid
    GenericSecretCreationRequest:
      required:
      - meta
      - spec
      properties:
        meta:
          $ref: '#/components/schemas/AssetCreationRequest'
        spec:
          $ref: '#/components/schemas/GenericSecretCreationSpec'
    Password:
      required:
      - meta
      - spec
      properties:
        meta:
          $ref: '#/components/schemas/AssetMeta'
        spec:
          $ref: '#/components/schemas/PasswordSpec'
        usedBy:
          $ref: '#/components/schemas/AssetUsageInfo'
        compliance:
          $ref: '#/components/schemas/ComplianceInfo'
        status:
          $ref: '#/components/schemas/AssetClusterStatusInfo'
        clusterInfo:
          $ref: '#/components/schemas/ClusterInfo1'
    AccessKeySpec:
      allOf:
      - $ref: '#/components/schemas/AccessKeyCreationSpec'
      - $ref: '#/components/schemas/EncryptionKeyId'
    DockerRegistryCreationRequest:
      required:
      - 

# --- truncated at 32 KB (58 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/runai/refs/heads/main/openapi/runai-credentials-api-openapi.yml