NVIDIA Run:ai Trainings API

Trainings are dedicated workloads that are specifically used for training models. They are by design preemptible workloads because they are used in unattended sessions where the scientists and researchers do not need to be present. These workloads are allowed to utilize resources over the project's quota.

Operations 5

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

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-trainings-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-trainings-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 Trainings 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: Trainings
  description: "Trainings are dedicated workloads that are specifically used for training models. \nThey are by design preemptible workloads because they are used in unattended sessions where the  \nscientists and researchers do not need to be present. These workloads are allowed to utilize \nresources over the project's quota.      \n"
paths:
  /api/v1/workloads/trainings:
    post:
      summary: Create a training.
      operationId: create_training1
      description: Create a training workload using container related fields.
      tags:
      - Trainings
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TrainingCreationRequest'
      responses:
        '202':
          description: Request completed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Training1'
        '400':
          $ref: '#/components/responses/400SubmissionErrorV2'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
  /api/v1/workloads/trainings/{workloadId}:
    delete:
      summary: Delete a training.
      operationId: delete_training
      description: Delete a training using a workload id.
      tags:
      - Trainings
      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 training data.
      operationId: get_training
      description: Retrieve training details using a workload id.
      tags:
      - Trainings
      parameters:
      - $ref: '#/components/parameters/WorkloadId'
      responses:
        '200':
          description: Executed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Training1'
        '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/trainings/{workloadId}/suspend:
    post:
      summary: Suspend a training.
      operationId: suspend_training
      description: Suspend a training from running using a workload id.
      tags:
      - Trainings
      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/trainings/{workloadId}/resume:
    post:
      summary: Resume a training.
      operationId: resume_training
      description: Resume a training that was suspended using a workload id.
      tags:
      - Trainings
      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'
    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'
    Parallelism:
      description: Used with Hyperparameter Optimization. Specifies the maximum number of pods the workload should run at any given time (applicable to standard training only).
      type:
      - integer
      - 'null'
      format: int32
      example: 1
    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
    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: .*
    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'
    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'
    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.

        '
    TrainingSpec:
      description: The specifications of the training to be created.
      properties:
        spec:
          $ref: '#/components/schemas/TrainingSpecSpec'
    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-containers/
      type:
      - boolean
      - 'null'
      example: false
    Completions:
      description: Used with Hyperparameter Optimization. Specifies the number of successful pods the job should reach to be completed. The Job will be marked as successful once the specified amount of pods has been reached (applicable to standard training only).
      type:
      - integer
      - 'null'
      format: int32
      example: 1
    Probe:
      type:
      - object
      - 'null'
      properties:
        initialDelaySeconds:
          description: Number of seconds after the container has started before liveness or readiness probes are initiated.
          type:
          - integer
          - 'null'
          format: int32
          minimum: 0
        periodSeconds:
          description: How often (in seconds) to perform the probe.
          type:
          - integer
          - 'null'
          format: int32
          minimum: 1
        timeoutSeconds:
          description: Number of seconds after which the probe times out.
          type:
          - integer
          - 'null'
          format: int32
          minimum: 1
        successThreshold:
          description: Minimum consecutive successes for the probe to be considered successful after having failed.
          type:
          - integer
          - 'null'
          format: int32
          minimum: 1
        failureThreshold:
          description: When a probe fails, the number of times to try before giving up.
          type:
          - integer
          - 'null'
          format: int32
          minimum: 1
        handler:
          $ref: '#/components/schemas/ProbeHandler'
    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: .*
    CreateHomeDir:
      description: When set to `true`, creates a home directory for the container.
      type:
      - boolean
      - 'null'
    Port:
      description: A port for accessing the workload.
      properties:
        container:
          description: The port that the container running the workload exposes. (mandatory)
          type:
          - integer
          - 'null'
          format: int32
          minimum: 1
          maximum: 65535
          example: 8080
        serviceType:
          $ref: '#/components/schemas/PortServiceType'
        external:
          description: The external port which allows a connection to the container port. If not specified, the port will be auto-generated by the system..
          type:
          - integer
          - 'null'
          format: int32
          example: 30080
        toolType:
          description: The tool type that runs on this port.
          type:
          - string
          - 'null'
          example: pytorch
          pattern: .*
        toolName:
          description: A name describing the tool that runs on this port.
          type:
          - string
          - 'null'
          example: my-pytorch
          pattern: .*
        name:
          description: Unique name to identify the instance. primarily used for policy locked rules.
          type:
          - string
          - 'null'
          minLength: 1
          example: port-instance-a
          pattern: .*
        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
          - 'null'
          default: false
          example: false
      type:
      - object
      - 'null'
    ProjectId:
      description: The id of the project.
      type: string
      example: 1
      pattern: .*
    DataVolumeInstance:
      allOf:
      - $ref: '#/components/schemas/DataVolume'
      - $ref: '#/components/schemas/ExcludeField'
      type:
      - object
      - 'null'
    AutoDeletionTimeAfterPreemption:
      description: Specifies the duration after which a finished workload (completed or failed) will be automatically deleted. The default is 30 days. Log retention is managed separately.
      format: int64
      type:
      - integer
      - 'null'
      example: 15
    Tolerations:
      description: Set of tolerations to apply to the workload.
      type:
      - array
      - 'null'
      items:
        $ref: '#/components/schemas/Toleration'
    ExtendedResource:
      description: Quantity of an extended resource.
      properties:
        resource:
          description: The name of the extended resource (mandatory)
          type:
          - string
          - 'null'
          example: hardware-vendor.example/foo
          minLength: 1
          pattern: .*
        quantity:
          description: The requested quantity for the resource.
          type:
          - string
          - 'null'
          example: 2
          minLength: 1
          pattern: ^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$
        exclude:
          description: Use 'true' in case the extended resource is defined in defaults of the policy, and you wish to exclude it from the workload.
          type:
          - boolean
          - 'null'
          example: false
      type:
      - object
      - 'null'
    Nfs:
      properties:
        path:
          description: Path that is exported by the NFS server (mandatory). For more information, see [NFS](https://kubernetes.io/docs/concepts/storage/volumes#nfs).
          type:
          - string
          - 'null'
          minLength: 1
          example: /container/nfs
          pattern: .*
      

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