NVIDIA Run:ai Datasources API

Data source assets.

OpenAPI Specification

runai-datasources-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 Datasources 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: Datasources
  description: Data source assets.
paths:
  /api/v1/asset/datasource:
    get:
      summary: List datasource assets.
      description: Returns a combined list of data-sources.
      operationId: list_datasource_assets
      tags:
      - Datasources
      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/ComplyToProject'
      - $ref: '#/components/parameters/ComplyToWorkloadType'
      - $ref: '#/components/parameters/IncludeStatus'
      - $ref: '#/components/parameters/AssetIdsFilter'
      - $ref: '#/components/parameters/ComplyToReplicaType'
      - $ref: '#/components/parameters/includeDescendants'
      responses:
        '200':
          description: Request completed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DatasourceListResponse'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
components:
  schemas:
    S3Common:
      properties:
        bucket:
          description: The name of the bucket. (mandatory)
          type: string
          minLength: 1
          example: my-bucket
          nullable: true
        path:
          description: Local path within the workload to which the S3 bucket will be mapped. (mandatory)
          type: string
          minLength: 1
          example: /container/my-bucket
          nullable: true
        url:
          description: The url of the S3 service provider. The default is the URL of the Amazon AWS S3 service.
          type: string
          minLength: 1
          example: https://s3.amazonaws.com
          nullable: true
      nullable: true
      type: object
    PvcFieldsNonUpdatable:
      properties:
        existingPvc:
          description: Verify existing PVC. PVC is assumed to exist when set to `true`. If set to `false`, the PVC will be created, if it does not exist.
          type: boolean
          default: false
          nullable: true
        claimName:
          description: Name for the PVC. Allow referencing it across workloads. If not provided, a name based on the workload name and scope will be auto-generated.
          type: string
          minLength: 1
          maxLength: 63
          example: my-claim
          nullable: true
          pattern: .*
        readOnly:
          description: Permit only read access to PVC.
          type: boolean
          default: false
          nullable: true
        ephemeral:
          description: Use `true` to set PVC to ephemeral. If set to `true`, the PVC will be deleted when the workload is stopped. Not supported for inference workloads.
          type: boolean
          default: false
          example: false
          nullable: true
        claimInfo:
          $ref: '#/components/schemas/ClaimInfo'
        dataSharing:
          description: use `true` to share the PVC data to all projects under the selected scope.
          type: boolean
          default: false
          example: false
          nullable: true
      nullable: true
      type: object
    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
    DatasourceListResponseAssetSpec:
      properties:
        hostPath:
          nullable: true
          type: object
          allOf:
          - $ref: '#/components/schemas/HostPathSpec'
        nfs:
          nullable: true
          type: object
          allOf:
          - $ref: '#/components/schemas/NFSAssetSpec'
        pvc:
          nullable: true
          type: object
          allOf:
          - $ref: '#/components/schemas/PVCAssetSpec'
        git:
          nullable: true
          type: object
          allOf:
          - $ref: '#/components/schemas/GitAssetSpec'
        s3:
          nullable: true
          type: object
          allOf:
          - $ref: '#/components/schemas/S3AssetSpec'
        config_map:
          nullable: true
          type: object
          allOf:
          - $ref: '#/components/schemas/ConfigMapAssetSpec'
        secret:
          nullable: true
          type: object
          allOf:
          - $ref: '#/components/schemas/SecretAssetSpec'
    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'
    PVCAssetSpec:
      allOf:
      - $ref: '#/components/schemas/Pvc'
    DatasourceListResponseEntry:
      required:
      - meta
      - spec
      properties:
        meta:
          $ref: '#/components/schemas/AssetMeta'
        spec:
          $ref: '#/components/schemas/DatasourceListResponseAssetSpec'
        usedBy:
          $ref: '#/components/schemas/AssetUsageInfo'
        usageTimes:
          $ref: '#/components/schemas/UsageTimesInfo'
        compliance:
          $ref: '#/components/schemas/ComplianceInfo'
        status:
          $ref: '#/components/schemas/AssetClusterStatusInfo'
        clusterInfo:
          $ref: '#/components/schemas/ClusterInfo1'
    PvcClaimSize:
      description: 'Requested size for the PVC. Mandatory when existingPvc is false. Recommended sizes: TB/GB/MB/TIB/GIB/MIB'
      type: string
      pattern: ^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$
      example: 1G
      nullable: true
    PvcAddedAttrValues:
      description: an optional array of key-values pairs that are written as annotations on the created PVC. the allowed attributes are determined according to the storage class configuration (see k8s-objects-tracker for further info).
      type: array
      items:
        $ref: '#/components/schemas/PvcAddedAttrValue'
    UsageTimesInfo:
      description: Details about times the asset has been used by workloads, etc.
      properties:
        lastUsedByWorkload:
          description: The time at which the asset were last used by a workload of given type and project. This field requires complyToProject and complyToWorkload types flags of the API, to specify the workload type and project id.
          type: string
          minLength: 1
          format: date-time
          nullable: true
      nullable: true
      type: object
    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
    Pvc:
      allOf:
      - $ref: '#/components/schemas/PvcFieldsUpdatable'
      - $ref: '#/components/schemas/PvcFieldsNonUpdatable'
    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: '#/components/schemas/AssetUpdatableFields'
      - $ref: '#/components/schemas/AssetCreationFields'
      - $ref: '#/components/schemas/AssetReadOnlyFields'
      example:
        name: my-asset
        scope: tenant
        id: a418ed33-9399-48c0-a890-122cadd13bfd
        kind: s3
        createdBy: test@run.ai
        createdAt: '2023-02-23T14:25:36.707685Z'
        updatedBy: test@run.ai
        updatedAt: '2023-02-23T14:25:36.707685Z'
        workloadSupportedTypes:
          workspace: false
          training: false
          distributed: true
          distFramework: TF
    HostPath:
      properties:
        path:
          description: Local path within the controller to which the host volume will be mapped. (mandatory)
          type: string
          minLength: 1
          example: /container/directory
          nullable: true
          pattern: .*
        readOnly:
          description: Force the volume to be mounted with read-only permissions. Defaults to false.
          type: boolean
          default: true
          nullable: true
        mountPath:
          description: The path that the host volume will be mounted to when in use. (mandatory)
          type: string
          minLength: 1
          example: /local/directory
          nullable: true
          pattern: .*
        mountPropagation:
          $ref: '#/components/schemas/HostPathMountPropagation'
      nullable: true
      type: object
    AssetClusterStatusIssues:
      type: array
      items:
        $ref: '#/components/schemas/AssetClusterStatusIssue'
    AssetClusterStatusIssue:
      type: object
      required:
      - scopeId
      - scopeType
      - issue
      properties:
        scopeId:
          $ref: '#/components/schemas/ScopeId'
        scopeType:
          $ref: '#/components/schemas/ScopeType'
        issue:
          $ref: '#/components/schemas/AssetClusterStatusIssueEnum'
    SecretAssetSpec:
      allOf:
      - $ref: '#/components/schemas/CredentialAsset'
      - properties:
          mountPath:
            description: Local path within the workspace to which the Secret will be mapped to (mandatory)
            type: string
            minLength: 1
            nullable: true
          defaultMode:
            $ref: '#/components/schemas/DefaultMode'
      type: object
    S3AssetSpec:
      allOf:
      - $ref: '#/components/schemas/S3Common'
      - $ref: '#/components/schemas/S3AccessKeyAsset'
    CredentialAsset:
      properties:
        credentialAssetId:
          description: ID of credentials asset (mandatory)
          type: string
          format: uuid
          nullable: true
          minLength: 1
    GitPasswordAsset:
      properties:
        passwordAssetId:
          description: UUID of a credential asset of type userid / password. This credential is required for authenticating with private Git repositories using SSH. (deprecated - use credentialId instead).
          type: string
          format: uuid
          nullable: true
          minLength: 1
    AssetDescription:
      description: The description of the asset.
      type: string
      minLength: 1
      maxLength: 250
      example: description of my asset.
      nullable: true
    AssetClusterStatusInfo:
      properties:
        status:
          $ref: '#/components/schemas/AssetSyncStatusEnum'
        issues:
          $ref: '#/components/schemas/AssetClusterStatusIssues'
        message:
          type: string
        url:
          type: string
      nullable: true
      type: object
    WorkloadName:
      description: The name of the workload.
      type: string
      minLength: 1
      example: my-workload-name
      pattern: .*
    ClaimInfo:
      description: Claim information for the newly created PVC. The information should not be provided when attempting to use existing PVC.
      properties:
        size:
          $ref: '#/components/schemas/PvcClaimSize'
        storageClass:
          description: Storage class name to associate with the PVC. This parameter may be omitted if there is a single storage class in the system, or you are using the default storage class. For more information, see [Storage class](https://kubernetes.io/docs/concepts/storage/storage-classes).
          type: string
          minLength: 1
          example: my-storage-class
          nullable: true
          pattern: ^[a-z0-9]([a-z0-9-]*[a-z0-9])?$
        accessModes:
          $ref: '#/components/schemas/PvcAccessModes'
        volumeMode:
          $ref: '#/components/schemas/PvcVolumeMode'
        addedAttrValues:
          $ref: '#/components/schemas/PvcAddedAttrValues'
      nullable: true
      type: object
    AssetId:
      description: Unique identifier of the asset.
      type: string
      format: uuid
      minLength: 1
    HostPathMountPropagation:
      description: Share this volumes mount with other containers. If set to HostToContainer, this volume mount will receive all subsequent mounts that are mounted to this volume or any of its subdirectories. In case of multiple hostPath entries, this field should have the same value for all of them.
      type: string
      enum:
      - None
      - HostToContainer
      nullable: true
    ConfigMapAssetSpec:
      allOf:
      - $ref: '#/components/schemas/ConfigMap'
    PolicyRuleEnum:
      description: Indicates which validation rule (e.g., min, max, step, options, required, canEdit, canAdd) conflicted with policy restrictions, causing the asset or template to be rejected.
      type: string
      nullable: true
      enum:
      - min
      - max
      - step
      - options
      - required
      - canEdit
      - canAdd
      - locked
    AssetReadOnlyFields:
      required:
      - id
      - kind
      - createdBy
      - createdAt
      - updatedBy
      - updatedAt
      properties:
        id:
          $ref: '#/components/schemas/AssetId'
        kind:
          $ref: '#/components/schemas/AssetKind'
        tenantId:
          description: The id of the tenant.
          type: integer
          format: int32
          nullable: true
        createdBy:
          description: The user who created the asset.
          type: string
          minLength: 1
        createdAt:
          description: The time at which the asset were created
          type: string
          minLength: 1
          format: date-time
        updatedBy:
          description: The user who updated the asset.
          type: string
          minLength: 1
        updatedAt:
          description: The time at which the asset has been updated
          type: string
          minLength: 1
          format: date-time
        deletedAt:
          description: Deletion time of the asset (relevant for assets that sync to the cluster)
          type: string
          minLength: 1
          format: date-time
        deletedBy:
          description: The user who deleted the asset
          type: string
          minLength: 1
        projectName:
          description: The name of the project that the asset is associated with, for project scoped assets.
          type: string
          minLength: 1
          nullable: true
        updateCount:
          $ref: '#/components/schemas/UpdateCount'
      type: object
    UpdateCount:
      description: the value of an update counter of a data in the system.
      type: integer
      format: int64
      example: 12345
    AssetKind:
      description: The kind of the asset.
      type: string
      minLength: 1
      enum:
      - compute
      - environment
      - accessKey
      - dockerRegistry
      - password
      - genericSecret
      - registry
      - s3
      - git
      - nfs
      - pvc
      - hostPath
      - workload-template
      - model
      - config-map
      - secret-volume
      - data-volume
      - ngcApiKey
    AssetSyncStatusEnum:
      type: string
      enum:
      - Creating
      - Deleting
      - Failed
      - Deletion failed
      - Issues found
      - No issues found
      - No status
      - Updating
    AssetDatasourceRef:
      description: Reference information about a datasource asset.
      required:
      - id
      - name
      - kind
      properties:
        id:
          $ref: '#/components/schemas/AssetId'
        name:
          $ref: '#/components/schemas/AssetName'
        kind:
          $ref: '#/components/schemas/AssetKind'
        overrides:
          $ref: '#/components/schemas/DataSourceOverrides'
          deprecated: true
    AssetClusterStatusIssueEnum:
      type: string
      enum:
      - ReplicationError
      - LostPhase
      - NotCreated
    AssetUsageInfo:
      description: Details about resources that use the asset.
      properties:
        workspaces:
          description: workspaces that rely on this asset.
          type: array
          items:
            $ref: '#/components/schemas/WorkloadRefAndStatus'
        trainings:
          description: trainings that rely on this asset.
          type: array
          items:
            $ref: '#/components/schemas/WorkloadRefAndStatus'
        distributed:
          description: distributed trainings that rely on this asset.
          type: array
          items:
            $ref: '#/components/schemas/WorkloadRefAndStatus'
        inferences:
          description: inferences that rely on this asset.
          type: array
          items:
            $ref: '#/components/schemas/WorkloadRefAndStatus'
        templates:
          description: templates that rely on this asset.
          type: array
          items:
            $ref: '#/components/schemas/AssetRef'
        assets:
          description: list of other assets that use this asset. specifically, accessKeys used by s3, and passwords used by git.
          $ref: '#/components/schemas/AssetsUsageRef'
      nullable: true
      type: object
    GitAssetSpec:
      allOf:
      - $ref: '#/components/schemas/GitCommon'
      - $ref: '#/components/schemas/GitPasswordAsset'
      - $ref: '#/components/schemas/GitCredentialId'
    ComplianceInfo:
      description: Compliance of an asset with creation of workloads in a given project.
      properties:
        imposed:
          description: Whether the asset is imposed on created workloads by the administrator.
          type: boolean
        compliance:
          description: Whether the asset info complies with creation of workloads in the project.
          type: boolean
        reason:
          description: For asset that does not comply, specify one or more reason why.
          type: array
          items:
            $ref: '#/components/schemas/ComplianceInfoReason'
      nullable: true
      type: object
    PvcAddedAttrValue:
      type: object
      required:
      - key
      properties:
        key:
          type: string
          minLength: 1
          maxLength: 63
          pattern: ^([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]$
          example: dnsname
        value:
          type: string
          example: my.dns.com
          pattern: .*
    WorkloadRefAndStatus:
      description: Id, name and status of a workspace or training
      required:
      - id
      - name
      properties:
        id:
          $ref: '#/components/schemas/WorkloadId1'
        name:
          $ref: '#/components/schemas/WorkloadName'
        status:
          description: The status of the workspace or training.
          type: string
          minLength: 1
    DatasourceListResponse:
      required:
      - entries
      properties:
        entries:
          type: array
          items:
            $ref: '#/components/schemas/DatasourceListResponseEntry'
    HostPathSpec:
      allOf:
      - $ref: '#/components/schemas/HostPath'
    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
    GitCredentialId:
      properties:
        credentialId:
          description: UUID of a credential asset of type generic secret or user id / password required for authenticating with private Git repositories. For generic secret, the credential asset must contain a key-value pair where the key is ssh (lowercase) and the value is a valid private SSH key
          type: string
          format: uuid
          nullable: true
          minLength: 1
    S3AccessKeyAsset:
      properties:
        accessKeyAssetId:
          description: ID of credentials asset of type access-key, for private S3 buckets.
          type: string
          format: uuid
          minLength: 1
          nullable: true
    PvcVolumeMode:
      description: Default volume mode for the PVC. Choose between Filesystem (default) or Block.
      type: string
      enum:
      - Filesystem
      - Block
      nullable: true
    AssetRef:
      description: Reference information about an asset.
      required:
      - id
      - name
      properties:
        id:
          $ref: '#/components/schemas/AssetId'
        name:
          $ref: '#/components/schemas/AssetName'
    NFSAssetSpec:
      allOf:
      - $ref: '#/components/schemas/Nfs'
    DefaultMode:
      type: string
      description: 'File permission mode in octal string format. This value must be a 4-digit octal number, representing the default file mode when mounting a Secret or ConfigMap as a volume.

        '
      minLength: 4
      maxLength: 4
      example: '0644'
      pattern: 0[0-7]{3}
      nullable: true
    Nfs:
      properties:
        path:
          description: Path that is exported by the NFS server (mandatory). For more information, see [NFS](https://kubernetes.io/docs/concepts/storage/volumes#nfs).
          type: string
          minLength: 1
          example: /container/nfs
          nullable: true
          pattern: .*
        readOnly:
          description: Force the NFS export to be mounted with read-only permissions.
          type: boolean
          default: true
          nullable: true
        server:
          description: The hostname or IP address of the NFS server. (mandatory)
          type: string
          minLength: 1
          example: my.nfs.com
          nullable: true
          pattern: .*
        mountPath:
          description: The path that the NFS volume will be mounted to when in use. (mandatory)
          type: string
          minLength: 1
          example: /local/nfs
          nullable: true
          pattern: .*
      nullable: true
      type: object
    ClusterInfo1:
      description: Cluster related information of the asset.
      properties:
        resources:
          type: array
          items:
            $ref: '#/components/schemas/ClusterResourceInfo'
      nullable: true
      type: object
    WorkloadId1:
      description: A unique ID of the workload.
      type: string
      format: uuid
    WorkloadSupportedTypes:
      properties:
        inference:
          description: Is inference a supported workload type.
          type: boolean
          nullable: true
        workspace:
          description: Is workspace a supported workload type.
          type: boolean
          nullable: true
        training:
          description: Is training a supported workload type.
          type: boolean
          nullable: true
        distributed:
          description: Is distributed a supported workload type.
          type: boolean
          nullable: true
        distFramework:
          description: The distributed training framework used in the workload.
          type: string
          enum:
          - MPI
          - PyTorch
          - TF
          - XGBoost
          nullable: true
      nullable: true
      type: object
    AssetUpdatableFields:
      required:
      - name
      properties:
        name:
          $ref: '#/components/schemas/AssetName'
        description:
          $ref: '#/components/schemas/AssetDescription'
    ClusterResourceInfo:
      properties:
        name:
          example: password-credential-1
          description: The name of the resource created for the asset in the cluster.
          type: string
          nullable: true
      nullable: true
      type: object
    ToolType:
      description: Super set of Internal and External tool types.
      type: string
      minLength: 1
      enum:
      - jupyter-notebook
      - pycharm
      - visual-studio-code
      - tensorboard
      - rstudio
      - mlflow
      - custom
      - wandb
      - matlab
      - comet
      - chatbot-ui
    AssetCreationFields:
      type: object
      required:
      - scope
      properties:
        scope:
          $ref: '#/components/schemas/Scope'
        clusterId:
          $ref: '#/components/schemas/ClusterIdOptional'
        departmentId:
          description: The id of the department. Must be specified for department scoped assets.
          type: string
          nullable: true
          minLength: 1
        projectId:
          description: The id of the project. Must be specified for project scoped assets.
          type: integer
          format: int32
          nullable: true
        autoDelete:
          description: The asset will be deleted automatically. This is intended for internal use.
          type: boolean
          nullable: true
          default: false
        workloadSupportedTypes:
          $ref: '#/components/schemas/WorkloadSupportedTypes'
        private:
          description: The asset will be private to the user who created it. supported only for docker registry and generic secrets
          type: boolean
          nullable: true
          default: false
    ScopeType:
      type: string
      enum:
      - system
      - tenant
      - cluster
      - department
      - project
    ConfigMap:
      properties:
        configMap:
          description: The name of the ConfigMap resource. (mandatory)
          type: string
          minLength: 1
          nullable: true
          pattern: ^[a-z0-9]([a-z0-9-]*[a-z0-9])?$
        mountPath:
          description: Local path within the workload to which the ConfigMap will be mapped to. (mandatory)
          type: string
          minLength: 1
          nullable: true
          pattern: .*
        subPath:
          description: Path within the volume from which the container's volume should be mounted.
          type: string
          minLength: 1
          nullable: true
          pattern: .*
        defaultMode:
          $ref: '#/components/schemas/DefaultMode'
      nullable: true
      type: object
    GitCommon:
      properties:
        repository:
          description: URL to a remote Git repository. The content of this repository will be mapped to the container running the workload. (mandatory)
          type: string
          minLength: 1
          example: https://github.com/my-git/my-repo
          nullable: true
        branch:
          description: Specific branch to synchronize the repository from.
          type: string
          minLength: 1
          example: main
          nullable: true
        revision:
          description: Specific revision to synchronize the repository from.
          type: string
          minLength: 1
          nullable: true
        path:
          description: Local path within the workload to which the Git repository will be mapped (mandatory).
          type: string
          minLength: 1
          example: /container/my-repository
          nullable: true
      nullable: true
      type: object
    ScopeId:
      type: string
      description: The id of the cluster, department or project, depending on the scope type.
    ClusterIdOptional:
      description: The id of the cluster.
      type: string
      format: uuid
      minLength: 1
      example: 71f69d83-ba66-4822-adf5-55ce55efd210
      nullable: true
    PvcFieldsUpdatable:
      properties:
        path:
          description: Local path within the workload to which the PVC bucket will be mapped. (mandatory)
          type: string
          minLength: 1
          example: /container/my-claim
          nullable: true
          pattern: .*
      nullable: true
      type: object
    PvcAccessModes:
      description: Default access mode(s) applied to newly created PVCs unless explicitly overridden.
      properties:
        readWriteOnce:
          description: Mount the volume as read/write by a single node.
          type: boolean
          default: true
          nullable: true
        readOnlyMany:
          description: Mount the volume as read-only by many nodes.
          type: boolean
          default: false
          nullable: true
        readWriteMany:
          description: Mount the volume as read/write by many nodes.
          type: boolean
          default: false
          nullable: true
      nullable: true
      type: object
  parameters:
    AssetIdsFilter:
      name: assetIds
      in: query
      required: false
      description: Filter results by the ids of the assets. Provided value should be a comma separated string of UUIDs.
      schema:
        type: string
        example: dbf4767e-2fa1-43b0-97a2-7c0cecda180b,550e8400-e29b-41d4-a716-44665544000a
        pattern: ^\b(?:[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})(?:,(?:[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}))*\b$
    IncludeUsageInfo:
      name: usageInfo
      in: query
      required: false
      description: Whether the query should include asset usage information as part of the response.
      schema:
        type: boolean
    includeDescendants:
      name: includeDescendants
      in: q

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