NVIDIA Run:ai Workload templates API

This set of endpoints manages workload templates used to define reusable workload configurations across various workload types in the NVIDIA Run:ai platform. Templates help standardize workload definitions for consistent submission and resource usage across projects and users.

OpenAPI Specification

runai-workload-templates-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 Workload templates 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: Workload templates
  description: "This set of endpoints manages workload templates used to define reusable workload configurations across various workload types in the NVIDIA Run:ai platform. \nTemplates help standardize workload definitions for consistent submission and resource usage across projects and users.\n"
paths:
  /api/v1/workload-templates:
    get:
      summary: List templates. [Experimental]
      description: Retrieve all available templates.
      operationId: list_templates1
      tags:
      - Workload templates
      parameters:
      - $ref: '#/components/parameters/Offset'
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/SortOrder'
      - $ref: '#/components/parameters/TemplatesSort'
      - $ref: '#/components/parameters/TemplatesFilter'
      - $ref: '#/components/parameters/Search'
      - $ref: '#/components/parameters/ComplyToProject'
      - $ref: '#/components/parameters/ComplyToWorkloadType'
      - $ref: '#/components/parameters/ComplyToReplicaType'
      responses:
        '200':
          description: Executed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TemplatesListResponse'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
  /api/v1/workload-templates/name-availability:
    get:
      summary: Template name availability
      description: Check if a given template name creates naming conflicts under the given scope. Returns conflict (409) in case the name is not available, or 204 (no content) if it is ok.
      operationId: template_name_availability
      tags:
      - Workload templates
      parameters:
      - $ref: '#/components/parameters/TemplateName'
      - $ref: '#/components/parameters/ScopeType'
      - $ref: '#/components/parameters/ScopeId3'
      responses:
        '204':
          description: The name is available to use
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '409':
          $ref: '#/components/responses/409Conflict'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
  /api/v1/workload-templates/{templateId}:
    get:
      summary: Get a template, any type. [Experimental]
      operationId: get_template_by_id1
      description: Retrieve the details of a template using its id.
      tags:
      - Workload templates
      parameters:
      - $ref: '#/components/parameters/TemplateId'
      responses:
        '200':
          description: Executed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SupersetTemplate'
        '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/workload-templates/count:
    get:
      summary: Count templates. [Experimental]
      description: Get the total number of templates.
      operationId: count_templates
      tags:
      - Workload templates
      parameters:
      - $ref: '#/components/parameters/TemplatesFilter'
      - $ref: '#/components/parameters/Search'
      responses:
        '200':
          description: Executed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CountResponse'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
  /api/v1/workload-templates/workspaces:
    post:
      summary: Create a new workspace template. [Experimental]
      operationId: create_workspace_template
      description: Create a new workspace template.
      tags:
      - Workload templates
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkspaceTemplateCreationRequest'
      responses:
        '202':
          description: Request completed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkspaceTemplate'
        '400':
          $ref: '#/components/responses/400BadRequest'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
    get:
      summary: List all workspace templates. [Experimental]
      description: List all workspace templates.
      operationId: list_workspace_templates
      tags:
      - Workload templates
      parameters:
      - $ref: '#/components/parameters/Offset'
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/SortOrder'
      - $ref: '#/components/parameters/TemplatesSort'
      - $ref: '#/components/parameters/TemplatesFilter'
      - $ref: '#/components/parameters/Search'
      - $ref: '#/components/parameters/ComplyToProject'
      responses:
        '200':
          description: Executed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkspaceTemplatesListResponse'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
  /api/v1/workload-templates/workspaces/{templateId}:
    get:
      summary: Retrieve a specific workspace template by ID. [Experimental]
      operationId: get_workspace_template
      description: Retrieve a specific workspace template by ID.
      tags:
      - Workload templates
      parameters:
      - $ref: '#/components/parameters/TemplateId'
      responses:
        '200':
          description: Executed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkspaceTemplate'
        '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'
    delete:
      summary: Delete a workspace template by ID. [Experimental]
      operationId: delete_workspace_template
      description: Delete a workspace template by ID.
      tags:
      - Workload templates
      parameters:
      - $ref: '#/components/parameters/TemplateId'
      responses:
        '204':
          $ref: '#/components/responses/204NoContent'
        '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'
    patch:
      summary: Patch a workspace template by ID. [Experimental]
      operationId: patch_workspace_template
      description: Patch a workspace template by ID.
      tags:
      - Workload templates
      parameters:
      - $ref: '#/components/parameters/TemplateId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkspaceTemplatePatchRequest'
      responses:
        '200':
          description: Executed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkspaceTemplate'
        '400':
          $ref: '#/components/responses/400BadRequest'
        '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'
    put:
      summary: Update a workspace template by ID. [Experimental]
      operationId: update_workspace_template
      description: Update a workspace template by ID.
      tags:
      - Workload templates
      parameters:
      - $ref: '#/components/parameters/TemplateId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkspaceTemplateUpdateRequest'
      responses:
        '200':
          description: Executed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkspaceTemplate'
        '400':
          $ref: '#/components/responses/400BadRequest'
        '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/workload-templates/trainings:
    post:
      summary: Create a new training template. [Experimental]
      operationId: create_training_template
      description: Create a new training template.
      tags:
      - Workload templates
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TrainingTemplateCreationRequest'
      responses:
        '202':
          description: Request completed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TrainingTemplate'
        '400':
          $ref: '#/components/responses/400BadRequest'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
    get:
      summary: List all training templates. [Experimental]
      description: List all training templates.
      operationId: list_training_templates
      tags:
      - Workload templates
      parameters:
      - $ref: '#/components/parameters/Offset'
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/SortOrder'
      - $ref: '#/components/parameters/TemplatesSort'
      - $ref: '#/components/parameters/TemplatesFilter'
      - $ref: '#/components/parameters/Search'
      - $ref: '#/components/parameters/ComplyToProject'
      responses:
        '200':
          description: Executed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TrainingTemplatesListResponse'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
  /api/v1/workload-templates/trainings/{templateId}:
    get:
      summary: Retrieve a specific training template by ID. [Experimental]
      operationId: get_training_template
      description: Retrieve a specific training template by ID.
      tags:
      - Workload templates
      parameters:
      - $ref: '#/components/parameters/TemplateId'
      responses:
        '200':
          description: Executed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TrainingTemplate'
        '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'
    delete:
      summary: Delete a training template by ID. [Experimental]
      operationId: delete_training_template
      description: Delete a training template by ID.
      tags:
      - Workload templates
      parameters:
      - $ref: '#/components/parameters/TemplateId'
      responses:
        '204':
          $ref: '#/components/responses/204NoContent'
        '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'
    patch:
      summary: Patch a training template by ID. [Experimental]
      operationId: patch_training_template
      description: Patch a training template by ID.
      tags:
      - Workload templates
      parameters:
      - $ref: '#/components/parameters/TemplateId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TrainingTemplatePatchRequest'
      responses:
        '200':
          description: Executed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TrainingTemplate'
        '400':
          $ref: '#/components/responses/400BadRequest'
        '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'
    put:
      summary: Update a training template by ID. [Experimental]
      operationId: update_training_template
      description: Update a training template by ID.
      tags:
      - Workload templates
      parameters:
      - $ref: '#/components/parameters/TemplateId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TrainingTemplateUpdateRequest'
      responses:
        '200':
          description: Executed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TrainingTemplate'
        '400':
          $ref: '#/components/responses/400BadRequest'
        '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/workload-templates/distributed:
    post:
      summary: Create a new distributed training template. [Experimental]
      operationId: create_distributed_template
      description: Create a new distributed training template.
      tags:
      - Workload templates
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DistributedTemplateCreationRequest'
      responses:
        '202':
          description: Request completed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DistributedTemplate'
        '400':
          $ref: '#/components/responses/400BadRequest'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
    get:
      summary: List all distributed training templates. [Experimental]
      description: List all distributed training templates.
      operationId: list_distributed_templates
      tags:
      - Workload templates
      parameters:
      - $ref: '#/components/parameters/Offset'
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/SortOrder'
      - $ref: '#/components/parameters/TemplatesSort'
      - $ref: '#/components/parameters/TemplatesFilter'
      - $ref: '#/components/parameters/Search'
      - $ref: '#/components/parameters/ComplyToProject'
      - $ref: '#/components/parameters/ComplyToReplicaType'
      responses:
        '200':
          description: Executed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DistributedTemplatesListResponse'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
  /api/v1/workload-templates/distributed/{templateId}:
    get:
      summary: Get a specific distributed training template by ID. [Experimental]
      operationId: get_distributed_template
      description: Get a specific distributed training template by ID.
      tags:
      - Workload templates
      parameters:
      - $ref: '#/components/parameters/TemplateId'
      responses:
        '200':
          description: Executed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DistributedTemplate'
        '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'
    delete:
      summary: Delete a distributed training template by ID. [Experimental]
      operationId: delete_distributed_template
      description: Delete a distributed training template by ID.
      tags:
      - Workload templates
      parameters:
      - $ref: '#/components/parameters/TemplateId'
      responses:
        '204':
          $ref: '#/components/responses/204NoContent'
        '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'
    patch:
      summary: Patch a distributed training template by ID. [Experimental]
      operationId: patch_distributed_template
      description: Patch a distributed training template by ID.
      tags:
      - Workload templates
      parameters:
      - $ref: '#/components/parameters/TemplateId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DistributedTemplatePatchRequest'
      responses:
        '200':
          description: Executed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DistributedTemplate'
        '400':
          $ref: '#/components/responses/400BadRequest'
        '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'
    put:
      summary: Update a distributed training template by ID. [Experimental]
      operationId: update_distributed_template
      description: Update a distributed training template by ID.
      tags:
      - Workload templates
      parameters:
      - $ref: '#/components/parameters/TemplateId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DistributedTemplateUpdateRequest'
      responses:
        '200':
          description: Executed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DistributedTemplate'
        '400':
          $ref: '#/components/responses/400BadRequest'
        '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/workload-templates/inferences:
    post:
      summary: Create a new inference template. [Experimental]
      operationId: create_inference_template
      description: Create a new inference template.
      tags:
      - Workload templates
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InferenceTemplateCreationRequest'
      responses:
        '202':
          description: Request completed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InferenceTemplate'
        '400':
          $ref: '#/components/responses/400BadRequest'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
    get:
      summary: List all inference templates. [Experimental]
      description: List all inference templates.
      operationId: list_inference_templates
      tags:
      - Workload templates
      parameters:
      - $ref: '#/components/parameters/Offset'
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/SortOrder'
      - $ref: '#/components/parameters/TemplatesSort'
      - $ref: '#/components/parameters/TemplatesFilter'
      - $ref: '#/components/parameters/Search'
      - $ref: '#/components/parameters/ComplyToProject'
      responses:
        '200':
          description: Executed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InferenceTemplatesListResponse'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
  /api/v1/workload-templates/inferences/{templateId}:
    get:
      summary: Get a specific inference template by ID. [Experimental]
      operationId: get_inference_template
      description: Get a specific inference template by ID.
      tags:
      - Workload templates
      parameters:
      - $ref: '#/components/parameters/TemplateId'
      responses:
        '200':
          description: Executed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InferenceTemplate'
        '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'
    delete:
      summary: Delete an inference template by ID. [Experimental]
      operationId: delete_inference_template
      description: Delete an inference template by ID.
      tags:
      - Workload templates
      parameters:
      - $ref: '#/components/parameters/TemplateId'
      responses:
        '204':
          $ref: '#/components/responses/204NoContent'
        '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:
    MetricThresholdField:
      properties:
        metricThreshold:
          description: The threshold to use with the specified metric for autoscaling. Mandatory if metric is specified
          type:
          - integer
          - 'null'
          format: int32
    PodAffinity:
      description: Pod affinity scheduling rules (e.g. co-locate this workload in the same node, zone, etc. as some other workloads).
      type:
      - object
      - 'null'
      properties:
        type:
          $ref: '#/components/schemas/PodAffinityType'
        key:
          description: The label key to use. (mandatory)
          type:
          - string
          - 'null'
          pattern: .*
    DistributedInferenceServingPortProtocol:
      description: The protocol used to access the port.
      type:
      - string
      - 'null'
      enum:
      - http
      default: http
    InitialReplicasField:
      properties:
        initialReplicas:
          description: The number of replicas to run when initializing the workload for the first time. Defaults to minReplicas, or to 1 if minReplicas is set to 0
          type:
          - integer
          - 'null'
          format: int32
          minimum: 0
    Capability:
      type: string
      enum:
      - AUDIT_CONTROL
      - AUDIT_READ
      - AUDIT_WRITE
      - BLOCK_SUSPEND
      - CHOWN
      - DAC_OVERRIDE
      - DAC_READ_SEARCH
      - FOWNER
      - FSETID
      - IPC_LOCK
      - IPC_OWNER
      - KILL
      - LEASE
      - LINUX_IMMUTABLE
      - MAC_ADMIN
      - MAC_OVERRIDE
      - MKNOD
      - NET_ADMIN
      - NET_BIND_SERVICE
      - NET_BROADCAST
      - NET_RAW
      - SETGID
      - SETFCAP
      - SETPCAP
      - SETUID
      - SYS_ADMIN
      - SYS_BOOT
      - SYS_CHROOT
      - SYS_MODULE
      - SYS_NICE
      - SYS_PACCT
      - SYS_PTRACE
      - SYS_RAWIO
      - SYS_RESOURCE
      - SYS_TIME
      - SYS_TTY_CONFIG
      - SYSLOG
      - WAKE_ALARM
    NodeAffinityRequired:
      type:
      - object
      - 'null'
      description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.
      properties:
        nodeSelectorTerms:
          description: A list of node selector terms. The terms are ORed.
          type: array
          items:
            $ref: '#/components/schemas/NodeSelectorTerm'
    TemplateCreationMetaFields:
      required:
      - name
      - scopeType
      properties:
        name:
          $ref: '#/components/schemas/TemplateName'
        description:
          $ref: '#/components/schemas/TemplateDescription'
        scopeType:
          $ref: '#/components/schemas/ScopeType'
        scopeId:
          $ref: '#/components/schemas/ScopeIdOptional'
    SupplementalGroups:
      description: Comma separated list of groups that the user running the container belongs to, in addition to the group indicated by runAsGid. Use only when the source uid/gid of the environment asset is not `fromTheImage`, and `overrideUidGidInWorkspace` is enabled. Using an empty string implies reverting the supplementary groups of the image.
      type:
      - string
      - 'null'
      example: 2,3,5,8
      pattern: .*
    Tolerations:
      description: Set of tolerations to apply to the workload.
      type:
      - array
      - 'null'
      items:
        $ref: '#/components/schemas/Toleration'
    InferenceTemplateSpec:
      allOf:
      - properties:
          annotations:
            $ref: '#/components/schemas/Annotations'
          args:
            $ref: '#/components/schemas/Args'
          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'
              largeShmRe

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