NVIDIA Run:ai Inferences API

Inference workloads deploy trained models into a production environment to generate predictions from live data. These workloads are prioritized over Trainings and Workspaces during scheduling. NVIDIA Run:ai Inference workloads support auto-scaling to maintain service-level agreements (SLAs) by dynamically adjusting resources as demand changes.

OpenAPI Specification

runai-inferences-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 Inferences 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: Inferences
  description: Inference workloads deploy trained models into a production environment to generate predictions from live data. These workloads are prioritized over Trainings and Workspaces during scheduling. NVIDIA Run:ai Inference workloads support auto-scaling to maintain service-level agreements (SLAs) by dynamically adjusting resources as demand changes.
paths:
  /api/v1/workloads/inferences:
    post:
      summary: Create an inference.
      operationId: create_inference1
      description: Create an inference using container related fields.
      tags:
      - Inferences
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InferenceCreationRequest'
      responses:
        '202':
          description: Request completed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Inference1'
        '400':
          $ref: '#/components/responses/400BadRequest'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
  /api/v1/workloads/inferences/{workloadId}:
    delete:
      summary: Delete an inference.
      operationId: delete_inference
      description: Delete an inference using a workload id.
      tags:
      - Inferences
      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 inference data.
      operationId: get_inference
      description: Retrieve inference details using a workload id.
      tags:
      - Inferences
      parameters:
      - $ref: '#/components/parameters/WorkloadId'
      responses:
        '200':
          description: Executed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Inference1'
        '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: Update inference spec. [Experimental]
      operationId: update_inference_spec
      description: Update the specification of an existing inference workload.
      tags:
      - Inferences
      parameters:
      - $ref: '#/components/parameters/WorkloadId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InferenceUpdateRequest'
      responses:
        '202':
          description: Executed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Inference1'
        '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/inferences/{workloadId}/metrics:
    get:
      summary: Get inference metrics data.
      description: Retrieve inference metrics data by id. Supported from control-plane version 2.18 or later.
      operationId: get_inference_workload_metrics
      tags:
      - Inferences
      parameters:
      - $ref: '#/components/parameters/WorkloadId'
      - $ref: '#/components/parameters/InferenceWorkloadMetricTypes'
      - $ref: '#/components/parameters/StartRequired'
      - $ref: '#/components/parameters/EndRequired'
      - $ref: '#/components/parameters/NumberOfSamples'
      responses:
        '200':
          description: Executed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MetricsResponse'
            text/csv: {}
        '207':
          description: Partial success.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MetricsResponse'
        '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/workloads/inferences/{workloadId}/pods/{podId}/metrics:
    get:
      summary: Get inference pod's metrics data.
      description: Retrieve inference metrics pod's data by workload and pod id. Supported from control-plane version 2.18 or later.
      operationId: get_inference_workload_pod_metrics
      tags:
      - Inferences
      parameters:
      - $ref: '#/components/parameters/WorkloadId'
      - $ref: '#/components/parameters/PodId'
      - $ref: '#/components/parameters/InferencePodMetricTypes'
      - $ref: '#/components/parameters/StartRequired'
      - $ref: '#/components/parameters/EndRequired'
      - $ref: '#/components/parameters/NumberOfSamples'
      responses:
        '200':
          description: Executed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MetricsResponse'
            text/csv: {}
        '207':
          description: Partial success.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MetricsResponse'
        '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'
components:
  schemas:
    Category:
      description: Specify the workload category assigned to the workload. Categories are used to classify and monitor different types of workloads within the NVIDIA Run:ai platform.
      type: string
      nullable: true
      pattern: .*
    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
    AutoScalingMetricField:
      properties:
        metric:
          $ref: '#/components/schemas/AutoScalingMetric'
    Probe:
      type: object
      properties:
        initialDelaySeconds:
          description: Number of seconds after the container has started before liveness or readiness probes are initiated.
          type: integer
          format: int32
          minimum: 0
          nullable: true
        periodSeconds:
          description: How often (in seconds) to perform the probe.
          type: integer
          format: int32
          minimum: 1
          nullable: true
        timeoutSeconds:
          description: Number of seconds after which the probe times out.
          type: integer
          format: int32
          minimum: 1
          nullable: true
        successThreshold:
          description: Minimum consecutive successes for the probe to be considered successful after having failed.
          type: integer
          format: int32
          minimum: 1
          nullable: true
        failureThreshold:
          description: When a probe fails, the number of times to try before giving up.
          type: integer
          format: int32
          minimum: 1
          nullable: true
        handler:
          $ref: '#/components/schemas/ProbeHandler'
      nullable: true
    ExposedUrl:
      description: A URL for accessing the workload.
      properties:
        container:
          description: The port that the container running the workload exposes. (mandatory)
          type: integer
          format: int32
          example: 8080
          nullable: true
        url:
          description: The URL for connecting to the container port. If not specified, the URL will be auto-generated by the system..
          type: string
          pattern: .*
          example: https://my-url.com
          nullable: true
        authorizationType:
          $ref: '#/components/schemas/AuthorizationType'
        authorizedUsers:
          description: List of users or service accounts that are allowed to access the URL. Note that authorizedUsers and authorizedGroups are mutually exclusive.
          type: array
          items:
            type: string
            pattern: .*
          example:
          - user-a
          - user-b
          nullable: true
        authorizedGroups:
          description: List of groups that are allowed to access the URL. Note that authorizedUsers and authorizedGroups are mutually exclusive.
          type: array
          items:
            type: string
            pattern: .*
          example:
          - group-a
          - group-b
          nullable: true
        toolType:
          description: The tool type that runs on this container port.
          type: string
          example: jupyter
          nullable: true
          pattern: .*
        toolName:
          description: A name describing the tool that runs on this url.
          type: string
          example: my-pytorch
          nullable: true
          pattern: .*
        name:
          description: Unique name to identify the instance. primarily used for policy locked rules.
          type: string
          minLength: 1
          example: url-instance-a
          nullable: true
          pattern: .*
        exclude:
          description: Use 'true' in case the instance is defined in defaults of the policy, and you wish to exclude it from the workload.
          type: boolean
          example: false
          nullable: true
      nullable: true
      type: object
    WorkloadId2:
      description: A unique ID of the workload.
      type: string
      format: uuid
    NodeAffinityRequired:
      type: object
      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'
      nullable: true
    UidGidSource:
      description: Indicate the way to determine the user and group ids of the container. The options are a. `fromTheImage` - user and group ids are determined by the docker image that the container runs. this is the default option. b. `custom` - user and group ids can be specified in the environment asset and/or the workload creation request. c. `idpToken` - user and group IDs are automatically taken from the identity provider (IdP) token (available only in SSO-enabled installations). For more information, see [User Identity](https://docs.run.ai/latest/admin/runai-setup/config/non-root-containers/).
      type: string
      enum:
      - fromTheImage
      - fromIdpToken
      - custom
      nullable: true
    SecretInstance2:
      allOf:
      - $ref: '#/components/schemas/StorageInstanceName'
      - $ref: '#/components/schemas/Secret5'
      - $ref: '#/components/schemas/ExcludeField'
      nullable: true
      type: object
    Labels:
      description: Set of labels to populate into the container running the workload.
      type: array
      items:
        $ref: '#/components/schemas/Label'
      nullable: true
    InitializationTimeoutField:
      properties:
        initializationTimeoutSeconds:
          description: Use `servingConfiguration.initializationTimeoutSeconds` instead.  If this field is set, it will be ignored and the value under `servingConfiguration` will be used. The maximum amount of time (in seconds) to wait for the container to become ready.
          type: integer
          format: int32
          minimum: 1
          nullable: true
          deprecated: true
    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
    MetricThresholdField:
      properties:
        metricThreshold:
          description: The threshold to use with the specified metric for autoscaling. Mandatory if metric is specified
          type: integer
          format: int32
          nullable: true
    ExcludeField:
      properties:
        exclude:
          description: Use 'true' in case the item is defined in defaults of the policy, and you wish to exclude it from the workload.
          type: boolean
          default: false
          example: false
          nullable: true
      type: object
      nullable: true
    InferenceSpecSpec:
      allOf:
      - properties:
          annotations:
            $ref: '#/components/schemas/Annotations'
          args:
            $ref: '#/components/schemas/Args'
          category:
            $ref: '#/components/schemas/Category'
          command:
            $ref: '#/components/schemas/Command'
          compute:
            nullable: true
            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
          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'
          security:
            nullable: true
            properties:
              capabilities:
                $ref: '#/components/schemas/Capabilities'
              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
          servingPort:
            $ref: '#/components/schemas/ServingPort'
          storage:
            nullable: true
            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'
              secretVolume:
                $ref: '#/components/schemas/SecretItems1'
            type: object
          tolerations:
            $ref: '#/components/schemas/Tolerations'
          workingDir:
            $ref: '#/components/schemas/WorkingDir'
        type: object
      - $ref: '#/components/schemas/InferenceFields'
    CpuMemoryLimit:
      description: Limitations on the CPU memory to allocate for this workload (1G, 20M, .etc). The system guarantees that this workload will not be able to consume more than this amount of memory. The workload will receive an error when trying to allocate more memory than this limit.
      type: string
      pattern: ^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$
      example: 30M
      nullable: true
    GitInstance:
      allOf:
      - $ref: '#/components/schemas/StorageInstanceName'
      - $ref: '#/components/schemas/GitCommon'
      - $ref: '#/components/schemas/GitPassword'
      - $ref: '#/components/schemas/ExcludeField'
      - type: object
        properties:
          secretRef:
            $ref: '#/components/schemas/GitSecretRef'
        nullable: true
      nullable: true
      type: object
    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'
    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
    Ports:
      description: Set of container ports that the workload exposes.
      type: array
      items:
        $ref: '#/components/schemas/Port'
      nullable: true
    InferenceFields:
      allOf:
      - $ref: '#/components/schemas/AutoScalingField'
      - $ref: '#/components/schemas/ServingConfigurationField'
      nullable: true
      type: object
    InferenceUpdateSpec:
      description: The specifications of the inference to be updated.
      properties:
        spec:
          allOf:
          - nullable: true
            properties:
              args:
                $ref: '#/components/schemas/Args'
              category:
                $ref: '#/components/schemas/Category'
              command:
                $ref: '#/components/schemas/Command'
              compute:
                nullable: true
                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
              createHomeDir:
                $ref: '#/components/schemas/CreateHomeDir'
              environmentVariables:
                $ref: '#/components/schemas/EnvironmentVariables'
              image:
                $ref: '#/components/schemas/Image'
              imagePullPolicy:
                $ref: '#/components/schemas/ImagePullPolicy'
              imagePullSecrets:
                $ref: '#/components/schemas/ImagePullSecrets'
              nodeAffinityRequired:
                $ref: '#/components/schemas/NodeAffinityRequired'
              nodePools:
                $ref: '#/components/schemas/NodePools'
              nodeType:
                $ref: '#/components/schemas/NodeType3'
              podAffinity:
                $ref: '#/components/schemas/PodAffinity'
              preemptibility:
                $ref: '#/components/schemas/Preemptibility'
              priorityClass:
                $ref: '#/components/schemas/PriorityClass'
              probes:
                $ref: '#/components/schemas/Probes'
              workingDir:
                $ref: '#/components/schemas/WorkingDir'
            type: object
          - $ref: '#/components/schemas/InferenceUpdateSpecAutoscaling'
          - $ref: '#/components/schemas/InferenceUpdateSpecServingConfiguration'
    Toleration:
      description: Toleration details.
      properties:
        name:
          description: The name of the toleration.
          type: string
          minLength: 1
          nullable: true
          pattern: .*
        operator:
          $ref: '#/components/schemas/TolerationOperator'
        key:
          description: The taint key that the toleration applies to. (mandatory)
          type: string
          nullable: true
          pattern: .*
        value:
          description: The taint value the toleration matches to. Mandatory if operator is Exists, forbidden otherwise.
          type: string
          nullable: true
          pattern: .*
        effect:
          $ref: '#/components/schemas/TolerationEffect'
        seconds:
          description: The period of time the toleration tolerates the taint. Valid only if effect is NoExecute. taint.
          type: integer
          minimum: 1
          nullable: true
        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
          example: false
          nullable: true
      nullable: true
      type: object
    ClusterId:
      description: The id of the cluster.
      type: string
      format: uuid
      example: 71f69d83-ba66-4822-adf5-55ce55efd210
    SecretFieldsNonUpdatable:
      properties:
        secret:
          description: The name of the Secret resource. (mandatory)
          type: string
          minLength: 1
          nullable: true
      nullable: true
      type: object
    Pvc:
      allOf:
      - $ref: '#/components/schemas/PvcFieldsUpdatable'
      - $ref: '#/components/schemas/PvcFieldsNonUpdatable'
    GpuMemoryRequest:
      description: Required if and only if gpuRequestType is memory. States the GPU memory to allocate for the created workload, per GPU device. Note that the workload will not be scheduled unless the system can guarantee this amount of GPU memory to the workload.
      type: string
      pattern: ^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$
      example: 10M
      nullable: true
    Capabilities:
      description: Add POSIX capabilities to running containers. Defaults to the default set of capabilities granted by the container runtime.
      type: array
      items:
        $ref: '#/components/schemas/Capability'
      example:
      - CHOWN
      - KILL
      nullable: true
    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
    InferencesMaxReplicasField:
      properties:
        maxReplicas:
          description: The maximum number of replicas for autoscaling. Defaults to minReplicas, or to 1 if minReplicas is set to 0
          type: integer
          format: int32
          minimum: 1
          nullable: true
    SecretFieldsUpdatable:
      properties:
        mountPath:
          description: Local path within the workload to which the Secret will be mapped to. (mandatory)
          type: string
          minLength: 1
          nullable: true
        defaultMode:
          $ref: '#/components/schemas/DefaultMode'
      nullable: true
      type: object
    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
          minLength: 1
          example: HOME
          nullable: true
          pattern: .*
        value:
          description: The value of the environment variable. (mutually exclusive with secret, userCredential, configMap and podFieldRef)
          type: string
          example: /home/my-folder
          nullable: true
          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
          example: false
          nullable: true
        description:
          description: Description of the environment variable.
          type: string
          example: Home directory of the user.
          nullable: true
          pattern: .*
      nullable: true
      type: object
    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
      example: false
      nullable: true
    EnvironmentVariableSecret:
      description: Details of the secret and key use to populate the environment variable
      properties:
        name:
          description: The name of the secret resource. (mandatory)
          type: string
          minLength: 1
          example: postgress_secret
          nullable: true
          pattern: ^[a-z0-9]([a-z0-9-]*[a-z0-9])?$
        key:
          description: The key in the secret resource. (mandatory)
          type: string
          minLength: 1
          example: POSTGRES_PASSWORD
          nullable: true
          pattern: .*
      nullable: true
 

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