NVIDIA Run:ai Workspaces API

A Workspace is a simplified tool for researchers to conduct experiments, build AI models, access standard MLOps tools, and collaborate with their peers. Workspaces abstract complex concepts related to running containerized workloads in a Kubernetes environment and are built from predefined setups that include networking, storage, secrets and other resources. All the setup and configurations for research, including container images, data sets, resource requests, as well as all tools are included. for the research, in a single place. It answers the research needs while ensuring infrastructure owners keep control and allocation efficiency. A workspace is associated with a specific NVIDIA Run:ai project and you can have multiple workspaces under a specific project. For more information, see [Workspaces](https://run-ai-docs.nvidia.com/saas/workloads-in-nvidia-run-ai/using-workspaces/running-workspace).

Operations 5

POST /api/v1/workloads/workspaces Create a workspace. #
DELETE /api/v1/workloads/workspaces/{workloadId} Delete a workspace. #
GET /api/v1/workloads/workspaces/{workloadId} Get workspace data. #
POST /api/v1/workloads/workspaces/{workloadId}/suspend Suspend a workspace. #
POST /api/v1/workloads/workspaces/{workloadId}/resume Resume a workspace. #

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-workspaces-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-workspaces-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 Workspaces 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: Workspaces
  description: "A Workspace is a simplified tool for researchers to conduct experiments, build AI models, access standard MLOps tools, and collaborate with their peers.\nWorkspaces abstract complex concepts related to running containerized workloads in a Kubernetes environment and are built from predefined setups that include\nnetworking, storage, secrets and other resources. All the setup and configurations for research, including container \nimages, data sets, resource requests, as well as all tools are included. for the research, in a single place. \nIt answers the research needs while ensuring infrastructure owners keep control and allocation efficiency.\nA workspace is associated with a specific NVIDIA Run:ai project and you can have multiple workspaces under a specific project. \nFor more information, see [Workspaces](https://run-ai-docs.nvidia.com/saas/workloads-in-nvidia-run-ai/using-workspaces/running-workspace).\n"
paths:
  /api/v1/workloads/workspaces:
    post:
      summary: Create a workspace.
      operationId: create_workspace1
      description: Create a new workspace in a specific project in the cluster.
      tags:
      - Workspaces
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkspaceCreationRequest'
      responses:
        '202':
          description: Request completed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Workspace1'
        '400':
          $ref: '#/components/responses/400SubmissionErrorV2'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
  /api/v1/workloads/workspaces/{workloadId}:
    delete:
      summary: Delete a workspace.
      description: Delete a workspace using the workspace id.
      operationId: delete_workspace
      tags:
      - Workspaces
      parameters:
      - $ref: '#/components/parameters/WorkloadId'
      responses:
        '202':
          $ref: '#/components/responses/202Accepted'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '404':
          $ref: '#/components/responses/404NotFound'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
    get:
      summary: Get workspace data.
      description: Retrieve workspace details using a workload id.
      operationId: get_workspace
      tags:
      - Workspaces
      parameters:
      - $ref: '#/components/parameters/WorkloadId'
      responses:
        '200':
          description: Executed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Workspace1'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '404':
          $ref: '#/components/responses/404NotFound'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
  /api/v1/workloads/workspaces/{workloadId}/suspend:
    post:
      summary: Suspend a workspace.
      description: Suspend a workspace using the workspace id.
      operationId: suspend_workspace
      tags:
      - Workspaces
      parameters:
      - $ref: '#/components/parameters/WorkloadId'
      responses:
        '202':
          $ref: '#/components/responses/202Accepted'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '404':
          $ref: '#/components/responses/404NotFound'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
  /api/v1/workloads/workspaces/{workloadId}/resume:
    post:
      summary: Resume a workspace.
      description: Resume the workspace operation using the workspace id.
      operationId: resume_workspace
      tags:
      - Workspaces
      parameters:
      - $ref: '#/components/parameters/WorkloadId'
      responses:
        '202':
          $ref: '#/components/responses/202Accepted'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '404':
          $ref: '#/components/responses/404NotFound'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
components:
  schemas:
    LargeShmRequest:
      description: A large /dev/shm device to mount into a container running the created workload. An shm is a shared file system mounted on RAM.
      type:
      - boolean
      - 'null'
      example: false
    SecretFieldsUpdatable:
      properties:
        mountPath:
          description: Local path within the workload to which the Secret will be mapped to. (mandatory)
          type:
          - string
          - 'null'
          minLength: 1
        defaultMode:
          $ref: '#/components/schemas/DefaultMode'
      type:
      - object
      - 'null'
    EnvironmentVariableConfigMap:
      description: Details of the configMap and key use to populate the environment variable
      properties:
        name:
          description: The name of the config-map resource. (mandatory)
          type:
          - string
          - 'null'
          minLength: 1
          example: my-config-map
          pattern: ^[a-z0-9]([a-z0-9-]*[a-z0-9])?$
        key:
          description: The key in the config-map resource. (mandatory)
          type:
          - string
          - 'null'
          minLength: 1
          example: MY_POSTGRES_SCHEMA
          pattern: .*
      type:
      - object
      - 'null'
    ConfigMapInstance:
      allOf:
      - $ref: '#/components/schemas/StorageInstanceName'
      - $ref: '#/components/schemas/ConfigMap'
      - $ref: '#/components/schemas/ExcludeField'
      type:
      - object
      - 'null'
    WorkloadId2:
      description: A unique ID of the workload.
      type: string
      format: uuid
    Ports:
      description: Set of container ports that the workload exposes.
      type:
      - array
      - 'null'
      items:
        $ref: '#/components/schemas/Port'
    WorkspaceSpecSpec:
      allOf:
      - properties:
          annotations:
            $ref: '#/components/schemas/Annotations'
          args:
            $ref: '#/components/schemas/Args'
          autoDeletionTimeAfterCompletionSeconds:
            $ref: '#/components/schemas/AutoDeletionTimeAfterPreemption'
          backoffLimit:
            $ref: '#/components/schemas/BackoffLimit'
          category:
            $ref: '#/components/schemas/Category'
          command:
            $ref: '#/components/schemas/Command'
          compute:
            properties:
              cpuCoreLimit:
                $ref: '#/components/schemas/CpuCoreLimit'
              cpuCoreRequest:
                $ref: '#/components/schemas/CpuCoreRequest'
              cpuMemoryLimit:
                $ref: '#/components/schemas/CpuMemoryLimit'
              cpuMemoryRequest:
                $ref: '#/components/schemas/CpuMemoryRequest'
              extendedResources:
                $ref: '#/components/schemas/ExtendedResources'
              gpuDevicesRequest:
                $ref: '#/components/schemas/GpuDevicesRequest'
              gpuMemoryLimit:
                $ref: '#/components/schemas/GpuMemoryLimit'
              gpuMemoryRequest:
                $ref: '#/components/schemas/GpuMemoryRequest'
              gpuPortionLimit:
                $ref: '#/components/schemas/GpuPortionLimit'
              gpuPortionRequest:
                $ref: '#/components/schemas/GpuPortionRequest'
              gpuRequestType:
                $ref: '#/components/schemas/GpuRequestType'
              largeShmRequest:
                $ref: '#/components/schemas/LargeShmRequest'
            type:
            - object
            - 'null'
          createHomeDir:
            $ref: '#/components/schemas/CreateHomeDir'
          environmentVariables:
            $ref: '#/components/schemas/EnvironmentVariables'
          exposedUrls:
            $ref: '#/components/schemas/ExposedUrls'
          image:
            $ref: '#/components/schemas/Image'
          imagePullPolicy:
            $ref: '#/components/schemas/ImagePullPolicy'
          imagePullSecrets:
            $ref: '#/components/schemas/ImagePullSecrets'
          labels:
            $ref: '#/components/schemas/Labels'
          nodeAffinityRequired:
            $ref: '#/components/schemas/NodeAffinityRequired'
          nodePools:
            $ref: '#/components/schemas/NodePools'
          nodeType:
            $ref: '#/components/schemas/NodeType3'
          podAffinity:
            $ref: '#/components/schemas/PodAffinity'
          ports:
            $ref: '#/components/schemas/Ports'
          preemptibility:
            $ref: '#/components/schemas/Preemptibility'
          priorityClass:
            $ref: '#/components/schemas/PriorityClass'
          probes:
            $ref: '#/components/schemas/Probes'
          relatedUrls:
            $ref: '#/components/schemas/RelatedUrls'
          restartPolicy:
            $ref: '#/components/schemas/RestartPolicy'
          security:
            properties:
              allowPrivilegeEscalation:
                $ref: '#/components/schemas/AllowPrivilegeEscalation'
              capabilities:
                $ref: '#/components/schemas/Capabilities'
              hostIpc:
                $ref: '#/components/schemas/HostIpc'
              hostNetwork:
                $ref: '#/components/schemas/HostNetwork'
              readOnlyRootFilesystem:
                $ref: '#/components/schemas/ReadOnlyRootFileSystem'
              runAsGid:
                $ref: '#/components/schemas/RunAsGid'
              runAsNonRoot:
                $ref: '#/components/schemas/RunAsNonRoot'
              runAsUid:
                $ref: '#/components/schemas/RunAsUid'
              seccompProfileType:
                $ref: '#/components/schemas/SeccompProfileType'
              supplementalGroups:
                $ref: '#/components/schemas/SupplementalGroups'
              uidGidSource:
                $ref: '#/components/schemas/UidGidSource'
            type:
            - object
            - 'null'
          stdin:
            $ref: '#/components/schemas/Stdin'
          storage:
            properties:
              configMapVolume:
                $ref: '#/components/schemas/ConfigMapItems'
              dataVolume:
                $ref: '#/components/schemas/DataVolumeItems'
              emptyDirVolume:
                $ref: '#/components/schemas/EmptyDirItems'
              git:
                $ref: '#/components/schemas/GitItems'
              hostPath:
                $ref: '#/components/schemas/HostPathItems'
              nfs:
                $ref: '#/components/schemas/NfsItems'
              pvc:
                $ref: '#/components/schemas/PvcItems'
              s3:
                $ref: '#/components/schemas/S3Items'
              secretVolume:
                $ref: '#/components/schemas/SecretItems1'
            type:
            - object
            - 'null'
          terminateAfterPreemption:
            $ref: '#/components/schemas/TerminateAfterPreemption'
          terminationGracePeriodSeconds:
            $ref: '#/components/schemas/TerminationGracePeriod'
          tolerations:
            $ref: '#/components/schemas/Tolerations'
          tty:
            $ref: '#/components/schemas/Tty'
          workingDir:
            $ref: '#/components/schemas/WorkingDir'
        type:
        - object
        - 'null'
    GitAuthenticationMethod:
      description: Specifies the authentication method to use when accessing the Git repository. This is required for private repositories - `password` - Authenticate using a username and password. - `ssh-key` - Authenticate using an SSH private key.
      type: string
      minLength: 1
      example: password
      enum:
      - password
      - ssh-key
    HostIpc:
      description: Whether to enable host IPC. Defaults to false.
      type:
      - boolean
      - 'null'
      example: false
    DefaultMode:
      type:
      - string
      - 'null'
      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}
    CpuMemoryRequest:
      description: The amount of CPU memory to allocate for this workload (1G, 20M, .etc). The workload will receive at least this amount of memory. Note that the workload will not be scheduled unless the system can guarantee this amount of memory to the workload
      type:
      - string
      - 'null'
      pattern: ^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$
      example: 20M
    GpuDevicesRequest:
      description: Requested number of GPU devices. Currently if more than one device is requested, it is not possible to provide values for gpuMemory or gpuPortion.
      type:
      - integer
      - 'null'
      format: int32
      example: 1
      minimum: 0
    PriorityClass:
      description: 'Specifies the priority class for the workload, which determines its scheduling behavior. Valid values are: very-low, low, medium-low, medium, medium-high, high, and very-high. Each workload type has a default priority. To view the default priority for each workload type, use the GET /workload-types endpoint. Once you change the priority from the default value defined for that workload type, the preemptibility field is not automatically updated. Make sure to set the desired preemptibility value.'
      type:
      - string
      - 'null'
      pattern: .*
    Label:
      description: Label details to be populated into the container.
      properties:
        name:
          description: The name of the label (mandatory)
          type:
          - string
          - 'null'
          minLength: 1
          maxLength: 63
          example: stage
          pattern: .*
        value:
          description: The value of the label.
          type:
          - string
          - 'null'
          example: initial-research
          pattern: .*
        exclude:
          description: Use 'true' in case the label is defined in defaults of the policy, and you wish to exclude it from the workload.
          type:
          - boolean
          - 'null'
          example: false
      type:
      - object
      - 'null'
    SubmissionErrorV2:
      allOf:
      - $ref: '#/components/schemas/Error'
      - $ref: '#/components/schemas/ComplianceIssuesV2'
    GitSecretRef:
      properties:
        name:
          description: Name of the Secret containing the credentials of the repository.
          type: string
          minLength: 1
          example: my-password-secret
        authenticationMethod:
          $ref: '#/components/schemas/GitAuthenticationMethod'
        secretKeyOfUser:
          description: The key in the Secret that contains the Git username (used for `password` authentication).
          type:
          - string
          - 'null'
          minLength: 1
          example: User
        secretKeyOfPassword:
          description: The key in the Secret that contains the Git password (used for `password` authentication).
          type:
          - string
          - 'null'
          minLength: 1
          example: Password
      type:
      - object
      - 'null'
    DepartmentId2:
      description: The id of the department.
      type: string
      minLength: 1
      example: 2
      pattern: .*
    RelatedUrls:
      description: Set of URLs that are related to the workload.
      type:
      - array
      - 'null'
      items:
        $ref: '#/components/schemas/RelatedUrl'
    S3Instance:
      allOf:
      - $ref: '#/components/schemas/StorageInstanceName'
      - $ref: '#/components/schemas/S3Common'
      - $ref: '#/components/schemas/S3AccessKey'
      - $ref: '#/components/schemas/ExcludeField'
      type:
      - object
      - 'null'
    NodeSelectorTerm:
      type:
      - object
      - 'null'
      description: A null or empty node selector term matches no objects. The requirements of them are ANDed.
      properties:
        matchExpressions:
          description: A list of node selector requirements by node's labels.
          type: array
          items:
            $ref: '#/components/schemas/MatchExpression'
    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
          - 'null'
          minLength: 1
          example: https://github.com/my-git/my-repo
        branch:
          description: Specific branch to synchronize the repository from.
          type:
          - string
          - 'null'
          minLength: 1
          example: main
        revision:
          description: Specific revision to synchronize the repository from.
          type:
          - string
          - 'null'
          minLength: 1
        path:
          description: Local path within the workload to which the Git repository will be mapped (mandatory).
          type:
          - string
          - 'null'
          minLength: 1
          example: /container/my-repository
      type:
      - object
      - 'null'
    ImagePullSecrets:
      description: A list of references to Kubernetes secrets in the same namespace used for pulling container images.
      type:
      - array
      - 'null'
      items:
        $ref: '#/components/schemas/ImagePullSecret'
    PvcVolumeMode:
      description: Default volume mode for the PVC. Choose between Filesystem (default) or Block.
      type:
      - string
      - 'null'
      enum:
      - Filesystem
      - Block
    WorkspaceSpec:
      description: The specifications of the workspace to be created.
      properties:
        spec:
          $ref: '#/components/schemas/WorkspaceSpecSpec'
    TolerationEffect:
      description: The taint effect to match. (mandatory)
      type:
      - string
      - 'null'
      enum:
      - NoSchedule
      - NoExecute
      - PreferNoSchedule
      - Any
    Annotation:
      description: Annotation details to be populated into the container.
      properties:
        name:
          description: The name of the annotation (mandatory)
          type:
          - string
          - 'null'
          minLength: 1
          maxLength: 63
          example: billing
          pattern: .*
        value:
          description: The value of the annotation.
          type:
          - string
          - 'null'
          example: my-billing-unit
          pattern: .*
        exclude:
          description: Use 'true' in case the annotation is defined in defaults of the policy, and you wish to exclude it from the workload.
          type:
          - boolean
          - 'null'
          default: false
          example: false
      type:
      - object
      - 'null'
    NodeType3:
      description: Nodes (machines), or a group of nodes on which the workload will run. To use this feature, your Administrator will need to label nodes. For more information, see [Group Nodes](https://docs.run.ai/latest/admin/researcher-setup/limit-to-node-group). When using this flag with with Project-based affinity, it refines the list of allowable node groups set in the Project. For more information, see [Projects](https://docshub.run.ai/guides/platform-management/aiinitiatives/organization/projects).
      type:
      - string
      - 'null'
      minLength: 1
      example: my-node-type
      pattern: .*
    HostPath:
      properties:
        path:
          description: Local path within the controller to which the host volume will be mapped. (mandatory)
          type:
          - string
          - 'null'
          minLength: 1
          example: /container/directory
          pattern: .*
        readOnly:
          description: Force the volume to be mounted with read-only permissions. Defaults to false.
          type:
          - boolean
          - 'null'
          default: true
        mountPath:
          description: The path that the host volume will be mounted to when in use. (mandatory)
          type:
          - string
          - 'null'
          minLength: 1
          example: /local/directory
          pattern: .*
        mountPropagation:
          $ref: '#/components/schemas/HostPathMountPropagation'
      type:
      - object
      - 'null'
    PvcClaimSize:
      description: 'Requested size for the PVC. Mandatory when existingPvc is false. Recommended sizes: TB/GB/MB/TIB/GIB/MIB'
      type:
      - string
      - 'null'
      pattern: ^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$
      example: 1G
    ExposedUrls:
      description: Set of container ports that the workload exposes via URLs.
      type:
      - array
      - 'null'
      items:
        $ref: '#/components/schemas/ExposedUrl'
    EnvironmentVariablePodFieldReference:
      description: Details of the field-reference and key use to populate the environment variable
      properties:
        path:
          description: The field path resource. (mandatory)
          type:
          - string
          - 'null'
          minLength: 1
          example: metadata.name
          pattern: .*
      type:
      - object
      - 'null'
    Labels:
      description: Set of labels to populate into the container running the workload.
      type:
      - array
      - 'null'
      items:
        $ref: '#/components/schemas/Label'
    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
          - 'null'
          default: false
        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
          - 'null'
          minLength: 1
          maxLength: 63
          example: my-claim
          pattern: .*
        readOnly:
          description: Permit only read access to PVC.
          type:
          - boolean
          - 'null'
          default: false
        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
          - 'null'
          default: false
          example: false
        claimInfo:
          $ref: '#/components/schemas/ClaimInfo'
        dataSharing:
          description: use `true` to share the PVC data to all projects under the selected scope.
          type:
          - boolean
          - 'null'
          default: false
          example: false
      type:
      - object
      - 'null'
    TerminateAfterPreemption:
      description: Indicates if the job should be terminated by the system after it has been preempted.
      type:
      - boolean
      - 'null'
      example: false
    Preemptibility:
      description: Specifies whether the workload can be preempted by higher-priority workloads. Valid values are preemptible and non-preemptible. If explicitly set, this value takes precedence. If not set, the system derives the preemptibility from the priorityClassName field, ensuring backward compatibility. Each workload type has a default preemptibility. To view the default preemptibility for each workload type, use the GET /workload-types endpoint.
      type:
      - string
      - 'null'
      minLength: 1
      enum:
      - preemptible
      - non-preemptible
    GitItems:
      description: Set of git repositories to use in the workload.
      type:
      - array
      - 'null'
      items:
        $ref: '#/components/schemas/GitInstance'
    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'
    RunAsUid:
      description: The user id to run the entrypoint of the container which executes the workspace. Default to the value specified in the environment asset `runAsUid` field (optional). Use only when the source uid/gid of the environment asset is not `fromTheImage`, and `overrideUidGidInWorkspace` is enabled.
      type:
      - integer
      - 'null'
      format: int64
      example: 500
    StorageInstanceName:
      properties:
        name:
          description: unique name to identify the instance. primarily used for policy locked rules.
          type:
          - string
          - 'null'
          minLength: 1
          example: storage-instance-a
      type:
      - object
      - 'null'
    WorkloadCreationMeta:
      required:
      - name
      - projectId
      - clusterId
      properties:
        name:
          $ref: '#/components/schemas/WorkloadName'
        useGivenNameAsPrefix:
          description: When true, the requested name will be treated as a prefix. The final name of the workload will be composed of the name followed by a random set of characters.
          type: boolean
          example: true
          default: false
        projectId:
          $ref: '#/components/schemas/ProjectId'
        clusterId:
          $ref: '#/components/schemas/ClusterId'
    AuthorizationType:
      type:
      - string
      - 'null'
      enum:
      - authenticatedUsers
      - authorizedUsers
      - authorizedGroups
      description: 'Specifies who can access the connection URL:

        - `authenticatedUsers`: Any authenticated user or service account can access the URL; the authorizedUsers and authorizedGroups fields are ignored.

        - `authorizedUsers`: Only users listed in the authorizedUsers field are allowed to access the URL; the authorizedGroups field is ignored.

        - `authorizedGroups`: Only members of user groups listed in the authorizedGroups field are allowed to access the URL; the authorizedUsers field is ignored.

        If not specified, authorization is determined by whether authorizedUsers or authorizedGroups is present. If both fields are set, this results in an error. If neither is set, any authenticatedUser can access.

        '
    WorkloadName:
      description: The name of the workload.
      type: string
      minLength: 1
      example: my-workload-name
      pattern: .*
    Image:
      description: Docker image name. For more information, see [Images](https://kubernetes.io/docs/concepts/containers/images). The image name is mandatory for creating a workload.
      type:
      - string
      - 'null'
      minLength: 1
      example: python:3.8
      pattern: .*
    SeccompProfileType:
      description: Indicates which kind of seccomp profile will be applied to the container. The options are a. `RuntimeDefault` - the container runtime default profile should be used. b. `Unconfined` - no profile should be applied. c. `Localhost` is not yet supported by Run:ai.
      type:
      - string
      - 'null'
      enum:
      - RuntimeDefault
      - Unconfined
      - Localhost
    EnvironmentVariable:
      description: Details of an environment variable which is populated into the container.
      properties:
        name:
          description: The name of the environment variable. (mandatory)
          type:
          - string
          - 'null'
          minLength: 1
          example: HOME
          pattern: .*
        value:
          description: The value of the environment variable. (mutually exclusive with secret, userCredential, configMap and podFieldRef)
          type:
          - string
          - 'null'
          example: /home/my-folder
          pattern: .*
        secret:
          $ref: '#/components/schemas/EnvironmentVariableSecret'
        configMap:
          $ref: '#/components/schemas/EnvironmentVariableConfigMap'
        podFieldRef:
          $ref: '#/components/schemas/EnvironmentVariablePodFieldReference'
        userCredential:
          $ref: '#/components/schemas/EnvironmentVariableUserCredential'
        exclude:
          description: Use 'true' in case the environment variable is defined in defaults of the policy, and you wish to exclude it from the workload.
          type:
          - boolean
          - 'null'
          example: false
        description:
          description: Description of the environment variable.
          type:
          - string
          - 'null'
          example: Home directory of the user.
          pattern: .*
      type:
      - object
      - 'null'
    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
          - 'null'
          default: true
        readOnlyMany:
          description: Mount the volume as read-only by many nodes.
          type:
          - boolean
          - 'null'
          default: false
        readWriteMany:
          description: Mount the volume as read/write by many nodes.
          type:
          - boolean
          - 'null'
          default: false
      type:
      - object
      - 'null'
    NfsItems:
      description: Set of nfs volumes to use in the workload.
      type:
      - array
      - 'null'
      items:
        $ref: '#/components/schemas/NfsInstance'
    EnvironmentVariables:
      description: Set of environment variables to populate into the container running the workload.
      type:
      - array
      - 'null'
      items:
        $ref: '#/components/schemas/EnvironmentVariable'
    AllowPrivilegeEscalation:
      description: Allow the container running the workload and all launched processes to gain additional privileges after the workload starts. For more information consult the User Identity in Container guide at https://docs.run.ai/admin/runai-setup/config/non-root-c

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