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).

OpenAPI Specification

runai-credentials-api-openapi.yml Raw ↑
openapi: 3.0.3
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:
  schemas:
    CredentialsListResponseEntry:
      required:
      - meta
      - spec
      properties:
        meta:
          $ref: '#/components/schemas/AssetMeta'
        spec:
          $ref: '#/components/schemas/CredentialsListResponseAssetSpec'
        usedBy:
          $ref: '#/components/schemas/AssetUsageInfo'
        status:
          $ref: '#/components/schemas/AssetClusterStatusInfo'
        clusterInfo:
          $ref: '#/components/schemas/ClusterInfo1'
    DataSourceOverrides:
      description: specific fields to override in the data source.
      type: object
      nullable: true
      properties:
        containerPath:
          type: string
          minLength: 1
          example: /container/directory
          nullable: true
    AssetsUsageRefCompute:
      allOf:
      - $ref: '#/components/schemas/AssetRef'
      nullable: true
      type: object
    GenericSecret:
      required:
      - meta
      - spec
      properties:
        meta:
          $ref: '#/components/schemas/AssetMeta'
        spec:
          $ref: '#/components/schemas/GenericSecretSpec'
        usedBy:
          $ref: '#/components/schemas/AssetUsageInfo'
        compliance:
          $ref: '#/components/schemas/ComplianceInfo'
        status:
          $ref: '#/components/schemas/AssetClusterStatusInfo'
        clusterInfo:
          $ref: '#/components/schemas/ClusterInfo1'
    AccessKey:
      required:
      - meta
      - spec
      properties:
        meta:
          $ref: '#/components/schemas/AssetMeta'
        spec:
          $ref: '#/components/schemas/AccessKeySpec'
        usedBy:
          $ref: '#/components/schemas/AssetUsageInfo'
        compliance:
          $ref: '#/components/schemas/ComplianceInfo'
        status:
          $ref: '#/components/schemas/AssetClusterStatusInfo'
        clusterInfo:
          $ref: '#/components/schemas/ClusterInfo1'
    Error:
      required:
      - code
      - message
      properties:
        code:
          type: integer
          minimum: 100
          maximum: 599
        message:
          type: string
        details:
          type: string
      example:
        code: 400
        message: Bad request - Resource should have a name
    EnvironmentAssetRef:
      description: Reference information about environment asset.
      required:
      - id
      - name
      properties:
        id:
          $ref: '#/components/schemas/AssetId'
        name:
          $ref: '#/components/schemas/AssetName'
        toolTypes:
          description: the type of tools as defined in the connections of the environment asset.
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ToolType'
    NgcApiKey:
      required:
      - meta
      - spec
      properties:
        meta:
          $ref: '#/components/schemas/AssetMeta'
        spec:
          $ref: '#/components/schemas/NgcApiKeySpec'
        usedBy:
          $ref: '#/components/schemas/AssetUsageInfo'
        compliance:
          $ref: '#/components/schemas/ComplianceInfo'
        status:
          $ref: '#/components/schemas/AssetClusterStatusInfo'
        clusterInfo:
          $ref: '#/components/schemas/ClusterInfo1'
    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'
    AssetsUsageRef:
      description: Reference information about usage of assets by other assets, for example datasources that uses credentials.
      properties:
        environment:
          nullable: true
          type: object
          description: environment asset.
          allOf:
          - $ref: '#/components/schemas/EnvironmentAssetRef'
          deprecated: true
        environments:
          type: array
          items:
            $ref: '#/components/schemas/AssetRef'
        compute:
          $ref: '#/components/schemas/AssetsUsageRefCompute'
          deprecated: true
        computes:
          type: array
          items:
            $ref: '#/components/schemas/AssetRef'
        datasources:
          type: array
          items:
            $ref: '#/components/schemas/AssetDatasourceRef'
    AssetName:
      description: The name of the asset.
      type: string
      minLength: 1
      example: my-asset
    GenericSecretUpdateRequest:
      properties:
        meta:
          $ref: '#/components/schemas/CredentialUpdateRequest'
    AccessKeySpec:
      allOf:
      - $ref: '#/components/schemas/AccessKeyCreationSpec'
      - $ref: '#/components/schemas/EncryptionKeyId'
    AssetCreationRequest:
      allOf:
      - $ref: '#/components/schemas/AssetUpdatableFields'
      - $ref: '#/components/schemas/AssetCreationFields'
      example:
        name: my-asset
        scope: tenant
        workloadSupportedTypes:
          workspace: false
          training: false
          inference: false
          distributed: true
          distFramework: TF
    ComplianceInfoReason:
      description: An issue preventing the use of a template or asset for creating workloads in a given project.
      required:
      - details
      properties:
        field:
          description: For policy related issues, includes a json path to the field in the policy for which the issue applies.
          nullable: true
          type: string
          pattern: .*
        details:
          description: Explanation of the issue.
          type: string
          pattern: .*
        rule:
          $ref: '#/components/schemas/PolicyRuleEnum'
    AssetMeta:
      allOf:
      - $ref

# --- 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