> For the complete documentation index, see [llms.txt](https://run-ai-docs.nvidia.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://run-ai-docs.nvidia.com/api/2.26/policies/policy.md).

# Policy

Policies allow administrators to impose restrictions and set default values for researcher workloads. Restrictions and default values can be placed on CPUs, GPUs, and other resources or entities. For more information, see [Policies](https://run-ai-docs.nvidia.com/self-hosted/2.26/platform-management/policies/#introduction).

## List policies

> Retrieve a list of all the applied policies.

```json
{"openapi":"3.0.3","info":{"title":"NVIDIA Run:ai","version":"2.26"},"tags":[{"name":"Policy","description":"Policies allow administrators to impose restrictions and set default values for researcher workloads. \nRestrictions and default values can be placed on CPUs, GPUs, and other resources or entities. \nFor more information, see [Policies](https://run-ai-docs.nvidia.com/self-hosted/2.26/platform-management/policies/#introduction).\n"}],"servers":[{"url":"https://app.run.ai"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer authentication"}},"parameters":{"WorkloadType":{"name":"workloadType","in":"query","required":false,"description":"Policy for a specific workload type.","schema":{"type":"string","minLength":1,"enum":["Workspace","Training","Distributed","Inference","DistributedInference"]}},"FilterByDepartment":{"name":"departmentId","in":"query","description":"Filter using the department id.","required":false,"schema":{"type":"string"}},"FilterByProject":{"name":"projectId","in":"query","description":"project id to filter by","required":false,"schema":{"type":"string"}},"FilterByCluster":{"name":"clusterId","in":"query","description":"Filter using the Universally Unique Identifier (UUID) of the cluster.","required":false,"schema":{"type":"string","format":"uuid"}},"IncludeFallbackPolicies":{"name":"includeFallbackPolicies","in":"query","required":false,"description":"whether to include fallback policies in the list. Default to false.","schema":{"type":"boolean"}}},"schemas":{"PolicyListResponse":{"properties":{"policies":{"type":"array","items":{"$ref":"#/components/schemas/PolicyListEntry"}}}},"PolicyListEntry":{"properties":{"type":{"$ref":"#/components/schemas/PolicyType"},"meta":{"$ref":"#/components/schemas/PolicyMeta"},"status":{"allOf":[{"$ref":"#/components/schemas/PolicySyncStatus"},{"$ref":"#/components/schemas/PolicyValidationStatus"}]}},"nullable":true,"type":"object"},"PolicyType":{"description":"The type of policy which determines the kind of workloads it is affecting","type":"string","enum":["workspace","training","distributed","inference","distributedInference","nimService","fallback"]},"PolicyMeta":{"allOf":[{"$ref":"#/components/schemas/PolicyReadOnlyFields"},{"$ref":"#/components/schemas/PolicyCreationFields"}]},"PolicyReadOnlyFields":{"required":["id","createdBy","createdAt","updatedBy","updatedAt"],"properties":{"id":{"$ref":"#/components/schemas/PolicyId"},"tenantId":{"$ref":"#/components/schemas/TenantId"},"clusterId":{"$ref":"#/components/schemas/ClusterIdOptional"},"createdBy":{"description":"The user who created the policy.","type":"string","minLength":1},"createdAt":{"description":"The time at which the policy wes created","type":"string","minLength":1,"format":"date-time"},"updatedBy":{"description":"The user who updated the policy.","type":"string","minLength":1},"updatedAt":{"description":"The time at which the policy has been updated","type":"string","minLength":1,"format":"date-time"}}},"PolicyId":{"description":"The unique id of the policy.","type":"string","minLength":1,"format":"uuid"},"TenantId":{"description":"The id of the tenant.","type":"integer","format":"int32"},"ClusterIdOptional":{"description":"The id of the cluster.","type":"string","format":"uuid","minLength":1,"nullable":true},"PolicyCreationFields":{"required":["name","scope"],"properties":{"scope":{"$ref":"#/components/schemas/ScopeType"},"projectId":{"$ref":"#/components/schemas/ProjectIdOptional"},"departmentId":{"$ref":"#/components/schemas/DepartmentIdOptional"},"clusterId":{"$ref":"#/components/schemas/ClusterIdOptional"},"name":{"$ref":"#/components/schemas/PolicyName"}}},"ScopeType":{"type":"string","enum":["system","tenant","cluster","department","project"]},"ProjectIdOptional":{"description":"The id of the project.","type":"integer","format":"int32","nullable":true},"DepartmentIdOptional":{"description":"The id of the department.","type":"string","minLength":1,"nullable":true,"pattern":".*"},"PolicyName":{"description":"A chosen name for the policy.","type":"string","minLength":1,"pattern":".*"},"PolicySyncStatus":{"properties":{"clusters":{"type":"array","items":{"$ref":"#/components/schemas/PolicySyncStatusOfCluster"}}}},"PolicySyncStatusOfCluster":{"required":["clusterId","status"],"properties":{"clusterId":{"$ref":"#/components/schemas/ClusterId"},"status":{"description":"Policy sync status of the cluster","type":"string","enum":["Not ready","Applying","Failed","Ready","Pending deletion","Deleting","Deleted","Deletion failed"]},"errorMessage":{"description":"In case sync failed, holds the error message received from the cluster","type":"string","nullable":true}},"type":"object"},"ClusterId":{"description":"The id of the cluster.","type":"string","format":"uuid"},"PolicyValidationStatus":{"properties":{"validation":{"properties":{"errorMessage":{"pattern":".*","type":"string","description":"In case validation failed, holds the error message explaining the issue"}},"nullable":true,"type":"object"}},"nullable":true,"type":"object"},"Error":{"required":["code","message"],"properties":{"code":{"type":"integer","minimum":100,"maximum":599},"message":{"type":"string"},"details":{"type":"string"}}}},"responses":{"401Unauthorized":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403Forbidden":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503ServiceUnavailable":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/api/v2/policy":{"get":{"summary":"List policies","description":"Retrieve a list of all the applied policies.","operationId":"list_policies","tags":["Policy"],"parameters":[{"$ref":"#/components/parameters/WorkloadType"},{"name":"scope","in":"query","required":false,"description":"filter by this scope.","schema":{"type":"string","enum":["tenant","cluster","department","project"]}},{"$ref":"#/components/parameters/FilterByDepartment"},{"$ref":"#/components/parameters/FilterByProject"},{"$ref":"#/components/parameters/FilterByCluster"},{"$ref":"#/components/parameters/IncludeFallbackPolicies"}],"responses":{"200":{"description":"Request completed successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolicyListResponse"}}}},"401":{"$ref":"#/components/responses/401Unauthorized"},"403":{"$ref":"#/components/responses/403Forbidden"},"503":{"$ref":"#/components/responses/503ServiceUnavailable"}}}}}}
```

## Get a training policy.

> Retrieve the details of a training policy for a given organizational unit.

```json
{"openapi":"3.0.3","info":{"title":"NVIDIA Run:ai","version":"2.26"},"tags":[{"name":"Policy","description":"Policies allow administrators to impose restrictions and set default values for researcher workloads. \nRestrictions and default values can be placed on CPUs, GPUs, and other resources or entities. \nFor more information, see [Policies](https://run-ai-docs.nvidia.com/self-hosted/2.26/platform-management/policies/#introduction).\n"}],"servers":[{"url":"https://app.run.ai"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer authentication"}},"parameters":{"PolicyScope":{"name":"scope","in":"query","required":true,"description":"The scope that the policy relates to.","schema":{"type":"string","enum":["tenant","cluster","department","project"]}},"FilterByDepartment":{"name":"departmentId","in":"query","description":"Filter using the department id.","required":false,"schema":{"type":"string"}},"FilterByProject":{"name":"projectId","in":"query","description":"project id to filter by","required":false,"schema":{"type":"string"}},"FilterByCluster":{"name":"clusterId","in":"query","description":"Filter using the Universally Unique Identifier (UUID) of the cluster.","required":false,"schema":{"type":"string","format":"uuid"}}},"schemas":{"TrainingPolicyV2":{"properties":{"meta":{"$ref":"#/components/schemas/PolicyMeta"},"policy":{"$ref":"#/components/schemas/TrainingPolicyDefaultsAndRulesV2"},"effective":{"$ref":"#/components/schemas/TrainingPolicyDefaultsAndRulesV2"},"effectiveUpdatedAt":{"$ref":"#/components/schemas/Timestamp"}},"nullable":true,"type":"object"},"PolicyMeta":{"allOf":[{"$ref":"#/components/schemas/PolicyReadOnlyFields"},{"$ref":"#/components/schemas/PolicyCreationFields"}]},"PolicyReadOnlyFields":{"required":["id","createdBy","createdAt","updatedBy","updatedAt"],"properties":{"id":{"$ref":"#/components/schemas/PolicyId"},"tenantId":{"$ref":"#/components/schemas/TenantId"},"clusterId":{"$ref":"#/components/schemas/ClusterIdOptional"},"createdBy":{"description":"The user who created the policy.","type":"string","minLength":1},"createdAt":{"description":"The time at which the policy wes created","type":"string","minLength":1,"format":"date-time"},"updatedBy":{"description":"The user who updated the policy.","type":"string","minLength":1},"updatedAt":{"description":"The time at which the policy has been updated","type":"string","minLength":1,"format":"date-time"}}},"PolicyId":{"description":"The unique id of the policy.","type":"string","minLength":1,"format":"uuid"},"TenantId":{"description":"The id of the tenant.","type":"integer","format":"int32"},"ClusterIdOptional":{"description":"The id of the cluster.","type":"string","format":"uuid","minLength":1,"nullable":true},"PolicyCreationFields":{"required":["name","scope"],"properties":{"scope":{"$ref":"#/components/schemas/ScopeType"},"projectId":{"$ref":"#/components/schemas/ProjectIdOptional"},"departmentId":{"$ref":"#/components/schemas/DepartmentIdOptional"},"clusterId":{"$ref":"#/components/schemas/ClusterIdOptional"},"name":{"$ref":"#/components/schemas/PolicyName"}}},"ScopeType":{"type":"string","enum":["system","tenant","cluster","department","project"]},"ProjectIdOptional":{"description":"The id of the project.","type":"integer","format":"int32","nullable":true},"DepartmentIdOptional":{"description":"The id of the department.","type":"string","minLength":1,"nullable":true,"pattern":".*"},"PolicyName":{"description":"A chosen name for the policy.","type":"string","minLength":1,"pattern":".*"},"TrainingPolicyDefaultsAndRulesV2":{"properties":{"defaults":{"allOf":[{"$ref":"#/components/schemas/TrainingPolicyDefaultsV2"}],"nullable":true,"type":"object"},"rules":{"allOf":[{"$ref":"#/components/schemas/TrainingPolicyRulesV2"}],"nullable":true,"type":"object"},"imposedAssets":{"$ref":"#/components/schemas/ImposedAssets"},"status":{"$ref":"#/components/schemas/PolicyValidationStatus"}},"nullable":true,"type":"object"},"TrainingPolicyDefaultsV2":{"allOf":[{"nullable":true,"properties":{"annotations":{"$ref":"#/components/schemas/AnnotationsDefaults"},"args":{"$ref":"#/components/schemas/Args"},"autoDeletionTimeAfterCompletionSeconds":{"$ref":"#/components/schemas/AutoDeletionTimeAfterPreemption"},"backoffLimit":{"$ref":"#/components/schemas/BackoffLimit"},"category":{"$ref":"#/components/schemas/Category"},"command":{"$ref":"#/components/schemas/Command"},"completions":{"$ref":"#/components/schemas/Completions"},"compute":{"$ref":"#/components/schemas/SupersetDefaultsAllOfCompute"},"createHomeDir":{"$ref":"#/components/schemas/CreateHomeDir"},"environmentVariables":{"$ref":"#/components/schemas/EnvironmentVariablesDefaults"},"exposedUrls":{"$ref":"#/components/schemas/ExposedUrlsDefaults"},"image":{"$ref":"#/components/schemas/Image"},"imagePullPolicy":{"$ref":"#/components/schemas/ImagePullPolicy"},"imagePullSecrets":{"$ref":"#/components/schemas/ImagePullSecretsDefaults"},"labels":{"$ref":"#/components/schemas/LabelsDefaults"},"nodeAffinityRequired":{"$ref":"#/components/schemas/NodeAffinityRequired"},"nodePools":{"$ref":"#/components/schemas/NodePools"},"nodeType":{"$ref":"#/components/schemas/NodeType2"},"parallelism":{"$ref":"#/components/schemas/Parallelism"},"podAffinity":{"$ref":"#/components/schemas/PodAffinity"},"ports":{"$ref":"#/components/schemas/PortsDefaults"},"preemptibility":{"$ref":"#/components/schemas/Preemptibility"},"priorityClass":{"$ref":"#/components/schemas/PriorityClass"},"probes":{"$ref":"#/components/schemas/Probes"},"relatedUrls":{"$ref":"#/components/schemas/RelatedUrlsDefaults"},"restartPolicy":{"$ref":"#/components/schemas/RestartPolicy"},"security":{"$ref":"#/components/schemas/SupersetDefaultsAllOfSecurity"},"stdin":{"$ref":"#/components/schemas/Stdin"},"storage":{"nullable":true,"properties":{"configMapVolume":{"$ref":"#/components/schemas/ConfigMapsDefaults"},"dataVolume":{"$ref":"#/components/schemas/DataVolumesDefaults"},"emptyDirVolume":{"$ref":"#/components/schemas/EmptyDirsDefaults"},"git":{"$ref":"#/components/schemas/GitsDefaults"},"hostPath":{"$ref":"#/components/schemas/HostPathsDefaults"},"nfs":{"$ref":"#/components/schemas/NfssDefaults"},"pvc":{"$ref":"#/components/schemas/PvcsDefaults"},"s3":{"$ref":"#/components/schemas/S3sDefaults"},"secretVolume":{"$ref":"#/components/schemas/SecretsDefaults"}},"type":"object"},"terminateAfterPreemption":{"$ref":"#/components/schemas/TerminateAfterPreemption"},"terminationGracePeriodSeconds":{"$ref":"#/components/schemas/TerminationGracePeriod"},"tolerations":{"$ref":"#/components/schemas/TolerationsDefaults"},"tty":{"$ref":"#/components/schemas/Tty"},"workingDir":{"$ref":"#/components/schemas/WorkingDir"}},"type":"object"}]},"AnnotationsDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/Annotations"}},"nullable":true,"type":"object"},"Annotations":{"description":"Set of annotations to populate into the container running the workload.","type":"array","items":{"$ref":"#/components/schemas/Annotation"},"maxItems":1000,"nullable":true},"Annotation":{"description":"Annotation details to be populated into the container.","properties":{"name":{"description":"The name of the annotation (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":".*"},"value":{"description":"The value of the annotation.","type":"string","maxLength":10000,"nullable":true,"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","default":false,"nullable":true}},"nullable":true,"type":"object"},"Args":{"description":"Arguments to the command that the container running the workload executes.","type":"string","minLength":1,"maxLength":10000,"nullable":true,"pattern":".*"},"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","nullable":true},"BackoffLimit":{"description":"Specifies the number of retries before marking a workload as failed (not applicable to Inference workloads). The default value is 6.","format":"int64","type":"integer","nullable":true},"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":".*"},"Command":{"description":"A command to the server as the entry point of the container running the workload.","type":"string","minLength":1,"maxLength":10000,"nullable":true,"pattern":".*"},"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","format":"int32","nullable":true},"SupersetDefaultsAllOfCompute":{"title":"SupersetDefaultsAllOfCompute","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/ExtendedResourcesDefaults"},"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"},"CpuCoreLimit":{"description":"Limitations on the number of CPUs consumed by the workload (0.5, 1, .etc). The system guarantees that this workload will not be able to consume more than this amount of CPUs.","format":"double","type":"number","nullable":true,"minimum":0},"CpuCoreRequest":{"description":"CPU units to allocate for the created workload (0.5, 1, .etc). The workload will receive at least this amount of CPU. Note that the workload will not be scheduled unless the system can guarantee this amount of CPUs to the workload.","format":"double","type":"number","nullable":true,"minimum":0},"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]*)$","maxLength":63,"nullable":true},"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","pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$","maxLength":63,"nullable":true},"ExtendedResourcesDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/ExtendedResource"},"instances":{"$ref":"#/components/schemas/ExtendedResources"}},"nullable":true,"type":"object"},"ExtendedResource":{"description":"Quantity of an extended resource.","properties":{"resource":{"description":"The name of the extended resource (mandatory)","type":"string","minLength":1,"maxLength":253,"nullable":true,"pattern":".*"},"quantity":{"description":"The requested quantity for the resource.","type":"string","minLength":1,"maxLength":63,"nullable":true,"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","nullable":true}},"nullable":true,"type":"object"},"ExtendedResources":{"description":"Extended resources and their quantity.","type":"array","items":{"$ref":"#/components/schemas/ExtendedResource"},"maxItems":1000,"nullable":true},"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","format":"int32","nullable":true,"minimum":0},"GpuMemoryLimit":{"description":"Limitation on the memory consumed by the workload, per GPU device. The system guarantees The gpuMemoryLimit must be no less than gpuMemoryRequest.","type":"string","pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$","maxLength":63,"nullable":true},"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]*)$","maxLength":63,"nullable":true},"GpuPortionLimit":{"description":"Limitations on the portion consumed by the workload, per GPU device. The system guarantees The gpuPotionLimit must be no less than the gpuPortionRequest.","type":"number","format":"double","nullable":true,"minimum":0},"GpuPortionRequest":{"description":"Required if and only if gpuRequestType is portion. States the portion of the GPU to allocate for the created workload, per GPU device, between 0 and 1. The default is no allocated GPUs.","type":"number","format":"double","nullable":true,"minimum":0},"GpuRequestType":{"description":"Sets the unit type for GPU resources requests. Stated in terms of portion or memory. Sets the unit type for other GPU request fields. If `gpuDevicesRequest > 1`, only `portion` is supported. If `gpuDeviceRequest = 1`, the request type can be stated as `portion` or `memory`.","type":"string","minLength":1,"enum":["portion","memory"],"nullable":true},"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","nullable":true},"CreateHomeDir":{"description":"When set to `true`, creates a home directory for the container.","type":"boolean","nullable":true},"EnvironmentVariablesDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/EnvironmentVariables"}},"nullable":true,"type":"object"},"EnvironmentVariables":{"description":"Set of environment variables to populate into the container running the workload.","type":"array","items":{"$ref":"#/components/schemas/EnvironmentVariable"},"maxItems":1000,"nullable":true},"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,"maxLength":63,"nullable":true,"pattern":".*"},"value":{"description":"The value of the environment variable. (mutually exclusive with secret, userCredential, configMap and podFieldRef)","type":"string","maxLength":10000,"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","nullable":true},"description":{"description":"Description of the environment variable.","type":"string","maxLength":250,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"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,"maxLength":253,"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,"maxLength":63,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"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","minLength":1,"maxLength":253,"nullable":true,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$"},"key":{"description":"The key in the config-map resource. (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"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","minLength":1,"maxLength":10000,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"EnvironmentVariableUserCredential":{"description":"Defines a reference to a user-created credential and a specific key within that credential whose value will populate the environment variable. User credentials can only be accessed by the user who created them.","properties":{"name":{"description":"The name of the user credential.  (mandatory)","type":"string","minLength":1,"maxLength":253,"nullable":true},"key":{"description":"The key in the user credential resource. (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true}},"nullable":true,"type":"object"},"ExposedUrlsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/ExposedUrl"},"instances":{"$ref":"#/components/schemas/ExposedUrls"}},"nullable":true,"type":"object"},"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","nullable":true},"url":{"$ref":"#/components/schemas/Url"},"authorizationType":{"$ref":"#/components/schemas/AuthorizationType"},"authorizedUsers":{"$ref":"#/components/schemas/AuthorizedUsers"},"authorizedGroups":{"$ref":"#/components/schemas/AuthorizedGroups"},"toolType":{"description":"The tool type that runs on this container port.","type":"string","nullable":true,"pattern":".*"},"toolName":{"description":"A name describing the tool that runs on this url.","type":"string","nullable":true,"pattern":".*","maxLength":253},"name":{"description":"Unique name to identify the instance. primarily used for policy locked rules.","type":"string","minLength":1,"maxLength":253,"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","nullable":true}},"nullable":true,"type":"object"},"Url":{"description":"The URL for connecting to the container port. If not specified, the URL will be auto-generated by the system.","type":"string","maxLength":2048,"pattern":".*","nullable":true},"AuthorizationType":{"type":"string","enum":["authenticatedUsers","authorizedUsers","authorizedGroups"],"description":"Specifies who can access the connection URL:\n- `authenticatedUsers`: Any authenticated user or service account can access the URL; the authorizedUsers and authorizedGroups fields are ignored.\n- `authorizedUsers`: Only users listed in the authorizedUsers field are allowed to access the URL; the authorizedGroups field is ignored.\n- `authorizedGroups`: Only members of user groups listed in the authorizedGroups field are allowed to access the URL; the authorizedUsers field is ignored.\nIf 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.\n","nullable":true},"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","maxLength":253,"pattern":".*"},"maxItems":1000,"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","maxLength":253,"pattern":".*"},"maxItems":1000,"nullable":true},"ExposedUrls":{"description":"Set of container ports that the workload exposes via URLs.","type":"array","items":{"$ref":"#/components/schemas/ExposedUrl"},"maxItems":1000,"nullable":true},"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","minLength":1,"maxLength":253,"nullable":true,"pattern":".*"},"ImagePullPolicy":{"description":"Image pull policy. Defaults to `Always` if `:latest` tag is specified, otherwise it is `IfNotPresent`.","type":"string","minLength":1,"enum":["Always","Never","IfNotPresent"],"nullable":true},"ImagePullSecretsDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/ImagePullSecrets"}},"nullable":true,"type":"object"},"ImagePullSecrets":{"description":"A list of references to Kubernetes secrets in the same namespace used for pulling container images.","type":"array","items":{"$ref":"#/components/schemas/ImagePullSecret"},"maxItems":1000,"nullable":true},"ImagePullSecret":{"description":"A reference to a secret in the same namespace used to pull container images.","properties":{"name":{"type":"string","description":"The name of the Kubernetes secret containing the image pull credentials.","pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$","maxLength":253},"userCredential":{"type":"boolean","description":"Indicates whether the secret is a user credential. Set to true if the secret was created by the user and is only accessible by them.","nullable":true},"exclude":{"description":"Use 'true' in case the secret is defined in defaults of the policy, and you wish to exclude it from the workload.","type":"boolean","default":false,"nullable":true}},"nullable":true,"type":"object"},"LabelsDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/Labels"}},"nullable":true,"type":"object"},"Labels":{"description":"Set of labels to populate into the container running the workload.","type":"array","items":{"$ref":"#/components/schemas/Label"},"maxItems":1000,"nullable":true},"Label":{"description":"Label details to be populated into the container.","properties":{"name":{"description":"The name of the label (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":".*"},"value":{"description":"The value of the label.","type":"string","nullable":true,"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","nullable":true}},"nullable":true,"type":"object"},"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"},"maxItems":1000}},"nullable":true},"NodeSelectorTerm":{"type":"object","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"},"maxItems":1000}},"nullable":true},"MatchExpression":{"type":"object","description":"A selector that contains values, a key, and an operator that relates the key and values.","properties":{"key":{"description":"The label key that the selector applies to (mandatory).","type":"string","pattern":".*","maxLength":63},"operator":{"$ref":"#/components/schemas/MatchExpressionOperator"},"values":{"description":"An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer.","type":"array","items":{"type":"string","maxLength":10000,"pattern":".*"},"maxItems":1000}},"required":["key","operator"],"nullable":true},"MatchExpressionOperator":{"description":"Represents a key's relationship to a set of values (mandatory).","type":"string","enum":["In","NotIn","Exists","DoesNotExist","Gt","Lt"]},"NodePools":{"description":"A prioritized list of node pools for the scheduler to run the workload on. The scheduler will always try to use the first node pool before moving to the next one if the first is not available.","type":"array","items":{"type":"string","maxLength":63,"pattern":".*"},"maxItems":1000,"nullable":true},"NodeType2":{"deprecated":true,"description":"Deprecated: use a workload policy node selector to target node types instead. 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","minLength":1,"nullable":true,"pattern":".*"},"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","format":"int32","nullable":true},"PodAffinity":{"description":"Pod affinity scheduling rules (e.g. co-locate this workload in the same node, zone, etc. as some other workloads).","type":"object","properties":{"type":{"$ref":"#/components/schemas/PodAffinityType"},"key":{"description":"The label key to use. (mandatory)","type":"string","nullable":true,"pattern":".*","maxLength":63}},"nullable":true},"PodAffinityType":{"description":"The affinity type, required or preferred. (mandatory)","type":"string","enum":["Required","Preferred"],"nullable":true},"PortsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/Port"},"instances":{"$ref":"#/components/schemas/Ports"}},"nullable":true,"type":"object"},"Port":{"description":"A port for accessing the workload.","properties":{"container":{"description":"The port that the container running the workload exposes. (mandatory)","type":"integer","format":"int32","minimum":1,"maximum":65535,"nullable":true},"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","format":"int32","nullable":true},"toolType":{"description":"The tool type that runs on this port.","type":"string","nullable":true,"pattern":".*","maxLength":63},"toolName":{"description":"A name describing the tool that runs on this port.","type":"string","nullable":true,"pattern":".*","maxLength":253},"name":{"description":"Unique name to identify the instance. primarily used for policy locked rules.","type":"string","minLength":1,"maxLength":63,"nullable":true,"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","default":false,"nullable":true}},"nullable":true,"type":"object"},"PortServiceType":{"description":"The service type of the port (mandatory).","type":"string","enum":["LoadBalancer","NodePort","ClusterIP"],"nullable":true},"Ports":{"description":"Set of container ports that the workload exposes.","type":"array","items":{"$ref":"#/components/schemas/Port"},"maxItems":1000,"nullable":true},"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","minLength":1,"enum":["preemptible","non-preemptible"],"nullable":true},"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","nullable":true,"pattern":".*"},"Probes":{"description":"Probes are used to determine if the container is healthy and ready to accept traffic.","type":"object","properties":{"readiness":{"$ref":"#/components/schemas/Probe"}},"nullable":true},"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},"ProbeHandler":{"description":"The action taken to determine the health of the container. (mandatory)","type":"object","properties":{"httpGet":{"description":"An action based on HTTP Get requests.","type":"object","properties":{"path":{"description":"Path to access on the HTTP server, defaults to /.","type":"string","pattern":"^(\\x2F[a-zA-Z0-9\\-_.\\x2F]*)?$","nullable":true,"maxLength":2048},"port":{"description":"Number of the port to access on the container.","type":"integer","format":"int32","minimum":1,"maximum":65535,"nullable":true},"host":{"description":"Host name to connect to, defaults to the pod IP.","type":"string","format":"hostname","nullable":true,"pattern":".*","maxLength":253},"scheme":{"$ref":"#/components/schemas/ProbeHandlerScheme"}}}},"nullable":true},"ProbeHandlerScheme":{"description":"Scheme to use for connecting to the host, defaults to HTTP.","type":"string","enum":["HTTP","HTTPS"],"nullable":true},"RelatedUrlsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/RelatedUrl"},"instances":{"$ref":"#/components/schemas/RelatedUrls"}},"nullable":true,"type":"object"},"RelatedUrl":{"description":"A URL that is related to the workload. For example, a URL to an external server providing statistics or logging about the workload.","properties":{"url":{"description":"The URL for connecting an external service related to the workload. (mandatory)","type":"string","nullable":true,"pattern":".*","maxLength":2048},"type":{"description":"The type of service that the url provides. For example, wandb (Weights & Biases). (mandatory)","type":"string","nullable":true,"pattern":".*","maxLength":63},"name":{"description":"Unique name to identify the instance. primarily used for policy locked rules.","type":"string","nullable":true,"pattern":".*","maxLength":63},"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,"nullable":true}},"nullable":true,"type":"object"},"RelatedUrls":{"description":"Set of URLs that are related to the workload.","type":"array","items":{"$ref":"#/components/schemas/RelatedUrl"},"maxItems":1000,"nullable":true},"RestartPolicy":{"description":"Specify the restart policy of the workload pods. Default is empty, which is determine by the framework default.\nThe `Always` value is deprecated; use `OnFailure` or `Never` instead.\n","type":"string","minLength":1,"enum":["Always","Never","OnFailure"],"nullable":true},"SupersetDefaultsAllOfSecurity":{"title":"SupersetDefaultsAllOfSecurity","nullable":true,"properties":{"allowPrivilegeEscalation":{"$ref":"#/components/schemas/AllowPrivilegeEscalation"},"capabilities":{"$ref":"#/components/schemas/Capabilities"},"hostIpc":{"$ref":"#/components/schemas/HostIpc"},"hostNetwork":{"$ref":"#/components/schemas/HostNetwork"},"readOnlyRootFilesystem":{"$ref":"#/components/schemas/ReadOnlyRootFileSystem"},"runAsGid":{"$ref":"#/components/schemas/RunAsGid"},"runAsNonRoot":{"$ref":"#/components/schemas/RunAsNonRoot"},"runAsUid":{"$ref":"#/components/schemas/RunAsUid"},"seccompProfileType":{"$ref":"#/components/schemas/SeccompProfileType"},"supplementalGroups":{"$ref":"#/components/schemas/SupplementalGroups"},"uidGidSource":{"$ref":"#/components/schemas/UidGidSource"}},"type":"object"},"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://run-ai-docs.nvidia.com/self-hosted/2.26/infrastructure-setup/advanced-setup/container-access/user-identity-in-containers","type":"boolean","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"},"nullable":true},"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"]},"HostIpc":{"description":"Whether to enable host IPC. Defaults to false.","type":"boolean","nullable":true},"HostNetwork":{"description":"Whether to enable host networking. Default to false.","type":"boolean","nullable":true},"ReadOnlyRootFileSystem":{"description":"If true, mounts the container's root filesystem as read-only.","type":"boolean","nullable":true},"RunAsGid":{"description":"The group id to run the entrypoint of the container which executes the workspace. Default to the value specified in the environment asset `runAsGid` field (optional). Use only when the source uid/gid of the environment asset is not `fromTheImage`, and `overrideUidGidInWorkspace` is enabled.","type":"integer","format":"int64","nullable":true},"RunAsNonRoot":{"description":"Force the container to run as a non-root user.","type":"boolean","nullable":true},"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","format":"int64","nullable":true},"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","enum":["RuntimeDefault","Unconfined","Localhost"],"nullable":true},"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","nullable":true,"pattern":".*"},"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://run-ai-docs.nvidia.com/self-hosted/2.26/infrastructure-setup/advanced-setup/container-access/user-identity-in-containers).","type":"string","enum":["fromTheImage","fromIdpToken","custom"],"nullable":true},"Stdin":{"description":"Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF","type":"boolean","nullable":true},"ConfigMapsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/ConfigMapInstance"},"instances":{"$ref":"#/components/schemas/ConfigMapItems"}},"nullable":true,"type":"object"},"ConfigMapInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/ConfigMap"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"StorageInstanceName":{"properties":{"name":{"description":"unique name to identify the instance. primarily used for policy locked rules.","type":"string","minLength":1,"maxLength":63,"nullable":true}},"nullable":true,"type":"object"},"ConfigMap":{"properties":{"configMap":{"description":"The name of the ConfigMap resource. (mandatory)","type":"string","minLength":1,"maxLength":253,"nullable":true,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$"},"mountPath":{"description":"Local path within the workload to which the ConfigMap will be mapped to. (mandatory)","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"subPath":{"description":"Path within the volume from which the container's volume should be mounted.","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"defaultMode":{"$ref":"#/components/schemas/DefaultMode"}},"nullable":true,"type":"object"},"DefaultMode":{"type":"string","description":"File permission mode in octal string format. This value must be a 4-digit octal number, representing the default file mode when mounting a Secret or ConfigMap as a volume.\n","minLength":4,"maxLength":4,"pattern":"0[0-7]{3}","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,"nullable":true}},"type":"object","nullable":true},"ConfigMapItems":{"description":"Set of config map volumes to use in the workload","type":"array","items":{"$ref":"#/components/schemas/ConfigMapInstance"},"maxItems":1000,"nullable":true},"DataVolumesDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/DataVolumeInstance"},"instances":{"$ref":"#/components/schemas/DataVolumeItems"}},"nullable":true,"type":"object"},"DataVolumeInstance":{"allOf":[{"$ref":"#/components/schemas/DataVolume"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"DataVolume":{"properties":{"id":{"description":"The unique identifier of the data volume. (mandatory)","type":"string","format":"uuid","nullable":true},"mountPath":{"description":"The path where the data volume will be mounted. (mandatory)","type":"string","nullable":true,"pattern":".*","maxLength":4096}},"nullable":true,"type":"object"},"DataVolumeItems":{"description":"Set of data volumes to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/DataVolumeInstance"},"maxItems":1000,"nullable":true},"EmptyDirsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/EmptyDirInstance"},"instances":{"$ref":"#/components/schemas/EmptyDirItems"}},"nullable":true,"type":"object"},"EmptyDirInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/EmptyDir"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"EmptyDir":{"properties":{"path":{"description":"Local path within the workload to which the EmptyDir volume will be mapped. (mandatory)","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"medium":{"description":"The type of storage medium for the volume. Use \"Memory\" for memory-backed storage, or leave empty for disk-backed storage.","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":".*"},"sizeLimit":{"description":"The total amount of local storage or memory required for the emptyDir volume. Specify using Kubernetes quantity format (e.g., 1G, 500Mi).","type":"string","maxLength":63,"pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$","nullable":true}},"nullable":true,"type":"object"},"EmptyDirItems":{"description":"A list of emptyDir volumes to mount in the workload.","type":"array","items":{"$ref":"#/components/schemas/EmptyDirInstance"},"maxItems":1000,"nullable":true},"GitsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/GitInstance"},"instances":{"$ref":"#/components/schemas/GitItems"}},"nullable":true,"type":"object"},"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"},"GitCommon":{"properties":{"repository":{"description":"URL to a remote Git repository. The content of this repository will be mapped to the container running the workload. (mandatory)","type":"string","minLength":1,"maxLength":2048,"nullable":true},"branch":{"description":"Specific branch to synchronize the repository from.","type":"string","minLength":1,"maxLength":63,"nullable":true},"revision":{"description":"Specific revision to synchronize the repository from.","type":"string","minLength":1,"maxLength":63,"nullable":true},"path":{"description":"Local path within the workload to which the Git repository will be mapped (mandatory).","type":"string","minLength":1,"maxLength":4096,"nullable":true}},"nullable":true,"type":"object"},"GitPassword":{"properties":{"passwordSecret":{"description":"Secret containing the credentials of the repository (needed for non public repository which requires authentication). (deprecated)","type":"string","minLength":1,"nullable":true},"secretKeyOfUser":{"description":"The key to use for loading the user name from the secret. The default is `User`. (deprecated)","type":"string","minLength":1,"nullable":true},"secretKeyOfPassword":{"description":"The key to use for loading the password from the secret. The default is `Password`. (deprecated)","type":"string","minLength":1,"nullable":true}},"nullable":true,"type":"object"},"GitSecretRef":{"properties":{"name":{"description":"Name of the Secret containing the credentials of the repository.","type":"string","minLength":1},"authenticationMethod":{"$ref":"#/components/schemas/GitAuthenticationMethod"},"secretKeyOfUser":{"description":"The key in the Secret that contains the Git username (used for `password` authentication).","type":"string","minLength":1,"nullable":true},"secretKeyOfPassword":{"description":"The key in the Secret that contains the Git password (used for `password` authentication).","type":"string","minLength":1,"nullable":true}},"nullable":true,"type":"object"},"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,"enum":["password","ssh-key"]},"GitItems":{"description":"Set of git repositories to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/GitInstance"},"maxItems":1000,"nullable":true},"HostPathsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/HostPathInstance"},"instances":{"$ref":"#/components/schemas/HostPathItems"}},"nullable":true,"type":"object"},"HostPathInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/HostPath"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"HostPath":{"properties":{"path":{"description":"Local path within the controller to which the host volume will be mapped. (mandatory)","type":"string","minLength":1,"maxLength":4096,"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,"maxLength":4096,"nullable":true,"pattern":".*"},"mountPropagation":{"$ref":"#/components/schemas/HostPathMountPropagation"}},"nullable":true,"type":"object"},"HostPathMountPropagation":{"description":"Share this volumes mount with other containers. If set to HostToContainer, this volume mount will receive all subsequent mounts that are mounted to this volume or any of its subdirectories. In case of multiple hostPath entries, this field should have the same value for all of them.","type":"string","enum":["None","HostToContainer"],"nullable":true},"HostPathItems":{"description":"Set of host paths to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/HostPathInstance"},"maxItems":1000,"nullable":true},"NfssDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/NfsInstance"},"instances":{"$ref":"#/components/schemas/NfsItems"}},"nullable":true,"type":"object"},"NfsInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/Nfs"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"Nfs":{"properties":{"path":{"description":"Path that is exported by the NFS server (mandatory). For more information, see [NFS](https://kubernetes.io/docs/concepts/storage/volumes#nfs).","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"readOnly":{"description":"Force the NFS export to be mounted with read-only permissions.","type":"boolean","default":true,"nullable":true},"server":{"description":"The hostname or IP address of the NFS server. (mandatory)","type":"string","minLength":1,"maxLength":253,"nullable":true,"pattern":".*"},"mountPath":{"description":"The path that the NFS volume will be mounted to when in use. (mandatory)","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"NfsItems":{"description":"Set of nfs volumes to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/NfsInstance"},"maxItems":1000,"nullable":true},"PvcsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/PvcInstance"},"instances":{"$ref":"#/components/schemas/PvcItems"}},"nullable":true,"type":"object"},"PvcInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/Pvc"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"Pvc":{"allOf":[{"$ref":"#/components/schemas/PvcFieldsUpdatable"},{"$ref":"#/components/schemas/PvcFieldsNonUpdatable"}]},"PvcFieldsUpdatable":{"properties":{"path":{"description":"Local path within the workload to which the PVC bucket will be mapped. (mandatory)","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"PvcFieldsNonUpdatable":{"properties":{"existingPvc":{"description":"Verify existing PVC. PVC is assumed to exist when set to `true`. If set to `false`, the PVC will be created, if it does not exist.","type":"boolean","default":false,"nullable":true},"claimName":{"description":"Name for the PVC. Allow referencing it across workloads. If not provided, a name based on the workload name and scope will be auto-generated.","type":"string","minLength":1,"maxLength":63,"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,"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,"nullable":true}},"nullable":true,"type":"object"},"ClaimInfo":{"description":"Claim information for the newly created PVC. The information should not be provided when attempting to use existing PVC.","properties":{"size":{"$ref":"#/components/schemas/PvcClaimSize"},"storageClass":{"description":"Storage class name to associate with the PVC. This parameter may be omitted if there is a single storage class in the system, or you are using the default storage class. For more information, see [Storage class](https://kubernetes.io/docs/concepts/storage/storage-classes).","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$"},"accessModes":{"$ref":"#/components/schemas/PvcAccessModes"},"volumeMode":{"$ref":"#/components/schemas/PvcVolumeMode"},"addedAttrValues":{"$ref":"#/components/schemas/PvcAddedAttrValues"}},"nullable":true,"type":"object"},"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]*)$","maxLength":63,"nullable":true},"PvcAccessModes":{"description":"Default access mode(s) applied to newly created PVCs unless explicitly overridden.","properties":{"readWriteOnce":{"description":"Mount the volume as read/write by a single node.","type":"boolean","default":true,"nullable":true},"readOnlyMany":{"description":"Mount the volume as read-only by many nodes.","type":"boolean","default":false,"nullable":true},"readWriteMany":{"description":"Mount the volume as read/write by many nodes.","type":"boolean","default":false,"nullable":true}},"nullable":true,"type":"object"},"PvcVolumeMode":{"description":"Default volume mode for the PVC. Choose between Filesystem (default) or Block.","type":"string","enum":["Filesystem","Block"],"nullable":true},"PvcAddedAttrValues":{"description":"an optional array of key-values pairs that are written as annotations on the created PVC. the allowed attributes are determined according to the storage class configuration (see k8s-objects-tracker for further info).","type":"array","items":{"$ref":"#/components/schemas/PvcAddedAttrValue"},"maxItems":1000},"PvcAddedAttrValue":{"type":"object","required":["key"],"properties":{"key":{"type":"string","minLength":1,"maxLength":63,"pattern":"^([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]$"},"value":{"type":"string","pattern":".*","maxLength":10000}}},"PvcItems":{"description":"Set of pvc persistent volume claims to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/PvcInstance"},"maxItems":1000,"nullable":true},"S3sDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/S3Instance"},"instances":{"$ref":"#/components/schemas/S3Items"}},"nullable":true,"type":"object"},"S3Instance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/S3Common"},{"$ref":"#/components/schemas/S3AccessKey"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"S3Common":{"properties":{"bucket":{"description":"The name of the bucket. (mandatory)","type":"string","minLength":1,"nullable":true},"path":{"description":"Local path within the workload to which the S3 bucket will be mapped. (mandatory)","type":"string","minLength":1,"nullable":true},"url":{"description":"The url of the S3 service provider. The default is the URL of the Amazon AWS S3 service.","type":"string","minLength":1,"nullable":true}},"nullable":true,"type":"object"},"S3AccessKey":{"properties":{"accessKeySecret":{"description":"Name of the secret containing credentials of the S3 bucket. Used for private S3 buckets.","type":"string","minLength":1,"nullable":true,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$"},"secretKeyOfAccessKeyId":{"description":"The key to use for loading the access key id from the secret. The default is `AccessKeyId`. For more information, see [Credentials access keys](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html).","type":"string","minLength":1,"nullable":true,"pattern":".*"},"secretKeyOfSecretKey":{"description":"The key to use for loading the secret key from the secret. The default is `SecretKey`. For more information, see [Credentials access keys](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html).","type":"string","minLength":1,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"S3Items":{"description":"Set of s3 buckets to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/S3Instance"},"nullable":true},"SecretsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/SecretInstance"},"instances":{"$ref":"#/components/schemas/SecretItems"}},"nullable":true,"type":"object"},"SecretInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/Secret"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"Secret":{"allOf":[{"$ref":"#/components/schemas/SecretFieldsUpdatable"},{"$ref":"#/components/schemas/SecretFieldsNonUpdatable"}]},"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"},"SecretFieldsNonUpdatable":{"properties":{"secret":{"description":"The name of the Secret resource. (mandatory)","type":"string","minLength":1,"nullable":true}},"nullable":true,"type":"object"},"SecretItems":{"description":"Set of secret volumes to use in the workload","type":"array","items":{"$ref":"#/components/schemas/SecretInstance"},"nullable":true},"TerminateAfterPreemption":{"description":"Indicates if the job should be terminated by the system after it has been preempted.","type":"boolean","nullable":true},"TerminationGracePeriod":{"description":"Duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down).","format":"int64","type":"integer","minimum":0,"nullable":true},"TolerationsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/Toleration"},"instances":{"$ref":"#/components/schemas/Tolerations"}},"nullable":true,"type":"object"},"Toleration":{"description":"Toleration details.","properties":{"name":{"description":"The name of the toleration.","type":"string","minLength":1,"maxLength":253,"nullable":true,"pattern":".*"},"operator":{"$ref":"#/components/schemas/TolerationOperator"},"key":{"description":"The taint key that the toleration applies to. (mandatory)","type":"string","maxLength":253,"nullable":true,"pattern":".*"},"value":{"description":"The taint value the toleration matches to. Mandatory if operator is Exists, forbidden otherwise.","type":"string","maxLength":10000,"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","nullable":true}},"nullable":true,"type":"object"},"TolerationOperator":{"description":"A key's relationship to the value. Equal uses key and value. Exists is equivalent to wildcard for value, so that a workload can tolerate all taints of a particular category. (mandatory)","type":"string","enum":["Equal","Exists"],"nullable":true},"TolerationEffect":{"description":"The taint effect to match. (mandatory)","type":"string","enum":["NoSchedule","NoExecute","PreferNoSchedule","Any"],"nullable":true},"Tolerations":{"description":"Set of tolerations to apply to the workload.","type":"array","items":{"$ref":"#/components/schemas/Toleration"},"maxItems":1000,"nullable":true},"Tty":{"description":"Whether this container should allocate a TTY for itself, also requires 'stdin' to be true.","type":"boolean","nullable":true},"WorkingDir":{"description":"Container's working directory. If not specified, the container runtime default will be used. This may be configured in the container image.","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"TrainingPolicyRulesV2":{"allOf":[{"nullable":true,"properties":{"annotations":{"$ref":"#/components/schemas/InstancesRules"},"args":{"$ref":"#/components/schemas/StringRules"},"autoDeletionTimeAfterCompletionSeconds":{"$ref":"#/components/schemas/IntegerRules"},"backoffLimit":{"$ref":"#/components/schemas/IntegerRules"},"category":{"$ref":"#/components/schemas/StringRules"},"command":{"$ref":"#/components/schemas/StringRules"},"completions":{"$ref":"#/components/schemas/IntegerRules"},"compute":{"$ref":"#/components/schemas/SupersetRulesAllOfCompute"},"createHomeDir":{"$ref":"#/components/schemas/BooleanRules"},"environmentVariables":{"$ref":"#/components/schemas/InstancesRules"},"exposedUrls":{"$ref":"#/components/schemas/ExposedUrlsRules"},"image":{"$ref":"#/components/schemas/StringRules"},"imagePullPolicy":{"$ref":"#/components/schemas/ImagePullPolicyRules"},"imagePullSecrets":{"$ref":"#/components/schemas/ImagePullSecretsRules"},"labels":{"$ref":"#/components/schemas/InstancesRules"},"nodeAffinityRequired":{"$ref":"#/components/schemas/ArbitraryRules"},"nodePools":{"$ref":"#/components/schemas/ArrayRules"},"nodeType":{"$ref":"#/components/schemas/StringRules"},"parallelism":{"$ref":"#/components/schemas/IntegerRules"},"podAffinity":{"$ref":"#/components/schemas/PodAffinityRules"},"ports":{"$ref":"#/components/schemas/PortsRules"},"preemptibility":{"$ref":"#/components/schemas/PreemptibilityRules"},"priorityClass":{"$ref":"#/components/schemas/StringRules"},"probes":{"$ref":"#/components/schemas/ProbesRules"},"relatedUrls":{"$ref":"#/components/schemas/RelatedUrlsRules"},"restartPolicy":{"$ref":"#/components/schemas/RestartPolicyRule"},"security":{"$ref":"#/components/schemas/SupersetRulesAllOfSecurity"},"stdin":{"$ref":"#/components/schemas/BooleanRules"},"storage":{"nullable":true,"properties":{"configMapVolume":{"$ref":"#/components/schemas/ConfigMapsRules"},"dataVolume":{"$ref":"#/components/schemas/DataVolumesRules"},"emptyDirVolume":{"$ref":"#/components/schemas/EmptyDirsRules"},"git":{"$ref":"#/components/schemas/GitsRules"},"hostPath":{"$ref":"#/components/schemas/HostPathsRules"},"nfs":{"$ref":"#/components/schemas/NfssRules"},"pvc":{"$ref":"#/components/schemas/PvcsRules"},"s3":{"$ref":"#/components/schemas/S3sRules"},"secretVolume":{"$ref":"#/components/schemas/SecretsRules"}},"type":"object"},"terminateAfterPreemption":{"$ref":"#/components/schemas/BooleanRules"},"terminationGracePeriodSeconds":{"$ref":"#/components/schemas/IntegerRules"},"tolerations":{"$ref":"#/components/schemas/TolerationsRules"},"tty":{"$ref":"#/components/schemas/BooleanRules"},"workingDir":{"$ref":"#/components/schemas/StringRules"}},"type":"object"}]},"InstancesRules":{"properties":{"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ItemRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"canAdd":{"description":"Whether it is permitted to add items. Default to true.","type":"boolean","nullable":true},"locked":{"description":"Set of keys for items that are \"locked\", i.e. cannot be removed or deleted.","type":"array","items":{"type":"string"}}},"nullable":true,"type":"object"},"SourceOfRule":{"description":"This field is used by the system along with effective rules, in order to specify the org unit from which this effective rule has been derived. It should be left empty when sending apply policy requests.","required":["scope"],"properties":{"scope":{"$ref":"#/components/schemas/ScopeType"},"projectId":{"$ref":"#/components/schemas/ProjectIdOptional"},"departmentId":{"$ref":"#/components/schemas/DepartmentIdOptional"},"clusterId":{"$ref":"#/components/schemas/ClusterIdOptional"},"isFallback":{"description":"source of this rule is the fallback policy","type":"boolean"}},"nullable":true,"type":"object"},"StringRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/StringRulesOptions"}],"nullable":true,"type":"object"},"StringRulesCommon":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory, default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable, default to true","type":"boolean","nullable":true},"blocked":{"description":"Blocks the field to prevent workloads from specifying any value for it.","type":"boolean","nullable":true}}},"StringRulesOptions":{"properties":{"options":{"description":"Set of options that the value of the field must be chosen from.","type":"array","items":{"$ref":"#/components/schemas/StringOption"},"nullable":true}}},"StringOption":{"description":"One of the values that the field can be assigned to, when options police is applied on the field.","required":["value"],"properties":{"value":{"description":"The value that the field should hold","type":"string","pattern":".*"},"displayed":{"description":"Textual description of the value. to be used by user interface applications.","type":"string","nullable":true,"pattern":".*"}}},"IntegerRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory. default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"max":{"description":"The maximum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"step":{"description":"The minimal difference between two values the field can be assigned to. For example, min=2, max=10, step=2 implies that the values the field can hold are 2, 4, 6, 8 and 10.","type":"integer","format":"int32","nullable":true},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"DefaultFromRule":{"properties":{"field":{"description":"The default of this field is taken from another field, with optional factor. The specified field must belong to the same workload section (compute, security, etc). For itemized field, the value of the field will be taken from the same instance.","type":"string","nullable":true,"pattern":".*"},"factor":{"description":"Multiple the value of the fromField by this factor to get the value for this field For example, if factor is 2 and defaultFrom field has value of 8, the calculated default will be determined to be 16.","type":"number","format":"double","nullable":true,"default":1}},"nullable":true,"type":"object"},"SupersetRulesAllOfCompute":{"title":"SupersetRulesAllOfCompute","nullable":true,"properties":{"cpuCoreLimit":{"$ref":"#/components/schemas/NumberRules"},"cpuCoreRequest":{"$ref":"#/components/schemas/NumberRules"},"cpuMemoryLimit":{"$ref":"#/components/schemas/QuantityRules"},"cpuMemoryRequest":{"$ref":"#/components/schemas/QuantityRules"},"extendedResources":{"$ref":"#/components/schemas/ExtendedResourcesRules"},"gpuDevicesRequest":{"$ref":"#/components/schemas/IntegerRules"},"gpuMemoryLimit":{"$ref":"#/components/schemas/QuantityRules"},"gpuMemoryRequest":{"$ref":"#/components/schemas/QuantityRules"},"gpuPortionLimit":{"$ref":"#/components/schemas/NumberRules"},"gpuPortionRequest":{"$ref":"#/components/schemas/NumberRules"},"gpuRequestType":{"$ref":"#/components/schemas/GpuRequestRules"},"largeShmRequest":{"$ref":"#/components/schemas/BooleanRules"}},"type":"object"},"NumberRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory. default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"number","nullable":true},"max":{"description":"The maximum value that the field can be assigned to.","type":"number","nullable":true},"step":{"description":"The minimal difference between two values the field can be assigned to. For example, min=2, max=3, step=0.25 implies that the values the field can hold are 2, 2.25, 2.5 and 3.","type":"number","nullable":true},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"QuantityRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory, default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable, default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"string","nullable":true,"pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"},"max":{"description":"The maximum value that the field can be assigned to.","type":"string","nullable":true,"pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"ExtendedResourcesRules":{"properties":{"attributes":{"$ref":"#/components/schemas/ExtendedResourceRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ExtendedResourceRules":{"description":"Rules for the attributes of extendedResources","properties":{"quantity":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"GpuRequestRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/GpuRequestOptions"}],"nullable":true,"type":"object"},"GpuRequestOptions":{"properties":{"options":{"description":"Limit the permitted values for gpuRequest to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/GpuRequestType"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"BooleanRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory. default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true}},"nullable":true,"type":"object"},"ExposedUrlsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/ExposedUrlRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ExposedUrlRules":{"description":"Rules for the attributed of exposedUrls","properties":{"container":{"$ref":"#/components/schemas/IntegerRules"},"customUrl":{"$ref":"#/components/schemas/BooleanRules"},"url":{"$ref":"#/components/schemas/StringRules"},"authorizedUsers":{"$ref":"#/components/schemas/ArrayRules"},"authorizedGroups":{"$ref":"#/components/schemas/ArrayRules"},"toolType":{"$ref":"#/components/schemas/StringRules"},"toolName":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"ArrayRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether this array is mandatory. Mandatory array must include at least one item. default to false.","type":"boolean","nullable":true},"options":{"description":"Set of options that the value of each item of the array must be chosen from.","type":"array","items":{"$ref":"#/components/schemas/StringOption"}},"canEdit":{"description":"Whether the value of the array, as a whole, is editable. default to false.","type":"boolean","nullable":true}},"nullable":true,"type":"object"},"ImagePullPolicyRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/ImagePullPolicyOptions"}],"nullable":true,"type":"object"},"ImagePullPolicyOptions":{"properties":{"options":{"description":"Limit the permitted values for imagePullPolicy to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/ImagePullPolicy"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ImagePullSecretsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/ImagePullSecretsRulesAttributes"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ImagePullSecretsRulesAttributes":{"description":"Rules for the attributes of imagePullSecrets","properties":{"name":{"$ref":"#/components/schemas/StringRules"},"userCredentials":{"$ref":"#/components/schemas/BooleanRules"}},"nullable":true,"type":"object"},"ArbitraryRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether this arbitrary object is mandatory. default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field, as a whole, is editable. default to false.","type":"boolean","nullable":true}},"nullable":true,"type":"object"},"PodAffinityRules":{"properties":{"type":{"$ref":"#/components/schemas/PodAffinityTypeRules"},"key":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"PodAffinityTypeRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/PodAffinityTypeOptions"}],"nullable":true,"type":"object"},"PodAffinityTypeOptions":{"properties":{"options":{"type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/PodAffinityType"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"type":"object"},"PortsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/PortRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"PortRules":{"description":"Rules for port attributes","properties":{"container":{"$ref":"#/components/schemas/IntegerRules"},"serviceType":{"$ref":"#/components/schemas/PortServiceTypeRules"},"customExternalPort":{"$ref":"#/components/schemas/BooleanRules"},"external":{"$ref":"#/components/schemas/IntegerRules"},"toolType":{"$ref":"#/components/schemas/StringRules"},"toolName":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"PortServiceTypeRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/PortServiceTypeOptions"}],"nullable":true,"type":"object"},"PortServiceTypeOptions":{"properties":{"options":{"type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/PortServiceType"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"PreemptibilityRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/PreemptibilityOptions"}],"nullable":true,"type":"object"},"PreemptibilityOptions":{"properties":{"options":{"description":"Limit the permitted values for preemptibility to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/Preemptibility"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ProbesRules":{"properties":{"readiness":{"$ref":"#/components/schemas/ProbeRules"}},"nullable":true,"type":"object"},"ProbeRules":{"properties":{"initialDelaySeconds":{"$ref":"#/components/schemas/IntegerRules"},"periodSeconds":{"$ref":"#/components/schemas/IntegerRules"},"timeoutSeconds":{"$ref":"#/components/schemas/IntegerRules"},"successThreshold":{"$ref":"#/components/schemas/IntegerRules"},"failureThreshold":{"$ref":"#/components/schemas/IntegerRules"},"handler":{"$ref":"#/components/schemas/ProbeHandlerRules"}},"nullable":true,"type":"object"},"ProbeHandlerRules":{"properties":{"httpGet":{"properties":{"path":{"$ref":"#/components/schemas/StringRules"},"port":{"$ref":"#/components/schemas/IntegerRules"},"host":{"$ref":"#/components/schemas/StringRules"},"scheme":{"$ref":"#/components/schemas/StringRules"}}}},"nullable":true,"type":"object"},"RelatedUrlsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/RelatedUrlRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"RelatedUrlRules":{"description":"Rules for the attributes of relatedUrls","properties":{"url":{"$ref":"#/components/schemas/StringRules"},"type":{"$ref":"#/components/schemas/StringRules"},"name":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"RestartPolicyRule":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/RestartPolicyOptions"}],"nullable":true,"type":"object"},"RestartPolicyOptions":{"properties":{"options":{"description":"Limit the permitted values for restartPolicy to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/RestartPolicy"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"SupersetRulesAllOfSecurity":{"title":"SupersetRulesAllOfSecurity","nullable":true,"properties":{"allowPrivilegeEscalation":{"$ref":"#/components/schemas/BooleanRules"},"capabilities":{"$ref":"#/components/schemas/ArrayRules"},"hostIpc":{"$ref":"#/components/schemas/BooleanRules"},"hostNetwork":{"$ref":"#/components/schemas/BooleanRules"},"readOnlyRootFilesystem":{"$ref":"#/components/schemas/BooleanRules"},"runAsGid":{"$ref":"#/components/schemas/IntegerRulesOptional"},"runAsNonRoot":{"$ref":"#/components/schemas/BooleanRules"},"runAsUid":{"$ref":"#/components/schemas/IntegerRulesOptional"},"seccompProfileType":{"$ref":"#/components/schemas/SeccompProfileTypeRules"},"supplementalGroups":{"$ref":"#/components/schemas/StringRules"},"uidGidSource":{"$ref":"#/components/schemas/UidGidSourceRules"}},"type":"object"},"IntegerRulesOptional":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"max":{"description":"The maximum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"step":{"description":"The minimal difference between two values the field can be assigned to. For example, min=2, max=10, step=2 implies that the values the field can hold are 2, 4, 6, 8 and 10.","type":"integer","format":"int32","nullable":true},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"SeccompProfileTypeRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/SeccompProfileTypeOptions"}],"nullable":true,"type":"object"},"SeccompProfileTypeOptions":{"properties":{"options":{"description":"Limit the permitted values for secompProfileType to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/SeccompProfileType"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"UidGidSourceRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/UidGidSourceOptions"}],"nullable":true,"type":"object"},"UidGidSourceOptions":{"properties":{"options":{"description":"Limit the permitted values for uidGidSource to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/UidGidSource"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ConfigMapsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/ConfigMapRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ConfigMapRules":{"properties":{"configMap":{"$ref":"#/components/schemas/StringRules"},"mountPath":{"$ref":"#/components/schemas/StringRules"},"subPath":{"$ref":"#/components/schemas/StringRules"},"defaultMode":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"DataVolumesRules":{"properties":{"attributes":{"$ref":"#/components/schemas/DataVolumeRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"DataVolumeRules":{"properties":{"id":{"$ref":"#/components/schemas/StringRules"},"mountPath":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"EmptyDirsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/EmptyDirRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"EmptyDirRules":{"properties":{"path":{"$ref":"#/components/schemas/StringRules"},"medium":{"$ref":"#/components/schemas/StringRules"},"sizeLimit":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"GitsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/GitRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"GitRules":{"properties":{"repository":{"$ref":"#/components/schemas/StringRules"},"branch":{"$ref":"#/components/schemas/StringRules"},"revision":{"$ref":"#/components/schemas/StringRules"},"path":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"HostPathsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/HostPathRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"HostPathRules":{"properties":{"path":{"$ref":"#/components/schemas/StringRules"},"readOnly":{"$ref":"#/components/schemas/BooleanRules"},"mountPath":{"$ref":"#/components/schemas/StringRules"},"mountPropagation":{"$ref":"#/components/schemas/HostPathMountPropagationRules"}},"nullable":true,"type":"object"},"HostPathMountPropagationRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/HostPathMountPropagationOptions"}],"nullable":true,"type":"object"},"HostPathMountPropagationOptions":{"properties":{"options":{"type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/HostPathMountPropagation"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}}},"NfssRules":{"properties":{"attributes":{"$ref":"#/components/schemas/NfsRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"NfsRules":{"properties":{"path":{"$ref":"#/components/schemas/StringRules"},"readOnly":{"$ref":"#/components/schemas/BooleanRules"},"server":{"$ref":"#/components/schemas/StringRules"},"mountPath":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"PvcsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/PvcRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"PvcRules":{"properties":{"claimName":{"$ref":"#/components/schemas/StringRules"},"path":{"$ref":"#/components/schemas/StringRules"},"readOnly":{"$ref":"#/components/schemas/BooleanRules"},"claimInfo":{"$ref":"#/components/schemas/ClaimInfoRules"}},"nullable":true,"type":"object"},"ClaimInfoRules":{"properties":{"size":{"$ref":"#/components/schemas/StringRules"},"storageClass":{"$ref":"#/components/schemas/StringRules"},"accessModes":{"$ref":"#/components/schemas/PvcAccessModesRules"}},"nullable":true,"type":"object"},"PvcAccessModesRules":{"description":"Rules for access mode(s) for a newly created PVC.","properties":{"readWriteOnce":{"$ref":"#/components/schemas/BooleanRules"},"readOnlyMany":{"$ref":"#/components/schemas/BooleanRules"},"readWriteMany":{"$ref":"#/components/schemas/BooleanRules"}},"nullable":true,"type":"object"},"S3sRules":{"properties":{"attributes":{"$ref":"#/components/schemas/S3Rules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"S3Rules":{"properties":{"bucket":{"$ref":"#/components/schemas/StringRules"},"path":{"$ref":"#/components/schemas/StringRules"},"url":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"SecretsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/SecretRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"SecretRules":{"properties":{"secret":{"$ref":"#/components/schemas/StringRules"},"mountPath":{"$ref":"#/components/schemas/StringRules"},"defaultMode":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"TolerationsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/TolerationRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"TolerationRules":{"description":"Toleration details.","properties":{"operator":{"$ref":"#/components/schemas/TolerationOperatorRules"},"key":{"$ref":"#/components/schemas/StringRules"},"value":{"$ref":"#/components/schemas/StringRules"},"effect":{"$ref":"#/components/schemas/TolerationEffectRules"},"seconds":{"$ref":"#/components/schemas/IntegerRules"},"exclude":{"$ref":"#/components/schemas/BooleanRules"}},"nullable":true,"type":"object"},"TolerationOperatorRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/TolerationOperatorOptions"}],"nullable":true,"type":"object"},"TolerationOperatorOptions":{"properties":{"options":{"description":"Limit the permitted values for imagePullPolicy to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/TolerationOperator"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"TolerationEffectRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/TolerationEffectOptions"}],"nullable":true,"type":"object"},"TolerationEffectOptions":{"properties":{"options":{"description":"Limit the permitted values for imagePullPolicy to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/TolerationEffect"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ImposedAssets":{"description":"a list of datasource assets to import into the policy. these datasources will be included in any workload that will be created in the scope of the policy.","type":"array","items":{"type":"string","format":"uuid"},"nullable":true},"PolicyValidationStatus":{"properties":{"validation":{"properties":{"errorMessage":{"pattern":".*","type":"string","description":"In case validation failed, holds the error message explaining the issue"}},"nullable":true,"type":"object"}},"nullable":true,"type":"object"},"Timestamp":{"description":"The time at which an event occurred. e.g. the time an effective policy has been updated","type":"string","minLength":1,"format":"date-time"},"Error":{"required":["code","message"],"properties":{"code":{"type":"integer","minimum":100,"maximum":599},"message":{"type":"string"},"details":{"type":"string"}}}},"responses":{"400BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401Unauthorized":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403Forbidden":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404NotFound":{"description":"The specified resource was not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503ServiceUnavailable":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/api/v2/policy/trainings":{"get":{"summary":"Get a training policy.","description":"Retrieve the details of a training policy for a given organizational unit.","operationId":"get_training_policy_v2","tags":["Policy"],"parameters":[{"$ref":"#/components/parameters/PolicyScope"},{"$ref":"#/components/parameters/FilterByDepartment"},{"$ref":"#/components/parameters/FilterByProject"},{"$ref":"#/components/parameters/FilterByCluster"}],"responses":{"200":{"description":"Request completed successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrainingPolicyV2"}}}},"400":{"$ref":"#/components/responses/400BadRequest"},"401":{"$ref":"#/components/responses/401Unauthorized"},"403":{"$ref":"#/components/responses/403Forbidden"},"404":{"$ref":"#/components/responses/404NotFound"},"503":{"$ref":"#/components/responses/503ServiceUnavailable"}}}}}}
```

## Overwrite a training policy.

> Use to apply a training policy for a given organizational unit.

```json
{"openapi":"3.0.3","info":{"title":"NVIDIA Run:ai","version":"2.26"},"tags":[{"name":"Policy","description":"Policies allow administrators to impose restrictions and set default values for researcher workloads. \nRestrictions and default values can be placed on CPUs, GPUs, and other resources or entities. \nFor more information, see [Policies](https://run-ai-docs.nvidia.com/self-hosted/2.26/platform-management/policies/#introduction).\n"}],"servers":[{"url":"https://app.run.ai"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer authentication"}},"parameters":{"ValidateOnly":{"name":"validateOnly","in":"query","required":false,"description":"Validate the given policy payload without applying it","schema":{"type":"boolean"}},"ApproveClusterDeletion":{"name":"approveClusterDeletion","in":"query","required":false,"description":"Required when modifying or deleting a policy if the tenant includes one or more clusters running version 2.20 or earlier. In such cases, the platform must delete the policy from the affected clusters. This flag indicates that the administrator approves this deletion.","schema":{"type":"boolean"}}},"schemas":{"TrainingPolicyOverwriteRequestV2":{"properties":{"meta":{"$ref":"#/components/schemas/PolicyCreationFields"},"policy":{"$ref":"#/components/schemas/TrainingPolicyDefaultsAndRulesV2"}},"type":"object"},"PolicyCreationFields":{"required":["name","scope"],"properties":{"scope":{"$ref":"#/components/schemas/ScopeType"},"projectId":{"$ref":"#/components/schemas/ProjectIdOptional"},"departmentId":{"$ref":"#/components/schemas/DepartmentIdOptional"},"clusterId":{"$ref":"#/components/schemas/ClusterIdOptional"},"name":{"$ref":"#/components/schemas/PolicyName"}}},"ScopeType":{"type":"string","enum":["system","tenant","cluster","department","project"]},"ProjectIdOptional":{"description":"The id of the project.","type":"integer","format":"int32","nullable":true},"DepartmentIdOptional":{"description":"The id of the department.","type":"string","minLength":1,"nullable":true,"pattern":".*"},"ClusterIdOptional":{"description":"The id of the cluster.","type":"string","format":"uuid","minLength":1,"nullable":true},"PolicyName":{"description":"A chosen name for the policy.","type":"string","minLength":1,"pattern":".*"},"TrainingPolicyDefaultsAndRulesV2":{"properties":{"defaults":{"allOf":[{"$ref":"#/components/schemas/TrainingPolicyDefaultsV2"}],"nullable":true,"type":"object"},"rules":{"allOf":[{"$ref":"#/components/schemas/TrainingPolicyRulesV2"}],"nullable":true,"type":"object"},"imposedAssets":{"$ref":"#/components/schemas/ImposedAssets"},"status":{"$ref":"#/components/schemas/PolicyValidationStatus"}},"nullable":true,"type":"object"},"TrainingPolicyDefaultsV2":{"allOf":[{"nullable":true,"properties":{"annotations":{"$ref":"#/components/schemas/AnnotationsDefaults"},"args":{"$ref":"#/components/schemas/Args"},"autoDeletionTimeAfterCompletionSeconds":{"$ref":"#/components/schemas/AutoDeletionTimeAfterPreemption"},"backoffLimit":{"$ref":"#/components/schemas/BackoffLimit"},"category":{"$ref":"#/components/schemas/Category"},"command":{"$ref":"#/components/schemas/Command"},"completions":{"$ref":"#/components/schemas/Completions"},"compute":{"$ref":"#/components/schemas/SupersetDefaultsAllOfCompute"},"createHomeDir":{"$ref":"#/components/schemas/CreateHomeDir"},"environmentVariables":{"$ref":"#/components/schemas/EnvironmentVariablesDefaults"},"exposedUrls":{"$ref":"#/components/schemas/ExposedUrlsDefaults"},"image":{"$ref":"#/components/schemas/Image"},"imagePullPolicy":{"$ref":"#/components/schemas/ImagePullPolicy"},"imagePullSecrets":{"$ref":"#/components/schemas/ImagePullSecretsDefaults"},"labels":{"$ref":"#/components/schemas/LabelsDefaults"},"nodeAffinityRequired":{"$ref":"#/components/schemas/NodeAffinityRequired"},"nodePools":{"$ref":"#/components/schemas/NodePools"},"nodeType":{"$ref":"#/components/schemas/NodeType2"},"parallelism":{"$ref":"#/components/schemas/Parallelism"},"podAffinity":{"$ref":"#/components/schemas/PodAffinity"},"ports":{"$ref":"#/components/schemas/PortsDefaults"},"preemptibility":{"$ref":"#/components/schemas/Preemptibility"},"priorityClass":{"$ref":"#/components/schemas/PriorityClass"},"probes":{"$ref":"#/components/schemas/Probes"},"relatedUrls":{"$ref":"#/components/schemas/RelatedUrlsDefaults"},"restartPolicy":{"$ref":"#/components/schemas/RestartPolicy"},"security":{"$ref":"#/components/schemas/SupersetDefaultsAllOfSecurity"},"stdin":{"$ref":"#/components/schemas/Stdin"},"storage":{"nullable":true,"properties":{"configMapVolume":{"$ref":"#/components/schemas/ConfigMapsDefaults"},"dataVolume":{"$ref":"#/components/schemas/DataVolumesDefaults"},"emptyDirVolume":{"$ref":"#/components/schemas/EmptyDirsDefaults"},"git":{"$ref":"#/components/schemas/GitsDefaults"},"hostPath":{"$ref":"#/components/schemas/HostPathsDefaults"},"nfs":{"$ref":"#/components/schemas/NfssDefaults"},"pvc":{"$ref":"#/components/schemas/PvcsDefaults"},"s3":{"$ref":"#/components/schemas/S3sDefaults"},"secretVolume":{"$ref":"#/components/schemas/SecretsDefaults"}},"type":"object"},"terminateAfterPreemption":{"$ref":"#/components/schemas/TerminateAfterPreemption"},"terminationGracePeriodSeconds":{"$ref":"#/components/schemas/TerminationGracePeriod"},"tolerations":{"$ref":"#/components/schemas/TolerationsDefaults"},"tty":{"$ref":"#/components/schemas/Tty"},"workingDir":{"$ref":"#/components/schemas/WorkingDir"}},"type":"object"}]},"AnnotationsDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/Annotations"}},"nullable":true,"type":"object"},"Annotations":{"description":"Set of annotations to populate into the container running the workload.","type":"array","items":{"$ref":"#/components/schemas/Annotation"},"maxItems":1000,"nullable":true},"Annotation":{"description":"Annotation details to be populated into the container.","properties":{"name":{"description":"The name of the annotation (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":".*"},"value":{"description":"The value of the annotation.","type":"string","maxLength":10000,"nullable":true,"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","default":false,"nullable":true}},"nullable":true,"type":"object"},"Args":{"description":"Arguments to the command that the container running the workload executes.","type":"string","minLength":1,"maxLength":10000,"nullable":true,"pattern":".*"},"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","nullable":true},"BackoffLimit":{"description":"Specifies the number of retries before marking a workload as failed (not applicable to Inference workloads). The default value is 6.","format":"int64","type":"integer","nullable":true},"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":".*"},"Command":{"description":"A command to the server as the entry point of the container running the workload.","type":"string","minLength":1,"maxLength":10000,"nullable":true,"pattern":".*"},"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","format":"int32","nullable":true},"SupersetDefaultsAllOfCompute":{"title":"SupersetDefaultsAllOfCompute","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/ExtendedResourcesDefaults"},"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"},"CpuCoreLimit":{"description":"Limitations on the number of CPUs consumed by the workload (0.5, 1, .etc). The system guarantees that this workload will not be able to consume more than this amount of CPUs.","format":"double","type":"number","nullable":true,"minimum":0},"CpuCoreRequest":{"description":"CPU units to allocate for the created workload (0.5, 1, .etc). The workload will receive at least this amount of CPU. Note that the workload will not be scheduled unless the system can guarantee this amount of CPUs to the workload.","format":"double","type":"number","nullable":true,"minimum":0},"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]*)$","maxLength":63,"nullable":true},"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","pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$","maxLength":63,"nullable":true},"ExtendedResourcesDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/ExtendedResource"},"instances":{"$ref":"#/components/schemas/ExtendedResources"}},"nullable":true,"type":"object"},"ExtendedResource":{"description":"Quantity of an extended resource.","properties":{"resource":{"description":"The name of the extended resource (mandatory)","type":"string","minLength":1,"maxLength":253,"nullable":true,"pattern":".*"},"quantity":{"description":"The requested quantity for the resource.","type":"string","minLength":1,"maxLength":63,"nullable":true,"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","nullable":true}},"nullable":true,"type":"object"},"ExtendedResources":{"description":"Extended resources and their quantity.","type":"array","items":{"$ref":"#/components/schemas/ExtendedResource"},"maxItems":1000,"nullable":true},"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","format":"int32","nullable":true,"minimum":0},"GpuMemoryLimit":{"description":"Limitation on the memory consumed by the workload, per GPU device. The system guarantees The gpuMemoryLimit must be no less than gpuMemoryRequest.","type":"string","pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$","maxLength":63,"nullable":true},"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]*)$","maxLength":63,"nullable":true},"GpuPortionLimit":{"description":"Limitations on the portion consumed by the workload, per GPU device. The system guarantees The gpuPotionLimit must be no less than the gpuPortionRequest.","type":"number","format":"double","nullable":true,"minimum":0},"GpuPortionRequest":{"description":"Required if and only if gpuRequestType is portion. States the portion of the GPU to allocate for the created workload, per GPU device, between 0 and 1. The default is no allocated GPUs.","type":"number","format":"double","nullable":true,"minimum":0},"GpuRequestType":{"description":"Sets the unit type for GPU resources requests. Stated in terms of portion or memory. Sets the unit type for other GPU request fields. If `gpuDevicesRequest > 1`, only `portion` is supported. If `gpuDeviceRequest = 1`, the request type can be stated as `portion` or `memory`.","type":"string","minLength":1,"enum":["portion","memory"],"nullable":true},"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","nullable":true},"CreateHomeDir":{"description":"When set to `true`, creates a home directory for the container.","type":"boolean","nullable":true},"EnvironmentVariablesDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/EnvironmentVariables"}},"nullable":true,"type":"object"},"EnvironmentVariables":{"description":"Set of environment variables to populate into the container running the workload.","type":"array","items":{"$ref":"#/components/schemas/EnvironmentVariable"},"maxItems":1000,"nullable":true},"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,"maxLength":63,"nullable":true,"pattern":".*"},"value":{"description":"The value of the environment variable. (mutually exclusive with secret, userCredential, configMap and podFieldRef)","type":"string","maxLength":10000,"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","nullable":true},"description":{"description":"Description of the environment variable.","type":"string","maxLength":250,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"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,"maxLength":253,"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,"maxLength":63,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"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","minLength":1,"maxLength":253,"nullable":true,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$"},"key":{"description":"The key in the config-map resource. (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"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","minLength":1,"maxLength":10000,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"EnvironmentVariableUserCredential":{"description":"Defines a reference to a user-created credential and a specific key within that credential whose value will populate the environment variable. User credentials can only be accessed by the user who created them.","properties":{"name":{"description":"The name of the user credential.  (mandatory)","type":"string","minLength":1,"maxLength":253,"nullable":true},"key":{"description":"The key in the user credential resource. (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true}},"nullable":true,"type":"object"},"ExposedUrlsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/ExposedUrl"},"instances":{"$ref":"#/components/schemas/ExposedUrls"}},"nullable":true,"type":"object"},"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","nullable":true},"url":{"$ref":"#/components/schemas/Url"},"authorizationType":{"$ref":"#/components/schemas/AuthorizationType"},"authorizedUsers":{"$ref":"#/components/schemas/AuthorizedUsers"},"authorizedGroups":{"$ref":"#/components/schemas/AuthorizedGroups"},"toolType":{"description":"The tool type that runs on this container port.","type":"string","nullable":true,"pattern":".*"},"toolName":{"description":"A name describing the tool that runs on this url.","type":"string","nullable":true,"pattern":".*","maxLength":253},"name":{"description":"Unique name to identify the instance. primarily used for policy locked rules.","type":"string","minLength":1,"maxLength":253,"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","nullable":true}},"nullable":true,"type":"object"},"Url":{"description":"The URL for connecting to the container port. If not specified, the URL will be auto-generated by the system.","type":"string","maxLength":2048,"pattern":".*","nullable":true},"AuthorizationType":{"type":"string","enum":["authenticatedUsers","authorizedUsers","authorizedGroups"],"description":"Specifies who can access the connection URL:\n- `authenticatedUsers`: Any authenticated user or service account can access the URL; the authorizedUsers and authorizedGroups fields are ignored.\n- `authorizedUsers`: Only users listed in the authorizedUsers field are allowed to access the URL; the authorizedGroups field is ignored.\n- `authorizedGroups`: Only members of user groups listed in the authorizedGroups field are allowed to access the URL; the authorizedUsers field is ignored.\nIf 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.\n","nullable":true},"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","maxLength":253,"pattern":".*"},"maxItems":1000,"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","maxLength":253,"pattern":".*"},"maxItems":1000,"nullable":true},"ExposedUrls":{"description":"Set of container ports that the workload exposes via URLs.","type":"array","items":{"$ref":"#/components/schemas/ExposedUrl"},"maxItems":1000,"nullable":true},"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","minLength":1,"maxLength":253,"nullable":true,"pattern":".*"},"ImagePullPolicy":{"description":"Image pull policy. Defaults to `Always` if `:latest` tag is specified, otherwise it is `IfNotPresent`.","type":"string","minLength":1,"enum":["Always","Never","IfNotPresent"],"nullable":true},"ImagePullSecretsDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/ImagePullSecrets"}},"nullable":true,"type":"object"},"ImagePullSecrets":{"description":"A list of references to Kubernetes secrets in the same namespace used for pulling container images.","type":"array","items":{"$ref":"#/components/schemas/ImagePullSecret"},"maxItems":1000,"nullable":true},"ImagePullSecret":{"description":"A reference to a secret in the same namespace used to pull container images.","properties":{"name":{"type":"string","description":"The name of the Kubernetes secret containing the image pull credentials.","pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$","maxLength":253},"userCredential":{"type":"boolean","description":"Indicates whether the secret is a user credential. Set to true if the secret was created by the user and is only accessible by them.","nullable":true},"exclude":{"description":"Use 'true' in case the secret is defined in defaults of the policy, and you wish to exclude it from the workload.","type":"boolean","default":false,"nullable":true}},"nullable":true,"type":"object"},"LabelsDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/Labels"}},"nullable":true,"type":"object"},"Labels":{"description":"Set of labels to populate into the container running the workload.","type":"array","items":{"$ref":"#/components/schemas/Label"},"maxItems":1000,"nullable":true},"Label":{"description":"Label details to be populated into the container.","properties":{"name":{"description":"The name of the label (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":".*"},"value":{"description":"The value of the label.","type":"string","nullable":true,"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","nullable":true}},"nullable":true,"type":"object"},"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"},"maxItems":1000}},"nullable":true},"NodeSelectorTerm":{"type":"object","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"},"maxItems":1000}},"nullable":true},"MatchExpression":{"type":"object","description":"A selector that contains values, a key, and an operator that relates the key and values.","properties":{"key":{"description":"The label key that the selector applies to (mandatory).","type":"string","pattern":".*","maxLength":63},"operator":{"$ref":"#/components/schemas/MatchExpressionOperator"},"values":{"description":"An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer.","type":"array","items":{"type":"string","maxLength":10000,"pattern":".*"},"maxItems":1000}},"required":["key","operator"],"nullable":true},"MatchExpressionOperator":{"description":"Represents a key's relationship to a set of values (mandatory).","type":"string","enum":["In","NotIn","Exists","DoesNotExist","Gt","Lt"]},"NodePools":{"description":"A prioritized list of node pools for the scheduler to run the workload on. The scheduler will always try to use the first node pool before moving to the next one if the first is not available.","type":"array","items":{"type":"string","maxLength":63,"pattern":".*"},"maxItems":1000,"nullable":true},"NodeType2":{"deprecated":true,"description":"Deprecated: use a workload policy node selector to target node types instead. 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","minLength":1,"nullable":true,"pattern":".*"},"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","format":"int32","nullable":true},"PodAffinity":{"description":"Pod affinity scheduling rules (e.g. co-locate this workload in the same node, zone, etc. as some other workloads).","type":"object","properties":{"type":{"$ref":"#/components/schemas/PodAffinityType"},"key":{"description":"The label key to use. (mandatory)","type":"string","nullable":true,"pattern":".*","maxLength":63}},"nullable":true},"PodAffinityType":{"description":"The affinity type, required or preferred. (mandatory)","type":"string","enum":["Required","Preferred"],"nullable":true},"PortsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/Port"},"instances":{"$ref":"#/components/schemas/Ports"}},"nullable":true,"type":"object"},"Port":{"description":"A port for accessing the workload.","properties":{"container":{"description":"The port that the container running the workload exposes. (mandatory)","type":"integer","format":"int32","minimum":1,"maximum":65535,"nullable":true},"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","format":"int32","nullable":true},"toolType":{"description":"The tool type that runs on this port.","type":"string","nullable":true,"pattern":".*","maxLength":63},"toolName":{"description":"A name describing the tool that runs on this port.","type":"string","nullable":true,"pattern":".*","maxLength":253},"name":{"description":"Unique name to identify the instance. primarily used for policy locked rules.","type":"string","minLength":1,"maxLength":63,"nullable":true,"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","default":false,"nullable":true}},"nullable":true,"type":"object"},"PortServiceType":{"description":"The service type of the port (mandatory).","type":"string","enum":["LoadBalancer","NodePort","ClusterIP"],"nullable":true},"Ports":{"description":"Set of container ports that the workload exposes.","type":"array","items":{"$ref":"#/components/schemas/Port"},"maxItems":1000,"nullable":true},"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","minLength":1,"enum":["preemptible","non-preemptible"],"nullable":true},"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","nullable":true,"pattern":".*"},"Probes":{"description":"Probes are used to determine if the container is healthy and ready to accept traffic.","type":"object","properties":{"readiness":{"$ref":"#/components/schemas/Probe"}},"nullable":true},"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},"ProbeHandler":{"description":"The action taken to determine the health of the container. (mandatory)","type":"object","properties":{"httpGet":{"description":"An action based on HTTP Get requests.","type":"object","properties":{"path":{"description":"Path to access on the HTTP server, defaults to /.","type":"string","pattern":"^(\\x2F[a-zA-Z0-9\\-_.\\x2F]*)?$","nullable":true,"maxLength":2048},"port":{"description":"Number of the port to access on the container.","type":"integer","format":"int32","minimum":1,"maximum":65535,"nullable":true},"host":{"description":"Host name to connect to, defaults to the pod IP.","type":"string","format":"hostname","nullable":true,"pattern":".*","maxLength":253},"scheme":{"$ref":"#/components/schemas/ProbeHandlerScheme"}}}},"nullable":true},"ProbeHandlerScheme":{"description":"Scheme to use for connecting to the host, defaults to HTTP.","type":"string","enum":["HTTP","HTTPS"],"nullable":true},"RelatedUrlsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/RelatedUrl"},"instances":{"$ref":"#/components/schemas/RelatedUrls"}},"nullable":true,"type":"object"},"RelatedUrl":{"description":"A URL that is related to the workload. For example, a URL to an external server providing statistics or logging about the workload.","properties":{"url":{"description":"The URL for connecting an external service related to the workload. (mandatory)","type":"string","nullable":true,"pattern":".*","maxLength":2048},"type":{"description":"The type of service that the url provides. For example, wandb (Weights & Biases). (mandatory)","type":"string","nullable":true,"pattern":".*","maxLength":63},"name":{"description":"Unique name to identify the instance. primarily used for policy locked rules.","type":"string","nullable":true,"pattern":".*","maxLength":63},"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,"nullable":true}},"nullable":true,"type":"object"},"RelatedUrls":{"description":"Set of URLs that are related to the workload.","type":"array","items":{"$ref":"#/components/schemas/RelatedUrl"},"maxItems":1000,"nullable":true},"RestartPolicy":{"description":"Specify the restart policy of the workload pods. Default is empty, which is determine by the framework default.\nThe `Always` value is deprecated; use `OnFailure` or `Never` instead.\n","type":"string","minLength":1,"enum":["Always","Never","OnFailure"],"nullable":true},"SupersetDefaultsAllOfSecurity":{"title":"SupersetDefaultsAllOfSecurity","nullable":true,"properties":{"allowPrivilegeEscalation":{"$ref":"#/components/schemas/AllowPrivilegeEscalation"},"capabilities":{"$ref":"#/components/schemas/Capabilities"},"hostIpc":{"$ref":"#/components/schemas/HostIpc"},"hostNetwork":{"$ref":"#/components/schemas/HostNetwork"},"readOnlyRootFilesystem":{"$ref":"#/components/schemas/ReadOnlyRootFileSystem"},"runAsGid":{"$ref":"#/components/schemas/RunAsGid"},"runAsNonRoot":{"$ref":"#/components/schemas/RunAsNonRoot"},"runAsUid":{"$ref":"#/components/schemas/RunAsUid"},"seccompProfileType":{"$ref":"#/components/schemas/SeccompProfileType"},"supplementalGroups":{"$ref":"#/components/schemas/SupplementalGroups"},"uidGidSource":{"$ref":"#/components/schemas/UidGidSource"}},"type":"object"},"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://run-ai-docs.nvidia.com/self-hosted/2.26/infrastructure-setup/advanced-setup/container-access/user-identity-in-containers","type":"boolean","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"},"nullable":true},"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"]},"HostIpc":{"description":"Whether to enable host IPC. Defaults to false.","type":"boolean","nullable":true},"HostNetwork":{"description":"Whether to enable host networking. Default to false.","type":"boolean","nullable":true},"ReadOnlyRootFileSystem":{"description":"If true, mounts the container's root filesystem as read-only.","type":"boolean","nullable":true},"RunAsGid":{"description":"The group id to run the entrypoint of the container which executes the workspace. Default to the value specified in the environment asset `runAsGid` field (optional). Use only when the source uid/gid of the environment asset is not `fromTheImage`, and `overrideUidGidInWorkspace` is enabled.","type":"integer","format":"int64","nullable":true},"RunAsNonRoot":{"description":"Force the container to run as a non-root user.","type":"boolean","nullable":true},"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","format":"int64","nullable":true},"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","enum":["RuntimeDefault","Unconfined","Localhost"],"nullable":true},"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","nullable":true,"pattern":".*"},"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://run-ai-docs.nvidia.com/self-hosted/2.26/infrastructure-setup/advanced-setup/container-access/user-identity-in-containers).","type":"string","enum":["fromTheImage","fromIdpToken","custom"],"nullable":true},"Stdin":{"description":"Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF","type":"boolean","nullable":true},"ConfigMapsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/ConfigMapInstance"},"instances":{"$ref":"#/components/schemas/ConfigMapItems"}},"nullable":true,"type":"object"},"ConfigMapInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/ConfigMap"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"StorageInstanceName":{"properties":{"name":{"description":"unique name to identify the instance. primarily used for policy locked rules.","type":"string","minLength":1,"maxLength":63,"nullable":true}},"nullable":true,"type":"object"},"ConfigMap":{"properties":{"configMap":{"description":"The name of the ConfigMap resource. (mandatory)","type":"string","minLength":1,"maxLength":253,"nullable":true,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$"},"mountPath":{"description":"Local path within the workload to which the ConfigMap will be mapped to. (mandatory)","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"subPath":{"description":"Path within the volume from which the container's volume should be mounted.","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"defaultMode":{"$ref":"#/components/schemas/DefaultMode"}},"nullable":true,"type":"object"},"DefaultMode":{"type":"string","description":"File permission mode in octal string format. This value must be a 4-digit octal number, representing the default file mode when mounting a Secret or ConfigMap as a volume.\n","minLength":4,"maxLength":4,"pattern":"0[0-7]{3}","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,"nullable":true}},"type":"object","nullable":true},"ConfigMapItems":{"description":"Set of config map volumes to use in the workload","type":"array","items":{"$ref":"#/components/schemas/ConfigMapInstance"},"maxItems":1000,"nullable":true},"DataVolumesDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/DataVolumeInstance"},"instances":{"$ref":"#/components/schemas/DataVolumeItems"}},"nullable":true,"type":"object"},"DataVolumeInstance":{"allOf":[{"$ref":"#/components/schemas/DataVolume"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"DataVolume":{"properties":{"id":{"description":"The unique identifier of the data volume. (mandatory)","type":"string","format":"uuid","nullable":true},"mountPath":{"description":"The path where the data volume will be mounted. (mandatory)","type":"string","nullable":true,"pattern":".*","maxLength":4096}},"nullable":true,"type":"object"},"DataVolumeItems":{"description":"Set of data volumes to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/DataVolumeInstance"},"maxItems":1000,"nullable":true},"EmptyDirsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/EmptyDirInstance"},"instances":{"$ref":"#/components/schemas/EmptyDirItems"}},"nullable":true,"type":"object"},"EmptyDirInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/EmptyDir"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"EmptyDir":{"properties":{"path":{"description":"Local path within the workload to which the EmptyDir volume will be mapped. (mandatory)","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"medium":{"description":"The type of storage medium for the volume. Use \"Memory\" for memory-backed storage, or leave empty for disk-backed storage.","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":".*"},"sizeLimit":{"description":"The total amount of local storage or memory required for the emptyDir volume. Specify using Kubernetes quantity format (e.g., 1G, 500Mi).","type":"string","maxLength":63,"pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$","nullable":true}},"nullable":true,"type":"object"},"EmptyDirItems":{"description":"A list of emptyDir volumes to mount in the workload.","type":"array","items":{"$ref":"#/components/schemas/EmptyDirInstance"},"maxItems":1000,"nullable":true},"GitsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/GitInstance"},"instances":{"$ref":"#/components/schemas/GitItems"}},"nullable":true,"type":"object"},"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"},"GitCommon":{"properties":{"repository":{"description":"URL to a remote Git repository. The content of this repository will be mapped to the container running the workload. (mandatory)","type":"string","minLength":1,"maxLength":2048,"nullable":true},"branch":{"description":"Specific branch to synchronize the repository from.","type":"string","minLength":1,"maxLength":63,"nullable":true},"revision":{"description":"Specific revision to synchronize the repository from.","type":"string","minLength":1,"maxLength":63,"nullable":true},"path":{"description":"Local path within the workload to which the Git repository will be mapped (mandatory).","type":"string","minLength":1,"maxLength":4096,"nullable":true}},"nullable":true,"type":"object"},"GitPassword":{"properties":{"passwordSecret":{"description":"Secret containing the credentials of the repository (needed for non public repository which requires authentication). (deprecated)","type":"string","minLength":1,"nullable":true},"secretKeyOfUser":{"description":"The key to use for loading the user name from the secret. The default is `User`. (deprecated)","type":"string","minLength":1,"nullable":true},"secretKeyOfPassword":{"description":"The key to use for loading the password from the secret. The default is `Password`. (deprecated)","type":"string","minLength":1,"nullable":true}},"nullable":true,"type":"object"},"GitSecretRef":{"properties":{"name":{"description":"Name of the Secret containing the credentials of the repository.","type":"string","minLength":1},"authenticationMethod":{"$ref":"#/components/schemas/GitAuthenticationMethod"},"secretKeyOfUser":{"description":"The key in the Secret that contains the Git username (used for `password` authentication).","type":"string","minLength":1,"nullable":true},"secretKeyOfPassword":{"description":"The key in the Secret that contains the Git password (used for `password` authentication).","type":"string","minLength":1,"nullable":true}},"nullable":true,"type":"object"},"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,"enum":["password","ssh-key"]},"GitItems":{"description":"Set of git repositories to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/GitInstance"},"maxItems":1000,"nullable":true},"HostPathsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/HostPathInstance"},"instances":{"$ref":"#/components/schemas/HostPathItems"}},"nullable":true,"type":"object"},"HostPathInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/HostPath"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"HostPath":{"properties":{"path":{"description":"Local path within the controller to which the host volume will be mapped. (mandatory)","type":"string","minLength":1,"maxLength":4096,"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,"maxLength":4096,"nullable":true,"pattern":".*"},"mountPropagation":{"$ref":"#/components/schemas/HostPathMountPropagation"}},"nullable":true,"type":"object"},"HostPathMountPropagation":{"description":"Share this volumes mount with other containers. If set to HostToContainer, this volume mount will receive all subsequent mounts that are mounted to this volume or any of its subdirectories. In case of multiple hostPath entries, this field should have the same value for all of them.","type":"string","enum":["None","HostToContainer"],"nullable":true},"HostPathItems":{"description":"Set of host paths to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/HostPathInstance"},"maxItems":1000,"nullable":true},"NfssDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/NfsInstance"},"instances":{"$ref":"#/components/schemas/NfsItems"}},"nullable":true,"type":"object"},"NfsInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/Nfs"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"Nfs":{"properties":{"path":{"description":"Path that is exported by the NFS server (mandatory). For more information, see [NFS](https://kubernetes.io/docs/concepts/storage/volumes#nfs).","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"readOnly":{"description":"Force the NFS export to be mounted with read-only permissions.","type":"boolean","default":true,"nullable":true},"server":{"description":"The hostname or IP address of the NFS server. (mandatory)","type":"string","minLength":1,"maxLength":253,"nullable":true,"pattern":".*"},"mountPath":{"description":"The path that the NFS volume will be mounted to when in use. (mandatory)","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"NfsItems":{"description":"Set of nfs volumes to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/NfsInstance"},"maxItems":1000,"nullable":true},"PvcsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/PvcInstance"},"instances":{"$ref":"#/components/schemas/PvcItems"}},"nullable":true,"type":"object"},"PvcInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/Pvc"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"Pvc":{"allOf":[{"$ref":"#/components/schemas/PvcFieldsUpdatable"},{"$ref":"#/components/schemas/PvcFieldsNonUpdatable"}]},"PvcFieldsUpdatable":{"properties":{"path":{"description":"Local path within the workload to which the PVC bucket will be mapped. (mandatory)","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"PvcFieldsNonUpdatable":{"properties":{"existingPvc":{"description":"Verify existing PVC. PVC is assumed to exist when set to `true`. If set to `false`, the PVC will be created, if it does not exist.","type":"boolean","default":false,"nullable":true},"claimName":{"description":"Name for the PVC. Allow referencing it across workloads. If not provided, a name based on the workload name and scope will be auto-generated.","type":"string","minLength":1,"maxLength":63,"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,"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,"nullable":true}},"nullable":true,"type":"object"},"ClaimInfo":{"description":"Claim information for the newly created PVC. The information should not be provided when attempting to use existing PVC.","properties":{"size":{"$ref":"#/components/schemas/PvcClaimSize"},"storageClass":{"description":"Storage class name to associate with the PVC. This parameter may be omitted if there is a single storage class in the system, or you are using the default storage class. For more information, see [Storage class](https://kubernetes.io/docs/concepts/storage/storage-classes).","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$"},"accessModes":{"$ref":"#/components/schemas/PvcAccessModes"},"volumeMode":{"$ref":"#/components/schemas/PvcVolumeMode"},"addedAttrValues":{"$ref":"#/components/schemas/PvcAddedAttrValues"}},"nullable":true,"type":"object"},"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]*)$","maxLength":63,"nullable":true},"PvcAccessModes":{"description":"Default access mode(s) applied to newly created PVCs unless explicitly overridden.","properties":{"readWriteOnce":{"description":"Mount the volume as read/write by a single node.","type":"boolean","default":true,"nullable":true},"readOnlyMany":{"description":"Mount the volume as read-only by many nodes.","type":"boolean","default":false,"nullable":true},"readWriteMany":{"description":"Mount the volume as read/write by many nodes.","type":"boolean","default":false,"nullable":true}},"nullable":true,"type":"object"},"PvcVolumeMode":{"description":"Default volume mode for the PVC. Choose between Filesystem (default) or Block.","type":"string","enum":["Filesystem","Block"],"nullable":true},"PvcAddedAttrValues":{"description":"an optional array of key-values pairs that are written as annotations on the created PVC. the allowed attributes are determined according to the storage class configuration (see k8s-objects-tracker for further info).","type":"array","items":{"$ref":"#/components/schemas/PvcAddedAttrValue"},"maxItems":1000},"PvcAddedAttrValue":{"type":"object","required":["key"],"properties":{"key":{"type":"string","minLength":1,"maxLength":63,"pattern":"^([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]$"},"value":{"type":"string","pattern":".*","maxLength":10000}}},"PvcItems":{"description":"Set of pvc persistent volume claims to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/PvcInstance"},"maxItems":1000,"nullable":true},"S3sDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/S3Instance"},"instances":{"$ref":"#/components/schemas/S3Items"}},"nullable":true,"type":"object"},"S3Instance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/S3Common"},{"$ref":"#/components/schemas/S3AccessKey"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"S3Common":{"properties":{"bucket":{"description":"The name of the bucket. (mandatory)","type":"string","minLength":1,"nullable":true},"path":{"description":"Local path within the workload to which the S3 bucket will be mapped. (mandatory)","type":"string","minLength":1,"nullable":true},"url":{"description":"The url of the S3 service provider. The default is the URL of the Amazon AWS S3 service.","type":"string","minLength":1,"nullable":true}},"nullable":true,"type":"object"},"S3AccessKey":{"properties":{"accessKeySecret":{"description":"Name of the secret containing credentials of the S3 bucket. Used for private S3 buckets.","type":"string","minLength":1,"nullable":true,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$"},"secretKeyOfAccessKeyId":{"description":"The key to use for loading the access key id from the secret. The default is `AccessKeyId`. For more information, see [Credentials access keys](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html).","type":"string","minLength":1,"nullable":true,"pattern":".*"},"secretKeyOfSecretKey":{"description":"The key to use for loading the secret key from the secret. The default is `SecretKey`. For more information, see [Credentials access keys](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html).","type":"string","minLength":1,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"S3Items":{"description":"Set of s3 buckets to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/S3Instance"},"nullable":true},"SecretsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/SecretInstance"},"instances":{"$ref":"#/components/schemas/SecretItems"}},"nullable":true,"type":"object"},"SecretInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/Secret"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"Secret":{"allOf":[{"$ref":"#/components/schemas/SecretFieldsUpdatable"},{"$ref":"#/components/schemas/SecretFieldsNonUpdatable"}]},"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"},"SecretFieldsNonUpdatable":{"properties":{"secret":{"description":"The name of the Secret resource. (mandatory)","type":"string","minLength":1,"nullable":true}},"nullable":true,"type":"object"},"SecretItems":{"description":"Set of secret volumes to use in the workload","type":"array","items":{"$ref":"#/components/schemas/SecretInstance"},"nullable":true},"TerminateAfterPreemption":{"description":"Indicates if the job should be terminated by the system after it has been preempted.","type":"boolean","nullable":true},"TerminationGracePeriod":{"description":"Duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down).","format":"int64","type":"integer","minimum":0,"nullable":true},"TolerationsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/Toleration"},"instances":{"$ref":"#/components/schemas/Tolerations"}},"nullable":true,"type":"object"},"Toleration":{"description":"Toleration details.","properties":{"name":{"description":"The name of the toleration.","type":"string","minLength":1,"maxLength":253,"nullable":true,"pattern":".*"},"operator":{"$ref":"#/components/schemas/TolerationOperator"},"key":{"description":"The taint key that the toleration applies to. (mandatory)","type":"string","maxLength":253,"nullable":true,"pattern":".*"},"value":{"description":"The taint value the toleration matches to. Mandatory if operator is Exists, forbidden otherwise.","type":"string","maxLength":10000,"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","nullable":true}},"nullable":true,"type":"object"},"TolerationOperator":{"description":"A key's relationship to the value. Equal uses key and value. Exists is equivalent to wildcard for value, so that a workload can tolerate all taints of a particular category. (mandatory)","type":"string","enum":["Equal","Exists"],"nullable":true},"TolerationEffect":{"description":"The taint effect to match. (mandatory)","type":"string","enum":["NoSchedule","NoExecute","PreferNoSchedule","Any"],"nullable":true},"Tolerations":{"description":"Set of tolerations to apply to the workload.","type":"array","items":{"$ref":"#/components/schemas/Toleration"},"maxItems":1000,"nullable":true},"Tty":{"description":"Whether this container should allocate a TTY for itself, also requires 'stdin' to be true.","type":"boolean","nullable":true},"WorkingDir":{"description":"Container's working directory. If not specified, the container runtime default will be used. This may be configured in the container image.","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"TrainingPolicyRulesV2":{"allOf":[{"nullable":true,"properties":{"annotations":{"$ref":"#/components/schemas/InstancesRules"},"args":{"$ref":"#/components/schemas/StringRules"},"autoDeletionTimeAfterCompletionSeconds":{"$ref":"#/components/schemas/IntegerRules"},"backoffLimit":{"$ref":"#/components/schemas/IntegerRules"},"category":{"$ref":"#/components/schemas/StringRules"},"command":{"$ref":"#/components/schemas/StringRules"},"completions":{"$ref":"#/components/schemas/IntegerRules"},"compute":{"$ref":"#/components/schemas/SupersetRulesAllOfCompute"},"createHomeDir":{"$ref":"#/components/schemas/BooleanRules"},"environmentVariables":{"$ref":"#/components/schemas/InstancesRules"},"exposedUrls":{"$ref":"#/components/schemas/ExposedUrlsRules"},"image":{"$ref":"#/components/schemas/StringRules"},"imagePullPolicy":{"$ref":"#/components/schemas/ImagePullPolicyRules"},"imagePullSecrets":{"$ref":"#/components/schemas/ImagePullSecretsRules"},"labels":{"$ref":"#/components/schemas/InstancesRules"},"nodeAffinityRequired":{"$ref":"#/components/schemas/ArbitraryRules"},"nodePools":{"$ref":"#/components/schemas/ArrayRules"},"nodeType":{"$ref":"#/components/schemas/StringRules"},"parallelism":{"$ref":"#/components/schemas/IntegerRules"},"podAffinity":{"$ref":"#/components/schemas/PodAffinityRules"},"ports":{"$ref":"#/components/schemas/PortsRules"},"preemptibility":{"$ref":"#/components/schemas/PreemptibilityRules"},"priorityClass":{"$ref":"#/components/schemas/StringRules"},"probes":{"$ref":"#/components/schemas/ProbesRules"},"relatedUrls":{"$ref":"#/components/schemas/RelatedUrlsRules"},"restartPolicy":{"$ref":"#/components/schemas/RestartPolicyRule"},"security":{"$ref":"#/components/schemas/SupersetRulesAllOfSecurity"},"stdin":{"$ref":"#/components/schemas/BooleanRules"},"storage":{"nullable":true,"properties":{"configMapVolume":{"$ref":"#/components/schemas/ConfigMapsRules"},"dataVolume":{"$ref":"#/components/schemas/DataVolumesRules"},"emptyDirVolume":{"$ref":"#/components/schemas/EmptyDirsRules"},"git":{"$ref":"#/components/schemas/GitsRules"},"hostPath":{"$ref":"#/components/schemas/HostPathsRules"},"nfs":{"$ref":"#/components/schemas/NfssRules"},"pvc":{"$ref":"#/components/schemas/PvcsRules"},"s3":{"$ref":"#/components/schemas/S3sRules"},"secretVolume":{"$ref":"#/components/schemas/SecretsRules"}},"type":"object"},"terminateAfterPreemption":{"$ref":"#/components/schemas/BooleanRules"},"terminationGracePeriodSeconds":{"$ref":"#/components/schemas/IntegerRules"},"tolerations":{"$ref":"#/components/schemas/TolerationsRules"},"tty":{"$ref":"#/components/schemas/BooleanRules"},"workingDir":{"$ref":"#/components/schemas/StringRules"}},"type":"object"}]},"InstancesRules":{"properties":{"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ItemRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"canAdd":{"description":"Whether it is permitted to add items. Default to true.","type":"boolean","nullable":true},"locked":{"description":"Set of keys for items that are \"locked\", i.e. cannot be removed or deleted.","type":"array","items":{"type":"string"}}},"nullable":true,"type":"object"},"SourceOfRule":{"description":"This field is used by the system along with effective rules, in order to specify the org unit from which this effective rule has been derived. It should be left empty when sending apply policy requests.","required":["scope"],"properties":{"scope":{"$ref":"#/components/schemas/ScopeType"},"projectId":{"$ref":"#/components/schemas/ProjectIdOptional"},"departmentId":{"$ref":"#/components/schemas/DepartmentIdOptional"},"clusterId":{"$ref":"#/components/schemas/ClusterIdOptional"},"isFallback":{"description":"source of this rule is the fallback policy","type":"boolean"}},"nullable":true,"type":"object"},"StringRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/StringRulesOptions"}],"nullable":true,"type":"object"},"StringRulesCommon":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory, default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable, default to true","type":"boolean","nullable":true},"blocked":{"description":"Blocks the field to prevent workloads from specifying any value for it.","type":"boolean","nullable":true}}},"StringRulesOptions":{"properties":{"options":{"description":"Set of options that the value of the field must be chosen from.","type":"array","items":{"$ref":"#/components/schemas/StringOption"},"nullable":true}}},"StringOption":{"description":"One of the values that the field can be assigned to, when options police is applied on the field.","required":["value"],"properties":{"value":{"description":"The value that the field should hold","type":"string","pattern":".*"},"displayed":{"description":"Textual description of the value. to be used by user interface applications.","type":"string","nullable":true,"pattern":".*"}}},"IntegerRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory. default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"max":{"description":"The maximum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"step":{"description":"The minimal difference between two values the field can be assigned to. For example, min=2, max=10, step=2 implies that the values the field can hold are 2, 4, 6, 8 and 10.","type":"integer","format":"int32","nullable":true},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"DefaultFromRule":{"properties":{"field":{"description":"The default of this field is taken from another field, with optional factor. The specified field must belong to the same workload section (compute, security, etc). For itemized field, the value of the field will be taken from the same instance.","type":"string","nullable":true,"pattern":".*"},"factor":{"description":"Multiple the value of the fromField by this factor to get the value for this field For example, if factor is 2 and defaultFrom field has value of 8, the calculated default will be determined to be 16.","type":"number","format":"double","nullable":true,"default":1}},"nullable":true,"type":"object"},"SupersetRulesAllOfCompute":{"title":"SupersetRulesAllOfCompute","nullable":true,"properties":{"cpuCoreLimit":{"$ref":"#/components/schemas/NumberRules"},"cpuCoreRequest":{"$ref":"#/components/schemas/NumberRules"},"cpuMemoryLimit":{"$ref":"#/components/schemas/QuantityRules"},"cpuMemoryRequest":{"$ref":"#/components/schemas/QuantityRules"},"extendedResources":{"$ref":"#/components/schemas/ExtendedResourcesRules"},"gpuDevicesRequest":{"$ref":"#/components/schemas/IntegerRules"},"gpuMemoryLimit":{"$ref":"#/components/schemas/QuantityRules"},"gpuMemoryRequest":{"$ref":"#/components/schemas/QuantityRules"},"gpuPortionLimit":{"$ref":"#/components/schemas/NumberRules"},"gpuPortionRequest":{"$ref":"#/components/schemas/NumberRules"},"gpuRequestType":{"$ref":"#/components/schemas/GpuRequestRules"},"largeShmRequest":{"$ref":"#/components/schemas/BooleanRules"}},"type":"object"},"NumberRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory. default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"number","nullable":true},"max":{"description":"The maximum value that the field can be assigned to.","type":"number","nullable":true},"step":{"description":"The minimal difference between two values the field can be assigned to. For example, min=2, max=3, step=0.25 implies that the values the field can hold are 2, 2.25, 2.5 and 3.","type":"number","nullable":true},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"QuantityRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory, default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable, default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"string","nullable":true,"pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"},"max":{"description":"The maximum value that the field can be assigned to.","type":"string","nullable":true,"pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"ExtendedResourcesRules":{"properties":{"attributes":{"$ref":"#/components/schemas/ExtendedResourceRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ExtendedResourceRules":{"description":"Rules for the attributes of extendedResources","properties":{"quantity":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"GpuRequestRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/GpuRequestOptions"}],"nullable":true,"type":"object"},"GpuRequestOptions":{"properties":{"options":{"description":"Limit the permitted values for gpuRequest to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/GpuRequestType"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"BooleanRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory. default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true}},"nullable":true,"type":"object"},"ExposedUrlsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/ExposedUrlRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ExposedUrlRules":{"description":"Rules for the attributed of exposedUrls","properties":{"container":{"$ref":"#/components/schemas/IntegerRules"},"customUrl":{"$ref":"#/components/schemas/BooleanRules"},"url":{"$ref":"#/components/schemas/StringRules"},"authorizedUsers":{"$ref":"#/components/schemas/ArrayRules"},"authorizedGroups":{"$ref":"#/components/schemas/ArrayRules"},"toolType":{"$ref":"#/components/schemas/StringRules"},"toolName":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"ArrayRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether this array is mandatory. Mandatory array must include at least one item. default to false.","type":"boolean","nullable":true},"options":{"description":"Set of options that the value of each item of the array must be chosen from.","type":"array","items":{"$ref":"#/components/schemas/StringOption"}},"canEdit":{"description":"Whether the value of the array, as a whole, is editable. default to false.","type":"boolean","nullable":true}},"nullable":true,"type":"object"},"ImagePullPolicyRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/ImagePullPolicyOptions"}],"nullable":true,"type":"object"},"ImagePullPolicyOptions":{"properties":{"options":{"description":"Limit the permitted values for imagePullPolicy to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/ImagePullPolicy"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ImagePullSecretsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/ImagePullSecretsRulesAttributes"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ImagePullSecretsRulesAttributes":{"description":"Rules for the attributes of imagePullSecrets","properties":{"name":{"$ref":"#/components/schemas/StringRules"},"userCredentials":{"$ref":"#/components/schemas/BooleanRules"}},"nullable":true,"type":"object"},"ArbitraryRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether this arbitrary object is mandatory. default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field, as a whole, is editable. default to false.","type":"boolean","nullable":true}},"nullable":true,"type":"object"},"PodAffinityRules":{"properties":{"type":{"$ref":"#/components/schemas/PodAffinityTypeRules"},"key":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"PodAffinityTypeRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/PodAffinityTypeOptions"}],"nullable":true,"type":"object"},"PodAffinityTypeOptions":{"properties":{"options":{"type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/PodAffinityType"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"type":"object"},"PortsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/PortRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"PortRules":{"description":"Rules for port attributes","properties":{"container":{"$ref":"#/components/schemas/IntegerRules"},"serviceType":{"$ref":"#/components/schemas/PortServiceTypeRules"},"customExternalPort":{"$ref":"#/components/schemas/BooleanRules"},"external":{"$ref":"#/components/schemas/IntegerRules"},"toolType":{"$ref":"#/components/schemas/StringRules"},"toolName":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"PortServiceTypeRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/PortServiceTypeOptions"}],"nullable":true,"type":"object"},"PortServiceTypeOptions":{"properties":{"options":{"type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/PortServiceType"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"PreemptibilityRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/PreemptibilityOptions"}],"nullable":true,"type":"object"},"PreemptibilityOptions":{"properties":{"options":{"description":"Limit the permitted values for preemptibility to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/Preemptibility"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ProbesRules":{"properties":{"readiness":{"$ref":"#/components/schemas/ProbeRules"}},"nullable":true,"type":"object"},"ProbeRules":{"properties":{"initialDelaySeconds":{"$ref":"#/components/schemas/IntegerRules"},"periodSeconds":{"$ref":"#/components/schemas/IntegerRules"},"timeoutSeconds":{"$ref":"#/components/schemas/IntegerRules"},"successThreshold":{"$ref":"#/components/schemas/IntegerRules"},"failureThreshold":{"$ref":"#/components/schemas/IntegerRules"},"handler":{"$ref":"#/components/schemas/ProbeHandlerRules"}},"nullable":true,"type":"object"},"ProbeHandlerRules":{"properties":{"httpGet":{"properties":{"path":{"$ref":"#/components/schemas/StringRules"},"port":{"$ref":"#/components/schemas/IntegerRules"},"host":{"$ref":"#/components/schemas/StringRules"},"scheme":{"$ref":"#/components/schemas/StringRules"}}}},"nullable":true,"type":"object"},"RelatedUrlsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/RelatedUrlRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"RelatedUrlRules":{"description":"Rules for the attributes of relatedUrls","properties":{"url":{"$ref":"#/components/schemas/StringRules"},"type":{"$ref":"#/components/schemas/StringRules"},"name":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"RestartPolicyRule":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/RestartPolicyOptions"}],"nullable":true,"type":"object"},"RestartPolicyOptions":{"properties":{"options":{"description":"Limit the permitted values for restartPolicy to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/RestartPolicy"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"SupersetRulesAllOfSecurity":{"title":"SupersetRulesAllOfSecurity","nullable":true,"properties":{"allowPrivilegeEscalation":{"$ref":"#/components/schemas/BooleanRules"},"capabilities":{"$ref":"#/components/schemas/ArrayRules"},"hostIpc":{"$ref":"#/components/schemas/BooleanRules"},"hostNetwork":{"$ref":"#/components/schemas/BooleanRules"},"readOnlyRootFilesystem":{"$ref":"#/components/schemas/BooleanRules"},"runAsGid":{"$ref":"#/components/schemas/IntegerRulesOptional"},"runAsNonRoot":{"$ref":"#/components/schemas/BooleanRules"},"runAsUid":{"$ref":"#/components/schemas/IntegerRulesOptional"},"seccompProfileType":{"$ref":"#/components/schemas/SeccompProfileTypeRules"},"supplementalGroups":{"$ref":"#/components/schemas/StringRules"},"uidGidSource":{"$ref":"#/components/schemas/UidGidSourceRules"}},"type":"object"},"IntegerRulesOptional":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"max":{"description":"The maximum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"step":{"description":"The minimal difference between two values the field can be assigned to. For example, min=2, max=10, step=2 implies that the values the field can hold are 2, 4, 6, 8 and 10.","type":"integer","format":"int32","nullable":true},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"SeccompProfileTypeRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/SeccompProfileTypeOptions"}],"nullable":true,"type":"object"},"SeccompProfileTypeOptions":{"properties":{"options":{"description":"Limit the permitted values for secompProfileType to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/SeccompProfileType"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"UidGidSourceRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/UidGidSourceOptions"}],"nullable":true,"type":"object"},"UidGidSourceOptions":{"properties":{"options":{"description":"Limit the permitted values for uidGidSource to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/UidGidSource"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ConfigMapsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/ConfigMapRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ConfigMapRules":{"properties":{"configMap":{"$ref":"#/components/schemas/StringRules"},"mountPath":{"$ref":"#/components/schemas/StringRules"},"subPath":{"$ref":"#/components/schemas/StringRules"},"defaultMode":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"DataVolumesRules":{"properties":{"attributes":{"$ref":"#/components/schemas/DataVolumeRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"DataVolumeRules":{"properties":{"id":{"$ref":"#/components/schemas/StringRules"},"mountPath":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"EmptyDirsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/EmptyDirRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"EmptyDirRules":{"properties":{"path":{"$ref":"#/components/schemas/StringRules"},"medium":{"$ref":"#/components/schemas/StringRules"},"sizeLimit":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"GitsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/GitRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"GitRules":{"properties":{"repository":{"$ref":"#/components/schemas/StringRules"},"branch":{"$ref":"#/components/schemas/StringRules"},"revision":{"$ref":"#/components/schemas/StringRules"},"path":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"HostPathsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/HostPathRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"HostPathRules":{"properties":{"path":{"$ref":"#/components/schemas/StringRules"},"readOnly":{"$ref":"#/components/schemas/BooleanRules"},"mountPath":{"$ref":"#/components/schemas/StringRules"},"mountPropagation":{"$ref":"#/components/schemas/HostPathMountPropagationRules"}},"nullable":true,"type":"object"},"HostPathMountPropagationRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/HostPathMountPropagationOptions"}],"nullable":true,"type":"object"},"HostPathMountPropagationOptions":{"properties":{"options":{"type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/HostPathMountPropagation"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}}},"NfssRules":{"properties":{"attributes":{"$ref":"#/components/schemas/NfsRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"NfsRules":{"properties":{"path":{"$ref":"#/components/schemas/StringRules"},"readOnly":{"$ref":"#/components/schemas/BooleanRules"},"server":{"$ref":"#/components/schemas/StringRules"},"mountPath":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"PvcsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/PvcRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"PvcRules":{"properties":{"claimName":{"$ref":"#/components/schemas/StringRules"},"path":{"$ref":"#/components/schemas/StringRules"},"readOnly":{"$ref":"#/components/schemas/BooleanRules"},"claimInfo":{"$ref":"#/components/schemas/ClaimInfoRules"}},"nullable":true,"type":"object"},"ClaimInfoRules":{"properties":{"size":{"$ref":"#/components/schemas/StringRules"},"storageClass":{"$ref":"#/components/schemas/StringRules"},"accessModes":{"$ref":"#/components/schemas/PvcAccessModesRules"}},"nullable":true,"type":"object"},"PvcAccessModesRules":{"description":"Rules for access mode(s) for a newly created PVC.","properties":{"readWriteOnce":{"$ref":"#/components/schemas/BooleanRules"},"readOnlyMany":{"$ref":"#/components/schemas/BooleanRules"},"readWriteMany":{"$ref":"#/components/schemas/BooleanRules"}},"nullable":true,"type":"object"},"S3sRules":{"properties":{"attributes":{"$ref":"#/components/schemas/S3Rules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"S3Rules":{"properties":{"bucket":{"$ref":"#/components/schemas/StringRules"},"path":{"$ref":"#/components/schemas/StringRules"},"url":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"SecretsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/SecretRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"SecretRules":{"properties":{"secret":{"$ref":"#/components/schemas/StringRules"},"mountPath":{"$ref":"#/components/schemas/StringRules"},"defaultMode":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"TolerationsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/TolerationRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"TolerationRules":{"description":"Toleration details.","properties":{"operator":{"$ref":"#/components/schemas/TolerationOperatorRules"},"key":{"$ref":"#/components/schemas/StringRules"},"value":{"$ref":"#/components/schemas/StringRules"},"effect":{"$ref":"#/components/schemas/TolerationEffectRules"},"seconds":{"$ref":"#/components/schemas/IntegerRules"},"exclude":{"$ref":"#/components/schemas/BooleanRules"}},"nullable":true,"type":"object"},"TolerationOperatorRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/TolerationOperatorOptions"}],"nullable":true,"type":"object"},"TolerationOperatorOptions":{"properties":{"options":{"description":"Limit the permitted values for imagePullPolicy to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/TolerationOperator"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"TolerationEffectRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/TolerationEffectOptions"}],"nullable":true,"type":"object"},"TolerationEffectOptions":{"properties":{"options":{"description":"Limit the permitted values for imagePullPolicy to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/TolerationEffect"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ImposedAssets":{"description":"a list of datasource assets to import into the policy. these datasources will be included in any workload that will be created in the scope of the policy.","type":"array","items":{"type":"string","format":"uuid"},"nullable":true},"PolicyValidationStatus":{"properties":{"validation":{"properties":{"errorMessage":{"pattern":".*","type":"string","description":"In case validation failed, holds the error message explaining the issue"}},"nullable":true,"type":"object"}},"nullable":true,"type":"object"},"TrainingPolicyV2":{"properties":{"meta":{"$ref":"#/components/schemas/PolicyMeta"},"policy":{"$ref":"#/components/schemas/TrainingPolicyDefaultsAndRulesV2"},"effective":{"$ref":"#/components/schemas/TrainingPolicyDefaultsAndRulesV2"},"effectiveUpdatedAt":{"$ref":"#/components/schemas/Timestamp"}},"nullable":true,"type":"object"},"PolicyMeta":{"allOf":[{"$ref":"#/components/schemas/PolicyReadOnlyFields"},{"$ref":"#/components/schemas/PolicyCreationFields"}]},"PolicyReadOnlyFields":{"required":["id","createdBy","createdAt","updatedBy","updatedAt"],"properties":{"id":{"$ref":"#/components/schemas/PolicyId"},"tenantId":{"$ref":"#/components/schemas/TenantId"},"clusterId":{"$ref":"#/components/schemas/ClusterIdOptional"},"createdBy":{"description":"The user who created the policy.","type":"string","minLength":1},"createdAt":{"description":"The time at which the policy wes created","type":"string","minLength":1,"format":"date-time"},"updatedBy":{"description":"The user who updated the policy.","type":"string","minLength":1},"updatedAt":{"description":"The time at which the policy has been updated","type":"string","minLength":1,"format":"date-time"}}},"PolicyId":{"description":"The unique id of the policy.","type":"string","minLength":1,"format":"uuid"},"TenantId":{"description":"The id of the tenant.","type":"integer","format":"int32"},"Timestamp":{"description":"The time at which an event occurred. e.g. the time an effective policy has been updated","type":"string","minLength":1,"format":"date-time"},"Error":{"required":["code","message"],"properties":{"code":{"type":"integer","minimum":100,"maximum":599},"message":{"type":"string"},"details":{"type":"string"}}}},"responses":{"400BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401Unauthorized":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403Forbidden":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503ServiceUnavailable":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/api/v2/policy/trainings":{"put":{"summary":"Overwrite a training policy.","description":"Use to apply a training policy for a given organizational unit.","operationId":"overwrite_training_policy_v2","tags":["Policy"],"parameters":[{"$ref":"#/components/parameters/ValidateOnly"},{"$ref":"#/components/parameters/ApproveClusterDeletion"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrainingPolicyOverwriteRequestV2"}}}},"responses":{"200":{"description":"Policy applied.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrainingPolicyV2"}}}},"400":{"$ref":"#/components/responses/400BadRequest"},"401":{"$ref":"#/components/responses/401Unauthorized"},"403":{"$ref":"#/components/responses/403Forbidden"},"503":{"$ref":"#/components/responses/503ServiceUnavailable"}}}}}}
```

## Delete a training policy.

> Use to delete a training policy for a given organizational unit.

```json
{"openapi":"3.0.3","info":{"title":"NVIDIA Run:ai","version":"2.26"},"tags":[{"name":"Policy","description":"Policies allow administrators to impose restrictions and set default values for researcher workloads. \nRestrictions and default values can be placed on CPUs, GPUs, and other resources or entities. \nFor more information, see [Policies](https://run-ai-docs.nvidia.com/self-hosted/2.26/platform-management/policies/#introduction).\n"}],"servers":[{"url":"https://app.run.ai"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer authentication"}},"parameters":{"PolicyScope":{"name":"scope","in":"query","required":true,"description":"The scope that the policy relates to.","schema":{"type":"string","enum":["tenant","cluster","department","project"]}},"FilterByDepartment":{"name":"departmentId","in":"query","description":"Filter using the department id.","required":false,"schema":{"type":"string"}},"FilterByProject":{"name":"projectId","in":"query","description":"project id to filter by","required":false,"schema":{"type":"string"}},"FilterByCluster":{"name":"clusterId","in":"query","description":"Filter using the Universally Unique Identifier (UUID) of the cluster.","required":false,"schema":{"type":"string","format":"uuid"}},"ApproveClusterDeletion":{"name":"approveClusterDeletion","in":"query","required":false,"description":"Required when modifying or deleting a policy if the tenant includes one or more clusters running version 2.20 or earlier. In such cases, the platform must delete the policy from the affected clusters. This flag indicates that the administrator approves this deletion.","schema":{"type":"boolean"}}},"responses":{"400BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401Unauthorized":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403Forbidden":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404NotFound":{"description":"The specified resource was not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503ServiceUnavailable":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"schemas":{"Error":{"required":["code","message"],"properties":{"code":{"type":"integer","minimum":100,"maximum":599},"message":{"type":"string"},"details":{"type":"string"}}}}},"paths":{"/api/v2/policy/trainings":{"delete":{"summary":"Delete a training policy.","description":"Use to delete a training policy for a given organizational unit.","operationId":"delete_training_policy","tags":["Policy"],"parameters":[{"$ref":"#/components/parameters/PolicyScope"},{"$ref":"#/components/parameters/FilterByDepartment"},{"$ref":"#/components/parameters/FilterByProject"},{"$ref":"#/components/parameters/FilterByCluster"},{"$ref":"#/components/parameters/ApproveClusterDeletion"}],"responses":{"204":{"description":"The policy was deleted successfully."},"400":{"$ref":"#/components/responses/400BadRequest"},"401":{"$ref":"#/components/responses/401Unauthorized"},"403":{"$ref":"#/components/responses/403Forbidden"},"404":{"$ref":"#/components/responses/404NotFound"},"503":{"$ref":"#/components/responses/503ServiceUnavailable"}}}}}}
```

## Update a training policy.

> Use to apply changes to a training policy for a given organizational unit.

```json
{"openapi":"3.0.3","info":{"title":"NVIDIA Run:ai","version":"2.26"},"tags":[{"name":"Policy","description":"Policies allow administrators to impose restrictions and set default values for researcher workloads. \nRestrictions and default values can be placed on CPUs, GPUs, and other resources or entities. \nFor more information, see [Policies](https://run-ai-docs.nvidia.com/self-hosted/2.26/platform-management/policies/#introduction).\n"}],"servers":[{"url":"https://app.run.ai"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer authentication"}},"parameters":{"ValidateOnly":{"name":"validateOnly","in":"query","required":false,"description":"Validate the given policy payload without applying it","schema":{"type":"boolean"}},"ApproveClusterDeletion":{"name":"approveClusterDeletion","in":"query","required":false,"description":"Required when modifying or deleting a policy if the tenant includes one or more clusters running version 2.20 or earlier. In such cases, the platform must delete the policy from the affected clusters. This flag indicates that the administrator approves this deletion.","schema":{"type":"boolean"}}},"schemas":{"TrainingPolicyChangeRequestV2":{"properties":{"meta":{"$ref":"#/components/schemas/PolicyCreationFields"},"policy":{"$ref":"#/components/schemas/TrainingPolicyDefaultsAndRulesV2"},"reset":{"$ref":"#/components/schemas/FieldsToReset"}},"type":"object"},"PolicyCreationFields":{"required":["name","scope"],"properties":{"scope":{"$ref":"#/components/schemas/ScopeType"},"projectId":{"$ref":"#/components/schemas/ProjectIdOptional"},"departmentId":{"$ref":"#/components/schemas/DepartmentIdOptional"},"clusterId":{"$ref":"#/components/schemas/ClusterIdOptional"},"name":{"$ref":"#/components/schemas/PolicyName"}}},"ScopeType":{"type":"string","enum":["system","tenant","cluster","department","project"]},"ProjectIdOptional":{"description":"The id of the project.","type":"integer","format":"int32","nullable":true},"DepartmentIdOptional":{"description":"The id of the department.","type":"string","minLength":1,"nullable":true,"pattern":".*"},"ClusterIdOptional":{"description":"The id of the cluster.","type":"string","format":"uuid","minLength":1,"nullable":true},"PolicyName":{"description":"A chosen name for the policy.","type":"string","minLength":1,"pattern":".*"},"TrainingPolicyDefaultsAndRulesV2":{"properties":{"defaults":{"allOf":[{"$ref":"#/components/schemas/TrainingPolicyDefaultsV2"}],"nullable":true,"type":"object"},"rules":{"allOf":[{"$ref":"#/components/schemas/TrainingPolicyRulesV2"}],"nullable":true,"type":"object"},"imposedAssets":{"$ref":"#/components/schemas/ImposedAssets"},"status":{"$ref":"#/components/schemas/PolicyValidationStatus"}},"nullable":true,"type":"object"},"TrainingPolicyDefaultsV2":{"allOf":[{"nullable":true,"properties":{"annotations":{"$ref":"#/components/schemas/AnnotationsDefaults"},"args":{"$ref":"#/components/schemas/Args"},"autoDeletionTimeAfterCompletionSeconds":{"$ref":"#/components/schemas/AutoDeletionTimeAfterPreemption"},"backoffLimit":{"$ref":"#/components/schemas/BackoffLimit"},"category":{"$ref":"#/components/schemas/Category"},"command":{"$ref":"#/components/schemas/Command"},"completions":{"$ref":"#/components/schemas/Completions"},"compute":{"$ref":"#/components/schemas/SupersetDefaultsAllOfCompute"},"createHomeDir":{"$ref":"#/components/schemas/CreateHomeDir"},"environmentVariables":{"$ref":"#/components/schemas/EnvironmentVariablesDefaults"},"exposedUrls":{"$ref":"#/components/schemas/ExposedUrlsDefaults"},"image":{"$ref":"#/components/schemas/Image"},"imagePullPolicy":{"$ref":"#/components/schemas/ImagePullPolicy"},"imagePullSecrets":{"$ref":"#/components/schemas/ImagePullSecretsDefaults"},"labels":{"$ref":"#/components/schemas/LabelsDefaults"},"nodeAffinityRequired":{"$ref":"#/components/schemas/NodeAffinityRequired"},"nodePools":{"$ref":"#/components/schemas/NodePools"},"nodeType":{"$ref":"#/components/schemas/NodeType2"},"parallelism":{"$ref":"#/components/schemas/Parallelism"},"podAffinity":{"$ref":"#/components/schemas/PodAffinity"},"ports":{"$ref":"#/components/schemas/PortsDefaults"},"preemptibility":{"$ref":"#/components/schemas/Preemptibility"},"priorityClass":{"$ref":"#/components/schemas/PriorityClass"},"probes":{"$ref":"#/components/schemas/Probes"},"relatedUrls":{"$ref":"#/components/schemas/RelatedUrlsDefaults"},"restartPolicy":{"$ref":"#/components/schemas/RestartPolicy"},"security":{"$ref":"#/components/schemas/SupersetDefaultsAllOfSecurity"},"stdin":{"$ref":"#/components/schemas/Stdin"},"storage":{"nullable":true,"properties":{"configMapVolume":{"$ref":"#/components/schemas/ConfigMapsDefaults"},"dataVolume":{"$ref":"#/components/schemas/DataVolumesDefaults"},"emptyDirVolume":{"$ref":"#/components/schemas/EmptyDirsDefaults"},"git":{"$ref":"#/components/schemas/GitsDefaults"},"hostPath":{"$ref":"#/components/schemas/HostPathsDefaults"},"nfs":{"$ref":"#/components/schemas/NfssDefaults"},"pvc":{"$ref":"#/components/schemas/PvcsDefaults"},"s3":{"$ref":"#/components/schemas/S3sDefaults"},"secretVolume":{"$ref":"#/components/schemas/SecretsDefaults"}},"type":"object"},"terminateAfterPreemption":{"$ref":"#/components/schemas/TerminateAfterPreemption"},"terminationGracePeriodSeconds":{"$ref":"#/components/schemas/TerminationGracePeriod"},"tolerations":{"$ref":"#/components/schemas/TolerationsDefaults"},"tty":{"$ref":"#/components/schemas/Tty"},"workingDir":{"$ref":"#/components/schemas/WorkingDir"}},"type":"object"}]},"AnnotationsDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/Annotations"}},"nullable":true,"type":"object"},"Annotations":{"description":"Set of annotations to populate into the container running the workload.","type":"array","items":{"$ref":"#/components/schemas/Annotation"},"maxItems":1000,"nullable":true},"Annotation":{"description":"Annotation details to be populated into the container.","properties":{"name":{"description":"The name of the annotation (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":".*"},"value":{"description":"The value of the annotation.","type":"string","maxLength":10000,"nullable":true,"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","default":false,"nullable":true}},"nullable":true,"type":"object"},"Args":{"description":"Arguments to the command that the container running the workload executes.","type":"string","minLength":1,"maxLength":10000,"nullable":true,"pattern":".*"},"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","nullable":true},"BackoffLimit":{"description":"Specifies the number of retries before marking a workload as failed (not applicable to Inference workloads). The default value is 6.","format":"int64","type":"integer","nullable":true},"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":".*"},"Command":{"description":"A command to the server as the entry point of the container running the workload.","type":"string","minLength":1,"maxLength":10000,"nullable":true,"pattern":".*"},"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","format":"int32","nullable":true},"SupersetDefaultsAllOfCompute":{"title":"SupersetDefaultsAllOfCompute","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/ExtendedResourcesDefaults"},"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"},"CpuCoreLimit":{"description":"Limitations on the number of CPUs consumed by the workload (0.5, 1, .etc). The system guarantees that this workload will not be able to consume more than this amount of CPUs.","format":"double","type":"number","nullable":true,"minimum":0},"CpuCoreRequest":{"description":"CPU units to allocate for the created workload (0.5, 1, .etc). The workload will receive at least this amount of CPU. Note that the workload will not be scheduled unless the system can guarantee this amount of CPUs to the workload.","format":"double","type":"number","nullable":true,"minimum":0},"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]*)$","maxLength":63,"nullable":true},"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","pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$","maxLength":63,"nullable":true},"ExtendedResourcesDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/ExtendedResource"},"instances":{"$ref":"#/components/schemas/ExtendedResources"}},"nullable":true,"type":"object"},"ExtendedResource":{"description":"Quantity of an extended resource.","properties":{"resource":{"description":"The name of the extended resource (mandatory)","type":"string","minLength":1,"maxLength":253,"nullable":true,"pattern":".*"},"quantity":{"description":"The requested quantity for the resource.","type":"string","minLength":1,"maxLength":63,"nullable":true,"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","nullable":true}},"nullable":true,"type":"object"},"ExtendedResources":{"description":"Extended resources and their quantity.","type":"array","items":{"$ref":"#/components/schemas/ExtendedResource"},"maxItems":1000,"nullable":true},"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","format":"int32","nullable":true,"minimum":0},"GpuMemoryLimit":{"description":"Limitation on the memory consumed by the workload, per GPU device. The system guarantees The gpuMemoryLimit must be no less than gpuMemoryRequest.","type":"string","pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$","maxLength":63,"nullable":true},"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]*)$","maxLength":63,"nullable":true},"GpuPortionLimit":{"description":"Limitations on the portion consumed by the workload, per GPU device. The system guarantees The gpuPotionLimit must be no less than the gpuPortionRequest.","type":"number","format":"double","nullable":true,"minimum":0},"GpuPortionRequest":{"description":"Required if and only if gpuRequestType is portion. States the portion of the GPU to allocate for the created workload, per GPU device, between 0 and 1. The default is no allocated GPUs.","type":"number","format":"double","nullable":true,"minimum":0},"GpuRequestType":{"description":"Sets the unit type for GPU resources requests. Stated in terms of portion or memory. Sets the unit type for other GPU request fields. If `gpuDevicesRequest > 1`, only `portion` is supported. If `gpuDeviceRequest = 1`, the request type can be stated as `portion` or `memory`.","type":"string","minLength":1,"enum":["portion","memory"],"nullable":true},"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","nullable":true},"CreateHomeDir":{"description":"When set to `true`, creates a home directory for the container.","type":"boolean","nullable":true},"EnvironmentVariablesDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/EnvironmentVariables"}},"nullable":true,"type":"object"},"EnvironmentVariables":{"description":"Set of environment variables to populate into the container running the workload.","type":"array","items":{"$ref":"#/components/schemas/EnvironmentVariable"},"maxItems":1000,"nullable":true},"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,"maxLength":63,"nullable":true,"pattern":".*"},"value":{"description":"The value of the environment variable. (mutually exclusive with secret, userCredential, configMap and podFieldRef)","type":"string","maxLength":10000,"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","nullable":true},"description":{"description":"Description of the environment variable.","type":"string","maxLength":250,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"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,"maxLength":253,"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,"maxLength":63,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"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","minLength":1,"maxLength":253,"nullable":true,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$"},"key":{"description":"The key in the config-map resource. (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"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","minLength":1,"maxLength":10000,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"EnvironmentVariableUserCredential":{"description":"Defines a reference to a user-created credential and a specific key within that credential whose value will populate the environment variable. User credentials can only be accessed by the user who created them.","properties":{"name":{"description":"The name of the user credential.  (mandatory)","type":"string","minLength":1,"maxLength":253,"nullable":true},"key":{"description":"The key in the user credential resource. (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true}},"nullable":true,"type":"object"},"ExposedUrlsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/ExposedUrl"},"instances":{"$ref":"#/components/schemas/ExposedUrls"}},"nullable":true,"type":"object"},"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","nullable":true},"url":{"$ref":"#/components/schemas/Url"},"authorizationType":{"$ref":"#/components/schemas/AuthorizationType"},"authorizedUsers":{"$ref":"#/components/schemas/AuthorizedUsers"},"authorizedGroups":{"$ref":"#/components/schemas/AuthorizedGroups"},"toolType":{"description":"The tool type that runs on this container port.","type":"string","nullable":true,"pattern":".*"},"toolName":{"description":"A name describing the tool that runs on this url.","type":"string","nullable":true,"pattern":".*","maxLength":253},"name":{"description":"Unique name to identify the instance. primarily used for policy locked rules.","type":"string","minLength":1,"maxLength":253,"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","nullable":true}},"nullable":true,"type":"object"},"Url":{"description":"The URL for connecting to the container port. If not specified, the URL will be auto-generated by the system.","type":"string","maxLength":2048,"pattern":".*","nullable":true},"AuthorizationType":{"type":"string","enum":["authenticatedUsers","authorizedUsers","authorizedGroups"],"description":"Specifies who can access the connection URL:\n- `authenticatedUsers`: Any authenticated user or service account can access the URL; the authorizedUsers and authorizedGroups fields are ignored.\n- `authorizedUsers`: Only users listed in the authorizedUsers field are allowed to access the URL; the authorizedGroups field is ignored.\n- `authorizedGroups`: Only members of user groups listed in the authorizedGroups field are allowed to access the URL; the authorizedUsers field is ignored.\nIf 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.\n","nullable":true},"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","maxLength":253,"pattern":".*"},"maxItems":1000,"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","maxLength":253,"pattern":".*"},"maxItems":1000,"nullable":true},"ExposedUrls":{"description":"Set of container ports that the workload exposes via URLs.","type":"array","items":{"$ref":"#/components/schemas/ExposedUrl"},"maxItems":1000,"nullable":true},"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","minLength":1,"maxLength":253,"nullable":true,"pattern":".*"},"ImagePullPolicy":{"description":"Image pull policy. Defaults to `Always` if `:latest` tag is specified, otherwise it is `IfNotPresent`.","type":"string","minLength":1,"enum":["Always","Never","IfNotPresent"],"nullable":true},"ImagePullSecretsDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/ImagePullSecrets"}},"nullable":true,"type":"object"},"ImagePullSecrets":{"description":"A list of references to Kubernetes secrets in the same namespace used for pulling container images.","type":"array","items":{"$ref":"#/components/schemas/ImagePullSecret"},"maxItems":1000,"nullable":true},"ImagePullSecret":{"description":"A reference to a secret in the same namespace used to pull container images.","properties":{"name":{"type":"string","description":"The name of the Kubernetes secret containing the image pull credentials.","pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$","maxLength":253},"userCredential":{"type":"boolean","description":"Indicates whether the secret is a user credential. Set to true if the secret was created by the user and is only accessible by them.","nullable":true},"exclude":{"description":"Use 'true' in case the secret is defined in defaults of the policy, and you wish to exclude it from the workload.","type":"boolean","default":false,"nullable":true}},"nullable":true,"type":"object"},"LabelsDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/Labels"}},"nullable":true,"type":"object"},"Labels":{"description":"Set of labels to populate into the container running the workload.","type":"array","items":{"$ref":"#/components/schemas/Label"},"maxItems":1000,"nullable":true},"Label":{"description":"Label details to be populated into the container.","properties":{"name":{"description":"The name of the label (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":".*"},"value":{"description":"The value of the label.","type":"string","nullable":true,"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","nullable":true}},"nullable":true,"type":"object"},"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"},"maxItems":1000}},"nullable":true},"NodeSelectorTerm":{"type":"object","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"},"maxItems":1000}},"nullable":true},"MatchExpression":{"type":"object","description":"A selector that contains values, a key, and an operator that relates the key and values.","properties":{"key":{"description":"The label key that the selector applies to (mandatory).","type":"string","pattern":".*","maxLength":63},"operator":{"$ref":"#/components/schemas/MatchExpressionOperator"},"values":{"description":"An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer.","type":"array","items":{"type":"string","maxLength":10000,"pattern":".*"},"maxItems":1000}},"required":["key","operator"],"nullable":true},"MatchExpressionOperator":{"description":"Represents a key's relationship to a set of values (mandatory).","type":"string","enum":["In","NotIn","Exists","DoesNotExist","Gt","Lt"]},"NodePools":{"description":"A prioritized list of node pools for the scheduler to run the workload on. The scheduler will always try to use the first node pool before moving to the next one if the first is not available.","type":"array","items":{"type":"string","maxLength":63,"pattern":".*"},"maxItems":1000,"nullable":true},"NodeType2":{"deprecated":true,"description":"Deprecated: use a workload policy node selector to target node types instead. 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","minLength":1,"nullable":true,"pattern":".*"},"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","format":"int32","nullable":true},"PodAffinity":{"description":"Pod affinity scheduling rules (e.g. co-locate this workload in the same node, zone, etc. as some other workloads).","type":"object","properties":{"type":{"$ref":"#/components/schemas/PodAffinityType"},"key":{"description":"The label key to use. (mandatory)","type":"string","nullable":true,"pattern":".*","maxLength":63}},"nullable":true},"PodAffinityType":{"description":"The affinity type, required or preferred. (mandatory)","type":"string","enum":["Required","Preferred"],"nullable":true},"PortsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/Port"},"instances":{"$ref":"#/components/schemas/Ports"}},"nullable":true,"type":"object"},"Port":{"description":"A port for accessing the workload.","properties":{"container":{"description":"The port that the container running the workload exposes. (mandatory)","type":"integer","format":"int32","minimum":1,"maximum":65535,"nullable":true},"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","format":"int32","nullable":true},"toolType":{"description":"The tool type that runs on this port.","type":"string","nullable":true,"pattern":".*","maxLength":63},"toolName":{"description":"A name describing the tool that runs on this port.","type":"string","nullable":true,"pattern":".*","maxLength":253},"name":{"description":"Unique name to identify the instance. primarily used for policy locked rules.","type":"string","minLength":1,"maxLength":63,"nullable":true,"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","default":false,"nullable":true}},"nullable":true,"type":"object"},"PortServiceType":{"description":"The service type of the port (mandatory).","type":"string","enum":["LoadBalancer","NodePort","ClusterIP"],"nullable":true},"Ports":{"description":"Set of container ports that the workload exposes.","type":"array","items":{"$ref":"#/components/schemas/Port"},"maxItems":1000,"nullable":true},"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","minLength":1,"enum":["preemptible","non-preemptible"],"nullable":true},"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","nullable":true,"pattern":".*"},"Probes":{"description":"Probes are used to determine if the container is healthy and ready to accept traffic.","type":"object","properties":{"readiness":{"$ref":"#/components/schemas/Probe"}},"nullable":true},"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},"ProbeHandler":{"description":"The action taken to determine the health of the container. (mandatory)","type":"object","properties":{"httpGet":{"description":"An action based on HTTP Get requests.","type":"object","properties":{"path":{"description":"Path to access on the HTTP server, defaults to /.","type":"string","pattern":"^(\\x2F[a-zA-Z0-9\\-_.\\x2F]*)?$","nullable":true,"maxLength":2048},"port":{"description":"Number of the port to access on the container.","type":"integer","format":"int32","minimum":1,"maximum":65535,"nullable":true},"host":{"description":"Host name to connect to, defaults to the pod IP.","type":"string","format":"hostname","nullable":true,"pattern":".*","maxLength":253},"scheme":{"$ref":"#/components/schemas/ProbeHandlerScheme"}}}},"nullable":true},"ProbeHandlerScheme":{"description":"Scheme to use for connecting to the host, defaults to HTTP.","type":"string","enum":["HTTP","HTTPS"],"nullable":true},"RelatedUrlsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/RelatedUrl"},"instances":{"$ref":"#/components/schemas/RelatedUrls"}},"nullable":true,"type":"object"},"RelatedUrl":{"description":"A URL that is related to the workload. For example, a URL to an external server providing statistics or logging about the workload.","properties":{"url":{"description":"The URL for connecting an external service related to the workload. (mandatory)","type":"string","nullable":true,"pattern":".*","maxLength":2048},"type":{"description":"The type of service that the url provides. For example, wandb (Weights & Biases). (mandatory)","type":"string","nullable":true,"pattern":".*","maxLength":63},"name":{"description":"Unique name to identify the instance. primarily used for policy locked rules.","type":"string","nullable":true,"pattern":".*","maxLength":63},"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,"nullable":true}},"nullable":true,"type":"object"},"RelatedUrls":{"description":"Set of URLs that are related to the workload.","type":"array","items":{"$ref":"#/components/schemas/RelatedUrl"},"maxItems":1000,"nullable":true},"RestartPolicy":{"description":"Specify the restart policy of the workload pods. Default is empty, which is determine by the framework default.\nThe `Always` value is deprecated; use `OnFailure` or `Never` instead.\n","type":"string","minLength":1,"enum":["Always","Never","OnFailure"],"nullable":true},"SupersetDefaultsAllOfSecurity":{"title":"SupersetDefaultsAllOfSecurity","nullable":true,"properties":{"allowPrivilegeEscalation":{"$ref":"#/components/schemas/AllowPrivilegeEscalation"},"capabilities":{"$ref":"#/components/schemas/Capabilities"},"hostIpc":{"$ref":"#/components/schemas/HostIpc"},"hostNetwork":{"$ref":"#/components/schemas/HostNetwork"},"readOnlyRootFilesystem":{"$ref":"#/components/schemas/ReadOnlyRootFileSystem"},"runAsGid":{"$ref":"#/components/schemas/RunAsGid"},"runAsNonRoot":{"$ref":"#/components/schemas/RunAsNonRoot"},"runAsUid":{"$ref":"#/components/schemas/RunAsUid"},"seccompProfileType":{"$ref":"#/components/schemas/SeccompProfileType"},"supplementalGroups":{"$ref":"#/components/schemas/SupplementalGroups"},"uidGidSource":{"$ref":"#/components/schemas/UidGidSource"}},"type":"object"},"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://run-ai-docs.nvidia.com/self-hosted/2.26/infrastructure-setup/advanced-setup/container-access/user-identity-in-containers","type":"boolean","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"},"nullable":true},"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"]},"HostIpc":{"description":"Whether to enable host IPC. Defaults to false.","type":"boolean","nullable":true},"HostNetwork":{"description":"Whether to enable host networking. Default to false.","type":"boolean","nullable":true},"ReadOnlyRootFileSystem":{"description":"If true, mounts the container's root filesystem as read-only.","type":"boolean","nullable":true},"RunAsGid":{"description":"The group id to run the entrypoint of the container which executes the workspace. Default to the value specified in the environment asset `runAsGid` field (optional). Use only when the source uid/gid of the environment asset is not `fromTheImage`, and `overrideUidGidInWorkspace` is enabled.","type":"integer","format":"int64","nullable":true},"RunAsNonRoot":{"description":"Force the container to run as a non-root user.","type":"boolean","nullable":true},"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","format":"int64","nullable":true},"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","enum":["RuntimeDefault","Unconfined","Localhost"],"nullable":true},"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","nullable":true,"pattern":".*"},"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://run-ai-docs.nvidia.com/self-hosted/2.26/infrastructure-setup/advanced-setup/container-access/user-identity-in-containers).","type":"string","enum":["fromTheImage","fromIdpToken","custom"],"nullable":true},"Stdin":{"description":"Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF","type":"boolean","nullable":true},"ConfigMapsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/ConfigMapInstance"},"instances":{"$ref":"#/components/schemas/ConfigMapItems"}},"nullable":true,"type":"object"},"ConfigMapInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/ConfigMap"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"StorageInstanceName":{"properties":{"name":{"description":"unique name to identify the instance. primarily used for policy locked rules.","type":"string","minLength":1,"maxLength":63,"nullable":true}},"nullable":true,"type":"object"},"ConfigMap":{"properties":{"configMap":{"description":"The name of the ConfigMap resource. (mandatory)","type":"string","minLength":1,"maxLength":253,"nullable":true,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$"},"mountPath":{"description":"Local path within the workload to which the ConfigMap will be mapped to. (mandatory)","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"subPath":{"description":"Path within the volume from which the container's volume should be mounted.","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"defaultMode":{"$ref":"#/components/schemas/DefaultMode"}},"nullable":true,"type":"object"},"DefaultMode":{"type":"string","description":"File permission mode in octal string format. This value must be a 4-digit octal number, representing the default file mode when mounting a Secret or ConfigMap as a volume.\n","minLength":4,"maxLength":4,"pattern":"0[0-7]{3}","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,"nullable":true}},"type":"object","nullable":true},"ConfigMapItems":{"description":"Set of config map volumes to use in the workload","type":"array","items":{"$ref":"#/components/schemas/ConfigMapInstance"},"maxItems":1000,"nullable":true},"DataVolumesDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/DataVolumeInstance"},"instances":{"$ref":"#/components/schemas/DataVolumeItems"}},"nullable":true,"type":"object"},"DataVolumeInstance":{"allOf":[{"$ref":"#/components/schemas/DataVolume"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"DataVolume":{"properties":{"id":{"description":"The unique identifier of the data volume. (mandatory)","type":"string","format":"uuid","nullable":true},"mountPath":{"description":"The path where the data volume will be mounted. (mandatory)","type":"string","nullable":true,"pattern":".*","maxLength":4096}},"nullable":true,"type":"object"},"DataVolumeItems":{"description":"Set of data volumes to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/DataVolumeInstance"},"maxItems":1000,"nullable":true},"EmptyDirsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/EmptyDirInstance"},"instances":{"$ref":"#/components/schemas/EmptyDirItems"}},"nullable":true,"type":"object"},"EmptyDirInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/EmptyDir"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"EmptyDir":{"properties":{"path":{"description":"Local path within the workload to which the EmptyDir volume will be mapped. (mandatory)","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"medium":{"description":"The type of storage medium for the volume. Use \"Memory\" for memory-backed storage, or leave empty for disk-backed storage.","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":".*"},"sizeLimit":{"description":"The total amount of local storage or memory required for the emptyDir volume. Specify using Kubernetes quantity format (e.g., 1G, 500Mi).","type":"string","maxLength":63,"pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$","nullable":true}},"nullable":true,"type":"object"},"EmptyDirItems":{"description":"A list of emptyDir volumes to mount in the workload.","type":"array","items":{"$ref":"#/components/schemas/EmptyDirInstance"},"maxItems":1000,"nullable":true},"GitsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/GitInstance"},"instances":{"$ref":"#/components/schemas/GitItems"}},"nullable":true,"type":"object"},"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"},"GitCommon":{"properties":{"repository":{"description":"URL to a remote Git repository. The content of this repository will be mapped to the container running the workload. (mandatory)","type":"string","minLength":1,"maxLength":2048,"nullable":true},"branch":{"description":"Specific branch to synchronize the repository from.","type":"string","minLength":1,"maxLength":63,"nullable":true},"revision":{"description":"Specific revision to synchronize the repository from.","type":"string","minLength":1,"maxLength":63,"nullable":true},"path":{"description":"Local path within the workload to which the Git repository will be mapped (mandatory).","type":"string","minLength":1,"maxLength":4096,"nullable":true}},"nullable":true,"type":"object"},"GitPassword":{"properties":{"passwordSecret":{"description":"Secret containing the credentials of the repository (needed for non public repository which requires authentication). (deprecated)","type":"string","minLength":1,"nullable":true},"secretKeyOfUser":{"description":"The key to use for loading the user name from the secret. The default is `User`. (deprecated)","type":"string","minLength":1,"nullable":true},"secretKeyOfPassword":{"description":"The key to use for loading the password from the secret. The default is `Password`. (deprecated)","type":"string","minLength":1,"nullable":true}},"nullable":true,"type":"object"},"GitSecretRef":{"properties":{"name":{"description":"Name of the Secret containing the credentials of the repository.","type":"string","minLength":1},"authenticationMethod":{"$ref":"#/components/schemas/GitAuthenticationMethod"},"secretKeyOfUser":{"description":"The key in the Secret that contains the Git username (used for `password` authentication).","type":"string","minLength":1,"nullable":true},"secretKeyOfPassword":{"description":"The key in the Secret that contains the Git password (used for `password` authentication).","type":"string","minLength":1,"nullable":true}},"nullable":true,"type":"object"},"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,"enum":["password","ssh-key"]},"GitItems":{"description":"Set of git repositories to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/GitInstance"},"maxItems":1000,"nullable":true},"HostPathsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/HostPathInstance"},"instances":{"$ref":"#/components/schemas/HostPathItems"}},"nullable":true,"type":"object"},"HostPathInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/HostPath"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"HostPath":{"properties":{"path":{"description":"Local path within the controller to which the host volume will be mapped. (mandatory)","type":"string","minLength":1,"maxLength":4096,"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,"maxLength":4096,"nullable":true,"pattern":".*"},"mountPropagation":{"$ref":"#/components/schemas/HostPathMountPropagation"}},"nullable":true,"type":"object"},"HostPathMountPropagation":{"description":"Share this volumes mount with other containers. If set to HostToContainer, this volume mount will receive all subsequent mounts that are mounted to this volume or any of its subdirectories. In case of multiple hostPath entries, this field should have the same value for all of them.","type":"string","enum":["None","HostToContainer"],"nullable":true},"HostPathItems":{"description":"Set of host paths to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/HostPathInstance"},"maxItems":1000,"nullable":true},"NfssDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/NfsInstance"},"instances":{"$ref":"#/components/schemas/NfsItems"}},"nullable":true,"type":"object"},"NfsInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/Nfs"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"Nfs":{"properties":{"path":{"description":"Path that is exported by the NFS server (mandatory). For more information, see [NFS](https://kubernetes.io/docs/concepts/storage/volumes#nfs).","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"readOnly":{"description":"Force the NFS export to be mounted with read-only permissions.","type":"boolean","default":true,"nullable":true},"server":{"description":"The hostname or IP address of the NFS server. (mandatory)","type":"string","minLength":1,"maxLength":253,"nullable":true,"pattern":".*"},"mountPath":{"description":"The path that the NFS volume will be mounted to when in use. (mandatory)","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"NfsItems":{"description":"Set of nfs volumes to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/NfsInstance"},"maxItems":1000,"nullable":true},"PvcsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/PvcInstance"},"instances":{"$ref":"#/components/schemas/PvcItems"}},"nullable":true,"type":"object"},"PvcInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/Pvc"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"Pvc":{"allOf":[{"$ref":"#/components/schemas/PvcFieldsUpdatable"},{"$ref":"#/components/schemas/PvcFieldsNonUpdatable"}]},"PvcFieldsUpdatable":{"properties":{"path":{"description":"Local path within the workload to which the PVC bucket will be mapped. (mandatory)","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"PvcFieldsNonUpdatable":{"properties":{"existingPvc":{"description":"Verify existing PVC. PVC is assumed to exist when set to `true`. If set to `false`, the PVC will be created, if it does not exist.","type":"boolean","default":false,"nullable":true},"claimName":{"description":"Name for the PVC. Allow referencing it across workloads. If not provided, a name based on the workload name and scope will be auto-generated.","type":"string","minLength":1,"maxLength":63,"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,"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,"nullable":true}},"nullable":true,"type":"object"},"ClaimInfo":{"description":"Claim information for the newly created PVC. The information should not be provided when attempting to use existing PVC.","properties":{"size":{"$ref":"#/components/schemas/PvcClaimSize"},"storageClass":{"description":"Storage class name to associate with the PVC. This parameter may be omitted if there is a single storage class in the system, or you are using the default storage class. For more information, see [Storage class](https://kubernetes.io/docs/concepts/storage/storage-classes).","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$"},"accessModes":{"$ref":"#/components/schemas/PvcAccessModes"},"volumeMode":{"$ref":"#/components/schemas/PvcVolumeMode"},"addedAttrValues":{"$ref":"#/components/schemas/PvcAddedAttrValues"}},"nullable":true,"type":"object"},"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]*)$","maxLength":63,"nullable":true},"PvcAccessModes":{"description":"Default access mode(s) applied to newly created PVCs unless explicitly overridden.","properties":{"readWriteOnce":{"description":"Mount the volume as read/write by a single node.","type":"boolean","default":true,"nullable":true},"readOnlyMany":{"description":"Mount the volume as read-only by many nodes.","type":"boolean","default":false,"nullable":true},"readWriteMany":{"description":"Mount the volume as read/write by many nodes.","type":"boolean","default":false,"nullable":true}},"nullable":true,"type":"object"},"PvcVolumeMode":{"description":"Default volume mode for the PVC. Choose between Filesystem (default) or Block.","type":"string","enum":["Filesystem","Block"],"nullable":true},"PvcAddedAttrValues":{"description":"an optional array of key-values pairs that are written as annotations on the created PVC. the allowed attributes are determined according to the storage class configuration (see k8s-objects-tracker for further info).","type":"array","items":{"$ref":"#/components/schemas/PvcAddedAttrValue"},"maxItems":1000},"PvcAddedAttrValue":{"type":"object","required":["key"],"properties":{"key":{"type":"string","minLength":1,"maxLength":63,"pattern":"^([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]$"},"value":{"type":"string","pattern":".*","maxLength":10000}}},"PvcItems":{"description":"Set of pvc persistent volume claims to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/PvcInstance"},"maxItems":1000,"nullable":true},"S3sDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/S3Instance"},"instances":{"$ref":"#/components/schemas/S3Items"}},"nullable":true,"type":"object"},"S3Instance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/S3Common"},{"$ref":"#/components/schemas/S3AccessKey"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"S3Common":{"properties":{"bucket":{"description":"The name of the bucket. (mandatory)","type":"string","minLength":1,"nullable":true},"path":{"description":"Local path within the workload to which the S3 bucket will be mapped. (mandatory)","type":"string","minLength":1,"nullable":true},"url":{"description":"The url of the S3 service provider. The default is the URL of the Amazon AWS S3 service.","type":"string","minLength":1,"nullable":true}},"nullable":true,"type":"object"},"S3AccessKey":{"properties":{"accessKeySecret":{"description":"Name of the secret containing credentials of the S3 bucket. Used for private S3 buckets.","type":"string","minLength":1,"nullable":true,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$"},"secretKeyOfAccessKeyId":{"description":"The key to use for loading the access key id from the secret. The default is `AccessKeyId`. For more information, see [Credentials access keys](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html).","type":"string","minLength":1,"nullable":true,"pattern":".*"},"secretKeyOfSecretKey":{"description":"The key to use for loading the secret key from the secret. The default is `SecretKey`. For more information, see [Credentials access keys](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html).","type":"string","minLength":1,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"S3Items":{"description":"Set of s3 buckets to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/S3Instance"},"nullable":true},"SecretsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/SecretInstance"},"instances":{"$ref":"#/components/schemas/SecretItems"}},"nullable":true,"type":"object"},"SecretInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/Secret"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"Secret":{"allOf":[{"$ref":"#/components/schemas/SecretFieldsUpdatable"},{"$ref":"#/components/schemas/SecretFieldsNonUpdatable"}]},"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"},"SecretFieldsNonUpdatable":{"properties":{"secret":{"description":"The name of the Secret resource. (mandatory)","type":"string","minLength":1,"nullable":true}},"nullable":true,"type":"object"},"SecretItems":{"description":"Set of secret volumes to use in the workload","type":"array","items":{"$ref":"#/components/schemas/SecretInstance"},"nullable":true},"TerminateAfterPreemption":{"description":"Indicates if the job should be terminated by the system after it has been preempted.","type":"boolean","nullable":true},"TerminationGracePeriod":{"description":"Duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down).","format":"int64","type":"integer","minimum":0,"nullable":true},"TolerationsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/Toleration"},"instances":{"$ref":"#/components/schemas/Tolerations"}},"nullable":true,"type":"object"},"Toleration":{"description":"Toleration details.","properties":{"name":{"description":"The name of the toleration.","type":"string","minLength":1,"maxLength":253,"nullable":true,"pattern":".*"},"operator":{"$ref":"#/components/schemas/TolerationOperator"},"key":{"description":"The taint key that the toleration applies to. (mandatory)","type":"string","maxLength":253,"nullable":true,"pattern":".*"},"value":{"description":"The taint value the toleration matches to. Mandatory if operator is Exists, forbidden otherwise.","type":"string","maxLength":10000,"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","nullable":true}},"nullable":true,"type":"object"},"TolerationOperator":{"description":"A key's relationship to the value. Equal uses key and value. Exists is equivalent to wildcard for value, so that a workload can tolerate all taints of a particular category. (mandatory)","type":"string","enum":["Equal","Exists"],"nullable":true},"TolerationEffect":{"description":"The taint effect to match. (mandatory)","type":"string","enum":["NoSchedule","NoExecute","PreferNoSchedule","Any"],"nullable":true},"Tolerations":{"description":"Set of tolerations to apply to the workload.","type":"array","items":{"$ref":"#/components/schemas/Toleration"},"maxItems":1000,"nullable":true},"Tty":{"description":"Whether this container should allocate a TTY for itself, also requires 'stdin' to be true.","type":"boolean","nullable":true},"WorkingDir":{"description":"Container's working directory. If not specified, the container runtime default will be used. This may be configured in the container image.","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"TrainingPolicyRulesV2":{"allOf":[{"nullable":true,"properties":{"annotations":{"$ref":"#/components/schemas/InstancesRules"},"args":{"$ref":"#/components/schemas/StringRules"},"autoDeletionTimeAfterCompletionSeconds":{"$ref":"#/components/schemas/IntegerRules"},"backoffLimit":{"$ref":"#/components/schemas/IntegerRules"},"category":{"$ref":"#/components/schemas/StringRules"},"command":{"$ref":"#/components/schemas/StringRules"},"completions":{"$ref":"#/components/schemas/IntegerRules"},"compute":{"$ref":"#/components/schemas/SupersetRulesAllOfCompute"},"createHomeDir":{"$ref":"#/components/schemas/BooleanRules"},"environmentVariables":{"$ref":"#/components/schemas/InstancesRules"},"exposedUrls":{"$ref":"#/components/schemas/ExposedUrlsRules"},"image":{"$ref":"#/components/schemas/StringRules"},"imagePullPolicy":{"$ref":"#/components/schemas/ImagePullPolicyRules"},"imagePullSecrets":{"$ref":"#/components/schemas/ImagePullSecretsRules"},"labels":{"$ref":"#/components/schemas/InstancesRules"},"nodeAffinityRequired":{"$ref":"#/components/schemas/ArbitraryRules"},"nodePools":{"$ref":"#/components/schemas/ArrayRules"},"nodeType":{"$ref":"#/components/schemas/StringRules"},"parallelism":{"$ref":"#/components/schemas/IntegerRules"},"podAffinity":{"$ref":"#/components/schemas/PodAffinityRules"},"ports":{"$ref":"#/components/schemas/PortsRules"},"preemptibility":{"$ref":"#/components/schemas/PreemptibilityRules"},"priorityClass":{"$ref":"#/components/schemas/StringRules"},"probes":{"$ref":"#/components/schemas/ProbesRules"},"relatedUrls":{"$ref":"#/components/schemas/RelatedUrlsRules"},"restartPolicy":{"$ref":"#/components/schemas/RestartPolicyRule"},"security":{"$ref":"#/components/schemas/SupersetRulesAllOfSecurity"},"stdin":{"$ref":"#/components/schemas/BooleanRules"},"storage":{"nullable":true,"properties":{"configMapVolume":{"$ref":"#/components/schemas/ConfigMapsRules"},"dataVolume":{"$ref":"#/components/schemas/DataVolumesRules"},"emptyDirVolume":{"$ref":"#/components/schemas/EmptyDirsRules"},"git":{"$ref":"#/components/schemas/GitsRules"},"hostPath":{"$ref":"#/components/schemas/HostPathsRules"},"nfs":{"$ref":"#/components/schemas/NfssRules"},"pvc":{"$ref":"#/components/schemas/PvcsRules"},"s3":{"$ref":"#/components/schemas/S3sRules"},"secretVolume":{"$ref":"#/components/schemas/SecretsRules"}},"type":"object"},"terminateAfterPreemption":{"$ref":"#/components/schemas/BooleanRules"},"terminationGracePeriodSeconds":{"$ref":"#/components/schemas/IntegerRules"},"tolerations":{"$ref":"#/components/schemas/TolerationsRules"},"tty":{"$ref":"#/components/schemas/BooleanRules"},"workingDir":{"$ref":"#/components/schemas/StringRules"}},"type":"object"}]},"InstancesRules":{"properties":{"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ItemRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"canAdd":{"description":"Whether it is permitted to add items. Default to true.","type":"boolean","nullable":true},"locked":{"description":"Set of keys for items that are \"locked\", i.e. cannot be removed or deleted.","type":"array","items":{"type":"string"}}},"nullable":true,"type":"object"},"SourceOfRule":{"description":"This field is used by the system along with effective rules, in order to specify the org unit from which this effective rule has been derived. It should be left empty when sending apply policy requests.","required":["scope"],"properties":{"scope":{"$ref":"#/components/schemas/ScopeType"},"projectId":{"$ref":"#/components/schemas/ProjectIdOptional"},"departmentId":{"$ref":"#/components/schemas/DepartmentIdOptional"},"clusterId":{"$ref":"#/components/schemas/ClusterIdOptional"},"isFallback":{"description":"source of this rule is the fallback policy","type":"boolean"}},"nullable":true,"type":"object"},"StringRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/StringRulesOptions"}],"nullable":true,"type":"object"},"StringRulesCommon":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory, default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable, default to true","type":"boolean","nullable":true},"blocked":{"description":"Blocks the field to prevent workloads from specifying any value for it.","type":"boolean","nullable":true}}},"StringRulesOptions":{"properties":{"options":{"description":"Set of options that the value of the field must be chosen from.","type":"array","items":{"$ref":"#/components/schemas/StringOption"},"nullable":true}}},"StringOption":{"description":"One of the values that the field can be assigned to, when options police is applied on the field.","required":["value"],"properties":{"value":{"description":"The value that the field should hold","type":"string","pattern":".*"},"displayed":{"description":"Textual description of the value. to be used by user interface applications.","type":"string","nullable":true,"pattern":".*"}}},"IntegerRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory. default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"max":{"description":"The maximum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"step":{"description":"The minimal difference between two values the field can be assigned to. For example, min=2, max=10, step=2 implies that the values the field can hold are 2, 4, 6, 8 and 10.","type":"integer","format":"int32","nullable":true},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"DefaultFromRule":{"properties":{"field":{"description":"The default of this field is taken from another field, with optional factor. The specified field must belong to the same workload section (compute, security, etc). For itemized field, the value of the field will be taken from the same instance.","type":"string","nullable":true,"pattern":".*"},"factor":{"description":"Multiple the value of the fromField by this factor to get the value for this field For example, if factor is 2 and defaultFrom field has value of 8, the calculated default will be determined to be 16.","type":"number","format":"double","nullable":true,"default":1}},"nullable":true,"type":"object"},"SupersetRulesAllOfCompute":{"title":"SupersetRulesAllOfCompute","nullable":true,"properties":{"cpuCoreLimit":{"$ref":"#/components/schemas/NumberRules"},"cpuCoreRequest":{"$ref":"#/components/schemas/NumberRules"},"cpuMemoryLimit":{"$ref":"#/components/schemas/QuantityRules"},"cpuMemoryRequest":{"$ref":"#/components/schemas/QuantityRules"},"extendedResources":{"$ref":"#/components/schemas/ExtendedResourcesRules"},"gpuDevicesRequest":{"$ref":"#/components/schemas/IntegerRules"},"gpuMemoryLimit":{"$ref":"#/components/schemas/QuantityRules"},"gpuMemoryRequest":{"$ref":"#/components/schemas/QuantityRules"},"gpuPortionLimit":{"$ref":"#/components/schemas/NumberRules"},"gpuPortionRequest":{"$ref":"#/components/schemas/NumberRules"},"gpuRequestType":{"$ref":"#/components/schemas/GpuRequestRules"},"largeShmRequest":{"$ref":"#/components/schemas/BooleanRules"}},"type":"object"},"NumberRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory. default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"number","nullable":true},"max":{"description":"The maximum value that the field can be assigned to.","type":"number","nullable":true},"step":{"description":"The minimal difference between two values the field can be assigned to. For example, min=2, max=3, step=0.25 implies that the values the field can hold are 2, 2.25, 2.5 and 3.","type":"number","nullable":true},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"QuantityRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory, default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable, default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"string","nullable":true,"pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"},"max":{"description":"The maximum value that the field can be assigned to.","type":"string","nullable":true,"pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"ExtendedResourcesRules":{"properties":{"attributes":{"$ref":"#/components/schemas/ExtendedResourceRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ExtendedResourceRules":{"description":"Rules for the attributes of extendedResources","properties":{"quantity":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"GpuRequestRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/GpuRequestOptions"}],"nullable":true,"type":"object"},"GpuRequestOptions":{"properties":{"options":{"description":"Limit the permitted values for gpuRequest to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/GpuRequestType"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"BooleanRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory. default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true}},"nullable":true,"type":"object"},"ExposedUrlsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/ExposedUrlRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ExposedUrlRules":{"description":"Rules for the attributed of exposedUrls","properties":{"container":{"$ref":"#/components/schemas/IntegerRules"},"customUrl":{"$ref":"#/components/schemas/BooleanRules"},"url":{"$ref":"#/components/schemas/StringRules"},"authorizedUsers":{"$ref":"#/components/schemas/ArrayRules"},"authorizedGroups":{"$ref":"#/components/schemas/ArrayRules"},"toolType":{"$ref":"#/components/schemas/StringRules"},"toolName":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"ArrayRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether this array is mandatory. Mandatory array must include at least one item. default to false.","type":"boolean","nullable":true},"options":{"description":"Set of options that the value of each item of the array must be chosen from.","type":"array","items":{"$ref":"#/components/schemas/StringOption"}},"canEdit":{"description":"Whether the value of the array, as a whole, is editable. default to false.","type":"boolean","nullable":true}},"nullable":true,"type":"object"},"ImagePullPolicyRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/ImagePullPolicyOptions"}],"nullable":true,"type":"object"},"ImagePullPolicyOptions":{"properties":{"options":{"description":"Limit the permitted values for imagePullPolicy to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/ImagePullPolicy"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ImagePullSecretsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/ImagePullSecretsRulesAttributes"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ImagePullSecretsRulesAttributes":{"description":"Rules for the attributes of imagePullSecrets","properties":{"name":{"$ref":"#/components/schemas/StringRules"},"userCredentials":{"$ref":"#/components/schemas/BooleanRules"}},"nullable":true,"type":"object"},"ArbitraryRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether this arbitrary object is mandatory. default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field, as a whole, is editable. default to false.","type":"boolean","nullable":true}},"nullable":true,"type":"object"},"PodAffinityRules":{"properties":{"type":{"$ref":"#/components/schemas/PodAffinityTypeRules"},"key":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"PodAffinityTypeRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/PodAffinityTypeOptions"}],"nullable":true,"type":"object"},"PodAffinityTypeOptions":{"properties":{"options":{"type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/PodAffinityType"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"type":"object"},"PortsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/PortRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"PortRules":{"description":"Rules for port attributes","properties":{"container":{"$ref":"#/components/schemas/IntegerRules"},"serviceType":{"$ref":"#/components/schemas/PortServiceTypeRules"},"customExternalPort":{"$ref":"#/components/schemas/BooleanRules"},"external":{"$ref":"#/components/schemas/IntegerRules"},"toolType":{"$ref":"#/components/schemas/StringRules"},"toolName":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"PortServiceTypeRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/PortServiceTypeOptions"}],"nullable":true,"type":"object"},"PortServiceTypeOptions":{"properties":{"options":{"type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/PortServiceType"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"PreemptibilityRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/PreemptibilityOptions"}],"nullable":true,"type":"object"},"PreemptibilityOptions":{"properties":{"options":{"description":"Limit the permitted values for preemptibility to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/Preemptibility"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ProbesRules":{"properties":{"readiness":{"$ref":"#/components/schemas/ProbeRules"}},"nullable":true,"type":"object"},"ProbeRules":{"properties":{"initialDelaySeconds":{"$ref":"#/components/schemas/IntegerRules"},"periodSeconds":{"$ref":"#/components/schemas/IntegerRules"},"timeoutSeconds":{"$ref":"#/components/schemas/IntegerRules"},"successThreshold":{"$ref":"#/components/schemas/IntegerRules"},"failureThreshold":{"$ref":"#/components/schemas/IntegerRules"},"handler":{"$ref":"#/components/schemas/ProbeHandlerRules"}},"nullable":true,"type":"object"},"ProbeHandlerRules":{"properties":{"httpGet":{"properties":{"path":{"$ref":"#/components/schemas/StringRules"},"port":{"$ref":"#/components/schemas/IntegerRules"},"host":{"$ref":"#/components/schemas/StringRules"},"scheme":{"$ref":"#/components/schemas/StringRules"}}}},"nullable":true,"type":"object"},"RelatedUrlsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/RelatedUrlRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"RelatedUrlRules":{"description":"Rules for the attributes of relatedUrls","properties":{"url":{"$ref":"#/components/schemas/StringRules"},"type":{"$ref":"#/components/schemas/StringRules"},"name":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"RestartPolicyRule":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/RestartPolicyOptions"}],"nullable":true,"type":"object"},"RestartPolicyOptions":{"properties":{"options":{"description":"Limit the permitted values for restartPolicy to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/RestartPolicy"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"SupersetRulesAllOfSecurity":{"title":"SupersetRulesAllOfSecurity","nullable":true,"properties":{"allowPrivilegeEscalation":{"$ref":"#/components/schemas/BooleanRules"},"capabilities":{"$ref":"#/components/schemas/ArrayRules"},"hostIpc":{"$ref":"#/components/schemas/BooleanRules"},"hostNetwork":{"$ref":"#/components/schemas/BooleanRules"},"readOnlyRootFilesystem":{"$ref":"#/components/schemas/BooleanRules"},"runAsGid":{"$ref":"#/components/schemas/IntegerRulesOptional"},"runAsNonRoot":{"$ref":"#/components/schemas/BooleanRules"},"runAsUid":{"$ref":"#/components/schemas/IntegerRulesOptional"},"seccompProfileType":{"$ref":"#/components/schemas/SeccompProfileTypeRules"},"supplementalGroups":{"$ref":"#/components/schemas/StringRules"},"uidGidSource":{"$ref":"#/components/schemas/UidGidSourceRules"}},"type":"object"},"IntegerRulesOptional":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"max":{"description":"The maximum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"step":{"description":"The minimal difference between two values the field can be assigned to. For example, min=2, max=10, step=2 implies that the values the field can hold are 2, 4, 6, 8 and 10.","type":"integer","format":"int32","nullable":true},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"SeccompProfileTypeRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/SeccompProfileTypeOptions"}],"nullable":true,"type":"object"},"SeccompProfileTypeOptions":{"properties":{"options":{"description":"Limit the permitted values for secompProfileType to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/SeccompProfileType"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"UidGidSourceRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/UidGidSourceOptions"}],"nullable":true,"type":"object"},"UidGidSourceOptions":{"properties":{"options":{"description":"Limit the permitted values for uidGidSource to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/UidGidSource"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ConfigMapsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/ConfigMapRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ConfigMapRules":{"properties":{"configMap":{"$ref":"#/components/schemas/StringRules"},"mountPath":{"$ref":"#/components/schemas/StringRules"},"subPath":{"$ref":"#/components/schemas/StringRules"},"defaultMode":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"DataVolumesRules":{"properties":{"attributes":{"$ref":"#/components/schemas/DataVolumeRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"DataVolumeRules":{"properties":{"id":{"$ref":"#/components/schemas/StringRules"},"mountPath":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"EmptyDirsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/EmptyDirRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"EmptyDirRules":{"properties":{"path":{"$ref":"#/components/schemas/StringRules"},"medium":{"$ref":"#/components/schemas/StringRules"},"sizeLimit":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"GitsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/GitRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"GitRules":{"properties":{"repository":{"$ref":"#/components/schemas/StringRules"},"branch":{"$ref":"#/components/schemas/StringRules"},"revision":{"$ref":"#/components/schemas/StringRules"},"path":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"HostPathsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/HostPathRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"HostPathRules":{"properties":{"path":{"$ref":"#/components/schemas/StringRules"},"readOnly":{"$ref":"#/components/schemas/BooleanRules"},"mountPath":{"$ref":"#/components/schemas/StringRules"},"mountPropagation":{"$ref":"#/components/schemas/HostPathMountPropagationRules"}},"nullable":true,"type":"object"},"HostPathMountPropagationRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/HostPathMountPropagationOptions"}],"nullable":true,"type":"object"},"HostPathMountPropagationOptions":{"properties":{"options":{"type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/HostPathMountPropagation"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}}},"NfssRules":{"properties":{"attributes":{"$ref":"#/components/schemas/NfsRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"NfsRules":{"properties":{"path":{"$ref":"#/components/schemas/StringRules"},"readOnly":{"$ref":"#/components/schemas/BooleanRules"},"server":{"$ref":"#/components/schemas/StringRules"},"mountPath":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"PvcsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/PvcRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"PvcRules":{"properties":{"claimName":{"$ref":"#/components/schemas/StringRules"},"path":{"$ref":"#/components/schemas/StringRules"},"readOnly":{"$ref":"#/components/schemas/BooleanRules"},"claimInfo":{"$ref":"#/components/schemas/ClaimInfoRules"}},"nullable":true,"type":"object"},"ClaimInfoRules":{"properties":{"size":{"$ref":"#/components/schemas/StringRules"},"storageClass":{"$ref":"#/components/schemas/StringRules"},"accessModes":{"$ref":"#/components/schemas/PvcAccessModesRules"}},"nullable":true,"type":"object"},"PvcAccessModesRules":{"description":"Rules for access mode(s) for a newly created PVC.","properties":{"readWriteOnce":{"$ref":"#/components/schemas/BooleanRules"},"readOnlyMany":{"$ref":"#/components/schemas/BooleanRules"},"readWriteMany":{"$ref":"#/components/schemas/BooleanRules"}},"nullable":true,"type":"object"},"S3sRules":{"properties":{"attributes":{"$ref":"#/components/schemas/S3Rules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"S3Rules":{"properties":{"bucket":{"$ref":"#/components/schemas/StringRules"},"path":{"$ref":"#/components/schemas/StringRules"},"url":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"SecretsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/SecretRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"SecretRules":{"properties":{"secret":{"$ref":"#/components/schemas/StringRules"},"mountPath":{"$ref":"#/components/schemas/StringRules"},"defaultMode":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"TolerationsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/TolerationRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"TolerationRules":{"description":"Toleration details.","properties":{"operator":{"$ref":"#/components/schemas/TolerationOperatorRules"},"key":{"$ref":"#/components/schemas/StringRules"},"value":{"$ref":"#/components/schemas/StringRules"},"effect":{"$ref":"#/components/schemas/TolerationEffectRules"},"seconds":{"$ref":"#/components/schemas/IntegerRules"},"exclude":{"$ref":"#/components/schemas/BooleanRules"}},"nullable":true,"type":"object"},"TolerationOperatorRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/TolerationOperatorOptions"}],"nullable":true,"type":"object"},"TolerationOperatorOptions":{"properties":{"options":{"description":"Limit the permitted values for imagePullPolicy to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/TolerationOperator"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"TolerationEffectRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/TolerationEffectOptions"}],"nullable":true,"type":"object"},"TolerationEffectOptions":{"properties":{"options":{"description":"Limit the permitted values for imagePullPolicy to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/TolerationEffect"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ImposedAssets":{"description":"a list of datasource assets to import into the policy. these datasources will be included in any workload that will be created in the scope of the policy.","type":"array","items":{"type":"string","format":"uuid"},"nullable":true},"PolicyValidationStatus":{"properties":{"validation":{"properties":{"errorMessage":{"pattern":".*","type":"string","description":"In case validation failed, holds the error message explaining the issue"}},"nullable":true,"type":"object"}},"nullable":true,"type":"object"},"FieldsToReset":{"description":"set of fields in jsonpath format that is requested to clear their policy (default and rules)","type":"array","items":{"type":"string","pattern":".*"}},"TrainingPolicyV2":{"properties":{"meta":{"$ref":"#/components/schemas/PolicyMeta"},"policy":{"$ref":"#/components/schemas/TrainingPolicyDefaultsAndRulesV2"},"effective":{"$ref":"#/components/schemas/TrainingPolicyDefaultsAndRulesV2"},"effectiveUpdatedAt":{"$ref":"#/components/schemas/Timestamp"}},"nullable":true,"type":"object"},"PolicyMeta":{"allOf":[{"$ref":"#/components/schemas/PolicyReadOnlyFields"},{"$ref":"#/components/schemas/PolicyCreationFields"}]},"PolicyReadOnlyFields":{"required":["id","createdBy","createdAt","updatedBy","updatedAt"],"properties":{"id":{"$ref":"#/components/schemas/PolicyId"},"tenantId":{"$ref":"#/components/schemas/TenantId"},"clusterId":{"$ref":"#/components/schemas/ClusterIdOptional"},"createdBy":{"description":"The user who created the policy.","type":"string","minLength":1},"createdAt":{"description":"The time at which the policy wes created","type":"string","minLength":1,"format":"date-time"},"updatedBy":{"description":"The user who updated the policy.","type":"string","minLength":1},"updatedAt":{"description":"The time at which the policy has been updated","type":"string","minLength":1,"format":"date-time"}}},"PolicyId":{"description":"The unique id of the policy.","type":"string","minLength":1,"format":"uuid"},"TenantId":{"description":"The id of the tenant.","type":"integer","format":"int32"},"Timestamp":{"description":"The time at which an event occurred. e.g. the time an effective policy has been updated","type":"string","minLength":1,"format":"date-time"},"Error":{"required":["code","message"],"properties":{"code":{"type":"integer","minimum":100,"maximum":599},"message":{"type":"string"},"details":{"type":"string"}}}},"responses":{"400BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401Unauthorized":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403Forbidden":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503ServiceUnavailable":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/api/v2/policy/trainings":{"patch":{"summary":"Update a training policy.","description":"Use to apply changes to a training policy for a given organizational unit.","operationId":"update_training_policy_v2","tags":["Policy"],"parameters":[{"$ref":"#/components/parameters/ValidateOnly"},{"$ref":"#/components/parameters/ApproveClusterDeletion"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrainingPolicyChangeRequestV2"}}}},"responses":{"200":{"description":"Policy applied.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrainingPolicyV2"}}}},"400":{"$ref":"#/components/responses/400BadRequest"},"401":{"$ref":"#/components/responses/401Unauthorized"},"403":{"$ref":"#/components/responses/403Forbidden"},"503":{"$ref":"#/components/responses/503ServiceUnavailable"}}}}}}
```

## Get a workspace policy.

> Retrieve the details of a workspace policy for a given organizational unit.

```json
{"openapi":"3.0.3","info":{"title":"NVIDIA Run:ai","version":"2.26"},"tags":[{"name":"Policy","description":"Policies allow administrators to impose restrictions and set default values for researcher workloads. \nRestrictions and default values can be placed on CPUs, GPUs, and other resources or entities. \nFor more information, see [Policies](https://run-ai-docs.nvidia.com/self-hosted/2.26/platform-management/policies/#introduction).\n"}],"servers":[{"url":"https://app.run.ai"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer authentication"}},"parameters":{"PolicyScope":{"name":"scope","in":"query","required":true,"description":"The scope that the policy relates to.","schema":{"type":"string","enum":["tenant","cluster","department","project"]}},"FilterByDepartment":{"name":"departmentId","in":"query","description":"Filter using the department id.","required":false,"schema":{"type":"string"}},"FilterByProject":{"name":"projectId","in":"query","description":"project id to filter by","required":false,"schema":{"type":"string"}},"FilterByCluster":{"name":"clusterId","in":"query","description":"Filter using the Universally Unique Identifier (UUID) of the cluster.","required":false,"schema":{"type":"string","format":"uuid"}}},"schemas":{"WorkspacePolicyV2":{"properties":{"meta":{"$ref":"#/components/schemas/PolicyMeta"},"policy":{"$ref":"#/components/schemas/WorkspacePolicyDefaultsAndRulesV2"},"effective":{"$ref":"#/components/schemas/WorkspacePolicyDefaultsAndRulesV2"},"effectiveUpdatedAt":{"$ref":"#/components/schemas/Timestamp"}},"nullable":true,"type":"object"},"PolicyMeta":{"allOf":[{"$ref":"#/components/schemas/PolicyReadOnlyFields"},{"$ref":"#/components/schemas/PolicyCreationFields"}]},"PolicyReadOnlyFields":{"required":["id","createdBy","createdAt","updatedBy","updatedAt"],"properties":{"id":{"$ref":"#/components/schemas/PolicyId"},"tenantId":{"$ref":"#/components/schemas/TenantId"},"clusterId":{"$ref":"#/components/schemas/ClusterIdOptional"},"createdBy":{"description":"The user who created the policy.","type":"string","minLength":1},"createdAt":{"description":"The time at which the policy wes created","type":"string","minLength":1,"format":"date-time"},"updatedBy":{"description":"The user who updated the policy.","type":"string","minLength":1},"updatedAt":{"description":"The time at which the policy has been updated","type":"string","minLength":1,"format":"date-time"}}},"PolicyId":{"description":"The unique id of the policy.","type":"string","minLength":1,"format":"uuid"},"TenantId":{"description":"The id of the tenant.","type":"integer","format":"int32"},"ClusterIdOptional":{"description":"The id of the cluster.","type":"string","format":"uuid","minLength":1,"nullable":true},"PolicyCreationFields":{"required":["name","scope"],"properties":{"scope":{"$ref":"#/components/schemas/ScopeType"},"projectId":{"$ref":"#/components/schemas/ProjectIdOptional"},"departmentId":{"$ref":"#/components/schemas/DepartmentIdOptional"},"clusterId":{"$ref":"#/components/schemas/ClusterIdOptional"},"name":{"$ref":"#/components/schemas/PolicyName"}}},"ScopeType":{"type":"string","enum":["system","tenant","cluster","department","project"]},"ProjectIdOptional":{"description":"The id of the project.","type":"integer","format":"int32","nullable":true},"DepartmentIdOptional":{"description":"The id of the department.","type":"string","minLength":1,"nullable":true,"pattern":".*"},"PolicyName":{"description":"A chosen name for the policy.","type":"string","minLength":1,"pattern":".*"},"WorkspacePolicyDefaultsAndRulesV2":{"properties":{"defaults":{"allOf":[{"$ref":"#/components/schemas/WorkspacePolicyDefaultsV2"}],"nullable":true,"type":"object"},"rules":{"allOf":[{"$ref":"#/components/schemas/WorkspacePolicyRulesV2"}],"nullable":true,"type":"object"},"imposedAssets":{"$ref":"#/components/schemas/ImposedAssets"},"status":{"$ref":"#/components/schemas/PolicyValidationStatus"}},"nullable":true,"type":"object"},"WorkspacePolicyDefaultsV2":{"allOf":[{"nullable":true,"properties":{"annotations":{"$ref":"#/components/schemas/AnnotationsDefaults"},"args":{"$ref":"#/components/schemas/Args"},"autoDeletionTimeAfterCompletionSeconds":{"$ref":"#/components/schemas/AutoDeletionTimeAfterPreemption"},"backoffLimit":{"$ref":"#/components/schemas/BackoffLimit"},"category":{"$ref":"#/components/schemas/Category"},"command":{"$ref":"#/components/schemas/Command"},"compute":{"$ref":"#/components/schemas/SupersetDefaultsAllOfCompute"},"createHomeDir":{"$ref":"#/components/schemas/CreateHomeDir"},"environmentVariables":{"$ref":"#/components/schemas/EnvironmentVariablesDefaults"},"exposedUrls":{"$ref":"#/components/schemas/ExposedUrlsDefaults"},"image":{"$ref":"#/components/schemas/Image"},"imagePullPolicy":{"$ref":"#/components/schemas/ImagePullPolicy"},"imagePullSecrets":{"$ref":"#/components/schemas/ImagePullSecretsDefaults"},"labels":{"$ref":"#/components/schemas/LabelsDefaults"},"nodeAffinityRequired":{"$ref":"#/components/schemas/NodeAffinityRequired"},"nodePools":{"$ref":"#/components/schemas/NodePools"},"nodeType":{"$ref":"#/components/schemas/NodeType2"},"podAffinity":{"$ref":"#/components/schemas/PodAffinity"},"ports":{"$ref":"#/components/schemas/PortsDefaults"},"preemptibility":{"$ref":"#/components/schemas/Preemptibility"},"priorityClass":{"$ref":"#/components/schemas/PriorityClass"},"probes":{"$ref":"#/components/schemas/Probes"},"relatedUrls":{"$ref":"#/components/schemas/RelatedUrlsDefaults"},"restartPolicy":{"$ref":"#/components/schemas/RestartPolicy"},"security":{"$ref":"#/components/schemas/SupersetDefaultsAllOfSecurity"},"stdin":{"$ref":"#/components/schemas/Stdin"},"storage":{"nullable":true,"properties":{"configMapVolume":{"$ref":"#/components/schemas/ConfigMapsDefaults"},"dataVolume":{"$ref":"#/components/schemas/DataVolumesDefaults"},"emptyDirVolume":{"$ref":"#/components/schemas/EmptyDirsDefaults"},"git":{"$ref":"#/components/schemas/GitsDefaults"},"hostPath":{"$ref":"#/components/schemas/HostPathsDefaults"},"nfs":{"$ref":"#/components/schemas/NfssDefaults"},"pvc":{"$ref":"#/components/schemas/PvcsDefaults"},"s3":{"$ref":"#/components/schemas/S3sDefaults"},"secretVolume":{"$ref":"#/components/schemas/SecretsDefaults"}},"type":"object"},"terminateAfterPreemption":{"$ref":"#/components/schemas/TerminateAfterPreemption"},"terminationGracePeriodSeconds":{"$ref":"#/components/schemas/TerminationGracePeriod"},"tolerations":{"$ref":"#/components/schemas/TolerationsDefaults"},"tty":{"$ref":"#/components/schemas/Tty"},"workingDir":{"$ref":"#/components/schemas/WorkingDir"}},"type":"object"}]},"AnnotationsDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/Annotations"}},"nullable":true,"type":"object"},"Annotations":{"description":"Set of annotations to populate into the container running the workload.","type":"array","items":{"$ref":"#/components/schemas/Annotation"},"maxItems":1000,"nullable":true},"Annotation":{"description":"Annotation details to be populated into the container.","properties":{"name":{"description":"The name of the annotation (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":".*"},"value":{"description":"The value of the annotation.","type":"string","maxLength":10000,"nullable":true,"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","default":false,"nullable":true}},"nullable":true,"type":"object"},"Args":{"description":"Arguments to the command that the container running the workload executes.","type":"string","minLength":1,"maxLength":10000,"nullable":true,"pattern":".*"},"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","nullable":true},"BackoffLimit":{"description":"Specifies the number of retries before marking a workload as failed (not applicable to Inference workloads). The default value is 6.","format":"int64","type":"integer","nullable":true},"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":".*"},"Command":{"description":"A command to the server as the entry point of the container running the workload.","type":"string","minLength":1,"maxLength":10000,"nullable":true,"pattern":".*"},"SupersetDefaultsAllOfCompute":{"title":"SupersetDefaultsAllOfCompute","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/ExtendedResourcesDefaults"},"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"},"CpuCoreLimit":{"description":"Limitations on the number of CPUs consumed by the workload (0.5, 1, .etc). The system guarantees that this workload will not be able to consume more than this amount of CPUs.","format":"double","type":"number","nullable":true,"minimum":0},"CpuCoreRequest":{"description":"CPU units to allocate for the created workload (0.5, 1, .etc). The workload will receive at least this amount of CPU. Note that the workload will not be scheduled unless the system can guarantee this amount of CPUs to the workload.","format":"double","type":"number","nullable":true,"minimum":0},"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]*)$","maxLength":63,"nullable":true},"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","pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$","maxLength":63,"nullable":true},"ExtendedResourcesDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/ExtendedResource"},"instances":{"$ref":"#/components/schemas/ExtendedResources"}},"nullable":true,"type":"object"},"ExtendedResource":{"description":"Quantity of an extended resource.","properties":{"resource":{"description":"The name of the extended resource (mandatory)","type":"string","minLength":1,"maxLength":253,"nullable":true,"pattern":".*"},"quantity":{"description":"The requested quantity for the resource.","type":"string","minLength":1,"maxLength":63,"nullable":true,"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","nullable":true}},"nullable":true,"type":"object"},"ExtendedResources":{"description":"Extended resources and their quantity.","type":"array","items":{"$ref":"#/components/schemas/ExtendedResource"},"maxItems":1000,"nullable":true},"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","format":"int32","nullable":true,"minimum":0},"GpuMemoryLimit":{"description":"Limitation on the memory consumed by the workload, per GPU device. The system guarantees The gpuMemoryLimit must be no less than gpuMemoryRequest.","type":"string","pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$","maxLength":63,"nullable":true},"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]*)$","maxLength":63,"nullable":true},"GpuPortionLimit":{"description":"Limitations on the portion consumed by the workload, per GPU device. The system guarantees The gpuPotionLimit must be no less than the gpuPortionRequest.","type":"number","format":"double","nullable":true,"minimum":0},"GpuPortionRequest":{"description":"Required if and only if gpuRequestType is portion. States the portion of the GPU to allocate for the created workload, per GPU device, between 0 and 1. The default is no allocated GPUs.","type":"number","format":"double","nullable":true,"minimum":0},"GpuRequestType":{"description":"Sets the unit type for GPU resources requests. Stated in terms of portion or memory. Sets the unit type for other GPU request fields. If `gpuDevicesRequest > 1`, only `portion` is supported. If `gpuDeviceRequest = 1`, the request type can be stated as `portion` or `memory`.","type":"string","minLength":1,"enum":["portion","memory"],"nullable":true},"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","nullable":true},"CreateHomeDir":{"description":"When set to `true`, creates a home directory for the container.","type":"boolean","nullable":true},"EnvironmentVariablesDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/EnvironmentVariables"}},"nullable":true,"type":"object"},"EnvironmentVariables":{"description":"Set of environment variables to populate into the container running the workload.","type":"array","items":{"$ref":"#/components/schemas/EnvironmentVariable"},"maxItems":1000,"nullable":true},"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,"maxLength":63,"nullable":true,"pattern":".*"},"value":{"description":"The value of the environment variable. (mutually exclusive with secret, userCredential, configMap and podFieldRef)","type":"string","maxLength":10000,"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","nullable":true},"description":{"description":"Description of the environment variable.","type":"string","maxLength":250,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"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,"maxLength":253,"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,"maxLength":63,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"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","minLength":1,"maxLength":253,"nullable":true,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$"},"key":{"description":"The key in the config-map resource. (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"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","minLength":1,"maxLength":10000,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"EnvironmentVariableUserCredential":{"description":"Defines a reference to a user-created credential and a specific key within that credential whose value will populate the environment variable. User credentials can only be accessed by the user who created them.","properties":{"name":{"description":"The name of the user credential.  (mandatory)","type":"string","minLength":1,"maxLength":253,"nullable":true},"key":{"description":"The key in the user credential resource. (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true}},"nullable":true,"type":"object"},"ExposedUrlsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/ExposedUrl"},"instances":{"$ref":"#/components/schemas/ExposedUrls"}},"nullable":true,"type":"object"},"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","nullable":true},"url":{"$ref":"#/components/schemas/Url"},"authorizationType":{"$ref":"#/components/schemas/AuthorizationType"},"authorizedUsers":{"$ref":"#/components/schemas/AuthorizedUsers"},"authorizedGroups":{"$ref":"#/components/schemas/AuthorizedGroups"},"toolType":{"description":"The tool type that runs on this container port.","type":"string","nullable":true,"pattern":".*"},"toolName":{"description":"A name describing the tool that runs on this url.","type":"string","nullable":true,"pattern":".*","maxLength":253},"name":{"description":"Unique name to identify the instance. primarily used for policy locked rules.","type":"string","minLength":1,"maxLength":253,"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","nullable":true}},"nullable":true,"type":"object"},"Url":{"description":"The URL for connecting to the container port. If not specified, the URL will be auto-generated by the system.","type":"string","maxLength":2048,"pattern":".*","nullable":true},"AuthorizationType":{"type":"string","enum":["authenticatedUsers","authorizedUsers","authorizedGroups"],"description":"Specifies who can access the connection URL:\n- `authenticatedUsers`: Any authenticated user or service account can access the URL; the authorizedUsers and authorizedGroups fields are ignored.\n- `authorizedUsers`: Only users listed in the authorizedUsers field are allowed to access the URL; the authorizedGroups field is ignored.\n- `authorizedGroups`: Only members of user groups listed in the authorizedGroups field are allowed to access the URL; the authorizedUsers field is ignored.\nIf 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.\n","nullable":true},"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","maxLength":253,"pattern":".*"},"maxItems":1000,"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","maxLength":253,"pattern":".*"},"maxItems":1000,"nullable":true},"ExposedUrls":{"description":"Set of container ports that the workload exposes via URLs.","type":"array","items":{"$ref":"#/components/schemas/ExposedUrl"},"maxItems":1000,"nullable":true},"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","minLength":1,"maxLength":253,"nullable":true,"pattern":".*"},"ImagePullPolicy":{"description":"Image pull policy. Defaults to `Always` if `:latest` tag is specified, otherwise it is `IfNotPresent`.","type":"string","minLength":1,"enum":["Always","Never","IfNotPresent"],"nullable":true},"ImagePullSecretsDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/ImagePullSecrets"}},"nullable":true,"type":"object"},"ImagePullSecrets":{"description":"A list of references to Kubernetes secrets in the same namespace used for pulling container images.","type":"array","items":{"$ref":"#/components/schemas/ImagePullSecret"},"maxItems":1000,"nullable":true},"ImagePullSecret":{"description":"A reference to a secret in the same namespace used to pull container images.","properties":{"name":{"type":"string","description":"The name of the Kubernetes secret containing the image pull credentials.","pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$","maxLength":253},"userCredential":{"type":"boolean","description":"Indicates whether the secret is a user credential. Set to true if the secret was created by the user and is only accessible by them.","nullable":true},"exclude":{"description":"Use 'true' in case the secret is defined in defaults of the policy, and you wish to exclude it from the workload.","type":"boolean","default":false,"nullable":true}},"nullable":true,"type":"object"},"LabelsDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/Labels"}},"nullable":true,"type":"object"},"Labels":{"description":"Set of labels to populate into the container running the workload.","type":"array","items":{"$ref":"#/components/schemas/Label"},"maxItems":1000,"nullable":true},"Label":{"description":"Label details to be populated into the container.","properties":{"name":{"description":"The name of the label (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":".*"},"value":{"description":"The value of the label.","type":"string","nullable":true,"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","nullable":true}},"nullable":true,"type":"object"},"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"},"maxItems":1000}},"nullable":true},"NodeSelectorTerm":{"type":"object","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"},"maxItems":1000}},"nullable":true},"MatchExpression":{"type":"object","description":"A selector that contains values, a key, and an operator that relates the key and values.","properties":{"key":{"description":"The label key that the selector applies to (mandatory).","type":"string","pattern":".*","maxLength":63},"operator":{"$ref":"#/components/schemas/MatchExpressionOperator"},"values":{"description":"An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer.","type":"array","items":{"type":"string","maxLength":10000,"pattern":".*"},"maxItems":1000}},"required":["key","operator"],"nullable":true},"MatchExpressionOperator":{"description":"Represents a key's relationship to a set of values (mandatory).","type":"string","enum":["In","NotIn","Exists","DoesNotExist","Gt","Lt"]},"NodePools":{"description":"A prioritized list of node pools for the scheduler to run the workload on. The scheduler will always try to use the first node pool before moving to the next one if the first is not available.","type":"array","items":{"type":"string","maxLength":63,"pattern":".*"},"maxItems":1000,"nullable":true},"NodeType2":{"deprecated":true,"description":"Deprecated: use a workload policy node selector to target node types instead. 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","minLength":1,"nullable":true,"pattern":".*"},"PodAffinity":{"description":"Pod affinity scheduling rules (e.g. co-locate this workload in the same node, zone, etc. as some other workloads).","type":"object","properties":{"type":{"$ref":"#/components/schemas/PodAffinityType"},"key":{"description":"The label key to use. (mandatory)","type":"string","nullable":true,"pattern":".*","maxLength":63}},"nullable":true},"PodAffinityType":{"description":"The affinity type, required or preferred. (mandatory)","type":"string","enum":["Required","Preferred"],"nullable":true},"PortsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/Port"},"instances":{"$ref":"#/components/schemas/Ports"}},"nullable":true,"type":"object"},"Port":{"description":"A port for accessing the workload.","properties":{"container":{"description":"The port that the container running the workload exposes. (mandatory)","type":"integer","format":"int32","minimum":1,"maximum":65535,"nullable":true},"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","format":"int32","nullable":true},"toolType":{"description":"The tool type that runs on this port.","type":"string","nullable":true,"pattern":".*","maxLength":63},"toolName":{"description":"A name describing the tool that runs on this port.","type":"string","nullable":true,"pattern":".*","maxLength":253},"name":{"description":"Unique name to identify the instance. primarily used for policy locked rules.","type":"string","minLength":1,"maxLength":63,"nullable":true,"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","default":false,"nullable":true}},"nullable":true,"type":"object"},"PortServiceType":{"description":"The service type of the port (mandatory).","type":"string","enum":["LoadBalancer","NodePort","ClusterIP"],"nullable":true},"Ports":{"description":"Set of container ports that the workload exposes.","type":"array","items":{"$ref":"#/components/schemas/Port"},"maxItems":1000,"nullable":true},"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","minLength":1,"enum":["preemptible","non-preemptible"],"nullable":true},"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","nullable":true,"pattern":".*"},"Probes":{"description":"Probes are used to determine if the container is healthy and ready to accept traffic.","type":"object","properties":{"readiness":{"$ref":"#/components/schemas/Probe"}},"nullable":true},"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},"ProbeHandler":{"description":"The action taken to determine the health of the container. (mandatory)","type":"object","properties":{"httpGet":{"description":"An action based on HTTP Get requests.","type":"object","properties":{"path":{"description":"Path to access on the HTTP server, defaults to /.","type":"string","pattern":"^(\\x2F[a-zA-Z0-9\\-_.\\x2F]*)?$","nullable":true,"maxLength":2048},"port":{"description":"Number of the port to access on the container.","type":"integer","format":"int32","minimum":1,"maximum":65535,"nullable":true},"host":{"description":"Host name to connect to, defaults to the pod IP.","type":"string","format":"hostname","nullable":true,"pattern":".*","maxLength":253},"scheme":{"$ref":"#/components/schemas/ProbeHandlerScheme"}}}},"nullable":true},"ProbeHandlerScheme":{"description":"Scheme to use for connecting to the host, defaults to HTTP.","type":"string","enum":["HTTP","HTTPS"],"nullable":true},"RelatedUrlsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/RelatedUrl"},"instances":{"$ref":"#/components/schemas/RelatedUrls"}},"nullable":true,"type":"object"},"RelatedUrl":{"description":"A URL that is related to the workload. For example, a URL to an external server providing statistics or logging about the workload.","properties":{"url":{"description":"The URL for connecting an external service related to the workload. (mandatory)","type":"string","nullable":true,"pattern":".*","maxLength":2048},"type":{"description":"The type of service that the url provides. For example, wandb (Weights & Biases). (mandatory)","type":"string","nullable":true,"pattern":".*","maxLength":63},"name":{"description":"Unique name to identify the instance. primarily used for policy locked rules.","type":"string","nullable":true,"pattern":".*","maxLength":63},"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,"nullable":true}},"nullable":true,"type":"object"},"RelatedUrls":{"description":"Set of URLs that are related to the workload.","type":"array","items":{"$ref":"#/components/schemas/RelatedUrl"},"maxItems":1000,"nullable":true},"RestartPolicy":{"description":"Specify the restart policy of the workload pods. Default is empty, which is determine by the framework default.\nThe `Always` value is deprecated; use `OnFailure` or `Never` instead.\n","type":"string","minLength":1,"enum":["Always","Never","OnFailure"],"nullable":true},"SupersetDefaultsAllOfSecurity":{"title":"SupersetDefaultsAllOfSecurity","nullable":true,"properties":{"allowPrivilegeEscalation":{"$ref":"#/components/schemas/AllowPrivilegeEscalation"},"capabilities":{"$ref":"#/components/schemas/Capabilities"},"hostIpc":{"$ref":"#/components/schemas/HostIpc"},"hostNetwork":{"$ref":"#/components/schemas/HostNetwork"},"readOnlyRootFilesystem":{"$ref":"#/components/schemas/ReadOnlyRootFileSystem"},"runAsGid":{"$ref":"#/components/schemas/RunAsGid"},"runAsNonRoot":{"$ref":"#/components/schemas/RunAsNonRoot"},"runAsUid":{"$ref":"#/components/schemas/RunAsUid"},"seccompProfileType":{"$ref":"#/components/schemas/SeccompProfileType"},"supplementalGroups":{"$ref":"#/components/schemas/SupplementalGroups"},"uidGidSource":{"$ref":"#/components/schemas/UidGidSource"}},"type":"object"},"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://run-ai-docs.nvidia.com/self-hosted/2.26/infrastructure-setup/advanced-setup/container-access/user-identity-in-containers","type":"boolean","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"},"nullable":true},"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"]},"HostIpc":{"description":"Whether to enable host IPC. Defaults to false.","type":"boolean","nullable":true},"HostNetwork":{"description":"Whether to enable host networking. Default to false.","type":"boolean","nullable":true},"ReadOnlyRootFileSystem":{"description":"If true, mounts the container's root filesystem as read-only.","type":"boolean","nullable":true},"RunAsGid":{"description":"The group id to run the entrypoint of the container which executes the workspace. Default to the value specified in the environment asset `runAsGid` field (optional). Use only when the source uid/gid of the environment asset is not `fromTheImage`, and `overrideUidGidInWorkspace` is enabled.","type":"integer","format":"int64","nullable":true},"RunAsNonRoot":{"description":"Force the container to run as a non-root user.","type":"boolean","nullable":true},"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","format":"int64","nullable":true},"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","enum":["RuntimeDefault","Unconfined","Localhost"],"nullable":true},"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","nullable":true,"pattern":".*"},"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://run-ai-docs.nvidia.com/self-hosted/2.26/infrastructure-setup/advanced-setup/container-access/user-identity-in-containers).","type":"string","enum":["fromTheImage","fromIdpToken","custom"],"nullable":true},"Stdin":{"description":"Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF","type":"boolean","nullable":true},"ConfigMapsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/ConfigMapInstance"},"instances":{"$ref":"#/components/schemas/ConfigMapItems"}},"nullable":true,"type":"object"},"ConfigMapInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/ConfigMap"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"StorageInstanceName":{"properties":{"name":{"description":"unique name to identify the instance. primarily used for policy locked rules.","type":"string","minLength":1,"maxLength":63,"nullable":true}},"nullable":true,"type":"object"},"ConfigMap":{"properties":{"configMap":{"description":"The name of the ConfigMap resource. (mandatory)","type":"string","minLength":1,"maxLength":253,"nullable":true,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$"},"mountPath":{"description":"Local path within the workload to which the ConfigMap will be mapped to. (mandatory)","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"subPath":{"description":"Path within the volume from which the container's volume should be mounted.","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"defaultMode":{"$ref":"#/components/schemas/DefaultMode"}},"nullable":true,"type":"object"},"DefaultMode":{"type":"string","description":"File permission mode in octal string format. This value must be a 4-digit octal number, representing the default file mode when mounting a Secret or ConfigMap as a volume.\n","minLength":4,"maxLength":4,"pattern":"0[0-7]{3}","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,"nullable":true}},"type":"object","nullable":true},"ConfigMapItems":{"description":"Set of config map volumes to use in the workload","type":"array","items":{"$ref":"#/components/schemas/ConfigMapInstance"},"maxItems":1000,"nullable":true},"DataVolumesDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/DataVolumeInstance"},"instances":{"$ref":"#/components/schemas/DataVolumeItems"}},"nullable":true,"type":"object"},"DataVolumeInstance":{"allOf":[{"$ref":"#/components/schemas/DataVolume"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"DataVolume":{"properties":{"id":{"description":"The unique identifier of the data volume. (mandatory)","type":"string","format":"uuid","nullable":true},"mountPath":{"description":"The path where the data volume will be mounted. (mandatory)","type":"string","nullable":true,"pattern":".*","maxLength":4096}},"nullable":true,"type":"object"},"DataVolumeItems":{"description":"Set of data volumes to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/DataVolumeInstance"},"maxItems":1000,"nullable":true},"EmptyDirsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/EmptyDirInstance"},"instances":{"$ref":"#/components/schemas/EmptyDirItems"}},"nullable":true,"type":"object"},"EmptyDirInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/EmptyDir"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"EmptyDir":{"properties":{"path":{"description":"Local path within the workload to which the EmptyDir volume will be mapped. (mandatory)","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"medium":{"description":"The type of storage medium for the volume. Use \"Memory\" for memory-backed storage, or leave empty for disk-backed storage.","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":".*"},"sizeLimit":{"description":"The total amount of local storage or memory required for the emptyDir volume. Specify using Kubernetes quantity format (e.g., 1G, 500Mi).","type":"string","maxLength":63,"pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$","nullable":true}},"nullable":true,"type":"object"},"EmptyDirItems":{"description":"A list of emptyDir volumes to mount in the workload.","type":"array","items":{"$ref":"#/components/schemas/EmptyDirInstance"},"maxItems":1000,"nullable":true},"GitsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/GitInstance"},"instances":{"$ref":"#/components/schemas/GitItems"}},"nullable":true,"type":"object"},"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"},"GitCommon":{"properties":{"repository":{"description":"URL to a remote Git repository. The content of this repository will be mapped to the container running the workload. (mandatory)","type":"string","minLength":1,"maxLength":2048,"nullable":true},"branch":{"description":"Specific branch to synchronize the repository from.","type":"string","minLength":1,"maxLength":63,"nullable":true},"revision":{"description":"Specific revision to synchronize the repository from.","type":"string","minLength":1,"maxLength":63,"nullable":true},"path":{"description":"Local path within the workload to which the Git repository will be mapped (mandatory).","type":"string","minLength":1,"maxLength":4096,"nullable":true}},"nullable":true,"type":"object"},"GitPassword":{"properties":{"passwordSecret":{"description":"Secret containing the credentials of the repository (needed for non public repository which requires authentication). (deprecated)","type":"string","minLength":1,"nullable":true},"secretKeyOfUser":{"description":"The key to use for loading the user name from the secret. The default is `User`. (deprecated)","type":"string","minLength":1,"nullable":true},"secretKeyOfPassword":{"description":"The key to use for loading the password from the secret. The default is `Password`. (deprecated)","type":"string","minLength":1,"nullable":true}},"nullable":true,"type":"object"},"GitSecretRef":{"properties":{"name":{"description":"Name of the Secret containing the credentials of the repository.","type":"string","minLength":1},"authenticationMethod":{"$ref":"#/components/schemas/GitAuthenticationMethod"},"secretKeyOfUser":{"description":"The key in the Secret that contains the Git username (used for `password` authentication).","type":"string","minLength":1,"nullable":true},"secretKeyOfPassword":{"description":"The key in the Secret that contains the Git password (used for `password` authentication).","type":"string","minLength":1,"nullable":true}},"nullable":true,"type":"object"},"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,"enum":["password","ssh-key"]},"GitItems":{"description":"Set of git repositories to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/GitInstance"},"maxItems":1000,"nullable":true},"HostPathsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/HostPathInstance"},"instances":{"$ref":"#/components/schemas/HostPathItems"}},"nullable":true,"type":"object"},"HostPathInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/HostPath"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"HostPath":{"properties":{"path":{"description":"Local path within the controller to which the host volume will be mapped. (mandatory)","type":"string","minLength":1,"maxLength":4096,"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,"maxLength":4096,"nullable":true,"pattern":".*"},"mountPropagation":{"$ref":"#/components/schemas/HostPathMountPropagation"}},"nullable":true,"type":"object"},"HostPathMountPropagation":{"description":"Share this volumes mount with other containers. If set to HostToContainer, this volume mount will receive all subsequent mounts that are mounted to this volume or any of its subdirectories. In case of multiple hostPath entries, this field should have the same value for all of them.","type":"string","enum":["None","HostToContainer"],"nullable":true},"HostPathItems":{"description":"Set of host paths to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/HostPathInstance"},"maxItems":1000,"nullable":true},"NfssDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/NfsInstance"},"instances":{"$ref":"#/components/schemas/NfsItems"}},"nullable":true,"type":"object"},"NfsInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/Nfs"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"Nfs":{"properties":{"path":{"description":"Path that is exported by the NFS server (mandatory). For more information, see [NFS](https://kubernetes.io/docs/concepts/storage/volumes#nfs).","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"readOnly":{"description":"Force the NFS export to be mounted with read-only permissions.","type":"boolean","default":true,"nullable":true},"server":{"description":"The hostname or IP address of the NFS server. (mandatory)","type":"string","minLength":1,"maxLength":253,"nullable":true,"pattern":".*"},"mountPath":{"description":"The path that the NFS volume will be mounted to when in use. (mandatory)","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"NfsItems":{"description":"Set of nfs volumes to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/NfsInstance"},"maxItems":1000,"nullable":true},"PvcsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/PvcInstance"},"instances":{"$ref":"#/components/schemas/PvcItems"}},"nullable":true,"type":"object"},"PvcInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/Pvc"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"Pvc":{"allOf":[{"$ref":"#/components/schemas/PvcFieldsUpdatable"},{"$ref":"#/components/schemas/PvcFieldsNonUpdatable"}]},"PvcFieldsUpdatable":{"properties":{"path":{"description":"Local path within the workload to which the PVC bucket will be mapped. (mandatory)","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"PvcFieldsNonUpdatable":{"properties":{"existingPvc":{"description":"Verify existing PVC. PVC is assumed to exist when set to `true`. If set to `false`, the PVC will be created, if it does not exist.","type":"boolean","default":false,"nullable":true},"claimName":{"description":"Name for the PVC. Allow referencing it across workloads. If not provided, a name based on the workload name and scope will be auto-generated.","type":"string","minLength":1,"maxLength":63,"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,"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,"nullable":true}},"nullable":true,"type":"object"},"ClaimInfo":{"description":"Claim information for the newly created PVC. The information should not be provided when attempting to use existing PVC.","properties":{"size":{"$ref":"#/components/schemas/PvcClaimSize"},"storageClass":{"description":"Storage class name to associate with the PVC. This parameter may be omitted if there is a single storage class in the system, or you are using the default storage class. For more information, see [Storage class](https://kubernetes.io/docs/concepts/storage/storage-classes).","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$"},"accessModes":{"$ref":"#/components/schemas/PvcAccessModes"},"volumeMode":{"$ref":"#/components/schemas/PvcVolumeMode"},"addedAttrValues":{"$ref":"#/components/schemas/PvcAddedAttrValues"}},"nullable":true,"type":"object"},"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]*)$","maxLength":63,"nullable":true},"PvcAccessModes":{"description":"Default access mode(s) applied to newly created PVCs unless explicitly overridden.","properties":{"readWriteOnce":{"description":"Mount the volume as read/write by a single node.","type":"boolean","default":true,"nullable":true},"readOnlyMany":{"description":"Mount the volume as read-only by many nodes.","type":"boolean","default":false,"nullable":true},"readWriteMany":{"description":"Mount the volume as read/write by many nodes.","type":"boolean","default":false,"nullable":true}},"nullable":true,"type":"object"},"PvcVolumeMode":{"description":"Default volume mode for the PVC. Choose between Filesystem (default) or Block.","type":"string","enum":["Filesystem","Block"],"nullable":true},"PvcAddedAttrValues":{"description":"an optional array of key-values pairs that are written as annotations on the created PVC. the allowed attributes are determined according to the storage class configuration (see k8s-objects-tracker for further info).","type":"array","items":{"$ref":"#/components/schemas/PvcAddedAttrValue"},"maxItems":1000},"PvcAddedAttrValue":{"type":"object","required":["key"],"properties":{"key":{"type":"string","minLength":1,"maxLength":63,"pattern":"^([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]$"},"value":{"type":"string","pattern":".*","maxLength":10000}}},"PvcItems":{"description":"Set of pvc persistent volume claims to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/PvcInstance"},"maxItems":1000,"nullable":true},"S3sDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/S3Instance"},"instances":{"$ref":"#/components/schemas/S3Items"}},"nullable":true,"type":"object"},"S3Instance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/S3Common"},{"$ref":"#/components/schemas/S3AccessKey"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"S3Common":{"properties":{"bucket":{"description":"The name of the bucket. (mandatory)","type":"string","minLength":1,"nullable":true},"path":{"description":"Local path within the workload to which the S3 bucket will be mapped. (mandatory)","type":"string","minLength":1,"nullable":true},"url":{"description":"The url of the S3 service provider. The default is the URL of the Amazon AWS S3 service.","type":"string","minLength":1,"nullable":true}},"nullable":true,"type":"object"},"S3AccessKey":{"properties":{"accessKeySecret":{"description":"Name of the secret containing credentials of the S3 bucket. Used for private S3 buckets.","type":"string","minLength":1,"nullable":true,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$"},"secretKeyOfAccessKeyId":{"description":"The key to use for loading the access key id from the secret. The default is `AccessKeyId`. For more information, see [Credentials access keys](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html).","type":"string","minLength":1,"nullable":true,"pattern":".*"},"secretKeyOfSecretKey":{"description":"The key to use for loading the secret key from the secret. The default is `SecretKey`. For more information, see [Credentials access keys](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html).","type":"string","minLength":1,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"S3Items":{"description":"Set of s3 buckets to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/S3Instance"},"nullable":true},"SecretsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/SecretInstance"},"instances":{"$ref":"#/components/schemas/SecretItems"}},"nullable":true,"type":"object"},"SecretInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/Secret"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"Secret":{"allOf":[{"$ref":"#/components/schemas/SecretFieldsUpdatable"},{"$ref":"#/components/schemas/SecretFieldsNonUpdatable"}]},"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"},"SecretFieldsNonUpdatable":{"properties":{"secret":{"description":"The name of the Secret resource. (mandatory)","type":"string","minLength":1,"nullable":true}},"nullable":true,"type":"object"},"SecretItems":{"description":"Set of secret volumes to use in the workload","type":"array","items":{"$ref":"#/components/schemas/SecretInstance"},"nullable":true},"TerminateAfterPreemption":{"description":"Indicates if the job should be terminated by the system after it has been preempted.","type":"boolean","nullable":true},"TerminationGracePeriod":{"description":"Duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down).","format":"int64","type":"integer","minimum":0,"nullable":true},"TolerationsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/Toleration"},"instances":{"$ref":"#/components/schemas/Tolerations"}},"nullable":true,"type":"object"},"Toleration":{"description":"Toleration details.","properties":{"name":{"description":"The name of the toleration.","type":"string","minLength":1,"maxLength":253,"nullable":true,"pattern":".*"},"operator":{"$ref":"#/components/schemas/TolerationOperator"},"key":{"description":"The taint key that the toleration applies to. (mandatory)","type":"string","maxLength":253,"nullable":true,"pattern":".*"},"value":{"description":"The taint value the toleration matches to. Mandatory if operator is Exists, forbidden otherwise.","type":"string","maxLength":10000,"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","nullable":true}},"nullable":true,"type":"object"},"TolerationOperator":{"description":"A key's relationship to the value. Equal uses key and value. Exists is equivalent to wildcard for value, so that a workload can tolerate all taints of a particular category. (mandatory)","type":"string","enum":["Equal","Exists"],"nullable":true},"TolerationEffect":{"description":"The taint effect to match. (mandatory)","type":"string","enum":["NoSchedule","NoExecute","PreferNoSchedule","Any"],"nullable":true},"Tolerations":{"description":"Set of tolerations to apply to the workload.","type":"array","items":{"$ref":"#/components/schemas/Toleration"},"maxItems":1000,"nullable":true},"Tty":{"description":"Whether this container should allocate a TTY for itself, also requires 'stdin' to be true.","type":"boolean","nullable":true},"WorkingDir":{"description":"Container's working directory. If not specified, the container runtime default will be used. This may be configured in the container image.","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"WorkspacePolicyRulesV2":{"allOf":[{"nullable":true,"properties":{"annotations":{"$ref":"#/components/schemas/InstancesRules"},"args":{"$ref":"#/components/schemas/StringRules"},"autoDeletionTimeAfterCompletionSeconds":{"$ref":"#/components/schemas/IntegerRules"},"backoffLimit":{"$ref":"#/components/schemas/IntegerRules"},"category":{"$ref":"#/components/schemas/StringRules"},"command":{"$ref":"#/components/schemas/StringRules"},"compute":{"$ref":"#/components/schemas/SupersetRulesAllOfCompute"},"createHomeDir":{"$ref":"#/components/schemas/BooleanRules"},"environmentVariables":{"$ref":"#/components/schemas/InstancesRules"},"exposedUrls":{"$ref":"#/components/schemas/ExposedUrlsRules"},"image":{"$ref":"#/components/schemas/StringRules"},"imagePullPolicy":{"$ref":"#/components/schemas/ImagePullPolicyRules"},"imagePullSecrets":{"$ref":"#/components/schemas/ImagePullSecretsRules"},"labels":{"$ref":"#/components/schemas/InstancesRules"},"nodeAffinityRequired":{"$ref":"#/components/schemas/ArbitraryRules"},"nodePools":{"$ref":"#/components/schemas/ArrayRules"},"nodeType":{"$ref":"#/components/schemas/StringRules"},"podAffinity":{"$ref":"#/components/schemas/PodAffinityRules"},"ports":{"$ref":"#/components/schemas/PortsRules"},"preemptibility":{"$ref":"#/components/schemas/PreemptibilityRules"},"priorityClass":{"$ref":"#/components/schemas/StringRules"},"probes":{"$ref":"#/components/schemas/ProbesRules"},"relatedUrls":{"$ref":"#/components/schemas/RelatedUrlsRules"},"restartPolicy":{"$ref":"#/components/schemas/RestartPolicyRule"},"security":{"$ref":"#/components/schemas/SupersetRulesAllOfSecurity"},"stdin":{"$ref":"#/components/schemas/BooleanRules"},"storage":{"nullable":true,"properties":{"configMapVolume":{"$ref":"#/components/schemas/ConfigMapsRules"},"dataVolume":{"$ref":"#/components/schemas/DataVolumesRules"},"emptyDirVolume":{"$ref":"#/components/schemas/EmptyDirsRules"},"git":{"$ref":"#/components/schemas/GitsRules"},"hostPath":{"$ref":"#/components/schemas/HostPathsRules"},"nfs":{"$ref":"#/components/schemas/NfssRules"},"pvc":{"$ref":"#/components/schemas/PvcsRules"},"s3":{"$ref":"#/components/schemas/S3sRules"},"secretVolume":{"$ref":"#/components/schemas/SecretsRules"}},"type":"object"},"terminateAfterPreemption":{"$ref":"#/components/schemas/BooleanRules"},"terminationGracePeriodSeconds":{"$ref":"#/components/schemas/IntegerRules"},"tolerations":{"$ref":"#/components/schemas/TolerationsRules"},"tty":{"$ref":"#/components/schemas/BooleanRules"},"workingDir":{"$ref":"#/components/schemas/StringRules"}},"type":"object"}]},"InstancesRules":{"properties":{"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ItemRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"canAdd":{"description":"Whether it is permitted to add items. Default to true.","type":"boolean","nullable":true},"locked":{"description":"Set of keys for items that are \"locked\", i.e. cannot be removed or deleted.","type":"array","items":{"type":"string"}}},"nullable":true,"type":"object"},"SourceOfRule":{"description":"This field is used by the system along with effective rules, in order to specify the org unit from which this effective rule has been derived. It should be left empty when sending apply policy requests.","required":["scope"],"properties":{"scope":{"$ref":"#/components/schemas/ScopeType"},"projectId":{"$ref":"#/components/schemas/ProjectIdOptional"},"departmentId":{"$ref":"#/components/schemas/DepartmentIdOptional"},"clusterId":{"$ref":"#/components/schemas/ClusterIdOptional"},"isFallback":{"description":"source of this rule is the fallback policy","type":"boolean"}},"nullable":true,"type":"object"},"StringRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/StringRulesOptions"}],"nullable":true,"type":"object"},"StringRulesCommon":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory, default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable, default to true","type":"boolean","nullable":true},"blocked":{"description":"Blocks the field to prevent workloads from specifying any value for it.","type":"boolean","nullable":true}}},"StringRulesOptions":{"properties":{"options":{"description":"Set of options that the value of the field must be chosen from.","type":"array","items":{"$ref":"#/components/schemas/StringOption"},"nullable":true}}},"StringOption":{"description":"One of the values that the field can be assigned to, when options police is applied on the field.","required":["value"],"properties":{"value":{"description":"The value that the field should hold","type":"string","pattern":".*"},"displayed":{"description":"Textual description of the value. to be used by user interface applications.","type":"string","nullable":true,"pattern":".*"}}},"IntegerRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory. default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"max":{"description":"The maximum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"step":{"description":"The minimal difference between two values the field can be assigned to. For example, min=2, max=10, step=2 implies that the values the field can hold are 2, 4, 6, 8 and 10.","type":"integer","format":"int32","nullable":true},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"DefaultFromRule":{"properties":{"field":{"description":"The default of this field is taken from another field, with optional factor. The specified field must belong to the same workload section (compute, security, etc). For itemized field, the value of the field will be taken from the same instance.","type":"string","nullable":true,"pattern":".*"},"factor":{"description":"Multiple the value of the fromField by this factor to get the value for this field For example, if factor is 2 and defaultFrom field has value of 8, the calculated default will be determined to be 16.","type":"number","format":"double","nullable":true,"default":1}},"nullable":true,"type":"object"},"SupersetRulesAllOfCompute":{"title":"SupersetRulesAllOfCompute","nullable":true,"properties":{"cpuCoreLimit":{"$ref":"#/components/schemas/NumberRules"},"cpuCoreRequest":{"$ref":"#/components/schemas/NumberRules"},"cpuMemoryLimit":{"$ref":"#/components/schemas/QuantityRules"},"cpuMemoryRequest":{"$ref":"#/components/schemas/QuantityRules"},"extendedResources":{"$ref":"#/components/schemas/ExtendedResourcesRules"},"gpuDevicesRequest":{"$ref":"#/components/schemas/IntegerRules"},"gpuMemoryLimit":{"$ref":"#/components/schemas/QuantityRules"},"gpuMemoryRequest":{"$ref":"#/components/schemas/QuantityRules"},"gpuPortionLimit":{"$ref":"#/components/schemas/NumberRules"},"gpuPortionRequest":{"$ref":"#/components/schemas/NumberRules"},"gpuRequestType":{"$ref":"#/components/schemas/GpuRequestRules"},"largeShmRequest":{"$ref":"#/components/schemas/BooleanRules"}},"type":"object"},"NumberRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory. default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"number","nullable":true},"max":{"description":"The maximum value that the field can be assigned to.","type":"number","nullable":true},"step":{"description":"The minimal difference between two values the field can be assigned to. For example, min=2, max=3, step=0.25 implies that the values the field can hold are 2, 2.25, 2.5 and 3.","type":"number","nullable":true},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"QuantityRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory, default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable, default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"string","nullable":true,"pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"},"max":{"description":"The maximum value that the field can be assigned to.","type":"string","nullable":true,"pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"ExtendedResourcesRules":{"properties":{"attributes":{"$ref":"#/components/schemas/ExtendedResourceRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ExtendedResourceRules":{"description":"Rules for the attributes of extendedResources","properties":{"quantity":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"GpuRequestRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/GpuRequestOptions"}],"nullable":true,"type":"object"},"GpuRequestOptions":{"properties":{"options":{"description":"Limit the permitted values for gpuRequest to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/GpuRequestType"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"BooleanRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory. default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true}},"nullable":true,"type":"object"},"ExposedUrlsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/ExposedUrlRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ExposedUrlRules":{"description":"Rules for the attributed of exposedUrls","properties":{"container":{"$ref":"#/components/schemas/IntegerRules"},"customUrl":{"$ref":"#/components/schemas/BooleanRules"},"url":{"$ref":"#/components/schemas/StringRules"},"authorizedUsers":{"$ref":"#/components/schemas/ArrayRules"},"authorizedGroups":{"$ref":"#/components/schemas/ArrayRules"},"toolType":{"$ref":"#/components/schemas/StringRules"},"toolName":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"ArrayRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether this array is mandatory. Mandatory array must include at least one item. default to false.","type":"boolean","nullable":true},"options":{"description":"Set of options that the value of each item of the array must be chosen from.","type":"array","items":{"$ref":"#/components/schemas/StringOption"}},"canEdit":{"description":"Whether the value of the array, as a whole, is editable. default to false.","type":"boolean","nullable":true}},"nullable":true,"type":"object"},"ImagePullPolicyRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/ImagePullPolicyOptions"}],"nullable":true,"type":"object"},"ImagePullPolicyOptions":{"properties":{"options":{"description":"Limit the permitted values for imagePullPolicy to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/ImagePullPolicy"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ImagePullSecretsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/ImagePullSecretsRulesAttributes"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ImagePullSecretsRulesAttributes":{"description":"Rules for the attributes of imagePullSecrets","properties":{"name":{"$ref":"#/components/schemas/StringRules"},"userCredentials":{"$ref":"#/components/schemas/BooleanRules"}},"nullable":true,"type":"object"},"ArbitraryRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether this arbitrary object is mandatory. default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field, as a whole, is editable. default to false.","type":"boolean","nullable":true}},"nullable":true,"type":"object"},"PodAffinityRules":{"properties":{"type":{"$ref":"#/components/schemas/PodAffinityTypeRules"},"key":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"PodAffinityTypeRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/PodAffinityTypeOptions"}],"nullable":true,"type":"object"},"PodAffinityTypeOptions":{"properties":{"options":{"type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/PodAffinityType"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"type":"object"},"PortsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/PortRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"PortRules":{"description":"Rules for port attributes","properties":{"container":{"$ref":"#/components/schemas/IntegerRules"},"serviceType":{"$ref":"#/components/schemas/PortServiceTypeRules"},"customExternalPort":{"$ref":"#/components/schemas/BooleanRules"},"external":{"$ref":"#/components/schemas/IntegerRules"},"toolType":{"$ref":"#/components/schemas/StringRules"},"toolName":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"PortServiceTypeRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/PortServiceTypeOptions"}],"nullable":true,"type":"object"},"PortServiceTypeOptions":{"properties":{"options":{"type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/PortServiceType"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"PreemptibilityRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/PreemptibilityOptions"}],"nullable":true,"type":"object"},"PreemptibilityOptions":{"properties":{"options":{"description":"Limit the permitted values for preemptibility to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/Preemptibility"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ProbesRules":{"properties":{"readiness":{"$ref":"#/components/schemas/ProbeRules"}},"nullable":true,"type":"object"},"ProbeRules":{"properties":{"initialDelaySeconds":{"$ref":"#/components/schemas/IntegerRules"},"periodSeconds":{"$ref":"#/components/schemas/IntegerRules"},"timeoutSeconds":{"$ref":"#/components/schemas/IntegerRules"},"successThreshold":{"$ref":"#/components/schemas/IntegerRules"},"failureThreshold":{"$ref":"#/components/schemas/IntegerRules"},"handler":{"$ref":"#/components/schemas/ProbeHandlerRules"}},"nullable":true,"type":"object"},"ProbeHandlerRules":{"properties":{"httpGet":{"properties":{"path":{"$ref":"#/components/schemas/StringRules"},"port":{"$ref":"#/components/schemas/IntegerRules"},"host":{"$ref":"#/components/schemas/StringRules"},"scheme":{"$ref":"#/components/schemas/StringRules"}}}},"nullable":true,"type":"object"},"RelatedUrlsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/RelatedUrlRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"RelatedUrlRules":{"description":"Rules for the attributes of relatedUrls","properties":{"url":{"$ref":"#/components/schemas/StringRules"},"type":{"$ref":"#/components/schemas/StringRules"},"name":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"RestartPolicyRule":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/RestartPolicyOptions"}],"nullable":true,"type":"object"},"RestartPolicyOptions":{"properties":{"options":{"description":"Limit the permitted values for restartPolicy to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/RestartPolicy"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"SupersetRulesAllOfSecurity":{"title":"SupersetRulesAllOfSecurity","nullable":true,"properties":{"allowPrivilegeEscalation":{"$ref":"#/components/schemas/BooleanRules"},"capabilities":{"$ref":"#/components/schemas/ArrayRules"},"hostIpc":{"$ref":"#/components/schemas/BooleanRules"},"hostNetwork":{"$ref":"#/components/schemas/BooleanRules"},"readOnlyRootFilesystem":{"$ref":"#/components/schemas/BooleanRules"},"runAsGid":{"$ref":"#/components/schemas/IntegerRulesOptional"},"runAsNonRoot":{"$ref":"#/components/schemas/BooleanRules"},"runAsUid":{"$ref":"#/components/schemas/IntegerRulesOptional"},"seccompProfileType":{"$ref":"#/components/schemas/SeccompProfileTypeRules"},"supplementalGroups":{"$ref":"#/components/schemas/StringRules"},"uidGidSource":{"$ref":"#/components/schemas/UidGidSourceRules"}},"type":"object"},"IntegerRulesOptional":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"max":{"description":"The maximum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"step":{"description":"The minimal difference between two values the field can be assigned to. For example, min=2, max=10, step=2 implies that the values the field can hold are 2, 4, 6, 8 and 10.","type":"integer","format":"int32","nullable":true},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"SeccompProfileTypeRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/SeccompProfileTypeOptions"}],"nullable":true,"type":"object"},"SeccompProfileTypeOptions":{"properties":{"options":{"description":"Limit the permitted values for secompProfileType to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/SeccompProfileType"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"UidGidSourceRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/UidGidSourceOptions"}],"nullable":true,"type":"object"},"UidGidSourceOptions":{"properties":{"options":{"description":"Limit the permitted values for uidGidSource to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/UidGidSource"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ConfigMapsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/ConfigMapRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ConfigMapRules":{"properties":{"configMap":{"$ref":"#/components/schemas/StringRules"},"mountPath":{"$ref":"#/components/schemas/StringRules"},"subPath":{"$ref":"#/components/schemas/StringRules"},"defaultMode":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"DataVolumesRules":{"properties":{"attributes":{"$ref":"#/components/schemas/DataVolumeRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"DataVolumeRules":{"properties":{"id":{"$ref":"#/components/schemas/StringRules"},"mountPath":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"EmptyDirsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/EmptyDirRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"EmptyDirRules":{"properties":{"path":{"$ref":"#/components/schemas/StringRules"},"medium":{"$ref":"#/components/schemas/StringRules"},"sizeLimit":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"GitsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/GitRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"GitRules":{"properties":{"repository":{"$ref":"#/components/schemas/StringRules"},"branch":{"$ref":"#/components/schemas/StringRules"},"revision":{"$ref":"#/components/schemas/StringRules"},"path":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"HostPathsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/HostPathRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"HostPathRules":{"properties":{"path":{"$ref":"#/components/schemas/StringRules"},"readOnly":{"$ref":"#/components/schemas/BooleanRules"},"mountPath":{"$ref":"#/components/schemas/StringRules"},"mountPropagation":{"$ref":"#/components/schemas/HostPathMountPropagationRules"}},"nullable":true,"type":"object"},"HostPathMountPropagationRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/HostPathMountPropagationOptions"}],"nullable":true,"type":"object"},"HostPathMountPropagationOptions":{"properties":{"options":{"type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/HostPathMountPropagation"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}}},"NfssRules":{"properties":{"attributes":{"$ref":"#/components/schemas/NfsRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"NfsRules":{"properties":{"path":{"$ref":"#/components/schemas/StringRules"},"readOnly":{"$ref":"#/components/schemas/BooleanRules"},"server":{"$ref":"#/components/schemas/StringRules"},"mountPath":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"PvcsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/PvcRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"PvcRules":{"properties":{"claimName":{"$ref":"#/components/schemas/StringRules"},"path":{"$ref":"#/components/schemas/StringRules"},"readOnly":{"$ref":"#/components/schemas/BooleanRules"},"claimInfo":{"$ref":"#/components/schemas/ClaimInfoRules"}},"nullable":true,"type":"object"},"ClaimInfoRules":{"properties":{"size":{"$ref":"#/components/schemas/StringRules"},"storageClass":{"$ref":"#/components/schemas/StringRules"},"accessModes":{"$ref":"#/components/schemas/PvcAccessModesRules"}},"nullable":true,"type":"object"},"PvcAccessModesRules":{"description":"Rules for access mode(s) for a newly created PVC.","properties":{"readWriteOnce":{"$ref":"#/components/schemas/BooleanRules"},"readOnlyMany":{"$ref":"#/components/schemas/BooleanRules"},"readWriteMany":{"$ref":"#/components/schemas/BooleanRules"}},"nullable":true,"type":"object"},"S3sRules":{"properties":{"attributes":{"$ref":"#/components/schemas/S3Rules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"S3Rules":{"properties":{"bucket":{"$ref":"#/components/schemas/StringRules"},"path":{"$ref":"#/components/schemas/StringRules"},"url":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"SecretsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/SecretRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"SecretRules":{"properties":{"secret":{"$ref":"#/components/schemas/StringRules"},"mountPath":{"$ref":"#/components/schemas/StringRules"},"defaultMode":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"TolerationsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/TolerationRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"TolerationRules":{"description":"Toleration details.","properties":{"operator":{"$ref":"#/components/schemas/TolerationOperatorRules"},"key":{"$ref":"#/components/schemas/StringRules"},"value":{"$ref":"#/components/schemas/StringRules"},"effect":{"$ref":"#/components/schemas/TolerationEffectRules"},"seconds":{"$ref":"#/components/schemas/IntegerRules"},"exclude":{"$ref":"#/components/schemas/BooleanRules"}},"nullable":true,"type":"object"},"TolerationOperatorRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/TolerationOperatorOptions"}],"nullable":true,"type":"object"},"TolerationOperatorOptions":{"properties":{"options":{"description":"Limit the permitted values for imagePullPolicy to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/TolerationOperator"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"TolerationEffectRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/TolerationEffectOptions"}],"nullable":true,"type":"object"},"TolerationEffectOptions":{"properties":{"options":{"description":"Limit the permitted values for imagePullPolicy to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/TolerationEffect"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ImposedAssets":{"description":"a list of datasource assets to import into the policy. these datasources will be included in any workload that will be created in the scope of the policy.","type":"array","items":{"type":"string","format":"uuid"},"nullable":true},"PolicyValidationStatus":{"properties":{"validation":{"properties":{"errorMessage":{"pattern":".*","type":"string","description":"In case validation failed, holds the error message explaining the issue"}},"nullable":true,"type":"object"}},"nullable":true,"type":"object"},"Timestamp":{"description":"The time at which an event occurred. e.g. the time an effective policy has been updated","type":"string","minLength":1,"format":"date-time"},"Error":{"required":["code","message"],"properties":{"code":{"type":"integer","minimum":100,"maximum":599},"message":{"type":"string"},"details":{"type":"string"}}}},"responses":{"400BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401Unauthorized":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403Forbidden":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404NotFound":{"description":"The specified resource was not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503ServiceUnavailable":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/api/v2/policy/workspaces":{"get":{"summary":"Get a workspace policy.","description":"Retrieve the details of a workspace policy for a given organizational unit.","operationId":"get_workspace_policy_v2","tags":["Policy"],"parameters":[{"$ref":"#/components/parameters/PolicyScope"},{"$ref":"#/components/parameters/FilterByDepartment"},{"$ref":"#/components/parameters/FilterByProject"},{"$ref":"#/components/parameters/FilterByCluster"}],"responses":{"200":{"description":"Request completed successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspacePolicyV2"}}}},"400":{"$ref":"#/components/responses/400BadRequest"},"401":{"$ref":"#/components/responses/401Unauthorized"},"403":{"$ref":"#/components/responses/403Forbidden"},"404":{"$ref":"#/components/responses/404NotFound"},"503":{"$ref":"#/components/responses/503ServiceUnavailable"}}}}}}
```

## Overwrite a workspace policy.

> Ue to apply a workspace policy for a given organizational unit.

```json
{"openapi":"3.0.3","info":{"title":"NVIDIA Run:ai","version":"2.26"},"tags":[{"name":"Policy","description":"Policies allow administrators to impose restrictions and set default values for researcher workloads. \nRestrictions and default values can be placed on CPUs, GPUs, and other resources or entities. \nFor more information, see [Policies](https://run-ai-docs.nvidia.com/self-hosted/2.26/platform-management/policies/#introduction).\n"}],"servers":[{"url":"https://app.run.ai"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer authentication"}},"parameters":{"ValidateOnly":{"name":"validateOnly","in":"query","required":false,"description":"Validate the given policy payload without applying it","schema":{"type":"boolean"}},"ApproveClusterDeletion":{"name":"approveClusterDeletion","in":"query","required":false,"description":"Required when modifying or deleting a policy if the tenant includes one or more clusters running version 2.20 or earlier. In such cases, the platform must delete the policy from the affected clusters. This flag indicates that the administrator approves this deletion.","schema":{"type":"boolean"}}},"schemas":{"WorkspacePolicyOverwriteRequestV2":{"properties":{"meta":{"$ref":"#/components/schemas/PolicyCreationFields"},"policy":{"$ref":"#/components/schemas/WorkspacePolicyDefaultsAndRulesV2"}},"type":"object"},"PolicyCreationFields":{"required":["name","scope"],"properties":{"scope":{"$ref":"#/components/schemas/ScopeType"},"projectId":{"$ref":"#/components/schemas/ProjectIdOptional"},"departmentId":{"$ref":"#/components/schemas/DepartmentIdOptional"},"clusterId":{"$ref":"#/components/schemas/ClusterIdOptional"},"name":{"$ref":"#/components/schemas/PolicyName"}}},"ScopeType":{"type":"string","enum":["system","tenant","cluster","department","project"]},"ProjectIdOptional":{"description":"The id of the project.","type":"integer","format":"int32","nullable":true},"DepartmentIdOptional":{"description":"The id of the department.","type":"string","minLength":1,"nullable":true,"pattern":".*"},"ClusterIdOptional":{"description":"The id of the cluster.","type":"string","format":"uuid","minLength":1,"nullable":true},"PolicyName":{"description":"A chosen name for the policy.","type":"string","minLength":1,"pattern":".*"},"WorkspacePolicyDefaultsAndRulesV2":{"properties":{"defaults":{"allOf":[{"$ref":"#/components/schemas/WorkspacePolicyDefaultsV2"}],"nullable":true,"type":"object"},"rules":{"allOf":[{"$ref":"#/components/schemas/WorkspacePolicyRulesV2"}],"nullable":true,"type":"object"},"imposedAssets":{"$ref":"#/components/schemas/ImposedAssets"},"status":{"$ref":"#/components/schemas/PolicyValidationStatus"}},"nullable":true,"type":"object"},"WorkspacePolicyDefaultsV2":{"allOf":[{"nullable":true,"properties":{"annotations":{"$ref":"#/components/schemas/AnnotationsDefaults"},"args":{"$ref":"#/components/schemas/Args"},"autoDeletionTimeAfterCompletionSeconds":{"$ref":"#/components/schemas/AutoDeletionTimeAfterPreemption"},"backoffLimit":{"$ref":"#/components/schemas/BackoffLimit"},"category":{"$ref":"#/components/schemas/Category"},"command":{"$ref":"#/components/schemas/Command"},"compute":{"$ref":"#/components/schemas/SupersetDefaultsAllOfCompute"},"createHomeDir":{"$ref":"#/components/schemas/CreateHomeDir"},"environmentVariables":{"$ref":"#/components/schemas/EnvironmentVariablesDefaults"},"exposedUrls":{"$ref":"#/components/schemas/ExposedUrlsDefaults"},"image":{"$ref":"#/components/schemas/Image"},"imagePullPolicy":{"$ref":"#/components/schemas/ImagePullPolicy"},"imagePullSecrets":{"$ref":"#/components/schemas/ImagePullSecretsDefaults"},"labels":{"$ref":"#/components/schemas/LabelsDefaults"},"nodeAffinityRequired":{"$ref":"#/components/schemas/NodeAffinityRequired"},"nodePools":{"$ref":"#/components/schemas/NodePools"},"nodeType":{"$ref":"#/components/schemas/NodeType2"},"podAffinity":{"$ref":"#/components/schemas/PodAffinity"},"ports":{"$ref":"#/components/schemas/PortsDefaults"},"preemptibility":{"$ref":"#/components/schemas/Preemptibility"},"priorityClass":{"$ref":"#/components/schemas/PriorityClass"},"probes":{"$ref":"#/components/schemas/Probes"},"relatedUrls":{"$ref":"#/components/schemas/RelatedUrlsDefaults"},"restartPolicy":{"$ref":"#/components/schemas/RestartPolicy"},"security":{"$ref":"#/components/schemas/SupersetDefaultsAllOfSecurity"},"stdin":{"$ref":"#/components/schemas/Stdin"},"storage":{"nullable":true,"properties":{"configMapVolume":{"$ref":"#/components/schemas/ConfigMapsDefaults"},"dataVolume":{"$ref":"#/components/schemas/DataVolumesDefaults"},"emptyDirVolume":{"$ref":"#/components/schemas/EmptyDirsDefaults"},"git":{"$ref":"#/components/schemas/GitsDefaults"},"hostPath":{"$ref":"#/components/schemas/HostPathsDefaults"},"nfs":{"$ref":"#/components/schemas/NfssDefaults"},"pvc":{"$ref":"#/components/schemas/PvcsDefaults"},"s3":{"$ref":"#/components/schemas/S3sDefaults"},"secretVolume":{"$ref":"#/components/schemas/SecretsDefaults"}},"type":"object"},"terminateAfterPreemption":{"$ref":"#/components/schemas/TerminateAfterPreemption"},"terminationGracePeriodSeconds":{"$ref":"#/components/schemas/TerminationGracePeriod"},"tolerations":{"$ref":"#/components/schemas/TolerationsDefaults"},"tty":{"$ref":"#/components/schemas/Tty"},"workingDir":{"$ref":"#/components/schemas/WorkingDir"}},"type":"object"}]},"AnnotationsDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/Annotations"}},"nullable":true,"type":"object"},"Annotations":{"description":"Set of annotations to populate into the container running the workload.","type":"array","items":{"$ref":"#/components/schemas/Annotation"},"maxItems":1000,"nullable":true},"Annotation":{"description":"Annotation details to be populated into the container.","properties":{"name":{"description":"The name of the annotation (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":".*"},"value":{"description":"The value of the annotation.","type":"string","maxLength":10000,"nullable":true,"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","default":false,"nullable":true}},"nullable":true,"type":"object"},"Args":{"description":"Arguments to the command that the container running the workload executes.","type":"string","minLength":1,"maxLength":10000,"nullable":true,"pattern":".*"},"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","nullable":true},"BackoffLimit":{"description":"Specifies the number of retries before marking a workload as failed (not applicable to Inference workloads). The default value is 6.","format":"int64","type":"integer","nullable":true},"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":".*"},"Command":{"description":"A command to the server as the entry point of the container running the workload.","type":"string","minLength":1,"maxLength":10000,"nullable":true,"pattern":".*"},"SupersetDefaultsAllOfCompute":{"title":"SupersetDefaultsAllOfCompute","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/ExtendedResourcesDefaults"},"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"},"CpuCoreLimit":{"description":"Limitations on the number of CPUs consumed by the workload (0.5, 1, .etc). The system guarantees that this workload will not be able to consume more than this amount of CPUs.","format":"double","type":"number","nullable":true,"minimum":0},"CpuCoreRequest":{"description":"CPU units to allocate for the created workload (0.5, 1, .etc). The workload will receive at least this amount of CPU. Note that the workload will not be scheduled unless the system can guarantee this amount of CPUs to the workload.","format":"double","type":"number","nullable":true,"minimum":0},"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]*)$","maxLength":63,"nullable":true},"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","pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$","maxLength":63,"nullable":true},"ExtendedResourcesDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/ExtendedResource"},"instances":{"$ref":"#/components/schemas/ExtendedResources"}},"nullable":true,"type":"object"},"ExtendedResource":{"description":"Quantity of an extended resource.","properties":{"resource":{"description":"The name of the extended resource (mandatory)","type":"string","minLength":1,"maxLength":253,"nullable":true,"pattern":".*"},"quantity":{"description":"The requested quantity for the resource.","type":"string","minLength":1,"maxLength":63,"nullable":true,"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","nullable":true}},"nullable":true,"type":"object"},"ExtendedResources":{"description":"Extended resources and their quantity.","type":"array","items":{"$ref":"#/components/schemas/ExtendedResource"},"maxItems":1000,"nullable":true},"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","format":"int32","nullable":true,"minimum":0},"GpuMemoryLimit":{"description":"Limitation on the memory consumed by the workload, per GPU device. The system guarantees The gpuMemoryLimit must be no less than gpuMemoryRequest.","type":"string","pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$","maxLength":63,"nullable":true},"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]*)$","maxLength":63,"nullable":true},"GpuPortionLimit":{"description":"Limitations on the portion consumed by the workload, per GPU device. The system guarantees The gpuPotionLimit must be no less than the gpuPortionRequest.","type":"number","format":"double","nullable":true,"minimum":0},"GpuPortionRequest":{"description":"Required if and only if gpuRequestType is portion. States the portion of the GPU to allocate for the created workload, per GPU device, between 0 and 1. The default is no allocated GPUs.","type":"number","format":"double","nullable":true,"minimum":0},"GpuRequestType":{"description":"Sets the unit type for GPU resources requests. Stated in terms of portion or memory. Sets the unit type for other GPU request fields. If `gpuDevicesRequest > 1`, only `portion` is supported. If `gpuDeviceRequest = 1`, the request type can be stated as `portion` or `memory`.","type":"string","minLength":1,"enum":["portion","memory"],"nullable":true},"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","nullable":true},"CreateHomeDir":{"description":"When set to `true`, creates a home directory for the container.","type":"boolean","nullable":true},"EnvironmentVariablesDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/EnvironmentVariables"}},"nullable":true,"type":"object"},"EnvironmentVariables":{"description":"Set of environment variables to populate into the container running the workload.","type":"array","items":{"$ref":"#/components/schemas/EnvironmentVariable"},"maxItems":1000,"nullable":true},"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,"maxLength":63,"nullable":true,"pattern":".*"},"value":{"description":"The value of the environment variable. (mutually exclusive with secret, userCredential, configMap and podFieldRef)","type":"string","maxLength":10000,"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","nullable":true},"description":{"description":"Description of the environment variable.","type":"string","maxLength":250,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"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,"maxLength":253,"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,"maxLength":63,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"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","minLength":1,"maxLength":253,"nullable":true,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$"},"key":{"description":"The key in the config-map resource. (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"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","minLength":1,"maxLength":10000,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"EnvironmentVariableUserCredential":{"description":"Defines a reference to a user-created credential and a specific key within that credential whose value will populate the environment variable. User credentials can only be accessed by the user who created them.","properties":{"name":{"description":"The name of the user credential.  (mandatory)","type":"string","minLength":1,"maxLength":253,"nullable":true},"key":{"description":"The key in the user credential resource. (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true}},"nullable":true,"type":"object"},"ExposedUrlsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/ExposedUrl"},"instances":{"$ref":"#/components/schemas/ExposedUrls"}},"nullable":true,"type":"object"},"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","nullable":true},"url":{"$ref":"#/components/schemas/Url"},"authorizationType":{"$ref":"#/components/schemas/AuthorizationType"},"authorizedUsers":{"$ref":"#/components/schemas/AuthorizedUsers"},"authorizedGroups":{"$ref":"#/components/schemas/AuthorizedGroups"},"toolType":{"description":"The tool type that runs on this container port.","type":"string","nullable":true,"pattern":".*"},"toolName":{"description":"A name describing the tool that runs on this url.","type":"string","nullable":true,"pattern":".*","maxLength":253},"name":{"description":"Unique name to identify the instance. primarily used for policy locked rules.","type":"string","minLength":1,"maxLength":253,"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","nullable":true}},"nullable":true,"type":"object"},"Url":{"description":"The URL for connecting to the container port. If not specified, the URL will be auto-generated by the system.","type":"string","maxLength":2048,"pattern":".*","nullable":true},"AuthorizationType":{"type":"string","enum":["authenticatedUsers","authorizedUsers","authorizedGroups"],"description":"Specifies who can access the connection URL:\n- `authenticatedUsers`: Any authenticated user or service account can access the URL; the authorizedUsers and authorizedGroups fields are ignored.\n- `authorizedUsers`: Only users listed in the authorizedUsers field are allowed to access the URL; the authorizedGroups field is ignored.\n- `authorizedGroups`: Only members of user groups listed in the authorizedGroups field are allowed to access the URL; the authorizedUsers field is ignored.\nIf 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.\n","nullable":true},"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","maxLength":253,"pattern":".*"},"maxItems":1000,"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","maxLength":253,"pattern":".*"},"maxItems":1000,"nullable":true},"ExposedUrls":{"description":"Set of container ports that the workload exposes via URLs.","type":"array","items":{"$ref":"#/components/schemas/ExposedUrl"},"maxItems":1000,"nullable":true},"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","minLength":1,"maxLength":253,"nullable":true,"pattern":".*"},"ImagePullPolicy":{"description":"Image pull policy. Defaults to `Always` if `:latest` tag is specified, otherwise it is `IfNotPresent`.","type":"string","minLength":1,"enum":["Always","Never","IfNotPresent"],"nullable":true},"ImagePullSecretsDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/ImagePullSecrets"}},"nullable":true,"type":"object"},"ImagePullSecrets":{"description":"A list of references to Kubernetes secrets in the same namespace used for pulling container images.","type":"array","items":{"$ref":"#/components/schemas/ImagePullSecret"},"maxItems":1000,"nullable":true},"ImagePullSecret":{"description":"A reference to a secret in the same namespace used to pull container images.","properties":{"name":{"type":"string","description":"The name of the Kubernetes secret containing the image pull credentials.","pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$","maxLength":253},"userCredential":{"type":"boolean","description":"Indicates whether the secret is a user credential. Set to true if the secret was created by the user and is only accessible by them.","nullable":true},"exclude":{"description":"Use 'true' in case the secret is defined in defaults of the policy, and you wish to exclude it from the workload.","type":"boolean","default":false,"nullable":true}},"nullable":true,"type":"object"},"LabelsDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/Labels"}},"nullable":true,"type":"object"},"Labels":{"description":"Set of labels to populate into the container running the workload.","type":"array","items":{"$ref":"#/components/schemas/Label"},"maxItems":1000,"nullable":true},"Label":{"description":"Label details to be populated into the container.","properties":{"name":{"description":"The name of the label (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":".*"},"value":{"description":"The value of the label.","type":"string","nullable":true,"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","nullable":true}},"nullable":true,"type":"object"},"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"},"maxItems":1000}},"nullable":true},"NodeSelectorTerm":{"type":"object","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"},"maxItems":1000}},"nullable":true},"MatchExpression":{"type":"object","description":"A selector that contains values, a key, and an operator that relates the key and values.","properties":{"key":{"description":"The label key that the selector applies to (mandatory).","type":"string","pattern":".*","maxLength":63},"operator":{"$ref":"#/components/schemas/MatchExpressionOperator"},"values":{"description":"An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer.","type":"array","items":{"type":"string","maxLength":10000,"pattern":".*"},"maxItems":1000}},"required":["key","operator"],"nullable":true},"MatchExpressionOperator":{"description":"Represents a key's relationship to a set of values (mandatory).","type":"string","enum":["In","NotIn","Exists","DoesNotExist","Gt","Lt"]},"NodePools":{"description":"A prioritized list of node pools for the scheduler to run the workload on. The scheduler will always try to use the first node pool before moving to the next one if the first is not available.","type":"array","items":{"type":"string","maxLength":63,"pattern":".*"},"maxItems":1000,"nullable":true},"NodeType2":{"deprecated":true,"description":"Deprecated: use a workload policy node selector to target node types instead. 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","minLength":1,"nullable":true,"pattern":".*"},"PodAffinity":{"description":"Pod affinity scheduling rules (e.g. co-locate this workload in the same node, zone, etc. as some other workloads).","type":"object","properties":{"type":{"$ref":"#/components/schemas/PodAffinityType"},"key":{"description":"The label key to use. (mandatory)","type":"string","nullable":true,"pattern":".*","maxLength":63}},"nullable":true},"PodAffinityType":{"description":"The affinity type, required or preferred. (mandatory)","type":"string","enum":["Required","Preferred"],"nullable":true},"PortsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/Port"},"instances":{"$ref":"#/components/schemas/Ports"}},"nullable":true,"type":"object"},"Port":{"description":"A port for accessing the workload.","properties":{"container":{"description":"The port that the container running the workload exposes. (mandatory)","type":"integer","format":"int32","minimum":1,"maximum":65535,"nullable":true},"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","format":"int32","nullable":true},"toolType":{"description":"The tool type that runs on this port.","type":"string","nullable":true,"pattern":".*","maxLength":63},"toolName":{"description":"A name describing the tool that runs on this port.","type":"string","nullable":true,"pattern":".*","maxLength":253},"name":{"description":"Unique name to identify the instance. primarily used for policy locked rules.","type":"string","minLength":1,"maxLength":63,"nullable":true,"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","default":false,"nullable":true}},"nullable":true,"type":"object"},"PortServiceType":{"description":"The service type of the port (mandatory).","type":"string","enum":["LoadBalancer","NodePort","ClusterIP"],"nullable":true},"Ports":{"description":"Set of container ports that the workload exposes.","type":"array","items":{"$ref":"#/components/schemas/Port"},"maxItems":1000,"nullable":true},"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","minLength":1,"enum":["preemptible","non-preemptible"],"nullable":true},"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","nullable":true,"pattern":".*"},"Probes":{"description":"Probes are used to determine if the container is healthy and ready to accept traffic.","type":"object","properties":{"readiness":{"$ref":"#/components/schemas/Probe"}},"nullable":true},"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},"ProbeHandler":{"description":"The action taken to determine the health of the container. (mandatory)","type":"object","properties":{"httpGet":{"description":"An action based on HTTP Get requests.","type":"object","properties":{"path":{"description":"Path to access on the HTTP server, defaults to /.","type":"string","pattern":"^(\\x2F[a-zA-Z0-9\\-_.\\x2F]*)?$","nullable":true,"maxLength":2048},"port":{"description":"Number of the port to access on the container.","type":"integer","format":"int32","minimum":1,"maximum":65535,"nullable":true},"host":{"description":"Host name to connect to, defaults to the pod IP.","type":"string","format":"hostname","nullable":true,"pattern":".*","maxLength":253},"scheme":{"$ref":"#/components/schemas/ProbeHandlerScheme"}}}},"nullable":true},"ProbeHandlerScheme":{"description":"Scheme to use for connecting to the host, defaults to HTTP.","type":"string","enum":["HTTP","HTTPS"],"nullable":true},"RelatedUrlsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/RelatedUrl"},"instances":{"$ref":"#/components/schemas/RelatedUrls"}},"nullable":true,"type":"object"},"RelatedUrl":{"description":"A URL that is related to the workload. For example, a URL to an external server providing statistics or logging about the workload.","properties":{"url":{"description":"The URL for connecting an external service related to the workload. (mandatory)","type":"string","nullable":true,"pattern":".*","maxLength":2048},"type":{"description":"The type of service that the url provides. For example, wandb (Weights & Biases). (mandatory)","type":"string","nullable":true,"pattern":".*","maxLength":63},"name":{"description":"Unique name to identify the instance. primarily used for policy locked rules.","type":"string","nullable":true,"pattern":".*","maxLength":63},"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,"nullable":true}},"nullable":true,"type":"object"},"RelatedUrls":{"description":"Set of URLs that are related to the workload.","type":"array","items":{"$ref":"#/components/schemas/RelatedUrl"},"maxItems":1000,"nullable":true},"RestartPolicy":{"description":"Specify the restart policy of the workload pods. Default is empty, which is determine by the framework default.\nThe `Always` value is deprecated; use `OnFailure` or `Never` instead.\n","type":"string","minLength":1,"enum":["Always","Never","OnFailure"],"nullable":true},"SupersetDefaultsAllOfSecurity":{"title":"SupersetDefaultsAllOfSecurity","nullable":true,"properties":{"allowPrivilegeEscalation":{"$ref":"#/components/schemas/AllowPrivilegeEscalation"},"capabilities":{"$ref":"#/components/schemas/Capabilities"},"hostIpc":{"$ref":"#/components/schemas/HostIpc"},"hostNetwork":{"$ref":"#/components/schemas/HostNetwork"},"readOnlyRootFilesystem":{"$ref":"#/components/schemas/ReadOnlyRootFileSystem"},"runAsGid":{"$ref":"#/components/schemas/RunAsGid"},"runAsNonRoot":{"$ref":"#/components/schemas/RunAsNonRoot"},"runAsUid":{"$ref":"#/components/schemas/RunAsUid"},"seccompProfileType":{"$ref":"#/components/schemas/SeccompProfileType"},"supplementalGroups":{"$ref":"#/components/schemas/SupplementalGroups"},"uidGidSource":{"$ref":"#/components/schemas/UidGidSource"}},"type":"object"},"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://run-ai-docs.nvidia.com/self-hosted/2.26/infrastructure-setup/advanced-setup/container-access/user-identity-in-containers","type":"boolean","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"},"nullable":true},"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"]},"HostIpc":{"description":"Whether to enable host IPC. Defaults to false.","type":"boolean","nullable":true},"HostNetwork":{"description":"Whether to enable host networking. Default to false.","type":"boolean","nullable":true},"ReadOnlyRootFileSystem":{"description":"If true, mounts the container's root filesystem as read-only.","type":"boolean","nullable":true},"RunAsGid":{"description":"The group id to run the entrypoint of the container which executes the workspace. Default to the value specified in the environment asset `runAsGid` field (optional). Use only when the source uid/gid of the environment asset is not `fromTheImage`, and `overrideUidGidInWorkspace` is enabled.","type":"integer","format":"int64","nullable":true},"RunAsNonRoot":{"description":"Force the container to run as a non-root user.","type":"boolean","nullable":true},"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","format":"int64","nullable":true},"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","enum":["RuntimeDefault","Unconfined","Localhost"],"nullable":true},"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","nullable":true,"pattern":".*"},"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://run-ai-docs.nvidia.com/self-hosted/2.26/infrastructure-setup/advanced-setup/container-access/user-identity-in-containers).","type":"string","enum":["fromTheImage","fromIdpToken","custom"],"nullable":true},"Stdin":{"description":"Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF","type":"boolean","nullable":true},"ConfigMapsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/ConfigMapInstance"},"instances":{"$ref":"#/components/schemas/ConfigMapItems"}},"nullable":true,"type":"object"},"ConfigMapInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/ConfigMap"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"StorageInstanceName":{"properties":{"name":{"description":"unique name to identify the instance. primarily used for policy locked rules.","type":"string","minLength":1,"maxLength":63,"nullable":true}},"nullable":true,"type":"object"},"ConfigMap":{"properties":{"configMap":{"description":"The name of the ConfigMap resource. (mandatory)","type":"string","minLength":1,"maxLength":253,"nullable":true,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$"},"mountPath":{"description":"Local path within the workload to which the ConfigMap will be mapped to. (mandatory)","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"subPath":{"description":"Path within the volume from which the container's volume should be mounted.","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"defaultMode":{"$ref":"#/components/schemas/DefaultMode"}},"nullable":true,"type":"object"},"DefaultMode":{"type":"string","description":"File permission mode in octal string format. This value must be a 4-digit octal number, representing the default file mode when mounting a Secret or ConfigMap as a volume.\n","minLength":4,"maxLength":4,"pattern":"0[0-7]{3}","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,"nullable":true}},"type":"object","nullable":true},"ConfigMapItems":{"description":"Set of config map volumes to use in the workload","type":"array","items":{"$ref":"#/components/schemas/ConfigMapInstance"},"maxItems":1000,"nullable":true},"DataVolumesDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/DataVolumeInstance"},"instances":{"$ref":"#/components/schemas/DataVolumeItems"}},"nullable":true,"type":"object"},"DataVolumeInstance":{"allOf":[{"$ref":"#/components/schemas/DataVolume"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"DataVolume":{"properties":{"id":{"description":"The unique identifier of the data volume. (mandatory)","type":"string","format":"uuid","nullable":true},"mountPath":{"description":"The path where the data volume will be mounted. (mandatory)","type":"string","nullable":true,"pattern":".*","maxLength":4096}},"nullable":true,"type":"object"},"DataVolumeItems":{"description":"Set of data volumes to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/DataVolumeInstance"},"maxItems":1000,"nullable":true},"EmptyDirsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/EmptyDirInstance"},"instances":{"$ref":"#/components/schemas/EmptyDirItems"}},"nullable":true,"type":"object"},"EmptyDirInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/EmptyDir"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"EmptyDir":{"properties":{"path":{"description":"Local path within the workload to which the EmptyDir volume will be mapped. (mandatory)","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"medium":{"description":"The type of storage medium for the volume. Use \"Memory\" for memory-backed storage, or leave empty for disk-backed storage.","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":".*"},"sizeLimit":{"description":"The total amount of local storage or memory required for the emptyDir volume. Specify using Kubernetes quantity format (e.g., 1G, 500Mi).","type":"string","maxLength":63,"pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$","nullable":true}},"nullable":true,"type":"object"},"EmptyDirItems":{"description":"A list of emptyDir volumes to mount in the workload.","type":"array","items":{"$ref":"#/components/schemas/EmptyDirInstance"},"maxItems":1000,"nullable":true},"GitsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/GitInstance"},"instances":{"$ref":"#/components/schemas/GitItems"}},"nullable":true,"type":"object"},"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"},"GitCommon":{"properties":{"repository":{"description":"URL to a remote Git repository. The content of this repository will be mapped to the container running the workload. (mandatory)","type":"string","minLength":1,"maxLength":2048,"nullable":true},"branch":{"description":"Specific branch to synchronize the repository from.","type":"string","minLength":1,"maxLength":63,"nullable":true},"revision":{"description":"Specific revision to synchronize the repository from.","type":"string","minLength":1,"maxLength":63,"nullable":true},"path":{"description":"Local path within the workload to which the Git repository will be mapped (mandatory).","type":"string","minLength":1,"maxLength":4096,"nullable":true}},"nullable":true,"type":"object"},"GitPassword":{"properties":{"passwordSecret":{"description":"Secret containing the credentials of the repository (needed for non public repository which requires authentication). (deprecated)","type":"string","minLength":1,"nullable":true},"secretKeyOfUser":{"description":"The key to use for loading the user name from the secret. The default is `User`. (deprecated)","type":"string","minLength":1,"nullable":true},"secretKeyOfPassword":{"description":"The key to use for loading the password from the secret. The default is `Password`. (deprecated)","type":"string","minLength":1,"nullable":true}},"nullable":true,"type":"object"},"GitSecretRef":{"properties":{"name":{"description":"Name of the Secret containing the credentials of the repository.","type":"string","minLength":1},"authenticationMethod":{"$ref":"#/components/schemas/GitAuthenticationMethod"},"secretKeyOfUser":{"description":"The key in the Secret that contains the Git username (used for `password` authentication).","type":"string","minLength":1,"nullable":true},"secretKeyOfPassword":{"description":"The key in the Secret that contains the Git password (used for `password` authentication).","type":"string","minLength":1,"nullable":true}},"nullable":true,"type":"object"},"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,"enum":["password","ssh-key"]},"GitItems":{"description":"Set of git repositories to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/GitInstance"},"maxItems":1000,"nullable":true},"HostPathsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/HostPathInstance"},"instances":{"$ref":"#/components/schemas/HostPathItems"}},"nullable":true,"type":"object"},"HostPathInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/HostPath"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"HostPath":{"properties":{"path":{"description":"Local path within the controller to which the host volume will be mapped. (mandatory)","type":"string","minLength":1,"maxLength":4096,"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,"maxLength":4096,"nullable":true,"pattern":".*"},"mountPropagation":{"$ref":"#/components/schemas/HostPathMountPropagation"}},"nullable":true,"type":"object"},"HostPathMountPropagation":{"description":"Share this volumes mount with other containers. If set to HostToContainer, this volume mount will receive all subsequent mounts that are mounted to this volume or any of its subdirectories. In case of multiple hostPath entries, this field should have the same value for all of them.","type":"string","enum":["None","HostToContainer"],"nullable":true},"HostPathItems":{"description":"Set of host paths to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/HostPathInstance"},"maxItems":1000,"nullable":true},"NfssDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/NfsInstance"},"instances":{"$ref":"#/components/schemas/NfsItems"}},"nullable":true,"type":"object"},"NfsInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/Nfs"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"Nfs":{"properties":{"path":{"description":"Path that is exported by the NFS server (mandatory). For more information, see [NFS](https://kubernetes.io/docs/concepts/storage/volumes#nfs).","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"readOnly":{"description":"Force the NFS export to be mounted with read-only permissions.","type":"boolean","default":true,"nullable":true},"server":{"description":"The hostname or IP address of the NFS server. (mandatory)","type":"string","minLength":1,"maxLength":253,"nullable":true,"pattern":".*"},"mountPath":{"description":"The path that the NFS volume will be mounted to when in use. (mandatory)","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"NfsItems":{"description":"Set of nfs volumes to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/NfsInstance"},"maxItems":1000,"nullable":true},"PvcsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/PvcInstance"},"instances":{"$ref":"#/components/schemas/PvcItems"}},"nullable":true,"type":"object"},"PvcInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/Pvc"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"Pvc":{"allOf":[{"$ref":"#/components/schemas/PvcFieldsUpdatable"},{"$ref":"#/components/schemas/PvcFieldsNonUpdatable"}]},"PvcFieldsUpdatable":{"properties":{"path":{"description":"Local path within the workload to which the PVC bucket will be mapped. (mandatory)","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"PvcFieldsNonUpdatable":{"properties":{"existingPvc":{"description":"Verify existing PVC. PVC is assumed to exist when set to `true`. If set to `false`, the PVC will be created, if it does not exist.","type":"boolean","default":false,"nullable":true},"claimName":{"description":"Name for the PVC. Allow referencing it across workloads. If not provided, a name based on the workload name and scope will be auto-generated.","type":"string","minLength":1,"maxLength":63,"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,"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,"nullable":true}},"nullable":true,"type":"object"},"ClaimInfo":{"description":"Claim information for the newly created PVC. The information should not be provided when attempting to use existing PVC.","properties":{"size":{"$ref":"#/components/schemas/PvcClaimSize"},"storageClass":{"description":"Storage class name to associate with the PVC. This parameter may be omitted if there is a single storage class in the system, or you are using the default storage class. For more information, see [Storage class](https://kubernetes.io/docs/concepts/storage/storage-classes).","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$"},"accessModes":{"$ref":"#/components/schemas/PvcAccessModes"},"volumeMode":{"$ref":"#/components/schemas/PvcVolumeMode"},"addedAttrValues":{"$ref":"#/components/schemas/PvcAddedAttrValues"}},"nullable":true,"type":"object"},"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]*)$","maxLength":63,"nullable":true},"PvcAccessModes":{"description":"Default access mode(s) applied to newly created PVCs unless explicitly overridden.","properties":{"readWriteOnce":{"description":"Mount the volume as read/write by a single node.","type":"boolean","default":true,"nullable":true},"readOnlyMany":{"description":"Mount the volume as read-only by many nodes.","type":"boolean","default":false,"nullable":true},"readWriteMany":{"description":"Mount the volume as read/write by many nodes.","type":"boolean","default":false,"nullable":true}},"nullable":true,"type":"object"},"PvcVolumeMode":{"description":"Default volume mode for the PVC. Choose between Filesystem (default) or Block.","type":"string","enum":["Filesystem","Block"],"nullable":true},"PvcAddedAttrValues":{"description":"an optional array of key-values pairs that are written as annotations on the created PVC. the allowed attributes are determined according to the storage class configuration (see k8s-objects-tracker for further info).","type":"array","items":{"$ref":"#/components/schemas/PvcAddedAttrValue"},"maxItems":1000},"PvcAddedAttrValue":{"type":"object","required":["key"],"properties":{"key":{"type":"string","minLength":1,"maxLength":63,"pattern":"^([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]$"},"value":{"type":"string","pattern":".*","maxLength":10000}}},"PvcItems":{"description":"Set of pvc persistent volume claims to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/PvcInstance"},"maxItems":1000,"nullable":true},"S3sDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/S3Instance"},"instances":{"$ref":"#/components/schemas/S3Items"}},"nullable":true,"type":"object"},"S3Instance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/S3Common"},{"$ref":"#/components/schemas/S3AccessKey"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"S3Common":{"properties":{"bucket":{"description":"The name of the bucket. (mandatory)","type":"string","minLength":1,"nullable":true},"path":{"description":"Local path within the workload to which the S3 bucket will be mapped. (mandatory)","type":"string","minLength":1,"nullable":true},"url":{"description":"The url of the S3 service provider. The default is the URL of the Amazon AWS S3 service.","type":"string","minLength":1,"nullable":true}},"nullable":true,"type":"object"},"S3AccessKey":{"properties":{"accessKeySecret":{"description":"Name of the secret containing credentials of the S3 bucket. Used for private S3 buckets.","type":"string","minLength":1,"nullable":true,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$"},"secretKeyOfAccessKeyId":{"description":"The key to use for loading the access key id from the secret. The default is `AccessKeyId`. For more information, see [Credentials access keys](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html).","type":"string","minLength":1,"nullable":true,"pattern":".*"},"secretKeyOfSecretKey":{"description":"The key to use for loading the secret key from the secret. The default is `SecretKey`. For more information, see [Credentials access keys](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html).","type":"string","minLength":1,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"S3Items":{"description":"Set of s3 buckets to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/S3Instance"},"nullable":true},"SecretsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/SecretInstance"},"instances":{"$ref":"#/components/schemas/SecretItems"}},"nullable":true,"type":"object"},"SecretInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/Secret"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"Secret":{"allOf":[{"$ref":"#/components/schemas/SecretFieldsUpdatable"},{"$ref":"#/components/schemas/SecretFieldsNonUpdatable"}]},"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"},"SecretFieldsNonUpdatable":{"properties":{"secret":{"description":"The name of the Secret resource. (mandatory)","type":"string","minLength":1,"nullable":true}},"nullable":true,"type":"object"},"SecretItems":{"description":"Set of secret volumes to use in the workload","type":"array","items":{"$ref":"#/components/schemas/SecretInstance"},"nullable":true},"TerminateAfterPreemption":{"description":"Indicates if the job should be terminated by the system after it has been preempted.","type":"boolean","nullable":true},"TerminationGracePeriod":{"description":"Duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down).","format":"int64","type":"integer","minimum":0,"nullable":true},"TolerationsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/Toleration"},"instances":{"$ref":"#/components/schemas/Tolerations"}},"nullable":true,"type":"object"},"Toleration":{"description":"Toleration details.","properties":{"name":{"description":"The name of the toleration.","type":"string","minLength":1,"maxLength":253,"nullable":true,"pattern":".*"},"operator":{"$ref":"#/components/schemas/TolerationOperator"},"key":{"description":"The taint key that the toleration applies to. (mandatory)","type":"string","maxLength":253,"nullable":true,"pattern":".*"},"value":{"description":"The taint value the toleration matches to. Mandatory if operator is Exists, forbidden otherwise.","type":"string","maxLength":10000,"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","nullable":true}},"nullable":true,"type":"object"},"TolerationOperator":{"description":"A key's relationship to the value. Equal uses key and value. Exists is equivalent to wildcard for value, so that a workload can tolerate all taints of a particular category. (mandatory)","type":"string","enum":["Equal","Exists"],"nullable":true},"TolerationEffect":{"description":"The taint effect to match. (mandatory)","type":"string","enum":["NoSchedule","NoExecute","PreferNoSchedule","Any"],"nullable":true},"Tolerations":{"description":"Set of tolerations to apply to the workload.","type":"array","items":{"$ref":"#/components/schemas/Toleration"},"maxItems":1000,"nullable":true},"Tty":{"description":"Whether this container should allocate a TTY for itself, also requires 'stdin' to be true.","type":"boolean","nullable":true},"WorkingDir":{"description":"Container's working directory. If not specified, the container runtime default will be used. This may be configured in the container image.","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"WorkspacePolicyRulesV2":{"allOf":[{"nullable":true,"properties":{"annotations":{"$ref":"#/components/schemas/InstancesRules"},"args":{"$ref":"#/components/schemas/StringRules"},"autoDeletionTimeAfterCompletionSeconds":{"$ref":"#/components/schemas/IntegerRules"},"backoffLimit":{"$ref":"#/components/schemas/IntegerRules"},"category":{"$ref":"#/components/schemas/StringRules"},"command":{"$ref":"#/components/schemas/StringRules"},"compute":{"$ref":"#/components/schemas/SupersetRulesAllOfCompute"},"createHomeDir":{"$ref":"#/components/schemas/BooleanRules"},"environmentVariables":{"$ref":"#/components/schemas/InstancesRules"},"exposedUrls":{"$ref":"#/components/schemas/ExposedUrlsRules"},"image":{"$ref":"#/components/schemas/StringRules"},"imagePullPolicy":{"$ref":"#/components/schemas/ImagePullPolicyRules"},"imagePullSecrets":{"$ref":"#/components/schemas/ImagePullSecretsRules"},"labels":{"$ref":"#/components/schemas/InstancesRules"},"nodeAffinityRequired":{"$ref":"#/components/schemas/ArbitraryRules"},"nodePools":{"$ref":"#/components/schemas/ArrayRules"},"nodeType":{"$ref":"#/components/schemas/StringRules"},"podAffinity":{"$ref":"#/components/schemas/PodAffinityRules"},"ports":{"$ref":"#/components/schemas/PortsRules"},"preemptibility":{"$ref":"#/components/schemas/PreemptibilityRules"},"priorityClass":{"$ref":"#/components/schemas/StringRules"},"probes":{"$ref":"#/components/schemas/ProbesRules"},"relatedUrls":{"$ref":"#/components/schemas/RelatedUrlsRules"},"restartPolicy":{"$ref":"#/components/schemas/RestartPolicyRule"},"security":{"$ref":"#/components/schemas/SupersetRulesAllOfSecurity"},"stdin":{"$ref":"#/components/schemas/BooleanRules"},"storage":{"nullable":true,"properties":{"configMapVolume":{"$ref":"#/components/schemas/ConfigMapsRules"},"dataVolume":{"$ref":"#/components/schemas/DataVolumesRules"},"emptyDirVolume":{"$ref":"#/components/schemas/EmptyDirsRules"},"git":{"$ref":"#/components/schemas/GitsRules"},"hostPath":{"$ref":"#/components/schemas/HostPathsRules"},"nfs":{"$ref":"#/components/schemas/NfssRules"},"pvc":{"$ref":"#/components/schemas/PvcsRules"},"s3":{"$ref":"#/components/schemas/S3sRules"},"secretVolume":{"$ref":"#/components/schemas/SecretsRules"}},"type":"object"},"terminateAfterPreemption":{"$ref":"#/components/schemas/BooleanRules"},"terminationGracePeriodSeconds":{"$ref":"#/components/schemas/IntegerRules"},"tolerations":{"$ref":"#/components/schemas/TolerationsRules"},"tty":{"$ref":"#/components/schemas/BooleanRules"},"workingDir":{"$ref":"#/components/schemas/StringRules"}},"type":"object"}]},"InstancesRules":{"properties":{"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ItemRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"canAdd":{"description":"Whether it is permitted to add items. Default to true.","type":"boolean","nullable":true},"locked":{"description":"Set of keys for items that are \"locked\", i.e. cannot be removed or deleted.","type":"array","items":{"type":"string"}}},"nullable":true,"type":"object"},"SourceOfRule":{"description":"This field is used by the system along with effective rules, in order to specify the org unit from which this effective rule has been derived. It should be left empty when sending apply policy requests.","required":["scope"],"properties":{"scope":{"$ref":"#/components/schemas/ScopeType"},"projectId":{"$ref":"#/components/schemas/ProjectIdOptional"},"departmentId":{"$ref":"#/components/schemas/DepartmentIdOptional"},"clusterId":{"$ref":"#/components/schemas/ClusterIdOptional"},"isFallback":{"description":"source of this rule is the fallback policy","type":"boolean"}},"nullable":true,"type":"object"},"StringRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/StringRulesOptions"}],"nullable":true,"type":"object"},"StringRulesCommon":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory, default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable, default to true","type":"boolean","nullable":true},"blocked":{"description":"Blocks the field to prevent workloads from specifying any value for it.","type":"boolean","nullable":true}}},"StringRulesOptions":{"properties":{"options":{"description":"Set of options that the value of the field must be chosen from.","type":"array","items":{"$ref":"#/components/schemas/StringOption"},"nullable":true}}},"StringOption":{"description":"One of the values that the field can be assigned to, when options police is applied on the field.","required":["value"],"properties":{"value":{"description":"The value that the field should hold","type":"string","pattern":".*"},"displayed":{"description":"Textual description of the value. to be used by user interface applications.","type":"string","nullable":true,"pattern":".*"}}},"IntegerRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory. default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"max":{"description":"The maximum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"step":{"description":"The minimal difference between two values the field can be assigned to. For example, min=2, max=10, step=2 implies that the values the field can hold are 2, 4, 6, 8 and 10.","type":"integer","format":"int32","nullable":true},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"DefaultFromRule":{"properties":{"field":{"description":"The default of this field is taken from another field, with optional factor. The specified field must belong to the same workload section (compute, security, etc). For itemized field, the value of the field will be taken from the same instance.","type":"string","nullable":true,"pattern":".*"},"factor":{"description":"Multiple the value of the fromField by this factor to get the value for this field For example, if factor is 2 and defaultFrom field has value of 8, the calculated default will be determined to be 16.","type":"number","format":"double","nullable":true,"default":1}},"nullable":true,"type":"object"},"SupersetRulesAllOfCompute":{"title":"SupersetRulesAllOfCompute","nullable":true,"properties":{"cpuCoreLimit":{"$ref":"#/components/schemas/NumberRules"},"cpuCoreRequest":{"$ref":"#/components/schemas/NumberRules"},"cpuMemoryLimit":{"$ref":"#/components/schemas/QuantityRules"},"cpuMemoryRequest":{"$ref":"#/components/schemas/QuantityRules"},"extendedResources":{"$ref":"#/components/schemas/ExtendedResourcesRules"},"gpuDevicesRequest":{"$ref":"#/components/schemas/IntegerRules"},"gpuMemoryLimit":{"$ref":"#/components/schemas/QuantityRules"},"gpuMemoryRequest":{"$ref":"#/components/schemas/QuantityRules"},"gpuPortionLimit":{"$ref":"#/components/schemas/NumberRules"},"gpuPortionRequest":{"$ref":"#/components/schemas/NumberRules"},"gpuRequestType":{"$ref":"#/components/schemas/GpuRequestRules"},"largeShmRequest":{"$ref":"#/components/schemas/BooleanRules"}},"type":"object"},"NumberRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory. default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"number","nullable":true},"max":{"description":"The maximum value that the field can be assigned to.","type":"number","nullable":true},"step":{"description":"The minimal difference between two values the field can be assigned to. For example, min=2, max=3, step=0.25 implies that the values the field can hold are 2, 2.25, 2.5 and 3.","type":"number","nullable":true},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"QuantityRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory, default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable, default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"string","nullable":true,"pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"},"max":{"description":"The maximum value that the field can be assigned to.","type":"string","nullable":true,"pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"ExtendedResourcesRules":{"properties":{"attributes":{"$ref":"#/components/schemas/ExtendedResourceRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ExtendedResourceRules":{"description":"Rules for the attributes of extendedResources","properties":{"quantity":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"GpuRequestRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/GpuRequestOptions"}],"nullable":true,"type":"object"},"GpuRequestOptions":{"properties":{"options":{"description":"Limit the permitted values for gpuRequest to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/GpuRequestType"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"BooleanRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory. default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true}},"nullable":true,"type":"object"},"ExposedUrlsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/ExposedUrlRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ExposedUrlRules":{"description":"Rules for the attributed of exposedUrls","properties":{"container":{"$ref":"#/components/schemas/IntegerRules"},"customUrl":{"$ref":"#/components/schemas/BooleanRules"},"url":{"$ref":"#/components/schemas/StringRules"},"authorizedUsers":{"$ref":"#/components/schemas/ArrayRules"},"authorizedGroups":{"$ref":"#/components/schemas/ArrayRules"},"toolType":{"$ref":"#/components/schemas/StringRules"},"toolName":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"ArrayRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether this array is mandatory. Mandatory array must include at least one item. default to false.","type":"boolean","nullable":true},"options":{"description":"Set of options that the value of each item of the array must be chosen from.","type":"array","items":{"$ref":"#/components/schemas/StringOption"}},"canEdit":{"description":"Whether the value of the array, as a whole, is editable. default to false.","type":"boolean","nullable":true}},"nullable":true,"type":"object"},"ImagePullPolicyRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/ImagePullPolicyOptions"}],"nullable":true,"type":"object"},"ImagePullPolicyOptions":{"properties":{"options":{"description":"Limit the permitted values for imagePullPolicy to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/ImagePullPolicy"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ImagePullSecretsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/ImagePullSecretsRulesAttributes"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ImagePullSecretsRulesAttributes":{"description":"Rules for the attributes of imagePullSecrets","properties":{"name":{"$ref":"#/components/schemas/StringRules"},"userCredentials":{"$ref":"#/components/schemas/BooleanRules"}},"nullable":true,"type":"object"},"ArbitraryRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether this arbitrary object is mandatory. default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field, as a whole, is editable. default to false.","type":"boolean","nullable":true}},"nullable":true,"type":"object"},"PodAffinityRules":{"properties":{"type":{"$ref":"#/components/schemas/PodAffinityTypeRules"},"key":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"PodAffinityTypeRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/PodAffinityTypeOptions"}],"nullable":true,"type":"object"},"PodAffinityTypeOptions":{"properties":{"options":{"type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/PodAffinityType"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"type":"object"},"PortsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/PortRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"PortRules":{"description":"Rules for port attributes","properties":{"container":{"$ref":"#/components/schemas/IntegerRules"},"serviceType":{"$ref":"#/components/schemas/PortServiceTypeRules"},"customExternalPort":{"$ref":"#/components/schemas/BooleanRules"},"external":{"$ref":"#/components/schemas/IntegerRules"},"toolType":{"$ref":"#/components/schemas/StringRules"},"toolName":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"PortServiceTypeRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/PortServiceTypeOptions"}],"nullable":true,"type":"object"},"PortServiceTypeOptions":{"properties":{"options":{"type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/PortServiceType"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"PreemptibilityRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/PreemptibilityOptions"}],"nullable":true,"type":"object"},"PreemptibilityOptions":{"properties":{"options":{"description":"Limit the permitted values for preemptibility to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/Preemptibility"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ProbesRules":{"properties":{"readiness":{"$ref":"#/components/schemas/ProbeRules"}},"nullable":true,"type":"object"},"ProbeRules":{"properties":{"initialDelaySeconds":{"$ref":"#/components/schemas/IntegerRules"},"periodSeconds":{"$ref":"#/components/schemas/IntegerRules"},"timeoutSeconds":{"$ref":"#/components/schemas/IntegerRules"},"successThreshold":{"$ref":"#/components/schemas/IntegerRules"},"failureThreshold":{"$ref":"#/components/schemas/IntegerRules"},"handler":{"$ref":"#/components/schemas/ProbeHandlerRules"}},"nullable":true,"type":"object"},"ProbeHandlerRules":{"properties":{"httpGet":{"properties":{"path":{"$ref":"#/components/schemas/StringRules"},"port":{"$ref":"#/components/schemas/IntegerRules"},"host":{"$ref":"#/components/schemas/StringRules"},"scheme":{"$ref":"#/components/schemas/StringRules"}}}},"nullable":true,"type":"object"},"RelatedUrlsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/RelatedUrlRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"RelatedUrlRules":{"description":"Rules for the attributes of relatedUrls","properties":{"url":{"$ref":"#/components/schemas/StringRules"},"type":{"$ref":"#/components/schemas/StringRules"},"name":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"RestartPolicyRule":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/RestartPolicyOptions"}],"nullable":true,"type":"object"},"RestartPolicyOptions":{"properties":{"options":{"description":"Limit the permitted values for restartPolicy to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/RestartPolicy"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"SupersetRulesAllOfSecurity":{"title":"SupersetRulesAllOfSecurity","nullable":true,"properties":{"allowPrivilegeEscalation":{"$ref":"#/components/schemas/BooleanRules"},"capabilities":{"$ref":"#/components/schemas/ArrayRules"},"hostIpc":{"$ref":"#/components/schemas/BooleanRules"},"hostNetwork":{"$ref":"#/components/schemas/BooleanRules"},"readOnlyRootFilesystem":{"$ref":"#/components/schemas/BooleanRules"},"runAsGid":{"$ref":"#/components/schemas/IntegerRulesOptional"},"runAsNonRoot":{"$ref":"#/components/schemas/BooleanRules"},"runAsUid":{"$ref":"#/components/schemas/IntegerRulesOptional"},"seccompProfileType":{"$ref":"#/components/schemas/SeccompProfileTypeRules"},"supplementalGroups":{"$ref":"#/components/schemas/StringRules"},"uidGidSource":{"$ref":"#/components/schemas/UidGidSourceRules"}},"type":"object"},"IntegerRulesOptional":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"max":{"description":"The maximum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"step":{"description":"The minimal difference between two values the field can be assigned to. For example, min=2, max=10, step=2 implies that the values the field can hold are 2, 4, 6, 8 and 10.","type":"integer","format":"int32","nullable":true},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"SeccompProfileTypeRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/SeccompProfileTypeOptions"}],"nullable":true,"type":"object"},"SeccompProfileTypeOptions":{"properties":{"options":{"description":"Limit the permitted values for secompProfileType to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/SeccompProfileType"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"UidGidSourceRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/UidGidSourceOptions"}],"nullable":true,"type":"object"},"UidGidSourceOptions":{"properties":{"options":{"description":"Limit the permitted values for uidGidSource to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/UidGidSource"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ConfigMapsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/ConfigMapRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ConfigMapRules":{"properties":{"configMap":{"$ref":"#/components/schemas/StringRules"},"mountPath":{"$ref":"#/components/schemas/StringRules"},"subPath":{"$ref":"#/components/schemas/StringRules"},"defaultMode":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"DataVolumesRules":{"properties":{"attributes":{"$ref":"#/components/schemas/DataVolumeRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"DataVolumeRules":{"properties":{"id":{"$ref":"#/components/schemas/StringRules"},"mountPath":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"EmptyDirsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/EmptyDirRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"EmptyDirRules":{"properties":{"path":{"$ref":"#/components/schemas/StringRules"},"medium":{"$ref":"#/components/schemas/StringRules"},"sizeLimit":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"GitsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/GitRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"GitRules":{"properties":{"repository":{"$ref":"#/components/schemas/StringRules"},"branch":{"$ref":"#/components/schemas/StringRules"},"revision":{"$ref":"#/components/schemas/StringRules"},"path":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"HostPathsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/HostPathRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"HostPathRules":{"properties":{"path":{"$ref":"#/components/schemas/StringRules"},"readOnly":{"$ref":"#/components/schemas/BooleanRules"},"mountPath":{"$ref":"#/components/schemas/StringRules"},"mountPropagation":{"$ref":"#/components/schemas/HostPathMountPropagationRules"}},"nullable":true,"type":"object"},"HostPathMountPropagationRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/HostPathMountPropagationOptions"}],"nullable":true,"type":"object"},"HostPathMountPropagationOptions":{"properties":{"options":{"type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/HostPathMountPropagation"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}}},"NfssRules":{"properties":{"attributes":{"$ref":"#/components/schemas/NfsRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"NfsRules":{"properties":{"path":{"$ref":"#/components/schemas/StringRules"},"readOnly":{"$ref":"#/components/schemas/BooleanRules"},"server":{"$ref":"#/components/schemas/StringRules"},"mountPath":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"PvcsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/PvcRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"PvcRules":{"properties":{"claimName":{"$ref":"#/components/schemas/StringRules"},"path":{"$ref":"#/components/schemas/StringRules"},"readOnly":{"$ref":"#/components/schemas/BooleanRules"},"claimInfo":{"$ref":"#/components/schemas/ClaimInfoRules"}},"nullable":true,"type":"object"},"ClaimInfoRules":{"properties":{"size":{"$ref":"#/components/schemas/StringRules"},"storageClass":{"$ref":"#/components/schemas/StringRules"},"accessModes":{"$ref":"#/components/schemas/PvcAccessModesRules"}},"nullable":true,"type":"object"},"PvcAccessModesRules":{"description":"Rules for access mode(s) for a newly created PVC.","properties":{"readWriteOnce":{"$ref":"#/components/schemas/BooleanRules"},"readOnlyMany":{"$ref":"#/components/schemas/BooleanRules"},"readWriteMany":{"$ref":"#/components/schemas/BooleanRules"}},"nullable":true,"type":"object"},"S3sRules":{"properties":{"attributes":{"$ref":"#/components/schemas/S3Rules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"S3Rules":{"properties":{"bucket":{"$ref":"#/components/schemas/StringRules"},"path":{"$ref":"#/components/schemas/StringRules"},"url":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"SecretsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/SecretRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"SecretRules":{"properties":{"secret":{"$ref":"#/components/schemas/StringRules"},"mountPath":{"$ref":"#/components/schemas/StringRules"},"defaultMode":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"TolerationsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/TolerationRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"TolerationRules":{"description":"Toleration details.","properties":{"operator":{"$ref":"#/components/schemas/TolerationOperatorRules"},"key":{"$ref":"#/components/schemas/StringRules"},"value":{"$ref":"#/components/schemas/StringRules"},"effect":{"$ref":"#/components/schemas/TolerationEffectRules"},"seconds":{"$ref":"#/components/schemas/IntegerRules"},"exclude":{"$ref":"#/components/schemas/BooleanRules"}},"nullable":true,"type":"object"},"TolerationOperatorRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/TolerationOperatorOptions"}],"nullable":true,"type":"object"},"TolerationOperatorOptions":{"properties":{"options":{"description":"Limit the permitted values for imagePullPolicy to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/TolerationOperator"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"TolerationEffectRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/TolerationEffectOptions"}],"nullable":true,"type":"object"},"TolerationEffectOptions":{"properties":{"options":{"description":"Limit the permitted values for imagePullPolicy to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/TolerationEffect"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ImposedAssets":{"description":"a list of datasource assets to import into the policy. these datasources will be included in any workload that will be created in the scope of the policy.","type":"array","items":{"type":"string","format":"uuid"},"nullable":true},"PolicyValidationStatus":{"properties":{"validation":{"properties":{"errorMessage":{"pattern":".*","type":"string","description":"In case validation failed, holds the error message explaining the issue"}},"nullable":true,"type":"object"}},"nullable":true,"type":"object"},"WorkspacePolicyV2":{"properties":{"meta":{"$ref":"#/components/schemas/PolicyMeta"},"policy":{"$ref":"#/components/schemas/WorkspacePolicyDefaultsAndRulesV2"},"effective":{"$ref":"#/components/schemas/WorkspacePolicyDefaultsAndRulesV2"},"effectiveUpdatedAt":{"$ref":"#/components/schemas/Timestamp"}},"nullable":true,"type":"object"},"PolicyMeta":{"allOf":[{"$ref":"#/components/schemas/PolicyReadOnlyFields"},{"$ref":"#/components/schemas/PolicyCreationFields"}]},"PolicyReadOnlyFields":{"required":["id","createdBy","createdAt","updatedBy","updatedAt"],"properties":{"id":{"$ref":"#/components/schemas/PolicyId"},"tenantId":{"$ref":"#/components/schemas/TenantId"},"clusterId":{"$ref":"#/components/schemas/ClusterIdOptional"},"createdBy":{"description":"The user who created the policy.","type":"string","minLength":1},"createdAt":{"description":"The time at which the policy wes created","type":"string","minLength":1,"format":"date-time"},"updatedBy":{"description":"The user who updated the policy.","type":"string","minLength":1},"updatedAt":{"description":"The time at which the policy has been updated","type":"string","minLength":1,"format":"date-time"}}},"PolicyId":{"description":"The unique id of the policy.","type":"string","minLength":1,"format":"uuid"},"TenantId":{"description":"The id of the tenant.","type":"integer","format":"int32"},"Timestamp":{"description":"The time at which an event occurred. e.g. the time an effective policy has been updated","type":"string","minLength":1,"format":"date-time"},"Error":{"required":["code","message"],"properties":{"code":{"type":"integer","minimum":100,"maximum":599},"message":{"type":"string"},"details":{"type":"string"}}}},"responses":{"400BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401Unauthorized":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403Forbidden":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503ServiceUnavailable":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/api/v2/policy/workspaces":{"put":{"summary":"Overwrite a workspace policy.","description":"Ue to apply a workspace policy for a given organizational unit.","operationId":"overwrite_workspace_policy_v2","tags":["Policy"],"parameters":[{"$ref":"#/components/parameters/ValidateOnly"},{"$ref":"#/components/parameters/ApproveClusterDeletion"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspacePolicyOverwriteRequestV2"}}}},"responses":{"200":{"description":"Policy applied.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspacePolicyV2"}}}},"400":{"$ref":"#/components/responses/400BadRequest"},"401":{"$ref":"#/components/responses/401Unauthorized"},"403":{"$ref":"#/components/responses/403Forbidden"},"503":{"$ref":"#/components/responses/503ServiceUnavailable"}}}}}}
```

## Delete a workspace policy.

> Use to delete a workspace policy for a given organizational unit.

```json
{"openapi":"3.0.3","info":{"title":"NVIDIA Run:ai","version":"2.26"},"tags":[{"name":"Policy","description":"Policies allow administrators to impose restrictions and set default values for researcher workloads. \nRestrictions and default values can be placed on CPUs, GPUs, and other resources or entities. \nFor more information, see [Policies](https://run-ai-docs.nvidia.com/self-hosted/2.26/platform-management/policies/#introduction).\n"}],"servers":[{"url":"https://app.run.ai"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer authentication"}},"parameters":{"PolicyScope":{"name":"scope","in":"query","required":true,"description":"The scope that the policy relates to.","schema":{"type":"string","enum":["tenant","cluster","department","project"]}},"FilterByDepartment":{"name":"departmentId","in":"query","description":"Filter using the department id.","required":false,"schema":{"type":"string"}},"FilterByProject":{"name":"projectId","in":"query","description":"project id to filter by","required":false,"schema":{"type":"string"}},"FilterByCluster":{"name":"clusterId","in":"query","description":"Filter using the Universally Unique Identifier (UUID) of the cluster.","required":false,"schema":{"type":"string","format":"uuid"}},"ApproveClusterDeletion":{"name":"approveClusterDeletion","in":"query","required":false,"description":"Required when modifying or deleting a policy if the tenant includes one or more clusters running version 2.20 or earlier. In such cases, the platform must delete the policy from the affected clusters. This flag indicates that the administrator approves this deletion.","schema":{"type":"boolean"}}},"responses":{"400BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401Unauthorized":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403Forbidden":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404NotFound":{"description":"The specified resource was not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503ServiceUnavailable":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"schemas":{"Error":{"required":["code","message"],"properties":{"code":{"type":"integer","minimum":100,"maximum":599},"message":{"type":"string"},"details":{"type":"string"}}}}},"paths":{"/api/v2/policy/workspaces":{"delete":{"summary":"Delete a workspace policy.","description":"Use to delete a workspace policy for a given organizational unit.","operationId":"delete_workspace_policy","tags":["Policy"],"parameters":[{"$ref":"#/components/parameters/PolicyScope"},{"$ref":"#/components/parameters/FilterByDepartment"},{"$ref":"#/components/parameters/FilterByProject"},{"$ref":"#/components/parameters/FilterByCluster"},{"$ref":"#/components/parameters/ApproveClusterDeletion"}],"responses":{"204":{"description":"The policy was deleted successfully."},"400":{"$ref":"#/components/responses/400BadRequest"},"401":{"$ref":"#/components/responses/401Unauthorized"},"403":{"$ref":"#/components/responses/403Forbidden"},"404":{"$ref":"#/components/responses/404NotFound"},"503":{"$ref":"#/components/responses/503ServiceUnavailable"}}}}}}
```

## Update a workspace policy.

> Use to apply changes to a workspace policy for a given organizational unit.

```json
{"openapi":"3.0.3","info":{"title":"NVIDIA Run:ai","version":"2.26"},"tags":[{"name":"Policy","description":"Policies allow administrators to impose restrictions and set default values for researcher workloads. \nRestrictions and default values can be placed on CPUs, GPUs, and other resources or entities. \nFor more information, see [Policies](https://run-ai-docs.nvidia.com/self-hosted/2.26/platform-management/policies/#introduction).\n"}],"servers":[{"url":"https://app.run.ai"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer authentication"}},"parameters":{"ValidateOnly":{"name":"validateOnly","in":"query","required":false,"description":"Validate the given policy payload without applying it","schema":{"type":"boolean"}},"ApproveClusterDeletion":{"name":"approveClusterDeletion","in":"query","required":false,"description":"Required when modifying or deleting a policy if the tenant includes one or more clusters running version 2.20 or earlier. In such cases, the platform must delete the policy from the affected clusters. This flag indicates that the administrator approves this deletion.","schema":{"type":"boolean"}}},"schemas":{"WorkspacePolicyChangeRequestV2":{"properties":{"meta":{"$ref":"#/components/schemas/PolicyCreationFields"},"policy":{"$ref":"#/components/schemas/WorkspacePolicyDefaultsAndRulesV2"},"reset":{"$ref":"#/components/schemas/FieldsToReset"}},"type":"object"},"PolicyCreationFields":{"required":["name","scope"],"properties":{"scope":{"$ref":"#/components/schemas/ScopeType"},"projectId":{"$ref":"#/components/schemas/ProjectIdOptional"},"departmentId":{"$ref":"#/components/schemas/DepartmentIdOptional"},"clusterId":{"$ref":"#/components/schemas/ClusterIdOptional"},"name":{"$ref":"#/components/schemas/PolicyName"}}},"ScopeType":{"type":"string","enum":["system","tenant","cluster","department","project"]},"ProjectIdOptional":{"description":"The id of the project.","type":"integer","format":"int32","nullable":true},"DepartmentIdOptional":{"description":"The id of the department.","type":"string","minLength":1,"nullable":true,"pattern":".*"},"ClusterIdOptional":{"description":"The id of the cluster.","type":"string","format":"uuid","minLength":1,"nullable":true},"PolicyName":{"description":"A chosen name for the policy.","type":"string","minLength":1,"pattern":".*"},"WorkspacePolicyDefaultsAndRulesV2":{"properties":{"defaults":{"allOf":[{"$ref":"#/components/schemas/WorkspacePolicyDefaultsV2"}],"nullable":true,"type":"object"},"rules":{"allOf":[{"$ref":"#/components/schemas/WorkspacePolicyRulesV2"}],"nullable":true,"type":"object"},"imposedAssets":{"$ref":"#/components/schemas/ImposedAssets"},"status":{"$ref":"#/components/schemas/PolicyValidationStatus"}},"nullable":true,"type":"object"},"WorkspacePolicyDefaultsV2":{"allOf":[{"nullable":true,"properties":{"annotations":{"$ref":"#/components/schemas/AnnotationsDefaults"},"args":{"$ref":"#/components/schemas/Args"},"autoDeletionTimeAfterCompletionSeconds":{"$ref":"#/components/schemas/AutoDeletionTimeAfterPreemption"},"backoffLimit":{"$ref":"#/components/schemas/BackoffLimit"},"category":{"$ref":"#/components/schemas/Category"},"command":{"$ref":"#/components/schemas/Command"},"compute":{"$ref":"#/components/schemas/SupersetDefaultsAllOfCompute"},"createHomeDir":{"$ref":"#/components/schemas/CreateHomeDir"},"environmentVariables":{"$ref":"#/components/schemas/EnvironmentVariablesDefaults"},"exposedUrls":{"$ref":"#/components/schemas/ExposedUrlsDefaults"},"image":{"$ref":"#/components/schemas/Image"},"imagePullPolicy":{"$ref":"#/components/schemas/ImagePullPolicy"},"imagePullSecrets":{"$ref":"#/components/schemas/ImagePullSecretsDefaults"},"labels":{"$ref":"#/components/schemas/LabelsDefaults"},"nodeAffinityRequired":{"$ref":"#/components/schemas/NodeAffinityRequired"},"nodePools":{"$ref":"#/components/schemas/NodePools"},"nodeType":{"$ref":"#/components/schemas/NodeType2"},"podAffinity":{"$ref":"#/components/schemas/PodAffinity"},"ports":{"$ref":"#/components/schemas/PortsDefaults"},"preemptibility":{"$ref":"#/components/schemas/Preemptibility"},"priorityClass":{"$ref":"#/components/schemas/PriorityClass"},"probes":{"$ref":"#/components/schemas/Probes"},"relatedUrls":{"$ref":"#/components/schemas/RelatedUrlsDefaults"},"restartPolicy":{"$ref":"#/components/schemas/RestartPolicy"},"security":{"$ref":"#/components/schemas/SupersetDefaultsAllOfSecurity"},"stdin":{"$ref":"#/components/schemas/Stdin"},"storage":{"nullable":true,"properties":{"configMapVolume":{"$ref":"#/components/schemas/ConfigMapsDefaults"},"dataVolume":{"$ref":"#/components/schemas/DataVolumesDefaults"},"emptyDirVolume":{"$ref":"#/components/schemas/EmptyDirsDefaults"},"git":{"$ref":"#/components/schemas/GitsDefaults"},"hostPath":{"$ref":"#/components/schemas/HostPathsDefaults"},"nfs":{"$ref":"#/components/schemas/NfssDefaults"},"pvc":{"$ref":"#/components/schemas/PvcsDefaults"},"s3":{"$ref":"#/components/schemas/S3sDefaults"},"secretVolume":{"$ref":"#/components/schemas/SecretsDefaults"}},"type":"object"},"terminateAfterPreemption":{"$ref":"#/components/schemas/TerminateAfterPreemption"},"terminationGracePeriodSeconds":{"$ref":"#/components/schemas/TerminationGracePeriod"},"tolerations":{"$ref":"#/components/schemas/TolerationsDefaults"},"tty":{"$ref":"#/components/schemas/Tty"},"workingDir":{"$ref":"#/components/schemas/WorkingDir"}},"type":"object"}]},"AnnotationsDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/Annotations"}},"nullable":true,"type":"object"},"Annotations":{"description":"Set of annotations to populate into the container running the workload.","type":"array","items":{"$ref":"#/components/schemas/Annotation"},"maxItems":1000,"nullable":true},"Annotation":{"description":"Annotation details to be populated into the container.","properties":{"name":{"description":"The name of the annotation (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":".*"},"value":{"description":"The value of the annotation.","type":"string","maxLength":10000,"nullable":true,"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","default":false,"nullable":true}},"nullable":true,"type":"object"},"Args":{"description":"Arguments to the command that the container running the workload executes.","type":"string","minLength":1,"maxLength":10000,"nullable":true,"pattern":".*"},"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","nullable":true},"BackoffLimit":{"description":"Specifies the number of retries before marking a workload as failed (not applicable to Inference workloads). The default value is 6.","format":"int64","type":"integer","nullable":true},"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":".*"},"Command":{"description":"A command to the server as the entry point of the container running the workload.","type":"string","minLength":1,"maxLength":10000,"nullable":true,"pattern":".*"},"SupersetDefaultsAllOfCompute":{"title":"SupersetDefaultsAllOfCompute","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/ExtendedResourcesDefaults"},"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"},"CpuCoreLimit":{"description":"Limitations on the number of CPUs consumed by the workload (0.5, 1, .etc). The system guarantees that this workload will not be able to consume more than this amount of CPUs.","format":"double","type":"number","nullable":true,"minimum":0},"CpuCoreRequest":{"description":"CPU units to allocate for the created workload (0.5, 1, .etc). The workload will receive at least this amount of CPU. Note that the workload will not be scheduled unless the system can guarantee this amount of CPUs to the workload.","format":"double","type":"number","nullable":true,"minimum":0},"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]*)$","maxLength":63,"nullable":true},"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","pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$","maxLength":63,"nullable":true},"ExtendedResourcesDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/ExtendedResource"},"instances":{"$ref":"#/components/schemas/ExtendedResources"}},"nullable":true,"type":"object"},"ExtendedResource":{"description":"Quantity of an extended resource.","properties":{"resource":{"description":"The name of the extended resource (mandatory)","type":"string","minLength":1,"maxLength":253,"nullable":true,"pattern":".*"},"quantity":{"description":"The requested quantity for the resource.","type":"string","minLength":1,"maxLength":63,"nullable":true,"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","nullable":true}},"nullable":true,"type":"object"},"ExtendedResources":{"description":"Extended resources and their quantity.","type":"array","items":{"$ref":"#/components/schemas/ExtendedResource"},"maxItems":1000,"nullable":true},"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","format":"int32","nullable":true,"minimum":0},"GpuMemoryLimit":{"description":"Limitation on the memory consumed by the workload, per GPU device. The system guarantees The gpuMemoryLimit must be no less than gpuMemoryRequest.","type":"string","pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$","maxLength":63,"nullable":true},"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]*)$","maxLength":63,"nullable":true},"GpuPortionLimit":{"description":"Limitations on the portion consumed by the workload, per GPU device. The system guarantees The gpuPotionLimit must be no less than the gpuPortionRequest.","type":"number","format":"double","nullable":true,"minimum":0},"GpuPortionRequest":{"description":"Required if and only if gpuRequestType is portion. States the portion of the GPU to allocate for the created workload, per GPU device, between 0 and 1. The default is no allocated GPUs.","type":"number","format":"double","nullable":true,"minimum":0},"GpuRequestType":{"description":"Sets the unit type for GPU resources requests. Stated in terms of portion or memory. Sets the unit type for other GPU request fields. If `gpuDevicesRequest > 1`, only `portion` is supported. If `gpuDeviceRequest = 1`, the request type can be stated as `portion` or `memory`.","type":"string","minLength":1,"enum":["portion","memory"],"nullable":true},"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","nullable":true},"CreateHomeDir":{"description":"When set to `true`, creates a home directory for the container.","type":"boolean","nullable":true},"EnvironmentVariablesDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/EnvironmentVariables"}},"nullable":true,"type":"object"},"EnvironmentVariables":{"description":"Set of environment variables to populate into the container running the workload.","type":"array","items":{"$ref":"#/components/schemas/EnvironmentVariable"},"maxItems":1000,"nullable":true},"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,"maxLength":63,"nullable":true,"pattern":".*"},"value":{"description":"The value of the environment variable. (mutually exclusive with secret, userCredential, configMap and podFieldRef)","type":"string","maxLength":10000,"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","nullable":true},"description":{"description":"Description of the environment variable.","type":"string","maxLength":250,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"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,"maxLength":253,"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,"maxLength":63,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"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","minLength":1,"maxLength":253,"nullable":true,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$"},"key":{"description":"The key in the config-map resource. (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"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","minLength":1,"maxLength":10000,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"EnvironmentVariableUserCredential":{"description":"Defines a reference to a user-created credential and a specific key within that credential whose value will populate the environment variable. User credentials can only be accessed by the user who created them.","properties":{"name":{"description":"The name of the user credential.  (mandatory)","type":"string","minLength":1,"maxLength":253,"nullable":true},"key":{"description":"The key in the user credential resource. (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true}},"nullable":true,"type":"object"},"ExposedUrlsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/ExposedUrl"},"instances":{"$ref":"#/components/schemas/ExposedUrls"}},"nullable":true,"type":"object"},"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","nullable":true},"url":{"$ref":"#/components/schemas/Url"},"authorizationType":{"$ref":"#/components/schemas/AuthorizationType"},"authorizedUsers":{"$ref":"#/components/schemas/AuthorizedUsers"},"authorizedGroups":{"$ref":"#/components/schemas/AuthorizedGroups"},"toolType":{"description":"The tool type that runs on this container port.","type":"string","nullable":true,"pattern":".*"},"toolName":{"description":"A name describing the tool that runs on this url.","type":"string","nullable":true,"pattern":".*","maxLength":253},"name":{"description":"Unique name to identify the instance. primarily used for policy locked rules.","type":"string","minLength":1,"maxLength":253,"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","nullable":true}},"nullable":true,"type":"object"},"Url":{"description":"The URL for connecting to the container port. If not specified, the URL will be auto-generated by the system.","type":"string","maxLength":2048,"pattern":".*","nullable":true},"AuthorizationType":{"type":"string","enum":["authenticatedUsers","authorizedUsers","authorizedGroups"],"description":"Specifies who can access the connection URL:\n- `authenticatedUsers`: Any authenticated user or service account can access the URL; the authorizedUsers and authorizedGroups fields are ignored.\n- `authorizedUsers`: Only users listed in the authorizedUsers field are allowed to access the URL; the authorizedGroups field is ignored.\n- `authorizedGroups`: Only members of user groups listed in the authorizedGroups field are allowed to access the URL; the authorizedUsers field is ignored.\nIf 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.\n","nullable":true},"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","maxLength":253,"pattern":".*"},"maxItems":1000,"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","maxLength":253,"pattern":".*"},"maxItems":1000,"nullable":true},"ExposedUrls":{"description":"Set of container ports that the workload exposes via URLs.","type":"array","items":{"$ref":"#/components/schemas/ExposedUrl"},"maxItems":1000,"nullable":true},"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","minLength":1,"maxLength":253,"nullable":true,"pattern":".*"},"ImagePullPolicy":{"description":"Image pull policy. Defaults to `Always` if `:latest` tag is specified, otherwise it is `IfNotPresent`.","type":"string","minLength":1,"enum":["Always","Never","IfNotPresent"],"nullable":true},"ImagePullSecretsDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/ImagePullSecrets"}},"nullable":true,"type":"object"},"ImagePullSecrets":{"description":"A list of references to Kubernetes secrets in the same namespace used for pulling container images.","type":"array","items":{"$ref":"#/components/schemas/ImagePullSecret"},"maxItems":1000,"nullable":true},"ImagePullSecret":{"description":"A reference to a secret in the same namespace used to pull container images.","properties":{"name":{"type":"string","description":"The name of the Kubernetes secret containing the image pull credentials.","pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$","maxLength":253},"userCredential":{"type":"boolean","description":"Indicates whether the secret is a user credential. Set to true if the secret was created by the user and is only accessible by them.","nullable":true},"exclude":{"description":"Use 'true' in case the secret is defined in defaults of the policy, and you wish to exclude it from the workload.","type":"boolean","default":false,"nullable":true}},"nullable":true,"type":"object"},"LabelsDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/Labels"}},"nullable":true,"type":"object"},"Labels":{"description":"Set of labels to populate into the container running the workload.","type":"array","items":{"$ref":"#/components/schemas/Label"},"maxItems":1000,"nullable":true},"Label":{"description":"Label details to be populated into the container.","properties":{"name":{"description":"The name of the label (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":".*"},"value":{"description":"The value of the label.","type":"string","nullable":true,"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","nullable":true}},"nullable":true,"type":"object"},"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"},"maxItems":1000}},"nullable":true},"NodeSelectorTerm":{"type":"object","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"},"maxItems":1000}},"nullable":true},"MatchExpression":{"type":"object","description":"A selector that contains values, a key, and an operator that relates the key and values.","properties":{"key":{"description":"The label key that the selector applies to (mandatory).","type":"string","pattern":".*","maxLength":63},"operator":{"$ref":"#/components/schemas/MatchExpressionOperator"},"values":{"description":"An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer.","type":"array","items":{"type":"string","maxLength":10000,"pattern":".*"},"maxItems":1000}},"required":["key","operator"],"nullable":true},"MatchExpressionOperator":{"description":"Represents a key's relationship to a set of values (mandatory).","type":"string","enum":["In","NotIn","Exists","DoesNotExist","Gt","Lt"]},"NodePools":{"description":"A prioritized list of node pools for the scheduler to run the workload on. The scheduler will always try to use the first node pool before moving to the next one if the first is not available.","type":"array","items":{"type":"string","maxLength":63,"pattern":".*"},"maxItems":1000,"nullable":true},"NodeType2":{"deprecated":true,"description":"Deprecated: use a workload policy node selector to target node types instead. 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","minLength":1,"nullable":true,"pattern":".*"},"PodAffinity":{"description":"Pod affinity scheduling rules (e.g. co-locate this workload in the same node, zone, etc. as some other workloads).","type":"object","properties":{"type":{"$ref":"#/components/schemas/PodAffinityType"},"key":{"description":"The label key to use. (mandatory)","type":"string","nullable":true,"pattern":".*","maxLength":63}},"nullable":true},"PodAffinityType":{"description":"The affinity type, required or preferred. (mandatory)","type":"string","enum":["Required","Preferred"],"nullable":true},"PortsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/Port"},"instances":{"$ref":"#/components/schemas/Ports"}},"nullable":true,"type":"object"},"Port":{"description":"A port for accessing the workload.","properties":{"container":{"description":"The port that the container running the workload exposes. (mandatory)","type":"integer","format":"int32","minimum":1,"maximum":65535,"nullable":true},"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","format":"int32","nullable":true},"toolType":{"description":"The tool type that runs on this port.","type":"string","nullable":true,"pattern":".*","maxLength":63},"toolName":{"description":"A name describing the tool that runs on this port.","type":"string","nullable":true,"pattern":".*","maxLength":253},"name":{"description":"Unique name to identify the instance. primarily used for policy locked rules.","type":"string","minLength":1,"maxLength":63,"nullable":true,"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","default":false,"nullable":true}},"nullable":true,"type":"object"},"PortServiceType":{"description":"The service type of the port (mandatory).","type":"string","enum":["LoadBalancer","NodePort","ClusterIP"],"nullable":true},"Ports":{"description":"Set of container ports that the workload exposes.","type":"array","items":{"$ref":"#/components/schemas/Port"},"maxItems":1000,"nullable":true},"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","minLength":1,"enum":["preemptible","non-preemptible"],"nullable":true},"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","nullable":true,"pattern":".*"},"Probes":{"description":"Probes are used to determine if the container is healthy and ready to accept traffic.","type":"object","properties":{"readiness":{"$ref":"#/components/schemas/Probe"}},"nullable":true},"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},"ProbeHandler":{"description":"The action taken to determine the health of the container. (mandatory)","type":"object","properties":{"httpGet":{"description":"An action based on HTTP Get requests.","type":"object","properties":{"path":{"description":"Path to access on the HTTP server, defaults to /.","type":"string","pattern":"^(\\x2F[a-zA-Z0-9\\-_.\\x2F]*)?$","nullable":true,"maxLength":2048},"port":{"description":"Number of the port to access on the container.","type":"integer","format":"int32","minimum":1,"maximum":65535,"nullable":true},"host":{"description":"Host name to connect to, defaults to the pod IP.","type":"string","format":"hostname","nullable":true,"pattern":".*","maxLength":253},"scheme":{"$ref":"#/components/schemas/ProbeHandlerScheme"}}}},"nullable":true},"ProbeHandlerScheme":{"description":"Scheme to use for connecting to the host, defaults to HTTP.","type":"string","enum":["HTTP","HTTPS"],"nullable":true},"RelatedUrlsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/RelatedUrl"},"instances":{"$ref":"#/components/schemas/RelatedUrls"}},"nullable":true,"type":"object"},"RelatedUrl":{"description":"A URL that is related to the workload. For example, a URL to an external server providing statistics or logging about the workload.","properties":{"url":{"description":"The URL for connecting an external service related to the workload. (mandatory)","type":"string","nullable":true,"pattern":".*","maxLength":2048},"type":{"description":"The type of service that the url provides. For example, wandb (Weights & Biases). (mandatory)","type":"string","nullable":true,"pattern":".*","maxLength":63},"name":{"description":"Unique name to identify the instance. primarily used for policy locked rules.","type":"string","nullable":true,"pattern":".*","maxLength":63},"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,"nullable":true}},"nullable":true,"type":"object"},"RelatedUrls":{"description":"Set of URLs that are related to the workload.","type":"array","items":{"$ref":"#/components/schemas/RelatedUrl"},"maxItems":1000,"nullable":true},"RestartPolicy":{"description":"Specify the restart policy of the workload pods. Default is empty, which is determine by the framework default.\nThe `Always` value is deprecated; use `OnFailure` or `Never` instead.\n","type":"string","minLength":1,"enum":["Always","Never","OnFailure"],"nullable":true},"SupersetDefaultsAllOfSecurity":{"title":"SupersetDefaultsAllOfSecurity","nullable":true,"properties":{"allowPrivilegeEscalation":{"$ref":"#/components/schemas/AllowPrivilegeEscalation"},"capabilities":{"$ref":"#/components/schemas/Capabilities"},"hostIpc":{"$ref":"#/components/schemas/HostIpc"},"hostNetwork":{"$ref":"#/components/schemas/HostNetwork"},"readOnlyRootFilesystem":{"$ref":"#/components/schemas/ReadOnlyRootFileSystem"},"runAsGid":{"$ref":"#/components/schemas/RunAsGid"},"runAsNonRoot":{"$ref":"#/components/schemas/RunAsNonRoot"},"runAsUid":{"$ref":"#/components/schemas/RunAsUid"},"seccompProfileType":{"$ref":"#/components/schemas/SeccompProfileType"},"supplementalGroups":{"$ref":"#/components/schemas/SupplementalGroups"},"uidGidSource":{"$ref":"#/components/schemas/UidGidSource"}},"type":"object"},"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://run-ai-docs.nvidia.com/self-hosted/2.26/infrastructure-setup/advanced-setup/container-access/user-identity-in-containers","type":"boolean","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"},"nullable":true},"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"]},"HostIpc":{"description":"Whether to enable host IPC. Defaults to false.","type":"boolean","nullable":true},"HostNetwork":{"description":"Whether to enable host networking. Default to false.","type":"boolean","nullable":true},"ReadOnlyRootFileSystem":{"description":"If true, mounts the container's root filesystem as read-only.","type":"boolean","nullable":true},"RunAsGid":{"description":"The group id to run the entrypoint of the container which executes the workspace. Default to the value specified in the environment asset `runAsGid` field (optional). Use only when the source uid/gid of the environment asset is not `fromTheImage`, and `overrideUidGidInWorkspace` is enabled.","type":"integer","format":"int64","nullable":true},"RunAsNonRoot":{"description":"Force the container to run as a non-root user.","type":"boolean","nullable":true},"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","format":"int64","nullable":true},"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","enum":["RuntimeDefault","Unconfined","Localhost"],"nullable":true},"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","nullable":true,"pattern":".*"},"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://run-ai-docs.nvidia.com/self-hosted/2.26/infrastructure-setup/advanced-setup/container-access/user-identity-in-containers).","type":"string","enum":["fromTheImage","fromIdpToken","custom"],"nullable":true},"Stdin":{"description":"Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF","type":"boolean","nullable":true},"ConfigMapsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/ConfigMapInstance"},"instances":{"$ref":"#/components/schemas/ConfigMapItems"}},"nullable":true,"type":"object"},"ConfigMapInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/ConfigMap"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"StorageInstanceName":{"properties":{"name":{"description":"unique name to identify the instance. primarily used for policy locked rules.","type":"string","minLength":1,"maxLength":63,"nullable":true}},"nullable":true,"type":"object"},"ConfigMap":{"properties":{"configMap":{"description":"The name of the ConfigMap resource. (mandatory)","type":"string","minLength":1,"maxLength":253,"nullable":true,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$"},"mountPath":{"description":"Local path within the workload to which the ConfigMap will be mapped to. (mandatory)","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"subPath":{"description":"Path within the volume from which the container's volume should be mounted.","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"defaultMode":{"$ref":"#/components/schemas/DefaultMode"}},"nullable":true,"type":"object"},"DefaultMode":{"type":"string","description":"File permission mode in octal string format. This value must be a 4-digit octal number, representing the default file mode when mounting a Secret or ConfigMap as a volume.\n","minLength":4,"maxLength":4,"pattern":"0[0-7]{3}","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,"nullable":true}},"type":"object","nullable":true},"ConfigMapItems":{"description":"Set of config map volumes to use in the workload","type":"array","items":{"$ref":"#/components/schemas/ConfigMapInstance"},"maxItems":1000,"nullable":true},"DataVolumesDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/DataVolumeInstance"},"instances":{"$ref":"#/components/schemas/DataVolumeItems"}},"nullable":true,"type":"object"},"DataVolumeInstance":{"allOf":[{"$ref":"#/components/schemas/DataVolume"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"DataVolume":{"properties":{"id":{"description":"The unique identifier of the data volume. (mandatory)","type":"string","format":"uuid","nullable":true},"mountPath":{"description":"The path where the data volume will be mounted. (mandatory)","type":"string","nullable":true,"pattern":".*","maxLength":4096}},"nullable":true,"type":"object"},"DataVolumeItems":{"description":"Set of data volumes to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/DataVolumeInstance"},"maxItems":1000,"nullable":true},"EmptyDirsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/EmptyDirInstance"},"instances":{"$ref":"#/components/schemas/EmptyDirItems"}},"nullable":true,"type":"object"},"EmptyDirInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/EmptyDir"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"EmptyDir":{"properties":{"path":{"description":"Local path within the workload to which the EmptyDir volume will be mapped. (mandatory)","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"medium":{"description":"The type of storage medium for the volume. Use \"Memory\" for memory-backed storage, or leave empty for disk-backed storage.","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":".*"},"sizeLimit":{"description":"The total amount of local storage or memory required for the emptyDir volume. Specify using Kubernetes quantity format (e.g., 1G, 500Mi).","type":"string","maxLength":63,"pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$","nullable":true}},"nullable":true,"type":"object"},"EmptyDirItems":{"description":"A list of emptyDir volumes to mount in the workload.","type":"array","items":{"$ref":"#/components/schemas/EmptyDirInstance"},"maxItems":1000,"nullable":true},"GitsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/GitInstance"},"instances":{"$ref":"#/components/schemas/GitItems"}},"nullable":true,"type":"object"},"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"},"GitCommon":{"properties":{"repository":{"description":"URL to a remote Git repository. The content of this repository will be mapped to the container running the workload. (mandatory)","type":"string","minLength":1,"maxLength":2048,"nullable":true},"branch":{"description":"Specific branch to synchronize the repository from.","type":"string","minLength":1,"maxLength":63,"nullable":true},"revision":{"description":"Specific revision to synchronize the repository from.","type":"string","minLength":1,"maxLength":63,"nullable":true},"path":{"description":"Local path within the workload to which the Git repository will be mapped (mandatory).","type":"string","minLength":1,"maxLength":4096,"nullable":true}},"nullable":true,"type":"object"},"GitPassword":{"properties":{"passwordSecret":{"description":"Secret containing the credentials of the repository (needed for non public repository which requires authentication). (deprecated)","type":"string","minLength":1,"nullable":true},"secretKeyOfUser":{"description":"The key to use for loading the user name from the secret. The default is `User`. (deprecated)","type":"string","minLength":1,"nullable":true},"secretKeyOfPassword":{"description":"The key to use for loading the password from the secret. The default is `Password`. (deprecated)","type":"string","minLength":1,"nullable":true}},"nullable":true,"type":"object"},"GitSecretRef":{"properties":{"name":{"description":"Name of the Secret containing the credentials of the repository.","type":"string","minLength":1},"authenticationMethod":{"$ref":"#/components/schemas/GitAuthenticationMethod"},"secretKeyOfUser":{"description":"The key in the Secret that contains the Git username (used for `password` authentication).","type":"string","minLength":1,"nullable":true},"secretKeyOfPassword":{"description":"The key in the Secret that contains the Git password (used for `password` authentication).","type":"string","minLength":1,"nullable":true}},"nullable":true,"type":"object"},"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,"enum":["password","ssh-key"]},"GitItems":{"description":"Set of git repositories to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/GitInstance"},"maxItems":1000,"nullable":true},"HostPathsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/HostPathInstance"},"instances":{"$ref":"#/components/schemas/HostPathItems"}},"nullable":true,"type":"object"},"HostPathInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/HostPath"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"HostPath":{"properties":{"path":{"description":"Local path within the controller to which the host volume will be mapped. (mandatory)","type":"string","minLength":1,"maxLength":4096,"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,"maxLength":4096,"nullable":true,"pattern":".*"},"mountPropagation":{"$ref":"#/components/schemas/HostPathMountPropagation"}},"nullable":true,"type":"object"},"HostPathMountPropagation":{"description":"Share this volumes mount with other containers. If set to HostToContainer, this volume mount will receive all subsequent mounts that are mounted to this volume or any of its subdirectories. In case of multiple hostPath entries, this field should have the same value for all of them.","type":"string","enum":["None","HostToContainer"],"nullable":true},"HostPathItems":{"description":"Set of host paths to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/HostPathInstance"},"maxItems":1000,"nullable":true},"NfssDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/NfsInstance"},"instances":{"$ref":"#/components/schemas/NfsItems"}},"nullable":true,"type":"object"},"NfsInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/Nfs"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"Nfs":{"properties":{"path":{"description":"Path that is exported by the NFS server (mandatory). For more information, see [NFS](https://kubernetes.io/docs/concepts/storage/volumes#nfs).","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"readOnly":{"description":"Force the NFS export to be mounted with read-only permissions.","type":"boolean","default":true,"nullable":true},"server":{"description":"The hostname or IP address of the NFS server. (mandatory)","type":"string","minLength":1,"maxLength":253,"nullable":true,"pattern":".*"},"mountPath":{"description":"The path that the NFS volume will be mounted to when in use. (mandatory)","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"NfsItems":{"description":"Set of nfs volumes to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/NfsInstance"},"maxItems":1000,"nullable":true},"PvcsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/PvcInstance"},"instances":{"$ref":"#/components/schemas/PvcItems"}},"nullable":true,"type":"object"},"PvcInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/Pvc"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"Pvc":{"allOf":[{"$ref":"#/components/schemas/PvcFieldsUpdatable"},{"$ref":"#/components/schemas/PvcFieldsNonUpdatable"}]},"PvcFieldsUpdatable":{"properties":{"path":{"description":"Local path within the workload to which the PVC bucket will be mapped. (mandatory)","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"PvcFieldsNonUpdatable":{"properties":{"existingPvc":{"description":"Verify existing PVC. PVC is assumed to exist when set to `true`. If set to `false`, the PVC will be created, if it does not exist.","type":"boolean","default":false,"nullable":true},"claimName":{"description":"Name for the PVC. Allow referencing it across workloads. If not provided, a name based on the workload name and scope will be auto-generated.","type":"string","minLength":1,"maxLength":63,"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,"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,"nullable":true}},"nullable":true,"type":"object"},"ClaimInfo":{"description":"Claim information for the newly created PVC. The information should not be provided when attempting to use existing PVC.","properties":{"size":{"$ref":"#/components/schemas/PvcClaimSize"},"storageClass":{"description":"Storage class name to associate with the PVC. This parameter may be omitted if there is a single storage class in the system, or you are using the default storage class. For more information, see [Storage class](https://kubernetes.io/docs/concepts/storage/storage-classes).","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$"},"accessModes":{"$ref":"#/components/schemas/PvcAccessModes"},"volumeMode":{"$ref":"#/components/schemas/PvcVolumeMode"},"addedAttrValues":{"$ref":"#/components/schemas/PvcAddedAttrValues"}},"nullable":true,"type":"object"},"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]*)$","maxLength":63,"nullable":true},"PvcAccessModes":{"description":"Default access mode(s) applied to newly created PVCs unless explicitly overridden.","properties":{"readWriteOnce":{"description":"Mount the volume as read/write by a single node.","type":"boolean","default":true,"nullable":true},"readOnlyMany":{"description":"Mount the volume as read-only by many nodes.","type":"boolean","default":false,"nullable":true},"readWriteMany":{"description":"Mount the volume as read/write by many nodes.","type":"boolean","default":false,"nullable":true}},"nullable":true,"type":"object"},"PvcVolumeMode":{"description":"Default volume mode for the PVC. Choose between Filesystem (default) or Block.","type":"string","enum":["Filesystem","Block"],"nullable":true},"PvcAddedAttrValues":{"description":"an optional array of key-values pairs that are written as annotations on the created PVC. the allowed attributes are determined according to the storage class configuration (see k8s-objects-tracker for further info).","type":"array","items":{"$ref":"#/components/schemas/PvcAddedAttrValue"},"maxItems":1000},"PvcAddedAttrValue":{"type":"object","required":["key"],"properties":{"key":{"type":"string","minLength":1,"maxLength":63,"pattern":"^([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]$"},"value":{"type":"string","pattern":".*","maxLength":10000}}},"PvcItems":{"description":"Set of pvc persistent volume claims to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/PvcInstance"},"maxItems":1000,"nullable":true},"S3sDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/S3Instance"},"instances":{"$ref":"#/components/schemas/S3Items"}},"nullable":true,"type":"object"},"S3Instance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/S3Common"},{"$ref":"#/components/schemas/S3AccessKey"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"S3Common":{"properties":{"bucket":{"description":"The name of the bucket. (mandatory)","type":"string","minLength":1,"nullable":true},"path":{"description":"Local path within the workload to which the S3 bucket will be mapped. (mandatory)","type":"string","minLength":1,"nullable":true},"url":{"description":"The url of the S3 service provider. The default is the URL of the Amazon AWS S3 service.","type":"string","minLength":1,"nullable":true}},"nullable":true,"type":"object"},"S3AccessKey":{"properties":{"accessKeySecret":{"description":"Name of the secret containing credentials of the S3 bucket. Used for private S3 buckets.","type":"string","minLength":1,"nullable":true,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$"},"secretKeyOfAccessKeyId":{"description":"The key to use for loading the access key id from the secret. The default is `AccessKeyId`. For more information, see [Credentials access keys](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html).","type":"string","minLength":1,"nullable":true,"pattern":".*"},"secretKeyOfSecretKey":{"description":"The key to use for loading the secret key from the secret. The default is `SecretKey`. For more information, see [Credentials access keys](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html).","type":"string","minLength":1,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"S3Items":{"description":"Set of s3 buckets to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/S3Instance"},"nullable":true},"SecretsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/SecretInstance"},"instances":{"$ref":"#/components/schemas/SecretItems"}},"nullable":true,"type":"object"},"SecretInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/Secret"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"Secret":{"allOf":[{"$ref":"#/components/schemas/SecretFieldsUpdatable"},{"$ref":"#/components/schemas/SecretFieldsNonUpdatable"}]},"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"},"SecretFieldsNonUpdatable":{"properties":{"secret":{"description":"The name of the Secret resource. (mandatory)","type":"string","minLength":1,"nullable":true}},"nullable":true,"type":"object"},"SecretItems":{"description":"Set of secret volumes to use in the workload","type":"array","items":{"$ref":"#/components/schemas/SecretInstance"},"nullable":true},"TerminateAfterPreemption":{"description":"Indicates if the job should be terminated by the system after it has been preempted.","type":"boolean","nullable":true},"TerminationGracePeriod":{"description":"Duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down).","format":"int64","type":"integer","minimum":0,"nullable":true},"TolerationsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/Toleration"},"instances":{"$ref":"#/components/schemas/Tolerations"}},"nullable":true,"type":"object"},"Toleration":{"description":"Toleration details.","properties":{"name":{"description":"The name of the toleration.","type":"string","minLength":1,"maxLength":253,"nullable":true,"pattern":".*"},"operator":{"$ref":"#/components/schemas/TolerationOperator"},"key":{"description":"The taint key that the toleration applies to. (mandatory)","type":"string","maxLength":253,"nullable":true,"pattern":".*"},"value":{"description":"The taint value the toleration matches to. Mandatory if operator is Exists, forbidden otherwise.","type":"string","maxLength":10000,"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","nullable":true}},"nullable":true,"type":"object"},"TolerationOperator":{"description":"A key's relationship to the value. Equal uses key and value. Exists is equivalent to wildcard for value, so that a workload can tolerate all taints of a particular category. (mandatory)","type":"string","enum":["Equal","Exists"],"nullable":true},"TolerationEffect":{"description":"The taint effect to match. (mandatory)","type":"string","enum":["NoSchedule","NoExecute","PreferNoSchedule","Any"],"nullable":true},"Tolerations":{"description":"Set of tolerations to apply to the workload.","type":"array","items":{"$ref":"#/components/schemas/Toleration"},"maxItems":1000,"nullable":true},"Tty":{"description":"Whether this container should allocate a TTY for itself, also requires 'stdin' to be true.","type":"boolean","nullable":true},"WorkingDir":{"description":"Container's working directory. If not specified, the container runtime default will be used. This may be configured in the container image.","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"WorkspacePolicyRulesV2":{"allOf":[{"nullable":true,"properties":{"annotations":{"$ref":"#/components/schemas/InstancesRules"},"args":{"$ref":"#/components/schemas/StringRules"},"autoDeletionTimeAfterCompletionSeconds":{"$ref":"#/components/schemas/IntegerRules"},"backoffLimit":{"$ref":"#/components/schemas/IntegerRules"},"category":{"$ref":"#/components/schemas/StringRules"},"command":{"$ref":"#/components/schemas/StringRules"},"compute":{"$ref":"#/components/schemas/SupersetRulesAllOfCompute"},"createHomeDir":{"$ref":"#/components/schemas/BooleanRules"},"environmentVariables":{"$ref":"#/components/schemas/InstancesRules"},"exposedUrls":{"$ref":"#/components/schemas/ExposedUrlsRules"},"image":{"$ref":"#/components/schemas/StringRules"},"imagePullPolicy":{"$ref":"#/components/schemas/ImagePullPolicyRules"},"imagePullSecrets":{"$ref":"#/components/schemas/ImagePullSecretsRules"},"labels":{"$ref":"#/components/schemas/InstancesRules"},"nodeAffinityRequired":{"$ref":"#/components/schemas/ArbitraryRules"},"nodePools":{"$ref":"#/components/schemas/ArrayRules"},"nodeType":{"$ref":"#/components/schemas/StringRules"},"podAffinity":{"$ref":"#/components/schemas/PodAffinityRules"},"ports":{"$ref":"#/components/schemas/PortsRules"},"preemptibility":{"$ref":"#/components/schemas/PreemptibilityRules"},"priorityClass":{"$ref":"#/components/schemas/StringRules"},"probes":{"$ref":"#/components/schemas/ProbesRules"},"relatedUrls":{"$ref":"#/components/schemas/RelatedUrlsRules"},"restartPolicy":{"$ref":"#/components/schemas/RestartPolicyRule"},"security":{"$ref":"#/components/schemas/SupersetRulesAllOfSecurity"},"stdin":{"$ref":"#/components/schemas/BooleanRules"},"storage":{"nullable":true,"properties":{"configMapVolume":{"$ref":"#/components/schemas/ConfigMapsRules"},"dataVolume":{"$ref":"#/components/schemas/DataVolumesRules"},"emptyDirVolume":{"$ref":"#/components/schemas/EmptyDirsRules"},"git":{"$ref":"#/components/schemas/GitsRules"},"hostPath":{"$ref":"#/components/schemas/HostPathsRules"},"nfs":{"$ref":"#/components/schemas/NfssRules"},"pvc":{"$ref":"#/components/schemas/PvcsRules"},"s3":{"$ref":"#/components/schemas/S3sRules"},"secretVolume":{"$ref":"#/components/schemas/SecretsRules"}},"type":"object"},"terminateAfterPreemption":{"$ref":"#/components/schemas/BooleanRules"},"terminationGracePeriodSeconds":{"$ref":"#/components/schemas/IntegerRules"},"tolerations":{"$ref":"#/components/schemas/TolerationsRules"},"tty":{"$ref":"#/components/schemas/BooleanRules"},"workingDir":{"$ref":"#/components/schemas/StringRules"}},"type":"object"}]},"InstancesRules":{"properties":{"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ItemRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"canAdd":{"description":"Whether it is permitted to add items. Default to true.","type":"boolean","nullable":true},"locked":{"description":"Set of keys for items that are \"locked\", i.e. cannot be removed or deleted.","type":"array","items":{"type":"string"}}},"nullable":true,"type":"object"},"SourceOfRule":{"description":"This field is used by the system along with effective rules, in order to specify the org unit from which this effective rule has been derived. It should be left empty when sending apply policy requests.","required":["scope"],"properties":{"scope":{"$ref":"#/components/schemas/ScopeType"},"projectId":{"$ref":"#/components/schemas/ProjectIdOptional"},"departmentId":{"$ref":"#/components/schemas/DepartmentIdOptional"},"clusterId":{"$ref":"#/components/schemas/ClusterIdOptional"},"isFallback":{"description":"source of this rule is the fallback policy","type":"boolean"}},"nullable":true,"type":"object"},"StringRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/StringRulesOptions"}],"nullable":true,"type":"object"},"StringRulesCommon":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory, default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable, default to true","type":"boolean","nullable":true},"blocked":{"description":"Blocks the field to prevent workloads from specifying any value for it.","type":"boolean","nullable":true}}},"StringRulesOptions":{"properties":{"options":{"description":"Set of options that the value of the field must be chosen from.","type":"array","items":{"$ref":"#/components/schemas/StringOption"},"nullable":true}}},"StringOption":{"description":"One of the values that the field can be assigned to, when options police is applied on the field.","required":["value"],"properties":{"value":{"description":"The value that the field should hold","type":"string","pattern":".*"},"displayed":{"description":"Textual description of the value. to be used by user interface applications.","type":"string","nullable":true,"pattern":".*"}}},"IntegerRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory. default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"max":{"description":"The maximum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"step":{"description":"The minimal difference between two values the field can be assigned to. For example, min=2, max=10, step=2 implies that the values the field can hold are 2, 4, 6, 8 and 10.","type":"integer","format":"int32","nullable":true},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"DefaultFromRule":{"properties":{"field":{"description":"The default of this field is taken from another field, with optional factor. The specified field must belong to the same workload section (compute, security, etc). For itemized field, the value of the field will be taken from the same instance.","type":"string","nullable":true,"pattern":".*"},"factor":{"description":"Multiple the value of the fromField by this factor to get the value for this field For example, if factor is 2 and defaultFrom field has value of 8, the calculated default will be determined to be 16.","type":"number","format":"double","nullable":true,"default":1}},"nullable":true,"type":"object"},"SupersetRulesAllOfCompute":{"title":"SupersetRulesAllOfCompute","nullable":true,"properties":{"cpuCoreLimit":{"$ref":"#/components/schemas/NumberRules"},"cpuCoreRequest":{"$ref":"#/components/schemas/NumberRules"},"cpuMemoryLimit":{"$ref":"#/components/schemas/QuantityRules"},"cpuMemoryRequest":{"$ref":"#/components/schemas/QuantityRules"},"extendedResources":{"$ref":"#/components/schemas/ExtendedResourcesRules"},"gpuDevicesRequest":{"$ref":"#/components/schemas/IntegerRules"},"gpuMemoryLimit":{"$ref":"#/components/schemas/QuantityRules"},"gpuMemoryRequest":{"$ref":"#/components/schemas/QuantityRules"},"gpuPortionLimit":{"$ref":"#/components/schemas/NumberRules"},"gpuPortionRequest":{"$ref":"#/components/schemas/NumberRules"},"gpuRequestType":{"$ref":"#/components/schemas/GpuRequestRules"},"largeShmRequest":{"$ref":"#/components/schemas/BooleanRules"}},"type":"object"},"NumberRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory. default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"number","nullable":true},"max":{"description":"The maximum value that the field can be assigned to.","type":"number","nullable":true},"step":{"description":"The minimal difference between two values the field can be assigned to. For example, min=2, max=3, step=0.25 implies that the values the field can hold are 2, 2.25, 2.5 and 3.","type":"number","nullable":true},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"QuantityRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory, default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable, default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"string","nullable":true,"pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"},"max":{"description":"The maximum value that the field can be assigned to.","type":"string","nullable":true,"pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"ExtendedResourcesRules":{"properties":{"attributes":{"$ref":"#/components/schemas/ExtendedResourceRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ExtendedResourceRules":{"description":"Rules for the attributes of extendedResources","properties":{"quantity":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"GpuRequestRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/GpuRequestOptions"}],"nullable":true,"type":"object"},"GpuRequestOptions":{"properties":{"options":{"description":"Limit the permitted values for gpuRequest to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/GpuRequestType"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"BooleanRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory. default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true}},"nullable":true,"type":"object"},"ExposedUrlsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/ExposedUrlRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ExposedUrlRules":{"description":"Rules for the attributed of exposedUrls","properties":{"container":{"$ref":"#/components/schemas/IntegerRules"},"customUrl":{"$ref":"#/components/schemas/BooleanRules"},"url":{"$ref":"#/components/schemas/StringRules"},"authorizedUsers":{"$ref":"#/components/schemas/ArrayRules"},"authorizedGroups":{"$ref":"#/components/schemas/ArrayRules"},"toolType":{"$ref":"#/components/schemas/StringRules"},"toolName":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"ArrayRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether this array is mandatory. Mandatory array must include at least one item. default to false.","type":"boolean","nullable":true},"options":{"description":"Set of options that the value of each item of the array must be chosen from.","type":"array","items":{"$ref":"#/components/schemas/StringOption"}},"canEdit":{"description":"Whether the value of the array, as a whole, is editable. default to false.","type":"boolean","nullable":true}},"nullable":true,"type":"object"},"ImagePullPolicyRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/ImagePullPolicyOptions"}],"nullable":true,"type":"object"},"ImagePullPolicyOptions":{"properties":{"options":{"description":"Limit the permitted values for imagePullPolicy to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/ImagePullPolicy"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ImagePullSecretsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/ImagePullSecretsRulesAttributes"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ImagePullSecretsRulesAttributes":{"description":"Rules for the attributes of imagePullSecrets","properties":{"name":{"$ref":"#/components/schemas/StringRules"},"userCredentials":{"$ref":"#/components/schemas/BooleanRules"}},"nullable":true,"type":"object"},"ArbitraryRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether this arbitrary object is mandatory. default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field, as a whole, is editable. default to false.","type":"boolean","nullable":true}},"nullable":true,"type":"object"},"PodAffinityRules":{"properties":{"type":{"$ref":"#/components/schemas/PodAffinityTypeRules"},"key":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"PodAffinityTypeRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/PodAffinityTypeOptions"}],"nullable":true,"type":"object"},"PodAffinityTypeOptions":{"properties":{"options":{"type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/PodAffinityType"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"type":"object"},"PortsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/PortRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"PortRules":{"description":"Rules for port attributes","properties":{"container":{"$ref":"#/components/schemas/IntegerRules"},"serviceType":{"$ref":"#/components/schemas/PortServiceTypeRules"},"customExternalPort":{"$ref":"#/components/schemas/BooleanRules"},"external":{"$ref":"#/components/schemas/IntegerRules"},"toolType":{"$ref":"#/components/schemas/StringRules"},"toolName":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"PortServiceTypeRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/PortServiceTypeOptions"}],"nullable":true,"type":"object"},"PortServiceTypeOptions":{"properties":{"options":{"type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/PortServiceType"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"PreemptibilityRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/PreemptibilityOptions"}],"nullable":true,"type":"object"},"PreemptibilityOptions":{"properties":{"options":{"description":"Limit the permitted values for preemptibility to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/Preemptibility"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ProbesRules":{"properties":{"readiness":{"$ref":"#/components/schemas/ProbeRules"}},"nullable":true,"type":"object"},"ProbeRules":{"properties":{"initialDelaySeconds":{"$ref":"#/components/schemas/IntegerRules"},"periodSeconds":{"$ref":"#/components/schemas/IntegerRules"},"timeoutSeconds":{"$ref":"#/components/schemas/IntegerRules"},"successThreshold":{"$ref":"#/components/schemas/IntegerRules"},"failureThreshold":{"$ref":"#/components/schemas/IntegerRules"},"handler":{"$ref":"#/components/schemas/ProbeHandlerRules"}},"nullable":true,"type":"object"},"ProbeHandlerRules":{"properties":{"httpGet":{"properties":{"path":{"$ref":"#/components/schemas/StringRules"},"port":{"$ref":"#/components/schemas/IntegerRules"},"host":{"$ref":"#/components/schemas/StringRules"},"scheme":{"$ref":"#/components/schemas/StringRules"}}}},"nullable":true,"type":"object"},"RelatedUrlsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/RelatedUrlRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"RelatedUrlRules":{"description":"Rules for the attributes of relatedUrls","properties":{"url":{"$ref":"#/components/schemas/StringRules"},"type":{"$ref":"#/components/schemas/StringRules"},"name":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"RestartPolicyRule":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/RestartPolicyOptions"}],"nullable":true,"type":"object"},"RestartPolicyOptions":{"properties":{"options":{"description":"Limit the permitted values for restartPolicy to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/RestartPolicy"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"SupersetRulesAllOfSecurity":{"title":"SupersetRulesAllOfSecurity","nullable":true,"properties":{"allowPrivilegeEscalation":{"$ref":"#/components/schemas/BooleanRules"},"capabilities":{"$ref":"#/components/schemas/ArrayRules"},"hostIpc":{"$ref":"#/components/schemas/BooleanRules"},"hostNetwork":{"$ref":"#/components/schemas/BooleanRules"},"readOnlyRootFilesystem":{"$ref":"#/components/schemas/BooleanRules"},"runAsGid":{"$ref":"#/components/schemas/IntegerRulesOptional"},"runAsNonRoot":{"$ref":"#/components/schemas/BooleanRules"},"runAsUid":{"$ref":"#/components/schemas/IntegerRulesOptional"},"seccompProfileType":{"$ref":"#/components/schemas/SeccompProfileTypeRules"},"supplementalGroups":{"$ref":"#/components/schemas/StringRules"},"uidGidSource":{"$ref":"#/components/schemas/UidGidSourceRules"}},"type":"object"},"IntegerRulesOptional":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"max":{"description":"The maximum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"step":{"description":"The minimal difference between two values the field can be assigned to. For example, min=2, max=10, step=2 implies that the values the field can hold are 2, 4, 6, 8 and 10.","type":"integer","format":"int32","nullable":true},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"SeccompProfileTypeRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/SeccompProfileTypeOptions"}],"nullable":true,"type":"object"},"SeccompProfileTypeOptions":{"properties":{"options":{"description":"Limit the permitted values for secompProfileType to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/SeccompProfileType"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"UidGidSourceRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/UidGidSourceOptions"}],"nullable":true,"type":"object"},"UidGidSourceOptions":{"properties":{"options":{"description":"Limit the permitted values for uidGidSource to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/UidGidSource"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ConfigMapsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/ConfigMapRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ConfigMapRules":{"properties":{"configMap":{"$ref":"#/components/schemas/StringRules"},"mountPath":{"$ref":"#/components/schemas/StringRules"},"subPath":{"$ref":"#/components/schemas/StringRules"},"defaultMode":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"DataVolumesRules":{"properties":{"attributes":{"$ref":"#/components/schemas/DataVolumeRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"DataVolumeRules":{"properties":{"id":{"$ref":"#/components/schemas/StringRules"},"mountPath":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"EmptyDirsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/EmptyDirRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"EmptyDirRules":{"properties":{"path":{"$ref":"#/components/schemas/StringRules"},"medium":{"$ref":"#/components/schemas/StringRules"},"sizeLimit":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"GitsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/GitRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"GitRules":{"properties":{"repository":{"$ref":"#/components/schemas/StringRules"},"branch":{"$ref":"#/components/schemas/StringRules"},"revision":{"$ref":"#/components/schemas/StringRules"},"path":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"HostPathsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/HostPathRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"HostPathRules":{"properties":{"path":{"$ref":"#/components/schemas/StringRules"},"readOnly":{"$ref":"#/components/schemas/BooleanRules"},"mountPath":{"$ref":"#/components/schemas/StringRules"},"mountPropagation":{"$ref":"#/components/schemas/HostPathMountPropagationRules"}},"nullable":true,"type":"object"},"HostPathMountPropagationRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/HostPathMountPropagationOptions"}],"nullable":true,"type":"object"},"HostPathMountPropagationOptions":{"properties":{"options":{"type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/HostPathMountPropagation"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}}},"NfssRules":{"properties":{"attributes":{"$ref":"#/components/schemas/NfsRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"NfsRules":{"properties":{"path":{"$ref":"#/components/schemas/StringRules"},"readOnly":{"$ref":"#/components/schemas/BooleanRules"},"server":{"$ref":"#/components/schemas/StringRules"},"mountPath":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"PvcsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/PvcRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"PvcRules":{"properties":{"claimName":{"$ref":"#/components/schemas/StringRules"},"path":{"$ref":"#/components/schemas/StringRules"},"readOnly":{"$ref":"#/components/schemas/BooleanRules"},"claimInfo":{"$ref":"#/components/schemas/ClaimInfoRules"}},"nullable":true,"type":"object"},"ClaimInfoRules":{"properties":{"size":{"$ref":"#/components/schemas/StringRules"},"storageClass":{"$ref":"#/components/schemas/StringRules"},"accessModes":{"$ref":"#/components/schemas/PvcAccessModesRules"}},"nullable":true,"type":"object"},"PvcAccessModesRules":{"description":"Rules for access mode(s) for a newly created PVC.","properties":{"readWriteOnce":{"$ref":"#/components/schemas/BooleanRules"},"readOnlyMany":{"$ref":"#/components/schemas/BooleanRules"},"readWriteMany":{"$ref":"#/components/schemas/BooleanRules"}},"nullable":true,"type":"object"},"S3sRules":{"properties":{"attributes":{"$ref":"#/components/schemas/S3Rules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"S3Rules":{"properties":{"bucket":{"$ref":"#/components/schemas/StringRules"},"path":{"$ref":"#/components/schemas/StringRules"},"url":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"SecretsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/SecretRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"SecretRules":{"properties":{"secret":{"$ref":"#/components/schemas/StringRules"},"mountPath":{"$ref":"#/components/schemas/StringRules"},"defaultMode":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"TolerationsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/TolerationRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"TolerationRules":{"description":"Toleration details.","properties":{"operator":{"$ref":"#/components/schemas/TolerationOperatorRules"},"key":{"$ref":"#/components/schemas/StringRules"},"value":{"$ref":"#/components/schemas/StringRules"},"effect":{"$ref":"#/components/schemas/TolerationEffectRules"},"seconds":{"$ref":"#/components/schemas/IntegerRules"},"exclude":{"$ref":"#/components/schemas/BooleanRules"}},"nullable":true,"type":"object"},"TolerationOperatorRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/TolerationOperatorOptions"}],"nullable":true,"type":"object"},"TolerationOperatorOptions":{"properties":{"options":{"description":"Limit the permitted values for imagePullPolicy to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/TolerationOperator"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"TolerationEffectRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/TolerationEffectOptions"}],"nullable":true,"type":"object"},"TolerationEffectOptions":{"properties":{"options":{"description":"Limit the permitted values for imagePullPolicy to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/TolerationEffect"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ImposedAssets":{"description":"a list of datasource assets to import into the policy. these datasources will be included in any workload that will be created in the scope of the policy.","type":"array","items":{"type":"string","format":"uuid"},"nullable":true},"PolicyValidationStatus":{"properties":{"validation":{"properties":{"errorMessage":{"pattern":".*","type":"string","description":"In case validation failed, holds the error message explaining the issue"}},"nullable":true,"type":"object"}},"nullable":true,"type":"object"},"FieldsToReset":{"description":"set of fields in jsonpath format that is requested to clear their policy (default and rules)","type":"array","items":{"type":"string","pattern":".*"}},"WorkspacePolicyV2":{"properties":{"meta":{"$ref":"#/components/schemas/PolicyMeta"},"policy":{"$ref":"#/components/schemas/WorkspacePolicyDefaultsAndRulesV2"},"effective":{"$ref":"#/components/schemas/WorkspacePolicyDefaultsAndRulesV2"},"effectiveUpdatedAt":{"$ref":"#/components/schemas/Timestamp"}},"nullable":true,"type":"object"},"PolicyMeta":{"allOf":[{"$ref":"#/components/schemas/PolicyReadOnlyFields"},{"$ref":"#/components/schemas/PolicyCreationFields"}]},"PolicyReadOnlyFields":{"required":["id","createdBy","createdAt","updatedBy","updatedAt"],"properties":{"id":{"$ref":"#/components/schemas/PolicyId"},"tenantId":{"$ref":"#/components/schemas/TenantId"},"clusterId":{"$ref":"#/components/schemas/ClusterIdOptional"},"createdBy":{"description":"The user who created the policy.","type":"string","minLength":1},"createdAt":{"description":"The time at which the policy wes created","type":"string","minLength":1,"format":"date-time"},"updatedBy":{"description":"The user who updated the policy.","type":"string","minLength":1},"updatedAt":{"description":"The time at which the policy has been updated","type":"string","minLength":1,"format":"date-time"}}},"PolicyId":{"description":"The unique id of the policy.","type":"string","minLength":1,"format":"uuid"},"TenantId":{"description":"The id of the tenant.","type":"integer","format":"int32"},"Timestamp":{"description":"The time at which an event occurred. e.g. the time an effective policy has been updated","type":"string","minLength":1,"format":"date-time"},"Error":{"required":["code","message"],"properties":{"code":{"type":"integer","minimum":100,"maximum":599},"message":{"type":"string"},"details":{"type":"string"}}}},"responses":{"400BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401Unauthorized":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403Forbidden":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503ServiceUnavailable":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/api/v2/policy/workspaces":{"patch":{"summary":"Update a workspace policy.","description":"Use to apply changes to a workspace policy for a given organizational unit.","operationId":"update_workspace_policy_v2","tags":["Policy"],"parameters":[{"$ref":"#/components/parameters/ValidateOnly"},{"$ref":"#/components/parameters/ApproveClusterDeletion"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspacePolicyChangeRequestV2"}}}},"responses":{"200":{"description":"Policy applied.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspacePolicyV2"}}}},"400":{"$ref":"#/components/responses/400BadRequest"},"401":{"$ref":"#/components/responses/401Unauthorized"},"403":{"$ref":"#/components/responses/403Forbidden"},"503":{"$ref":"#/components/responses/503ServiceUnavailable"}}}}}}
```

## Get a distributed policy.

> Retrieve the details of a distributed policy for a given organizational unit.

```json
{"openapi":"3.0.3","info":{"title":"NVIDIA Run:ai","version":"2.26"},"tags":[{"name":"Policy","description":"Policies allow administrators to impose restrictions and set default values for researcher workloads. \nRestrictions and default values can be placed on CPUs, GPUs, and other resources or entities. \nFor more information, see [Policies](https://run-ai-docs.nvidia.com/self-hosted/2.26/platform-management/policies/#introduction).\n"}],"servers":[{"url":"https://app.run.ai"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer authentication"}},"parameters":{"PolicyScope":{"name":"scope","in":"query","required":true,"description":"The scope that the policy relates to.","schema":{"type":"string","enum":["tenant","cluster","department","project"]}},"FilterByDepartment":{"name":"departmentId","in":"query","description":"Filter using the department id.","required":false,"schema":{"type":"string"}},"FilterByProject":{"name":"projectId","in":"query","description":"project id to filter by","required":false,"schema":{"type":"string"}},"FilterByCluster":{"name":"clusterId","in":"query","description":"Filter using the Universally Unique Identifier (UUID) of the cluster.","required":false,"schema":{"type":"string","format":"uuid"}}},"schemas":{"DistributedPolicyV2":{"properties":{"meta":{"$ref":"#/components/schemas/PolicyMeta"},"policy":{"$ref":"#/components/schemas/DistributedPolicyDefaultsAndRulesV2"},"effective":{"$ref":"#/components/schemas/DistributedPolicyDefaultsAndRulesV2"},"effectiveUpdatedAt":{"$ref":"#/components/schemas/Timestamp"}},"nullable":true,"type":"object"},"PolicyMeta":{"allOf":[{"$ref":"#/components/schemas/PolicyReadOnlyFields"},{"$ref":"#/components/schemas/PolicyCreationFields"}]},"PolicyReadOnlyFields":{"required":["id","createdBy","createdAt","updatedBy","updatedAt"],"properties":{"id":{"$ref":"#/components/schemas/PolicyId"},"tenantId":{"$ref":"#/components/schemas/TenantId"},"clusterId":{"$ref":"#/components/schemas/ClusterIdOptional"},"createdBy":{"description":"The user who created the policy.","type":"string","minLength":1},"createdAt":{"description":"The time at which the policy wes created","type":"string","minLength":1,"format":"date-time"},"updatedBy":{"description":"The user who updated the policy.","type":"string","minLength":1},"updatedAt":{"description":"The time at which the policy has been updated","type":"string","minLength":1,"format":"date-time"}}},"PolicyId":{"description":"The unique id of the policy.","type":"string","minLength":1,"format":"uuid"},"TenantId":{"description":"The id of the tenant.","type":"integer","format":"int32"},"ClusterIdOptional":{"description":"The id of the cluster.","type":"string","format":"uuid","minLength":1,"nullable":true},"PolicyCreationFields":{"required":["name","scope"],"properties":{"scope":{"$ref":"#/components/schemas/ScopeType"},"projectId":{"$ref":"#/components/schemas/ProjectIdOptional"},"departmentId":{"$ref":"#/components/schemas/DepartmentIdOptional"},"clusterId":{"$ref":"#/components/schemas/ClusterIdOptional"},"name":{"$ref":"#/components/schemas/PolicyName"}}},"ScopeType":{"type":"string","enum":["system","tenant","cluster","department","project"]},"ProjectIdOptional":{"description":"The id of the project.","type":"integer","format":"int32","nullable":true},"DepartmentIdOptional":{"description":"The id of the department.","type":"string","minLength":1,"nullable":true,"pattern":".*"},"PolicyName":{"description":"A chosen name for the policy.","type":"string","minLength":1,"pattern":".*"},"DistributedPolicyDefaultsAndRulesV2":{"properties":{"defaults":{"$ref":"#/components/schemas/DistributedPolicyDefaultsV2"},"rules":{"$ref":"#/components/schemas/DistributedPolicyRulesV2"},"imposedAssets":{"$ref":"#/components/schemas/DistributedImposedAssets"},"status":{"$ref":"#/components/schemas/PolicyValidationStatus"}},"nullable":true,"type":"object"},"DistributedPolicyDefaultsV2":{"nullable":true,"properties":{"master":{"$ref":"#/components/schemas/ReplicaDefaultsV2"},"worker":{"allOf":[{"$ref":"#/components/schemas/ReplicaDefaultsV2"},{"nullable":true,"properties":{"cleanPodPolicy":{"$ref":"#/components/schemas/CleanPodPolicy"},"distributedFramework":{"$ref":"#/components/schemas/DistributedFramework"},"maxReplicas":{"$ref":"#/components/schemas/MaxReplicas"},"minReplicas":{"$ref":"#/components/schemas/MinReplicas"},"mpiLauncherCreationPolicy":{"$ref":"#/components/schemas/MpiLauncherCreationPolicy"},"numWorkers":{"$ref":"#/components/schemas/NumWorkers"},"slotsPerWorker":{"$ref":"#/components/schemas/SlotsPerWorker"},"sshAuthMountPath":{"$ref":"#/components/schemas/SshAuthMountPath"}},"type":"object"}],"nullable":true,"type":"object"}},"type":"object"},"ReplicaDefaultsV2":{"nullable":true,"properties":{"annotations":{"$ref":"#/components/schemas/AnnotationsDefaults"},"args":{"$ref":"#/components/schemas/Args"},"autoDeletionTimeAfterCompletionSeconds":{"$ref":"#/components/schemas/AutoDeletionTimeAfterPreemption"},"backoffLimit":{"$ref":"#/components/schemas/BackoffLimit"},"category":{"$ref":"#/components/schemas/Category"},"command":{"$ref":"#/components/schemas/Command"},"compute":{"$ref":"#/components/schemas/SupersetDefaultsAllOfCompute"},"createHomeDir":{"$ref":"#/components/schemas/CreateHomeDir"},"environmentVariables":{"$ref":"#/components/schemas/EnvironmentVariablesDefaults"},"exposedUrls":{"$ref":"#/components/schemas/ExposedUrlsDefaults"},"image":{"$ref":"#/components/schemas/Image"},"imagePullPolicy":{"$ref":"#/components/schemas/ImagePullPolicy"},"imagePullSecrets":{"$ref":"#/components/schemas/ImagePullSecretsDefaults"},"labels":{"$ref":"#/components/schemas/LabelsDefaults"},"nodeAffinityRequired":{"$ref":"#/components/schemas/NodeAffinityRequired"},"nodePools":{"$ref":"#/components/schemas/NodePools"},"nodeType":{"$ref":"#/components/schemas/NodeType2"},"podAffinity":{"$ref":"#/components/schemas/PodAffinity"},"ports":{"$ref":"#/components/schemas/PortsDefaults"},"preemptibility":{"$ref":"#/components/schemas/Preemptibility"},"priorityClass":{"$ref":"#/components/schemas/PriorityClass"},"probes":{"$ref":"#/components/schemas/Probes"},"relatedUrls":{"$ref":"#/components/schemas/RelatedUrlsDefaults"},"restartPolicy":{"$ref":"#/components/schemas/RestartPolicy"},"security":{"$ref":"#/components/schemas/SupersetDefaultsAllOfSecurity"},"stdin":{"$ref":"#/components/schemas/Stdin"},"storage":{"nullable":true,"properties":{"configMapVolume":{"$ref":"#/components/schemas/ConfigMapsDefaults"},"dataVolume":{"$ref":"#/components/schemas/DataVolumesDefaults"},"emptyDirVolume":{"$ref":"#/components/schemas/EmptyDirsDefaults"},"git":{"$ref":"#/components/schemas/GitsDefaults"},"hostPath":{"$ref":"#/components/schemas/HostPathsDefaults"},"nfs":{"$ref":"#/components/schemas/NfssDefaults"},"pvc":{"$ref":"#/components/schemas/PvcsDefaults"},"s3":{"$ref":"#/components/schemas/S3sDefaults"},"secretVolume":{"$ref":"#/components/schemas/SecretsDefaults"}},"type":"object"},"terminateAfterPreemption":{"$ref":"#/components/schemas/TerminateAfterPreemption"},"terminationGracePeriodSeconds":{"$ref":"#/components/schemas/TerminationGracePeriod"},"tolerations":{"$ref":"#/components/schemas/TolerationsDefaults"},"tty":{"$ref":"#/components/schemas/Tty"},"workingDir":{"$ref":"#/components/schemas/WorkingDir"}},"type":"object"},"AnnotationsDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/Annotations"}},"nullable":true,"type":"object"},"Annotations":{"description":"Set of annotations to populate into the container running the workload.","type":"array","items":{"$ref":"#/components/schemas/Annotation"},"maxItems":1000,"nullable":true},"Annotation":{"description":"Annotation details to be populated into the container.","properties":{"name":{"description":"The name of the annotation (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":".*"},"value":{"description":"The value of the annotation.","type":"string","maxLength":10000,"nullable":true,"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","default":false,"nullable":true}},"nullable":true,"type":"object"},"Args":{"description":"Arguments to the command that the container running the workload executes.","type":"string","minLength":1,"maxLength":10000,"nullable":true,"pattern":".*"},"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","nullable":true},"BackoffLimit":{"description":"Specifies the number of retries before marking a workload as failed (not applicable to Inference workloads). The default value is 6.","format":"int64","type":"integer","nullable":true},"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":".*"},"Command":{"description":"A command to the server as the entry point of the container running the workload.","type":"string","minLength":1,"maxLength":10000,"nullable":true,"pattern":".*"},"SupersetDefaultsAllOfCompute":{"title":"SupersetDefaultsAllOfCompute","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/ExtendedResourcesDefaults"},"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"},"CpuCoreLimit":{"description":"Limitations on the number of CPUs consumed by the workload (0.5, 1, .etc). The system guarantees that this workload will not be able to consume more than this amount of CPUs.","format":"double","type":"number","nullable":true,"minimum":0},"CpuCoreRequest":{"description":"CPU units to allocate for the created workload (0.5, 1, .etc). The workload will receive at least this amount of CPU. Note that the workload will not be scheduled unless the system can guarantee this amount of CPUs to the workload.","format":"double","type":"number","nullable":true,"minimum":0},"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]*)$","maxLength":63,"nullable":true},"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","pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$","maxLength":63,"nullable":true},"ExtendedResourcesDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/ExtendedResource"},"instances":{"$ref":"#/components/schemas/ExtendedResources"}},"nullable":true,"type":"object"},"ExtendedResource":{"description":"Quantity of an extended resource.","properties":{"resource":{"description":"The name of the extended resource (mandatory)","type":"string","minLength":1,"maxLength":253,"nullable":true,"pattern":".*"},"quantity":{"description":"The requested quantity for the resource.","type":"string","minLength":1,"maxLength":63,"nullable":true,"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","nullable":true}},"nullable":true,"type":"object"},"ExtendedResources":{"description":"Extended resources and their quantity.","type":"array","items":{"$ref":"#/components/schemas/ExtendedResource"},"maxItems":1000,"nullable":true},"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","format":"int32","nullable":true,"minimum":0},"GpuMemoryLimit":{"description":"Limitation on the memory consumed by the workload, per GPU device. The system guarantees The gpuMemoryLimit must be no less than gpuMemoryRequest.","type":"string","pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$","maxLength":63,"nullable":true},"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]*)$","maxLength":63,"nullable":true},"GpuPortionLimit":{"description":"Limitations on the portion consumed by the workload, per GPU device. The system guarantees The gpuPotionLimit must be no less than the gpuPortionRequest.","type":"number","format":"double","nullable":true,"minimum":0},"GpuPortionRequest":{"description":"Required if and only if gpuRequestType is portion. States the portion of the GPU to allocate for the created workload, per GPU device, between 0 and 1. The default is no allocated GPUs.","type":"number","format":"double","nullable":true,"minimum":0},"GpuRequestType":{"description":"Sets the unit type for GPU resources requests. Stated in terms of portion or memory. Sets the unit type for other GPU request fields. If `gpuDevicesRequest > 1`, only `portion` is supported. If `gpuDeviceRequest = 1`, the request type can be stated as `portion` or `memory`.","type":"string","minLength":1,"enum":["portion","memory"],"nullable":true},"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","nullable":true},"CreateHomeDir":{"description":"When set to `true`, creates a home directory for the container.","type":"boolean","nullable":true},"EnvironmentVariablesDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/EnvironmentVariables"}},"nullable":true,"type":"object"},"EnvironmentVariables":{"description":"Set of environment variables to populate into the container running the workload.","type":"array","items":{"$ref":"#/components/schemas/EnvironmentVariable"},"maxItems":1000,"nullable":true},"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,"maxLength":63,"nullable":true,"pattern":".*"},"value":{"description":"The value of the environment variable. (mutually exclusive with secret, userCredential, configMap and podFieldRef)","type":"string","maxLength":10000,"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","nullable":true},"description":{"description":"Description of the environment variable.","type":"string","maxLength":250,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"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,"maxLength":253,"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,"maxLength":63,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"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","minLength":1,"maxLength":253,"nullable":true,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$"},"key":{"description":"The key in the config-map resource. (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"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","minLength":1,"maxLength":10000,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"EnvironmentVariableUserCredential":{"description":"Defines a reference to a user-created credential and a specific key within that credential whose value will populate the environment variable. User credentials can only be accessed by the user who created them.","properties":{"name":{"description":"The name of the user credential.  (mandatory)","type":"string","minLength":1,"maxLength":253,"nullable":true},"key":{"description":"The key in the user credential resource. (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true}},"nullable":true,"type":"object"},"ExposedUrlsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/ExposedUrl"},"instances":{"$ref":"#/components/schemas/ExposedUrls"}},"nullable":true,"type":"object"},"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","nullable":true},"url":{"$ref":"#/components/schemas/Url"},"authorizationType":{"$ref":"#/components/schemas/AuthorizationType"},"authorizedUsers":{"$ref":"#/components/schemas/AuthorizedUsers"},"authorizedGroups":{"$ref":"#/components/schemas/AuthorizedGroups"},"toolType":{"description":"The tool type that runs on this container port.","type":"string","nullable":true,"pattern":".*"},"toolName":{"description":"A name describing the tool that runs on this url.","type":"string","nullable":true,"pattern":".*","maxLength":253},"name":{"description":"Unique name to identify the instance. primarily used for policy locked rules.","type":"string","minLength":1,"maxLength":253,"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","nullable":true}},"nullable":true,"type":"object"},"Url":{"description":"The URL for connecting to the container port. If not specified, the URL will be auto-generated by the system.","type":"string","maxLength":2048,"pattern":".*","nullable":true},"AuthorizationType":{"type":"string","enum":["authenticatedUsers","authorizedUsers","authorizedGroups"],"description":"Specifies who can access the connection URL:\n- `authenticatedUsers`: Any authenticated user or service account can access the URL; the authorizedUsers and authorizedGroups fields are ignored.\n- `authorizedUsers`: Only users listed in the authorizedUsers field are allowed to access the URL; the authorizedGroups field is ignored.\n- `authorizedGroups`: Only members of user groups listed in the authorizedGroups field are allowed to access the URL; the authorizedUsers field is ignored.\nIf 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.\n","nullable":true},"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","maxLength":253,"pattern":".*"},"maxItems":1000,"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","maxLength":253,"pattern":".*"},"maxItems":1000,"nullable":true},"ExposedUrls":{"description":"Set of container ports that the workload exposes via URLs.","type":"array","items":{"$ref":"#/components/schemas/ExposedUrl"},"maxItems":1000,"nullable":true},"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","minLength":1,"maxLength":253,"nullable":true,"pattern":".*"},"ImagePullPolicy":{"description":"Image pull policy. Defaults to `Always` if `:latest` tag is specified, otherwise it is `IfNotPresent`.","type":"string","minLength":1,"enum":["Always","Never","IfNotPresent"],"nullable":true},"ImagePullSecretsDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/ImagePullSecrets"}},"nullable":true,"type":"object"},"ImagePullSecrets":{"description":"A list of references to Kubernetes secrets in the same namespace used for pulling container images.","type":"array","items":{"$ref":"#/components/schemas/ImagePullSecret"},"maxItems":1000,"nullable":true},"ImagePullSecret":{"description":"A reference to a secret in the same namespace used to pull container images.","properties":{"name":{"type":"string","description":"The name of the Kubernetes secret containing the image pull credentials.","pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$","maxLength":253},"userCredential":{"type":"boolean","description":"Indicates whether the secret is a user credential. Set to true if the secret was created by the user and is only accessible by them.","nullable":true},"exclude":{"description":"Use 'true' in case the secret is defined in defaults of the policy, and you wish to exclude it from the workload.","type":"boolean","default":false,"nullable":true}},"nullable":true,"type":"object"},"LabelsDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/Labels"}},"nullable":true,"type":"object"},"Labels":{"description":"Set of labels to populate into the container running the workload.","type":"array","items":{"$ref":"#/components/schemas/Label"},"maxItems":1000,"nullable":true},"Label":{"description":"Label details to be populated into the container.","properties":{"name":{"description":"The name of the label (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":".*"},"value":{"description":"The value of the label.","type":"string","nullable":true,"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","nullable":true}},"nullable":true,"type":"object"},"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"},"maxItems":1000}},"nullable":true},"NodeSelectorTerm":{"type":"object","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"},"maxItems":1000}},"nullable":true},"MatchExpression":{"type":"object","description":"A selector that contains values, a key, and an operator that relates the key and values.","properties":{"key":{"description":"The label key that the selector applies to (mandatory).","type":"string","pattern":".*","maxLength":63},"operator":{"$ref":"#/components/schemas/MatchExpressionOperator"},"values":{"description":"An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer.","type":"array","items":{"type":"string","maxLength":10000,"pattern":".*"},"maxItems":1000}},"required":["key","operator"],"nullable":true},"MatchExpressionOperator":{"description":"Represents a key's relationship to a set of values (mandatory).","type":"string","enum":["In","NotIn","Exists","DoesNotExist","Gt","Lt"]},"NodePools":{"description":"A prioritized list of node pools for the scheduler to run the workload on. The scheduler will always try to use the first node pool before moving to the next one if the first is not available.","type":"array","items":{"type":"string","maxLength":63,"pattern":".*"},"maxItems":1000,"nullable":true},"NodeType2":{"deprecated":true,"description":"Deprecated: use a workload policy node selector to target node types instead. 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","minLength":1,"nullable":true,"pattern":".*"},"PodAffinity":{"description":"Pod affinity scheduling rules (e.g. co-locate this workload in the same node, zone, etc. as some other workloads).","type":"object","properties":{"type":{"$ref":"#/components/schemas/PodAffinityType"},"key":{"description":"The label key to use. (mandatory)","type":"string","nullable":true,"pattern":".*","maxLength":63}},"nullable":true},"PodAffinityType":{"description":"The affinity type, required or preferred. (mandatory)","type":"string","enum":["Required","Preferred"],"nullable":true},"PortsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/Port"},"instances":{"$ref":"#/components/schemas/Ports"}},"nullable":true,"type":"object"},"Port":{"description":"A port for accessing the workload.","properties":{"container":{"description":"The port that the container running the workload exposes. (mandatory)","type":"integer","format":"int32","minimum":1,"maximum":65535,"nullable":true},"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","format":"int32","nullable":true},"toolType":{"description":"The tool type that runs on this port.","type":"string","nullable":true,"pattern":".*","maxLength":63},"toolName":{"description":"A name describing the tool that runs on this port.","type":"string","nullable":true,"pattern":".*","maxLength":253},"name":{"description":"Unique name to identify the instance. primarily used for policy locked rules.","type":"string","minLength":1,"maxLength":63,"nullable":true,"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","default":false,"nullable":true}},"nullable":true,"type":"object"},"PortServiceType":{"description":"The service type of the port (mandatory).","type":"string","enum":["LoadBalancer","NodePort","ClusterIP"],"nullable":true},"Ports":{"description":"Set of container ports that the workload exposes.","type":"array","items":{"$ref":"#/components/schemas/Port"},"maxItems":1000,"nullable":true},"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","minLength":1,"enum":["preemptible","non-preemptible"],"nullable":true},"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","nullable":true,"pattern":".*"},"Probes":{"description":"Probes are used to determine if the container is healthy and ready to accept traffic.","type":"object","properties":{"readiness":{"$ref":"#/components/schemas/Probe"}},"nullable":true},"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},"ProbeHandler":{"description":"The action taken to determine the health of the container. (mandatory)","type":"object","properties":{"httpGet":{"description":"An action based on HTTP Get requests.","type":"object","properties":{"path":{"description":"Path to access on the HTTP server, defaults to /.","type":"string","pattern":"^(\\x2F[a-zA-Z0-9\\-_.\\x2F]*)?$","nullable":true,"maxLength":2048},"port":{"description":"Number of the port to access on the container.","type":"integer","format":"int32","minimum":1,"maximum":65535,"nullable":true},"host":{"description":"Host name to connect to, defaults to the pod IP.","type":"string","format":"hostname","nullable":true,"pattern":".*","maxLength":253},"scheme":{"$ref":"#/components/schemas/ProbeHandlerScheme"}}}},"nullable":true},"ProbeHandlerScheme":{"description":"Scheme to use for connecting to the host, defaults to HTTP.","type":"string","enum":["HTTP","HTTPS"],"nullable":true},"RelatedUrlsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/RelatedUrl"},"instances":{"$ref":"#/components/schemas/RelatedUrls"}},"nullable":true,"type":"object"},"RelatedUrl":{"description":"A URL that is related to the workload. For example, a URL to an external server providing statistics or logging about the workload.","properties":{"url":{"description":"The URL for connecting an external service related to the workload. (mandatory)","type":"string","nullable":true,"pattern":".*","maxLength":2048},"type":{"description":"The type of service that the url provides. For example, wandb (Weights & Biases). (mandatory)","type":"string","nullable":true,"pattern":".*","maxLength":63},"name":{"description":"Unique name to identify the instance. primarily used for policy locked rules.","type":"string","nullable":true,"pattern":".*","maxLength":63},"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,"nullable":true}},"nullable":true,"type":"object"},"RelatedUrls":{"description":"Set of URLs that are related to the workload.","type":"array","items":{"$ref":"#/components/schemas/RelatedUrl"},"maxItems":1000,"nullable":true},"RestartPolicy":{"description":"Specify the restart policy of the workload pods. Default is empty, which is determine by the framework default.\nThe `Always` value is deprecated; use `OnFailure` or `Never` instead.\n","type":"string","minLength":1,"enum":["Always","Never","OnFailure"],"nullable":true},"SupersetDefaultsAllOfSecurity":{"title":"SupersetDefaultsAllOfSecurity","nullable":true,"properties":{"allowPrivilegeEscalation":{"$ref":"#/components/schemas/AllowPrivilegeEscalation"},"capabilities":{"$ref":"#/components/schemas/Capabilities"},"hostIpc":{"$ref":"#/components/schemas/HostIpc"},"hostNetwork":{"$ref":"#/components/schemas/HostNetwork"},"readOnlyRootFilesystem":{"$ref":"#/components/schemas/ReadOnlyRootFileSystem"},"runAsGid":{"$ref":"#/components/schemas/RunAsGid"},"runAsNonRoot":{"$ref":"#/components/schemas/RunAsNonRoot"},"runAsUid":{"$ref":"#/components/schemas/RunAsUid"},"seccompProfileType":{"$ref":"#/components/schemas/SeccompProfileType"},"supplementalGroups":{"$ref":"#/components/schemas/SupplementalGroups"},"uidGidSource":{"$ref":"#/components/schemas/UidGidSource"}},"type":"object"},"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://run-ai-docs.nvidia.com/self-hosted/2.26/infrastructure-setup/advanced-setup/container-access/user-identity-in-containers","type":"boolean","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"},"nullable":true},"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"]},"HostIpc":{"description":"Whether to enable host IPC. Defaults to false.","type":"boolean","nullable":true},"HostNetwork":{"description":"Whether to enable host networking. Default to false.","type":"boolean","nullable":true},"ReadOnlyRootFileSystem":{"description":"If true, mounts the container's root filesystem as read-only.","type":"boolean","nullable":true},"RunAsGid":{"description":"The group id to run the entrypoint of the container which executes the workspace. Default to the value specified in the environment asset `runAsGid` field (optional). Use only when the source uid/gid of the environment asset is not `fromTheImage`, and `overrideUidGidInWorkspace` is enabled.","type":"integer","format":"int64","nullable":true},"RunAsNonRoot":{"description":"Force the container to run as a non-root user.","type":"boolean","nullable":true},"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","format":"int64","nullable":true},"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","enum":["RuntimeDefault","Unconfined","Localhost"],"nullable":true},"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","nullable":true,"pattern":".*"},"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://run-ai-docs.nvidia.com/self-hosted/2.26/infrastructure-setup/advanced-setup/container-access/user-identity-in-containers).","type":"string","enum":["fromTheImage","fromIdpToken","custom"],"nullable":true},"Stdin":{"description":"Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF","type":"boolean","nullable":true},"ConfigMapsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/ConfigMapInstance"},"instances":{"$ref":"#/components/schemas/ConfigMapItems"}},"nullable":true,"type":"object"},"ConfigMapInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/ConfigMap"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"StorageInstanceName":{"properties":{"name":{"description":"unique name to identify the instance. primarily used for policy locked rules.","type":"string","minLength":1,"maxLength":63,"nullable":true}},"nullable":true,"type":"object"},"ConfigMap":{"properties":{"configMap":{"description":"The name of the ConfigMap resource. (mandatory)","type":"string","minLength":1,"maxLength":253,"nullable":true,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$"},"mountPath":{"description":"Local path within the workload to which the ConfigMap will be mapped to. (mandatory)","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"subPath":{"description":"Path within the volume from which the container's volume should be mounted.","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"defaultMode":{"$ref":"#/components/schemas/DefaultMode"}},"nullable":true,"type":"object"},"DefaultMode":{"type":"string","description":"File permission mode in octal string format. This value must be a 4-digit octal number, representing the default file mode when mounting a Secret or ConfigMap as a volume.\n","minLength":4,"maxLength":4,"pattern":"0[0-7]{3}","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,"nullable":true}},"type":"object","nullable":true},"ConfigMapItems":{"description":"Set of config map volumes to use in the workload","type":"array","items":{"$ref":"#/components/schemas/ConfigMapInstance"},"maxItems":1000,"nullable":true},"DataVolumesDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/DataVolumeInstance"},"instances":{"$ref":"#/components/schemas/DataVolumeItems"}},"nullable":true,"type":"object"},"DataVolumeInstance":{"allOf":[{"$ref":"#/components/schemas/DataVolume"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"DataVolume":{"properties":{"id":{"description":"The unique identifier of the data volume. (mandatory)","type":"string","format":"uuid","nullable":true},"mountPath":{"description":"The path where the data volume will be mounted. (mandatory)","type":"string","nullable":true,"pattern":".*","maxLength":4096}},"nullable":true,"type":"object"},"DataVolumeItems":{"description":"Set of data volumes to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/DataVolumeInstance"},"maxItems":1000,"nullable":true},"EmptyDirsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/EmptyDirInstance"},"instances":{"$ref":"#/components/schemas/EmptyDirItems"}},"nullable":true,"type":"object"},"EmptyDirInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/EmptyDir"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"EmptyDir":{"properties":{"path":{"description":"Local path within the workload to which the EmptyDir volume will be mapped. (mandatory)","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"medium":{"description":"The type of storage medium for the volume. Use \"Memory\" for memory-backed storage, or leave empty for disk-backed storage.","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":".*"},"sizeLimit":{"description":"The total amount of local storage or memory required for the emptyDir volume. Specify using Kubernetes quantity format (e.g., 1G, 500Mi).","type":"string","maxLength":63,"pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$","nullable":true}},"nullable":true,"type":"object"},"EmptyDirItems":{"description":"A list of emptyDir volumes to mount in the workload.","type":"array","items":{"$ref":"#/components/schemas/EmptyDirInstance"},"maxItems":1000,"nullable":true},"GitsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/GitInstance"},"instances":{"$ref":"#/components/schemas/GitItems"}},"nullable":true,"type":"object"},"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"},"GitCommon":{"properties":{"repository":{"description":"URL to a remote Git repository. The content of this repository will be mapped to the container running the workload. (mandatory)","type":"string","minLength":1,"maxLength":2048,"nullable":true},"branch":{"description":"Specific branch to synchronize the repository from.","type":"string","minLength":1,"maxLength":63,"nullable":true},"revision":{"description":"Specific revision to synchronize the repository from.","type":"string","minLength":1,"maxLength":63,"nullable":true},"path":{"description":"Local path within the workload to which the Git repository will be mapped (mandatory).","type":"string","minLength":1,"maxLength":4096,"nullable":true}},"nullable":true,"type":"object"},"GitPassword":{"properties":{"passwordSecret":{"description":"Secret containing the credentials of the repository (needed for non public repository which requires authentication). (deprecated)","type":"string","minLength":1,"nullable":true},"secretKeyOfUser":{"description":"The key to use for loading the user name from the secret. The default is `User`. (deprecated)","type":"string","minLength":1,"nullable":true},"secretKeyOfPassword":{"description":"The key to use for loading the password from the secret. The default is `Password`. (deprecated)","type":"string","minLength":1,"nullable":true}},"nullable":true,"type":"object"},"GitSecretRef":{"properties":{"name":{"description":"Name of the Secret containing the credentials of the repository.","type":"string","minLength":1},"authenticationMethod":{"$ref":"#/components/schemas/GitAuthenticationMethod"},"secretKeyOfUser":{"description":"The key in the Secret that contains the Git username (used for `password` authentication).","type":"string","minLength":1,"nullable":true},"secretKeyOfPassword":{"description":"The key in the Secret that contains the Git password (used for `password` authentication).","type":"string","minLength":1,"nullable":true}},"nullable":true,"type":"object"},"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,"enum":["password","ssh-key"]},"GitItems":{"description":"Set of git repositories to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/GitInstance"},"maxItems":1000,"nullable":true},"HostPathsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/HostPathInstance"},"instances":{"$ref":"#/components/schemas/HostPathItems"}},"nullable":true,"type":"object"},"HostPathInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/HostPath"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"HostPath":{"properties":{"path":{"description":"Local path within the controller to which the host volume will be mapped. (mandatory)","type":"string","minLength":1,"maxLength":4096,"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,"maxLength":4096,"nullable":true,"pattern":".*"},"mountPropagation":{"$ref":"#/components/schemas/HostPathMountPropagation"}},"nullable":true,"type":"object"},"HostPathMountPropagation":{"description":"Share this volumes mount with other containers. If set to HostToContainer, this volume mount will receive all subsequent mounts that are mounted to this volume or any of its subdirectories. In case of multiple hostPath entries, this field should have the same value for all of them.","type":"string","enum":["None","HostToContainer"],"nullable":true},"HostPathItems":{"description":"Set of host paths to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/HostPathInstance"},"maxItems":1000,"nullable":true},"NfssDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/NfsInstance"},"instances":{"$ref":"#/components/schemas/NfsItems"}},"nullable":true,"type":"object"},"NfsInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/Nfs"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"Nfs":{"properties":{"path":{"description":"Path that is exported by the NFS server (mandatory). For more information, see [NFS](https://kubernetes.io/docs/concepts/storage/volumes#nfs).","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"readOnly":{"description":"Force the NFS export to be mounted with read-only permissions.","type":"boolean","default":true,"nullable":true},"server":{"description":"The hostname or IP address of the NFS server. (mandatory)","type":"string","minLength":1,"maxLength":253,"nullable":true,"pattern":".*"},"mountPath":{"description":"The path that the NFS volume will be mounted to when in use. (mandatory)","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"NfsItems":{"description":"Set of nfs volumes to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/NfsInstance"},"maxItems":1000,"nullable":true},"PvcsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/PvcInstance"},"instances":{"$ref":"#/components/schemas/PvcItems"}},"nullable":true,"type":"object"},"PvcInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/Pvc"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"Pvc":{"allOf":[{"$ref":"#/components/schemas/PvcFieldsUpdatable"},{"$ref":"#/components/schemas/PvcFieldsNonUpdatable"}]},"PvcFieldsUpdatable":{"properties":{"path":{"description":"Local path within the workload to which the PVC bucket will be mapped. (mandatory)","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"PvcFieldsNonUpdatable":{"properties":{"existingPvc":{"description":"Verify existing PVC. PVC is assumed to exist when set to `true`. If set to `false`, the PVC will be created, if it does not exist.","type":"boolean","default":false,"nullable":true},"claimName":{"description":"Name for the PVC. Allow referencing it across workloads. If not provided, a name based on the workload name and scope will be auto-generated.","type":"string","minLength":1,"maxLength":63,"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,"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,"nullable":true}},"nullable":true,"type":"object"},"ClaimInfo":{"description":"Claim information for the newly created PVC. The information should not be provided when attempting to use existing PVC.","properties":{"size":{"$ref":"#/components/schemas/PvcClaimSize"},"storageClass":{"description":"Storage class name to associate with the PVC. This parameter may be omitted if there is a single storage class in the system, or you are using the default storage class. For more information, see [Storage class](https://kubernetes.io/docs/concepts/storage/storage-classes).","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$"},"accessModes":{"$ref":"#/components/schemas/PvcAccessModes"},"volumeMode":{"$ref":"#/components/schemas/PvcVolumeMode"},"addedAttrValues":{"$ref":"#/components/schemas/PvcAddedAttrValues"}},"nullable":true,"type":"object"},"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]*)$","maxLength":63,"nullable":true},"PvcAccessModes":{"description":"Default access mode(s) applied to newly created PVCs unless explicitly overridden.","properties":{"readWriteOnce":{"description":"Mount the volume as read/write by a single node.","type":"boolean","default":true,"nullable":true},"readOnlyMany":{"description":"Mount the volume as read-only by many nodes.","type":"boolean","default":false,"nullable":true},"readWriteMany":{"description":"Mount the volume as read/write by many nodes.","type":"boolean","default":false,"nullable":true}},"nullable":true,"type":"object"},"PvcVolumeMode":{"description":"Default volume mode for the PVC. Choose between Filesystem (default) or Block.","type":"string","enum":["Filesystem","Block"],"nullable":true},"PvcAddedAttrValues":{"description":"an optional array of key-values pairs that are written as annotations on the created PVC. the allowed attributes are determined according to the storage class configuration (see k8s-objects-tracker for further info).","type":"array","items":{"$ref":"#/components/schemas/PvcAddedAttrValue"},"maxItems":1000},"PvcAddedAttrValue":{"type":"object","required":["key"],"properties":{"key":{"type":"string","minLength":1,"maxLength":63,"pattern":"^([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]$"},"value":{"type":"string","pattern":".*","maxLength":10000}}},"PvcItems":{"description":"Set of pvc persistent volume claims to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/PvcInstance"},"maxItems":1000,"nullable":true},"S3sDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/S3Instance"},"instances":{"$ref":"#/components/schemas/S3Items"}},"nullable":true,"type":"object"},"S3Instance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/S3Common"},{"$ref":"#/components/schemas/S3AccessKey"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"S3Common":{"properties":{"bucket":{"description":"The name of the bucket. (mandatory)","type":"string","minLength":1,"nullable":true},"path":{"description":"Local path within the workload to which the S3 bucket will be mapped. (mandatory)","type":"string","minLength":1,"nullable":true},"url":{"description":"The url of the S3 service provider. The default is the URL of the Amazon AWS S3 service.","type":"string","minLength":1,"nullable":true}},"nullable":true,"type":"object"},"S3AccessKey":{"properties":{"accessKeySecret":{"description":"Name of the secret containing credentials of the S3 bucket. Used for private S3 buckets.","type":"string","minLength":1,"nullable":true,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$"},"secretKeyOfAccessKeyId":{"description":"The key to use for loading the access key id from the secret. The default is `AccessKeyId`. For more information, see [Credentials access keys](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html).","type":"string","minLength":1,"nullable":true,"pattern":".*"},"secretKeyOfSecretKey":{"description":"The key to use for loading the secret key from the secret. The default is `SecretKey`. For more information, see [Credentials access keys](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html).","type":"string","minLength":1,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"S3Items":{"description":"Set of s3 buckets to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/S3Instance"},"nullable":true},"SecretsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/SecretInstance"},"instances":{"$ref":"#/components/schemas/SecretItems"}},"nullable":true,"type":"object"},"SecretInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/Secret"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"Secret":{"allOf":[{"$ref":"#/components/schemas/SecretFieldsUpdatable"},{"$ref":"#/components/schemas/SecretFieldsNonUpdatable"}]},"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"},"SecretFieldsNonUpdatable":{"properties":{"secret":{"description":"The name of the Secret resource. (mandatory)","type":"string","minLength":1,"nullable":true}},"nullable":true,"type":"object"},"SecretItems":{"description":"Set of secret volumes to use in the workload","type":"array","items":{"$ref":"#/components/schemas/SecretInstance"},"nullable":true},"TerminateAfterPreemption":{"description":"Indicates if the job should be terminated by the system after it has been preempted.","type":"boolean","nullable":true},"TerminationGracePeriod":{"description":"Duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down).","format":"int64","type":"integer","minimum":0,"nullable":true},"TolerationsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/Toleration"},"instances":{"$ref":"#/components/schemas/Tolerations"}},"nullable":true,"type":"object"},"Toleration":{"description":"Toleration details.","properties":{"name":{"description":"The name of the toleration.","type":"string","minLength":1,"maxLength":253,"nullable":true,"pattern":".*"},"operator":{"$ref":"#/components/schemas/TolerationOperator"},"key":{"description":"The taint key that the toleration applies to. (mandatory)","type":"string","maxLength":253,"nullable":true,"pattern":".*"},"value":{"description":"The taint value the toleration matches to. Mandatory if operator is Exists, forbidden otherwise.","type":"string","maxLength":10000,"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","nullable":true}},"nullable":true,"type":"object"},"TolerationOperator":{"description":"A key's relationship to the value. Equal uses key and value. Exists is equivalent to wildcard for value, so that a workload can tolerate all taints of a particular category. (mandatory)","type":"string","enum":["Equal","Exists"],"nullable":true},"TolerationEffect":{"description":"The taint effect to match. (mandatory)","type":"string","enum":["NoSchedule","NoExecute","PreferNoSchedule","Any"],"nullable":true},"Tolerations":{"description":"Set of tolerations to apply to the workload.","type":"array","items":{"$ref":"#/components/schemas/Toleration"},"maxItems":1000,"nullable":true},"Tty":{"description":"Whether this container should allocate a TTY for itself, also requires 'stdin' to be true.","type":"boolean","nullable":true},"WorkingDir":{"description":"Container's working directory. If not specified, the container runtime default will be used. This may be configured in the container image.","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"CleanPodPolicy":{"description":"The policy describes how to deal with pods when the job is finished.","type":"string","enum":["None","All","Running"],"nullable":true},"DistributedFramework":{"description":"The distributed training framework used in the workload.\nNote: The TF, XGBoost and JAX frameworks are deprecated and will be removed in a future release.\n","type":"string","enum":["MPI","PyTorch","TF","XGBoost","JAX"],"nullable":true},"MaxReplicas":{"description":"the upper limit for the number of worker pods that can be set by the autoscaler. Cannot be smaller than MinReplicas. (applicable only for PyTorch)","type":"integer","nullable":true},"MinReplicas":{"description":"the lower limit for the number of worker pods to which the training job can scale down. (applicable only for PyTorch)","type":"integer","nullable":true},"MpiLauncherCreationPolicy":{"description":"Define whether the MPI Launcher is created in parallel with the workers, or if its creation is postponed until all workers are in  Ready state. This prevents failures when the launcher attempts to connect to workers that are not yet ready.","type":"string","enum":["AtStartup","WaitForWorkersReady"],"nullable":true},"NumWorkers":{"description":"the number of workers that will be allocated for running the workload.","type":"integer","minimum":1,"nullable":true},"SlotsPerWorker":{"description":"Specifies the number of slots per worker used in hostfile. Defaults to 1. (applicable only for MPI)","type":"integer","minimum":1,"nullable":true,"default":1},"SshAuthMountPath":{"description":"Specifies the directory where SSH keys are mounted. (applicable only for MPI)","type":"string","nullable":true,"default":"/root/.ssh","pattern":".*"},"DistributedPolicyRulesV2":{"nullable":true,"properties":{"master":{"$ref":"#/components/schemas/ReplicaRulesV2"},"worker":{"allOf":[{"$ref":"#/components/schemas/ReplicaRulesV2"},{"nullable":true,"properties":{"cleanPodPolicy":{"$ref":"#/components/schemas/CleanPodPolicyRules"},"distributedFramework":{"$ref":"#/components/schemas/DistributedFrameworkRules"},"maxReplicas":{"$ref":"#/components/schemas/IntegerRules"},"minReplicas":{"$ref":"#/components/schemas/IntegerRules"},"mpiLauncherCreationPolicy":{"$ref":"#/components/schemas/MpiLauncherCreationPolicyRules"},"numWorkers":{"$ref":"#/components/schemas/IntegerRules"},"slotsPerWorker":{"$ref":"#/components/schemas/IntegerRules"},"sshAuthMountPath":{"$ref":"#/components/schemas/StringRules"}},"type":"object"}],"nullable":true,"type":"object"}},"type":"object"},"ReplicaRulesV2":{"nullable":true,"properties":{"annotations":{"$ref":"#/components/schemas/InstancesRules"},"args":{"$ref":"#/components/schemas/StringRules"},"autoDeletionTimeAfterCompletionSeconds":{"$ref":"#/components/schemas/IntegerRules"},"backoffLimit":{"$ref":"#/components/schemas/IntegerRules"},"category":{"$ref":"#/components/schemas/StringRules"},"command":{"$ref":"#/components/schemas/StringRules"},"compute":{"$ref":"#/components/schemas/SupersetRulesAllOfCompute"},"createHomeDir":{"$ref":"#/components/schemas/BooleanRules"},"environmentVariables":{"$ref":"#/components/schemas/InstancesRules"},"exposedUrls":{"$ref":"#/components/schemas/ExposedUrlsRules"},"image":{"$ref":"#/components/schemas/StringRules"},"imagePullPolicy":{"$ref":"#/components/schemas/ImagePullPolicyRules"},"imagePullSecrets":{"$ref":"#/components/schemas/ImagePullSecretsRules"},"labels":{"$ref":"#/components/schemas/InstancesRules"},"nodeAffinityRequired":{"$ref":"#/components/schemas/ArbitraryRules"},"nodePools":{"$ref":"#/components/schemas/ArrayRules"},"nodeType":{"$ref":"#/components/schemas/StringRules"},"podAffinity":{"$ref":"#/components/schemas/PodAffinityRules"},"ports":{"$ref":"#/components/schemas/PortsRules"},"preemptibility":{"$ref":"#/components/schemas/PreemptibilityRules"},"priorityClass":{"$ref":"#/components/schemas/StringRules"},"probes":{"$ref":"#/components/schemas/ProbesRules"},"relatedUrls":{"$ref":"#/components/schemas/RelatedUrlsRules"},"restartPolicy":{"$ref":"#/components/schemas/RestartPolicyRule"},"security":{"$ref":"#/components/schemas/SupersetRulesAllOfSecurity"},"stdin":{"$ref":"#/components/schemas/BooleanRules"},"storage":{"nullable":true,"properties":{"configMapVolume":{"$ref":"#/components/schemas/ConfigMapsRules"},"dataVolume":{"$ref":"#/components/schemas/DataVolumesRules"},"emptyDirVolume":{"$ref":"#/components/schemas/EmptyDirsRules"},"git":{"$ref":"#/components/schemas/GitsRules"},"hostPath":{"$ref":"#/components/schemas/HostPathsRules"},"nfs":{"$ref":"#/components/schemas/NfssRules"},"pvc":{"$ref":"#/components/schemas/PvcsRules"},"s3":{"$ref":"#/components/schemas/S3sRules"},"secretVolume":{"$ref":"#/components/schemas/SecretsRules"}},"type":"object"},"terminateAfterPreemption":{"$ref":"#/components/schemas/BooleanRules"},"terminationGracePeriodSeconds":{"$ref":"#/components/schemas/IntegerRules"},"tolerations":{"$ref":"#/components/schemas/TolerationsRules"},"tty":{"$ref":"#/components/schemas/BooleanRules"},"workingDir":{"$ref":"#/components/schemas/StringRules"}},"type":"object"},"InstancesRules":{"properties":{"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ItemRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"canAdd":{"description":"Whether it is permitted to add items. Default to true.","type":"boolean","nullable":true},"locked":{"description":"Set of keys for items that are \"locked\", i.e. cannot be removed or deleted.","type":"array","items":{"type":"string"}}},"nullable":true,"type":"object"},"SourceOfRule":{"description":"This field is used by the system along with effective rules, in order to specify the org unit from which this effective rule has been derived. It should be left empty when sending apply policy requests.","required":["scope"],"properties":{"scope":{"$ref":"#/components/schemas/ScopeType"},"projectId":{"$ref":"#/components/schemas/ProjectIdOptional"},"departmentId":{"$ref":"#/components/schemas/DepartmentIdOptional"},"clusterId":{"$ref":"#/components/schemas/ClusterIdOptional"},"isFallback":{"description":"source of this rule is the fallback policy","type":"boolean"}},"nullable":true,"type":"object"},"StringRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/StringRulesOptions"}],"nullable":true,"type":"object"},"StringRulesCommon":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory, default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable, default to true","type":"boolean","nullable":true},"blocked":{"description":"Blocks the field to prevent workloads from specifying any value for it.","type":"boolean","nullable":true}}},"StringRulesOptions":{"properties":{"options":{"description":"Set of options that the value of the field must be chosen from.","type":"array","items":{"$ref":"#/components/schemas/StringOption"},"nullable":true}}},"StringOption":{"description":"One of the values that the field can be assigned to, when options police is applied on the field.","required":["value"],"properties":{"value":{"description":"The value that the field should hold","type":"string","pattern":".*"},"displayed":{"description":"Textual description of the value. to be used by user interface applications.","type":"string","nullable":true,"pattern":".*"}}},"IntegerRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory. default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"max":{"description":"The maximum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"step":{"description":"The minimal difference between two values the field can be assigned to. For example, min=2, max=10, step=2 implies that the values the field can hold are 2, 4, 6, 8 and 10.","type":"integer","format":"int32","nullable":true},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"DefaultFromRule":{"properties":{"field":{"description":"The default of this field is taken from another field, with optional factor. The specified field must belong to the same workload section (compute, security, etc). For itemized field, the value of the field will be taken from the same instance.","type":"string","nullable":true,"pattern":".*"},"factor":{"description":"Multiple the value of the fromField by this factor to get the value for this field For example, if factor is 2 and defaultFrom field has value of 8, the calculated default will be determined to be 16.","type":"number","format":"double","nullable":true,"default":1}},"nullable":true,"type":"object"},"SupersetRulesAllOfCompute":{"title":"SupersetRulesAllOfCompute","nullable":true,"properties":{"cpuCoreLimit":{"$ref":"#/components/schemas/NumberRules"},"cpuCoreRequest":{"$ref":"#/components/schemas/NumberRules"},"cpuMemoryLimit":{"$ref":"#/components/schemas/QuantityRules"},"cpuMemoryRequest":{"$ref":"#/components/schemas/QuantityRules"},"extendedResources":{"$ref":"#/components/schemas/ExtendedResourcesRules"},"gpuDevicesRequest":{"$ref":"#/components/schemas/IntegerRules"},"gpuMemoryLimit":{"$ref":"#/components/schemas/QuantityRules"},"gpuMemoryRequest":{"$ref":"#/components/schemas/QuantityRules"},"gpuPortionLimit":{"$ref":"#/components/schemas/NumberRules"},"gpuPortionRequest":{"$ref":"#/components/schemas/NumberRules"},"gpuRequestType":{"$ref":"#/components/schemas/GpuRequestRules"},"largeShmRequest":{"$ref":"#/components/schemas/BooleanRules"}},"type":"object"},"NumberRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory. default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"number","nullable":true},"max":{"description":"The maximum value that the field can be assigned to.","type":"number","nullable":true},"step":{"description":"The minimal difference between two values the field can be assigned to. For example, min=2, max=3, step=0.25 implies that the values the field can hold are 2, 2.25, 2.5 and 3.","type":"number","nullable":true},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"QuantityRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory, default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable, default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"string","nullable":true,"pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"},"max":{"description":"The maximum value that the field can be assigned to.","type":"string","nullable":true,"pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"ExtendedResourcesRules":{"properties":{"attributes":{"$ref":"#/components/schemas/ExtendedResourceRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ExtendedResourceRules":{"description":"Rules for the attributes of extendedResources","properties":{"quantity":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"GpuRequestRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/GpuRequestOptions"}],"nullable":true,"type":"object"},"GpuRequestOptions":{"properties":{"options":{"description":"Limit the permitted values for gpuRequest to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/GpuRequestType"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"BooleanRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory. default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true}},"nullable":true,"type":"object"},"ExposedUrlsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/ExposedUrlRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ExposedUrlRules":{"description":"Rules for the attributed of exposedUrls","properties":{"container":{"$ref":"#/components/schemas/IntegerRules"},"customUrl":{"$ref":"#/components/schemas/BooleanRules"},"url":{"$ref":"#/components/schemas/StringRules"},"authorizedUsers":{"$ref":"#/components/schemas/ArrayRules"},"authorizedGroups":{"$ref":"#/components/schemas/ArrayRules"},"toolType":{"$ref":"#/components/schemas/StringRules"},"toolName":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"ArrayRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether this array is mandatory. Mandatory array must include at least one item. default to false.","type":"boolean","nullable":true},"options":{"description":"Set of options that the value of each item of the array must be chosen from.","type":"array","items":{"$ref":"#/components/schemas/StringOption"}},"canEdit":{"description":"Whether the value of the array, as a whole, is editable. default to false.","type":"boolean","nullable":true}},"nullable":true,"type":"object"},"ImagePullPolicyRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/ImagePullPolicyOptions"}],"nullable":true,"type":"object"},"ImagePullPolicyOptions":{"properties":{"options":{"description":"Limit the permitted values for imagePullPolicy to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/ImagePullPolicy"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ImagePullSecretsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/ImagePullSecretsRulesAttributes"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ImagePullSecretsRulesAttributes":{"description":"Rules for the attributes of imagePullSecrets","properties":{"name":{"$ref":"#/components/schemas/StringRules"},"userCredentials":{"$ref":"#/components/schemas/BooleanRules"}},"nullable":true,"type":"object"},"ArbitraryRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether this arbitrary object is mandatory. default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field, as a whole, is editable. default to false.","type":"boolean","nullable":true}},"nullable":true,"type":"object"},"PodAffinityRules":{"properties":{"type":{"$ref":"#/components/schemas/PodAffinityTypeRules"},"key":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"PodAffinityTypeRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/PodAffinityTypeOptions"}],"nullable":true,"type":"object"},"PodAffinityTypeOptions":{"properties":{"options":{"type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/PodAffinityType"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"type":"object"},"PortsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/PortRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"PortRules":{"description":"Rules for port attributes","properties":{"container":{"$ref":"#/components/schemas/IntegerRules"},"serviceType":{"$ref":"#/components/schemas/PortServiceTypeRules"},"customExternalPort":{"$ref":"#/components/schemas/BooleanRules"},"external":{"$ref":"#/components/schemas/IntegerRules"},"toolType":{"$ref":"#/components/schemas/StringRules"},"toolName":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"PortServiceTypeRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/PortServiceTypeOptions"}],"nullable":true,"type":"object"},"PortServiceTypeOptions":{"properties":{"options":{"type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/PortServiceType"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"PreemptibilityRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/PreemptibilityOptions"}],"nullable":true,"type":"object"},"PreemptibilityOptions":{"properties":{"options":{"description":"Limit the permitted values for preemptibility to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/Preemptibility"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ProbesRules":{"properties":{"readiness":{"$ref":"#/components/schemas/ProbeRules"}},"nullable":true,"type":"object"},"ProbeRules":{"properties":{"initialDelaySeconds":{"$ref":"#/components/schemas/IntegerRules"},"periodSeconds":{"$ref":"#/components/schemas/IntegerRules"},"timeoutSeconds":{"$ref":"#/components/schemas/IntegerRules"},"successThreshold":{"$ref":"#/components/schemas/IntegerRules"},"failureThreshold":{"$ref":"#/components/schemas/IntegerRules"},"handler":{"$ref":"#/components/schemas/ProbeHandlerRules"}},"nullable":true,"type":"object"},"ProbeHandlerRules":{"properties":{"httpGet":{"properties":{"path":{"$ref":"#/components/schemas/StringRules"},"port":{"$ref":"#/components/schemas/IntegerRules"},"host":{"$ref":"#/components/schemas/StringRules"},"scheme":{"$ref":"#/components/schemas/StringRules"}}}},"nullable":true,"type":"object"},"RelatedUrlsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/RelatedUrlRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"RelatedUrlRules":{"description":"Rules for the attributes of relatedUrls","properties":{"url":{"$ref":"#/components/schemas/StringRules"},"type":{"$ref":"#/components/schemas/StringRules"},"name":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"RestartPolicyRule":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/RestartPolicyOptions"}],"nullable":true,"type":"object"},"RestartPolicyOptions":{"properties":{"options":{"description":"Limit the permitted values for restartPolicy to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/RestartPolicy"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"SupersetRulesAllOfSecurity":{"title":"SupersetRulesAllOfSecurity","nullable":true,"properties":{"allowPrivilegeEscalation":{"$ref":"#/components/schemas/BooleanRules"},"capabilities":{"$ref":"#/components/schemas/ArrayRules"},"hostIpc":{"$ref":"#/components/schemas/BooleanRules"},"hostNetwork":{"$ref":"#/components/schemas/BooleanRules"},"readOnlyRootFilesystem":{"$ref":"#/components/schemas/BooleanRules"},"runAsGid":{"$ref":"#/components/schemas/IntegerRulesOptional"},"runAsNonRoot":{"$ref":"#/components/schemas/BooleanRules"},"runAsUid":{"$ref":"#/components/schemas/IntegerRulesOptional"},"seccompProfileType":{"$ref":"#/components/schemas/SeccompProfileTypeRules"},"supplementalGroups":{"$ref":"#/components/schemas/StringRules"},"uidGidSource":{"$ref":"#/components/schemas/UidGidSourceRules"}},"type":"object"},"IntegerRulesOptional":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"max":{"description":"The maximum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"step":{"description":"The minimal difference between two values the field can be assigned to. For example, min=2, max=10, step=2 implies that the values the field can hold are 2, 4, 6, 8 and 10.","type":"integer","format":"int32","nullable":true},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"SeccompProfileTypeRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/SeccompProfileTypeOptions"}],"nullable":true,"type":"object"},"SeccompProfileTypeOptions":{"properties":{"options":{"description":"Limit the permitted values for secompProfileType to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/SeccompProfileType"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"UidGidSourceRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/UidGidSourceOptions"}],"nullable":true,"type":"object"},"UidGidSourceOptions":{"properties":{"options":{"description":"Limit the permitted values for uidGidSource to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/UidGidSource"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ConfigMapsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/ConfigMapRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ConfigMapRules":{"properties":{"configMap":{"$ref":"#/components/schemas/StringRules"},"mountPath":{"$ref":"#/components/schemas/StringRules"},"subPath":{"$ref":"#/components/schemas/StringRules"},"defaultMode":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"DataVolumesRules":{"properties":{"attributes":{"$ref":"#/components/schemas/DataVolumeRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"DataVolumeRules":{"properties":{"id":{"$ref":"#/components/schemas/StringRules"},"mountPath":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"EmptyDirsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/EmptyDirRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"EmptyDirRules":{"properties":{"path":{"$ref":"#/components/schemas/StringRules"},"medium":{"$ref":"#/components/schemas/StringRules"},"sizeLimit":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"GitsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/GitRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"GitRules":{"properties":{"repository":{"$ref":"#/components/schemas/StringRules"},"branch":{"$ref":"#/components/schemas/StringRules"},"revision":{"$ref":"#/components/schemas/StringRules"},"path":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"HostPathsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/HostPathRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"HostPathRules":{"properties":{"path":{"$ref":"#/components/schemas/StringRules"},"readOnly":{"$ref":"#/components/schemas/BooleanRules"},"mountPath":{"$ref":"#/components/schemas/StringRules"},"mountPropagation":{"$ref":"#/components/schemas/HostPathMountPropagationRules"}},"nullable":true,"type":"object"},"HostPathMountPropagationRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/HostPathMountPropagationOptions"}],"nullable":true,"type":"object"},"HostPathMountPropagationOptions":{"properties":{"options":{"type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/HostPathMountPropagation"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}}},"NfssRules":{"properties":{"attributes":{"$ref":"#/components/schemas/NfsRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"NfsRules":{"properties":{"path":{"$ref":"#/components/schemas/StringRules"},"readOnly":{"$ref":"#/components/schemas/BooleanRules"},"server":{"$ref":"#/components/schemas/StringRules"},"mountPath":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"PvcsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/PvcRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"PvcRules":{"properties":{"claimName":{"$ref":"#/components/schemas/StringRules"},"path":{"$ref":"#/components/schemas/StringRules"},"readOnly":{"$ref":"#/components/schemas/BooleanRules"},"claimInfo":{"$ref":"#/components/schemas/ClaimInfoRules"}},"nullable":true,"type":"object"},"ClaimInfoRules":{"properties":{"size":{"$ref":"#/components/schemas/StringRules"},"storageClass":{"$ref":"#/components/schemas/StringRules"},"accessModes":{"$ref":"#/components/schemas/PvcAccessModesRules"}},"nullable":true,"type":"object"},"PvcAccessModesRules":{"description":"Rules for access mode(s) for a newly created PVC.","properties":{"readWriteOnce":{"$ref":"#/components/schemas/BooleanRules"},"readOnlyMany":{"$ref":"#/components/schemas/BooleanRules"},"readWriteMany":{"$ref":"#/components/schemas/BooleanRules"}},"nullable":true,"type":"object"},"S3sRules":{"properties":{"attributes":{"$ref":"#/components/schemas/S3Rules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"S3Rules":{"properties":{"bucket":{"$ref":"#/components/schemas/StringRules"},"path":{"$ref":"#/components/schemas/StringRules"},"url":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"SecretsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/SecretRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"SecretRules":{"properties":{"secret":{"$ref":"#/components/schemas/StringRules"},"mountPath":{"$ref":"#/components/schemas/StringRules"},"defaultMode":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"TolerationsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/TolerationRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"TolerationRules":{"description":"Toleration details.","properties":{"operator":{"$ref":"#/components/schemas/TolerationOperatorRules"},"key":{"$ref":"#/components/schemas/StringRules"},"value":{"$ref":"#/components/schemas/StringRules"},"effect":{"$ref":"#/components/schemas/TolerationEffectRules"},"seconds":{"$ref":"#/components/schemas/IntegerRules"},"exclude":{"$ref":"#/components/schemas/BooleanRules"}},"nullable":true,"type":"object"},"TolerationOperatorRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/TolerationOperatorOptions"}],"nullable":true,"type":"object"},"TolerationOperatorOptions":{"properties":{"options":{"description":"Limit the permitted values for imagePullPolicy to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/TolerationOperator"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"TolerationEffectRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/TolerationEffectOptions"}],"nullable":true,"type":"object"},"TolerationEffectOptions":{"properties":{"options":{"description":"Limit the permitted values for imagePullPolicy to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/TolerationEffect"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"CleanPodPolicyRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/CleanPodPolicyOptions"}],"nullable":true,"type":"object"},"CleanPodPolicyOptions":{"properties":{"options":{"type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/CleanPodPolicy"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"DistributedFrameworkRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/DistributedFrameworkOptions"}],"nullable":true,"type":"object"},"DistributedFrameworkOptions":{"properties":{"options":{"type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/DistributedFramework"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"MpiLauncherCreationPolicyRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/MpiLauncherCreationPolicyOptions"}],"nullable":true,"type":"object"},"MpiLauncherCreationPolicyOptions":{"properties":{"options":{"type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/MpiLauncherCreationPolicy"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"DistributedImposedAssets":{"properties":{"worker":{"$ref":"#/components/schemas/ImposedAssets"},"master":{"$ref":"#/components/schemas/ImposedAssets"}},"nullable":true,"type":"object"},"ImposedAssets":{"description":"a list of datasource assets to import into the policy. these datasources will be included in any workload that will be created in the scope of the policy.","type":"array","items":{"type":"string","format":"uuid"},"nullable":true},"PolicyValidationStatus":{"properties":{"validation":{"properties":{"errorMessage":{"pattern":".*","type":"string","description":"In case validation failed, holds the error message explaining the issue"}},"nullable":true,"type":"object"}},"nullable":true,"type":"object"},"Timestamp":{"description":"The time at which an event occurred. e.g. the time an effective policy has been updated","type":"string","minLength":1,"format":"date-time"},"Error":{"required":["code","message"],"properties":{"code":{"type":"integer","minimum":100,"maximum":599},"message":{"type":"string"},"details":{"type":"string"}}}},"responses":{"400BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401Unauthorized":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403Forbidden":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404NotFound":{"description":"The specified resource was not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503ServiceUnavailable":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/api/v2/policy/distributed":{"get":{"summary":"Get a distributed policy.","description":"Retrieve the details of a distributed policy for a given organizational unit.","operationId":"get_distributed_policy_v2","tags":["Policy"],"parameters":[{"$ref":"#/components/parameters/PolicyScope"},{"$ref":"#/components/parameters/FilterByDepartment"},{"$ref":"#/components/parameters/FilterByProject"},{"$ref":"#/components/parameters/FilterByCluster"}],"responses":{"200":{"description":"Request completed successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DistributedPolicyV2"}}}},"400":{"$ref":"#/components/responses/400BadRequest"},"401":{"$ref":"#/components/responses/401Unauthorized"},"403":{"$ref":"#/components/responses/403Forbidden"},"404":{"$ref":"#/components/responses/404NotFound"},"503":{"$ref":"#/components/responses/503ServiceUnavailable"}}}}}}
```

## Overwrite a distributed policy.

> Use to apply a distributed policy for a given organizational unit.

```json
{"openapi":"3.0.3","info":{"title":"NVIDIA Run:ai","version":"2.26"},"tags":[{"name":"Policy","description":"Policies allow administrators to impose restrictions and set default values for researcher workloads. \nRestrictions and default values can be placed on CPUs, GPUs, and other resources or entities. \nFor more information, see [Policies](https://run-ai-docs.nvidia.com/self-hosted/2.26/platform-management/policies/#introduction).\n"}],"servers":[{"url":"https://app.run.ai"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer authentication"}},"parameters":{"ValidateOnly":{"name":"validateOnly","in":"query","required":false,"description":"Validate the given policy payload without applying it","schema":{"type":"boolean"}},"ApproveClusterDeletion":{"name":"approveClusterDeletion","in":"query","required":false,"description":"Required when modifying or deleting a policy if the tenant includes one or more clusters running version 2.20 or earlier. In such cases, the platform must delete the policy from the affected clusters. This flag indicates that the administrator approves this deletion.","schema":{"type":"boolean"}}},"schemas":{"DistributedPolicyOverwriteRequestV2":{"properties":{"meta":{"$ref":"#/components/schemas/PolicyCreationFields"},"policy":{"$ref":"#/components/schemas/DistributedPolicyDefaultsAndRulesV2"}},"type":"object"},"PolicyCreationFields":{"required":["name","scope"],"properties":{"scope":{"$ref":"#/components/schemas/ScopeType"},"projectId":{"$ref":"#/components/schemas/ProjectIdOptional"},"departmentId":{"$ref":"#/components/schemas/DepartmentIdOptional"},"clusterId":{"$ref":"#/components/schemas/ClusterIdOptional"},"name":{"$ref":"#/components/schemas/PolicyName"}}},"ScopeType":{"type":"string","enum":["system","tenant","cluster","department","project"]},"ProjectIdOptional":{"description":"The id of the project.","type":"integer","format":"int32","nullable":true},"DepartmentIdOptional":{"description":"The id of the department.","type":"string","minLength":1,"nullable":true,"pattern":".*"},"ClusterIdOptional":{"description":"The id of the cluster.","type":"string","format":"uuid","minLength":1,"nullable":true},"PolicyName":{"description":"A chosen name for the policy.","type":"string","minLength":1,"pattern":".*"},"DistributedPolicyDefaultsAndRulesV2":{"properties":{"defaults":{"$ref":"#/components/schemas/DistributedPolicyDefaultsV2"},"rules":{"$ref":"#/components/schemas/DistributedPolicyRulesV2"},"imposedAssets":{"$ref":"#/components/schemas/DistributedImposedAssets"},"status":{"$ref":"#/components/schemas/PolicyValidationStatus"}},"nullable":true,"type":"object"},"DistributedPolicyDefaultsV2":{"nullable":true,"properties":{"master":{"$ref":"#/components/schemas/ReplicaDefaultsV2"},"worker":{"allOf":[{"$ref":"#/components/schemas/ReplicaDefaultsV2"},{"nullable":true,"properties":{"cleanPodPolicy":{"$ref":"#/components/schemas/CleanPodPolicy"},"distributedFramework":{"$ref":"#/components/schemas/DistributedFramework"},"maxReplicas":{"$ref":"#/components/schemas/MaxReplicas"},"minReplicas":{"$ref":"#/components/schemas/MinReplicas"},"mpiLauncherCreationPolicy":{"$ref":"#/components/schemas/MpiLauncherCreationPolicy"},"numWorkers":{"$ref":"#/components/schemas/NumWorkers"},"slotsPerWorker":{"$ref":"#/components/schemas/SlotsPerWorker"},"sshAuthMountPath":{"$ref":"#/components/schemas/SshAuthMountPath"}},"type":"object"}],"nullable":true,"type":"object"}},"type":"object"},"ReplicaDefaultsV2":{"nullable":true,"properties":{"annotations":{"$ref":"#/components/schemas/AnnotationsDefaults"},"args":{"$ref":"#/components/schemas/Args"},"autoDeletionTimeAfterCompletionSeconds":{"$ref":"#/components/schemas/AutoDeletionTimeAfterPreemption"},"backoffLimit":{"$ref":"#/components/schemas/BackoffLimit"},"category":{"$ref":"#/components/schemas/Category"},"command":{"$ref":"#/components/schemas/Command"},"compute":{"$ref":"#/components/schemas/SupersetDefaultsAllOfCompute"},"createHomeDir":{"$ref":"#/components/schemas/CreateHomeDir"},"environmentVariables":{"$ref":"#/components/schemas/EnvironmentVariablesDefaults"},"exposedUrls":{"$ref":"#/components/schemas/ExposedUrlsDefaults"},"image":{"$ref":"#/components/schemas/Image"},"imagePullPolicy":{"$ref":"#/components/schemas/ImagePullPolicy"},"imagePullSecrets":{"$ref":"#/components/schemas/ImagePullSecretsDefaults"},"labels":{"$ref":"#/components/schemas/LabelsDefaults"},"nodeAffinityRequired":{"$ref":"#/components/schemas/NodeAffinityRequired"},"nodePools":{"$ref":"#/components/schemas/NodePools"},"nodeType":{"$ref":"#/components/schemas/NodeType2"},"podAffinity":{"$ref":"#/components/schemas/PodAffinity"},"ports":{"$ref":"#/components/schemas/PortsDefaults"},"preemptibility":{"$ref":"#/components/schemas/Preemptibility"},"priorityClass":{"$ref":"#/components/schemas/PriorityClass"},"probes":{"$ref":"#/components/schemas/Probes"},"relatedUrls":{"$ref":"#/components/schemas/RelatedUrlsDefaults"},"restartPolicy":{"$ref":"#/components/schemas/RestartPolicy"},"security":{"$ref":"#/components/schemas/SupersetDefaultsAllOfSecurity"},"stdin":{"$ref":"#/components/schemas/Stdin"},"storage":{"nullable":true,"properties":{"configMapVolume":{"$ref":"#/components/schemas/ConfigMapsDefaults"},"dataVolume":{"$ref":"#/components/schemas/DataVolumesDefaults"},"emptyDirVolume":{"$ref":"#/components/schemas/EmptyDirsDefaults"},"git":{"$ref":"#/components/schemas/GitsDefaults"},"hostPath":{"$ref":"#/components/schemas/HostPathsDefaults"},"nfs":{"$ref":"#/components/schemas/NfssDefaults"},"pvc":{"$ref":"#/components/schemas/PvcsDefaults"},"s3":{"$ref":"#/components/schemas/S3sDefaults"},"secretVolume":{"$ref":"#/components/schemas/SecretsDefaults"}},"type":"object"},"terminateAfterPreemption":{"$ref":"#/components/schemas/TerminateAfterPreemption"},"terminationGracePeriodSeconds":{"$ref":"#/components/schemas/TerminationGracePeriod"},"tolerations":{"$ref":"#/components/schemas/TolerationsDefaults"},"tty":{"$ref":"#/components/schemas/Tty"},"workingDir":{"$ref":"#/components/schemas/WorkingDir"}},"type":"object"},"AnnotationsDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/Annotations"}},"nullable":true,"type":"object"},"Annotations":{"description":"Set of annotations to populate into the container running the workload.","type":"array","items":{"$ref":"#/components/schemas/Annotation"},"maxItems":1000,"nullable":true},"Annotation":{"description":"Annotation details to be populated into the container.","properties":{"name":{"description":"The name of the annotation (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":".*"},"value":{"description":"The value of the annotation.","type":"string","maxLength":10000,"nullable":true,"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","default":false,"nullable":true}},"nullable":true,"type":"object"},"Args":{"description":"Arguments to the command that the container running the workload executes.","type":"string","minLength":1,"maxLength":10000,"nullable":true,"pattern":".*"},"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","nullable":true},"BackoffLimit":{"description":"Specifies the number of retries before marking a workload as failed (not applicable to Inference workloads). The default value is 6.","format":"int64","type":"integer","nullable":true},"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":".*"},"Command":{"description":"A command to the server as the entry point of the container running the workload.","type":"string","minLength":1,"maxLength":10000,"nullable":true,"pattern":".*"},"SupersetDefaultsAllOfCompute":{"title":"SupersetDefaultsAllOfCompute","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/ExtendedResourcesDefaults"},"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"},"CpuCoreLimit":{"description":"Limitations on the number of CPUs consumed by the workload (0.5, 1, .etc). The system guarantees that this workload will not be able to consume more than this amount of CPUs.","format":"double","type":"number","nullable":true,"minimum":0},"CpuCoreRequest":{"description":"CPU units to allocate for the created workload (0.5, 1, .etc). The workload will receive at least this amount of CPU. Note that the workload will not be scheduled unless the system can guarantee this amount of CPUs to the workload.","format":"double","type":"number","nullable":true,"minimum":0},"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]*)$","maxLength":63,"nullable":true},"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","pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$","maxLength":63,"nullable":true},"ExtendedResourcesDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/ExtendedResource"},"instances":{"$ref":"#/components/schemas/ExtendedResources"}},"nullable":true,"type":"object"},"ExtendedResource":{"description":"Quantity of an extended resource.","properties":{"resource":{"description":"The name of the extended resource (mandatory)","type":"string","minLength":1,"maxLength":253,"nullable":true,"pattern":".*"},"quantity":{"description":"The requested quantity for the resource.","type":"string","minLength":1,"maxLength":63,"nullable":true,"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","nullable":true}},"nullable":true,"type":"object"},"ExtendedResources":{"description":"Extended resources and their quantity.","type":"array","items":{"$ref":"#/components/schemas/ExtendedResource"},"maxItems":1000,"nullable":true},"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","format":"int32","nullable":true,"minimum":0},"GpuMemoryLimit":{"description":"Limitation on the memory consumed by the workload, per GPU device. The system guarantees The gpuMemoryLimit must be no less than gpuMemoryRequest.","type":"string","pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$","maxLength":63,"nullable":true},"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]*)$","maxLength":63,"nullable":true},"GpuPortionLimit":{"description":"Limitations on the portion consumed by the workload, per GPU device. The system guarantees The gpuPotionLimit must be no less than the gpuPortionRequest.","type":"number","format":"double","nullable":true,"minimum":0},"GpuPortionRequest":{"description":"Required if and only if gpuRequestType is portion. States the portion of the GPU to allocate for the created workload, per GPU device, between 0 and 1. The default is no allocated GPUs.","type":"number","format":"double","nullable":true,"minimum":0},"GpuRequestType":{"description":"Sets the unit type for GPU resources requests. Stated in terms of portion or memory. Sets the unit type for other GPU request fields. If `gpuDevicesRequest > 1`, only `portion` is supported. If `gpuDeviceRequest = 1`, the request type can be stated as `portion` or `memory`.","type":"string","minLength":1,"enum":["portion","memory"],"nullable":true},"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","nullable":true},"CreateHomeDir":{"description":"When set to `true`, creates a home directory for the container.","type":"boolean","nullable":true},"EnvironmentVariablesDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/EnvironmentVariables"}},"nullable":true,"type":"object"},"EnvironmentVariables":{"description":"Set of environment variables to populate into the container running the workload.","type":"array","items":{"$ref":"#/components/schemas/EnvironmentVariable"},"maxItems":1000,"nullable":true},"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,"maxLength":63,"nullable":true,"pattern":".*"},"value":{"description":"The value of the environment variable. (mutually exclusive with secret, userCredential, configMap and podFieldRef)","type":"string","maxLength":10000,"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","nullable":true},"description":{"description":"Description of the environment variable.","type":"string","maxLength":250,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"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,"maxLength":253,"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,"maxLength":63,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"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","minLength":1,"maxLength":253,"nullable":true,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$"},"key":{"description":"The key in the config-map resource. (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"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","minLength":1,"maxLength":10000,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"EnvironmentVariableUserCredential":{"description":"Defines a reference to a user-created credential and a specific key within that credential whose value will populate the environment variable. User credentials can only be accessed by the user who created them.","properties":{"name":{"description":"The name of the user credential.  (mandatory)","type":"string","minLength":1,"maxLength":253,"nullable":true},"key":{"description":"The key in the user credential resource. (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true}},"nullable":true,"type":"object"},"ExposedUrlsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/ExposedUrl"},"instances":{"$ref":"#/components/schemas/ExposedUrls"}},"nullable":true,"type":"object"},"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","nullable":true},"url":{"$ref":"#/components/schemas/Url"},"authorizationType":{"$ref":"#/components/schemas/AuthorizationType"},"authorizedUsers":{"$ref":"#/components/schemas/AuthorizedUsers"},"authorizedGroups":{"$ref":"#/components/schemas/AuthorizedGroups"},"toolType":{"description":"The tool type that runs on this container port.","type":"string","nullable":true,"pattern":".*"},"toolName":{"description":"A name describing the tool that runs on this url.","type":"string","nullable":true,"pattern":".*","maxLength":253},"name":{"description":"Unique name to identify the instance. primarily used for policy locked rules.","type":"string","minLength":1,"maxLength":253,"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","nullable":true}},"nullable":true,"type":"object"},"Url":{"description":"The URL for connecting to the container port. If not specified, the URL will be auto-generated by the system.","type":"string","maxLength":2048,"pattern":".*","nullable":true},"AuthorizationType":{"type":"string","enum":["authenticatedUsers","authorizedUsers","authorizedGroups"],"description":"Specifies who can access the connection URL:\n- `authenticatedUsers`: Any authenticated user or service account can access the URL; the authorizedUsers and authorizedGroups fields are ignored.\n- `authorizedUsers`: Only users listed in the authorizedUsers field are allowed to access the URL; the authorizedGroups field is ignored.\n- `authorizedGroups`: Only members of user groups listed in the authorizedGroups field are allowed to access the URL; the authorizedUsers field is ignored.\nIf 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.\n","nullable":true},"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","maxLength":253,"pattern":".*"},"maxItems":1000,"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","maxLength":253,"pattern":".*"},"maxItems":1000,"nullable":true},"ExposedUrls":{"description":"Set of container ports that the workload exposes via URLs.","type":"array","items":{"$ref":"#/components/schemas/ExposedUrl"},"maxItems":1000,"nullable":true},"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","minLength":1,"maxLength":253,"nullable":true,"pattern":".*"},"ImagePullPolicy":{"description":"Image pull policy. Defaults to `Always` if `:latest` tag is specified, otherwise it is `IfNotPresent`.","type":"string","minLength":1,"enum":["Always","Never","IfNotPresent"],"nullable":true},"ImagePullSecretsDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/ImagePullSecrets"}},"nullable":true,"type":"object"},"ImagePullSecrets":{"description":"A list of references to Kubernetes secrets in the same namespace used for pulling container images.","type":"array","items":{"$ref":"#/components/schemas/ImagePullSecret"},"maxItems":1000,"nullable":true},"ImagePullSecret":{"description":"A reference to a secret in the same namespace used to pull container images.","properties":{"name":{"type":"string","description":"The name of the Kubernetes secret containing the image pull credentials.","pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$","maxLength":253},"userCredential":{"type":"boolean","description":"Indicates whether the secret is a user credential. Set to true if the secret was created by the user and is only accessible by them.","nullable":true},"exclude":{"description":"Use 'true' in case the secret is defined in defaults of the policy, and you wish to exclude it from the workload.","type":"boolean","default":false,"nullable":true}},"nullable":true,"type":"object"},"LabelsDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/Labels"}},"nullable":true,"type":"object"},"Labels":{"description":"Set of labels to populate into the container running the workload.","type":"array","items":{"$ref":"#/components/schemas/Label"},"maxItems":1000,"nullable":true},"Label":{"description":"Label details to be populated into the container.","properties":{"name":{"description":"The name of the label (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":".*"},"value":{"description":"The value of the label.","type":"string","nullable":true,"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","nullable":true}},"nullable":true,"type":"object"},"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"},"maxItems":1000}},"nullable":true},"NodeSelectorTerm":{"type":"object","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"},"maxItems":1000}},"nullable":true},"MatchExpression":{"type":"object","description":"A selector that contains values, a key, and an operator that relates the key and values.","properties":{"key":{"description":"The label key that the selector applies to (mandatory).","type":"string","pattern":".*","maxLength":63},"operator":{"$ref":"#/components/schemas/MatchExpressionOperator"},"values":{"description":"An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer.","type":"array","items":{"type":"string","maxLength":10000,"pattern":".*"},"maxItems":1000}},"required":["key","operator"],"nullable":true},"MatchExpressionOperator":{"description":"Represents a key's relationship to a set of values (mandatory).","type":"string","enum":["In","NotIn","Exists","DoesNotExist","Gt","Lt"]},"NodePools":{"description":"A prioritized list of node pools for the scheduler to run the workload on. The scheduler will always try to use the first node pool before moving to the next one if the first is not available.","type":"array","items":{"type":"string","maxLength":63,"pattern":".*"},"maxItems":1000,"nullable":true},"NodeType2":{"deprecated":true,"description":"Deprecated: use a workload policy node selector to target node types instead. 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","minLength":1,"nullable":true,"pattern":".*"},"PodAffinity":{"description":"Pod affinity scheduling rules (e.g. co-locate this workload in the same node, zone, etc. as some other workloads).","type":"object","properties":{"type":{"$ref":"#/components/schemas/PodAffinityType"},"key":{"description":"The label key to use. (mandatory)","type":"string","nullable":true,"pattern":".*","maxLength":63}},"nullable":true},"PodAffinityType":{"description":"The affinity type, required or preferred. (mandatory)","type":"string","enum":["Required","Preferred"],"nullable":true},"PortsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/Port"},"instances":{"$ref":"#/components/schemas/Ports"}},"nullable":true,"type":"object"},"Port":{"description":"A port for accessing the workload.","properties":{"container":{"description":"The port that the container running the workload exposes. (mandatory)","type":"integer","format":"int32","minimum":1,"maximum":65535,"nullable":true},"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","format":"int32","nullable":true},"toolType":{"description":"The tool type that runs on this port.","type":"string","nullable":true,"pattern":".*","maxLength":63},"toolName":{"description":"A name describing the tool that runs on this port.","type":"string","nullable":true,"pattern":".*","maxLength":253},"name":{"description":"Unique name to identify the instance. primarily used for policy locked rules.","type":"string","minLength":1,"maxLength":63,"nullable":true,"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","default":false,"nullable":true}},"nullable":true,"type":"object"},"PortServiceType":{"description":"The service type of the port (mandatory).","type":"string","enum":["LoadBalancer","NodePort","ClusterIP"],"nullable":true},"Ports":{"description":"Set of container ports that the workload exposes.","type":"array","items":{"$ref":"#/components/schemas/Port"},"maxItems":1000,"nullable":true},"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","minLength":1,"enum":["preemptible","non-preemptible"],"nullable":true},"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","nullable":true,"pattern":".*"},"Probes":{"description":"Probes are used to determine if the container is healthy and ready to accept traffic.","type":"object","properties":{"readiness":{"$ref":"#/components/schemas/Probe"}},"nullable":true},"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},"ProbeHandler":{"description":"The action taken to determine the health of the container. (mandatory)","type":"object","properties":{"httpGet":{"description":"An action based on HTTP Get requests.","type":"object","properties":{"path":{"description":"Path to access on the HTTP server, defaults to /.","type":"string","pattern":"^(\\x2F[a-zA-Z0-9\\-_.\\x2F]*)?$","nullable":true,"maxLength":2048},"port":{"description":"Number of the port to access on the container.","type":"integer","format":"int32","minimum":1,"maximum":65535,"nullable":true},"host":{"description":"Host name to connect to, defaults to the pod IP.","type":"string","format":"hostname","nullable":true,"pattern":".*","maxLength":253},"scheme":{"$ref":"#/components/schemas/ProbeHandlerScheme"}}}},"nullable":true},"ProbeHandlerScheme":{"description":"Scheme to use for connecting to the host, defaults to HTTP.","type":"string","enum":["HTTP","HTTPS"],"nullable":true},"RelatedUrlsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/RelatedUrl"},"instances":{"$ref":"#/components/schemas/RelatedUrls"}},"nullable":true,"type":"object"},"RelatedUrl":{"description":"A URL that is related to the workload. For example, a URL to an external server providing statistics or logging about the workload.","properties":{"url":{"description":"The URL for connecting an external service related to the workload. (mandatory)","type":"string","nullable":true,"pattern":".*","maxLength":2048},"type":{"description":"The type of service that the url provides. For example, wandb (Weights & Biases). (mandatory)","type":"string","nullable":true,"pattern":".*","maxLength":63},"name":{"description":"Unique name to identify the instance. primarily used for policy locked rules.","type":"string","nullable":true,"pattern":".*","maxLength":63},"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,"nullable":true}},"nullable":true,"type":"object"},"RelatedUrls":{"description":"Set of URLs that are related to the workload.","type":"array","items":{"$ref":"#/components/schemas/RelatedUrl"},"maxItems":1000,"nullable":true},"RestartPolicy":{"description":"Specify the restart policy of the workload pods. Default is empty, which is determine by the framework default.\nThe `Always` value is deprecated; use `OnFailure` or `Never` instead.\n","type":"string","minLength":1,"enum":["Always","Never","OnFailure"],"nullable":true},"SupersetDefaultsAllOfSecurity":{"title":"SupersetDefaultsAllOfSecurity","nullable":true,"properties":{"allowPrivilegeEscalation":{"$ref":"#/components/schemas/AllowPrivilegeEscalation"},"capabilities":{"$ref":"#/components/schemas/Capabilities"},"hostIpc":{"$ref":"#/components/schemas/HostIpc"},"hostNetwork":{"$ref":"#/components/schemas/HostNetwork"},"readOnlyRootFilesystem":{"$ref":"#/components/schemas/ReadOnlyRootFileSystem"},"runAsGid":{"$ref":"#/components/schemas/RunAsGid"},"runAsNonRoot":{"$ref":"#/components/schemas/RunAsNonRoot"},"runAsUid":{"$ref":"#/components/schemas/RunAsUid"},"seccompProfileType":{"$ref":"#/components/schemas/SeccompProfileType"},"supplementalGroups":{"$ref":"#/components/schemas/SupplementalGroups"},"uidGidSource":{"$ref":"#/components/schemas/UidGidSource"}},"type":"object"},"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://run-ai-docs.nvidia.com/self-hosted/2.26/infrastructure-setup/advanced-setup/container-access/user-identity-in-containers","type":"boolean","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"},"nullable":true},"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"]},"HostIpc":{"description":"Whether to enable host IPC. Defaults to false.","type":"boolean","nullable":true},"HostNetwork":{"description":"Whether to enable host networking. Default to false.","type":"boolean","nullable":true},"ReadOnlyRootFileSystem":{"description":"If true, mounts the container's root filesystem as read-only.","type":"boolean","nullable":true},"RunAsGid":{"description":"The group id to run the entrypoint of the container which executes the workspace. Default to the value specified in the environment asset `runAsGid` field (optional). Use only when the source uid/gid of the environment asset is not `fromTheImage`, and `overrideUidGidInWorkspace` is enabled.","type":"integer","format":"int64","nullable":true},"RunAsNonRoot":{"description":"Force the container to run as a non-root user.","type":"boolean","nullable":true},"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","format":"int64","nullable":true},"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","enum":["RuntimeDefault","Unconfined","Localhost"],"nullable":true},"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","nullable":true,"pattern":".*"},"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://run-ai-docs.nvidia.com/self-hosted/2.26/infrastructure-setup/advanced-setup/container-access/user-identity-in-containers).","type":"string","enum":["fromTheImage","fromIdpToken","custom"],"nullable":true},"Stdin":{"description":"Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF","type":"boolean","nullable":true},"ConfigMapsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/ConfigMapInstance"},"instances":{"$ref":"#/components/schemas/ConfigMapItems"}},"nullable":true,"type":"object"},"ConfigMapInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/ConfigMap"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"StorageInstanceName":{"properties":{"name":{"description":"unique name to identify the instance. primarily used for policy locked rules.","type":"string","minLength":1,"maxLength":63,"nullable":true}},"nullable":true,"type":"object"},"ConfigMap":{"properties":{"configMap":{"description":"The name of the ConfigMap resource. (mandatory)","type":"string","minLength":1,"maxLength":253,"nullable":true,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$"},"mountPath":{"description":"Local path within the workload to which the ConfigMap will be mapped to. (mandatory)","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"subPath":{"description":"Path within the volume from which the container's volume should be mounted.","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"defaultMode":{"$ref":"#/components/schemas/DefaultMode"}},"nullable":true,"type":"object"},"DefaultMode":{"type":"string","description":"File permission mode in octal string format. This value must be a 4-digit octal number, representing the default file mode when mounting a Secret or ConfigMap as a volume.\n","minLength":4,"maxLength":4,"pattern":"0[0-7]{3}","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,"nullable":true}},"type":"object","nullable":true},"ConfigMapItems":{"description":"Set of config map volumes to use in the workload","type":"array","items":{"$ref":"#/components/schemas/ConfigMapInstance"},"maxItems":1000,"nullable":true},"DataVolumesDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/DataVolumeInstance"},"instances":{"$ref":"#/components/schemas/DataVolumeItems"}},"nullable":true,"type":"object"},"DataVolumeInstance":{"allOf":[{"$ref":"#/components/schemas/DataVolume"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"DataVolume":{"properties":{"id":{"description":"The unique identifier of the data volume. (mandatory)","type":"string","format":"uuid","nullable":true},"mountPath":{"description":"The path where the data volume will be mounted. (mandatory)","type":"string","nullable":true,"pattern":".*","maxLength":4096}},"nullable":true,"type":"object"},"DataVolumeItems":{"description":"Set of data volumes to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/DataVolumeInstance"},"maxItems":1000,"nullable":true},"EmptyDirsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/EmptyDirInstance"},"instances":{"$ref":"#/components/schemas/EmptyDirItems"}},"nullable":true,"type":"object"},"EmptyDirInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/EmptyDir"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"EmptyDir":{"properties":{"path":{"description":"Local path within the workload to which the EmptyDir volume will be mapped. (mandatory)","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"medium":{"description":"The type of storage medium for the volume. Use \"Memory\" for memory-backed storage, or leave empty for disk-backed storage.","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":".*"},"sizeLimit":{"description":"The total amount of local storage or memory required for the emptyDir volume. Specify using Kubernetes quantity format (e.g., 1G, 500Mi).","type":"string","maxLength":63,"pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$","nullable":true}},"nullable":true,"type":"object"},"EmptyDirItems":{"description":"A list of emptyDir volumes to mount in the workload.","type":"array","items":{"$ref":"#/components/schemas/EmptyDirInstance"},"maxItems":1000,"nullable":true},"GitsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/GitInstance"},"instances":{"$ref":"#/components/schemas/GitItems"}},"nullable":true,"type":"object"},"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"},"GitCommon":{"properties":{"repository":{"description":"URL to a remote Git repository. The content of this repository will be mapped to the container running the workload. (mandatory)","type":"string","minLength":1,"maxLength":2048,"nullable":true},"branch":{"description":"Specific branch to synchronize the repository from.","type":"string","minLength":1,"maxLength":63,"nullable":true},"revision":{"description":"Specific revision to synchronize the repository from.","type":"string","minLength":1,"maxLength":63,"nullable":true},"path":{"description":"Local path within the workload to which the Git repository will be mapped (mandatory).","type":"string","minLength":1,"maxLength":4096,"nullable":true}},"nullable":true,"type":"object"},"GitPassword":{"properties":{"passwordSecret":{"description":"Secret containing the credentials of the repository (needed for non public repository which requires authentication). (deprecated)","type":"string","minLength":1,"nullable":true},"secretKeyOfUser":{"description":"The key to use for loading the user name from the secret. The default is `User`. (deprecated)","type":"string","minLength":1,"nullable":true},"secretKeyOfPassword":{"description":"The key to use for loading the password from the secret. The default is `Password`. (deprecated)","type":"string","minLength":1,"nullable":true}},"nullable":true,"type":"object"},"GitSecretRef":{"properties":{"name":{"description":"Name of the Secret containing the credentials of the repository.","type":"string","minLength":1},"authenticationMethod":{"$ref":"#/components/schemas/GitAuthenticationMethod"},"secretKeyOfUser":{"description":"The key in the Secret that contains the Git username (used for `password` authentication).","type":"string","minLength":1,"nullable":true},"secretKeyOfPassword":{"description":"The key in the Secret that contains the Git password (used for `password` authentication).","type":"string","minLength":1,"nullable":true}},"nullable":true,"type":"object"},"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,"enum":["password","ssh-key"]},"GitItems":{"description":"Set of git repositories to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/GitInstance"},"maxItems":1000,"nullable":true},"HostPathsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/HostPathInstance"},"instances":{"$ref":"#/components/schemas/HostPathItems"}},"nullable":true,"type":"object"},"HostPathInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/HostPath"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"HostPath":{"properties":{"path":{"description":"Local path within the controller to which the host volume will be mapped. (mandatory)","type":"string","minLength":1,"maxLength":4096,"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,"maxLength":4096,"nullable":true,"pattern":".*"},"mountPropagation":{"$ref":"#/components/schemas/HostPathMountPropagation"}},"nullable":true,"type":"object"},"HostPathMountPropagation":{"description":"Share this volumes mount with other containers. If set to HostToContainer, this volume mount will receive all subsequent mounts that are mounted to this volume or any of its subdirectories. In case of multiple hostPath entries, this field should have the same value for all of them.","type":"string","enum":["None","HostToContainer"],"nullable":true},"HostPathItems":{"description":"Set of host paths to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/HostPathInstance"},"maxItems":1000,"nullable":true},"NfssDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/NfsInstance"},"instances":{"$ref":"#/components/schemas/NfsItems"}},"nullable":true,"type":"object"},"NfsInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/Nfs"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"Nfs":{"properties":{"path":{"description":"Path that is exported by the NFS server (mandatory). For more information, see [NFS](https://kubernetes.io/docs/concepts/storage/volumes#nfs).","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"readOnly":{"description":"Force the NFS export to be mounted with read-only permissions.","type":"boolean","default":true,"nullable":true},"server":{"description":"The hostname or IP address of the NFS server. (mandatory)","type":"string","minLength":1,"maxLength":253,"nullable":true,"pattern":".*"},"mountPath":{"description":"The path that the NFS volume will be mounted to when in use. (mandatory)","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"NfsItems":{"description":"Set of nfs volumes to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/NfsInstance"},"maxItems":1000,"nullable":true},"PvcsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/PvcInstance"},"instances":{"$ref":"#/components/schemas/PvcItems"}},"nullable":true,"type":"object"},"PvcInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/Pvc"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"Pvc":{"allOf":[{"$ref":"#/components/schemas/PvcFieldsUpdatable"},{"$ref":"#/components/schemas/PvcFieldsNonUpdatable"}]},"PvcFieldsUpdatable":{"properties":{"path":{"description":"Local path within the workload to which the PVC bucket will be mapped. (mandatory)","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"PvcFieldsNonUpdatable":{"properties":{"existingPvc":{"description":"Verify existing PVC. PVC is assumed to exist when set to `true`. If set to `false`, the PVC will be created, if it does not exist.","type":"boolean","default":false,"nullable":true},"claimName":{"description":"Name for the PVC. Allow referencing it across workloads. If not provided, a name based on the workload name and scope will be auto-generated.","type":"string","minLength":1,"maxLength":63,"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,"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,"nullable":true}},"nullable":true,"type":"object"},"ClaimInfo":{"description":"Claim information for the newly created PVC. The information should not be provided when attempting to use existing PVC.","properties":{"size":{"$ref":"#/components/schemas/PvcClaimSize"},"storageClass":{"description":"Storage class name to associate with the PVC. This parameter may be omitted if there is a single storage class in the system, or you are using the default storage class. For more information, see [Storage class](https://kubernetes.io/docs/concepts/storage/storage-classes).","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$"},"accessModes":{"$ref":"#/components/schemas/PvcAccessModes"},"volumeMode":{"$ref":"#/components/schemas/PvcVolumeMode"},"addedAttrValues":{"$ref":"#/components/schemas/PvcAddedAttrValues"}},"nullable":true,"type":"object"},"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]*)$","maxLength":63,"nullable":true},"PvcAccessModes":{"description":"Default access mode(s) applied to newly created PVCs unless explicitly overridden.","properties":{"readWriteOnce":{"description":"Mount the volume as read/write by a single node.","type":"boolean","default":true,"nullable":true},"readOnlyMany":{"description":"Mount the volume as read-only by many nodes.","type":"boolean","default":false,"nullable":true},"readWriteMany":{"description":"Mount the volume as read/write by many nodes.","type":"boolean","default":false,"nullable":true}},"nullable":true,"type":"object"},"PvcVolumeMode":{"description":"Default volume mode for the PVC. Choose between Filesystem (default) or Block.","type":"string","enum":["Filesystem","Block"],"nullable":true},"PvcAddedAttrValues":{"description":"an optional array of key-values pairs that are written as annotations on the created PVC. the allowed attributes are determined according to the storage class configuration (see k8s-objects-tracker for further info).","type":"array","items":{"$ref":"#/components/schemas/PvcAddedAttrValue"},"maxItems":1000},"PvcAddedAttrValue":{"type":"object","required":["key"],"properties":{"key":{"type":"string","minLength":1,"maxLength":63,"pattern":"^([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]$"},"value":{"type":"string","pattern":".*","maxLength":10000}}},"PvcItems":{"description":"Set of pvc persistent volume claims to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/PvcInstance"},"maxItems":1000,"nullable":true},"S3sDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/S3Instance"},"instances":{"$ref":"#/components/schemas/S3Items"}},"nullable":true,"type":"object"},"S3Instance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/S3Common"},{"$ref":"#/components/schemas/S3AccessKey"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"S3Common":{"properties":{"bucket":{"description":"The name of the bucket. (mandatory)","type":"string","minLength":1,"nullable":true},"path":{"description":"Local path within the workload to which the S3 bucket will be mapped. (mandatory)","type":"string","minLength":1,"nullable":true},"url":{"description":"The url of the S3 service provider. The default is the URL of the Amazon AWS S3 service.","type":"string","minLength":1,"nullable":true}},"nullable":true,"type":"object"},"S3AccessKey":{"properties":{"accessKeySecret":{"description":"Name of the secret containing credentials of the S3 bucket. Used for private S3 buckets.","type":"string","minLength":1,"nullable":true,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$"},"secretKeyOfAccessKeyId":{"description":"The key to use for loading the access key id from the secret. The default is `AccessKeyId`. For more information, see [Credentials access keys](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html).","type":"string","minLength":1,"nullable":true,"pattern":".*"},"secretKeyOfSecretKey":{"description":"The key to use for loading the secret key from the secret. The default is `SecretKey`. For more information, see [Credentials access keys](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html).","type":"string","minLength":1,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"S3Items":{"description":"Set of s3 buckets to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/S3Instance"},"nullable":true},"SecretsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/SecretInstance"},"instances":{"$ref":"#/components/schemas/SecretItems"}},"nullable":true,"type":"object"},"SecretInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/Secret"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"Secret":{"allOf":[{"$ref":"#/components/schemas/SecretFieldsUpdatable"},{"$ref":"#/components/schemas/SecretFieldsNonUpdatable"}]},"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"},"SecretFieldsNonUpdatable":{"properties":{"secret":{"description":"The name of the Secret resource. (mandatory)","type":"string","minLength":1,"nullable":true}},"nullable":true,"type":"object"},"SecretItems":{"description":"Set of secret volumes to use in the workload","type":"array","items":{"$ref":"#/components/schemas/SecretInstance"},"nullable":true},"TerminateAfterPreemption":{"description":"Indicates if the job should be terminated by the system after it has been preempted.","type":"boolean","nullable":true},"TerminationGracePeriod":{"description":"Duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down).","format":"int64","type":"integer","minimum":0,"nullable":true},"TolerationsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/Toleration"},"instances":{"$ref":"#/components/schemas/Tolerations"}},"nullable":true,"type":"object"},"Toleration":{"description":"Toleration details.","properties":{"name":{"description":"The name of the toleration.","type":"string","minLength":1,"maxLength":253,"nullable":true,"pattern":".*"},"operator":{"$ref":"#/components/schemas/TolerationOperator"},"key":{"description":"The taint key that the toleration applies to. (mandatory)","type":"string","maxLength":253,"nullable":true,"pattern":".*"},"value":{"description":"The taint value the toleration matches to. Mandatory if operator is Exists, forbidden otherwise.","type":"string","maxLength":10000,"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","nullable":true}},"nullable":true,"type":"object"},"TolerationOperator":{"description":"A key's relationship to the value. Equal uses key and value. Exists is equivalent to wildcard for value, so that a workload can tolerate all taints of a particular category. (mandatory)","type":"string","enum":["Equal","Exists"],"nullable":true},"TolerationEffect":{"description":"The taint effect to match. (mandatory)","type":"string","enum":["NoSchedule","NoExecute","PreferNoSchedule","Any"],"nullable":true},"Tolerations":{"description":"Set of tolerations to apply to the workload.","type":"array","items":{"$ref":"#/components/schemas/Toleration"},"maxItems":1000,"nullable":true},"Tty":{"description":"Whether this container should allocate a TTY for itself, also requires 'stdin' to be true.","type":"boolean","nullable":true},"WorkingDir":{"description":"Container's working directory. If not specified, the container runtime default will be used. This may be configured in the container image.","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"CleanPodPolicy":{"description":"The policy describes how to deal with pods when the job is finished.","type":"string","enum":["None","All","Running"],"nullable":true},"DistributedFramework":{"description":"The distributed training framework used in the workload.\nNote: The TF, XGBoost and JAX frameworks are deprecated and will be removed in a future release.\n","type":"string","enum":["MPI","PyTorch","TF","XGBoost","JAX"],"nullable":true},"MaxReplicas":{"description":"the upper limit for the number of worker pods that can be set by the autoscaler. Cannot be smaller than MinReplicas. (applicable only for PyTorch)","type":"integer","nullable":true},"MinReplicas":{"description":"the lower limit for the number of worker pods to which the training job can scale down. (applicable only for PyTorch)","type":"integer","nullable":true},"MpiLauncherCreationPolicy":{"description":"Define whether the MPI Launcher is created in parallel with the workers, or if its creation is postponed until all workers are in  Ready state. This prevents failures when the launcher attempts to connect to workers that are not yet ready.","type":"string","enum":["AtStartup","WaitForWorkersReady"],"nullable":true},"NumWorkers":{"description":"the number of workers that will be allocated for running the workload.","type":"integer","minimum":1,"nullable":true},"SlotsPerWorker":{"description":"Specifies the number of slots per worker used in hostfile. Defaults to 1. (applicable only for MPI)","type":"integer","minimum":1,"nullable":true,"default":1},"SshAuthMountPath":{"description":"Specifies the directory where SSH keys are mounted. (applicable only for MPI)","type":"string","nullable":true,"default":"/root/.ssh","pattern":".*"},"DistributedPolicyRulesV2":{"nullable":true,"properties":{"master":{"$ref":"#/components/schemas/ReplicaRulesV2"},"worker":{"allOf":[{"$ref":"#/components/schemas/ReplicaRulesV2"},{"nullable":true,"properties":{"cleanPodPolicy":{"$ref":"#/components/schemas/CleanPodPolicyRules"},"distributedFramework":{"$ref":"#/components/schemas/DistributedFrameworkRules"},"maxReplicas":{"$ref":"#/components/schemas/IntegerRules"},"minReplicas":{"$ref":"#/components/schemas/IntegerRules"},"mpiLauncherCreationPolicy":{"$ref":"#/components/schemas/MpiLauncherCreationPolicyRules"},"numWorkers":{"$ref":"#/components/schemas/IntegerRules"},"slotsPerWorker":{"$ref":"#/components/schemas/IntegerRules"},"sshAuthMountPath":{"$ref":"#/components/schemas/StringRules"}},"type":"object"}],"nullable":true,"type":"object"}},"type":"object"},"ReplicaRulesV2":{"nullable":true,"properties":{"annotations":{"$ref":"#/components/schemas/InstancesRules"},"args":{"$ref":"#/components/schemas/StringRules"},"autoDeletionTimeAfterCompletionSeconds":{"$ref":"#/components/schemas/IntegerRules"},"backoffLimit":{"$ref":"#/components/schemas/IntegerRules"},"category":{"$ref":"#/components/schemas/StringRules"},"command":{"$ref":"#/components/schemas/StringRules"},"compute":{"$ref":"#/components/schemas/SupersetRulesAllOfCompute"},"createHomeDir":{"$ref":"#/components/schemas/BooleanRules"},"environmentVariables":{"$ref":"#/components/schemas/InstancesRules"},"exposedUrls":{"$ref":"#/components/schemas/ExposedUrlsRules"},"image":{"$ref":"#/components/schemas/StringRules"},"imagePullPolicy":{"$ref":"#/components/schemas/ImagePullPolicyRules"},"imagePullSecrets":{"$ref":"#/components/schemas/ImagePullSecretsRules"},"labels":{"$ref":"#/components/schemas/InstancesRules"},"nodeAffinityRequired":{"$ref":"#/components/schemas/ArbitraryRules"},"nodePools":{"$ref":"#/components/schemas/ArrayRules"},"nodeType":{"$ref":"#/components/schemas/StringRules"},"podAffinity":{"$ref":"#/components/schemas/PodAffinityRules"},"ports":{"$ref":"#/components/schemas/PortsRules"},"preemptibility":{"$ref":"#/components/schemas/PreemptibilityRules"},"priorityClass":{"$ref":"#/components/schemas/StringRules"},"probes":{"$ref":"#/components/schemas/ProbesRules"},"relatedUrls":{"$ref":"#/components/schemas/RelatedUrlsRules"},"restartPolicy":{"$ref":"#/components/schemas/RestartPolicyRule"},"security":{"$ref":"#/components/schemas/SupersetRulesAllOfSecurity"},"stdin":{"$ref":"#/components/schemas/BooleanRules"},"storage":{"nullable":true,"properties":{"configMapVolume":{"$ref":"#/components/schemas/ConfigMapsRules"},"dataVolume":{"$ref":"#/components/schemas/DataVolumesRules"},"emptyDirVolume":{"$ref":"#/components/schemas/EmptyDirsRules"},"git":{"$ref":"#/components/schemas/GitsRules"},"hostPath":{"$ref":"#/components/schemas/HostPathsRules"},"nfs":{"$ref":"#/components/schemas/NfssRules"},"pvc":{"$ref":"#/components/schemas/PvcsRules"},"s3":{"$ref":"#/components/schemas/S3sRules"},"secretVolume":{"$ref":"#/components/schemas/SecretsRules"}},"type":"object"},"terminateAfterPreemption":{"$ref":"#/components/schemas/BooleanRules"},"terminationGracePeriodSeconds":{"$ref":"#/components/schemas/IntegerRules"},"tolerations":{"$ref":"#/components/schemas/TolerationsRules"},"tty":{"$ref":"#/components/schemas/BooleanRules"},"workingDir":{"$ref":"#/components/schemas/StringRules"}},"type":"object"},"InstancesRules":{"properties":{"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ItemRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"canAdd":{"description":"Whether it is permitted to add items. Default to true.","type":"boolean","nullable":true},"locked":{"description":"Set of keys for items that are \"locked\", i.e. cannot be removed or deleted.","type":"array","items":{"type":"string"}}},"nullable":true,"type":"object"},"SourceOfRule":{"description":"This field is used by the system along with effective rules, in order to specify the org unit from which this effective rule has been derived. It should be left empty when sending apply policy requests.","required":["scope"],"properties":{"scope":{"$ref":"#/components/schemas/ScopeType"},"projectId":{"$ref":"#/components/schemas/ProjectIdOptional"},"departmentId":{"$ref":"#/components/schemas/DepartmentIdOptional"},"clusterId":{"$ref":"#/components/schemas/ClusterIdOptional"},"isFallback":{"description":"source of this rule is the fallback policy","type":"boolean"}},"nullable":true,"type":"object"},"StringRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/StringRulesOptions"}],"nullable":true,"type":"object"},"StringRulesCommon":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory, default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable, default to true","type":"boolean","nullable":true},"blocked":{"description":"Blocks the field to prevent workloads from specifying any value for it.","type":"boolean","nullable":true}}},"StringRulesOptions":{"properties":{"options":{"description":"Set of options that the value of the field must be chosen from.","type":"array","items":{"$ref":"#/components/schemas/StringOption"},"nullable":true}}},"StringOption":{"description":"One of the values that the field can be assigned to, when options police is applied on the field.","required":["value"],"properties":{"value":{"description":"The value that the field should hold","type":"string","pattern":".*"},"displayed":{"description":"Textual description of the value. to be used by user interface applications.","type":"string","nullable":true,"pattern":".*"}}},"IntegerRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory. default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"max":{"description":"The maximum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"step":{"description":"The minimal difference between two values the field can be assigned to. For example, min=2, max=10, step=2 implies that the values the field can hold are 2, 4, 6, 8 and 10.","type":"integer","format":"int32","nullable":true},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"DefaultFromRule":{"properties":{"field":{"description":"The default of this field is taken from another field, with optional factor. The specified field must belong to the same workload section (compute, security, etc). For itemized field, the value of the field will be taken from the same instance.","type":"string","nullable":true,"pattern":".*"},"factor":{"description":"Multiple the value of the fromField by this factor to get the value for this field For example, if factor is 2 and defaultFrom field has value of 8, the calculated default will be determined to be 16.","type":"number","format":"double","nullable":true,"default":1}},"nullable":true,"type":"object"},"SupersetRulesAllOfCompute":{"title":"SupersetRulesAllOfCompute","nullable":true,"properties":{"cpuCoreLimit":{"$ref":"#/components/schemas/NumberRules"},"cpuCoreRequest":{"$ref":"#/components/schemas/NumberRules"},"cpuMemoryLimit":{"$ref":"#/components/schemas/QuantityRules"},"cpuMemoryRequest":{"$ref":"#/components/schemas/QuantityRules"},"extendedResources":{"$ref":"#/components/schemas/ExtendedResourcesRules"},"gpuDevicesRequest":{"$ref":"#/components/schemas/IntegerRules"},"gpuMemoryLimit":{"$ref":"#/components/schemas/QuantityRules"},"gpuMemoryRequest":{"$ref":"#/components/schemas/QuantityRules"},"gpuPortionLimit":{"$ref":"#/components/schemas/NumberRules"},"gpuPortionRequest":{"$ref":"#/components/schemas/NumberRules"},"gpuRequestType":{"$ref":"#/components/schemas/GpuRequestRules"},"largeShmRequest":{"$ref":"#/components/schemas/BooleanRules"}},"type":"object"},"NumberRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory. default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"number","nullable":true},"max":{"description":"The maximum value that the field can be assigned to.","type":"number","nullable":true},"step":{"description":"The minimal difference between two values the field can be assigned to. For example, min=2, max=3, step=0.25 implies that the values the field can hold are 2, 2.25, 2.5 and 3.","type":"number","nullable":true},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"QuantityRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory, default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable, default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"string","nullable":true,"pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"},"max":{"description":"The maximum value that the field can be assigned to.","type":"string","nullable":true,"pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"ExtendedResourcesRules":{"properties":{"attributes":{"$ref":"#/components/schemas/ExtendedResourceRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ExtendedResourceRules":{"description":"Rules for the attributes of extendedResources","properties":{"quantity":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"GpuRequestRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/GpuRequestOptions"}],"nullable":true,"type":"object"},"GpuRequestOptions":{"properties":{"options":{"description":"Limit the permitted values for gpuRequest to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/GpuRequestType"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"BooleanRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory. default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true}},"nullable":true,"type":"object"},"ExposedUrlsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/ExposedUrlRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ExposedUrlRules":{"description":"Rules for the attributed of exposedUrls","properties":{"container":{"$ref":"#/components/schemas/IntegerRules"},"customUrl":{"$ref":"#/components/schemas/BooleanRules"},"url":{"$ref":"#/components/schemas/StringRules"},"authorizedUsers":{"$ref":"#/components/schemas/ArrayRules"},"authorizedGroups":{"$ref":"#/components/schemas/ArrayRules"},"toolType":{"$ref":"#/components/schemas/StringRules"},"toolName":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"ArrayRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether this array is mandatory. Mandatory array must include at least one item. default to false.","type":"boolean","nullable":true},"options":{"description":"Set of options that the value of each item of the array must be chosen from.","type":"array","items":{"$ref":"#/components/schemas/StringOption"}},"canEdit":{"description":"Whether the value of the array, as a whole, is editable. default to false.","type":"boolean","nullable":true}},"nullable":true,"type":"object"},"ImagePullPolicyRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/ImagePullPolicyOptions"}],"nullable":true,"type":"object"},"ImagePullPolicyOptions":{"properties":{"options":{"description":"Limit the permitted values for imagePullPolicy to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/ImagePullPolicy"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ImagePullSecretsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/ImagePullSecretsRulesAttributes"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ImagePullSecretsRulesAttributes":{"description":"Rules for the attributes of imagePullSecrets","properties":{"name":{"$ref":"#/components/schemas/StringRules"},"userCredentials":{"$ref":"#/components/schemas/BooleanRules"}},"nullable":true,"type":"object"},"ArbitraryRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether this arbitrary object is mandatory. default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field, as a whole, is editable. default to false.","type":"boolean","nullable":true}},"nullable":true,"type":"object"},"PodAffinityRules":{"properties":{"type":{"$ref":"#/components/schemas/PodAffinityTypeRules"},"key":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"PodAffinityTypeRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/PodAffinityTypeOptions"}],"nullable":true,"type":"object"},"PodAffinityTypeOptions":{"properties":{"options":{"type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/PodAffinityType"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"type":"object"},"PortsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/PortRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"PortRules":{"description":"Rules for port attributes","properties":{"container":{"$ref":"#/components/schemas/IntegerRules"},"serviceType":{"$ref":"#/components/schemas/PortServiceTypeRules"},"customExternalPort":{"$ref":"#/components/schemas/BooleanRules"},"external":{"$ref":"#/components/schemas/IntegerRules"},"toolType":{"$ref":"#/components/schemas/StringRules"},"toolName":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"PortServiceTypeRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/PortServiceTypeOptions"}],"nullable":true,"type":"object"},"PortServiceTypeOptions":{"properties":{"options":{"type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/PortServiceType"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"PreemptibilityRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/PreemptibilityOptions"}],"nullable":true,"type":"object"},"PreemptibilityOptions":{"properties":{"options":{"description":"Limit the permitted values for preemptibility to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/Preemptibility"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ProbesRules":{"properties":{"readiness":{"$ref":"#/components/schemas/ProbeRules"}},"nullable":true,"type":"object"},"ProbeRules":{"properties":{"initialDelaySeconds":{"$ref":"#/components/schemas/IntegerRules"},"periodSeconds":{"$ref":"#/components/schemas/IntegerRules"},"timeoutSeconds":{"$ref":"#/components/schemas/IntegerRules"},"successThreshold":{"$ref":"#/components/schemas/IntegerRules"},"failureThreshold":{"$ref":"#/components/schemas/IntegerRules"},"handler":{"$ref":"#/components/schemas/ProbeHandlerRules"}},"nullable":true,"type":"object"},"ProbeHandlerRules":{"properties":{"httpGet":{"properties":{"path":{"$ref":"#/components/schemas/StringRules"},"port":{"$ref":"#/components/schemas/IntegerRules"},"host":{"$ref":"#/components/schemas/StringRules"},"scheme":{"$ref":"#/components/schemas/StringRules"}}}},"nullable":true,"type":"object"},"RelatedUrlsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/RelatedUrlRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"RelatedUrlRules":{"description":"Rules for the attributes of relatedUrls","properties":{"url":{"$ref":"#/components/schemas/StringRules"},"type":{"$ref":"#/components/schemas/StringRules"},"name":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"RestartPolicyRule":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/RestartPolicyOptions"}],"nullable":true,"type":"object"},"RestartPolicyOptions":{"properties":{"options":{"description":"Limit the permitted values for restartPolicy to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/RestartPolicy"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"SupersetRulesAllOfSecurity":{"title":"SupersetRulesAllOfSecurity","nullable":true,"properties":{"allowPrivilegeEscalation":{"$ref":"#/components/schemas/BooleanRules"},"capabilities":{"$ref":"#/components/schemas/ArrayRules"},"hostIpc":{"$ref":"#/components/schemas/BooleanRules"},"hostNetwork":{"$ref":"#/components/schemas/BooleanRules"},"readOnlyRootFilesystem":{"$ref":"#/components/schemas/BooleanRules"},"runAsGid":{"$ref":"#/components/schemas/IntegerRulesOptional"},"runAsNonRoot":{"$ref":"#/components/schemas/BooleanRules"},"runAsUid":{"$ref":"#/components/schemas/IntegerRulesOptional"},"seccompProfileType":{"$ref":"#/components/schemas/SeccompProfileTypeRules"},"supplementalGroups":{"$ref":"#/components/schemas/StringRules"},"uidGidSource":{"$ref":"#/components/schemas/UidGidSourceRules"}},"type":"object"},"IntegerRulesOptional":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"max":{"description":"The maximum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"step":{"description":"The minimal difference between two values the field can be assigned to. For example, min=2, max=10, step=2 implies that the values the field can hold are 2, 4, 6, 8 and 10.","type":"integer","format":"int32","nullable":true},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"SeccompProfileTypeRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/SeccompProfileTypeOptions"}],"nullable":true,"type":"object"},"SeccompProfileTypeOptions":{"properties":{"options":{"description":"Limit the permitted values for secompProfileType to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/SeccompProfileType"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"UidGidSourceRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/UidGidSourceOptions"}],"nullable":true,"type":"object"},"UidGidSourceOptions":{"properties":{"options":{"description":"Limit the permitted values for uidGidSource to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/UidGidSource"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ConfigMapsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/ConfigMapRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ConfigMapRules":{"properties":{"configMap":{"$ref":"#/components/schemas/StringRules"},"mountPath":{"$ref":"#/components/schemas/StringRules"},"subPath":{"$ref":"#/components/schemas/StringRules"},"defaultMode":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"DataVolumesRules":{"properties":{"attributes":{"$ref":"#/components/schemas/DataVolumeRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"DataVolumeRules":{"properties":{"id":{"$ref":"#/components/schemas/StringRules"},"mountPath":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"EmptyDirsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/EmptyDirRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"EmptyDirRules":{"properties":{"path":{"$ref":"#/components/schemas/StringRules"},"medium":{"$ref":"#/components/schemas/StringRules"},"sizeLimit":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"GitsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/GitRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"GitRules":{"properties":{"repository":{"$ref":"#/components/schemas/StringRules"},"branch":{"$ref":"#/components/schemas/StringRules"},"revision":{"$ref":"#/components/schemas/StringRules"},"path":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"HostPathsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/HostPathRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"HostPathRules":{"properties":{"path":{"$ref":"#/components/schemas/StringRules"},"readOnly":{"$ref":"#/components/schemas/BooleanRules"},"mountPath":{"$ref":"#/components/schemas/StringRules"},"mountPropagation":{"$ref":"#/components/schemas/HostPathMountPropagationRules"}},"nullable":true,"type":"object"},"HostPathMountPropagationRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/HostPathMountPropagationOptions"}],"nullable":true,"type":"object"},"HostPathMountPropagationOptions":{"properties":{"options":{"type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/HostPathMountPropagation"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}}},"NfssRules":{"properties":{"attributes":{"$ref":"#/components/schemas/NfsRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"NfsRules":{"properties":{"path":{"$ref":"#/components/schemas/StringRules"},"readOnly":{"$ref":"#/components/schemas/BooleanRules"},"server":{"$ref":"#/components/schemas/StringRules"},"mountPath":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"PvcsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/PvcRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"PvcRules":{"properties":{"claimName":{"$ref":"#/components/schemas/StringRules"},"path":{"$ref":"#/components/schemas/StringRules"},"readOnly":{"$ref":"#/components/schemas/BooleanRules"},"claimInfo":{"$ref":"#/components/schemas/ClaimInfoRules"}},"nullable":true,"type":"object"},"ClaimInfoRules":{"properties":{"size":{"$ref":"#/components/schemas/StringRules"},"storageClass":{"$ref":"#/components/schemas/StringRules"},"accessModes":{"$ref":"#/components/schemas/PvcAccessModesRules"}},"nullable":true,"type":"object"},"PvcAccessModesRules":{"description":"Rules for access mode(s) for a newly created PVC.","properties":{"readWriteOnce":{"$ref":"#/components/schemas/BooleanRules"},"readOnlyMany":{"$ref":"#/components/schemas/BooleanRules"},"readWriteMany":{"$ref":"#/components/schemas/BooleanRules"}},"nullable":true,"type":"object"},"S3sRules":{"properties":{"attributes":{"$ref":"#/components/schemas/S3Rules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"S3Rules":{"properties":{"bucket":{"$ref":"#/components/schemas/StringRules"},"path":{"$ref":"#/components/schemas/StringRules"},"url":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"SecretsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/SecretRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"SecretRules":{"properties":{"secret":{"$ref":"#/components/schemas/StringRules"},"mountPath":{"$ref":"#/components/schemas/StringRules"},"defaultMode":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"TolerationsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/TolerationRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"TolerationRules":{"description":"Toleration details.","properties":{"operator":{"$ref":"#/components/schemas/TolerationOperatorRules"},"key":{"$ref":"#/components/schemas/StringRules"},"value":{"$ref":"#/components/schemas/StringRules"},"effect":{"$ref":"#/components/schemas/TolerationEffectRules"},"seconds":{"$ref":"#/components/schemas/IntegerRules"},"exclude":{"$ref":"#/components/schemas/BooleanRules"}},"nullable":true,"type":"object"},"TolerationOperatorRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/TolerationOperatorOptions"}],"nullable":true,"type":"object"},"TolerationOperatorOptions":{"properties":{"options":{"description":"Limit the permitted values for imagePullPolicy to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/TolerationOperator"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"TolerationEffectRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/TolerationEffectOptions"}],"nullable":true,"type":"object"},"TolerationEffectOptions":{"properties":{"options":{"description":"Limit the permitted values for imagePullPolicy to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/TolerationEffect"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"CleanPodPolicyRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/CleanPodPolicyOptions"}],"nullable":true,"type":"object"},"CleanPodPolicyOptions":{"properties":{"options":{"type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/CleanPodPolicy"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"DistributedFrameworkRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/DistributedFrameworkOptions"}],"nullable":true,"type":"object"},"DistributedFrameworkOptions":{"properties":{"options":{"type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/DistributedFramework"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"MpiLauncherCreationPolicyRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/MpiLauncherCreationPolicyOptions"}],"nullable":true,"type":"object"},"MpiLauncherCreationPolicyOptions":{"properties":{"options":{"type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/MpiLauncherCreationPolicy"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"DistributedImposedAssets":{"properties":{"worker":{"$ref":"#/components/schemas/ImposedAssets"},"master":{"$ref":"#/components/schemas/ImposedAssets"}},"nullable":true,"type":"object"},"ImposedAssets":{"description":"a list of datasource assets to import into the policy. these datasources will be included in any workload that will be created in the scope of the policy.","type":"array","items":{"type":"string","format":"uuid"},"nullable":true},"PolicyValidationStatus":{"properties":{"validation":{"properties":{"errorMessage":{"pattern":".*","type":"string","description":"In case validation failed, holds the error message explaining the issue"}},"nullable":true,"type":"object"}},"nullable":true,"type":"object"},"DistributedPolicyV2":{"properties":{"meta":{"$ref":"#/components/schemas/PolicyMeta"},"policy":{"$ref":"#/components/schemas/DistributedPolicyDefaultsAndRulesV2"},"effective":{"$ref":"#/components/schemas/DistributedPolicyDefaultsAndRulesV2"},"effectiveUpdatedAt":{"$ref":"#/components/schemas/Timestamp"}},"nullable":true,"type":"object"},"PolicyMeta":{"allOf":[{"$ref":"#/components/schemas/PolicyReadOnlyFields"},{"$ref":"#/components/schemas/PolicyCreationFields"}]},"PolicyReadOnlyFields":{"required":["id","createdBy","createdAt","updatedBy","updatedAt"],"properties":{"id":{"$ref":"#/components/schemas/PolicyId"},"tenantId":{"$ref":"#/components/schemas/TenantId"},"clusterId":{"$ref":"#/components/schemas/ClusterIdOptional"},"createdBy":{"description":"The user who created the policy.","type":"string","minLength":1},"createdAt":{"description":"The time at which the policy wes created","type":"string","minLength":1,"format":"date-time"},"updatedBy":{"description":"The user who updated the policy.","type":"string","minLength":1},"updatedAt":{"description":"The time at which the policy has been updated","type":"string","minLength":1,"format":"date-time"}}},"PolicyId":{"description":"The unique id of the policy.","type":"string","minLength":1,"format":"uuid"},"TenantId":{"description":"The id of the tenant.","type":"integer","format":"int32"},"Timestamp":{"description":"The time at which an event occurred. e.g. the time an effective policy has been updated","type":"string","minLength":1,"format":"date-time"},"Error":{"required":["code","message"],"properties":{"code":{"type":"integer","minimum":100,"maximum":599},"message":{"type":"string"},"details":{"type":"string"}}}},"responses":{"400BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401Unauthorized":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403Forbidden":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503ServiceUnavailable":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/api/v2/policy/distributed":{"put":{"summary":"Overwrite a distributed policy.","description":"Use to apply a distributed policy for a given organizational unit.","operationId":"overwrite_distributed_policy_v2","tags":["Policy"],"parameters":[{"$ref":"#/components/parameters/ValidateOnly"},{"$ref":"#/components/parameters/ApproveClusterDeletion"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DistributedPolicyOverwriteRequestV2"}}}},"responses":{"200":{"description":"Policy applied.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DistributedPolicyV2"}}}},"400":{"$ref":"#/components/responses/400BadRequest"},"401":{"$ref":"#/components/responses/401Unauthorized"},"403":{"$ref":"#/components/responses/403Forbidden"},"503":{"$ref":"#/components/responses/503ServiceUnavailable"}}}}}}
```

## Delete a distributed policy.

> Use to delete a distributed policy for a given organizational unit.

```json
{"openapi":"3.0.3","info":{"title":"NVIDIA Run:ai","version":"2.26"},"tags":[{"name":"Policy","description":"Policies allow administrators to impose restrictions and set default values for researcher workloads. \nRestrictions and default values can be placed on CPUs, GPUs, and other resources or entities. \nFor more information, see [Policies](https://run-ai-docs.nvidia.com/self-hosted/2.26/platform-management/policies/#introduction).\n"}],"servers":[{"url":"https://app.run.ai"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer authentication"}},"parameters":{"PolicyScope":{"name":"scope","in":"query","required":true,"description":"The scope that the policy relates to.","schema":{"type":"string","enum":["tenant","cluster","department","project"]}},"FilterByDepartment":{"name":"departmentId","in":"query","description":"Filter using the department id.","required":false,"schema":{"type":"string"}},"FilterByProject":{"name":"projectId","in":"query","description":"project id to filter by","required":false,"schema":{"type":"string"}},"FilterByCluster":{"name":"clusterId","in":"query","description":"Filter using the Universally Unique Identifier (UUID) of the cluster.","required":false,"schema":{"type":"string","format":"uuid"}},"ApproveClusterDeletion":{"name":"approveClusterDeletion","in":"query","required":false,"description":"Required when modifying or deleting a policy if the tenant includes one or more clusters running version 2.20 or earlier. In such cases, the platform must delete the policy from the affected clusters. This flag indicates that the administrator approves this deletion.","schema":{"type":"boolean"}}},"responses":{"400BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401Unauthorized":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403Forbidden":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404NotFound":{"description":"The specified resource was not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503ServiceUnavailable":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"schemas":{"Error":{"required":["code","message"],"properties":{"code":{"type":"integer","minimum":100,"maximum":599},"message":{"type":"string"},"details":{"type":"string"}}}}},"paths":{"/api/v2/policy/distributed":{"delete":{"summary":"Delete a distributed policy.","description":"Use to delete a distributed policy for a given organizational unit.","operationId":"delete_distributed_policy","tags":["Policy"],"parameters":[{"$ref":"#/components/parameters/PolicyScope"},{"$ref":"#/components/parameters/FilterByDepartment"},{"$ref":"#/components/parameters/FilterByProject"},{"$ref":"#/components/parameters/FilterByCluster"},{"$ref":"#/components/parameters/ApproveClusterDeletion"}],"responses":{"204":{"description":"The policy was deleted successfully."},"400":{"$ref":"#/components/responses/400BadRequest"},"401":{"$ref":"#/components/responses/401Unauthorized"},"403":{"$ref":"#/components/responses/403Forbidden"},"404":{"$ref":"#/components/responses/404NotFound"},"503":{"$ref":"#/components/responses/503ServiceUnavailable"}}}}}}
```

## Update a distributed policy.

> Use to apply changes to a distributed policy for a given organizational unit.

```json
{"openapi":"3.0.3","info":{"title":"NVIDIA Run:ai","version":"2.26"},"tags":[{"name":"Policy","description":"Policies allow administrators to impose restrictions and set default values for researcher workloads. \nRestrictions and default values can be placed on CPUs, GPUs, and other resources or entities. \nFor more information, see [Policies](https://run-ai-docs.nvidia.com/self-hosted/2.26/platform-management/policies/#introduction).\n"}],"servers":[{"url":"https://app.run.ai"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer authentication"}},"parameters":{"ValidateOnly":{"name":"validateOnly","in":"query","required":false,"description":"Validate the given policy payload without applying it","schema":{"type":"boolean"}},"ApproveClusterDeletion":{"name":"approveClusterDeletion","in":"query","required":false,"description":"Required when modifying or deleting a policy if the tenant includes one or more clusters running version 2.20 or earlier. In such cases, the platform must delete the policy from the affected clusters. This flag indicates that the administrator approves this deletion.","schema":{"type":"boolean"}}},"schemas":{"DistributedPolicyChangeRequestV2":{"properties":{"meta":{"$ref":"#/components/schemas/PolicyCreationFields"},"policy":{"$ref":"#/components/schemas/DistributedPolicyDefaultsAndRulesV2"},"reset":{"$ref":"#/components/schemas/FieldsToReset"}},"type":"object"},"PolicyCreationFields":{"required":["name","scope"],"properties":{"scope":{"$ref":"#/components/schemas/ScopeType"},"projectId":{"$ref":"#/components/schemas/ProjectIdOptional"},"departmentId":{"$ref":"#/components/schemas/DepartmentIdOptional"},"clusterId":{"$ref":"#/components/schemas/ClusterIdOptional"},"name":{"$ref":"#/components/schemas/PolicyName"}}},"ScopeType":{"type":"string","enum":["system","tenant","cluster","department","project"]},"ProjectIdOptional":{"description":"The id of the project.","type":"integer","format":"int32","nullable":true},"DepartmentIdOptional":{"description":"The id of the department.","type":"string","minLength":1,"nullable":true,"pattern":".*"},"ClusterIdOptional":{"description":"The id of the cluster.","type":"string","format":"uuid","minLength":1,"nullable":true},"PolicyName":{"description":"A chosen name for the policy.","type":"string","minLength":1,"pattern":".*"},"DistributedPolicyDefaultsAndRulesV2":{"properties":{"defaults":{"$ref":"#/components/schemas/DistributedPolicyDefaultsV2"},"rules":{"$ref":"#/components/schemas/DistributedPolicyRulesV2"},"imposedAssets":{"$ref":"#/components/schemas/DistributedImposedAssets"},"status":{"$ref":"#/components/schemas/PolicyValidationStatus"}},"nullable":true,"type":"object"},"DistributedPolicyDefaultsV2":{"nullable":true,"properties":{"master":{"$ref":"#/components/schemas/ReplicaDefaultsV2"},"worker":{"allOf":[{"$ref":"#/components/schemas/ReplicaDefaultsV2"},{"nullable":true,"properties":{"cleanPodPolicy":{"$ref":"#/components/schemas/CleanPodPolicy"},"distributedFramework":{"$ref":"#/components/schemas/DistributedFramework"},"maxReplicas":{"$ref":"#/components/schemas/MaxReplicas"},"minReplicas":{"$ref":"#/components/schemas/MinReplicas"},"mpiLauncherCreationPolicy":{"$ref":"#/components/schemas/MpiLauncherCreationPolicy"},"numWorkers":{"$ref":"#/components/schemas/NumWorkers"},"slotsPerWorker":{"$ref":"#/components/schemas/SlotsPerWorker"},"sshAuthMountPath":{"$ref":"#/components/schemas/SshAuthMountPath"}},"type":"object"}],"nullable":true,"type":"object"}},"type":"object"},"ReplicaDefaultsV2":{"nullable":true,"properties":{"annotations":{"$ref":"#/components/schemas/AnnotationsDefaults"},"args":{"$ref":"#/components/schemas/Args"},"autoDeletionTimeAfterCompletionSeconds":{"$ref":"#/components/schemas/AutoDeletionTimeAfterPreemption"},"backoffLimit":{"$ref":"#/components/schemas/BackoffLimit"},"category":{"$ref":"#/components/schemas/Category"},"command":{"$ref":"#/components/schemas/Command"},"compute":{"$ref":"#/components/schemas/SupersetDefaultsAllOfCompute"},"createHomeDir":{"$ref":"#/components/schemas/CreateHomeDir"},"environmentVariables":{"$ref":"#/components/schemas/EnvironmentVariablesDefaults"},"exposedUrls":{"$ref":"#/components/schemas/ExposedUrlsDefaults"},"image":{"$ref":"#/components/schemas/Image"},"imagePullPolicy":{"$ref":"#/components/schemas/ImagePullPolicy"},"imagePullSecrets":{"$ref":"#/components/schemas/ImagePullSecretsDefaults"},"labels":{"$ref":"#/components/schemas/LabelsDefaults"},"nodeAffinityRequired":{"$ref":"#/components/schemas/NodeAffinityRequired"},"nodePools":{"$ref":"#/components/schemas/NodePools"},"nodeType":{"$ref":"#/components/schemas/NodeType2"},"podAffinity":{"$ref":"#/components/schemas/PodAffinity"},"ports":{"$ref":"#/components/schemas/PortsDefaults"},"preemptibility":{"$ref":"#/components/schemas/Preemptibility"},"priorityClass":{"$ref":"#/components/schemas/PriorityClass"},"probes":{"$ref":"#/components/schemas/Probes"},"relatedUrls":{"$ref":"#/components/schemas/RelatedUrlsDefaults"},"restartPolicy":{"$ref":"#/components/schemas/RestartPolicy"},"security":{"$ref":"#/components/schemas/SupersetDefaultsAllOfSecurity"},"stdin":{"$ref":"#/components/schemas/Stdin"},"storage":{"nullable":true,"properties":{"configMapVolume":{"$ref":"#/components/schemas/ConfigMapsDefaults"},"dataVolume":{"$ref":"#/components/schemas/DataVolumesDefaults"},"emptyDirVolume":{"$ref":"#/components/schemas/EmptyDirsDefaults"},"git":{"$ref":"#/components/schemas/GitsDefaults"},"hostPath":{"$ref":"#/components/schemas/HostPathsDefaults"},"nfs":{"$ref":"#/components/schemas/NfssDefaults"},"pvc":{"$ref":"#/components/schemas/PvcsDefaults"},"s3":{"$ref":"#/components/schemas/S3sDefaults"},"secretVolume":{"$ref":"#/components/schemas/SecretsDefaults"}},"type":"object"},"terminateAfterPreemption":{"$ref":"#/components/schemas/TerminateAfterPreemption"},"terminationGracePeriodSeconds":{"$ref":"#/components/schemas/TerminationGracePeriod"},"tolerations":{"$ref":"#/components/schemas/TolerationsDefaults"},"tty":{"$ref":"#/components/schemas/Tty"},"workingDir":{"$ref":"#/components/schemas/WorkingDir"}},"type":"object"},"AnnotationsDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/Annotations"}},"nullable":true,"type":"object"},"Annotations":{"description":"Set of annotations to populate into the container running the workload.","type":"array","items":{"$ref":"#/components/schemas/Annotation"},"maxItems":1000,"nullable":true},"Annotation":{"description":"Annotation details to be populated into the container.","properties":{"name":{"description":"The name of the annotation (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":".*"},"value":{"description":"The value of the annotation.","type":"string","maxLength":10000,"nullable":true,"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","default":false,"nullable":true}},"nullable":true,"type":"object"},"Args":{"description":"Arguments to the command that the container running the workload executes.","type":"string","minLength":1,"maxLength":10000,"nullable":true,"pattern":".*"},"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","nullable":true},"BackoffLimit":{"description":"Specifies the number of retries before marking a workload as failed (not applicable to Inference workloads). The default value is 6.","format":"int64","type":"integer","nullable":true},"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":".*"},"Command":{"description":"A command to the server as the entry point of the container running the workload.","type":"string","minLength":1,"maxLength":10000,"nullable":true,"pattern":".*"},"SupersetDefaultsAllOfCompute":{"title":"SupersetDefaultsAllOfCompute","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/ExtendedResourcesDefaults"},"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"},"CpuCoreLimit":{"description":"Limitations on the number of CPUs consumed by the workload (0.5, 1, .etc). The system guarantees that this workload will not be able to consume more than this amount of CPUs.","format":"double","type":"number","nullable":true,"minimum":0},"CpuCoreRequest":{"description":"CPU units to allocate for the created workload (0.5, 1, .etc). The workload will receive at least this amount of CPU. Note that the workload will not be scheduled unless the system can guarantee this amount of CPUs to the workload.","format":"double","type":"number","nullable":true,"minimum":0},"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]*)$","maxLength":63,"nullable":true},"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","pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$","maxLength":63,"nullable":true},"ExtendedResourcesDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/ExtendedResource"},"instances":{"$ref":"#/components/schemas/ExtendedResources"}},"nullable":true,"type":"object"},"ExtendedResource":{"description":"Quantity of an extended resource.","properties":{"resource":{"description":"The name of the extended resource (mandatory)","type":"string","minLength":1,"maxLength":253,"nullable":true,"pattern":".*"},"quantity":{"description":"The requested quantity for the resource.","type":"string","minLength":1,"maxLength":63,"nullable":true,"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","nullable":true}},"nullable":true,"type":"object"},"ExtendedResources":{"description":"Extended resources and their quantity.","type":"array","items":{"$ref":"#/components/schemas/ExtendedResource"},"maxItems":1000,"nullable":true},"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","format":"int32","nullable":true,"minimum":0},"GpuMemoryLimit":{"description":"Limitation on the memory consumed by the workload, per GPU device. The system guarantees The gpuMemoryLimit must be no less than gpuMemoryRequest.","type":"string","pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$","maxLength":63,"nullable":true},"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]*)$","maxLength":63,"nullable":true},"GpuPortionLimit":{"description":"Limitations on the portion consumed by the workload, per GPU device. The system guarantees The gpuPotionLimit must be no less than the gpuPortionRequest.","type":"number","format":"double","nullable":true,"minimum":0},"GpuPortionRequest":{"description":"Required if and only if gpuRequestType is portion. States the portion of the GPU to allocate for the created workload, per GPU device, between 0 and 1. The default is no allocated GPUs.","type":"number","format":"double","nullable":true,"minimum":0},"GpuRequestType":{"description":"Sets the unit type for GPU resources requests. Stated in terms of portion or memory. Sets the unit type for other GPU request fields. If `gpuDevicesRequest > 1`, only `portion` is supported. If `gpuDeviceRequest = 1`, the request type can be stated as `portion` or `memory`.","type":"string","minLength":1,"enum":["portion","memory"],"nullable":true},"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","nullable":true},"CreateHomeDir":{"description":"When set to `true`, creates a home directory for the container.","type":"boolean","nullable":true},"EnvironmentVariablesDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/EnvironmentVariables"}},"nullable":true,"type":"object"},"EnvironmentVariables":{"description":"Set of environment variables to populate into the container running the workload.","type":"array","items":{"$ref":"#/components/schemas/EnvironmentVariable"},"maxItems":1000,"nullable":true},"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,"maxLength":63,"nullable":true,"pattern":".*"},"value":{"description":"The value of the environment variable. (mutually exclusive with secret, userCredential, configMap and podFieldRef)","type":"string","maxLength":10000,"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","nullable":true},"description":{"description":"Description of the environment variable.","type":"string","maxLength":250,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"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,"maxLength":253,"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,"maxLength":63,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"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","minLength":1,"maxLength":253,"nullable":true,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$"},"key":{"description":"The key in the config-map resource. (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"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","minLength":1,"maxLength":10000,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"EnvironmentVariableUserCredential":{"description":"Defines a reference to a user-created credential and a specific key within that credential whose value will populate the environment variable. User credentials can only be accessed by the user who created them.","properties":{"name":{"description":"The name of the user credential.  (mandatory)","type":"string","minLength":1,"maxLength":253,"nullable":true},"key":{"description":"The key in the user credential resource. (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true}},"nullable":true,"type":"object"},"ExposedUrlsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/ExposedUrl"},"instances":{"$ref":"#/components/schemas/ExposedUrls"}},"nullable":true,"type":"object"},"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","nullable":true},"url":{"$ref":"#/components/schemas/Url"},"authorizationType":{"$ref":"#/components/schemas/AuthorizationType"},"authorizedUsers":{"$ref":"#/components/schemas/AuthorizedUsers"},"authorizedGroups":{"$ref":"#/components/schemas/AuthorizedGroups"},"toolType":{"description":"The tool type that runs on this container port.","type":"string","nullable":true,"pattern":".*"},"toolName":{"description":"A name describing the tool that runs on this url.","type":"string","nullable":true,"pattern":".*","maxLength":253},"name":{"description":"Unique name to identify the instance. primarily used for policy locked rules.","type":"string","minLength":1,"maxLength":253,"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","nullable":true}},"nullable":true,"type":"object"},"Url":{"description":"The URL for connecting to the container port. If not specified, the URL will be auto-generated by the system.","type":"string","maxLength":2048,"pattern":".*","nullable":true},"AuthorizationType":{"type":"string","enum":["authenticatedUsers","authorizedUsers","authorizedGroups"],"description":"Specifies who can access the connection URL:\n- `authenticatedUsers`: Any authenticated user or service account can access the URL; the authorizedUsers and authorizedGroups fields are ignored.\n- `authorizedUsers`: Only users listed in the authorizedUsers field are allowed to access the URL; the authorizedGroups field is ignored.\n- `authorizedGroups`: Only members of user groups listed in the authorizedGroups field are allowed to access the URL; the authorizedUsers field is ignored.\nIf 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.\n","nullable":true},"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","maxLength":253,"pattern":".*"},"maxItems":1000,"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","maxLength":253,"pattern":".*"},"maxItems":1000,"nullable":true},"ExposedUrls":{"description":"Set of container ports that the workload exposes via URLs.","type":"array","items":{"$ref":"#/components/schemas/ExposedUrl"},"maxItems":1000,"nullable":true},"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","minLength":1,"maxLength":253,"nullable":true,"pattern":".*"},"ImagePullPolicy":{"description":"Image pull policy. Defaults to `Always` if `:latest` tag is specified, otherwise it is `IfNotPresent`.","type":"string","minLength":1,"enum":["Always","Never","IfNotPresent"],"nullable":true},"ImagePullSecretsDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/ImagePullSecrets"}},"nullable":true,"type":"object"},"ImagePullSecrets":{"description":"A list of references to Kubernetes secrets in the same namespace used for pulling container images.","type":"array","items":{"$ref":"#/components/schemas/ImagePullSecret"},"maxItems":1000,"nullable":true},"ImagePullSecret":{"description":"A reference to a secret in the same namespace used to pull container images.","properties":{"name":{"type":"string","description":"The name of the Kubernetes secret containing the image pull credentials.","pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$","maxLength":253},"userCredential":{"type":"boolean","description":"Indicates whether the secret is a user credential. Set to true if the secret was created by the user and is only accessible by them.","nullable":true},"exclude":{"description":"Use 'true' in case the secret is defined in defaults of the policy, and you wish to exclude it from the workload.","type":"boolean","default":false,"nullable":true}},"nullable":true,"type":"object"},"LabelsDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/Labels"}},"nullable":true,"type":"object"},"Labels":{"description":"Set of labels to populate into the container running the workload.","type":"array","items":{"$ref":"#/components/schemas/Label"},"maxItems":1000,"nullable":true},"Label":{"description":"Label details to be populated into the container.","properties":{"name":{"description":"The name of the label (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":".*"},"value":{"description":"The value of the label.","type":"string","nullable":true,"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","nullable":true}},"nullable":true,"type":"object"},"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"},"maxItems":1000}},"nullable":true},"NodeSelectorTerm":{"type":"object","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"},"maxItems":1000}},"nullable":true},"MatchExpression":{"type":"object","description":"A selector that contains values, a key, and an operator that relates the key and values.","properties":{"key":{"description":"The label key that the selector applies to (mandatory).","type":"string","pattern":".*","maxLength":63},"operator":{"$ref":"#/components/schemas/MatchExpressionOperator"},"values":{"description":"An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer.","type":"array","items":{"type":"string","maxLength":10000,"pattern":".*"},"maxItems":1000}},"required":["key","operator"],"nullable":true},"MatchExpressionOperator":{"description":"Represents a key's relationship to a set of values (mandatory).","type":"string","enum":["In","NotIn","Exists","DoesNotExist","Gt","Lt"]},"NodePools":{"description":"A prioritized list of node pools for the scheduler to run the workload on. The scheduler will always try to use the first node pool before moving to the next one if the first is not available.","type":"array","items":{"type":"string","maxLength":63,"pattern":".*"},"maxItems":1000,"nullable":true},"NodeType2":{"deprecated":true,"description":"Deprecated: use a workload policy node selector to target node types instead. 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","minLength":1,"nullable":true,"pattern":".*"},"PodAffinity":{"description":"Pod affinity scheduling rules (e.g. co-locate this workload in the same node, zone, etc. as some other workloads).","type":"object","properties":{"type":{"$ref":"#/components/schemas/PodAffinityType"},"key":{"description":"The label key to use. (mandatory)","type":"string","nullable":true,"pattern":".*","maxLength":63}},"nullable":true},"PodAffinityType":{"description":"The affinity type, required or preferred. (mandatory)","type":"string","enum":["Required","Preferred"],"nullable":true},"PortsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/Port"},"instances":{"$ref":"#/components/schemas/Ports"}},"nullable":true,"type":"object"},"Port":{"description":"A port for accessing the workload.","properties":{"container":{"description":"The port that the container running the workload exposes. (mandatory)","type":"integer","format":"int32","minimum":1,"maximum":65535,"nullable":true},"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","format":"int32","nullable":true},"toolType":{"description":"The tool type that runs on this port.","type":"string","nullable":true,"pattern":".*","maxLength":63},"toolName":{"description":"A name describing the tool that runs on this port.","type":"string","nullable":true,"pattern":".*","maxLength":253},"name":{"description":"Unique name to identify the instance. primarily used for policy locked rules.","type":"string","minLength":1,"maxLength":63,"nullable":true,"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","default":false,"nullable":true}},"nullable":true,"type":"object"},"PortServiceType":{"description":"The service type of the port (mandatory).","type":"string","enum":["LoadBalancer","NodePort","ClusterIP"],"nullable":true},"Ports":{"description":"Set of container ports that the workload exposes.","type":"array","items":{"$ref":"#/components/schemas/Port"},"maxItems":1000,"nullable":true},"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","minLength":1,"enum":["preemptible","non-preemptible"],"nullable":true},"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","nullable":true,"pattern":".*"},"Probes":{"description":"Probes are used to determine if the container is healthy and ready to accept traffic.","type":"object","properties":{"readiness":{"$ref":"#/components/schemas/Probe"}},"nullable":true},"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},"ProbeHandler":{"description":"The action taken to determine the health of the container. (mandatory)","type":"object","properties":{"httpGet":{"description":"An action based on HTTP Get requests.","type":"object","properties":{"path":{"description":"Path to access on the HTTP server, defaults to /.","type":"string","pattern":"^(\\x2F[a-zA-Z0-9\\-_.\\x2F]*)?$","nullable":true,"maxLength":2048},"port":{"description":"Number of the port to access on the container.","type":"integer","format":"int32","minimum":1,"maximum":65535,"nullable":true},"host":{"description":"Host name to connect to, defaults to the pod IP.","type":"string","format":"hostname","nullable":true,"pattern":".*","maxLength":253},"scheme":{"$ref":"#/components/schemas/ProbeHandlerScheme"}}}},"nullable":true},"ProbeHandlerScheme":{"description":"Scheme to use for connecting to the host, defaults to HTTP.","type":"string","enum":["HTTP","HTTPS"],"nullable":true},"RelatedUrlsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/RelatedUrl"},"instances":{"$ref":"#/components/schemas/RelatedUrls"}},"nullable":true,"type":"object"},"RelatedUrl":{"description":"A URL that is related to the workload. For example, a URL to an external server providing statistics or logging about the workload.","properties":{"url":{"description":"The URL for connecting an external service related to the workload. (mandatory)","type":"string","nullable":true,"pattern":".*","maxLength":2048},"type":{"description":"The type of service that the url provides. For example, wandb (Weights & Biases). (mandatory)","type":"string","nullable":true,"pattern":".*","maxLength":63},"name":{"description":"Unique name to identify the instance. primarily used for policy locked rules.","type":"string","nullable":true,"pattern":".*","maxLength":63},"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,"nullable":true}},"nullable":true,"type":"object"},"RelatedUrls":{"description":"Set of URLs that are related to the workload.","type":"array","items":{"$ref":"#/components/schemas/RelatedUrl"},"maxItems":1000,"nullable":true},"RestartPolicy":{"description":"Specify the restart policy of the workload pods. Default is empty, which is determine by the framework default.\nThe `Always` value is deprecated; use `OnFailure` or `Never` instead.\n","type":"string","minLength":1,"enum":["Always","Never","OnFailure"],"nullable":true},"SupersetDefaultsAllOfSecurity":{"title":"SupersetDefaultsAllOfSecurity","nullable":true,"properties":{"allowPrivilegeEscalation":{"$ref":"#/components/schemas/AllowPrivilegeEscalation"},"capabilities":{"$ref":"#/components/schemas/Capabilities"},"hostIpc":{"$ref":"#/components/schemas/HostIpc"},"hostNetwork":{"$ref":"#/components/schemas/HostNetwork"},"readOnlyRootFilesystem":{"$ref":"#/components/schemas/ReadOnlyRootFileSystem"},"runAsGid":{"$ref":"#/components/schemas/RunAsGid"},"runAsNonRoot":{"$ref":"#/components/schemas/RunAsNonRoot"},"runAsUid":{"$ref":"#/components/schemas/RunAsUid"},"seccompProfileType":{"$ref":"#/components/schemas/SeccompProfileType"},"supplementalGroups":{"$ref":"#/components/schemas/SupplementalGroups"},"uidGidSource":{"$ref":"#/components/schemas/UidGidSource"}},"type":"object"},"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://run-ai-docs.nvidia.com/self-hosted/2.26/infrastructure-setup/advanced-setup/container-access/user-identity-in-containers","type":"boolean","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"},"nullable":true},"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"]},"HostIpc":{"description":"Whether to enable host IPC. Defaults to false.","type":"boolean","nullable":true},"HostNetwork":{"description":"Whether to enable host networking. Default to false.","type":"boolean","nullable":true},"ReadOnlyRootFileSystem":{"description":"If true, mounts the container's root filesystem as read-only.","type":"boolean","nullable":true},"RunAsGid":{"description":"The group id to run the entrypoint of the container which executes the workspace. Default to the value specified in the environment asset `runAsGid` field (optional). Use only when the source uid/gid of the environment asset is not `fromTheImage`, and `overrideUidGidInWorkspace` is enabled.","type":"integer","format":"int64","nullable":true},"RunAsNonRoot":{"description":"Force the container to run as a non-root user.","type":"boolean","nullable":true},"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","format":"int64","nullable":true},"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","enum":["RuntimeDefault","Unconfined","Localhost"],"nullable":true},"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","nullable":true,"pattern":".*"},"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://run-ai-docs.nvidia.com/self-hosted/2.26/infrastructure-setup/advanced-setup/container-access/user-identity-in-containers).","type":"string","enum":["fromTheImage","fromIdpToken","custom"],"nullable":true},"Stdin":{"description":"Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF","type":"boolean","nullable":true},"ConfigMapsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/ConfigMapInstance"},"instances":{"$ref":"#/components/schemas/ConfigMapItems"}},"nullable":true,"type":"object"},"ConfigMapInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/ConfigMap"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"StorageInstanceName":{"properties":{"name":{"description":"unique name to identify the instance. primarily used for policy locked rules.","type":"string","minLength":1,"maxLength":63,"nullable":true}},"nullable":true,"type":"object"},"ConfigMap":{"properties":{"configMap":{"description":"The name of the ConfigMap resource. (mandatory)","type":"string","minLength":1,"maxLength":253,"nullable":true,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$"},"mountPath":{"description":"Local path within the workload to which the ConfigMap will be mapped to. (mandatory)","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"subPath":{"description":"Path within the volume from which the container's volume should be mounted.","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"defaultMode":{"$ref":"#/components/schemas/DefaultMode"}},"nullable":true,"type":"object"},"DefaultMode":{"type":"string","description":"File permission mode in octal string format. This value must be a 4-digit octal number, representing the default file mode when mounting a Secret or ConfigMap as a volume.\n","minLength":4,"maxLength":4,"pattern":"0[0-7]{3}","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,"nullable":true}},"type":"object","nullable":true},"ConfigMapItems":{"description":"Set of config map volumes to use in the workload","type":"array","items":{"$ref":"#/components/schemas/ConfigMapInstance"},"maxItems":1000,"nullable":true},"DataVolumesDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/DataVolumeInstance"},"instances":{"$ref":"#/components/schemas/DataVolumeItems"}},"nullable":true,"type":"object"},"DataVolumeInstance":{"allOf":[{"$ref":"#/components/schemas/DataVolume"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"DataVolume":{"properties":{"id":{"description":"The unique identifier of the data volume. (mandatory)","type":"string","format":"uuid","nullable":true},"mountPath":{"description":"The path where the data volume will be mounted. (mandatory)","type":"string","nullable":true,"pattern":".*","maxLength":4096}},"nullable":true,"type":"object"},"DataVolumeItems":{"description":"Set of data volumes to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/DataVolumeInstance"},"maxItems":1000,"nullable":true},"EmptyDirsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/EmptyDirInstance"},"instances":{"$ref":"#/components/schemas/EmptyDirItems"}},"nullable":true,"type":"object"},"EmptyDirInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/EmptyDir"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"EmptyDir":{"properties":{"path":{"description":"Local path within the workload to which the EmptyDir volume will be mapped. (mandatory)","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"medium":{"description":"The type of storage medium for the volume. Use \"Memory\" for memory-backed storage, or leave empty for disk-backed storage.","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":".*"},"sizeLimit":{"description":"The total amount of local storage or memory required for the emptyDir volume. Specify using Kubernetes quantity format (e.g., 1G, 500Mi).","type":"string","maxLength":63,"pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$","nullable":true}},"nullable":true,"type":"object"},"EmptyDirItems":{"description":"A list of emptyDir volumes to mount in the workload.","type":"array","items":{"$ref":"#/components/schemas/EmptyDirInstance"},"maxItems":1000,"nullable":true},"GitsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/GitInstance"},"instances":{"$ref":"#/components/schemas/GitItems"}},"nullable":true,"type":"object"},"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"},"GitCommon":{"properties":{"repository":{"description":"URL to a remote Git repository. The content of this repository will be mapped to the container running the workload. (mandatory)","type":"string","minLength":1,"maxLength":2048,"nullable":true},"branch":{"description":"Specific branch to synchronize the repository from.","type":"string","minLength":1,"maxLength":63,"nullable":true},"revision":{"description":"Specific revision to synchronize the repository from.","type":"string","minLength":1,"maxLength":63,"nullable":true},"path":{"description":"Local path within the workload to which the Git repository will be mapped (mandatory).","type":"string","minLength":1,"maxLength":4096,"nullable":true}},"nullable":true,"type":"object"},"GitPassword":{"properties":{"passwordSecret":{"description":"Secret containing the credentials of the repository (needed for non public repository which requires authentication). (deprecated)","type":"string","minLength":1,"nullable":true},"secretKeyOfUser":{"description":"The key to use for loading the user name from the secret. The default is `User`. (deprecated)","type":"string","minLength":1,"nullable":true},"secretKeyOfPassword":{"description":"The key to use for loading the password from the secret. The default is `Password`. (deprecated)","type":"string","minLength":1,"nullable":true}},"nullable":true,"type":"object"},"GitSecretRef":{"properties":{"name":{"description":"Name of the Secret containing the credentials of the repository.","type":"string","minLength":1},"authenticationMethod":{"$ref":"#/components/schemas/GitAuthenticationMethod"},"secretKeyOfUser":{"description":"The key in the Secret that contains the Git username (used for `password` authentication).","type":"string","minLength":1,"nullable":true},"secretKeyOfPassword":{"description":"The key in the Secret that contains the Git password (used for `password` authentication).","type":"string","minLength":1,"nullable":true}},"nullable":true,"type":"object"},"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,"enum":["password","ssh-key"]},"GitItems":{"description":"Set of git repositories to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/GitInstance"},"maxItems":1000,"nullable":true},"HostPathsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/HostPathInstance"},"instances":{"$ref":"#/components/schemas/HostPathItems"}},"nullable":true,"type":"object"},"HostPathInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/HostPath"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"HostPath":{"properties":{"path":{"description":"Local path within the controller to which the host volume will be mapped. (mandatory)","type":"string","minLength":1,"maxLength":4096,"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,"maxLength":4096,"nullable":true,"pattern":".*"},"mountPropagation":{"$ref":"#/components/schemas/HostPathMountPropagation"}},"nullable":true,"type":"object"},"HostPathMountPropagation":{"description":"Share this volumes mount with other containers. If set to HostToContainer, this volume mount will receive all subsequent mounts that are mounted to this volume or any of its subdirectories. In case of multiple hostPath entries, this field should have the same value for all of them.","type":"string","enum":["None","HostToContainer"],"nullable":true},"HostPathItems":{"description":"Set of host paths to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/HostPathInstance"},"maxItems":1000,"nullable":true},"NfssDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/NfsInstance"},"instances":{"$ref":"#/components/schemas/NfsItems"}},"nullable":true,"type":"object"},"NfsInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/Nfs"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"Nfs":{"properties":{"path":{"description":"Path that is exported by the NFS server (mandatory). For more information, see [NFS](https://kubernetes.io/docs/concepts/storage/volumes#nfs).","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"readOnly":{"description":"Force the NFS export to be mounted with read-only permissions.","type":"boolean","default":true,"nullable":true},"server":{"description":"The hostname or IP address of the NFS server. (mandatory)","type":"string","minLength":1,"maxLength":253,"nullable":true,"pattern":".*"},"mountPath":{"description":"The path that the NFS volume will be mounted to when in use. (mandatory)","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"NfsItems":{"description":"Set of nfs volumes to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/NfsInstance"},"maxItems":1000,"nullable":true},"PvcsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/PvcInstance"},"instances":{"$ref":"#/components/schemas/PvcItems"}},"nullable":true,"type":"object"},"PvcInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/Pvc"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"Pvc":{"allOf":[{"$ref":"#/components/schemas/PvcFieldsUpdatable"},{"$ref":"#/components/schemas/PvcFieldsNonUpdatable"}]},"PvcFieldsUpdatable":{"properties":{"path":{"description":"Local path within the workload to which the PVC bucket will be mapped. (mandatory)","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"PvcFieldsNonUpdatable":{"properties":{"existingPvc":{"description":"Verify existing PVC. PVC is assumed to exist when set to `true`. If set to `false`, the PVC will be created, if it does not exist.","type":"boolean","default":false,"nullable":true},"claimName":{"description":"Name for the PVC. Allow referencing it across workloads. If not provided, a name based on the workload name and scope will be auto-generated.","type":"string","minLength":1,"maxLength":63,"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,"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,"nullable":true}},"nullable":true,"type":"object"},"ClaimInfo":{"description":"Claim information for the newly created PVC. The information should not be provided when attempting to use existing PVC.","properties":{"size":{"$ref":"#/components/schemas/PvcClaimSize"},"storageClass":{"description":"Storage class name to associate with the PVC. This parameter may be omitted if there is a single storage class in the system, or you are using the default storage class. For more information, see [Storage class](https://kubernetes.io/docs/concepts/storage/storage-classes).","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$"},"accessModes":{"$ref":"#/components/schemas/PvcAccessModes"},"volumeMode":{"$ref":"#/components/schemas/PvcVolumeMode"},"addedAttrValues":{"$ref":"#/components/schemas/PvcAddedAttrValues"}},"nullable":true,"type":"object"},"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]*)$","maxLength":63,"nullable":true},"PvcAccessModes":{"description":"Default access mode(s) applied to newly created PVCs unless explicitly overridden.","properties":{"readWriteOnce":{"description":"Mount the volume as read/write by a single node.","type":"boolean","default":true,"nullable":true},"readOnlyMany":{"description":"Mount the volume as read-only by many nodes.","type":"boolean","default":false,"nullable":true},"readWriteMany":{"description":"Mount the volume as read/write by many nodes.","type":"boolean","default":false,"nullable":true}},"nullable":true,"type":"object"},"PvcVolumeMode":{"description":"Default volume mode for the PVC. Choose between Filesystem (default) or Block.","type":"string","enum":["Filesystem","Block"],"nullable":true},"PvcAddedAttrValues":{"description":"an optional array of key-values pairs that are written as annotations on the created PVC. the allowed attributes are determined according to the storage class configuration (see k8s-objects-tracker for further info).","type":"array","items":{"$ref":"#/components/schemas/PvcAddedAttrValue"},"maxItems":1000},"PvcAddedAttrValue":{"type":"object","required":["key"],"properties":{"key":{"type":"string","minLength":1,"maxLength":63,"pattern":"^([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]$"},"value":{"type":"string","pattern":".*","maxLength":10000}}},"PvcItems":{"description":"Set of pvc persistent volume claims to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/PvcInstance"},"maxItems":1000,"nullable":true},"S3sDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/S3Instance"},"instances":{"$ref":"#/components/schemas/S3Items"}},"nullable":true,"type":"object"},"S3Instance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/S3Common"},{"$ref":"#/components/schemas/S3AccessKey"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"S3Common":{"properties":{"bucket":{"description":"The name of the bucket. (mandatory)","type":"string","minLength":1,"nullable":true},"path":{"description":"Local path within the workload to which the S3 bucket will be mapped. (mandatory)","type":"string","minLength":1,"nullable":true},"url":{"description":"The url of the S3 service provider. The default is the URL of the Amazon AWS S3 service.","type":"string","minLength":1,"nullable":true}},"nullable":true,"type":"object"},"S3AccessKey":{"properties":{"accessKeySecret":{"description":"Name of the secret containing credentials of the S3 bucket. Used for private S3 buckets.","type":"string","minLength":1,"nullable":true,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$"},"secretKeyOfAccessKeyId":{"description":"The key to use for loading the access key id from the secret. The default is `AccessKeyId`. For more information, see [Credentials access keys](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html).","type":"string","minLength":1,"nullable":true,"pattern":".*"},"secretKeyOfSecretKey":{"description":"The key to use for loading the secret key from the secret. The default is `SecretKey`. For more information, see [Credentials access keys](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html).","type":"string","minLength":1,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"S3Items":{"description":"Set of s3 buckets to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/S3Instance"},"nullable":true},"SecretsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/SecretInstance"},"instances":{"$ref":"#/components/schemas/SecretItems"}},"nullable":true,"type":"object"},"SecretInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/Secret"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"Secret":{"allOf":[{"$ref":"#/components/schemas/SecretFieldsUpdatable"},{"$ref":"#/components/schemas/SecretFieldsNonUpdatable"}]},"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"},"SecretFieldsNonUpdatable":{"properties":{"secret":{"description":"The name of the Secret resource. (mandatory)","type":"string","minLength":1,"nullable":true}},"nullable":true,"type":"object"},"SecretItems":{"description":"Set of secret volumes to use in the workload","type":"array","items":{"$ref":"#/components/schemas/SecretInstance"},"nullable":true},"TerminateAfterPreemption":{"description":"Indicates if the job should be terminated by the system after it has been preempted.","type":"boolean","nullable":true},"TerminationGracePeriod":{"description":"Duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down).","format":"int64","type":"integer","minimum":0,"nullable":true},"TolerationsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/Toleration"},"instances":{"$ref":"#/components/schemas/Tolerations"}},"nullable":true,"type":"object"},"Toleration":{"description":"Toleration details.","properties":{"name":{"description":"The name of the toleration.","type":"string","minLength":1,"maxLength":253,"nullable":true,"pattern":".*"},"operator":{"$ref":"#/components/schemas/TolerationOperator"},"key":{"description":"The taint key that the toleration applies to. (mandatory)","type":"string","maxLength":253,"nullable":true,"pattern":".*"},"value":{"description":"The taint value the toleration matches to. Mandatory if operator is Exists, forbidden otherwise.","type":"string","maxLength":10000,"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","nullable":true}},"nullable":true,"type":"object"},"TolerationOperator":{"description":"A key's relationship to the value. Equal uses key and value. Exists is equivalent to wildcard for value, so that a workload can tolerate all taints of a particular category. (mandatory)","type":"string","enum":["Equal","Exists"],"nullable":true},"TolerationEffect":{"description":"The taint effect to match. (mandatory)","type":"string","enum":["NoSchedule","NoExecute","PreferNoSchedule","Any"],"nullable":true},"Tolerations":{"description":"Set of tolerations to apply to the workload.","type":"array","items":{"$ref":"#/components/schemas/Toleration"},"maxItems":1000,"nullable":true},"Tty":{"description":"Whether this container should allocate a TTY for itself, also requires 'stdin' to be true.","type":"boolean","nullable":true},"WorkingDir":{"description":"Container's working directory. If not specified, the container runtime default will be used. This may be configured in the container image.","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"CleanPodPolicy":{"description":"The policy describes how to deal with pods when the job is finished.","type":"string","enum":["None","All","Running"],"nullable":true},"DistributedFramework":{"description":"The distributed training framework used in the workload.\nNote: The TF, XGBoost and JAX frameworks are deprecated and will be removed in a future release.\n","type":"string","enum":["MPI","PyTorch","TF","XGBoost","JAX"],"nullable":true},"MaxReplicas":{"description":"the upper limit for the number of worker pods that can be set by the autoscaler. Cannot be smaller than MinReplicas. (applicable only for PyTorch)","type":"integer","nullable":true},"MinReplicas":{"description":"the lower limit for the number of worker pods to which the training job can scale down. (applicable only for PyTorch)","type":"integer","nullable":true},"MpiLauncherCreationPolicy":{"description":"Define whether the MPI Launcher is created in parallel with the workers, or if its creation is postponed until all workers are in  Ready state. This prevents failures when the launcher attempts to connect to workers that are not yet ready.","type":"string","enum":["AtStartup","WaitForWorkersReady"],"nullable":true},"NumWorkers":{"description":"the number of workers that will be allocated for running the workload.","type":"integer","minimum":1,"nullable":true},"SlotsPerWorker":{"description":"Specifies the number of slots per worker used in hostfile. Defaults to 1. (applicable only for MPI)","type":"integer","minimum":1,"nullable":true,"default":1},"SshAuthMountPath":{"description":"Specifies the directory where SSH keys are mounted. (applicable only for MPI)","type":"string","nullable":true,"default":"/root/.ssh","pattern":".*"},"DistributedPolicyRulesV2":{"nullable":true,"properties":{"master":{"$ref":"#/components/schemas/ReplicaRulesV2"},"worker":{"allOf":[{"$ref":"#/components/schemas/ReplicaRulesV2"},{"nullable":true,"properties":{"cleanPodPolicy":{"$ref":"#/components/schemas/CleanPodPolicyRules"},"distributedFramework":{"$ref":"#/components/schemas/DistributedFrameworkRules"},"maxReplicas":{"$ref":"#/components/schemas/IntegerRules"},"minReplicas":{"$ref":"#/components/schemas/IntegerRules"},"mpiLauncherCreationPolicy":{"$ref":"#/components/schemas/MpiLauncherCreationPolicyRules"},"numWorkers":{"$ref":"#/components/schemas/IntegerRules"},"slotsPerWorker":{"$ref":"#/components/schemas/IntegerRules"},"sshAuthMountPath":{"$ref":"#/components/schemas/StringRules"}},"type":"object"}],"nullable":true,"type":"object"}},"type":"object"},"ReplicaRulesV2":{"nullable":true,"properties":{"annotations":{"$ref":"#/components/schemas/InstancesRules"},"args":{"$ref":"#/components/schemas/StringRules"},"autoDeletionTimeAfterCompletionSeconds":{"$ref":"#/components/schemas/IntegerRules"},"backoffLimit":{"$ref":"#/components/schemas/IntegerRules"},"category":{"$ref":"#/components/schemas/StringRules"},"command":{"$ref":"#/components/schemas/StringRules"},"compute":{"$ref":"#/components/schemas/SupersetRulesAllOfCompute"},"createHomeDir":{"$ref":"#/components/schemas/BooleanRules"},"environmentVariables":{"$ref":"#/components/schemas/InstancesRules"},"exposedUrls":{"$ref":"#/components/schemas/ExposedUrlsRules"},"image":{"$ref":"#/components/schemas/StringRules"},"imagePullPolicy":{"$ref":"#/components/schemas/ImagePullPolicyRules"},"imagePullSecrets":{"$ref":"#/components/schemas/ImagePullSecretsRules"},"labels":{"$ref":"#/components/schemas/InstancesRules"},"nodeAffinityRequired":{"$ref":"#/components/schemas/ArbitraryRules"},"nodePools":{"$ref":"#/components/schemas/ArrayRules"},"nodeType":{"$ref":"#/components/schemas/StringRules"},"podAffinity":{"$ref":"#/components/schemas/PodAffinityRules"},"ports":{"$ref":"#/components/schemas/PortsRules"},"preemptibility":{"$ref":"#/components/schemas/PreemptibilityRules"},"priorityClass":{"$ref":"#/components/schemas/StringRules"},"probes":{"$ref":"#/components/schemas/ProbesRules"},"relatedUrls":{"$ref":"#/components/schemas/RelatedUrlsRules"},"restartPolicy":{"$ref":"#/components/schemas/RestartPolicyRule"},"security":{"$ref":"#/components/schemas/SupersetRulesAllOfSecurity"},"stdin":{"$ref":"#/components/schemas/BooleanRules"},"storage":{"nullable":true,"properties":{"configMapVolume":{"$ref":"#/components/schemas/ConfigMapsRules"},"dataVolume":{"$ref":"#/components/schemas/DataVolumesRules"},"emptyDirVolume":{"$ref":"#/components/schemas/EmptyDirsRules"},"git":{"$ref":"#/components/schemas/GitsRules"},"hostPath":{"$ref":"#/components/schemas/HostPathsRules"},"nfs":{"$ref":"#/components/schemas/NfssRules"},"pvc":{"$ref":"#/components/schemas/PvcsRules"},"s3":{"$ref":"#/components/schemas/S3sRules"},"secretVolume":{"$ref":"#/components/schemas/SecretsRules"}},"type":"object"},"terminateAfterPreemption":{"$ref":"#/components/schemas/BooleanRules"},"terminationGracePeriodSeconds":{"$ref":"#/components/schemas/IntegerRules"},"tolerations":{"$ref":"#/components/schemas/TolerationsRules"},"tty":{"$ref":"#/components/schemas/BooleanRules"},"workingDir":{"$ref":"#/components/schemas/StringRules"}},"type":"object"},"InstancesRules":{"properties":{"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ItemRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"canAdd":{"description":"Whether it is permitted to add items. Default to true.","type":"boolean","nullable":true},"locked":{"description":"Set of keys for items that are \"locked\", i.e. cannot be removed or deleted.","type":"array","items":{"type":"string"}}},"nullable":true,"type":"object"},"SourceOfRule":{"description":"This field is used by the system along with effective rules, in order to specify the org unit from which this effective rule has been derived. It should be left empty when sending apply policy requests.","required":["scope"],"properties":{"scope":{"$ref":"#/components/schemas/ScopeType"},"projectId":{"$ref":"#/components/schemas/ProjectIdOptional"},"departmentId":{"$ref":"#/components/schemas/DepartmentIdOptional"},"clusterId":{"$ref":"#/components/schemas/ClusterIdOptional"},"isFallback":{"description":"source of this rule is the fallback policy","type":"boolean"}},"nullable":true,"type":"object"},"StringRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/StringRulesOptions"}],"nullable":true,"type":"object"},"StringRulesCommon":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory, default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable, default to true","type":"boolean","nullable":true},"blocked":{"description":"Blocks the field to prevent workloads from specifying any value for it.","type":"boolean","nullable":true}}},"StringRulesOptions":{"properties":{"options":{"description":"Set of options that the value of the field must be chosen from.","type":"array","items":{"$ref":"#/components/schemas/StringOption"},"nullable":true}}},"StringOption":{"description":"One of the values that the field can be assigned to, when options police is applied on the field.","required":["value"],"properties":{"value":{"description":"The value that the field should hold","type":"string","pattern":".*"},"displayed":{"description":"Textual description of the value. to be used by user interface applications.","type":"string","nullable":true,"pattern":".*"}}},"IntegerRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory. default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"max":{"description":"The maximum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"step":{"description":"The minimal difference between two values the field can be assigned to. For example, min=2, max=10, step=2 implies that the values the field can hold are 2, 4, 6, 8 and 10.","type":"integer","format":"int32","nullable":true},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"DefaultFromRule":{"properties":{"field":{"description":"The default of this field is taken from another field, with optional factor. The specified field must belong to the same workload section (compute, security, etc). For itemized field, the value of the field will be taken from the same instance.","type":"string","nullable":true,"pattern":".*"},"factor":{"description":"Multiple the value of the fromField by this factor to get the value for this field For example, if factor is 2 and defaultFrom field has value of 8, the calculated default will be determined to be 16.","type":"number","format":"double","nullable":true,"default":1}},"nullable":true,"type":"object"},"SupersetRulesAllOfCompute":{"title":"SupersetRulesAllOfCompute","nullable":true,"properties":{"cpuCoreLimit":{"$ref":"#/components/schemas/NumberRules"},"cpuCoreRequest":{"$ref":"#/components/schemas/NumberRules"},"cpuMemoryLimit":{"$ref":"#/components/schemas/QuantityRules"},"cpuMemoryRequest":{"$ref":"#/components/schemas/QuantityRules"},"extendedResources":{"$ref":"#/components/schemas/ExtendedResourcesRules"},"gpuDevicesRequest":{"$ref":"#/components/schemas/IntegerRules"},"gpuMemoryLimit":{"$ref":"#/components/schemas/QuantityRules"},"gpuMemoryRequest":{"$ref":"#/components/schemas/QuantityRules"},"gpuPortionLimit":{"$ref":"#/components/schemas/NumberRules"},"gpuPortionRequest":{"$ref":"#/components/schemas/NumberRules"},"gpuRequestType":{"$ref":"#/components/schemas/GpuRequestRules"},"largeShmRequest":{"$ref":"#/components/schemas/BooleanRules"}},"type":"object"},"NumberRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory. default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"number","nullable":true},"max":{"description":"The maximum value that the field can be assigned to.","type":"number","nullable":true},"step":{"description":"The minimal difference between two values the field can be assigned to. For example, min=2, max=3, step=0.25 implies that the values the field can hold are 2, 2.25, 2.5 and 3.","type":"number","nullable":true},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"QuantityRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory, default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable, default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"string","nullable":true,"pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"},"max":{"description":"The maximum value that the field can be assigned to.","type":"string","nullable":true,"pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"ExtendedResourcesRules":{"properties":{"attributes":{"$ref":"#/components/schemas/ExtendedResourceRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ExtendedResourceRules":{"description":"Rules for the attributes of extendedResources","properties":{"quantity":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"GpuRequestRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/GpuRequestOptions"}],"nullable":true,"type":"object"},"GpuRequestOptions":{"properties":{"options":{"description":"Limit the permitted values for gpuRequest to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/GpuRequestType"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"BooleanRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory. default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true}},"nullable":true,"type":"object"},"ExposedUrlsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/ExposedUrlRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ExposedUrlRules":{"description":"Rules for the attributed of exposedUrls","properties":{"container":{"$ref":"#/components/schemas/IntegerRules"},"customUrl":{"$ref":"#/components/schemas/BooleanRules"},"url":{"$ref":"#/components/schemas/StringRules"},"authorizedUsers":{"$ref":"#/components/schemas/ArrayRules"},"authorizedGroups":{"$ref":"#/components/schemas/ArrayRules"},"toolType":{"$ref":"#/components/schemas/StringRules"},"toolName":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"ArrayRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether this array is mandatory. Mandatory array must include at least one item. default to false.","type":"boolean","nullable":true},"options":{"description":"Set of options that the value of each item of the array must be chosen from.","type":"array","items":{"$ref":"#/components/schemas/StringOption"}},"canEdit":{"description":"Whether the value of the array, as a whole, is editable. default to false.","type":"boolean","nullable":true}},"nullable":true,"type":"object"},"ImagePullPolicyRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/ImagePullPolicyOptions"}],"nullable":true,"type":"object"},"ImagePullPolicyOptions":{"properties":{"options":{"description":"Limit the permitted values for imagePullPolicy to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/ImagePullPolicy"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ImagePullSecretsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/ImagePullSecretsRulesAttributes"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ImagePullSecretsRulesAttributes":{"description":"Rules for the attributes of imagePullSecrets","properties":{"name":{"$ref":"#/components/schemas/StringRules"},"userCredentials":{"$ref":"#/components/schemas/BooleanRules"}},"nullable":true,"type":"object"},"ArbitraryRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether this arbitrary object is mandatory. default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field, as a whole, is editable. default to false.","type":"boolean","nullable":true}},"nullable":true,"type":"object"},"PodAffinityRules":{"properties":{"type":{"$ref":"#/components/schemas/PodAffinityTypeRules"},"key":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"PodAffinityTypeRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/PodAffinityTypeOptions"}],"nullable":true,"type":"object"},"PodAffinityTypeOptions":{"properties":{"options":{"type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/PodAffinityType"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"type":"object"},"PortsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/PortRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"PortRules":{"description":"Rules for port attributes","properties":{"container":{"$ref":"#/components/schemas/IntegerRules"},"serviceType":{"$ref":"#/components/schemas/PortServiceTypeRules"},"customExternalPort":{"$ref":"#/components/schemas/BooleanRules"},"external":{"$ref":"#/components/schemas/IntegerRules"},"toolType":{"$ref":"#/components/schemas/StringRules"},"toolName":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"PortServiceTypeRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/PortServiceTypeOptions"}],"nullable":true,"type":"object"},"PortServiceTypeOptions":{"properties":{"options":{"type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/PortServiceType"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"PreemptibilityRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/PreemptibilityOptions"}],"nullable":true,"type":"object"},"PreemptibilityOptions":{"properties":{"options":{"description":"Limit the permitted values for preemptibility to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/Preemptibility"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ProbesRules":{"properties":{"readiness":{"$ref":"#/components/schemas/ProbeRules"}},"nullable":true,"type":"object"},"ProbeRules":{"properties":{"initialDelaySeconds":{"$ref":"#/components/schemas/IntegerRules"},"periodSeconds":{"$ref":"#/components/schemas/IntegerRules"},"timeoutSeconds":{"$ref":"#/components/schemas/IntegerRules"},"successThreshold":{"$ref":"#/components/schemas/IntegerRules"},"failureThreshold":{"$ref":"#/components/schemas/IntegerRules"},"handler":{"$ref":"#/components/schemas/ProbeHandlerRules"}},"nullable":true,"type":"object"},"ProbeHandlerRules":{"properties":{"httpGet":{"properties":{"path":{"$ref":"#/components/schemas/StringRules"},"port":{"$ref":"#/components/schemas/IntegerRules"},"host":{"$ref":"#/components/schemas/StringRules"},"scheme":{"$ref":"#/components/schemas/StringRules"}}}},"nullable":true,"type":"object"},"RelatedUrlsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/RelatedUrlRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"RelatedUrlRules":{"description":"Rules for the attributes of relatedUrls","properties":{"url":{"$ref":"#/components/schemas/StringRules"},"type":{"$ref":"#/components/schemas/StringRules"},"name":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"RestartPolicyRule":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/RestartPolicyOptions"}],"nullable":true,"type":"object"},"RestartPolicyOptions":{"properties":{"options":{"description":"Limit the permitted values for restartPolicy to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/RestartPolicy"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"SupersetRulesAllOfSecurity":{"title":"SupersetRulesAllOfSecurity","nullable":true,"properties":{"allowPrivilegeEscalation":{"$ref":"#/components/schemas/BooleanRules"},"capabilities":{"$ref":"#/components/schemas/ArrayRules"},"hostIpc":{"$ref":"#/components/schemas/BooleanRules"},"hostNetwork":{"$ref":"#/components/schemas/BooleanRules"},"readOnlyRootFilesystem":{"$ref":"#/components/schemas/BooleanRules"},"runAsGid":{"$ref":"#/components/schemas/IntegerRulesOptional"},"runAsNonRoot":{"$ref":"#/components/schemas/BooleanRules"},"runAsUid":{"$ref":"#/components/schemas/IntegerRulesOptional"},"seccompProfileType":{"$ref":"#/components/schemas/SeccompProfileTypeRules"},"supplementalGroups":{"$ref":"#/components/schemas/StringRules"},"uidGidSource":{"$ref":"#/components/schemas/UidGidSourceRules"}},"type":"object"},"IntegerRulesOptional":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"max":{"description":"The maximum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"step":{"description":"The minimal difference between two values the field can be assigned to. For example, min=2, max=10, step=2 implies that the values the field can hold are 2, 4, 6, 8 and 10.","type":"integer","format":"int32","nullable":true},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"SeccompProfileTypeRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/SeccompProfileTypeOptions"}],"nullable":true,"type":"object"},"SeccompProfileTypeOptions":{"properties":{"options":{"description":"Limit the permitted values for secompProfileType to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/SeccompProfileType"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"UidGidSourceRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/UidGidSourceOptions"}],"nullable":true,"type":"object"},"UidGidSourceOptions":{"properties":{"options":{"description":"Limit the permitted values for uidGidSource to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/UidGidSource"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ConfigMapsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/ConfigMapRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ConfigMapRules":{"properties":{"configMap":{"$ref":"#/components/schemas/StringRules"},"mountPath":{"$ref":"#/components/schemas/StringRules"},"subPath":{"$ref":"#/components/schemas/StringRules"},"defaultMode":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"DataVolumesRules":{"properties":{"attributes":{"$ref":"#/components/schemas/DataVolumeRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"DataVolumeRules":{"properties":{"id":{"$ref":"#/components/schemas/StringRules"},"mountPath":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"EmptyDirsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/EmptyDirRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"EmptyDirRules":{"properties":{"path":{"$ref":"#/components/schemas/StringRules"},"medium":{"$ref":"#/components/schemas/StringRules"},"sizeLimit":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"GitsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/GitRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"GitRules":{"properties":{"repository":{"$ref":"#/components/schemas/StringRules"},"branch":{"$ref":"#/components/schemas/StringRules"},"revision":{"$ref":"#/components/schemas/StringRules"},"path":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"HostPathsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/HostPathRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"HostPathRules":{"properties":{"path":{"$ref":"#/components/schemas/StringRules"},"readOnly":{"$ref":"#/components/schemas/BooleanRules"},"mountPath":{"$ref":"#/components/schemas/StringRules"},"mountPropagation":{"$ref":"#/components/schemas/HostPathMountPropagationRules"}},"nullable":true,"type":"object"},"HostPathMountPropagationRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/HostPathMountPropagationOptions"}],"nullable":true,"type":"object"},"HostPathMountPropagationOptions":{"properties":{"options":{"type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/HostPathMountPropagation"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}}},"NfssRules":{"properties":{"attributes":{"$ref":"#/components/schemas/NfsRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"NfsRules":{"properties":{"path":{"$ref":"#/components/schemas/StringRules"},"readOnly":{"$ref":"#/components/schemas/BooleanRules"},"server":{"$ref":"#/components/schemas/StringRules"},"mountPath":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"PvcsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/PvcRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"PvcRules":{"properties":{"claimName":{"$ref":"#/components/schemas/StringRules"},"path":{"$ref":"#/components/schemas/StringRules"},"readOnly":{"$ref":"#/components/schemas/BooleanRules"},"claimInfo":{"$ref":"#/components/schemas/ClaimInfoRules"}},"nullable":true,"type":"object"},"ClaimInfoRules":{"properties":{"size":{"$ref":"#/components/schemas/StringRules"},"storageClass":{"$ref":"#/components/schemas/StringRules"},"accessModes":{"$ref":"#/components/schemas/PvcAccessModesRules"}},"nullable":true,"type":"object"},"PvcAccessModesRules":{"description":"Rules for access mode(s) for a newly created PVC.","properties":{"readWriteOnce":{"$ref":"#/components/schemas/BooleanRules"},"readOnlyMany":{"$ref":"#/components/schemas/BooleanRules"},"readWriteMany":{"$ref":"#/components/schemas/BooleanRules"}},"nullable":true,"type":"object"},"S3sRules":{"properties":{"attributes":{"$ref":"#/components/schemas/S3Rules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"S3Rules":{"properties":{"bucket":{"$ref":"#/components/schemas/StringRules"},"path":{"$ref":"#/components/schemas/StringRules"},"url":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"SecretsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/SecretRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"SecretRules":{"properties":{"secret":{"$ref":"#/components/schemas/StringRules"},"mountPath":{"$ref":"#/components/schemas/StringRules"},"defaultMode":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"TolerationsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/TolerationRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"TolerationRules":{"description":"Toleration details.","properties":{"operator":{"$ref":"#/components/schemas/TolerationOperatorRules"},"key":{"$ref":"#/components/schemas/StringRules"},"value":{"$ref":"#/components/schemas/StringRules"},"effect":{"$ref":"#/components/schemas/TolerationEffectRules"},"seconds":{"$ref":"#/components/schemas/IntegerRules"},"exclude":{"$ref":"#/components/schemas/BooleanRules"}},"nullable":true,"type":"object"},"TolerationOperatorRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/TolerationOperatorOptions"}],"nullable":true,"type":"object"},"TolerationOperatorOptions":{"properties":{"options":{"description":"Limit the permitted values for imagePullPolicy to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/TolerationOperator"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"TolerationEffectRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/TolerationEffectOptions"}],"nullable":true,"type":"object"},"TolerationEffectOptions":{"properties":{"options":{"description":"Limit the permitted values for imagePullPolicy to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/TolerationEffect"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"CleanPodPolicyRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/CleanPodPolicyOptions"}],"nullable":true,"type":"object"},"CleanPodPolicyOptions":{"properties":{"options":{"type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/CleanPodPolicy"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"DistributedFrameworkRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/DistributedFrameworkOptions"}],"nullable":true,"type":"object"},"DistributedFrameworkOptions":{"properties":{"options":{"type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/DistributedFramework"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"MpiLauncherCreationPolicyRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/MpiLauncherCreationPolicyOptions"}],"nullable":true,"type":"object"},"MpiLauncherCreationPolicyOptions":{"properties":{"options":{"type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/MpiLauncherCreationPolicy"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"DistributedImposedAssets":{"properties":{"worker":{"$ref":"#/components/schemas/ImposedAssets"},"master":{"$ref":"#/components/schemas/ImposedAssets"}},"nullable":true,"type":"object"},"ImposedAssets":{"description":"a list of datasource assets to import into the policy. these datasources will be included in any workload that will be created in the scope of the policy.","type":"array","items":{"type":"string","format":"uuid"},"nullable":true},"PolicyValidationStatus":{"properties":{"validation":{"properties":{"errorMessage":{"pattern":".*","type":"string","description":"In case validation failed, holds the error message explaining the issue"}},"nullable":true,"type":"object"}},"nullable":true,"type":"object"},"FieldsToReset":{"description":"set of fields in jsonpath format that is requested to clear their policy (default and rules)","type":"array","items":{"type":"string","pattern":".*"}},"DistributedPolicyV2":{"properties":{"meta":{"$ref":"#/components/schemas/PolicyMeta"},"policy":{"$ref":"#/components/schemas/DistributedPolicyDefaultsAndRulesV2"},"effective":{"$ref":"#/components/schemas/DistributedPolicyDefaultsAndRulesV2"},"effectiveUpdatedAt":{"$ref":"#/components/schemas/Timestamp"}},"nullable":true,"type":"object"},"PolicyMeta":{"allOf":[{"$ref":"#/components/schemas/PolicyReadOnlyFields"},{"$ref":"#/components/schemas/PolicyCreationFields"}]},"PolicyReadOnlyFields":{"required":["id","createdBy","createdAt","updatedBy","updatedAt"],"properties":{"id":{"$ref":"#/components/schemas/PolicyId"},"tenantId":{"$ref":"#/components/schemas/TenantId"},"clusterId":{"$ref":"#/components/schemas/ClusterIdOptional"},"createdBy":{"description":"The user who created the policy.","type":"string","minLength":1},"createdAt":{"description":"The time at which the policy wes created","type":"string","minLength":1,"format":"date-time"},"updatedBy":{"description":"The user who updated the policy.","type":"string","minLength":1},"updatedAt":{"description":"The time at which the policy has been updated","type":"string","minLength":1,"format":"date-time"}}},"PolicyId":{"description":"The unique id of the policy.","type":"string","minLength":1,"format":"uuid"},"TenantId":{"description":"The id of the tenant.","type":"integer","format":"int32"},"Timestamp":{"description":"The time at which an event occurred. e.g. the time an effective policy has been updated","type":"string","minLength":1,"format":"date-time"},"Error":{"required":["code","message"],"properties":{"code":{"type":"integer","minimum":100,"maximum":599},"message":{"type":"string"},"details":{"type":"string"}}}},"responses":{"400BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401Unauthorized":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403Forbidden":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503ServiceUnavailable":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/api/v2/policy/distributed":{"patch":{"summary":"Update a distributed policy.","description":"Use to apply changes to a distributed policy for a given organizational unit.","operationId":"update_distributed_policy_v2","tags":["Policy"],"parameters":[{"$ref":"#/components/parameters/ValidateOnly"},{"$ref":"#/components/parameters/ApproveClusterDeletion"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DistributedPolicyChangeRequestV2"}}}},"responses":{"200":{"description":"Policy applied.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DistributedPolicyV2"}}}},"400":{"$ref":"#/components/responses/400BadRequest"},"401":{"$ref":"#/components/responses/401Unauthorized"},"403":{"$ref":"#/components/responses/403Forbidden"},"503":{"$ref":"#/components/responses/503ServiceUnavailable"}}}}}}
```

## Get an inference policy.

> Retrieve the details of an inference policy for a given organizational unit.

```json
{"openapi":"3.0.3","info":{"title":"NVIDIA Run:ai","version":"2.26"},"tags":[{"name":"Policy","description":"Policies allow administrators to impose restrictions and set default values for researcher workloads. \nRestrictions and default values can be placed on CPUs, GPUs, and other resources or entities. \nFor more information, see [Policies](https://run-ai-docs.nvidia.com/self-hosted/2.26/platform-management/policies/#introduction).\n"}],"servers":[{"url":"https://app.run.ai"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer authentication"}},"parameters":{"PolicyScope":{"name":"scope","in":"query","required":true,"description":"The scope that the policy relates to.","schema":{"type":"string","enum":["tenant","cluster","department","project"]}},"FilterByDepartment":{"name":"departmentId","in":"query","description":"Filter using the department id.","required":false,"schema":{"type":"string"}},"FilterByProject":{"name":"projectId","in":"query","description":"project id to filter by","required":false,"schema":{"type":"string"}},"FilterByCluster":{"name":"clusterId","in":"query","description":"Filter using the Universally Unique Identifier (UUID) of the cluster.","required":false,"schema":{"type":"string","format":"uuid"}}},"schemas":{"InferencePolicyV2":{"properties":{"meta":{"$ref":"#/components/schemas/PolicyMeta"},"policy":{"$ref":"#/components/schemas/InferencePolicyDefaultsAndRulesV2"},"effective":{"$ref":"#/components/schemas/InferencePolicyDefaultsAndRulesV2"},"effectiveUpdatedAt":{"$ref":"#/components/schemas/Timestamp"}},"nullable":true,"type":"object"},"PolicyMeta":{"allOf":[{"$ref":"#/components/schemas/PolicyReadOnlyFields"},{"$ref":"#/components/schemas/PolicyCreationFields"}]},"PolicyReadOnlyFields":{"required":["id","createdBy","createdAt","updatedBy","updatedAt"],"properties":{"id":{"$ref":"#/components/schemas/PolicyId"},"tenantId":{"$ref":"#/components/schemas/TenantId"},"clusterId":{"$ref":"#/components/schemas/ClusterIdOptional"},"createdBy":{"description":"The user who created the policy.","type":"string","minLength":1},"createdAt":{"description":"The time at which the policy wes created","type":"string","minLength":1,"format":"date-time"},"updatedBy":{"description":"The user who updated the policy.","type":"string","minLength":1},"updatedAt":{"description":"The time at which the policy has been updated","type":"string","minLength":1,"format":"date-time"}}},"PolicyId":{"description":"The unique id of the policy.","type":"string","minLength":1,"format":"uuid"},"TenantId":{"description":"The id of the tenant.","type":"integer","format":"int32"},"ClusterIdOptional":{"description":"The id of the cluster.","type":"string","format":"uuid","minLength":1,"nullable":true},"PolicyCreationFields":{"required":["name","scope"],"properties":{"scope":{"$ref":"#/components/schemas/ScopeType"},"projectId":{"$ref":"#/components/schemas/ProjectIdOptional"},"departmentId":{"$ref":"#/components/schemas/DepartmentIdOptional"},"clusterId":{"$ref":"#/components/schemas/ClusterIdOptional"},"name":{"$ref":"#/components/schemas/PolicyName"}}},"ScopeType":{"type":"string","enum":["system","tenant","cluster","department","project"]},"ProjectIdOptional":{"description":"The id of the project.","type":"integer","format":"int32","nullable":true},"DepartmentIdOptional":{"description":"The id of the department.","type":"string","minLength":1,"nullable":true,"pattern":".*"},"PolicyName":{"description":"A chosen name for the policy.","type":"string","minLength":1,"pattern":".*"},"InferencePolicyDefaultsAndRulesV2":{"properties":{"defaults":{"allOf":[{"$ref":"#/components/schemas/InferencePolicyDefaultsV2"}],"nullable":true,"type":"object"},"rules":{"allOf":[{"$ref":"#/components/schemas/InferencePolicyRulesV2"}],"nullable":true,"type":"object"},"imposedAssets":{"$ref":"#/components/schemas/ImposedAssets"},"status":{"$ref":"#/components/schemas/PolicyValidationStatus"}},"nullable":true,"type":"object"},"InferencePolicyDefaultsV2":{"allOf":[{"nullable":true,"properties":{"annotations":{"$ref":"#/components/schemas/AnnotationsDefaults"},"args":{"$ref":"#/components/schemas/Args"},"category":{"$ref":"#/components/schemas/Category"},"command":{"$ref":"#/components/schemas/Command"},"compute":{"$ref":"#/components/schemas/SupersetDefaultsAllOfCompute"},"createHomeDir":{"$ref":"#/components/schemas/CreateHomeDir"},"environmentVariables":{"$ref":"#/components/schemas/EnvironmentVariablesDefaults"},"exposedUrls":{"$ref":"#/components/schemas/ExposedUrlsDefaults"},"image":{"$ref":"#/components/schemas/Image"},"imagePullPolicy":{"$ref":"#/components/schemas/ImagePullPolicy"},"imagePullSecrets":{"$ref":"#/components/schemas/ImagePullSecretsDefaults"},"labels":{"$ref":"#/components/schemas/LabelsDefaults"},"nodeAffinityRequired":{"$ref":"#/components/schemas/NodeAffinityRequired"},"nodePools":{"$ref":"#/components/schemas/NodePools"},"nodeType":{"$ref":"#/components/schemas/NodeType2"},"podAffinity":{"$ref":"#/components/schemas/PodAffinity"},"ports":{"$ref":"#/components/schemas/PortsDefaults"},"preemptibility":{"$ref":"#/components/schemas/Preemptibility"},"priorityClass":{"$ref":"#/components/schemas/PriorityClass"},"probes":{"$ref":"#/components/schemas/Probes"},"relatedUrls":{"$ref":"#/components/schemas/RelatedUrlsDefaults"},"security":{"nullable":true,"properties":{"capabilities":{"$ref":"#/components/schemas/Capabilities"},"hostIpc":{"$ref":"#/components/schemas/HostIpc"},"hostNetwork":{"$ref":"#/components/schemas/HostNetwork"},"readOnlyRootFilesystem":{"$ref":"#/components/schemas/ReadOnlyRootFileSystem"},"runAsGid":{"$ref":"#/components/schemas/RunAsGid"},"runAsNonRoot":{"$ref":"#/components/schemas/RunAsNonRoot"},"runAsUid":{"$ref":"#/components/schemas/RunAsUid"},"seccompProfileType":{"$ref":"#/components/schemas/SeccompProfileType"},"supplementalGroups":{"$ref":"#/components/schemas/SupplementalGroups"},"uidGidSource":{"$ref":"#/components/schemas/UidGidSource"}},"type":"object"},"servingPort":{"$ref":"#/components/schemas/ServingPort"},"storage":{"nullable":true,"properties":{"configMapVolume":{"$ref":"#/components/schemas/ConfigMapsDefaults"},"dataVolume":{"$ref":"#/components/schemas/DataVolumesDefaults"},"emptyDirVolume":{"$ref":"#/components/schemas/EmptyDirsDefaults"},"git":{"$ref":"#/components/schemas/GitsDefaults"},"hostPath":{"$ref":"#/components/schemas/HostPathsDefaults"},"nfs":{"$ref":"#/components/schemas/NfssDefaults"},"pvc":{"$ref":"#/components/schemas/PvcsDefaults"},"secretVolume":{"$ref":"#/components/schemas/SecretsDefaults"}},"type":"object"},"tolerations":{"$ref":"#/components/schemas/TolerationsDefaults"},"workingDir":{"$ref":"#/components/schemas/WorkingDir"}},"type":"object"},{"$ref":"#/components/schemas/InferenceFields"}]},"AnnotationsDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/Annotations"}},"nullable":true,"type":"object"},"Annotations":{"description":"Set of annotations to populate into the container running the workload.","type":"array","items":{"$ref":"#/components/schemas/Annotation"},"maxItems":1000,"nullable":true},"Annotation":{"description":"Annotation details to be populated into the container.","properties":{"name":{"description":"The name of the annotation (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":".*"},"value":{"description":"The value of the annotation.","type":"string","maxLength":10000,"nullable":true,"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","default":false,"nullable":true}},"nullable":true,"type":"object"},"Args":{"description":"Arguments to the command that the container running the workload executes.","type":"string","minLength":1,"maxLength":10000,"nullable":true,"pattern":".*"},"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":".*"},"Command":{"description":"A command to the server as the entry point of the container running the workload.","type":"string","minLength":1,"maxLength":10000,"nullable":true,"pattern":".*"},"SupersetDefaultsAllOfCompute":{"title":"SupersetDefaultsAllOfCompute","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/ExtendedResourcesDefaults"},"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"},"CpuCoreLimit":{"description":"Limitations on the number of CPUs consumed by the workload (0.5, 1, .etc). The system guarantees that this workload will not be able to consume more than this amount of CPUs.","format":"double","type":"number","nullable":true,"minimum":0},"CpuCoreRequest":{"description":"CPU units to allocate for the created workload (0.5, 1, .etc). The workload will receive at least this amount of CPU. Note that the workload will not be scheduled unless the system can guarantee this amount of CPUs to the workload.","format":"double","type":"number","nullable":true,"minimum":0},"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]*)$","maxLength":63,"nullable":true},"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","pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$","maxLength":63,"nullable":true},"ExtendedResourcesDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/ExtendedResource"},"instances":{"$ref":"#/components/schemas/ExtendedResources"}},"nullable":true,"type":"object"},"ExtendedResource":{"description":"Quantity of an extended resource.","properties":{"resource":{"description":"The name of the extended resource (mandatory)","type":"string","minLength":1,"maxLength":253,"nullable":true,"pattern":".*"},"quantity":{"description":"The requested quantity for the resource.","type":"string","minLength":1,"maxLength":63,"nullable":true,"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","nullable":true}},"nullable":true,"type":"object"},"ExtendedResources":{"description":"Extended resources and their quantity.","type":"array","items":{"$ref":"#/components/schemas/ExtendedResource"},"maxItems":1000,"nullable":true},"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","format":"int32","nullable":true,"minimum":0},"GpuMemoryLimit":{"description":"Limitation on the memory consumed by the workload, per GPU device. The system guarantees The gpuMemoryLimit must be no less than gpuMemoryRequest.","type":"string","pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$","maxLength":63,"nullable":true},"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]*)$","maxLength":63,"nullable":true},"GpuPortionLimit":{"description":"Limitations on the portion consumed by the workload, per GPU device. The system guarantees The gpuPotionLimit must be no less than the gpuPortionRequest.","type":"number","format":"double","nullable":true,"minimum":0},"GpuPortionRequest":{"description":"Required if and only if gpuRequestType is portion. States the portion of the GPU to allocate for the created workload, per GPU device, between 0 and 1. The default is no allocated GPUs.","type":"number","format":"double","nullable":true,"minimum":0},"GpuRequestType":{"description":"Sets the unit type for GPU resources requests. Stated in terms of portion or memory. Sets the unit type for other GPU request fields. If `gpuDevicesRequest > 1`, only `portion` is supported. If `gpuDeviceRequest = 1`, the request type can be stated as `portion` or `memory`.","type":"string","minLength":1,"enum":["portion","memory"],"nullable":true},"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","nullable":true},"CreateHomeDir":{"description":"When set to `true`, creates a home directory for the container.","type":"boolean","nullable":true},"EnvironmentVariablesDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/EnvironmentVariables"}},"nullable":true,"type":"object"},"EnvironmentVariables":{"description":"Set of environment variables to populate into the container running the workload.","type":"array","items":{"$ref":"#/components/schemas/EnvironmentVariable"},"maxItems":1000,"nullable":true},"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,"maxLength":63,"nullable":true,"pattern":".*"},"value":{"description":"The value of the environment variable. (mutually exclusive with secret, userCredential, configMap and podFieldRef)","type":"string","maxLength":10000,"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","nullable":true},"description":{"description":"Description of the environment variable.","type":"string","maxLength":250,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"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,"maxLength":253,"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,"maxLength":63,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"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","minLength":1,"maxLength":253,"nullable":true,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$"},"key":{"description":"The key in the config-map resource. (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"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","minLength":1,"maxLength":10000,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"EnvironmentVariableUserCredential":{"description":"Defines a reference to a user-created credential and a specific key within that credential whose value will populate the environment variable. User credentials can only be accessed by the user who created them.","properties":{"name":{"description":"The name of the user credential.  (mandatory)","type":"string","minLength":1,"maxLength":253,"nullable":true},"key":{"description":"The key in the user credential resource. (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true}},"nullable":true,"type":"object"},"ExposedUrlsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/ExposedUrl"},"instances":{"$ref":"#/components/schemas/ExposedUrls"}},"nullable":true,"type":"object"},"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","nullable":true},"url":{"$ref":"#/components/schemas/Url"},"authorizationType":{"$ref":"#/components/schemas/AuthorizationType"},"authorizedUsers":{"$ref":"#/components/schemas/AuthorizedUsers"},"authorizedGroups":{"$ref":"#/components/schemas/AuthorizedGroups"},"toolType":{"description":"The tool type that runs on this container port.","type":"string","nullable":true,"pattern":".*"},"toolName":{"description":"A name describing the tool that runs on this url.","type":"string","nullable":true,"pattern":".*","maxLength":253},"name":{"description":"Unique name to identify the instance. primarily used for policy locked rules.","type":"string","minLength":1,"maxLength":253,"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","nullable":true}},"nullable":true,"type":"object"},"Url":{"description":"The URL for connecting to the container port. If not specified, the URL will be auto-generated by the system.","type":"string","maxLength":2048,"pattern":".*","nullable":true},"AuthorizationType":{"type":"string","enum":["authenticatedUsers","authorizedUsers","authorizedGroups"],"description":"Specifies who can access the connection URL:\n- `authenticatedUsers`: Any authenticated user or service account can access the URL; the authorizedUsers and authorizedGroups fields are ignored.\n- `authorizedUsers`: Only users listed in the authorizedUsers field are allowed to access the URL; the authorizedGroups field is ignored.\n- `authorizedGroups`: Only members of user groups listed in the authorizedGroups field are allowed to access the URL; the authorizedUsers field is ignored.\nIf 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.\n","nullable":true},"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","maxLength":253,"pattern":".*"},"maxItems":1000,"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","maxLength":253,"pattern":".*"},"maxItems":1000,"nullable":true},"ExposedUrls":{"description":"Set of container ports that the workload exposes via URLs.","type":"array","items":{"$ref":"#/components/schemas/ExposedUrl"},"maxItems":1000,"nullable":true},"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","minLength":1,"maxLength":253,"nullable":true,"pattern":".*"},"ImagePullPolicy":{"description":"Image pull policy. Defaults to `Always` if `:latest` tag is specified, otherwise it is `IfNotPresent`.","type":"string","minLength":1,"enum":["Always","Never","IfNotPresent"],"nullable":true},"ImagePullSecretsDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/ImagePullSecrets"}},"nullable":true,"type":"object"},"ImagePullSecrets":{"description":"A list of references to Kubernetes secrets in the same namespace used for pulling container images.","type":"array","items":{"$ref":"#/components/schemas/ImagePullSecret"},"maxItems":1000,"nullable":true},"ImagePullSecret":{"description":"A reference to a secret in the same namespace used to pull container images.","properties":{"name":{"type":"string","description":"The name of the Kubernetes secret containing the image pull credentials.","pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$","maxLength":253},"userCredential":{"type":"boolean","description":"Indicates whether the secret is a user credential. Set to true if the secret was created by the user and is only accessible by them.","nullable":true},"exclude":{"description":"Use 'true' in case the secret is defined in defaults of the policy, and you wish to exclude it from the workload.","type":"boolean","default":false,"nullable":true}},"nullable":true,"type":"object"},"LabelsDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/Labels"}},"nullable":true,"type":"object"},"Labels":{"description":"Set of labels to populate into the container running the workload.","type":"array","items":{"$ref":"#/components/schemas/Label"},"maxItems":1000,"nullable":true},"Label":{"description":"Label details to be populated into the container.","properties":{"name":{"description":"The name of the label (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":".*"},"value":{"description":"The value of the label.","type":"string","nullable":true,"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","nullable":true}},"nullable":true,"type":"object"},"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"},"maxItems":1000}},"nullable":true},"NodeSelectorTerm":{"type":"object","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"},"maxItems":1000}},"nullable":true},"MatchExpression":{"type":"object","description":"A selector that contains values, a key, and an operator that relates the key and values.","properties":{"key":{"description":"The label key that the selector applies to (mandatory).","type":"string","pattern":".*","maxLength":63},"operator":{"$ref":"#/components/schemas/MatchExpressionOperator"},"values":{"description":"An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer.","type":"array","items":{"type":"string","maxLength":10000,"pattern":".*"},"maxItems":1000}},"required":["key","operator"],"nullable":true},"MatchExpressionOperator":{"description":"Represents a key's relationship to a set of values (mandatory).","type":"string","enum":["In","NotIn","Exists","DoesNotExist","Gt","Lt"]},"NodePools":{"description":"A prioritized list of node pools for the scheduler to run the workload on. The scheduler will always try to use the first node pool before moving to the next one if the first is not available.","type":"array","items":{"type":"string","maxLength":63,"pattern":".*"},"maxItems":1000,"nullable":true},"NodeType2":{"deprecated":true,"description":"Deprecated: use a workload policy node selector to target node types instead. 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","minLength":1,"nullable":true,"pattern":".*"},"PodAffinity":{"description":"Pod affinity scheduling rules (e.g. co-locate this workload in the same node, zone, etc. as some other workloads).","type":"object","properties":{"type":{"$ref":"#/components/schemas/PodAffinityType"},"key":{"description":"The label key to use. (mandatory)","type":"string","nullable":true,"pattern":".*","maxLength":63}},"nullable":true},"PodAffinityType":{"description":"The affinity type, required or preferred. (mandatory)","type":"string","enum":["Required","Preferred"],"nullable":true},"PortsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/Port"},"instances":{"$ref":"#/components/schemas/Ports"}},"nullable":true,"type":"object"},"Port":{"description":"A port for accessing the workload.","properties":{"container":{"description":"The port that the container running the workload exposes. (mandatory)","type":"integer","format":"int32","minimum":1,"maximum":65535,"nullable":true},"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","format":"int32","nullable":true},"toolType":{"description":"The tool type that runs on this port.","type":"string","nullable":true,"pattern":".*","maxLength":63},"toolName":{"description":"A name describing the tool that runs on this port.","type":"string","nullable":true,"pattern":".*","maxLength":253},"name":{"description":"Unique name to identify the instance. primarily used for policy locked rules.","type":"string","minLength":1,"maxLength":63,"nullable":true,"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","default":false,"nullable":true}},"nullable":true,"type":"object"},"PortServiceType":{"description":"The service type of the port (mandatory).","type":"string","enum":["LoadBalancer","NodePort","ClusterIP"],"nullable":true},"Ports":{"description":"Set of container ports that the workload exposes.","type":"array","items":{"$ref":"#/components/schemas/Port"},"maxItems":1000,"nullable":true},"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","minLength":1,"enum":["preemptible","non-preemptible"],"nullable":true},"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","nullable":true,"pattern":".*"},"Probes":{"description":"Probes are used to determine if the container is healthy and ready to accept traffic.","type":"object","properties":{"readiness":{"$ref":"#/components/schemas/Probe"}},"nullable":true},"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},"ProbeHandler":{"description":"The action taken to determine the health of the container. (mandatory)","type":"object","properties":{"httpGet":{"description":"An action based on HTTP Get requests.","type":"object","properties":{"path":{"description":"Path to access on the HTTP server, defaults to /.","type":"string","pattern":"^(\\x2F[a-zA-Z0-9\\-_.\\x2F]*)?$","nullable":true,"maxLength":2048},"port":{"description":"Number of the port to access on the container.","type":"integer","format":"int32","minimum":1,"maximum":65535,"nullable":true},"host":{"description":"Host name to connect to, defaults to the pod IP.","type":"string","format":"hostname","nullable":true,"pattern":".*","maxLength":253},"scheme":{"$ref":"#/components/schemas/ProbeHandlerScheme"}}}},"nullable":true},"ProbeHandlerScheme":{"description":"Scheme to use for connecting to the host, defaults to HTTP.","type":"string","enum":["HTTP","HTTPS"],"nullable":true},"RelatedUrlsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/RelatedUrl"},"instances":{"$ref":"#/components/schemas/RelatedUrls"}},"nullable":true,"type":"object"},"RelatedUrl":{"description":"A URL that is related to the workload. For example, a URL to an external server providing statistics or logging about the workload.","properties":{"url":{"description":"The URL for connecting an external service related to the workload. (mandatory)","type":"string","nullable":true,"pattern":".*","maxLength":2048},"type":{"description":"The type of service that the url provides. For example, wandb (Weights & Biases). (mandatory)","type":"string","nullable":true,"pattern":".*","maxLength":63},"name":{"description":"Unique name to identify the instance. primarily used for policy locked rules.","type":"string","nullable":true,"pattern":".*","maxLength":63},"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,"nullable":true}},"nullable":true,"type":"object"},"RelatedUrls":{"description":"Set of URLs that are related to the workload.","type":"array","items":{"$ref":"#/components/schemas/RelatedUrl"},"maxItems":1000,"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"},"nullable":true},"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"]},"HostIpc":{"description":"Whether to enable host IPC. Defaults to false.","type":"boolean","nullable":true},"HostNetwork":{"description":"Whether to enable host networking. Default to false.","type":"boolean","nullable":true},"ReadOnlyRootFileSystem":{"description":"If true, mounts the container's root filesystem as read-only.","type":"boolean","nullable":true},"RunAsGid":{"description":"The group id to run the entrypoint of the container which executes the workspace. Default to the value specified in the environment asset `runAsGid` field (optional). Use only when the source uid/gid of the environment asset is not `fromTheImage`, and `overrideUidGidInWorkspace` is enabled.","type":"integer","format":"int64","nullable":true},"RunAsNonRoot":{"description":"Force the container to run as a non-root user.","type":"boolean","nullable":true},"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","format":"int64","nullable":true},"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","enum":["RuntimeDefault","Unconfined","Localhost"],"nullable":true},"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","nullable":true,"pattern":".*"},"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://run-ai-docs.nvidia.com/self-hosted/2.26/infrastructure-setup/advanced-setup/container-access/user-identity-in-containers).","type":"string","enum":["fromTheImage","fromIdpToken","custom"],"nullable":true},"ServingPort":{"description":"A port for accessing the inference service","allOf":[{"$ref":"#/components/schemas/ServingPortContainerAndProtocol"},{"$ref":"#/components/schemas/ServingPortAccess"}],"nullable":true,"type":"object"},"ServingPortContainerAndProtocol":{"properties":{"container":{"description":"The port that the container running the inference service exposes (mandatory).","type":"integer","format":"int32","minimum":1,"maximum":65535,"nullable":true},"protocol":{"$ref":"#/components/schemas/ServingPortProtocol"}}},"ServingPortProtocol":{"description":"The protocol used by the port, defaults to http","type":"string","enum":["http","grpc"],"nullable":true},"ServingPortAccess":{"properties":{"authorizationType":{"$ref":"#/components/schemas/ServingPortAccessAuthorizationTypeEnum"},"authorizedUsers":{"$ref":"#/components/schemas/AuthorizedUsers"},"authorizedGroups":{"$ref":"#/components/schemas/AuthorizedGroups"},"clusterLocalAccessOnly":{"description":"Configure the serving port URL to be available only on the cluster-local network, and not externally. Defaults to false","type":"boolean","nullable":true}}},"ServingPortAccessAuthorizationTypeEnum":{"type":"string","enum":["public","authenticatedUsers","authorizedUsers","authorizedGroups","authorizedUsersOrGroups"],"description":"Specifies who can send inference requests to the serving endpoint:\n\nPossible values:\n- `public`: No authorization is required. (Default)\n- `authenticatedUsers`: Any NVIDIA Run:ai authenticated user and service account can send requests.\n- `authorizedUsers`: Only users listed in the authorizedUsers field can send requests.\n- `authorizedGroups`: Only members of user groups listed in the authorizedGroups field can send requests.\n- `authorizedUsersOrGroups`: Requires either authorizedUsers or authorizedGroups to be provided; if neither is set, or if both are set, a mutual exclusion error is reported. Supported from cluster version 2.19.\n","nullable":true},"ConfigMapsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/ConfigMapInstance"},"instances":{"$ref":"#/components/schemas/ConfigMapItems"}},"nullable":true,"type":"object"},"ConfigMapInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/ConfigMap"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"StorageInstanceName":{"properties":{"name":{"description":"unique name to identify the instance. primarily used for policy locked rules.","type":"string","minLength":1,"maxLength":63,"nullable":true}},"nullable":true,"type":"object"},"ConfigMap":{"properties":{"configMap":{"description":"The name of the ConfigMap resource. (mandatory)","type":"string","minLength":1,"maxLength":253,"nullable":true,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$"},"mountPath":{"description":"Local path within the workload to which the ConfigMap will be mapped to. (mandatory)","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"subPath":{"description":"Path within the volume from which the container's volume should be mounted.","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"defaultMode":{"$ref":"#/components/schemas/DefaultMode"}},"nullable":true,"type":"object"},"DefaultMode":{"type":"string","description":"File permission mode in octal string format. This value must be a 4-digit octal number, representing the default file mode when mounting a Secret or ConfigMap as a volume.\n","minLength":4,"maxLength":4,"pattern":"0[0-7]{3}","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,"nullable":true}},"type":"object","nullable":true},"ConfigMapItems":{"description":"Set of config map volumes to use in the workload","type":"array","items":{"$ref":"#/components/schemas/ConfigMapInstance"},"maxItems":1000,"nullable":true},"DataVolumesDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/DataVolumeInstance"},"instances":{"$ref":"#/components/schemas/DataVolumeItems"}},"nullable":true,"type":"object"},"DataVolumeInstance":{"allOf":[{"$ref":"#/components/schemas/DataVolume"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"DataVolume":{"properties":{"id":{"description":"The unique identifier of the data volume. (mandatory)","type":"string","format":"uuid","nullable":true},"mountPath":{"description":"The path where the data volume will be mounted. (mandatory)","type":"string","nullable":true,"pattern":".*","maxLength":4096}},"nullable":true,"type":"object"},"DataVolumeItems":{"description":"Set of data volumes to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/DataVolumeInstance"},"maxItems":1000,"nullable":true},"EmptyDirsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/EmptyDirInstance"},"instances":{"$ref":"#/components/schemas/EmptyDirItems"}},"nullable":true,"type":"object"},"EmptyDirInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/EmptyDir"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"EmptyDir":{"properties":{"path":{"description":"Local path within the workload to which the EmptyDir volume will be mapped. (mandatory)","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"medium":{"description":"The type of storage medium for the volume. Use \"Memory\" for memory-backed storage, or leave empty for disk-backed storage.","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":".*"},"sizeLimit":{"description":"The total amount of local storage or memory required for the emptyDir volume. Specify using Kubernetes quantity format (e.g., 1G, 500Mi).","type":"string","maxLength":63,"pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$","nullable":true}},"nullable":true,"type":"object"},"EmptyDirItems":{"description":"A list of emptyDir volumes to mount in the workload.","type":"array","items":{"$ref":"#/components/schemas/EmptyDirInstance"},"maxItems":1000,"nullable":true},"GitsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/GitInstance"},"instances":{"$ref":"#/components/schemas/GitItems"}},"nullable":true,"type":"object"},"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"},"GitCommon":{"properties":{"repository":{"description":"URL to a remote Git repository. The content of this repository will be mapped to the container running the workload. (mandatory)","type":"string","minLength":1,"maxLength":2048,"nullable":true},"branch":{"description":"Specific branch to synchronize the repository from.","type":"string","minLength":1,"maxLength":63,"nullable":true},"revision":{"description":"Specific revision to synchronize the repository from.","type":"string","minLength":1,"maxLength":63,"nullable":true},"path":{"description":"Local path within the workload to which the Git repository will be mapped (mandatory).","type":"string","minLength":1,"maxLength":4096,"nullable":true}},"nullable":true,"type":"object"},"GitPassword":{"properties":{"passwordSecret":{"description":"Secret containing the credentials of the repository (needed for non public repository which requires authentication). (deprecated)","type":"string","minLength":1,"nullable":true},"secretKeyOfUser":{"description":"The key to use for loading the user name from the secret. The default is `User`. (deprecated)","type":"string","minLength":1,"nullable":true},"secretKeyOfPassword":{"description":"The key to use for loading the password from the secret. The default is `Password`. (deprecated)","type":"string","minLength":1,"nullable":true}},"nullable":true,"type":"object"},"GitSecretRef":{"properties":{"name":{"description":"Name of the Secret containing the credentials of the repository.","type":"string","minLength":1},"authenticationMethod":{"$ref":"#/components/schemas/GitAuthenticationMethod"},"secretKeyOfUser":{"description":"The key in the Secret that contains the Git username (used for `password` authentication).","type":"string","minLength":1,"nullable":true},"secretKeyOfPassword":{"description":"The key in the Secret that contains the Git password (used for `password` authentication).","type":"string","minLength":1,"nullable":true}},"nullable":true,"type":"object"},"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,"enum":["password","ssh-key"]},"GitItems":{"description":"Set of git repositories to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/GitInstance"},"maxItems":1000,"nullable":true},"HostPathsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/HostPathInstance"},"instances":{"$ref":"#/components/schemas/HostPathItems"}},"nullable":true,"type":"object"},"HostPathInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/HostPath"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"HostPath":{"properties":{"path":{"description":"Local path within the controller to which the host volume will be mapped. (mandatory)","type":"string","minLength":1,"maxLength":4096,"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,"maxLength":4096,"nullable":true,"pattern":".*"},"mountPropagation":{"$ref":"#/components/schemas/HostPathMountPropagation"}},"nullable":true,"type":"object"},"HostPathMountPropagation":{"description":"Share this volumes mount with other containers. If set to HostToContainer, this volume mount will receive all subsequent mounts that are mounted to this volume or any of its subdirectories. In case of multiple hostPath entries, this field should have the same value for all of them.","type":"string","enum":["None","HostToContainer"],"nullable":true},"HostPathItems":{"description":"Set of host paths to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/HostPathInstance"},"maxItems":1000,"nullable":true},"NfssDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/NfsInstance"},"instances":{"$ref":"#/components/schemas/NfsItems"}},"nullable":true,"type":"object"},"NfsInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/Nfs"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"Nfs":{"properties":{"path":{"description":"Path that is exported by the NFS server (mandatory). For more information, see [NFS](https://kubernetes.io/docs/concepts/storage/volumes#nfs).","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"readOnly":{"description":"Force the NFS export to be mounted with read-only permissions.","type":"boolean","default":true,"nullable":true},"server":{"description":"The hostname or IP address of the NFS server. (mandatory)","type":"string","minLength":1,"maxLength":253,"nullable":true,"pattern":".*"},"mountPath":{"description":"The path that the NFS volume will be mounted to when in use. (mandatory)","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"NfsItems":{"description":"Set of nfs volumes to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/NfsInstance"},"maxItems":1000,"nullable":true},"PvcsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/PvcInstance"},"instances":{"$ref":"#/components/schemas/PvcItems"}},"nullable":true,"type":"object"},"PvcInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/Pvc"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"Pvc":{"allOf":[{"$ref":"#/components/schemas/PvcFieldsUpdatable"},{"$ref":"#/components/schemas/PvcFieldsNonUpdatable"}]},"PvcFieldsUpdatable":{"properties":{"path":{"description":"Local path within the workload to which the PVC bucket will be mapped. (mandatory)","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"PvcFieldsNonUpdatable":{"properties":{"existingPvc":{"description":"Verify existing PVC. PVC is assumed to exist when set to `true`. If set to `false`, the PVC will be created, if it does not exist.","type":"boolean","default":false,"nullable":true},"claimName":{"description":"Name for the PVC. Allow referencing it across workloads. If not provided, a name based on the workload name and scope will be auto-generated.","type":"string","minLength":1,"maxLength":63,"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,"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,"nullable":true}},"nullable":true,"type":"object"},"ClaimInfo":{"description":"Claim information for the newly created PVC. The information should not be provided when attempting to use existing PVC.","properties":{"size":{"$ref":"#/components/schemas/PvcClaimSize"},"storageClass":{"description":"Storage class name to associate with the PVC. This parameter may be omitted if there is a single storage class in the system, or you are using the default storage class. For more information, see [Storage class](https://kubernetes.io/docs/concepts/storage/storage-classes).","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$"},"accessModes":{"$ref":"#/components/schemas/PvcAccessModes"},"volumeMode":{"$ref":"#/components/schemas/PvcVolumeMode"},"addedAttrValues":{"$ref":"#/components/schemas/PvcAddedAttrValues"}},"nullable":true,"type":"object"},"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]*)$","maxLength":63,"nullable":true},"PvcAccessModes":{"description":"Default access mode(s) applied to newly created PVCs unless explicitly overridden.","properties":{"readWriteOnce":{"description":"Mount the volume as read/write by a single node.","type":"boolean","default":true,"nullable":true},"readOnlyMany":{"description":"Mount the volume as read-only by many nodes.","type":"boolean","default":false,"nullable":true},"readWriteMany":{"description":"Mount the volume as read/write by many nodes.","type":"boolean","default":false,"nullable":true}},"nullable":true,"type":"object"},"PvcVolumeMode":{"description":"Default volume mode for the PVC. Choose between Filesystem (default) or Block.","type":"string","enum":["Filesystem","Block"],"nullable":true},"PvcAddedAttrValues":{"description":"an optional array of key-values pairs that are written as annotations on the created PVC. the allowed attributes are determined according to the storage class configuration (see k8s-objects-tracker for further info).","type":"array","items":{"$ref":"#/components/schemas/PvcAddedAttrValue"},"maxItems":1000},"PvcAddedAttrValue":{"type":"object","required":["key"],"properties":{"key":{"type":"string","minLength":1,"maxLength":63,"pattern":"^([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]$"},"value":{"type":"string","pattern":".*","maxLength":10000}}},"PvcItems":{"description":"Set of pvc persistent volume claims to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/PvcInstance"},"maxItems":1000,"nullable":true},"SecretsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/SecretInstance"},"instances":{"$ref":"#/components/schemas/SecretItems"}},"nullable":true,"type":"object"},"SecretInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/Secret"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"Secret":{"allOf":[{"$ref":"#/components/schemas/SecretFieldsUpdatable"},{"$ref":"#/components/schemas/SecretFieldsNonUpdatable"}]},"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"},"SecretFieldsNonUpdatable":{"properties":{"secret":{"description":"The name of the Secret resource. (mandatory)","type":"string","minLength":1,"nullable":true}},"nullable":true,"type":"object"},"SecretItems":{"description":"Set of secret volumes to use in the workload","type":"array","items":{"$ref":"#/components/schemas/SecretInstance"},"nullable":true},"TolerationsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/Toleration"},"instances":{"$ref":"#/components/schemas/Tolerations"}},"nullable":true,"type":"object"},"Toleration":{"description":"Toleration details.","properties":{"name":{"description":"The name of the toleration.","type":"string","minLength":1,"maxLength":253,"nullable":true,"pattern":".*"},"operator":{"$ref":"#/components/schemas/TolerationOperator"},"key":{"description":"The taint key that the toleration applies to. (mandatory)","type":"string","maxLength":253,"nullable":true,"pattern":".*"},"value":{"description":"The taint value the toleration matches to. Mandatory if operator is Exists, forbidden otherwise.","type":"string","maxLength":10000,"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","nullable":true}},"nullable":true,"type":"object"},"TolerationOperator":{"description":"A key's relationship to the value. Equal uses key and value. Exists is equivalent to wildcard for value, so that a workload can tolerate all taints of a particular category. (mandatory)","type":"string","enum":["Equal","Exists"],"nullable":true},"TolerationEffect":{"description":"The taint effect to match. (mandatory)","type":"string","enum":["NoSchedule","NoExecute","PreferNoSchedule","Any"],"nullable":true},"Tolerations":{"description":"Set of tolerations to apply to the workload.","type":"array","items":{"$ref":"#/components/schemas/Toleration"},"maxItems":1000,"nullable":true},"WorkingDir":{"description":"Container's working directory. If not specified, the container runtime default will be used. This may be configured in the container image.","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"InferenceFields":{"allOf":[{"$ref":"#/components/schemas/AutoScalingField"},{"$ref":"#/components/schemas/ServingConfigurationField"}],"nullable":true,"type":"object"},"AutoScalingField":{"properties":{"autoscaling":{"$ref":"#/components/schemas/AutoScaling"}}},"AutoScaling":{"allOf":[{"$ref":"#/components/schemas/AutoScalingCommonFields"},{"$ref":"#/components/schemas/AutoScalingMetricFields"}],"nullable":true,"type":"object"},"AutoScalingCommonFields":{"allOf":[{"$ref":"#/components/schemas/MetricThresholdPercentageField"},{"$ref":"#/components/schemas/InferencesMinReplicasField"},{"$ref":"#/components/schemas/InferencesMaxReplicasField"},{"$ref":"#/components/schemas/InitialReplicasField"},{"$ref":"#/components/schemas/ActivationReplicasField"},{"$ref":"#/components/schemas/ConcurrencyHardLimitField"},{"$ref":"#/components/schemas/ScaleToZeroRetentionField"},{"$ref":"#/components/schemas/ScaleDownDelayField"},{"$ref":"#/components/schemas/InitializationTimeoutField"}],"nullable":true,"type":"object"},"MetricThresholdPercentageField":{"properties":{"metricThresholdPercentage":{"description":"The percentage of metric threshold value to use for autoscaling. Defaults to 70. Applicable only with the 'throughput' and 'concurrency' metrics","type":"number","format":"float","minimum":1,"maximum":100,"nullable":true}}},"InferencesMinReplicasField":{"properties":{"minReplicas":{"description":"The minimum number of replicas for autoscaling. Defaults to 1. Use 0 to allow scale-to-zero","type":"integer","format":"int32","minimum":0,"nullable":true}}},"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}}},"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","format":"int32","minimum":0,"nullable":true}}},"ActivationReplicasField":{"properties":{"activationReplicas":{"description":"The number of replicas to run when scaling-up from zero. Defaults to minReplicas, or to 1 if minReplicas is set to 0","type":"integer","format":"int32","minimum":1,"nullable":true}}},"ConcurrencyHardLimitField":{"properties":{"concurrencyHardLimit":{"description":"The maximum number of requests allowed to flow to a single replica at any time. 0 means no limit","type":"integer","format":"int32","minimum":0,"nullable":true}}},"ScaleToZeroRetentionField":{"properties":{"scaleToZeroRetentionSeconds":{"description":"The minimum amount of time (in seconds) that the last replica will remain active after a scale-to-zero decision. Defaults to 0. Available only if minReplicas is set to 0","type":"integer","format":"int32","minimum":0,"maximum":3600,"nullable":true}}},"ScaleDownDelayField":{"properties":{"scaleDownDelaySeconds":{"description":"The minimum amount of time (in seconds) that a replica will remain active after a scale-down decision","type":"integer","format":"int32","minimum":0,"maximum":3600,"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}}},"AutoScalingMetricFields":{"allOf":[{"$ref":"#/components/schemas/AutoScalingMetricField"},{"$ref":"#/components/schemas/MetricThresholdField"}],"nullable":true,"type":"object"},"AutoScalingMetricField":{"properties":{"metric":{"$ref":"#/components/schemas/AutoScalingMetric"}}},"AutoScalingMetric":{"description":"The metric to use for autoscaling. Mandatory if minReplicas < maxReplicas, except for the special case where minReplicas is set to 0 and maxReplicas is set to 1, as in this case autoscaling decisions are made according to network activity rather than metrics. Use one of the built-in metrics of 'throughput', 'concurrency' or 'latency', or any other available custom metric. Only the 'throughput' and 'concurrency' metrics support scale-to-zero","type":"string","pattern":"^[a-zA-Z_:][a-zA-Z0-9_:]*$","nullable":true},"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}}},"ServingConfigurationField":{"properties":{"servingConfiguration":{"$ref":"#/components/schemas/ServingConfiguration"}}},"ServingConfiguration":{"description":"The inference workload serving configuration.","properties":{"initializationTimeoutSeconds":{"description":"The maximum time (in seconds) allowed for a workload to initialize and become ready. If the workload does not start within this time, it will be moved to failed state.","type":"integer","format":"int32","minimum":1,"nullable":true},"requestTimeoutSeconds":{"description":"The maximum time (in seconds) allowed to process an end-user request. If no response is returned within this time, the request will be ignored.Supported from Cluster version 2.22","type":"integer","format":"int32","minimum":1,"nullable":true}},"nullable":true,"type":"object"},"InferencePolicyRulesV2":{"allOf":[{"nullable":true,"properties":{"annotations":{"$ref":"#/components/schemas/InstancesRules"},"args":{"$ref":"#/components/schemas/StringRules"},"category":{"$ref":"#/components/schemas/StringRules"},"command":{"$ref":"#/components/schemas/StringRules"},"compute":{"$ref":"#/components/schemas/SupersetRulesAllOfCompute"},"createHomeDir":{"$ref":"#/components/schemas/BooleanRules"},"environmentVariables":{"$ref":"#/components/schemas/InstancesRules"},"exposedUrls":{"$ref":"#/components/schemas/ExposedUrlsRules"},"image":{"$ref":"#/components/schemas/StringRules"},"imagePullPolicy":{"$ref":"#/components/schemas/ImagePullPolicyRules"},"imagePullSecrets":{"$ref":"#/components/schemas/ImagePullSecretsRules"},"labels":{"$ref":"#/components/schemas/InstancesRules"},"nodeAffinityRequired":{"$ref":"#/components/schemas/ArbitraryRules"},"nodePools":{"$ref":"#/components/schemas/ArrayRules"},"nodeType":{"$ref":"#/components/schemas/StringRules"},"podAffinity":{"$ref":"#/components/schemas/PodAffinityRules"},"ports":{"$ref":"#/components/schemas/PortsRules"},"preemptibility":{"$ref":"#/components/schemas/PreemptibilityRules"},"priorityClass":{"$ref":"#/components/schemas/StringRules"},"probes":{"$ref":"#/components/schemas/ProbesRules"},"relatedUrls":{"$ref":"#/components/schemas/RelatedUrlsRules"},"security":{"nullable":true,"properties":{"capabilities":{"$ref":"#/components/schemas/ArrayRules"},"hostIpc":{"$ref":"#/components/schemas/BooleanRules"},"hostNetwork":{"$ref":"#/components/schemas/BooleanRules"},"readOnlyRootFilesystem":{"$ref":"#/components/schemas/BooleanRules"},"runAsGid":{"$ref":"#/components/schemas/IntegerRulesOptional"},"runAsNonRoot":{"$ref":"#/components/schemas/BooleanRules"},"runAsUid":{"$ref":"#/components/schemas/IntegerRulesOptional"},"seccompProfileType":{"$ref":"#/components/schemas/SeccompProfileTypeRules"},"supplementalGroups":{"$ref":"#/components/schemas/StringRules"},"uidGidSource":{"$ref":"#/components/schemas/UidGidSourceRules"}},"type":"object"},"servingPort":{"$ref":"#/components/schemas/ServingPortRules"},"storage":{"nullable":true,"properties":{"configMapVolume":{"$ref":"#/components/schemas/ConfigMapsRules"},"dataVolume":{"$ref":"#/components/schemas/DataVolumesRules"},"emptyDirVolume":{"$ref":"#/components/schemas/EmptyDirsRules"},"git":{"$ref":"#/components/schemas/GitsRules"},"hostPath":{"$ref":"#/components/schemas/HostPathsRules"},"nfs":{"$ref":"#/components/schemas/NfssRules"},"pvc":{"$ref":"#/components/schemas/PvcsRules"},"secretVolume":{"$ref":"#/components/schemas/SecretsRules"}},"type":"object"},"tolerations":{"$ref":"#/components/schemas/TolerationsRules"},"workingDir":{"$ref":"#/components/schemas/StringRules"}},"type":"object"},{"$ref":"#/components/schemas/InferenceFieldsRules"}]},"InstancesRules":{"properties":{"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ItemRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"canAdd":{"description":"Whether it is permitted to add items. Default to true.","type":"boolean","nullable":true},"locked":{"description":"Set of keys for items that are \"locked\", i.e. cannot be removed or deleted.","type":"array","items":{"type":"string"}}},"nullable":true,"type":"object"},"SourceOfRule":{"description":"This field is used by the system along with effective rules, in order to specify the org unit from which this effective rule has been derived. It should be left empty when sending apply policy requests.","required":["scope"],"properties":{"scope":{"$ref":"#/components/schemas/ScopeType"},"projectId":{"$ref":"#/components/schemas/ProjectIdOptional"},"departmentId":{"$ref":"#/components/schemas/DepartmentIdOptional"},"clusterId":{"$ref":"#/components/schemas/ClusterIdOptional"},"isFallback":{"description":"source of this rule is the fallback policy","type":"boolean"}},"nullable":true,"type":"object"},"StringRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/StringRulesOptions"}],"nullable":true,"type":"object"},"StringRulesCommon":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory, default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable, default to true","type":"boolean","nullable":true},"blocked":{"description":"Blocks the field to prevent workloads from specifying any value for it.","type":"boolean","nullable":true}}},"StringRulesOptions":{"properties":{"options":{"description":"Set of options that the value of the field must be chosen from.","type":"array","items":{"$ref":"#/components/schemas/StringOption"},"nullable":true}}},"StringOption":{"description":"One of the values that the field can be assigned to, when options police is applied on the field.","required":["value"],"properties":{"value":{"description":"The value that the field should hold","type":"string","pattern":".*"},"displayed":{"description":"Textual description of the value. to be used by user interface applications.","type":"string","nullable":true,"pattern":".*"}}},"SupersetRulesAllOfCompute":{"title":"SupersetRulesAllOfCompute","nullable":true,"properties":{"cpuCoreLimit":{"$ref":"#/components/schemas/NumberRules"},"cpuCoreRequest":{"$ref":"#/components/schemas/NumberRules"},"cpuMemoryLimit":{"$ref":"#/components/schemas/QuantityRules"},"cpuMemoryRequest":{"$ref":"#/components/schemas/QuantityRules"},"extendedResources":{"$ref":"#/components/schemas/ExtendedResourcesRules"},"gpuDevicesRequest":{"$ref":"#/components/schemas/IntegerRules"},"gpuMemoryLimit":{"$ref":"#/components/schemas/QuantityRules"},"gpuMemoryRequest":{"$ref":"#/components/schemas/QuantityRules"},"gpuPortionLimit":{"$ref":"#/components/schemas/NumberRules"},"gpuPortionRequest":{"$ref":"#/components/schemas/NumberRules"},"gpuRequestType":{"$ref":"#/components/schemas/GpuRequestRules"},"largeShmRequest":{"$ref":"#/components/schemas/BooleanRules"}},"type":"object"},"NumberRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory. default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"number","nullable":true},"max":{"description":"The maximum value that the field can be assigned to.","type":"number","nullable":true},"step":{"description":"The minimal difference between two values the field can be assigned to. For example, min=2, max=3, step=0.25 implies that the values the field can hold are 2, 2.25, 2.5 and 3.","type":"number","nullable":true},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"DefaultFromRule":{"properties":{"field":{"description":"The default of this field is taken from another field, with optional factor. The specified field must belong to the same workload section (compute, security, etc). For itemized field, the value of the field will be taken from the same instance.","type":"string","nullable":true,"pattern":".*"},"factor":{"description":"Multiple the value of the fromField by this factor to get the value for this field For example, if factor is 2 and defaultFrom field has value of 8, the calculated default will be determined to be 16.","type":"number","format":"double","nullable":true,"default":1}},"nullable":true,"type":"object"},"QuantityRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory, default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable, default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"string","nullable":true,"pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"},"max":{"description":"The maximum value that the field can be assigned to.","type":"string","nullable":true,"pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"ExtendedResourcesRules":{"properties":{"attributes":{"$ref":"#/components/schemas/ExtendedResourceRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ExtendedResourceRules":{"description":"Rules for the attributes of extendedResources","properties":{"quantity":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"IntegerRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory. default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"max":{"description":"The maximum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"step":{"description":"The minimal difference between two values the field can be assigned to. For example, min=2, max=10, step=2 implies that the values the field can hold are 2, 4, 6, 8 and 10.","type":"integer","format":"int32","nullable":true},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"GpuRequestRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/GpuRequestOptions"}],"nullable":true,"type":"object"},"GpuRequestOptions":{"properties":{"options":{"description":"Limit the permitted values for gpuRequest to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/GpuRequestType"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"BooleanRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory. default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true}},"nullable":true,"type":"object"},"ExposedUrlsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/ExposedUrlRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ExposedUrlRules":{"description":"Rules for the attributed of exposedUrls","properties":{"container":{"$ref":"#/components/schemas/IntegerRules"},"customUrl":{"$ref":"#/components/schemas/BooleanRules"},"url":{"$ref":"#/components/schemas/StringRules"},"authorizedUsers":{"$ref":"#/components/schemas/ArrayRules"},"authorizedGroups":{"$ref":"#/components/schemas/ArrayRules"},"toolType":{"$ref":"#/components/schemas/StringRules"},"toolName":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"ArrayRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether this array is mandatory. Mandatory array must include at least one item. default to false.","type":"boolean","nullable":true},"options":{"description":"Set of options that the value of each item of the array must be chosen from.","type":"array","items":{"$ref":"#/components/schemas/StringOption"}},"canEdit":{"description":"Whether the value of the array, as a whole, is editable. default to false.","type":"boolean","nullable":true}},"nullable":true,"type":"object"},"ImagePullPolicyRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/ImagePullPolicyOptions"}],"nullable":true,"type":"object"},"ImagePullPolicyOptions":{"properties":{"options":{"description":"Limit the permitted values for imagePullPolicy to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/ImagePullPolicy"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ImagePullSecretsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/ImagePullSecretsRulesAttributes"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ImagePullSecretsRulesAttributes":{"description":"Rules for the attributes of imagePullSecrets","properties":{"name":{"$ref":"#/components/schemas/StringRules"},"userCredentials":{"$ref":"#/components/schemas/BooleanRules"}},"nullable":true,"type":"object"},"ArbitraryRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether this arbitrary object is mandatory. default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field, as a whole, is editable. default to false.","type":"boolean","nullable":true}},"nullable":true,"type":"object"},"PodAffinityRules":{"properties":{"type":{"$ref":"#/components/schemas/PodAffinityTypeRules"},"key":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"PodAffinityTypeRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/PodAffinityTypeOptions"}],"nullable":true,"type":"object"},"PodAffinityTypeOptions":{"properties":{"options":{"type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/PodAffinityType"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"type":"object"},"PortsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/PortRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"PortRules":{"description":"Rules for port attributes","properties":{"container":{"$ref":"#/components/schemas/IntegerRules"},"serviceType":{"$ref":"#/components/schemas/PortServiceTypeRules"},"customExternalPort":{"$ref":"#/components/schemas/BooleanRules"},"external":{"$ref":"#/components/schemas/IntegerRules"},"toolType":{"$ref":"#/components/schemas/StringRules"},"toolName":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"PortServiceTypeRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/PortServiceTypeOptions"}],"nullable":true,"type":"object"},"PortServiceTypeOptions":{"properties":{"options":{"type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/PortServiceType"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"PreemptibilityRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/PreemptibilityOptions"}],"nullable":true,"type":"object"},"PreemptibilityOptions":{"properties":{"options":{"description":"Limit the permitted values for preemptibility to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/Preemptibility"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ProbesRules":{"properties":{"readiness":{"$ref":"#/components/schemas/ProbeRules"}},"nullable":true,"type":"object"},"ProbeRules":{"properties":{"initialDelaySeconds":{"$ref":"#/components/schemas/IntegerRules"},"periodSeconds":{"$ref":"#/components/schemas/IntegerRules"},"timeoutSeconds":{"$ref":"#/components/schemas/IntegerRules"},"successThreshold":{"$ref":"#/components/schemas/IntegerRules"},"failureThreshold":{"$ref":"#/components/schemas/IntegerRules"},"handler":{"$ref":"#/components/schemas/ProbeHandlerRules"}},"nullable":true,"type":"object"},"ProbeHandlerRules":{"properties":{"httpGet":{"properties":{"path":{"$ref":"#/components/schemas/StringRules"},"port":{"$ref":"#/components/schemas/IntegerRules"},"host":{"$ref":"#/components/schemas/StringRules"},"scheme":{"$ref":"#/components/schemas/StringRules"}}}},"nullable":true,"type":"object"},"RelatedUrlsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/RelatedUrlRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"RelatedUrlRules":{"description":"Rules for the attributes of relatedUrls","properties":{"url":{"$ref":"#/components/schemas/StringRules"},"type":{"$ref":"#/components/schemas/StringRules"},"name":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"IntegerRulesOptional":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"max":{"description":"The maximum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"step":{"description":"The minimal difference between two values the field can be assigned to. For example, min=2, max=10, step=2 implies that the values the field can hold are 2, 4, 6, 8 and 10.","type":"integer","format":"int32","nullable":true},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"SeccompProfileTypeRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/SeccompProfileTypeOptions"}],"nullable":true,"type":"object"},"SeccompProfileTypeOptions":{"properties":{"options":{"description":"Limit the permitted values for secompProfileType to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/SeccompProfileType"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"UidGidSourceRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/UidGidSourceOptions"}],"nullable":true,"type":"object"},"UidGidSourceOptions":{"properties":{"options":{"description":"Limit the permitted values for uidGidSource to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/UidGidSource"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ServingPortRules":{"properties":{"container":{"$ref":"#/components/schemas/IntegerRules"},"protocol":{"$ref":"#/components/schemas/ServingPortProtocolRules"},"authorizationType":{"$ref":"#/components/schemas/ServingPortAuthorizationTypeRules"},"authorizedUsers":{"$ref":"#/components/schemas/ArrayRules"},"authorizedGroups":{"$ref":"#/components/schemas/ArrayRules"},"clusterLocalAccessOnly":{"$ref":"#/components/schemas/BooleanRules"}},"nullable":true,"type":"object"},"ServingPortProtocolRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/ServingPortProtocolOptions"}],"nullable":true,"type":"object"},"ServingPortProtocolOptions":{"properties":{"options":{"type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/ServingPortProtocol"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ServingPortAuthorizationTypeRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/ServingPortAuthorizationTypeOptions"}],"nullable":true,"type":"object"},"ServingPortAuthorizationTypeOptions":{"properties":{"options":{"type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/ServingPortAccessAuthorizationTypeEnum"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ConfigMapsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/ConfigMapRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ConfigMapRules":{"properties":{"configMap":{"$ref":"#/components/schemas/StringRules"},"mountPath":{"$ref":"#/components/schemas/StringRules"},"subPath":{"$ref":"#/components/schemas/StringRules"},"defaultMode":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"DataVolumesRules":{"properties":{"attributes":{"$ref":"#/components/schemas/DataVolumeRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"DataVolumeRules":{"properties":{"id":{"$ref":"#/components/schemas/StringRules"},"mountPath":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"EmptyDirsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/EmptyDirRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"EmptyDirRules":{"properties":{"path":{"$ref":"#/components/schemas/StringRules"},"medium":{"$ref":"#/components/schemas/StringRules"},"sizeLimit":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"GitsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/GitRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"GitRules":{"properties":{"repository":{"$ref":"#/components/schemas/StringRules"},"branch":{"$ref":"#/components/schemas/StringRules"},"revision":{"$ref":"#/components/schemas/StringRules"},"path":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"HostPathsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/HostPathRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"HostPathRules":{"properties":{"path":{"$ref":"#/components/schemas/StringRules"},"readOnly":{"$ref":"#/components/schemas/BooleanRules"},"mountPath":{"$ref":"#/components/schemas/StringRules"},"mountPropagation":{"$ref":"#/components/schemas/HostPathMountPropagationRules"}},"nullable":true,"type":"object"},"HostPathMountPropagationRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/HostPathMountPropagationOptions"}],"nullable":true,"type":"object"},"HostPathMountPropagationOptions":{"properties":{"options":{"type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/HostPathMountPropagation"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}}},"NfssRules":{"properties":{"attributes":{"$ref":"#/components/schemas/NfsRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"NfsRules":{"properties":{"path":{"$ref":"#/components/schemas/StringRules"},"readOnly":{"$ref":"#/components/schemas/BooleanRules"},"server":{"$ref":"#/components/schemas/StringRules"},"mountPath":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"PvcsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/PvcRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"PvcRules":{"properties":{"claimName":{"$ref":"#/components/schemas/StringRules"},"path":{"$ref":"#/components/schemas/StringRules"},"readOnly":{"$ref":"#/components/schemas/BooleanRules"},"claimInfo":{"$ref":"#/components/schemas/ClaimInfoRules"}},"nullable":true,"type":"object"},"ClaimInfoRules":{"properties":{"size":{"$ref":"#/components/schemas/StringRules"},"storageClass":{"$ref":"#/components/schemas/StringRules"},"accessModes":{"$ref":"#/components/schemas/PvcAccessModesRules"}},"nullable":true,"type":"object"},"PvcAccessModesRules":{"description":"Rules for access mode(s) for a newly created PVC.","properties":{"readWriteOnce":{"$ref":"#/components/schemas/BooleanRules"},"readOnlyMany":{"$ref":"#/components/schemas/BooleanRules"},"readWriteMany":{"$ref":"#/components/schemas/BooleanRules"}},"nullable":true,"type":"object"},"SecretsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/SecretRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"SecretRules":{"properties":{"secret":{"$ref":"#/components/schemas/StringRules"},"mountPath":{"$ref":"#/components/schemas/StringRules"},"defaultMode":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"TolerationsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/TolerationRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"TolerationRules":{"description":"Toleration details.","properties":{"operator":{"$ref":"#/components/schemas/TolerationOperatorRules"},"key":{"$ref":"#/components/schemas/StringRules"},"value":{"$ref":"#/components/schemas/StringRules"},"effect":{"$ref":"#/components/schemas/TolerationEffectRules"},"seconds":{"$ref":"#/components/schemas/IntegerRules"},"exclude":{"$ref":"#/components/schemas/BooleanRules"}},"nullable":true,"type":"object"},"TolerationOperatorRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/TolerationOperatorOptions"}],"nullable":true,"type":"object"},"TolerationOperatorOptions":{"properties":{"options":{"description":"Limit the permitted values for imagePullPolicy to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/TolerationOperator"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"TolerationEffectRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/TolerationEffectOptions"}],"nullable":true,"type":"object"},"TolerationEffectOptions":{"properties":{"options":{"description":"Limit the permitted values for imagePullPolicy to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/TolerationEffect"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"InferenceFieldsRules":{"properties":{"autoscaling":{"$ref":"#/components/schemas/AutoScalingRules"},"servingConfiguration":{"$ref":"#/components/schemas/ServingConfigurationRules"}},"nullable":true,"type":"object"},"AutoScalingRules":{"properties":{"metricThresholdPercentage":{"$ref":"#/components/schemas/NumberRules"},"minReplicas":{"$ref":"#/components/schemas/IntegerRules"},"maxReplicas":{"$ref":"#/components/schemas/IntegerRules"},"initialReplicas":{"$ref":"#/components/schemas/IntegerRules"},"activationReplicas":{"$ref":"#/components/schemas/IntegerRules"},"metric":{"$ref":"#/components/schemas/AutoScalingMetricRules"},"metricThreshold":{"$ref":"#/components/schemas/IntegerRules"},"concurrencyHardLimit":{"$ref":"#/components/schemas/IntegerRules"},"scaleToZeroRetentionSeconds":{"$ref":"#/components/schemas/IntegerRules"},"scaleDownDelaySeconds":{"$ref":"#/components/schemas/IntegerRules"},"initializationTimeoutSeconds":{"allOf":[{"$ref":"#/components/schemas/IntegerRules"}],"deprecated":true}},"nullable":true,"type":"object"},"AutoScalingMetricRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/AutoScalingMetricOptions"}],"nullable":true,"type":"object"},"AutoScalingMetricOptions":{"properties":{"options":{"type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/AutoScalingMetric"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ServingConfigurationRules":{"properties":{"initializationTimeoutSeconds":{"$ref":"#/components/schemas/IntegerRules"},"requestTimeoutSeconds":{"$ref":"#/components/schemas/IntegerRules"}},"nullable":true,"type":"object"},"ImposedAssets":{"description":"a list of datasource assets to import into the policy. these datasources will be included in any workload that will be created in the scope of the policy.","type":"array","items":{"type":"string","format":"uuid"},"nullable":true},"PolicyValidationStatus":{"properties":{"validation":{"properties":{"errorMessage":{"pattern":".*","type":"string","description":"In case validation failed, holds the error message explaining the issue"}},"nullable":true,"type":"object"}},"nullable":true,"type":"object"},"Timestamp":{"description":"The time at which an event occurred. e.g. the time an effective policy has been updated","type":"string","minLength":1,"format":"date-time"},"Error":{"required":["code","message"],"properties":{"code":{"type":"integer","minimum":100,"maximum":599},"message":{"type":"string"},"details":{"type":"string"}}}},"responses":{"400BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401Unauthorized":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403Forbidden":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404NotFound":{"description":"The specified resource was not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503ServiceUnavailable":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/api/v2/policy/inferences":{"get":{"summary":"Get an inference policy.","description":"Retrieve the details of an inference policy for a given organizational unit.","operationId":"get_inference_policy_v2","tags":["Policy"],"parameters":[{"$ref":"#/components/parameters/PolicyScope"},{"$ref":"#/components/parameters/FilterByDepartment"},{"$ref":"#/components/parameters/FilterByProject"},{"$ref":"#/components/parameters/FilterByCluster"}],"responses":{"200":{"description":"Request completed successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferencePolicyV2"}}}},"400":{"$ref":"#/components/responses/400BadRequest"},"401":{"$ref":"#/components/responses/401Unauthorized"},"403":{"$ref":"#/components/responses/403Forbidden"},"404":{"$ref":"#/components/responses/404NotFound"},"503":{"$ref":"#/components/responses/503ServiceUnavailable"}}}}}}
```

## Overwrite an inference policy.

> Use to apply an inference policy for a given organizational unit.

```json
{"openapi":"3.0.3","info":{"title":"NVIDIA Run:ai","version":"2.26"},"tags":[{"name":"Policy","description":"Policies allow administrators to impose restrictions and set default values for researcher workloads. \nRestrictions and default values can be placed on CPUs, GPUs, and other resources or entities. \nFor more information, see [Policies](https://run-ai-docs.nvidia.com/self-hosted/2.26/platform-management/policies/#introduction).\n"}],"servers":[{"url":"https://app.run.ai"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer authentication"}},"parameters":{"ValidateOnly":{"name":"validateOnly","in":"query","required":false,"description":"Validate the given policy payload without applying it","schema":{"type":"boolean"}},"ApproveClusterDeletion":{"name":"approveClusterDeletion","in":"query","required":false,"description":"Required when modifying or deleting a policy if the tenant includes one or more clusters running version 2.20 or earlier. In such cases, the platform must delete the policy from the affected clusters. This flag indicates that the administrator approves this deletion.","schema":{"type":"boolean"}}},"schemas":{"InferencePolicyOverwriteRequestV2":{"properties":{"meta":{"$ref":"#/components/schemas/PolicyCreationFields"},"policy":{"$ref":"#/components/schemas/InferencePolicyDefaultsAndRulesV2"}},"type":"object"},"PolicyCreationFields":{"required":["name","scope"],"properties":{"scope":{"$ref":"#/components/schemas/ScopeType"},"projectId":{"$ref":"#/components/schemas/ProjectIdOptional"},"departmentId":{"$ref":"#/components/schemas/DepartmentIdOptional"},"clusterId":{"$ref":"#/components/schemas/ClusterIdOptional"},"name":{"$ref":"#/components/schemas/PolicyName"}}},"ScopeType":{"type":"string","enum":["system","tenant","cluster","department","project"]},"ProjectIdOptional":{"description":"The id of the project.","type":"integer","format":"int32","nullable":true},"DepartmentIdOptional":{"description":"The id of the department.","type":"string","minLength":1,"nullable":true,"pattern":".*"},"ClusterIdOptional":{"description":"The id of the cluster.","type":"string","format":"uuid","minLength":1,"nullable":true},"PolicyName":{"description":"A chosen name for the policy.","type":"string","minLength":1,"pattern":".*"},"InferencePolicyDefaultsAndRulesV2":{"properties":{"defaults":{"allOf":[{"$ref":"#/components/schemas/InferencePolicyDefaultsV2"}],"nullable":true,"type":"object"},"rules":{"allOf":[{"$ref":"#/components/schemas/InferencePolicyRulesV2"}],"nullable":true,"type":"object"},"imposedAssets":{"$ref":"#/components/schemas/ImposedAssets"},"status":{"$ref":"#/components/schemas/PolicyValidationStatus"}},"nullable":true,"type":"object"},"InferencePolicyDefaultsV2":{"allOf":[{"nullable":true,"properties":{"annotations":{"$ref":"#/components/schemas/AnnotationsDefaults"},"args":{"$ref":"#/components/schemas/Args"},"category":{"$ref":"#/components/schemas/Category"},"command":{"$ref":"#/components/schemas/Command"},"compute":{"$ref":"#/components/schemas/SupersetDefaultsAllOfCompute"},"createHomeDir":{"$ref":"#/components/schemas/CreateHomeDir"},"environmentVariables":{"$ref":"#/components/schemas/EnvironmentVariablesDefaults"},"exposedUrls":{"$ref":"#/components/schemas/ExposedUrlsDefaults"},"image":{"$ref":"#/components/schemas/Image"},"imagePullPolicy":{"$ref":"#/components/schemas/ImagePullPolicy"},"imagePullSecrets":{"$ref":"#/components/schemas/ImagePullSecretsDefaults"},"labels":{"$ref":"#/components/schemas/LabelsDefaults"},"nodeAffinityRequired":{"$ref":"#/components/schemas/NodeAffinityRequired"},"nodePools":{"$ref":"#/components/schemas/NodePools"},"nodeType":{"$ref":"#/components/schemas/NodeType2"},"podAffinity":{"$ref":"#/components/schemas/PodAffinity"},"ports":{"$ref":"#/components/schemas/PortsDefaults"},"preemptibility":{"$ref":"#/components/schemas/Preemptibility"},"priorityClass":{"$ref":"#/components/schemas/PriorityClass"},"probes":{"$ref":"#/components/schemas/Probes"},"relatedUrls":{"$ref":"#/components/schemas/RelatedUrlsDefaults"},"security":{"nullable":true,"properties":{"capabilities":{"$ref":"#/components/schemas/Capabilities"},"hostIpc":{"$ref":"#/components/schemas/HostIpc"},"hostNetwork":{"$ref":"#/components/schemas/HostNetwork"},"readOnlyRootFilesystem":{"$ref":"#/components/schemas/ReadOnlyRootFileSystem"},"runAsGid":{"$ref":"#/components/schemas/RunAsGid"},"runAsNonRoot":{"$ref":"#/components/schemas/RunAsNonRoot"},"runAsUid":{"$ref":"#/components/schemas/RunAsUid"},"seccompProfileType":{"$ref":"#/components/schemas/SeccompProfileType"},"supplementalGroups":{"$ref":"#/components/schemas/SupplementalGroups"},"uidGidSource":{"$ref":"#/components/schemas/UidGidSource"}},"type":"object"},"servingPort":{"$ref":"#/components/schemas/ServingPort"},"storage":{"nullable":true,"properties":{"configMapVolume":{"$ref":"#/components/schemas/ConfigMapsDefaults"},"dataVolume":{"$ref":"#/components/schemas/DataVolumesDefaults"},"emptyDirVolume":{"$ref":"#/components/schemas/EmptyDirsDefaults"},"git":{"$ref":"#/components/schemas/GitsDefaults"},"hostPath":{"$ref":"#/components/schemas/HostPathsDefaults"},"nfs":{"$ref":"#/components/schemas/NfssDefaults"},"pvc":{"$ref":"#/components/schemas/PvcsDefaults"},"secretVolume":{"$ref":"#/components/schemas/SecretsDefaults"}},"type":"object"},"tolerations":{"$ref":"#/components/schemas/TolerationsDefaults"},"workingDir":{"$ref":"#/components/schemas/WorkingDir"}},"type":"object"},{"$ref":"#/components/schemas/InferenceFields"}]},"AnnotationsDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/Annotations"}},"nullable":true,"type":"object"},"Annotations":{"description":"Set of annotations to populate into the container running the workload.","type":"array","items":{"$ref":"#/components/schemas/Annotation"},"maxItems":1000,"nullable":true},"Annotation":{"description":"Annotation details to be populated into the container.","properties":{"name":{"description":"The name of the annotation (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":".*"},"value":{"description":"The value of the annotation.","type":"string","maxLength":10000,"nullable":true,"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","default":false,"nullable":true}},"nullable":true,"type":"object"},"Args":{"description":"Arguments to the command that the container running the workload executes.","type":"string","minLength":1,"maxLength":10000,"nullable":true,"pattern":".*"},"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":".*"},"Command":{"description":"A command to the server as the entry point of the container running the workload.","type":"string","minLength":1,"maxLength":10000,"nullable":true,"pattern":".*"},"SupersetDefaultsAllOfCompute":{"title":"SupersetDefaultsAllOfCompute","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/ExtendedResourcesDefaults"},"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"},"CpuCoreLimit":{"description":"Limitations on the number of CPUs consumed by the workload (0.5, 1, .etc). The system guarantees that this workload will not be able to consume more than this amount of CPUs.","format":"double","type":"number","nullable":true,"minimum":0},"CpuCoreRequest":{"description":"CPU units to allocate for the created workload (0.5, 1, .etc). The workload will receive at least this amount of CPU. Note that the workload will not be scheduled unless the system can guarantee this amount of CPUs to the workload.","format":"double","type":"number","nullable":true,"minimum":0},"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]*)$","maxLength":63,"nullable":true},"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","pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$","maxLength":63,"nullable":true},"ExtendedResourcesDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/ExtendedResource"},"instances":{"$ref":"#/components/schemas/ExtendedResources"}},"nullable":true,"type":"object"},"ExtendedResource":{"description":"Quantity of an extended resource.","properties":{"resource":{"description":"The name of the extended resource (mandatory)","type":"string","minLength":1,"maxLength":253,"nullable":true,"pattern":".*"},"quantity":{"description":"The requested quantity for the resource.","type":"string","minLength":1,"maxLength":63,"nullable":true,"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","nullable":true}},"nullable":true,"type":"object"},"ExtendedResources":{"description":"Extended resources and their quantity.","type":"array","items":{"$ref":"#/components/schemas/ExtendedResource"},"maxItems":1000,"nullable":true},"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","format":"int32","nullable":true,"minimum":0},"GpuMemoryLimit":{"description":"Limitation on the memory consumed by the workload, per GPU device. The system guarantees The gpuMemoryLimit must be no less than gpuMemoryRequest.","type":"string","pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$","maxLength":63,"nullable":true},"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]*)$","maxLength":63,"nullable":true},"GpuPortionLimit":{"description":"Limitations on the portion consumed by the workload, per GPU device. The system guarantees The gpuPotionLimit must be no less than the gpuPortionRequest.","type":"number","format":"double","nullable":true,"minimum":0},"GpuPortionRequest":{"description":"Required if and only if gpuRequestType is portion. States the portion of the GPU to allocate for the created workload, per GPU device, between 0 and 1. The default is no allocated GPUs.","type":"number","format":"double","nullable":true,"minimum":0},"GpuRequestType":{"description":"Sets the unit type for GPU resources requests. Stated in terms of portion or memory. Sets the unit type for other GPU request fields. If `gpuDevicesRequest > 1`, only `portion` is supported. If `gpuDeviceRequest = 1`, the request type can be stated as `portion` or `memory`.","type":"string","minLength":1,"enum":["portion","memory"],"nullable":true},"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","nullable":true},"CreateHomeDir":{"description":"When set to `true`, creates a home directory for the container.","type":"boolean","nullable":true},"EnvironmentVariablesDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/EnvironmentVariables"}},"nullable":true,"type":"object"},"EnvironmentVariables":{"description":"Set of environment variables to populate into the container running the workload.","type":"array","items":{"$ref":"#/components/schemas/EnvironmentVariable"},"maxItems":1000,"nullable":true},"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,"maxLength":63,"nullable":true,"pattern":".*"},"value":{"description":"The value of the environment variable. (mutually exclusive with secret, userCredential, configMap and podFieldRef)","type":"string","maxLength":10000,"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","nullable":true},"description":{"description":"Description of the environment variable.","type":"string","maxLength":250,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"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,"maxLength":253,"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,"maxLength":63,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"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","minLength":1,"maxLength":253,"nullable":true,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$"},"key":{"description":"The key in the config-map resource. (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"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","minLength":1,"maxLength":10000,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"EnvironmentVariableUserCredential":{"description":"Defines a reference to a user-created credential and a specific key within that credential whose value will populate the environment variable. User credentials can only be accessed by the user who created them.","properties":{"name":{"description":"The name of the user credential.  (mandatory)","type":"string","minLength":1,"maxLength":253,"nullable":true},"key":{"description":"The key in the user credential resource. (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true}},"nullable":true,"type":"object"},"ExposedUrlsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/ExposedUrl"},"instances":{"$ref":"#/components/schemas/ExposedUrls"}},"nullable":true,"type":"object"},"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","nullable":true},"url":{"$ref":"#/components/schemas/Url"},"authorizationType":{"$ref":"#/components/schemas/AuthorizationType"},"authorizedUsers":{"$ref":"#/components/schemas/AuthorizedUsers"},"authorizedGroups":{"$ref":"#/components/schemas/AuthorizedGroups"},"toolType":{"description":"The tool type that runs on this container port.","type":"string","nullable":true,"pattern":".*"},"toolName":{"description":"A name describing the tool that runs on this url.","type":"string","nullable":true,"pattern":".*","maxLength":253},"name":{"description":"Unique name to identify the instance. primarily used for policy locked rules.","type":"string","minLength":1,"maxLength":253,"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","nullable":true}},"nullable":true,"type":"object"},"Url":{"description":"The URL for connecting to the container port. If not specified, the URL will be auto-generated by the system.","type":"string","maxLength":2048,"pattern":".*","nullable":true},"AuthorizationType":{"type":"string","enum":["authenticatedUsers","authorizedUsers","authorizedGroups"],"description":"Specifies who can access the connection URL:\n- `authenticatedUsers`: Any authenticated user or service account can access the URL; the authorizedUsers and authorizedGroups fields are ignored.\n- `authorizedUsers`: Only users listed in the authorizedUsers field are allowed to access the URL; the authorizedGroups field is ignored.\n- `authorizedGroups`: Only members of user groups listed in the authorizedGroups field are allowed to access the URL; the authorizedUsers field is ignored.\nIf 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.\n","nullable":true},"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","maxLength":253,"pattern":".*"},"maxItems":1000,"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","maxLength":253,"pattern":".*"},"maxItems":1000,"nullable":true},"ExposedUrls":{"description":"Set of container ports that the workload exposes via URLs.","type":"array","items":{"$ref":"#/components/schemas/ExposedUrl"},"maxItems":1000,"nullable":true},"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","minLength":1,"maxLength":253,"nullable":true,"pattern":".*"},"ImagePullPolicy":{"description":"Image pull policy. Defaults to `Always` if `:latest` tag is specified, otherwise it is `IfNotPresent`.","type":"string","minLength":1,"enum":["Always","Never","IfNotPresent"],"nullable":true},"ImagePullSecretsDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/ImagePullSecrets"}},"nullable":true,"type":"object"},"ImagePullSecrets":{"description":"A list of references to Kubernetes secrets in the same namespace used for pulling container images.","type":"array","items":{"$ref":"#/components/schemas/ImagePullSecret"},"maxItems":1000,"nullable":true},"ImagePullSecret":{"description":"A reference to a secret in the same namespace used to pull container images.","properties":{"name":{"type":"string","description":"The name of the Kubernetes secret containing the image pull credentials.","pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$","maxLength":253},"userCredential":{"type":"boolean","description":"Indicates whether the secret is a user credential. Set to true if the secret was created by the user and is only accessible by them.","nullable":true},"exclude":{"description":"Use 'true' in case the secret is defined in defaults of the policy, and you wish to exclude it from the workload.","type":"boolean","default":false,"nullable":true}},"nullable":true,"type":"object"},"LabelsDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/Labels"}},"nullable":true,"type":"object"},"Labels":{"description":"Set of labels to populate into the container running the workload.","type":"array","items":{"$ref":"#/components/schemas/Label"},"maxItems":1000,"nullable":true},"Label":{"description":"Label details to be populated into the container.","properties":{"name":{"description":"The name of the label (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":".*"},"value":{"description":"The value of the label.","type":"string","nullable":true,"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","nullable":true}},"nullable":true,"type":"object"},"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"},"maxItems":1000}},"nullable":true},"NodeSelectorTerm":{"type":"object","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"},"maxItems":1000}},"nullable":true},"MatchExpression":{"type":"object","description":"A selector that contains values, a key, and an operator that relates the key and values.","properties":{"key":{"description":"The label key that the selector applies to (mandatory).","type":"string","pattern":".*","maxLength":63},"operator":{"$ref":"#/components/schemas/MatchExpressionOperator"},"values":{"description":"An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer.","type":"array","items":{"type":"string","maxLength":10000,"pattern":".*"},"maxItems":1000}},"required":["key","operator"],"nullable":true},"MatchExpressionOperator":{"description":"Represents a key's relationship to a set of values (mandatory).","type":"string","enum":["In","NotIn","Exists","DoesNotExist","Gt","Lt"]},"NodePools":{"description":"A prioritized list of node pools for the scheduler to run the workload on. The scheduler will always try to use the first node pool before moving to the next one if the first is not available.","type":"array","items":{"type":"string","maxLength":63,"pattern":".*"},"maxItems":1000,"nullable":true},"NodeType2":{"deprecated":true,"description":"Deprecated: use a workload policy node selector to target node types instead. 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","minLength":1,"nullable":true,"pattern":".*"},"PodAffinity":{"description":"Pod affinity scheduling rules (e.g. co-locate this workload in the same node, zone, etc. as some other workloads).","type":"object","properties":{"type":{"$ref":"#/components/schemas/PodAffinityType"},"key":{"description":"The label key to use. (mandatory)","type":"string","nullable":true,"pattern":".*","maxLength":63}},"nullable":true},"PodAffinityType":{"description":"The affinity type, required or preferred. (mandatory)","type":"string","enum":["Required","Preferred"],"nullable":true},"PortsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/Port"},"instances":{"$ref":"#/components/schemas/Ports"}},"nullable":true,"type":"object"},"Port":{"description":"A port for accessing the workload.","properties":{"container":{"description":"The port that the container running the workload exposes. (mandatory)","type":"integer","format":"int32","minimum":1,"maximum":65535,"nullable":true},"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","format":"int32","nullable":true},"toolType":{"description":"The tool type that runs on this port.","type":"string","nullable":true,"pattern":".*","maxLength":63},"toolName":{"description":"A name describing the tool that runs on this port.","type":"string","nullable":true,"pattern":".*","maxLength":253},"name":{"description":"Unique name to identify the instance. primarily used for policy locked rules.","type":"string","minLength":1,"maxLength":63,"nullable":true,"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","default":false,"nullable":true}},"nullable":true,"type":"object"},"PortServiceType":{"description":"The service type of the port (mandatory).","type":"string","enum":["LoadBalancer","NodePort","ClusterIP"],"nullable":true},"Ports":{"description":"Set of container ports that the workload exposes.","type":"array","items":{"$ref":"#/components/schemas/Port"},"maxItems":1000,"nullable":true},"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","minLength":1,"enum":["preemptible","non-preemptible"],"nullable":true},"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","nullable":true,"pattern":".*"},"Probes":{"description":"Probes are used to determine if the container is healthy and ready to accept traffic.","type":"object","properties":{"readiness":{"$ref":"#/components/schemas/Probe"}},"nullable":true},"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},"ProbeHandler":{"description":"The action taken to determine the health of the container. (mandatory)","type":"object","properties":{"httpGet":{"description":"An action based on HTTP Get requests.","type":"object","properties":{"path":{"description":"Path to access on the HTTP server, defaults to /.","type":"string","pattern":"^(\\x2F[a-zA-Z0-9\\-_.\\x2F]*)?$","nullable":true,"maxLength":2048},"port":{"description":"Number of the port to access on the container.","type":"integer","format":"int32","minimum":1,"maximum":65535,"nullable":true},"host":{"description":"Host name to connect to, defaults to the pod IP.","type":"string","format":"hostname","nullable":true,"pattern":".*","maxLength":253},"scheme":{"$ref":"#/components/schemas/ProbeHandlerScheme"}}}},"nullable":true},"ProbeHandlerScheme":{"description":"Scheme to use for connecting to the host, defaults to HTTP.","type":"string","enum":["HTTP","HTTPS"],"nullable":true},"RelatedUrlsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/RelatedUrl"},"instances":{"$ref":"#/components/schemas/RelatedUrls"}},"nullable":true,"type":"object"},"RelatedUrl":{"description":"A URL that is related to the workload. For example, a URL to an external server providing statistics or logging about the workload.","properties":{"url":{"description":"The URL for connecting an external service related to the workload. (mandatory)","type":"string","nullable":true,"pattern":".*","maxLength":2048},"type":{"description":"The type of service that the url provides. For example, wandb (Weights & Biases). (mandatory)","type":"string","nullable":true,"pattern":".*","maxLength":63},"name":{"description":"Unique name to identify the instance. primarily used for policy locked rules.","type":"string","nullable":true,"pattern":".*","maxLength":63},"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,"nullable":true}},"nullable":true,"type":"object"},"RelatedUrls":{"description":"Set of URLs that are related to the workload.","type":"array","items":{"$ref":"#/components/schemas/RelatedUrl"},"maxItems":1000,"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"},"nullable":true},"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"]},"HostIpc":{"description":"Whether to enable host IPC. Defaults to false.","type":"boolean","nullable":true},"HostNetwork":{"description":"Whether to enable host networking. Default to false.","type":"boolean","nullable":true},"ReadOnlyRootFileSystem":{"description":"If true, mounts the container's root filesystem as read-only.","type":"boolean","nullable":true},"RunAsGid":{"description":"The group id to run the entrypoint of the container which executes the workspace. Default to the value specified in the environment asset `runAsGid` field (optional). Use only when the source uid/gid of the environment asset is not `fromTheImage`, and `overrideUidGidInWorkspace` is enabled.","type":"integer","format":"int64","nullable":true},"RunAsNonRoot":{"description":"Force the container to run as a non-root user.","type":"boolean","nullable":true},"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","format":"int64","nullable":true},"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","enum":["RuntimeDefault","Unconfined","Localhost"],"nullable":true},"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","nullable":true,"pattern":".*"},"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://run-ai-docs.nvidia.com/self-hosted/2.26/infrastructure-setup/advanced-setup/container-access/user-identity-in-containers).","type":"string","enum":["fromTheImage","fromIdpToken","custom"],"nullable":true},"ServingPort":{"description":"A port for accessing the inference service","allOf":[{"$ref":"#/components/schemas/ServingPortContainerAndProtocol"},{"$ref":"#/components/schemas/ServingPortAccess"}],"nullable":true,"type":"object"},"ServingPortContainerAndProtocol":{"properties":{"container":{"description":"The port that the container running the inference service exposes (mandatory).","type":"integer","format":"int32","minimum":1,"maximum":65535,"nullable":true},"protocol":{"$ref":"#/components/schemas/ServingPortProtocol"}}},"ServingPortProtocol":{"description":"The protocol used by the port, defaults to http","type":"string","enum":["http","grpc"],"nullable":true},"ServingPortAccess":{"properties":{"authorizationType":{"$ref":"#/components/schemas/ServingPortAccessAuthorizationTypeEnum"},"authorizedUsers":{"$ref":"#/components/schemas/AuthorizedUsers"},"authorizedGroups":{"$ref":"#/components/schemas/AuthorizedGroups"},"clusterLocalAccessOnly":{"description":"Configure the serving port URL to be available only on the cluster-local network, and not externally. Defaults to false","type":"boolean","nullable":true}}},"ServingPortAccessAuthorizationTypeEnum":{"type":"string","enum":["public","authenticatedUsers","authorizedUsers","authorizedGroups","authorizedUsersOrGroups"],"description":"Specifies who can send inference requests to the serving endpoint:\n\nPossible values:\n- `public`: No authorization is required. (Default)\n- `authenticatedUsers`: Any NVIDIA Run:ai authenticated user and service account can send requests.\n- `authorizedUsers`: Only users listed in the authorizedUsers field can send requests.\n- `authorizedGroups`: Only members of user groups listed in the authorizedGroups field can send requests.\n- `authorizedUsersOrGroups`: Requires either authorizedUsers or authorizedGroups to be provided; if neither is set, or if both are set, a mutual exclusion error is reported. Supported from cluster version 2.19.\n","nullable":true},"ConfigMapsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/ConfigMapInstance"},"instances":{"$ref":"#/components/schemas/ConfigMapItems"}},"nullable":true,"type":"object"},"ConfigMapInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/ConfigMap"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"StorageInstanceName":{"properties":{"name":{"description":"unique name to identify the instance. primarily used for policy locked rules.","type":"string","minLength":1,"maxLength":63,"nullable":true}},"nullable":true,"type":"object"},"ConfigMap":{"properties":{"configMap":{"description":"The name of the ConfigMap resource. (mandatory)","type":"string","minLength":1,"maxLength":253,"nullable":true,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$"},"mountPath":{"description":"Local path within the workload to which the ConfigMap will be mapped to. (mandatory)","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"subPath":{"description":"Path within the volume from which the container's volume should be mounted.","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"defaultMode":{"$ref":"#/components/schemas/DefaultMode"}},"nullable":true,"type":"object"},"DefaultMode":{"type":"string","description":"File permission mode in octal string format. This value must be a 4-digit octal number, representing the default file mode when mounting a Secret or ConfigMap as a volume.\n","minLength":4,"maxLength":4,"pattern":"0[0-7]{3}","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,"nullable":true}},"type":"object","nullable":true},"ConfigMapItems":{"description":"Set of config map volumes to use in the workload","type":"array","items":{"$ref":"#/components/schemas/ConfigMapInstance"},"maxItems":1000,"nullable":true},"DataVolumesDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/DataVolumeInstance"},"instances":{"$ref":"#/components/schemas/DataVolumeItems"}},"nullable":true,"type":"object"},"DataVolumeInstance":{"allOf":[{"$ref":"#/components/schemas/DataVolume"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"DataVolume":{"properties":{"id":{"description":"The unique identifier of the data volume. (mandatory)","type":"string","format":"uuid","nullable":true},"mountPath":{"description":"The path where the data volume will be mounted. (mandatory)","type":"string","nullable":true,"pattern":".*","maxLength":4096}},"nullable":true,"type":"object"},"DataVolumeItems":{"description":"Set of data volumes to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/DataVolumeInstance"},"maxItems":1000,"nullable":true},"EmptyDirsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/EmptyDirInstance"},"instances":{"$ref":"#/components/schemas/EmptyDirItems"}},"nullable":true,"type":"object"},"EmptyDirInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/EmptyDir"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"EmptyDir":{"properties":{"path":{"description":"Local path within the workload to which the EmptyDir volume will be mapped. (mandatory)","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"medium":{"description":"The type of storage medium for the volume. Use \"Memory\" for memory-backed storage, or leave empty for disk-backed storage.","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":".*"},"sizeLimit":{"description":"The total amount of local storage or memory required for the emptyDir volume. Specify using Kubernetes quantity format (e.g., 1G, 500Mi).","type":"string","maxLength":63,"pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$","nullable":true}},"nullable":true,"type":"object"},"EmptyDirItems":{"description":"A list of emptyDir volumes to mount in the workload.","type":"array","items":{"$ref":"#/components/schemas/EmptyDirInstance"},"maxItems":1000,"nullable":true},"GitsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/GitInstance"},"instances":{"$ref":"#/components/schemas/GitItems"}},"nullable":true,"type":"object"},"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"},"GitCommon":{"properties":{"repository":{"description":"URL to a remote Git repository. The content of this repository will be mapped to the container running the workload. (mandatory)","type":"string","minLength":1,"maxLength":2048,"nullable":true},"branch":{"description":"Specific branch to synchronize the repository from.","type":"string","minLength":1,"maxLength":63,"nullable":true},"revision":{"description":"Specific revision to synchronize the repository from.","type":"string","minLength":1,"maxLength":63,"nullable":true},"path":{"description":"Local path within the workload to which the Git repository will be mapped (mandatory).","type":"string","minLength":1,"maxLength":4096,"nullable":true}},"nullable":true,"type":"object"},"GitPassword":{"properties":{"passwordSecret":{"description":"Secret containing the credentials of the repository (needed for non public repository which requires authentication). (deprecated)","type":"string","minLength":1,"nullable":true},"secretKeyOfUser":{"description":"The key to use for loading the user name from the secret. The default is `User`. (deprecated)","type":"string","minLength":1,"nullable":true},"secretKeyOfPassword":{"description":"The key to use for loading the password from the secret. The default is `Password`. (deprecated)","type":"string","minLength":1,"nullable":true}},"nullable":true,"type":"object"},"GitSecretRef":{"properties":{"name":{"description":"Name of the Secret containing the credentials of the repository.","type":"string","minLength":1},"authenticationMethod":{"$ref":"#/components/schemas/GitAuthenticationMethod"},"secretKeyOfUser":{"description":"The key in the Secret that contains the Git username (used for `password` authentication).","type":"string","minLength":1,"nullable":true},"secretKeyOfPassword":{"description":"The key in the Secret that contains the Git password (used for `password` authentication).","type":"string","minLength":1,"nullable":true}},"nullable":true,"type":"object"},"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,"enum":["password","ssh-key"]},"GitItems":{"description":"Set of git repositories to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/GitInstance"},"maxItems":1000,"nullable":true},"HostPathsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/HostPathInstance"},"instances":{"$ref":"#/components/schemas/HostPathItems"}},"nullable":true,"type":"object"},"HostPathInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/HostPath"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"HostPath":{"properties":{"path":{"description":"Local path within the controller to which the host volume will be mapped. (mandatory)","type":"string","minLength":1,"maxLength":4096,"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,"maxLength":4096,"nullable":true,"pattern":".*"},"mountPropagation":{"$ref":"#/components/schemas/HostPathMountPropagation"}},"nullable":true,"type":"object"},"HostPathMountPropagation":{"description":"Share this volumes mount with other containers. If set to HostToContainer, this volume mount will receive all subsequent mounts that are mounted to this volume or any of its subdirectories. In case of multiple hostPath entries, this field should have the same value for all of them.","type":"string","enum":["None","HostToContainer"],"nullable":true},"HostPathItems":{"description":"Set of host paths to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/HostPathInstance"},"maxItems":1000,"nullable":true},"NfssDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/NfsInstance"},"instances":{"$ref":"#/components/schemas/NfsItems"}},"nullable":true,"type":"object"},"NfsInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/Nfs"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"Nfs":{"properties":{"path":{"description":"Path that is exported by the NFS server (mandatory). For more information, see [NFS](https://kubernetes.io/docs/concepts/storage/volumes#nfs).","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"readOnly":{"description":"Force the NFS export to be mounted with read-only permissions.","type":"boolean","default":true,"nullable":true},"server":{"description":"The hostname or IP address of the NFS server. (mandatory)","type":"string","minLength":1,"maxLength":253,"nullable":true,"pattern":".*"},"mountPath":{"description":"The path that the NFS volume will be mounted to when in use. (mandatory)","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"NfsItems":{"description":"Set of nfs volumes to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/NfsInstance"},"maxItems":1000,"nullable":true},"PvcsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/PvcInstance"},"instances":{"$ref":"#/components/schemas/PvcItems"}},"nullable":true,"type":"object"},"PvcInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/Pvc"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"Pvc":{"allOf":[{"$ref":"#/components/schemas/PvcFieldsUpdatable"},{"$ref":"#/components/schemas/PvcFieldsNonUpdatable"}]},"PvcFieldsUpdatable":{"properties":{"path":{"description":"Local path within the workload to which the PVC bucket will be mapped. (mandatory)","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"PvcFieldsNonUpdatable":{"properties":{"existingPvc":{"description":"Verify existing PVC. PVC is assumed to exist when set to `true`. If set to `false`, the PVC will be created, if it does not exist.","type":"boolean","default":false,"nullable":true},"claimName":{"description":"Name for the PVC. Allow referencing it across workloads. If not provided, a name based on the workload name and scope will be auto-generated.","type":"string","minLength":1,"maxLength":63,"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,"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,"nullable":true}},"nullable":true,"type":"object"},"ClaimInfo":{"description":"Claim information for the newly created PVC. The information should not be provided when attempting to use existing PVC.","properties":{"size":{"$ref":"#/components/schemas/PvcClaimSize"},"storageClass":{"description":"Storage class name to associate with the PVC. This parameter may be omitted if there is a single storage class in the system, or you are using the default storage class. For more information, see [Storage class](https://kubernetes.io/docs/concepts/storage/storage-classes).","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$"},"accessModes":{"$ref":"#/components/schemas/PvcAccessModes"},"volumeMode":{"$ref":"#/components/schemas/PvcVolumeMode"},"addedAttrValues":{"$ref":"#/components/schemas/PvcAddedAttrValues"}},"nullable":true,"type":"object"},"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]*)$","maxLength":63,"nullable":true},"PvcAccessModes":{"description":"Default access mode(s) applied to newly created PVCs unless explicitly overridden.","properties":{"readWriteOnce":{"description":"Mount the volume as read/write by a single node.","type":"boolean","default":true,"nullable":true},"readOnlyMany":{"description":"Mount the volume as read-only by many nodes.","type":"boolean","default":false,"nullable":true},"readWriteMany":{"description":"Mount the volume as read/write by many nodes.","type":"boolean","default":false,"nullable":true}},"nullable":true,"type":"object"},"PvcVolumeMode":{"description":"Default volume mode for the PVC. Choose between Filesystem (default) or Block.","type":"string","enum":["Filesystem","Block"],"nullable":true},"PvcAddedAttrValues":{"description":"an optional array of key-values pairs that are written as annotations on the created PVC. the allowed attributes are determined according to the storage class configuration (see k8s-objects-tracker for further info).","type":"array","items":{"$ref":"#/components/schemas/PvcAddedAttrValue"},"maxItems":1000},"PvcAddedAttrValue":{"type":"object","required":["key"],"properties":{"key":{"type":"string","minLength":1,"maxLength":63,"pattern":"^([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]$"},"value":{"type":"string","pattern":".*","maxLength":10000}}},"PvcItems":{"description":"Set of pvc persistent volume claims to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/PvcInstance"},"maxItems":1000,"nullable":true},"SecretsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/SecretInstance"},"instances":{"$ref":"#/components/schemas/SecretItems"}},"nullable":true,"type":"object"},"SecretInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/Secret"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"Secret":{"allOf":[{"$ref":"#/components/schemas/SecretFieldsUpdatable"},{"$ref":"#/components/schemas/SecretFieldsNonUpdatable"}]},"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"},"SecretFieldsNonUpdatable":{"properties":{"secret":{"description":"The name of the Secret resource. (mandatory)","type":"string","minLength":1,"nullable":true}},"nullable":true,"type":"object"},"SecretItems":{"description":"Set of secret volumes to use in the workload","type":"array","items":{"$ref":"#/components/schemas/SecretInstance"},"nullable":true},"TolerationsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/Toleration"},"instances":{"$ref":"#/components/schemas/Tolerations"}},"nullable":true,"type":"object"},"Toleration":{"description":"Toleration details.","properties":{"name":{"description":"The name of the toleration.","type":"string","minLength":1,"maxLength":253,"nullable":true,"pattern":".*"},"operator":{"$ref":"#/components/schemas/TolerationOperator"},"key":{"description":"The taint key that the toleration applies to. (mandatory)","type":"string","maxLength":253,"nullable":true,"pattern":".*"},"value":{"description":"The taint value the toleration matches to. Mandatory if operator is Exists, forbidden otherwise.","type":"string","maxLength":10000,"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","nullable":true}},"nullable":true,"type":"object"},"TolerationOperator":{"description":"A key's relationship to the value. Equal uses key and value. Exists is equivalent to wildcard for value, so that a workload can tolerate all taints of a particular category. (mandatory)","type":"string","enum":["Equal","Exists"],"nullable":true},"TolerationEffect":{"description":"The taint effect to match. (mandatory)","type":"string","enum":["NoSchedule","NoExecute","PreferNoSchedule","Any"],"nullable":true},"Tolerations":{"description":"Set of tolerations to apply to the workload.","type":"array","items":{"$ref":"#/components/schemas/Toleration"},"maxItems":1000,"nullable":true},"WorkingDir":{"description":"Container's working directory. If not specified, the container runtime default will be used. This may be configured in the container image.","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"InferenceFields":{"allOf":[{"$ref":"#/components/schemas/AutoScalingField"},{"$ref":"#/components/schemas/ServingConfigurationField"}],"nullable":true,"type":"object"},"AutoScalingField":{"properties":{"autoscaling":{"$ref":"#/components/schemas/AutoScaling"}}},"AutoScaling":{"allOf":[{"$ref":"#/components/schemas/AutoScalingCommonFields"},{"$ref":"#/components/schemas/AutoScalingMetricFields"}],"nullable":true,"type":"object"},"AutoScalingCommonFields":{"allOf":[{"$ref":"#/components/schemas/MetricThresholdPercentageField"},{"$ref":"#/components/schemas/InferencesMinReplicasField"},{"$ref":"#/components/schemas/InferencesMaxReplicasField"},{"$ref":"#/components/schemas/InitialReplicasField"},{"$ref":"#/components/schemas/ActivationReplicasField"},{"$ref":"#/components/schemas/ConcurrencyHardLimitField"},{"$ref":"#/components/schemas/ScaleToZeroRetentionField"},{"$ref":"#/components/schemas/ScaleDownDelayField"},{"$ref":"#/components/schemas/InitializationTimeoutField"}],"nullable":true,"type":"object"},"MetricThresholdPercentageField":{"properties":{"metricThresholdPercentage":{"description":"The percentage of metric threshold value to use for autoscaling. Defaults to 70. Applicable only with the 'throughput' and 'concurrency' metrics","type":"number","format":"float","minimum":1,"maximum":100,"nullable":true}}},"InferencesMinReplicasField":{"properties":{"minReplicas":{"description":"The minimum number of replicas for autoscaling. Defaults to 1. Use 0 to allow scale-to-zero","type":"integer","format":"int32","minimum":0,"nullable":true}}},"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}}},"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","format":"int32","minimum":0,"nullable":true}}},"ActivationReplicasField":{"properties":{"activationReplicas":{"description":"The number of replicas to run when scaling-up from zero. Defaults to minReplicas, or to 1 if minReplicas is set to 0","type":"integer","format":"int32","minimum":1,"nullable":true}}},"ConcurrencyHardLimitField":{"properties":{"concurrencyHardLimit":{"description":"The maximum number of requests allowed to flow to a single replica at any time. 0 means no limit","type":"integer","format":"int32","minimum":0,"nullable":true}}},"ScaleToZeroRetentionField":{"properties":{"scaleToZeroRetentionSeconds":{"description":"The minimum amount of time (in seconds) that the last replica will remain active after a scale-to-zero decision. Defaults to 0. Available only if minReplicas is set to 0","type":"integer","format":"int32","minimum":0,"maximum":3600,"nullable":true}}},"ScaleDownDelayField":{"properties":{"scaleDownDelaySeconds":{"description":"The minimum amount of time (in seconds) that a replica will remain active after a scale-down decision","type":"integer","format":"int32","minimum":0,"maximum":3600,"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}}},"AutoScalingMetricFields":{"allOf":[{"$ref":"#/components/schemas/AutoScalingMetricField"},{"$ref":"#/components/schemas/MetricThresholdField"}],"nullable":true,"type":"object"},"AutoScalingMetricField":{"properties":{"metric":{"$ref":"#/components/schemas/AutoScalingMetric"}}},"AutoScalingMetric":{"description":"The metric to use for autoscaling. Mandatory if minReplicas < maxReplicas, except for the special case where minReplicas is set to 0 and maxReplicas is set to 1, as in this case autoscaling decisions are made according to network activity rather than metrics. Use one of the built-in metrics of 'throughput', 'concurrency' or 'latency', or any other available custom metric. Only the 'throughput' and 'concurrency' metrics support scale-to-zero","type":"string","pattern":"^[a-zA-Z_:][a-zA-Z0-9_:]*$","nullable":true},"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}}},"ServingConfigurationField":{"properties":{"servingConfiguration":{"$ref":"#/components/schemas/ServingConfiguration"}}},"ServingConfiguration":{"description":"The inference workload serving configuration.","properties":{"initializationTimeoutSeconds":{"description":"The maximum time (in seconds) allowed for a workload to initialize and become ready. If the workload does not start within this time, it will be moved to failed state.","type":"integer","format":"int32","minimum":1,"nullable":true},"requestTimeoutSeconds":{"description":"The maximum time (in seconds) allowed to process an end-user request. If no response is returned within this time, the request will be ignored.Supported from Cluster version 2.22","type":"integer","format":"int32","minimum":1,"nullable":true}},"nullable":true,"type":"object"},"InferencePolicyRulesV2":{"allOf":[{"nullable":true,"properties":{"annotations":{"$ref":"#/components/schemas/InstancesRules"},"args":{"$ref":"#/components/schemas/StringRules"},"category":{"$ref":"#/components/schemas/StringRules"},"command":{"$ref":"#/components/schemas/StringRules"},"compute":{"$ref":"#/components/schemas/SupersetRulesAllOfCompute"},"createHomeDir":{"$ref":"#/components/schemas/BooleanRules"},"environmentVariables":{"$ref":"#/components/schemas/InstancesRules"},"exposedUrls":{"$ref":"#/components/schemas/ExposedUrlsRules"},"image":{"$ref":"#/components/schemas/StringRules"},"imagePullPolicy":{"$ref":"#/components/schemas/ImagePullPolicyRules"},"imagePullSecrets":{"$ref":"#/components/schemas/ImagePullSecretsRules"},"labels":{"$ref":"#/components/schemas/InstancesRules"},"nodeAffinityRequired":{"$ref":"#/components/schemas/ArbitraryRules"},"nodePools":{"$ref":"#/components/schemas/ArrayRules"},"nodeType":{"$ref":"#/components/schemas/StringRules"},"podAffinity":{"$ref":"#/components/schemas/PodAffinityRules"},"ports":{"$ref":"#/components/schemas/PortsRules"},"preemptibility":{"$ref":"#/components/schemas/PreemptibilityRules"},"priorityClass":{"$ref":"#/components/schemas/StringRules"},"probes":{"$ref":"#/components/schemas/ProbesRules"},"relatedUrls":{"$ref":"#/components/schemas/RelatedUrlsRules"},"security":{"nullable":true,"properties":{"capabilities":{"$ref":"#/components/schemas/ArrayRules"},"hostIpc":{"$ref":"#/components/schemas/BooleanRules"},"hostNetwork":{"$ref":"#/components/schemas/BooleanRules"},"readOnlyRootFilesystem":{"$ref":"#/components/schemas/BooleanRules"},"runAsGid":{"$ref":"#/components/schemas/IntegerRulesOptional"},"runAsNonRoot":{"$ref":"#/components/schemas/BooleanRules"},"runAsUid":{"$ref":"#/components/schemas/IntegerRulesOptional"},"seccompProfileType":{"$ref":"#/components/schemas/SeccompProfileTypeRules"},"supplementalGroups":{"$ref":"#/components/schemas/StringRules"},"uidGidSource":{"$ref":"#/components/schemas/UidGidSourceRules"}},"type":"object"},"servingPort":{"$ref":"#/components/schemas/ServingPortRules"},"storage":{"nullable":true,"properties":{"configMapVolume":{"$ref":"#/components/schemas/ConfigMapsRules"},"dataVolume":{"$ref":"#/components/schemas/DataVolumesRules"},"emptyDirVolume":{"$ref":"#/components/schemas/EmptyDirsRules"},"git":{"$ref":"#/components/schemas/GitsRules"},"hostPath":{"$ref":"#/components/schemas/HostPathsRules"},"nfs":{"$ref":"#/components/schemas/NfssRules"},"pvc":{"$ref":"#/components/schemas/PvcsRules"},"secretVolume":{"$ref":"#/components/schemas/SecretsRules"}},"type":"object"},"tolerations":{"$ref":"#/components/schemas/TolerationsRules"},"workingDir":{"$ref":"#/components/schemas/StringRules"}},"type":"object"},{"$ref":"#/components/schemas/InferenceFieldsRules"}]},"InstancesRules":{"properties":{"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ItemRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"canAdd":{"description":"Whether it is permitted to add items. Default to true.","type":"boolean","nullable":true},"locked":{"description":"Set of keys for items that are \"locked\", i.e. cannot be removed or deleted.","type":"array","items":{"type":"string"}}},"nullable":true,"type":"object"},"SourceOfRule":{"description":"This field is used by the system along with effective rules, in order to specify the org unit from which this effective rule has been derived. It should be left empty when sending apply policy requests.","required":["scope"],"properties":{"scope":{"$ref":"#/components/schemas/ScopeType"},"projectId":{"$ref":"#/components/schemas/ProjectIdOptional"},"departmentId":{"$ref":"#/components/schemas/DepartmentIdOptional"},"clusterId":{"$ref":"#/components/schemas/ClusterIdOptional"},"isFallback":{"description":"source of this rule is the fallback policy","type":"boolean"}},"nullable":true,"type":"object"},"StringRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/StringRulesOptions"}],"nullable":true,"type":"object"},"StringRulesCommon":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory, default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable, default to true","type":"boolean","nullable":true},"blocked":{"description":"Blocks the field to prevent workloads from specifying any value for it.","type":"boolean","nullable":true}}},"StringRulesOptions":{"properties":{"options":{"description":"Set of options that the value of the field must be chosen from.","type":"array","items":{"$ref":"#/components/schemas/StringOption"},"nullable":true}}},"StringOption":{"description":"One of the values that the field can be assigned to, when options police is applied on the field.","required":["value"],"properties":{"value":{"description":"The value that the field should hold","type":"string","pattern":".*"},"displayed":{"description":"Textual description of the value. to be used by user interface applications.","type":"string","nullable":true,"pattern":".*"}}},"SupersetRulesAllOfCompute":{"title":"SupersetRulesAllOfCompute","nullable":true,"properties":{"cpuCoreLimit":{"$ref":"#/components/schemas/NumberRules"},"cpuCoreRequest":{"$ref":"#/components/schemas/NumberRules"},"cpuMemoryLimit":{"$ref":"#/components/schemas/QuantityRules"},"cpuMemoryRequest":{"$ref":"#/components/schemas/QuantityRules"},"extendedResources":{"$ref":"#/components/schemas/ExtendedResourcesRules"},"gpuDevicesRequest":{"$ref":"#/components/schemas/IntegerRules"},"gpuMemoryLimit":{"$ref":"#/components/schemas/QuantityRules"},"gpuMemoryRequest":{"$ref":"#/components/schemas/QuantityRules"},"gpuPortionLimit":{"$ref":"#/components/schemas/NumberRules"},"gpuPortionRequest":{"$ref":"#/components/schemas/NumberRules"},"gpuRequestType":{"$ref":"#/components/schemas/GpuRequestRules"},"largeShmRequest":{"$ref":"#/components/schemas/BooleanRules"}},"type":"object"},"NumberRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory. default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"number","nullable":true},"max":{"description":"The maximum value that the field can be assigned to.","type":"number","nullable":true},"step":{"description":"The minimal difference between two values the field can be assigned to. For example, min=2, max=3, step=0.25 implies that the values the field can hold are 2, 2.25, 2.5 and 3.","type":"number","nullable":true},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"DefaultFromRule":{"properties":{"field":{"description":"The default of this field is taken from another field, with optional factor. The specified field must belong to the same workload section (compute, security, etc). For itemized field, the value of the field will be taken from the same instance.","type":"string","nullable":true,"pattern":".*"},"factor":{"description":"Multiple the value of the fromField by this factor to get the value for this field For example, if factor is 2 and defaultFrom field has value of 8, the calculated default will be determined to be 16.","type":"number","format":"double","nullable":true,"default":1}},"nullable":true,"type":"object"},"QuantityRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory, default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable, default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"string","nullable":true,"pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"},"max":{"description":"The maximum value that the field can be assigned to.","type":"string","nullable":true,"pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"ExtendedResourcesRules":{"properties":{"attributes":{"$ref":"#/components/schemas/ExtendedResourceRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ExtendedResourceRules":{"description":"Rules for the attributes of extendedResources","properties":{"quantity":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"IntegerRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory. default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"max":{"description":"The maximum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"step":{"description":"The minimal difference between two values the field can be assigned to. For example, min=2, max=10, step=2 implies that the values the field can hold are 2, 4, 6, 8 and 10.","type":"integer","format":"int32","nullable":true},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"GpuRequestRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/GpuRequestOptions"}],"nullable":true,"type":"object"},"GpuRequestOptions":{"properties":{"options":{"description":"Limit the permitted values for gpuRequest to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/GpuRequestType"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"BooleanRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory. default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true}},"nullable":true,"type":"object"},"ExposedUrlsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/ExposedUrlRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ExposedUrlRules":{"description":"Rules for the attributed of exposedUrls","properties":{"container":{"$ref":"#/components/schemas/IntegerRules"},"customUrl":{"$ref":"#/components/schemas/BooleanRules"},"url":{"$ref":"#/components/schemas/StringRules"},"authorizedUsers":{"$ref":"#/components/schemas/ArrayRules"},"authorizedGroups":{"$ref":"#/components/schemas/ArrayRules"},"toolType":{"$ref":"#/components/schemas/StringRules"},"toolName":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"ArrayRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether this array is mandatory. Mandatory array must include at least one item. default to false.","type":"boolean","nullable":true},"options":{"description":"Set of options that the value of each item of the array must be chosen from.","type":"array","items":{"$ref":"#/components/schemas/StringOption"}},"canEdit":{"description":"Whether the value of the array, as a whole, is editable. default to false.","type":"boolean","nullable":true}},"nullable":true,"type":"object"},"ImagePullPolicyRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/ImagePullPolicyOptions"}],"nullable":true,"type":"object"},"ImagePullPolicyOptions":{"properties":{"options":{"description":"Limit the permitted values for imagePullPolicy to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/ImagePullPolicy"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ImagePullSecretsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/ImagePullSecretsRulesAttributes"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ImagePullSecretsRulesAttributes":{"description":"Rules for the attributes of imagePullSecrets","properties":{"name":{"$ref":"#/components/schemas/StringRules"},"userCredentials":{"$ref":"#/components/schemas/BooleanRules"}},"nullable":true,"type":"object"},"ArbitraryRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether this arbitrary object is mandatory. default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field, as a whole, is editable. default to false.","type":"boolean","nullable":true}},"nullable":true,"type":"object"},"PodAffinityRules":{"properties":{"type":{"$ref":"#/components/schemas/PodAffinityTypeRules"},"key":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"PodAffinityTypeRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/PodAffinityTypeOptions"}],"nullable":true,"type":"object"},"PodAffinityTypeOptions":{"properties":{"options":{"type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/PodAffinityType"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"type":"object"},"PortsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/PortRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"PortRules":{"description":"Rules for port attributes","properties":{"container":{"$ref":"#/components/schemas/IntegerRules"},"serviceType":{"$ref":"#/components/schemas/PortServiceTypeRules"},"customExternalPort":{"$ref":"#/components/schemas/BooleanRules"},"external":{"$ref":"#/components/schemas/IntegerRules"},"toolType":{"$ref":"#/components/schemas/StringRules"},"toolName":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"PortServiceTypeRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/PortServiceTypeOptions"}],"nullable":true,"type":"object"},"PortServiceTypeOptions":{"properties":{"options":{"type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/PortServiceType"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"PreemptibilityRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/PreemptibilityOptions"}],"nullable":true,"type":"object"},"PreemptibilityOptions":{"properties":{"options":{"description":"Limit the permitted values for preemptibility to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/Preemptibility"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ProbesRules":{"properties":{"readiness":{"$ref":"#/components/schemas/ProbeRules"}},"nullable":true,"type":"object"},"ProbeRules":{"properties":{"initialDelaySeconds":{"$ref":"#/components/schemas/IntegerRules"},"periodSeconds":{"$ref":"#/components/schemas/IntegerRules"},"timeoutSeconds":{"$ref":"#/components/schemas/IntegerRules"},"successThreshold":{"$ref":"#/components/schemas/IntegerRules"},"failureThreshold":{"$ref":"#/components/schemas/IntegerRules"},"handler":{"$ref":"#/components/schemas/ProbeHandlerRules"}},"nullable":true,"type":"object"},"ProbeHandlerRules":{"properties":{"httpGet":{"properties":{"path":{"$ref":"#/components/schemas/StringRules"},"port":{"$ref":"#/components/schemas/IntegerRules"},"host":{"$ref":"#/components/schemas/StringRules"},"scheme":{"$ref":"#/components/schemas/StringRules"}}}},"nullable":true,"type":"object"},"RelatedUrlsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/RelatedUrlRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"RelatedUrlRules":{"description":"Rules for the attributes of relatedUrls","properties":{"url":{"$ref":"#/components/schemas/StringRules"},"type":{"$ref":"#/components/schemas/StringRules"},"name":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"IntegerRulesOptional":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"max":{"description":"The maximum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"step":{"description":"The minimal difference between two values the field can be assigned to. For example, min=2, max=10, step=2 implies that the values the field can hold are 2, 4, 6, 8 and 10.","type":"integer","format":"int32","nullable":true},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"SeccompProfileTypeRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/SeccompProfileTypeOptions"}],"nullable":true,"type":"object"},"SeccompProfileTypeOptions":{"properties":{"options":{"description":"Limit the permitted values for secompProfileType to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/SeccompProfileType"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"UidGidSourceRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/UidGidSourceOptions"}],"nullable":true,"type":"object"},"UidGidSourceOptions":{"properties":{"options":{"description":"Limit the permitted values for uidGidSource to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/UidGidSource"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ServingPortRules":{"properties":{"container":{"$ref":"#/components/schemas/IntegerRules"},"protocol":{"$ref":"#/components/schemas/ServingPortProtocolRules"},"authorizationType":{"$ref":"#/components/schemas/ServingPortAuthorizationTypeRules"},"authorizedUsers":{"$ref":"#/components/schemas/ArrayRules"},"authorizedGroups":{"$ref":"#/components/schemas/ArrayRules"},"clusterLocalAccessOnly":{"$ref":"#/components/schemas/BooleanRules"}},"nullable":true,"type":"object"},"ServingPortProtocolRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/ServingPortProtocolOptions"}],"nullable":true,"type":"object"},"ServingPortProtocolOptions":{"properties":{"options":{"type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/ServingPortProtocol"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ServingPortAuthorizationTypeRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/ServingPortAuthorizationTypeOptions"}],"nullable":true,"type":"object"},"ServingPortAuthorizationTypeOptions":{"properties":{"options":{"type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/ServingPortAccessAuthorizationTypeEnum"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ConfigMapsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/ConfigMapRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ConfigMapRules":{"properties":{"configMap":{"$ref":"#/components/schemas/StringRules"},"mountPath":{"$ref":"#/components/schemas/StringRules"},"subPath":{"$ref":"#/components/schemas/StringRules"},"defaultMode":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"DataVolumesRules":{"properties":{"attributes":{"$ref":"#/components/schemas/DataVolumeRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"DataVolumeRules":{"properties":{"id":{"$ref":"#/components/schemas/StringRules"},"mountPath":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"EmptyDirsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/EmptyDirRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"EmptyDirRules":{"properties":{"path":{"$ref":"#/components/schemas/StringRules"},"medium":{"$ref":"#/components/schemas/StringRules"},"sizeLimit":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"GitsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/GitRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"GitRules":{"properties":{"repository":{"$ref":"#/components/schemas/StringRules"},"branch":{"$ref":"#/components/schemas/StringRules"},"revision":{"$ref":"#/components/schemas/StringRules"},"path":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"HostPathsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/HostPathRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"HostPathRules":{"properties":{"path":{"$ref":"#/components/schemas/StringRules"},"readOnly":{"$ref":"#/components/schemas/BooleanRules"},"mountPath":{"$ref":"#/components/schemas/StringRules"},"mountPropagation":{"$ref":"#/components/schemas/HostPathMountPropagationRules"}},"nullable":true,"type":"object"},"HostPathMountPropagationRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/HostPathMountPropagationOptions"}],"nullable":true,"type":"object"},"HostPathMountPropagationOptions":{"properties":{"options":{"type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/HostPathMountPropagation"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}}},"NfssRules":{"properties":{"attributes":{"$ref":"#/components/schemas/NfsRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"NfsRules":{"properties":{"path":{"$ref":"#/components/schemas/StringRules"},"readOnly":{"$ref":"#/components/schemas/BooleanRules"},"server":{"$ref":"#/components/schemas/StringRules"},"mountPath":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"PvcsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/PvcRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"PvcRules":{"properties":{"claimName":{"$ref":"#/components/schemas/StringRules"},"path":{"$ref":"#/components/schemas/StringRules"},"readOnly":{"$ref":"#/components/schemas/BooleanRules"},"claimInfo":{"$ref":"#/components/schemas/ClaimInfoRules"}},"nullable":true,"type":"object"},"ClaimInfoRules":{"properties":{"size":{"$ref":"#/components/schemas/StringRules"},"storageClass":{"$ref":"#/components/schemas/StringRules"},"accessModes":{"$ref":"#/components/schemas/PvcAccessModesRules"}},"nullable":true,"type":"object"},"PvcAccessModesRules":{"description":"Rules for access mode(s) for a newly created PVC.","properties":{"readWriteOnce":{"$ref":"#/components/schemas/BooleanRules"},"readOnlyMany":{"$ref":"#/components/schemas/BooleanRules"},"readWriteMany":{"$ref":"#/components/schemas/BooleanRules"}},"nullable":true,"type":"object"},"SecretsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/SecretRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"SecretRules":{"properties":{"secret":{"$ref":"#/components/schemas/StringRules"},"mountPath":{"$ref":"#/components/schemas/StringRules"},"defaultMode":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"TolerationsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/TolerationRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"TolerationRules":{"description":"Toleration details.","properties":{"operator":{"$ref":"#/components/schemas/TolerationOperatorRules"},"key":{"$ref":"#/components/schemas/StringRules"},"value":{"$ref":"#/components/schemas/StringRules"},"effect":{"$ref":"#/components/schemas/TolerationEffectRules"},"seconds":{"$ref":"#/components/schemas/IntegerRules"},"exclude":{"$ref":"#/components/schemas/BooleanRules"}},"nullable":true,"type":"object"},"TolerationOperatorRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/TolerationOperatorOptions"}],"nullable":true,"type":"object"},"TolerationOperatorOptions":{"properties":{"options":{"description":"Limit the permitted values for imagePullPolicy to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/TolerationOperator"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"TolerationEffectRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/TolerationEffectOptions"}],"nullable":true,"type":"object"},"TolerationEffectOptions":{"properties":{"options":{"description":"Limit the permitted values for imagePullPolicy to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/TolerationEffect"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"InferenceFieldsRules":{"properties":{"autoscaling":{"$ref":"#/components/schemas/AutoScalingRules"},"servingConfiguration":{"$ref":"#/components/schemas/ServingConfigurationRules"}},"nullable":true,"type":"object"},"AutoScalingRules":{"properties":{"metricThresholdPercentage":{"$ref":"#/components/schemas/NumberRules"},"minReplicas":{"$ref":"#/components/schemas/IntegerRules"},"maxReplicas":{"$ref":"#/components/schemas/IntegerRules"},"initialReplicas":{"$ref":"#/components/schemas/IntegerRules"},"activationReplicas":{"$ref":"#/components/schemas/IntegerRules"},"metric":{"$ref":"#/components/schemas/AutoScalingMetricRules"},"metricThreshold":{"$ref":"#/components/schemas/IntegerRules"},"concurrencyHardLimit":{"$ref":"#/components/schemas/IntegerRules"},"scaleToZeroRetentionSeconds":{"$ref":"#/components/schemas/IntegerRules"},"scaleDownDelaySeconds":{"$ref":"#/components/schemas/IntegerRules"},"initializationTimeoutSeconds":{"allOf":[{"$ref":"#/components/schemas/IntegerRules"}],"deprecated":true}},"nullable":true,"type":"object"},"AutoScalingMetricRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/AutoScalingMetricOptions"}],"nullable":true,"type":"object"},"AutoScalingMetricOptions":{"properties":{"options":{"type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/AutoScalingMetric"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ServingConfigurationRules":{"properties":{"initializationTimeoutSeconds":{"$ref":"#/components/schemas/IntegerRules"},"requestTimeoutSeconds":{"$ref":"#/components/schemas/IntegerRules"}},"nullable":true,"type":"object"},"ImposedAssets":{"description":"a list of datasource assets to import into the policy. these datasources will be included in any workload that will be created in the scope of the policy.","type":"array","items":{"type":"string","format":"uuid"},"nullable":true},"PolicyValidationStatus":{"properties":{"validation":{"properties":{"errorMessage":{"pattern":".*","type":"string","description":"In case validation failed, holds the error message explaining the issue"}},"nullable":true,"type":"object"}},"nullable":true,"type":"object"},"InferencePolicyV2":{"properties":{"meta":{"$ref":"#/components/schemas/PolicyMeta"},"policy":{"$ref":"#/components/schemas/InferencePolicyDefaultsAndRulesV2"},"effective":{"$ref":"#/components/schemas/InferencePolicyDefaultsAndRulesV2"},"effectiveUpdatedAt":{"$ref":"#/components/schemas/Timestamp"}},"nullable":true,"type":"object"},"PolicyMeta":{"allOf":[{"$ref":"#/components/schemas/PolicyReadOnlyFields"},{"$ref":"#/components/schemas/PolicyCreationFields"}]},"PolicyReadOnlyFields":{"required":["id","createdBy","createdAt","updatedBy","updatedAt"],"properties":{"id":{"$ref":"#/components/schemas/PolicyId"},"tenantId":{"$ref":"#/components/schemas/TenantId"},"clusterId":{"$ref":"#/components/schemas/ClusterIdOptional"},"createdBy":{"description":"The user who created the policy.","type":"string","minLength":1},"createdAt":{"description":"The time at which the policy wes created","type":"string","minLength":1,"format":"date-time"},"updatedBy":{"description":"The user who updated the policy.","type":"string","minLength":1},"updatedAt":{"description":"The time at which the policy has been updated","type":"string","minLength":1,"format":"date-time"}}},"PolicyId":{"description":"The unique id of the policy.","type":"string","minLength":1,"format":"uuid"},"TenantId":{"description":"The id of the tenant.","type":"integer","format":"int32"},"Timestamp":{"description":"The time at which an event occurred. e.g. the time an effective policy has been updated","type":"string","minLength":1,"format":"date-time"},"Error":{"required":["code","message"],"properties":{"code":{"type":"integer","minimum":100,"maximum":599},"message":{"type":"string"},"details":{"type":"string"}}}},"responses":{"400BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401Unauthorized":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403Forbidden":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503ServiceUnavailable":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/api/v2/policy/inferences":{"put":{"summary":"Overwrite an inference policy.","description":"Use to apply an inference policy for a given organizational unit.","operationId":"overwrite_inference_policy_v2","tags":["Policy"],"parameters":[{"$ref":"#/components/parameters/ValidateOnly"},{"$ref":"#/components/parameters/ApproveClusterDeletion"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferencePolicyOverwriteRequestV2"}}}},"responses":{"200":{"description":"Policy applied.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferencePolicyV2"}}}},"400":{"$ref":"#/components/responses/400BadRequest"},"401":{"$ref":"#/components/responses/401Unauthorized"},"403":{"$ref":"#/components/responses/403Forbidden"},"503":{"$ref":"#/components/responses/503ServiceUnavailable"}}}}}}
```

## Delete an inference policy.

> Use to delete an inference policy for a given organizational unit.

```json
{"openapi":"3.0.3","info":{"title":"NVIDIA Run:ai","version":"2.26"},"tags":[{"name":"Policy","description":"Policies allow administrators to impose restrictions and set default values for researcher workloads. \nRestrictions and default values can be placed on CPUs, GPUs, and other resources or entities. \nFor more information, see [Policies](https://run-ai-docs.nvidia.com/self-hosted/2.26/platform-management/policies/#introduction).\n"}],"servers":[{"url":"https://app.run.ai"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer authentication"}},"parameters":{"PolicyScope":{"name":"scope","in":"query","required":true,"description":"The scope that the policy relates to.","schema":{"type":"string","enum":["tenant","cluster","department","project"]}},"FilterByDepartment":{"name":"departmentId","in":"query","description":"Filter using the department id.","required":false,"schema":{"type":"string"}},"FilterByProject":{"name":"projectId","in":"query","description":"project id to filter by","required":false,"schema":{"type":"string"}},"FilterByCluster":{"name":"clusterId","in":"query","description":"Filter using the Universally Unique Identifier (UUID) of the cluster.","required":false,"schema":{"type":"string","format":"uuid"}},"ApproveClusterDeletion":{"name":"approveClusterDeletion","in":"query","required":false,"description":"Required when modifying or deleting a policy if the tenant includes one or more clusters running version 2.20 or earlier. In such cases, the platform must delete the policy from the affected clusters. This flag indicates that the administrator approves this deletion.","schema":{"type":"boolean"}}},"responses":{"400BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401Unauthorized":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403Forbidden":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404NotFound":{"description":"The specified resource was not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503ServiceUnavailable":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"schemas":{"Error":{"required":["code","message"],"properties":{"code":{"type":"integer","minimum":100,"maximum":599},"message":{"type":"string"},"details":{"type":"string"}}}}},"paths":{"/api/v2/policy/inferences":{"delete":{"summary":"Delete an inference policy.","description":"Use to delete an inference policy for a given organizational unit.","operationId":"delete_inference_policy","tags":["Policy"],"parameters":[{"$ref":"#/components/parameters/PolicyScope"},{"$ref":"#/components/parameters/FilterByDepartment"},{"$ref":"#/components/parameters/FilterByProject"},{"$ref":"#/components/parameters/FilterByCluster"},{"$ref":"#/components/parameters/ApproveClusterDeletion"}],"responses":{"204":{"description":"The policy was deleted successfully."},"400":{"$ref":"#/components/responses/400BadRequest"},"401":{"$ref":"#/components/responses/401Unauthorized"},"403":{"$ref":"#/components/responses/403Forbidden"},"404":{"$ref":"#/components/responses/404NotFound"},"503":{"$ref":"#/components/responses/503ServiceUnavailable"}}}}}}
```

## Update an inference policy.

> Use to apply changes to an inference policy for a given organizational unit.

```json
{"openapi":"3.0.3","info":{"title":"NVIDIA Run:ai","version":"2.26"},"tags":[{"name":"Policy","description":"Policies allow administrators to impose restrictions and set default values for researcher workloads. \nRestrictions and default values can be placed on CPUs, GPUs, and other resources or entities. \nFor more information, see [Policies](https://run-ai-docs.nvidia.com/self-hosted/2.26/platform-management/policies/#introduction).\n"}],"servers":[{"url":"https://app.run.ai"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer authentication"}},"parameters":{"ValidateOnly":{"name":"validateOnly","in":"query","required":false,"description":"Validate the given policy payload without applying it","schema":{"type":"boolean"}},"ApproveClusterDeletion":{"name":"approveClusterDeletion","in":"query","required":false,"description":"Required when modifying or deleting a policy if the tenant includes one or more clusters running version 2.20 or earlier. In such cases, the platform must delete the policy from the affected clusters. This flag indicates that the administrator approves this deletion.","schema":{"type":"boolean"}}},"schemas":{"InferencePolicyChangeRequestV2":{"properties":{"meta":{"$ref":"#/components/schemas/PolicyCreationFields"},"policy":{"$ref":"#/components/schemas/InferencePolicyDefaultsAndRulesV2"},"reset":{"$ref":"#/components/schemas/FieldsToReset"}},"type":"object"},"PolicyCreationFields":{"required":["name","scope"],"properties":{"scope":{"$ref":"#/components/schemas/ScopeType"},"projectId":{"$ref":"#/components/schemas/ProjectIdOptional"},"departmentId":{"$ref":"#/components/schemas/DepartmentIdOptional"},"clusterId":{"$ref":"#/components/schemas/ClusterIdOptional"},"name":{"$ref":"#/components/schemas/PolicyName"}}},"ScopeType":{"type":"string","enum":["system","tenant","cluster","department","project"]},"ProjectIdOptional":{"description":"The id of the project.","type":"integer","format":"int32","nullable":true},"DepartmentIdOptional":{"description":"The id of the department.","type":"string","minLength":1,"nullable":true,"pattern":".*"},"ClusterIdOptional":{"description":"The id of the cluster.","type":"string","format":"uuid","minLength":1,"nullable":true},"PolicyName":{"description":"A chosen name for the policy.","type":"string","minLength":1,"pattern":".*"},"InferencePolicyDefaultsAndRulesV2":{"properties":{"defaults":{"allOf":[{"$ref":"#/components/schemas/InferencePolicyDefaultsV2"}],"nullable":true,"type":"object"},"rules":{"allOf":[{"$ref":"#/components/schemas/InferencePolicyRulesV2"}],"nullable":true,"type":"object"},"imposedAssets":{"$ref":"#/components/schemas/ImposedAssets"},"status":{"$ref":"#/components/schemas/PolicyValidationStatus"}},"nullable":true,"type":"object"},"InferencePolicyDefaultsV2":{"allOf":[{"nullable":true,"properties":{"annotations":{"$ref":"#/components/schemas/AnnotationsDefaults"},"args":{"$ref":"#/components/schemas/Args"},"category":{"$ref":"#/components/schemas/Category"},"command":{"$ref":"#/components/schemas/Command"},"compute":{"$ref":"#/components/schemas/SupersetDefaultsAllOfCompute"},"createHomeDir":{"$ref":"#/components/schemas/CreateHomeDir"},"environmentVariables":{"$ref":"#/components/schemas/EnvironmentVariablesDefaults"},"exposedUrls":{"$ref":"#/components/schemas/ExposedUrlsDefaults"},"image":{"$ref":"#/components/schemas/Image"},"imagePullPolicy":{"$ref":"#/components/schemas/ImagePullPolicy"},"imagePullSecrets":{"$ref":"#/components/schemas/ImagePullSecretsDefaults"},"labels":{"$ref":"#/components/schemas/LabelsDefaults"},"nodeAffinityRequired":{"$ref":"#/components/schemas/NodeAffinityRequired"},"nodePools":{"$ref":"#/components/schemas/NodePools"},"nodeType":{"$ref":"#/components/schemas/NodeType2"},"podAffinity":{"$ref":"#/components/schemas/PodAffinity"},"ports":{"$ref":"#/components/schemas/PortsDefaults"},"preemptibility":{"$ref":"#/components/schemas/Preemptibility"},"priorityClass":{"$ref":"#/components/schemas/PriorityClass"},"probes":{"$ref":"#/components/schemas/Probes"},"relatedUrls":{"$ref":"#/components/schemas/RelatedUrlsDefaults"},"security":{"nullable":true,"properties":{"capabilities":{"$ref":"#/components/schemas/Capabilities"},"hostIpc":{"$ref":"#/components/schemas/HostIpc"},"hostNetwork":{"$ref":"#/components/schemas/HostNetwork"},"readOnlyRootFilesystem":{"$ref":"#/components/schemas/ReadOnlyRootFileSystem"},"runAsGid":{"$ref":"#/components/schemas/RunAsGid"},"runAsNonRoot":{"$ref":"#/components/schemas/RunAsNonRoot"},"runAsUid":{"$ref":"#/components/schemas/RunAsUid"},"seccompProfileType":{"$ref":"#/components/schemas/SeccompProfileType"},"supplementalGroups":{"$ref":"#/components/schemas/SupplementalGroups"},"uidGidSource":{"$ref":"#/components/schemas/UidGidSource"}},"type":"object"},"servingPort":{"$ref":"#/components/schemas/ServingPort"},"storage":{"nullable":true,"properties":{"configMapVolume":{"$ref":"#/components/schemas/ConfigMapsDefaults"},"dataVolume":{"$ref":"#/components/schemas/DataVolumesDefaults"},"emptyDirVolume":{"$ref":"#/components/schemas/EmptyDirsDefaults"},"git":{"$ref":"#/components/schemas/GitsDefaults"},"hostPath":{"$ref":"#/components/schemas/HostPathsDefaults"},"nfs":{"$ref":"#/components/schemas/NfssDefaults"},"pvc":{"$ref":"#/components/schemas/PvcsDefaults"},"secretVolume":{"$ref":"#/components/schemas/SecretsDefaults"}},"type":"object"},"tolerations":{"$ref":"#/components/schemas/TolerationsDefaults"},"workingDir":{"$ref":"#/components/schemas/WorkingDir"}},"type":"object"},{"$ref":"#/components/schemas/InferenceFields"}]},"AnnotationsDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/Annotations"}},"nullable":true,"type":"object"},"Annotations":{"description":"Set of annotations to populate into the container running the workload.","type":"array","items":{"$ref":"#/components/schemas/Annotation"},"maxItems":1000,"nullable":true},"Annotation":{"description":"Annotation details to be populated into the container.","properties":{"name":{"description":"The name of the annotation (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":".*"},"value":{"description":"The value of the annotation.","type":"string","maxLength":10000,"nullable":true,"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","default":false,"nullable":true}},"nullable":true,"type":"object"},"Args":{"description":"Arguments to the command that the container running the workload executes.","type":"string","minLength":1,"maxLength":10000,"nullable":true,"pattern":".*"},"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":".*"},"Command":{"description":"A command to the server as the entry point of the container running the workload.","type":"string","minLength":1,"maxLength":10000,"nullable":true,"pattern":".*"},"SupersetDefaultsAllOfCompute":{"title":"SupersetDefaultsAllOfCompute","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/ExtendedResourcesDefaults"},"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"},"CpuCoreLimit":{"description":"Limitations on the number of CPUs consumed by the workload (0.5, 1, .etc). The system guarantees that this workload will not be able to consume more than this amount of CPUs.","format":"double","type":"number","nullable":true,"minimum":0},"CpuCoreRequest":{"description":"CPU units to allocate for the created workload (0.5, 1, .etc). The workload will receive at least this amount of CPU. Note that the workload will not be scheduled unless the system can guarantee this amount of CPUs to the workload.","format":"double","type":"number","nullable":true,"minimum":0},"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]*)$","maxLength":63,"nullable":true},"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","pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$","maxLength":63,"nullable":true},"ExtendedResourcesDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/ExtendedResource"},"instances":{"$ref":"#/components/schemas/ExtendedResources"}},"nullable":true,"type":"object"},"ExtendedResource":{"description":"Quantity of an extended resource.","properties":{"resource":{"description":"The name of the extended resource (mandatory)","type":"string","minLength":1,"maxLength":253,"nullable":true,"pattern":".*"},"quantity":{"description":"The requested quantity for the resource.","type":"string","minLength":1,"maxLength":63,"nullable":true,"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","nullable":true}},"nullable":true,"type":"object"},"ExtendedResources":{"description":"Extended resources and their quantity.","type":"array","items":{"$ref":"#/components/schemas/ExtendedResource"},"maxItems":1000,"nullable":true},"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","format":"int32","nullable":true,"minimum":0},"GpuMemoryLimit":{"description":"Limitation on the memory consumed by the workload, per GPU device. The system guarantees The gpuMemoryLimit must be no less than gpuMemoryRequest.","type":"string","pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$","maxLength":63,"nullable":true},"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]*)$","maxLength":63,"nullable":true},"GpuPortionLimit":{"description":"Limitations on the portion consumed by the workload, per GPU device. The system guarantees The gpuPotionLimit must be no less than the gpuPortionRequest.","type":"number","format":"double","nullable":true,"minimum":0},"GpuPortionRequest":{"description":"Required if and only if gpuRequestType is portion. States the portion of the GPU to allocate for the created workload, per GPU device, between 0 and 1. The default is no allocated GPUs.","type":"number","format":"double","nullable":true,"minimum":0},"GpuRequestType":{"description":"Sets the unit type for GPU resources requests. Stated in terms of portion or memory. Sets the unit type for other GPU request fields. If `gpuDevicesRequest > 1`, only `portion` is supported. If `gpuDeviceRequest = 1`, the request type can be stated as `portion` or `memory`.","type":"string","minLength":1,"enum":["portion","memory"],"nullable":true},"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","nullable":true},"CreateHomeDir":{"description":"When set to `true`, creates a home directory for the container.","type":"boolean","nullable":true},"EnvironmentVariablesDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/EnvironmentVariables"}},"nullable":true,"type":"object"},"EnvironmentVariables":{"description":"Set of environment variables to populate into the container running the workload.","type":"array","items":{"$ref":"#/components/schemas/EnvironmentVariable"},"maxItems":1000,"nullable":true},"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,"maxLength":63,"nullable":true,"pattern":".*"},"value":{"description":"The value of the environment variable. (mutually exclusive with secret, userCredential, configMap and podFieldRef)","type":"string","maxLength":10000,"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","nullable":true},"description":{"description":"Description of the environment variable.","type":"string","maxLength":250,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"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,"maxLength":253,"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,"maxLength":63,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"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","minLength":1,"maxLength":253,"nullable":true,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$"},"key":{"description":"The key in the config-map resource. (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"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","minLength":1,"maxLength":10000,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"EnvironmentVariableUserCredential":{"description":"Defines a reference to a user-created credential and a specific key within that credential whose value will populate the environment variable. User credentials can only be accessed by the user who created them.","properties":{"name":{"description":"The name of the user credential.  (mandatory)","type":"string","minLength":1,"maxLength":253,"nullable":true},"key":{"description":"The key in the user credential resource. (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true}},"nullable":true,"type":"object"},"ExposedUrlsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/ExposedUrl"},"instances":{"$ref":"#/components/schemas/ExposedUrls"}},"nullable":true,"type":"object"},"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","nullable":true},"url":{"$ref":"#/components/schemas/Url"},"authorizationType":{"$ref":"#/components/schemas/AuthorizationType"},"authorizedUsers":{"$ref":"#/components/schemas/AuthorizedUsers"},"authorizedGroups":{"$ref":"#/components/schemas/AuthorizedGroups"},"toolType":{"description":"The tool type that runs on this container port.","type":"string","nullable":true,"pattern":".*"},"toolName":{"description":"A name describing the tool that runs on this url.","type":"string","nullable":true,"pattern":".*","maxLength":253},"name":{"description":"Unique name to identify the instance. primarily used for policy locked rules.","type":"string","minLength":1,"maxLength":253,"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","nullable":true}},"nullable":true,"type":"object"},"Url":{"description":"The URL for connecting to the container port. If not specified, the URL will be auto-generated by the system.","type":"string","maxLength":2048,"pattern":".*","nullable":true},"AuthorizationType":{"type":"string","enum":["authenticatedUsers","authorizedUsers","authorizedGroups"],"description":"Specifies who can access the connection URL:\n- `authenticatedUsers`: Any authenticated user or service account can access the URL; the authorizedUsers and authorizedGroups fields are ignored.\n- `authorizedUsers`: Only users listed in the authorizedUsers field are allowed to access the URL; the authorizedGroups field is ignored.\n- `authorizedGroups`: Only members of user groups listed in the authorizedGroups field are allowed to access the URL; the authorizedUsers field is ignored.\nIf 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.\n","nullable":true},"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","maxLength":253,"pattern":".*"},"maxItems":1000,"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","maxLength":253,"pattern":".*"},"maxItems":1000,"nullable":true},"ExposedUrls":{"description":"Set of container ports that the workload exposes via URLs.","type":"array","items":{"$ref":"#/components/schemas/ExposedUrl"},"maxItems":1000,"nullable":true},"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","minLength":1,"maxLength":253,"nullable":true,"pattern":".*"},"ImagePullPolicy":{"description":"Image pull policy. Defaults to `Always` if `:latest` tag is specified, otherwise it is `IfNotPresent`.","type":"string","minLength":1,"enum":["Always","Never","IfNotPresent"],"nullable":true},"ImagePullSecretsDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/ImagePullSecrets"}},"nullable":true,"type":"object"},"ImagePullSecrets":{"description":"A list of references to Kubernetes secrets in the same namespace used for pulling container images.","type":"array","items":{"$ref":"#/components/schemas/ImagePullSecret"},"maxItems":1000,"nullable":true},"ImagePullSecret":{"description":"A reference to a secret in the same namespace used to pull container images.","properties":{"name":{"type":"string","description":"The name of the Kubernetes secret containing the image pull credentials.","pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$","maxLength":253},"userCredential":{"type":"boolean","description":"Indicates whether the secret is a user credential. Set to true if the secret was created by the user and is only accessible by them.","nullable":true},"exclude":{"description":"Use 'true' in case the secret is defined in defaults of the policy, and you wish to exclude it from the workload.","type":"boolean","default":false,"nullable":true}},"nullable":true,"type":"object"},"LabelsDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/Labels"}},"nullable":true,"type":"object"},"Labels":{"description":"Set of labels to populate into the container running the workload.","type":"array","items":{"$ref":"#/components/schemas/Label"},"maxItems":1000,"nullable":true},"Label":{"description":"Label details to be populated into the container.","properties":{"name":{"description":"The name of the label (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":".*"},"value":{"description":"The value of the label.","type":"string","nullable":true,"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","nullable":true}},"nullable":true,"type":"object"},"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"},"maxItems":1000}},"nullable":true},"NodeSelectorTerm":{"type":"object","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"},"maxItems":1000}},"nullable":true},"MatchExpression":{"type":"object","description":"A selector that contains values, a key, and an operator that relates the key and values.","properties":{"key":{"description":"The label key that the selector applies to (mandatory).","type":"string","pattern":".*","maxLength":63},"operator":{"$ref":"#/components/schemas/MatchExpressionOperator"},"values":{"description":"An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer.","type":"array","items":{"type":"string","maxLength":10000,"pattern":".*"},"maxItems":1000}},"required":["key","operator"],"nullable":true},"MatchExpressionOperator":{"description":"Represents a key's relationship to a set of values (mandatory).","type":"string","enum":["In","NotIn","Exists","DoesNotExist","Gt","Lt"]},"NodePools":{"description":"A prioritized list of node pools for the scheduler to run the workload on. The scheduler will always try to use the first node pool before moving to the next one if the first is not available.","type":"array","items":{"type":"string","maxLength":63,"pattern":".*"},"maxItems":1000,"nullable":true},"NodeType2":{"deprecated":true,"description":"Deprecated: use a workload policy node selector to target node types instead. 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","minLength":1,"nullable":true,"pattern":".*"},"PodAffinity":{"description":"Pod affinity scheduling rules (e.g. co-locate this workload in the same node, zone, etc. as some other workloads).","type":"object","properties":{"type":{"$ref":"#/components/schemas/PodAffinityType"},"key":{"description":"The label key to use. (mandatory)","type":"string","nullable":true,"pattern":".*","maxLength":63}},"nullable":true},"PodAffinityType":{"description":"The affinity type, required or preferred. (mandatory)","type":"string","enum":["Required","Preferred"],"nullable":true},"PortsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/Port"},"instances":{"$ref":"#/components/schemas/Ports"}},"nullable":true,"type":"object"},"Port":{"description":"A port for accessing the workload.","properties":{"container":{"description":"The port that the container running the workload exposes. (mandatory)","type":"integer","format":"int32","minimum":1,"maximum":65535,"nullable":true},"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","format":"int32","nullable":true},"toolType":{"description":"The tool type that runs on this port.","type":"string","nullable":true,"pattern":".*","maxLength":63},"toolName":{"description":"A name describing the tool that runs on this port.","type":"string","nullable":true,"pattern":".*","maxLength":253},"name":{"description":"Unique name to identify the instance. primarily used for policy locked rules.","type":"string","minLength":1,"maxLength":63,"nullable":true,"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","default":false,"nullable":true}},"nullable":true,"type":"object"},"PortServiceType":{"description":"The service type of the port (mandatory).","type":"string","enum":["LoadBalancer","NodePort","ClusterIP"],"nullable":true},"Ports":{"description":"Set of container ports that the workload exposes.","type":"array","items":{"$ref":"#/components/schemas/Port"},"maxItems":1000,"nullable":true},"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","minLength":1,"enum":["preemptible","non-preemptible"],"nullable":true},"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","nullable":true,"pattern":".*"},"Probes":{"description":"Probes are used to determine if the container is healthy and ready to accept traffic.","type":"object","properties":{"readiness":{"$ref":"#/components/schemas/Probe"}},"nullable":true},"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},"ProbeHandler":{"description":"The action taken to determine the health of the container. (mandatory)","type":"object","properties":{"httpGet":{"description":"An action based on HTTP Get requests.","type":"object","properties":{"path":{"description":"Path to access on the HTTP server, defaults to /.","type":"string","pattern":"^(\\x2F[a-zA-Z0-9\\-_.\\x2F]*)?$","nullable":true,"maxLength":2048},"port":{"description":"Number of the port to access on the container.","type":"integer","format":"int32","minimum":1,"maximum":65535,"nullable":true},"host":{"description":"Host name to connect to, defaults to the pod IP.","type":"string","format":"hostname","nullable":true,"pattern":".*","maxLength":253},"scheme":{"$ref":"#/components/schemas/ProbeHandlerScheme"}}}},"nullable":true},"ProbeHandlerScheme":{"description":"Scheme to use for connecting to the host, defaults to HTTP.","type":"string","enum":["HTTP","HTTPS"],"nullable":true},"RelatedUrlsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/RelatedUrl"},"instances":{"$ref":"#/components/schemas/RelatedUrls"}},"nullable":true,"type":"object"},"RelatedUrl":{"description":"A URL that is related to the workload. For example, a URL to an external server providing statistics or logging about the workload.","properties":{"url":{"description":"The URL for connecting an external service related to the workload. (mandatory)","type":"string","nullable":true,"pattern":".*","maxLength":2048},"type":{"description":"The type of service that the url provides. For example, wandb (Weights & Biases). (mandatory)","type":"string","nullable":true,"pattern":".*","maxLength":63},"name":{"description":"Unique name to identify the instance. primarily used for policy locked rules.","type":"string","nullable":true,"pattern":".*","maxLength":63},"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,"nullable":true}},"nullable":true,"type":"object"},"RelatedUrls":{"description":"Set of URLs that are related to the workload.","type":"array","items":{"$ref":"#/components/schemas/RelatedUrl"},"maxItems":1000,"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"},"nullable":true},"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"]},"HostIpc":{"description":"Whether to enable host IPC. Defaults to false.","type":"boolean","nullable":true},"HostNetwork":{"description":"Whether to enable host networking. Default to false.","type":"boolean","nullable":true},"ReadOnlyRootFileSystem":{"description":"If true, mounts the container's root filesystem as read-only.","type":"boolean","nullable":true},"RunAsGid":{"description":"The group id to run the entrypoint of the container which executes the workspace. Default to the value specified in the environment asset `runAsGid` field (optional). Use only when the source uid/gid of the environment asset is not `fromTheImage`, and `overrideUidGidInWorkspace` is enabled.","type":"integer","format":"int64","nullable":true},"RunAsNonRoot":{"description":"Force the container to run as a non-root user.","type":"boolean","nullable":true},"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","format":"int64","nullable":true},"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","enum":["RuntimeDefault","Unconfined","Localhost"],"nullable":true},"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","nullable":true,"pattern":".*"},"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://run-ai-docs.nvidia.com/self-hosted/2.26/infrastructure-setup/advanced-setup/container-access/user-identity-in-containers).","type":"string","enum":["fromTheImage","fromIdpToken","custom"],"nullable":true},"ServingPort":{"description":"A port for accessing the inference service","allOf":[{"$ref":"#/components/schemas/ServingPortContainerAndProtocol"},{"$ref":"#/components/schemas/ServingPortAccess"}],"nullable":true,"type":"object"},"ServingPortContainerAndProtocol":{"properties":{"container":{"description":"The port that the container running the inference service exposes (mandatory).","type":"integer","format":"int32","minimum":1,"maximum":65535,"nullable":true},"protocol":{"$ref":"#/components/schemas/ServingPortProtocol"}}},"ServingPortProtocol":{"description":"The protocol used by the port, defaults to http","type":"string","enum":["http","grpc"],"nullable":true},"ServingPortAccess":{"properties":{"authorizationType":{"$ref":"#/components/schemas/ServingPortAccessAuthorizationTypeEnum"},"authorizedUsers":{"$ref":"#/components/schemas/AuthorizedUsers"},"authorizedGroups":{"$ref":"#/components/schemas/AuthorizedGroups"},"clusterLocalAccessOnly":{"description":"Configure the serving port URL to be available only on the cluster-local network, and not externally. Defaults to false","type":"boolean","nullable":true}}},"ServingPortAccessAuthorizationTypeEnum":{"type":"string","enum":["public","authenticatedUsers","authorizedUsers","authorizedGroups","authorizedUsersOrGroups"],"description":"Specifies who can send inference requests to the serving endpoint:\n\nPossible values:\n- `public`: No authorization is required. (Default)\n- `authenticatedUsers`: Any NVIDIA Run:ai authenticated user and service account can send requests.\n- `authorizedUsers`: Only users listed in the authorizedUsers field can send requests.\n- `authorizedGroups`: Only members of user groups listed in the authorizedGroups field can send requests.\n- `authorizedUsersOrGroups`: Requires either authorizedUsers or authorizedGroups to be provided; if neither is set, or if both are set, a mutual exclusion error is reported. Supported from cluster version 2.19.\n","nullable":true},"ConfigMapsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/ConfigMapInstance"},"instances":{"$ref":"#/components/schemas/ConfigMapItems"}},"nullable":true,"type":"object"},"ConfigMapInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/ConfigMap"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"StorageInstanceName":{"properties":{"name":{"description":"unique name to identify the instance. primarily used for policy locked rules.","type":"string","minLength":1,"maxLength":63,"nullable":true}},"nullable":true,"type":"object"},"ConfigMap":{"properties":{"configMap":{"description":"The name of the ConfigMap resource. (mandatory)","type":"string","minLength":1,"maxLength":253,"nullable":true,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$"},"mountPath":{"description":"Local path within the workload to which the ConfigMap will be mapped to. (mandatory)","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"subPath":{"description":"Path within the volume from which the container's volume should be mounted.","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"defaultMode":{"$ref":"#/components/schemas/DefaultMode"}},"nullable":true,"type":"object"},"DefaultMode":{"type":"string","description":"File permission mode in octal string format. This value must be a 4-digit octal number, representing the default file mode when mounting a Secret or ConfigMap as a volume.\n","minLength":4,"maxLength":4,"pattern":"0[0-7]{3}","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,"nullable":true}},"type":"object","nullable":true},"ConfigMapItems":{"description":"Set of config map volumes to use in the workload","type":"array","items":{"$ref":"#/components/schemas/ConfigMapInstance"},"maxItems":1000,"nullable":true},"DataVolumesDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/DataVolumeInstance"},"instances":{"$ref":"#/components/schemas/DataVolumeItems"}},"nullable":true,"type":"object"},"DataVolumeInstance":{"allOf":[{"$ref":"#/components/schemas/DataVolume"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"DataVolume":{"properties":{"id":{"description":"The unique identifier of the data volume. (mandatory)","type":"string","format":"uuid","nullable":true},"mountPath":{"description":"The path where the data volume will be mounted. (mandatory)","type":"string","nullable":true,"pattern":".*","maxLength":4096}},"nullable":true,"type":"object"},"DataVolumeItems":{"description":"Set of data volumes to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/DataVolumeInstance"},"maxItems":1000,"nullable":true},"EmptyDirsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/EmptyDirInstance"},"instances":{"$ref":"#/components/schemas/EmptyDirItems"}},"nullable":true,"type":"object"},"EmptyDirInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/EmptyDir"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"EmptyDir":{"properties":{"path":{"description":"Local path within the workload to which the EmptyDir volume will be mapped. (mandatory)","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"medium":{"description":"The type of storage medium for the volume. Use \"Memory\" for memory-backed storage, or leave empty for disk-backed storage.","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":".*"},"sizeLimit":{"description":"The total amount of local storage or memory required for the emptyDir volume. Specify using Kubernetes quantity format (e.g., 1G, 500Mi).","type":"string","maxLength":63,"pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$","nullable":true}},"nullable":true,"type":"object"},"EmptyDirItems":{"description":"A list of emptyDir volumes to mount in the workload.","type":"array","items":{"$ref":"#/components/schemas/EmptyDirInstance"},"maxItems":1000,"nullable":true},"GitsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/GitInstance"},"instances":{"$ref":"#/components/schemas/GitItems"}},"nullable":true,"type":"object"},"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"},"GitCommon":{"properties":{"repository":{"description":"URL to a remote Git repository. The content of this repository will be mapped to the container running the workload. (mandatory)","type":"string","minLength":1,"maxLength":2048,"nullable":true},"branch":{"description":"Specific branch to synchronize the repository from.","type":"string","minLength":1,"maxLength":63,"nullable":true},"revision":{"description":"Specific revision to synchronize the repository from.","type":"string","minLength":1,"maxLength":63,"nullable":true},"path":{"description":"Local path within the workload to which the Git repository will be mapped (mandatory).","type":"string","minLength":1,"maxLength":4096,"nullable":true}},"nullable":true,"type":"object"},"GitPassword":{"properties":{"passwordSecret":{"description":"Secret containing the credentials of the repository (needed for non public repository which requires authentication). (deprecated)","type":"string","minLength":1,"nullable":true},"secretKeyOfUser":{"description":"The key to use for loading the user name from the secret. The default is `User`. (deprecated)","type":"string","minLength":1,"nullable":true},"secretKeyOfPassword":{"description":"The key to use for loading the password from the secret. The default is `Password`. (deprecated)","type":"string","minLength":1,"nullable":true}},"nullable":true,"type":"object"},"GitSecretRef":{"properties":{"name":{"description":"Name of the Secret containing the credentials of the repository.","type":"string","minLength":1},"authenticationMethod":{"$ref":"#/components/schemas/GitAuthenticationMethod"},"secretKeyOfUser":{"description":"The key in the Secret that contains the Git username (used for `password` authentication).","type":"string","minLength":1,"nullable":true},"secretKeyOfPassword":{"description":"The key in the Secret that contains the Git password (used for `password` authentication).","type":"string","minLength":1,"nullable":true}},"nullable":true,"type":"object"},"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,"enum":["password","ssh-key"]},"GitItems":{"description":"Set of git repositories to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/GitInstance"},"maxItems":1000,"nullable":true},"HostPathsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/HostPathInstance"},"instances":{"$ref":"#/components/schemas/HostPathItems"}},"nullable":true,"type":"object"},"HostPathInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/HostPath"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"HostPath":{"properties":{"path":{"description":"Local path within the controller to which the host volume will be mapped. (mandatory)","type":"string","minLength":1,"maxLength":4096,"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,"maxLength":4096,"nullable":true,"pattern":".*"},"mountPropagation":{"$ref":"#/components/schemas/HostPathMountPropagation"}},"nullable":true,"type":"object"},"HostPathMountPropagation":{"description":"Share this volumes mount with other containers. If set to HostToContainer, this volume mount will receive all subsequent mounts that are mounted to this volume or any of its subdirectories. In case of multiple hostPath entries, this field should have the same value for all of them.","type":"string","enum":["None","HostToContainer"],"nullable":true},"HostPathItems":{"description":"Set of host paths to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/HostPathInstance"},"maxItems":1000,"nullable":true},"NfssDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/NfsInstance"},"instances":{"$ref":"#/components/schemas/NfsItems"}},"nullable":true,"type":"object"},"NfsInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/Nfs"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"Nfs":{"properties":{"path":{"description":"Path that is exported by the NFS server (mandatory). For more information, see [NFS](https://kubernetes.io/docs/concepts/storage/volumes#nfs).","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"readOnly":{"description":"Force the NFS export to be mounted with read-only permissions.","type":"boolean","default":true,"nullable":true},"server":{"description":"The hostname or IP address of the NFS server. (mandatory)","type":"string","minLength":1,"maxLength":253,"nullable":true,"pattern":".*"},"mountPath":{"description":"The path that the NFS volume will be mounted to when in use. (mandatory)","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"NfsItems":{"description":"Set of nfs volumes to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/NfsInstance"},"maxItems":1000,"nullable":true},"PvcsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/PvcInstance"},"instances":{"$ref":"#/components/schemas/PvcItems"}},"nullable":true,"type":"object"},"PvcInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/Pvc"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"Pvc":{"allOf":[{"$ref":"#/components/schemas/PvcFieldsUpdatable"},{"$ref":"#/components/schemas/PvcFieldsNonUpdatable"}]},"PvcFieldsUpdatable":{"properties":{"path":{"description":"Local path within the workload to which the PVC bucket will be mapped. (mandatory)","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"PvcFieldsNonUpdatable":{"properties":{"existingPvc":{"description":"Verify existing PVC. PVC is assumed to exist when set to `true`. If set to `false`, the PVC will be created, if it does not exist.","type":"boolean","default":false,"nullable":true},"claimName":{"description":"Name for the PVC. Allow referencing it across workloads. If not provided, a name based on the workload name and scope will be auto-generated.","type":"string","minLength":1,"maxLength":63,"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,"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,"nullable":true}},"nullable":true,"type":"object"},"ClaimInfo":{"description":"Claim information for the newly created PVC. The information should not be provided when attempting to use existing PVC.","properties":{"size":{"$ref":"#/components/schemas/PvcClaimSize"},"storageClass":{"description":"Storage class name to associate with the PVC. This parameter may be omitted if there is a single storage class in the system, or you are using the default storage class. For more information, see [Storage class](https://kubernetes.io/docs/concepts/storage/storage-classes).","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$"},"accessModes":{"$ref":"#/components/schemas/PvcAccessModes"},"volumeMode":{"$ref":"#/components/schemas/PvcVolumeMode"},"addedAttrValues":{"$ref":"#/components/schemas/PvcAddedAttrValues"}},"nullable":true,"type":"object"},"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]*)$","maxLength":63,"nullable":true},"PvcAccessModes":{"description":"Default access mode(s) applied to newly created PVCs unless explicitly overridden.","properties":{"readWriteOnce":{"description":"Mount the volume as read/write by a single node.","type":"boolean","default":true,"nullable":true},"readOnlyMany":{"description":"Mount the volume as read-only by many nodes.","type":"boolean","default":false,"nullable":true},"readWriteMany":{"description":"Mount the volume as read/write by many nodes.","type":"boolean","default":false,"nullable":true}},"nullable":true,"type":"object"},"PvcVolumeMode":{"description":"Default volume mode for the PVC. Choose between Filesystem (default) or Block.","type":"string","enum":["Filesystem","Block"],"nullable":true},"PvcAddedAttrValues":{"description":"an optional array of key-values pairs that are written as annotations on the created PVC. the allowed attributes are determined according to the storage class configuration (see k8s-objects-tracker for further info).","type":"array","items":{"$ref":"#/components/schemas/PvcAddedAttrValue"},"maxItems":1000},"PvcAddedAttrValue":{"type":"object","required":["key"],"properties":{"key":{"type":"string","minLength":1,"maxLength":63,"pattern":"^([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]$"},"value":{"type":"string","pattern":".*","maxLength":10000}}},"PvcItems":{"description":"Set of pvc persistent volume claims to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/PvcInstance"},"maxItems":1000,"nullable":true},"SecretsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/SecretInstance"},"instances":{"$ref":"#/components/schemas/SecretItems"}},"nullable":true,"type":"object"},"SecretInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/Secret"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"Secret":{"allOf":[{"$ref":"#/components/schemas/SecretFieldsUpdatable"},{"$ref":"#/components/schemas/SecretFieldsNonUpdatable"}]},"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"},"SecretFieldsNonUpdatable":{"properties":{"secret":{"description":"The name of the Secret resource. (mandatory)","type":"string","minLength":1,"nullable":true}},"nullable":true,"type":"object"},"SecretItems":{"description":"Set of secret volumes to use in the workload","type":"array","items":{"$ref":"#/components/schemas/SecretInstance"},"nullable":true},"TolerationsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/Toleration"},"instances":{"$ref":"#/components/schemas/Tolerations"}},"nullable":true,"type":"object"},"Toleration":{"description":"Toleration details.","properties":{"name":{"description":"The name of the toleration.","type":"string","minLength":1,"maxLength":253,"nullable":true,"pattern":".*"},"operator":{"$ref":"#/components/schemas/TolerationOperator"},"key":{"description":"The taint key that the toleration applies to. (mandatory)","type":"string","maxLength":253,"nullable":true,"pattern":".*"},"value":{"description":"The taint value the toleration matches to. Mandatory if operator is Exists, forbidden otherwise.","type":"string","maxLength":10000,"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","nullable":true}},"nullable":true,"type":"object"},"TolerationOperator":{"description":"A key's relationship to the value. Equal uses key and value. Exists is equivalent to wildcard for value, so that a workload can tolerate all taints of a particular category. (mandatory)","type":"string","enum":["Equal","Exists"],"nullable":true},"TolerationEffect":{"description":"The taint effect to match. (mandatory)","type":"string","enum":["NoSchedule","NoExecute","PreferNoSchedule","Any"],"nullable":true},"Tolerations":{"description":"Set of tolerations to apply to the workload.","type":"array","items":{"$ref":"#/components/schemas/Toleration"},"maxItems":1000,"nullable":true},"WorkingDir":{"description":"Container's working directory. If not specified, the container runtime default will be used. This may be configured in the container image.","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"InferenceFields":{"allOf":[{"$ref":"#/components/schemas/AutoScalingField"},{"$ref":"#/components/schemas/ServingConfigurationField"}],"nullable":true,"type":"object"},"AutoScalingField":{"properties":{"autoscaling":{"$ref":"#/components/schemas/AutoScaling"}}},"AutoScaling":{"allOf":[{"$ref":"#/components/schemas/AutoScalingCommonFields"},{"$ref":"#/components/schemas/AutoScalingMetricFields"}],"nullable":true,"type":"object"},"AutoScalingCommonFields":{"allOf":[{"$ref":"#/components/schemas/MetricThresholdPercentageField"},{"$ref":"#/components/schemas/InferencesMinReplicasField"},{"$ref":"#/components/schemas/InferencesMaxReplicasField"},{"$ref":"#/components/schemas/InitialReplicasField"},{"$ref":"#/components/schemas/ActivationReplicasField"},{"$ref":"#/components/schemas/ConcurrencyHardLimitField"},{"$ref":"#/components/schemas/ScaleToZeroRetentionField"},{"$ref":"#/components/schemas/ScaleDownDelayField"},{"$ref":"#/components/schemas/InitializationTimeoutField"}],"nullable":true,"type":"object"},"MetricThresholdPercentageField":{"properties":{"metricThresholdPercentage":{"description":"The percentage of metric threshold value to use for autoscaling. Defaults to 70. Applicable only with the 'throughput' and 'concurrency' metrics","type":"number","format":"float","minimum":1,"maximum":100,"nullable":true}}},"InferencesMinReplicasField":{"properties":{"minReplicas":{"description":"The minimum number of replicas for autoscaling. Defaults to 1. Use 0 to allow scale-to-zero","type":"integer","format":"int32","minimum":0,"nullable":true}}},"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}}},"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","format":"int32","minimum":0,"nullable":true}}},"ActivationReplicasField":{"properties":{"activationReplicas":{"description":"The number of replicas to run when scaling-up from zero. Defaults to minReplicas, or to 1 if minReplicas is set to 0","type":"integer","format":"int32","minimum":1,"nullable":true}}},"ConcurrencyHardLimitField":{"properties":{"concurrencyHardLimit":{"description":"The maximum number of requests allowed to flow to a single replica at any time. 0 means no limit","type":"integer","format":"int32","minimum":0,"nullable":true}}},"ScaleToZeroRetentionField":{"properties":{"scaleToZeroRetentionSeconds":{"description":"The minimum amount of time (in seconds) that the last replica will remain active after a scale-to-zero decision. Defaults to 0. Available only if minReplicas is set to 0","type":"integer","format":"int32","minimum":0,"maximum":3600,"nullable":true}}},"ScaleDownDelayField":{"properties":{"scaleDownDelaySeconds":{"description":"The minimum amount of time (in seconds) that a replica will remain active after a scale-down decision","type":"integer","format":"int32","minimum":0,"maximum":3600,"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}}},"AutoScalingMetricFields":{"allOf":[{"$ref":"#/components/schemas/AutoScalingMetricField"},{"$ref":"#/components/schemas/MetricThresholdField"}],"nullable":true,"type":"object"},"AutoScalingMetricField":{"properties":{"metric":{"$ref":"#/components/schemas/AutoScalingMetric"}}},"AutoScalingMetric":{"description":"The metric to use for autoscaling. Mandatory if minReplicas < maxReplicas, except for the special case where minReplicas is set to 0 and maxReplicas is set to 1, as in this case autoscaling decisions are made according to network activity rather than metrics. Use one of the built-in metrics of 'throughput', 'concurrency' or 'latency', or any other available custom metric. Only the 'throughput' and 'concurrency' metrics support scale-to-zero","type":"string","pattern":"^[a-zA-Z_:][a-zA-Z0-9_:]*$","nullable":true},"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}}},"ServingConfigurationField":{"properties":{"servingConfiguration":{"$ref":"#/components/schemas/ServingConfiguration"}}},"ServingConfiguration":{"description":"The inference workload serving configuration.","properties":{"initializationTimeoutSeconds":{"description":"The maximum time (in seconds) allowed for a workload to initialize and become ready. If the workload does not start within this time, it will be moved to failed state.","type":"integer","format":"int32","minimum":1,"nullable":true},"requestTimeoutSeconds":{"description":"The maximum time (in seconds) allowed to process an end-user request. If no response is returned within this time, the request will be ignored.Supported from Cluster version 2.22","type":"integer","format":"int32","minimum":1,"nullable":true}},"nullable":true,"type":"object"},"InferencePolicyRulesV2":{"allOf":[{"nullable":true,"properties":{"annotations":{"$ref":"#/components/schemas/InstancesRules"},"args":{"$ref":"#/components/schemas/StringRules"},"category":{"$ref":"#/components/schemas/StringRules"},"command":{"$ref":"#/components/schemas/StringRules"},"compute":{"$ref":"#/components/schemas/SupersetRulesAllOfCompute"},"createHomeDir":{"$ref":"#/components/schemas/BooleanRules"},"environmentVariables":{"$ref":"#/components/schemas/InstancesRules"},"exposedUrls":{"$ref":"#/components/schemas/ExposedUrlsRules"},"image":{"$ref":"#/components/schemas/StringRules"},"imagePullPolicy":{"$ref":"#/components/schemas/ImagePullPolicyRules"},"imagePullSecrets":{"$ref":"#/components/schemas/ImagePullSecretsRules"},"labels":{"$ref":"#/components/schemas/InstancesRules"},"nodeAffinityRequired":{"$ref":"#/components/schemas/ArbitraryRules"},"nodePools":{"$ref":"#/components/schemas/ArrayRules"},"nodeType":{"$ref":"#/components/schemas/StringRules"},"podAffinity":{"$ref":"#/components/schemas/PodAffinityRules"},"ports":{"$ref":"#/components/schemas/PortsRules"},"preemptibility":{"$ref":"#/components/schemas/PreemptibilityRules"},"priorityClass":{"$ref":"#/components/schemas/StringRules"},"probes":{"$ref":"#/components/schemas/ProbesRules"},"relatedUrls":{"$ref":"#/components/schemas/RelatedUrlsRules"},"security":{"nullable":true,"properties":{"capabilities":{"$ref":"#/components/schemas/ArrayRules"},"hostIpc":{"$ref":"#/components/schemas/BooleanRules"},"hostNetwork":{"$ref":"#/components/schemas/BooleanRules"},"readOnlyRootFilesystem":{"$ref":"#/components/schemas/BooleanRules"},"runAsGid":{"$ref":"#/components/schemas/IntegerRulesOptional"},"runAsNonRoot":{"$ref":"#/components/schemas/BooleanRules"},"runAsUid":{"$ref":"#/components/schemas/IntegerRulesOptional"},"seccompProfileType":{"$ref":"#/components/schemas/SeccompProfileTypeRules"},"supplementalGroups":{"$ref":"#/components/schemas/StringRules"},"uidGidSource":{"$ref":"#/components/schemas/UidGidSourceRules"}},"type":"object"},"servingPort":{"$ref":"#/components/schemas/ServingPortRules"},"storage":{"nullable":true,"properties":{"configMapVolume":{"$ref":"#/components/schemas/ConfigMapsRules"},"dataVolume":{"$ref":"#/components/schemas/DataVolumesRules"},"emptyDirVolume":{"$ref":"#/components/schemas/EmptyDirsRules"},"git":{"$ref":"#/components/schemas/GitsRules"},"hostPath":{"$ref":"#/components/schemas/HostPathsRules"},"nfs":{"$ref":"#/components/schemas/NfssRules"},"pvc":{"$ref":"#/components/schemas/PvcsRules"},"secretVolume":{"$ref":"#/components/schemas/SecretsRules"}},"type":"object"},"tolerations":{"$ref":"#/components/schemas/TolerationsRules"},"workingDir":{"$ref":"#/components/schemas/StringRules"}},"type":"object"},{"$ref":"#/components/schemas/InferenceFieldsRules"}]},"InstancesRules":{"properties":{"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ItemRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"canAdd":{"description":"Whether it is permitted to add items. Default to true.","type":"boolean","nullable":true},"locked":{"description":"Set of keys for items that are \"locked\", i.e. cannot be removed or deleted.","type":"array","items":{"type":"string"}}},"nullable":true,"type":"object"},"SourceOfRule":{"description":"This field is used by the system along with effective rules, in order to specify the org unit from which this effective rule has been derived. It should be left empty when sending apply policy requests.","required":["scope"],"properties":{"scope":{"$ref":"#/components/schemas/ScopeType"},"projectId":{"$ref":"#/components/schemas/ProjectIdOptional"},"departmentId":{"$ref":"#/components/schemas/DepartmentIdOptional"},"clusterId":{"$ref":"#/components/schemas/ClusterIdOptional"},"isFallback":{"description":"source of this rule is the fallback policy","type":"boolean"}},"nullable":true,"type":"object"},"StringRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/StringRulesOptions"}],"nullable":true,"type":"object"},"StringRulesCommon":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory, default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable, default to true","type":"boolean","nullable":true},"blocked":{"description":"Blocks the field to prevent workloads from specifying any value for it.","type":"boolean","nullable":true}}},"StringRulesOptions":{"properties":{"options":{"description":"Set of options that the value of the field must be chosen from.","type":"array","items":{"$ref":"#/components/schemas/StringOption"},"nullable":true}}},"StringOption":{"description":"One of the values that the field can be assigned to, when options police is applied on the field.","required":["value"],"properties":{"value":{"description":"The value that the field should hold","type":"string","pattern":".*"},"displayed":{"description":"Textual description of the value. to be used by user interface applications.","type":"string","nullable":true,"pattern":".*"}}},"SupersetRulesAllOfCompute":{"title":"SupersetRulesAllOfCompute","nullable":true,"properties":{"cpuCoreLimit":{"$ref":"#/components/schemas/NumberRules"},"cpuCoreRequest":{"$ref":"#/components/schemas/NumberRules"},"cpuMemoryLimit":{"$ref":"#/components/schemas/QuantityRules"},"cpuMemoryRequest":{"$ref":"#/components/schemas/QuantityRules"},"extendedResources":{"$ref":"#/components/schemas/ExtendedResourcesRules"},"gpuDevicesRequest":{"$ref":"#/components/schemas/IntegerRules"},"gpuMemoryLimit":{"$ref":"#/components/schemas/QuantityRules"},"gpuMemoryRequest":{"$ref":"#/components/schemas/QuantityRules"},"gpuPortionLimit":{"$ref":"#/components/schemas/NumberRules"},"gpuPortionRequest":{"$ref":"#/components/schemas/NumberRules"},"gpuRequestType":{"$ref":"#/components/schemas/GpuRequestRules"},"largeShmRequest":{"$ref":"#/components/schemas/BooleanRules"}},"type":"object"},"NumberRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory. default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"number","nullable":true},"max":{"description":"The maximum value that the field can be assigned to.","type":"number","nullable":true},"step":{"description":"The minimal difference between two values the field can be assigned to. For example, min=2, max=3, step=0.25 implies that the values the field can hold are 2, 2.25, 2.5 and 3.","type":"number","nullable":true},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"DefaultFromRule":{"properties":{"field":{"description":"The default of this field is taken from another field, with optional factor. The specified field must belong to the same workload section (compute, security, etc). For itemized field, the value of the field will be taken from the same instance.","type":"string","nullable":true,"pattern":".*"},"factor":{"description":"Multiple the value of the fromField by this factor to get the value for this field For example, if factor is 2 and defaultFrom field has value of 8, the calculated default will be determined to be 16.","type":"number","format":"double","nullable":true,"default":1}},"nullable":true,"type":"object"},"QuantityRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory, default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable, default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"string","nullable":true,"pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"},"max":{"description":"The maximum value that the field can be assigned to.","type":"string","nullable":true,"pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"ExtendedResourcesRules":{"properties":{"attributes":{"$ref":"#/components/schemas/ExtendedResourceRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ExtendedResourceRules":{"description":"Rules for the attributes of extendedResources","properties":{"quantity":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"IntegerRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory. default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"max":{"description":"The maximum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"step":{"description":"The minimal difference between two values the field can be assigned to. For example, min=2, max=10, step=2 implies that the values the field can hold are 2, 4, 6, 8 and 10.","type":"integer","format":"int32","nullable":true},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"GpuRequestRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/GpuRequestOptions"}],"nullable":true,"type":"object"},"GpuRequestOptions":{"properties":{"options":{"description":"Limit the permitted values for gpuRequest to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/GpuRequestType"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"BooleanRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory. default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true}},"nullable":true,"type":"object"},"ExposedUrlsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/ExposedUrlRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ExposedUrlRules":{"description":"Rules for the attributed of exposedUrls","properties":{"container":{"$ref":"#/components/schemas/IntegerRules"},"customUrl":{"$ref":"#/components/schemas/BooleanRules"},"url":{"$ref":"#/components/schemas/StringRules"},"authorizedUsers":{"$ref":"#/components/schemas/ArrayRules"},"authorizedGroups":{"$ref":"#/components/schemas/ArrayRules"},"toolType":{"$ref":"#/components/schemas/StringRules"},"toolName":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"ArrayRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether this array is mandatory. Mandatory array must include at least one item. default to false.","type":"boolean","nullable":true},"options":{"description":"Set of options that the value of each item of the array must be chosen from.","type":"array","items":{"$ref":"#/components/schemas/StringOption"}},"canEdit":{"description":"Whether the value of the array, as a whole, is editable. default to false.","type":"boolean","nullable":true}},"nullable":true,"type":"object"},"ImagePullPolicyRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/ImagePullPolicyOptions"}],"nullable":true,"type":"object"},"ImagePullPolicyOptions":{"properties":{"options":{"description":"Limit the permitted values for imagePullPolicy to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/ImagePullPolicy"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ImagePullSecretsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/ImagePullSecretsRulesAttributes"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ImagePullSecretsRulesAttributes":{"description":"Rules for the attributes of imagePullSecrets","properties":{"name":{"$ref":"#/components/schemas/StringRules"},"userCredentials":{"$ref":"#/components/schemas/BooleanRules"}},"nullable":true,"type":"object"},"ArbitraryRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether this arbitrary object is mandatory. default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field, as a whole, is editable. default to false.","type":"boolean","nullable":true}},"nullable":true,"type":"object"},"PodAffinityRules":{"properties":{"type":{"$ref":"#/components/schemas/PodAffinityTypeRules"},"key":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"PodAffinityTypeRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/PodAffinityTypeOptions"}],"nullable":true,"type":"object"},"PodAffinityTypeOptions":{"properties":{"options":{"type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/PodAffinityType"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"type":"object"},"PortsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/PortRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"PortRules":{"description":"Rules for port attributes","properties":{"container":{"$ref":"#/components/schemas/IntegerRules"},"serviceType":{"$ref":"#/components/schemas/PortServiceTypeRules"},"customExternalPort":{"$ref":"#/components/schemas/BooleanRules"},"external":{"$ref":"#/components/schemas/IntegerRules"},"toolType":{"$ref":"#/components/schemas/StringRules"},"toolName":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"PortServiceTypeRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/PortServiceTypeOptions"}],"nullable":true,"type":"object"},"PortServiceTypeOptions":{"properties":{"options":{"type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/PortServiceType"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"PreemptibilityRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/PreemptibilityOptions"}],"nullable":true,"type":"object"},"PreemptibilityOptions":{"properties":{"options":{"description":"Limit the permitted values for preemptibility to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/Preemptibility"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ProbesRules":{"properties":{"readiness":{"$ref":"#/components/schemas/ProbeRules"}},"nullable":true,"type":"object"},"ProbeRules":{"properties":{"initialDelaySeconds":{"$ref":"#/components/schemas/IntegerRules"},"periodSeconds":{"$ref":"#/components/schemas/IntegerRules"},"timeoutSeconds":{"$ref":"#/components/schemas/IntegerRules"},"successThreshold":{"$ref":"#/components/schemas/IntegerRules"},"failureThreshold":{"$ref":"#/components/schemas/IntegerRules"},"handler":{"$ref":"#/components/schemas/ProbeHandlerRules"}},"nullable":true,"type":"object"},"ProbeHandlerRules":{"properties":{"httpGet":{"properties":{"path":{"$ref":"#/components/schemas/StringRules"},"port":{"$ref":"#/components/schemas/IntegerRules"},"host":{"$ref":"#/components/schemas/StringRules"},"scheme":{"$ref":"#/components/schemas/StringRules"}}}},"nullable":true,"type":"object"},"RelatedUrlsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/RelatedUrlRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"RelatedUrlRules":{"description":"Rules for the attributes of relatedUrls","properties":{"url":{"$ref":"#/components/schemas/StringRules"},"type":{"$ref":"#/components/schemas/StringRules"},"name":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"IntegerRulesOptional":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"max":{"description":"The maximum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"step":{"description":"The minimal difference between two values the field can be assigned to. For example, min=2, max=10, step=2 implies that the values the field can hold are 2, 4, 6, 8 and 10.","type":"integer","format":"int32","nullable":true},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"SeccompProfileTypeRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/SeccompProfileTypeOptions"}],"nullable":true,"type":"object"},"SeccompProfileTypeOptions":{"properties":{"options":{"description":"Limit the permitted values for secompProfileType to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/SeccompProfileType"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"UidGidSourceRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/UidGidSourceOptions"}],"nullable":true,"type":"object"},"UidGidSourceOptions":{"properties":{"options":{"description":"Limit the permitted values for uidGidSource to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/UidGidSource"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ServingPortRules":{"properties":{"container":{"$ref":"#/components/schemas/IntegerRules"},"protocol":{"$ref":"#/components/schemas/ServingPortProtocolRules"},"authorizationType":{"$ref":"#/components/schemas/ServingPortAuthorizationTypeRules"},"authorizedUsers":{"$ref":"#/components/schemas/ArrayRules"},"authorizedGroups":{"$ref":"#/components/schemas/ArrayRules"},"clusterLocalAccessOnly":{"$ref":"#/components/schemas/BooleanRules"}},"nullable":true,"type":"object"},"ServingPortProtocolRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/ServingPortProtocolOptions"}],"nullable":true,"type":"object"},"ServingPortProtocolOptions":{"properties":{"options":{"type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/ServingPortProtocol"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ServingPortAuthorizationTypeRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/ServingPortAuthorizationTypeOptions"}],"nullable":true,"type":"object"},"ServingPortAuthorizationTypeOptions":{"properties":{"options":{"type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/ServingPortAccessAuthorizationTypeEnum"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ConfigMapsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/ConfigMapRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ConfigMapRules":{"properties":{"configMap":{"$ref":"#/components/schemas/StringRules"},"mountPath":{"$ref":"#/components/schemas/StringRules"},"subPath":{"$ref":"#/components/schemas/StringRules"},"defaultMode":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"DataVolumesRules":{"properties":{"attributes":{"$ref":"#/components/schemas/DataVolumeRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"DataVolumeRules":{"properties":{"id":{"$ref":"#/components/schemas/StringRules"},"mountPath":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"EmptyDirsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/EmptyDirRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"EmptyDirRules":{"properties":{"path":{"$ref":"#/components/schemas/StringRules"},"medium":{"$ref":"#/components/schemas/StringRules"},"sizeLimit":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"GitsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/GitRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"GitRules":{"properties":{"repository":{"$ref":"#/components/schemas/StringRules"},"branch":{"$ref":"#/components/schemas/StringRules"},"revision":{"$ref":"#/components/schemas/StringRules"},"path":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"HostPathsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/HostPathRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"HostPathRules":{"properties":{"path":{"$ref":"#/components/schemas/StringRules"},"readOnly":{"$ref":"#/components/schemas/BooleanRules"},"mountPath":{"$ref":"#/components/schemas/StringRules"},"mountPropagation":{"$ref":"#/components/schemas/HostPathMountPropagationRules"}},"nullable":true,"type":"object"},"HostPathMountPropagationRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/HostPathMountPropagationOptions"}],"nullable":true,"type":"object"},"HostPathMountPropagationOptions":{"properties":{"options":{"type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/HostPathMountPropagation"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}}},"NfssRules":{"properties":{"attributes":{"$ref":"#/components/schemas/NfsRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"NfsRules":{"properties":{"path":{"$ref":"#/components/schemas/StringRules"},"readOnly":{"$ref":"#/components/schemas/BooleanRules"},"server":{"$ref":"#/components/schemas/StringRules"},"mountPath":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"PvcsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/PvcRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"PvcRules":{"properties":{"claimName":{"$ref":"#/components/schemas/StringRules"},"path":{"$ref":"#/components/schemas/StringRules"},"readOnly":{"$ref":"#/components/schemas/BooleanRules"},"claimInfo":{"$ref":"#/components/schemas/ClaimInfoRules"}},"nullable":true,"type":"object"},"ClaimInfoRules":{"properties":{"size":{"$ref":"#/components/schemas/StringRules"},"storageClass":{"$ref":"#/components/schemas/StringRules"},"accessModes":{"$ref":"#/components/schemas/PvcAccessModesRules"}},"nullable":true,"type":"object"},"PvcAccessModesRules":{"description":"Rules for access mode(s) for a newly created PVC.","properties":{"readWriteOnce":{"$ref":"#/components/schemas/BooleanRules"},"readOnlyMany":{"$ref":"#/components/schemas/BooleanRules"},"readWriteMany":{"$ref":"#/components/schemas/BooleanRules"}},"nullable":true,"type":"object"},"SecretsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/SecretRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"SecretRules":{"properties":{"secret":{"$ref":"#/components/schemas/StringRules"},"mountPath":{"$ref":"#/components/schemas/StringRules"},"defaultMode":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"TolerationsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/TolerationRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"TolerationRules":{"description":"Toleration details.","properties":{"operator":{"$ref":"#/components/schemas/TolerationOperatorRules"},"key":{"$ref":"#/components/schemas/StringRules"},"value":{"$ref":"#/components/schemas/StringRules"},"effect":{"$ref":"#/components/schemas/TolerationEffectRules"},"seconds":{"$ref":"#/components/schemas/IntegerRules"},"exclude":{"$ref":"#/components/schemas/BooleanRules"}},"nullable":true,"type":"object"},"TolerationOperatorRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/TolerationOperatorOptions"}],"nullable":true,"type":"object"},"TolerationOperatorOptions":{"properties":{"options":{"description":"Limit the permitted values for imagePullPolicy to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/TolerationOperator"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"TolerationEffectRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/TolerationEffectOptions"}],"nullable":true,"type":"object"},"TolerationEffectOptions":{"properties":{"options":{"description":"Limit the permitted values for imagePullPolicy to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/TolerationEffect"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"InferenceFieldsRules":{"properties":{"autoscaling":{"$ref":"#/components/schemas/AutoScalingRules"},"servingConfiguration":{"$ref":"#/components/schemas/ServingConfigurationRules"}},"nullable":true,"type":"object"},"AutoScalingRules":{"properties":{"metricThresholdPercentage":{"$ref":"#/components/schemas/NumberRules"},"minReplicas":{"$ref":"#/components/schemas/IntegerRules"},"maxReplicas":{"$ref":"#/components/schemas/IntegerRules"},"initialReplicas":{"$ref":"#/components/schemas/IntegerRules"},"activationReplicas":{"$ref":"#/components/schemas/IntegerRules"},"metric":{"$ref":"#/components/schemas/AutoScalingMetricRules"},"metricThreshold":{"$ref":"#/components/schemas/IntegerRules"},"concurrencyHardLimit":{"$ref":"#/components/schemas/IntegerRules"},"scaleToZeroRetentionSeconds":{"$ref":"#/components/schemas/IntegerRules"},"scaleDownDelaySeconds":{"$ref":"#/components/schemas/IntegerRules"},"initializationTimeoutSeconds":{"allOf":[{"$ref":"#/components/schemas/IntegerRules"}],"deprecated":true}},"nullable":true,"type":"object"},"AutoScalingMetricRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/AutoScalingMetricOptions"}],"nullable":true,"type":"object"},"AutoScalingMetricOptions":{"properties":{"options":{"type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/AutoScalingMetric"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ServingConfigurationRules":{"properties":{"initializationTimeoutSeconds":{"$ref":"#/components/schemas/IntegerRules"},"requestTimeoutSeconds":{"$ref":"#/components/schemas/IntegerRules"}},"nullable":true,"type":"object"},"ImposedAssets":{"description":"a list of datasource assets to import into the policy. these datasources will be included in any workload that will be created in the scope of the policy.","type":"array","items":{"type":"string","format":"uuid"},"nullable":true},"PolicyValidationStatus":{"properties":{"validation":{"properties":{"errorMessage":{"pattern":".*","type":"string","description":"In case validation failed, holds the error message explaining the issue"}},"nullable":true,"type":"object"}},"nullable":true,"type":"object"},"FieldsToReset":{"description":"set of fields in jsonpath format that is requested to clear their policy (default and rules)","type":"array","items":{"type":"string","pattern":".*"}},"InferencePolicyV2":{"properties":{"meta":{"$ref":"#/components/schemas/PolicyMeta"},"policy":{"$ref":"#/components/schemas/InferencePolicyDefaultsAndRulesV2"},"effective":{"$ref":"#/components/schemas/InferencePolicyDefaultsAndRulesV2"},"effectiveUpdatedAt":{"$ref":"#/components/schemas/Timestamp"}},"nullable":true,"type":"object"},"PolicyMeta":{"allOf":[{"$ref":"#/components/schemas/PolicyReadOnlyFields"},{"$ref":"#/components/schemas/PolicyCreationFields"}]},"PolicyReadOnlyFields":{"required":["id","createdBy","createdAt","updatedBy","updatedAt"],"properties":{"id":{"$ref":"#/components/schemas/PolicyId"},"tenantId":{"$ref":"#/components/schemas/TenantId"},"clusterId":{"$ref":"#/components/schemas/ClusterIdOptional"},"createdBy":{"description":"The user who created the policy.","type":"string","minLength":1},"createdAt":{"description":"The time at which the policy wes created","type":"string","minLength":1,"format":"date-time"},"updatedBy":{"description":"The user who updated the policy.","type":"string","minLength":1},"updatedAt":{"description":"The time at which the policy has been updated","type":"string","minLength":1,"format":"date-time"}}},"PolicyId":{"description":"The unique id of the policy.","type":"string","minLength":1,"format":"uuid"},"TenantId":{"description":"The id of the tenant.","type":"integer","format":"int32"},"Timestamp":{"description":"The time at which an event occurred. e.g. the time an effective policy has been updated","type":"string","minLength":1,"format":"date-time"},"Error":{"required":["code","message"],"properties":{"code":{"type":"integer","minimum":100,"maximum":599},"message":{"type":"string"},"details":{"type":"string"}}}},"responses":{"400BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401Unauthorized":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403Forbidden":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503ServiceUnavailable":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/api/v2/policy/inferences":{"patch":{"summary":"Update an inference policy.","description":"Use to apply changes to an inference policy for a given organizational unit.","operationId":"update_inference_policy_v2","tags":["Policy"],"parameters":[{"$ref":"#/components/parameters/ValidateOnly"},{"$ref":"#/components/parameters/ApproveClusterDeletion"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferencePolicyChangeRequestV2"}}}},"responses":{"200":{"description":"Policy applied.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferencePolicyV2"}}}},"400":{"$ref":"#/components/responses/400BadRequest"},"401":{"$ref":"#/components/responses/401Unauthorized"},"403":{"$ref":"#/components/responses/403Forbidden"},"503":{"$ref":"#/components/responses/503ServiceUnavailable"}}}}}}
```

## Get a distributed inference policy.

> Retrieve the details of a distributed inference policy for a given organizational unit.

```json
{"openapi":"3.0.3","info":{"title":"NVIDIA Run:ai","version":"2.26"},"tags":[{"name":"Policy","description":"Policies allow administrators to impose restrictions and set default values for researcher workloads. \nRestrictions and default values can be placed on CPUs, GPUs, and other resources or entities. \nFor more information, see [Policies](https://run-ai-docs.nvidia.com/self-hosted/2.26/platform-management/policies/#introduction).\n"}],"servers":[{"url":"https://app.run.ai"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer authentication"}},"parameters":{"PolicyScope":{"name":"scope","in":"query","required":true,"description":"The scope that the policy relates to.","schema":{"type":"string","enum":["tenant","cluster","department","project"]}},"FilterByDepartment":{"name":"departmentId","in":"query","description":"Filter using the department id.","required":false,"schema":{"type":"string"}},"FilterByProject":{"name":"projectId","in":"query","description":"project id to filter by","required":false,"schema":{"type":"string"}},"FilterByCluster":{"name":"clusterId","in":"query","description":"Filter using the Universally Unique Identifier (UUID) of the cluster.","required":false,"schema":{"type":"string","format":"uuid"}}},"schemas":{"DistributedInferencePolicyV2":{"properties":{"meta":{"$ref":"#/components/schemas/PolicyMeta"},"policy":{"$ref":"#/components/schemas/DistributedInferencePolicyDefaultsAndRulesV2"},"effective":{"$ref":"#/components/schemas/DistributedInferencePolicyDefaultsAndRulesV2"},"effectiveUpdatedAt":{"$ref":"#/components/schemas/Timestamp"}},"nullable":true,"type":"object"},"PolicyMeta":{"allOf":[{"$ref":"#/components/schemas/PolicyReadOnlyFields"},{"$ref":"#/components/schemas/PolicyCreationFields"}]},"PolicyReadOnlyFields":{"required":["id","createdBy","createdAt","updatedBy","updatedAt"],"properties":{"id":{"$ref":"#/components/schemas/PolicyId"},"tenantId":{"$ref":"#/components/schemas/TenantId"},"clusterId":{"$ref":"#/components/schemas/ClusterIdOptional"},"createdBy":{"description":"The user who created the policy.","type":"string","minLength":1},"createdAt":{"description":"The time at which the policy wes created","type":"string","minLength":1,"format":"date-time"},"updatedBy":{"description":"The user who updated the policy.","type":"string","minLength":1},"updatedAt":{"description":"The time at which the policy has been updated","type":"string","minLength":1,"format":"date-time"}}},"PolicyId":{"description":"The unique id of the policy.","type":"string","minLength":1,"format":"uuid"},"TenantId":{"description":"The id of the tenant.","type":"integer","format":"int32"},"ClusterIdOptional":{"description":"The id of the cluster.","type":"string","format":"uuid","minLength":1,"nullable":true},"PolicyCreationFields":{"required":["name","scope"],"properties":{"scope":{"$ref":"#/components/schemas/ScopeType"},"projectId":{"$ref":"#/components/schemas/ProjectIdOptional"},"departmentId":{"$ref":"#/components/schemas/DepartmentIdOptional"},"clusterId":{"$ref":"#/components/schemas/ClusterIdOptional"},"name":{"$ref":"#/components/schemas/PolicyName"}}},"ScopeType":{"type":"string","enum":["system","tenant","cluster","department","project"]},"ProjectIdOptional":{"description":"The id of the project.","type":"integer","format":"int32","nullable":true},"DepartmentIdOptional":{"description":"The id of the department.","type":"string","minLength":1,"nullable":true,"pattern":".*"},"PolicyName":{"description":"A chosen name for the policy.","type":"string","minLength":1,"pattern":".*"},"DistributedInferencePolicyDefaultsAndRulesV2":{"properties":{"defaults":{"allOf":[{"$ref":"#/components/schemas/DistributedInferenceDefaultsV2"}],"nullable":true,"type":"object"},"rules":{"allOf":[{"$ref":"#/components/schemas/DistributedInferenceRulesV2"}],"nullable":true,"type":"object"},"imposedAssets":{"$ref":"#/components/schemas/DistributedInferenceImposedAssets"},"status":{"$ref":"#/components/schemas/PolicyValidationStatus"}},"nullable":true,"type":"object"},"DistributedInferenceDefaultsV2":{"allOf":[{"$ref":"#/components/schemas/DistributedInferenceCommonDefaultsV2"},{"$ref":"#/components/schemas/DistributedInferenceLeaderDefaults"},{"$ref":"#/components/schemas/DistributedInferenceWorkerDefaults"}]},"DistributedInferenceCommonDefaultsV2":{"allOf":[{"nullable":true,"properties":{"category":{"$ref":"#/components/schemas/Category"},"nodePools":{"$ref":"#/components/schemas/NodePools"},"preemptibility":{"$ref":"#/components/schemas/Preemptibility"},"priorityClass":{"$ref":"#/components/schemas/PriorityClass"},"restartPolicy":{"$ref":"#/components/schemas/DistributedInferenceRestartPolicy"},"servingPort":{"$ref":"#/components/schemas/DistributedInferenceServingPort"}},"type":"object"},{"$ref":"#/components/schemas/DistributedInferenceStartupPolicyField"},{"$ref":"#/components/schemas/DistributedInferenceWorkersField"},{"$ref":"#/components/schemas/DistributedInferenceReplicasField"}],"nullable":true,"type":"object"},"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":".*"},"NodePools":{"description":"A prioritized list of node pools for the scheduler to run the workload on. The scheduler will always try to use the first node pool before moving to the next one if the first is not available.","type":"array","items":{"type":"string","maxLength":63,"pattern":".*"},"maxItems":1000,"nullable":true},"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","minLength":1,"enum":["preemptible","non-preemptible"],"nullable":true},"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","nullable":true,"pattern":".*"},"DistributedInferenceRestartPolicy":{"description":"Determines the behavior when a pod fails.\n- `RecreateGroupOnPodRestart`: Restarts all pods in the group if any pod fails.\n- `None`: No automatic restart behavior is applied.\n","type":"string","enum":["RecreateGroupOnPodRestart","None"],"nullable":true,"default":"RecreateGroupOnPodRestart"},"DistributedInferenceServingPort":{"description":"Defines the configuration for the inference serving endpoint. This determines how applications or services can send inference requests to the workload.","allOf":[{"$ref":"#/components/schemas/DistributedInferenceServingPortContainerAndProtocol"},{"$ref":"#/components/schemas/DistributedInferenceServingPortAccess"}],"nullable":true,"type":"object"},"DistributedInferenceServingPortContainerAndProtocol":{"properties":{"port":{"description":"The port exposed by the container running the distributed inference service.","type":"integer","format":"int32","minimum":1,"maximum":65535,"nullable":true},"protocol":{"$ref":"#/components/schemas/DistributedInferenceServingPortProtocol"}}},"DistributedInferenceServingPortProtocol":{"description":"The protocol used to access the port.","type":"string","enum":["http"],"nullable":true,"default":"http"},"DistributedInferenceServingPortAccess":{"properties":{"authorizationType":{"$ref":"#/components/schemas/DistributedInferenceServingPortAccessAuthorizationTypeEnum"},"authorizedUsers":{"description":"A list of users and service accounts allowed to send inference requests to the serving endpoint. `Note:` Cannot be used together with authorizedGroups.","type":"array","items":{"type":"string","pattern":".*"},"nullable":true},"authorizedGroups":{"description":"A list of user groups allowed to send inference requests to the serving endpoint. `Note:` Cannot be used together with authorizedUsers.","type":"array","items":{"type":"string","pattern":".*"},"nullable":true},"exposeExternally":{"description":"Indicates whether the inference serving endpoint should be accessible outside the cluster. If set to true, the endpoint will be exposed externally. To enable external access, your administrator must configure the cluster as described in the [inference requirements](https://run-ai-docs.nvidia.com/self-hosted/2.26/getting-started/installation/system-requirements#inference). section.","type":"boolean","nullable":true,"default":true},"exposedUrl":{"description":"The custom URL to use for the serving port. If empty (default), an autogenerated URL will be used.","type":"string","nullable":true,"pattern":".*"}}},"DistributedInferenceServingPortAccessAuthorizationTypeEnum":{"type":"string","description":"Specifies who can send inference requests to the serving endpoint:\n\nPossible values:\n- `public`: No authorization is required. (Default)\n- `authenticatedUsers`: Any NVIDIA Run:ai authenticated user and service account can send requests.\n- `authorizedUsers`: Only users listed in the authorizedUsers field can send requests.\n- `authorizedGroups`: Only members of user groups listed in the authorizedGroups field can send requests.\n","enum":["public","authenticatedUsers","authorizedUsers","authorizedGroups"],"nullable":true},"DistributedInferenceStartupPolicyField":{"properties":{"startupPolicy":{"$ref":"#/components/schemas/DistributedInferenceStartupPolicy"}},"nullable":true,"type":"object"},"DistributedInferenceStartupPolicy":{"description":"Determines when the worker pods should start during workload initialization. \n - `LeaderCreated`: Workers start after the leader pod is created.\n - `LeaderReady`: Workers start only after the leader pod is ready.\n","type":"string","enum":["LeaderCreated","LeaderReady"],"nullable":true,"default":"LeaderCreated"},"DistributedInferenceWorkersField":{"properties":{"workers":{"default":0,"description":"Specifies the number of worker nodes to run. If set to 0, only the leader node will run, and no worker pods will be created. In this case, worker spec is not required.","type":"integer","format":"int32","minimum":0,"maximum":1000,"nullable":true}}},"DistributedInferenceReplicasField":{"properties":{"replicas":{"default":1,"description":"Specifies the number of leader-worker sets to deploy. Each replica represents a group consisting of one leader pod and multiple worker pods. \nFor example, setting replicas: 3 will create 3 independent groups, each with its own leader and corresponding set of workers.\n","type":"integer","format":"int32","minimum":0,"maximum":1000,"nullable":true}}},"DistributedInferenceLeaderDefaults":{"properties":{"leader":{"description":"Defines the pod specification for the leader. Must always be provided, regardless of the number of workers.","allOf":[{"$ref":"#/components/schemas/DistributedInferenceLeaderWorkerDefaultsV2"}],"nullable":true,"type":"object"}}},"DistributedInferenceLeaderWorkerDefaultsV2":{"properties":{"annotations":{"$ref":"#/components/schemas/AnnotationsDefaults"},"args":{"$ref":"#/components/schemas/Args"},"command":{"$ref":"#/components/schemas/Command"},"compute":{"$ref":"#/components/schemas/SupersetDefaultsAllOfCompute"},"createHomeDir":{"$ref":"#/components/schemas/CreateHomeDir"},"environmentVariables":{"$ref":"#/components/schemas/EnvironmentVariablesDefaults"},"image":{"$ref":"#/components/schemas/Image"},"imagePullPolicy":{"$ref":"#/components/schemas/ImagePullPolicy"},"imagePullSecrets":{"$ref":"#/components/schemas/ImagePullSecretsDefaults"},"labels":{"$ref":"#/components/schemas/LabelsDefaults"},"nodeAffinityRequired":{"$ref":"#/components/schemas/NodeAffinityRequired"},"nodeType":{"$ref":"#/components/schemas/NodeType2"},"podAffinity":{"$ref":"#/components/schemas/PodAffinity"},"probes":{"$ref":"#/components/schemas/Probes"},"security":{"$ref":"#/components/schemas/DistributedInferenceLeaderWorkerDefaultsV2Security"},"storage":{"nullable":true,"properties":{"configMapVolume":{"$ref":"#/components/schemas/ConfigMapsDefaults"},"emptyDirVolume":{"$ref":"#/components/schemas/EmptyDirsDefaults"},"pvc":{"$ref":"#/components/schemas/PvcsDefaults"},"secretVolume":{"$ref":"#/components/schemas/SecretsDefaults"}},"type":"object"},"tolerations":{"$ref":"#/components/schemas/TolerationsDefaults"},"workingDir":{"$ref":"#/components/schemas/WorkingDir"}},"type":"object"},"AnnotationsDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/Annotations"}},"nullable":true,"type":"object"},"Annotations":{"description":"Set of annotations to populate into the container running the workload.","type":"array","items":{"$ref":"#/components/schemas/Annotation"},"maxItems":1000,"nullable":true},"Annotation":{"description":"Annotation details to be populated into the container.","properties":{"name":{"description":"The name of the annotation (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":".*"},"value":{"description":"The value of the annotation.","type":"string","maxLength":10000,"nullable":true,"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","default":false,"nullable":true}},"nullable":true,"type":"object"},"Args":{"description":"Arguments to the command that the container running the workload executes.","type":"string","minLength":1,"maxLength":10000,"nullable":true,"pattern":".*"},"Command":{"description":"A command to the server as the entry point of the container running the workload.","type":"string","minLength":1,"maxLength":10000,"nullable":true,"pattern":".*"},"SupersetDefaultsAllOfCompute":{"title":"SupersetDefaultsAllOfCompute","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/ExtendedResourcesDefaults"},"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"},"CpuCoreLimit":{"description":"Limitations on the number of CPUs consumed by the workload (0.5, 1, .etc). The system guarantees that this workload will not be able to consume more than this amount of CPUs.","format":"double","type":"number","nullable":true,"minimum":0},"CpuCoreRequest":{"description":"CPU units to allocate for the created workload (0.5, 1, .etc). The workload will receive at least this amount of CPU. Note that the workload will not be scheduled unless the system can guarantee this amount of CPUs to the workload.","format":"double","type":"number","nullable":true,"minimum":0},"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]*)$","maxLength":63,"nullable":true},"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","pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$","maxLength":63,"nullable":true},"ExtendedResourcesDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/ExtendedResource"},"instances":{"$ref":"#/components/schemas/ExtendedResources"}},"nullable":true,"type":"object"},"ExtendedResource":{"description":"Quantity of an extended resource.","properties":{"resource":{"description":"The name of the extended resource (mandatory)","type":"string","minLength":1,"maxLength":253,"nullable":true,"pattern":".*"},"quantity":{"description":"The requested quantity for the resource.","type":"string","minLength":1,"maxLength":63,"nullable":true,"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","nullable":true}},"nullable":true,"type":"object"},"ExtendedResources":{"description":"Extended resources and their quantity.","type":"array","items":{"$ref":"#/components/schemas/ExtendedResource"},"maxItems":1000,"nullable":true},"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","format":"int32","nullable":true,"minimum":0},"GpuMemoryLimit":{"description":"Limitation on the memory consumed by the workload, per GPU device. The system guarantees The gpuMemoryLimit must be no less than gpuMemoryRequest.","type":"string","pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$","maxLength":63,"nullable":true},"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]*)$","maxLength":63,"nullable":true},"GpuPortionLimit":{"description":"Limitations on the portion consumed by the workload, per GPU device. The system guarantees The gpuPotionLimit must be no less than the gpuPortionRequest.","type":"number","format":"double","nullable":true,"minimum":0},"GpuPortionRequest":{"description":"Required if and only if gpuRequestType is portion. States the portion of the GPU to allocate for the created workload, per GPU device, between 0 and 1. The default is no allocated GPUs.","type":"number","format":"double","nullable":true,"minimum":0},"GpuRequestType":{"description":"Sets the unit type for GPU resources requests. Stated in terms of portion or memory. Sets the unit type for other GPU request fields. If `gpuDevicesRequest > 1`, only `portion` is supported. If `gpuDeviceRequest = 1`, the request type can be stated as `portion` or `memory`.","type":"string","minLength":1,"enum":["portion","memory"],"nullable":true},"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","nullable":true},"CreateHomeDir":{"description":"When set to `true`, creates a home directory for the container.","type":"boolean","nullable":true},"EnvironmentVariablesDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/EnvironmentVariables"}},"nullable":true,"type":"object"},"EnvironmentVariables":{"description":"Set of environment variables to populate into the container running the workload.","type":"array","items":{"$ref":"#/components/schemas/EnvironmentVariable"},"maxItems":1000,"nullable":true},"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,"maxLength":63,"nullable":true,"pattern":".*"},"value":{"description":"The value of the environment variable. (mutually exclusive with secret, userCredential, configMap and podFieldRef)","type":"string","maxLength":10000,"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","nullable":true},"description":{"description":"Description of the environment variable.","type":"string","maxLength":250,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"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,"maxLength":253,"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,"maxLength":63,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"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","minLength":1,"maxLength":253,"nullable":true,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$"},"key":{"description":"The key in the config-map resource. (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"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","minLength":1,"maxLength":10000,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"EnvironmentVariableUserCredential":{"description":"Defines a reference to a user-created credential and a specific key within that credential whose value will populate the environment variable. User credentials can only be accessed by the user who created them.","properties":{"name":{"description":"The name of the user credential.  (mandatory)","type":"string","minLength":1,"maxLength":253,"nullable":true},"key":{"description":"The key in the user credential resource. (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true}},"nullable":true,"type":"object"},"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","minLength":1,"maxLength":253,"nullable":true,"pattern":".*"},"ImagePullPolicy":{"description":"Image pull policy. Defaults to `Always` if `:latest` tag is specified, otherwise it is `IfNotPresent`.","type":"string","minLength":1,"enum":["Always","Never","IfNotPresent"],"nullable":true},"ImagePullSecretsDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/ImagePullSecrets"}},"nullable":true,"type":"object"},"ImagePullSecrets":{"description":"A list of references to Kubernetes secrets in the same namespace used for pulling container images.","type":"array","items":{"$ref":"#/components/schemas/ImagePullSecret"},"maxItems":1000,"nullable":true},"ImagePullSecret":{"description":"A reference to a secret in the same namespace used to pull container images.","properties":{"name":{"type":"string","description":"The name of the Kubernetes secret containing the image pull credentials.","pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$","maxLength":253},"userCredential":{"type":"boolean","description":"Indicates whether the secret is a user credential. Set to true if the secret was created by the user and is only accessible by them.","nullable":true},"exclude":{"description":"Use 'true' in case the secret is defined in defaults of the policy, and you wish to exclude it from the workload.","type":"boolean","default":false,"nullable":true}},"nullable":true,"type":"object"},"LabelsDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/Labels"}},"nullable":true,"type":"object"},"Labels":{"description":"Set of labels to populate into the container running the workload.","type":"array","items":{"$ref":"#/components/schemas/Label"},"maxItems":1000,"nullable":true},"Label":{"description":"Label details to be populated into the container.","properties":{"name":{"description":"The name of the label (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":".*"},"value":{"description":"The value of the label.","type":"string","nullable":true,"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","nullable":true}},"nullable":true,"type":"object"},"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"},"maxItems":1000}},"nullable":true},"NodeSelectorTerm":{"type":"object","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"},"maxItems":1000}},"nullable":true},"MatchExpression":{"type":"object","description":"A selector that contains values, a key, and an operator that relates the key and values.","properties":{"key":{"description":"The label key that the selector applies to (mandatory).","type":"string","pattern":".*","maxLength":63},"operator":{"$ref":"#/components/schemas/MatchExpressionOperator"},"values":{"description":"An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer.","type":"array","items":{"type":"string","maxLength":10000,"pattern":".*"},"maxItems":1000}},"required":["key","operator"],"nullable":true},"MatchExpressionOperator":{"description":"Represents a key's relationship to a set of values (mandatory).","type":"string","enum":["In","NotIn","Exists","DoesNotExist","Gt","Lt"]},"NodeType2":{"deprecated":true,"description":"Deprecated: use a workload policy node selector to target node types instead. 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","minLength":1,"nullable":true,"pattern":".*"},"PodAffinity":{"description":"Pod affinity scheduling rules (e.g. co-locate this workload in the same node, zone, etc. as some other workloads).","type":"object","properties":{"type":{"$ref":"#/components/schemas/PodAffinityType"},"key":{"description":"The label key to use. (mandatory)","type":"string","nullable":true,"pattern":".*","maxLength":63}},"nullable":true},"PodAffinityType":{"description":"The affinity type, required or preferred. (mandatory)","type":"string","enum":["Required","Preferred"],"nullable":true},"Probes":{"description":"Probes are used to determine if the container is healthy and ready to accept traffic.","type":"object","properties":{"readiness":{"$ref":"#/components/schemas/Probe"}},"nullable":true},"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},"ProbeHandler":{"description":"The action taken to determine the health of the container. (mandatory)","type":"object","properties":{"httpGet":{"description":"An action based on HTTP Get requests.","type":"object","properties":{"path":{"description":"Path to access on the HTTP server, defaults to /.","type":"string","pattern":"^(\\x2F[a-zA-Z0-9\\-_.\\x2F]*)?$","nullable":true,"maxLength":2048},"port":{"description":"Number of the port to access on the container.","type":"integer","format":"int32","minimum":1,"maximum":65535,"nullable":true},"host":{"description":"Host name to connect to, defaults to the pod IP.","type":"string","format":"hostname","nullable":true,"pattern":".*","maxLength":253},"scheme":{"$ref":"#/components/schemas/ProbeHandlerScheme"}}}},"nullable":true},"ProbeHandlerScheme":{"description":"Scheme to use for connecting to the host, defaults to HTTP.","type":"string","enum":["HTTP","HTTPS"],"nullable":true},"DistributedInferenceLeaderWorkerDefaultsV2Security":{"title":"DistributedInferenceLeaderWorkerDefaultsV2Security","nullable":true,"properties":{"capabilities":{"$ref":"#/components/schemas/Capabilities"},"hostIpc":{"$ref":"#/components/schemas/HostIpc"},"hostNetwork":{"$ref":"#/components/schemas/HostNetwork"},"readOnlyRootFilesystem":{"$ref":"#/components/schemas/ReadOnlyRootFileSystem"},"runAsGid":{"$ref":"#/components/schemas/RunAsGid"},"runAsNonRoot":{"$ref":"#/components/schemas/RunAsNonRoot"},"runAsUid":{"$ref":"#/components/schemas/RunAsUid"},"seccompProfileType":{"$ref":"#/components/schemas/SeccompProfileType"},"supplementalGroups":{"$ref":"#/components/schemas/SupplementalGroups"},"uidGidSource":{"$ref":"#/components/schemas/UidGidSource"}},"type":"object"},"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"},"nullable":true},"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"]},"HostIpc":{"description":"Whether to enable host IPC. Defaults to false.","type":"boolean","nullable":true},"HostNetwork":{"description":"Whether to enable host networking. Default to false.","type":"boolean","nullable":true},"ReadOnlyRootFileSystem":{"description":"If true, mounts the container's root filesystem as read-only.","type":"boolean","nullable":true},"RunAsGid":{"description":"The group id to run the entrypoint of the container which executes the workspace. Default to the value specified in the environment asset `runAsGid` field (optional). Use only when the source uid/gid of the environment asset is not `fromTheImage`, and `overrideUidGidInWorkspace` is enabled.","type":"integer","format":"int64","nullable":true},"RunAsNonRoot":{"description":"Force the container to run as a non-root user.","type":"boolean","nullable":true},"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","format":"int64","nullable":true},"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","enum":["RuntimeDefault","Unconfined","Localhost"],"nullable":true},"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","nullable":true,"pattern":".*"},"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://run-ai-docs.nvidia.com/self-hosted/2.26/infrastructure-setup/advanced-setup/container-access/user-identity-in-containers).","type":"string","enum":["fromTheImage","fromIdpToken","custom"],"nullable":true},"ConfigMapsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/ConfigMapInstance"},"instances":{"$ref":"#/components/schemas/ConfigMapItems"}},"nullable":true,"type":"object"},"ConfigMapInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/ConfigMap"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"StorageInstanceName":{"properties":{"name":{"description":"unique name to identify the instance. primarily used for policy locked rules.","type":"string","minLength":1,"maxLength":63,"nullable":true}},"nullable":true,"type":"object"},"ConfigMap":{"properties":{"configMap":{"description":"The name of the ConfigMap resource. (mandatory)","type":"string","minLength":1,"maxLength":253,"nullable":true,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$"},"mountPath":{"description":"Local path within the workload to which the ConfigMap will be mapped to. (mandatory)","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"subPath":{"description":"Path within the volume from which the container's volume should be mounted.","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"defaultMode":{"$ref":"#/components/schemas/DefaultMode"}},"nullable":true,"type":"object"},"DefaultMode":{"type":"string","description":"File permission mode in octal string format. This value must be a 4-digit octal number, representing the default file mode when mounting a Secret or ConfigMap as a volume.\n","minLength":4,"maxLength":4,"pattern":"0[0-7]{3}","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,"nullable":true}},"type":"object","nullable":true},"ConfigMapItems":{"description":"Set of config map volumes to use in the workload","type":"array","items":{"$ref":"#/components/schemas/ConfigMapInstance"},"maxItems":1000,"nullable":true},"EmptyDirsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/EmptyDirInstance"},"instances":{"$ref":"#/components/schemas/EmptyDirItems"}},"nullable":true,"type":"object"},"EmptyDirInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/EmptyDir"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"EmptyDir":{"properties":{"path":{"description":"Local path within the workload to which the EmptyDir volume will be mapped. (mandatory)","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"medium":{"description":"The type of storage medium for the volume. Use \"Memory\" for memory-backed storage, or leave empty for disk-backed storage.","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":".*"},"sizeLimit":{"description":"The total amount of local storage or memory required for the emptyDir volume. Specify using Kubernetes quantity format (e.g., 1G, 500Mi).","type":"string","maxLength":63,"pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$","nullable":true}},"nullable":true,"type":"object"},"EmptyDirItems":{"description":"A list of emptyDir volumes to mount in the workload.","type":"array","items":{"$ref":"#/components/schemas/EmptyDirInstance"},"maxItems":1000,"nullable":true},"PvcsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/PvcInstance"},"instances":{"$ref":"#/components/schemas/PvcItems"}},"nullable":true,"type":"object"},"PvcInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/Pvc"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"Pvc":{"allOf":[{"$ref":"#/components/schemas/PvcFieldsUpdatable"},{"$ref":"#/components/schemas/PvcFieldsNonUpdatable"}]},"PvcFieldsUpdatable":{"properties":{"path":{"description":"Local path within the workload to which the PVC bucket will be mapped. (mandatory)","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"PvcFieldsNonUpdatable":{"properties":{"existingPvc":{"description":"Verify existing PVC. PVC is assumed to exist when set to `true`. If set to `false`, the PVC will be created, if it does not exist.","type":"boolean","default":false,"nullable":true},"claimName":{"description":"Name for the PVC. Allow referencing it across workloads. If not provided, a name based on the workload name and scope will be auto-generated.","type":"string","minLength":1,"maxLength":63,"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,"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,"nullable":true}},"nullable":true,"type":"object"},"ClaimInfo":{"description":"Claim information for the newly created PVC. The information should not be provided when attempting to use existing PVC.","properties":{"size":{"$ref":"#/components/schemas/PvcClaimSize"},"storageClass":{"description":"Storage class name to associate with the PVC. This parameter may be omitted if there is a single storage class in the system, or you are using the default storage class. For more information, see [Storage class](https://kubernetes.io/docs/concepts/storage/storage-classes).","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$"},"accessModes":{"$ref":"#/components/schemas/PvcAccessModes"},"volumeMode":{"$ref":"#/components/schemas/PvcVolumeMode"},"addedAttrValues":{"$ref":"#/components/schemas/PvcAddedAttrValues"}},"nullable":true,"type":"object"},"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]*)$","maxLength":63,"nullable":true},"PvcAccessModes":{"description":"Default access mode(s) applied to newly created PVCs unless explicitly overridden.","properties":{"readWriteOnce":{"description":"Mount the volume as read/write by a single node.","type":"boolean","default":true,"nullable":true},"readOnlyMany":{"description":"Mount the volume as read-only by many nodes.","type":"boolean","default":false,"nullable":true},"readWriteMany":{"description":"Mount the volume as read/write by many nodes.","type":"boolean","default":false,"nullable":true}},"nullable":true,"type":"object"},"PvcVolumeMode":{"description":"Default volume mode for the PVC. Choose between Filesystem (default) or Block.","type":"string","enum":["Filesystem","Block"],"nullable":true},"PvcAddedAttrValues":{"description":"an optional array of key-values pairs that are written as annotations on the created PVC. the allowed attributes are determined according to the storage class configuration (see k8s-objects-tracker for further info).","type":"array","items":{"$ref":"#/components/schemas/PvcAddedAttrValue"},"maxItems":1000},"PvcAddedAttrValue":{"type":"object","required":["key"],"properties":{"key":{"type":"string","minLength":1,"maxLength":63,"pattern":"^([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]$"},"value":{"type":"string","pattern":".*","maxLength":10000}}},"PvcItems":{"description":"Set of pvc persistent volume claims to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/PvcInstance"},"maxItems":1000,"nullable":true},"SecretsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/SecretInstance"},"instances":{"$ref":"#/components/schemas/SecretItems"}},"nullable":true,"type":"object"},"SecretInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/Secret"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"Secret":{"allOf":[{"$ref":"#/components/schemas/SecretFieldsUpdatable"},{"$ref":"#/components/schemas/SecretFieldsNonUpdatable"}]},"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"},"SecretFieldsNonUpdatable":{"properties":{"secret":{"description":"The name of the Secret resource. (mandatory)","type":"string","minLength":1,"nullable":true}},"nullable":true,"type":"object"},"SecretItems":{"description":"Set of secret volumes to use in the workload","type":"array","items":{"$ref":"#/components/schemas/SecretInstance"},"nullable":true},"TolerationsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/Toleration"},"instances":{"$ref":"#/components/schemas/Tolerations"}},"nullable":true,"type":"object"},"Toleration":{"description":"Toleration details.","properties":{"name":{"description":"The name of the toleration.","type":"string","minLength":1,"maxLength":253,"nullable":true,"pattern":".*"},"operator":{"$ref":"#/components/schemas/TolerationOperator"},"key":{"description":"The taint key that the toleration applies to. (mandatory)","type":"string","maxLength":253,"nullable":true,"pattern":".*"},"value":{"description":"The taint value the toleration matches to. Mandatory if operator is Exists, forbidden otherwise.","type":"string","maxLength":10000,"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","nullable":true}},"nullable":true,"type":"object"},"TolerationOperator":{"description":"A key's relationship to the value. Equal uses key and value. Exists is equivalent to wildcard for value, so that a workload can tolerate all taints of a particular category. (mandatory)","type":"string","enum":["Equal","Exists"],"nullable":true},"TolerationEffect":{"description":"The taint effect to match. (mandatory)","type":"string","enum":["NoSchedule","NoExecute","PreferNoSchedule","Any"],"nullable":true},"Tolerations":{"description":"Set of tolerations to apply to the workload.","type":"array","items":{"$ref":"#/components/schemas/Toleration"},"maxItems":1000,"nullable":true},"WorkingDir":{"description":"Container's working directory. If not specified, the container runtime default will be used. This may be configured in the container image.","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"DistributedInferenceWorkerDefaults":{"properties":{"worker":{"description":"Defines the pod specification for the workers. Required only if the number of workers is greater than 0.","allOf":[{"$ref":"#/components/schemas/DistributedInferenceLeaderWorkerDefaultsV2"}],"nullable":true,"type":"object"}}},"DistributedInferenceRulesV2":{"allOf":[{"$ref":"#/components/schemas/DistributedInferenceCommonRulesV2"},{"$ref":"#/components/schemas/DistributedInferenceLeaderRules"},{"$ref":"#/components/schemas/DistributedInferenceWorkerRules"}]},"DistributedInferenceCommonRulesV2":{"allOf":[{"nullable":true,"properties":{"category":{"$ref":"#/components/schemas/StringRules"},"nodePools":{"$ref":"#/components/schemas/ArrayRules"},"preemptibility":{"$ref":"#/components/schemas/PreemptibilityRules"},"priorityClass":{"$ref":"#/components/schemas/StringRules"},"restartPolicy":{"$ref":"#/components/schemas/DistributedInferenceRestartPolicyRules"},"servingPort":{"$ref":"#/components/schemas/DistributedInferenceServingPortRules"}},"type":"object"},{"$ref":"#/components/schemas/DistributedInferenceStartupPolicyFieldRules"},{"$ref":"#/components/schemas/DistributedInferenceWorkersFieldRules"},{"$ref":"#/components/schemas/DistributedInferenceReplicasFieldRules"}],"nullable":true,"type":"object"},"StringRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/StringRulesOptions"}],"nullable":true,"type":"object"},"StringRulesCommon":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory, default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable, default to true","type":"boolean","nullable":true},"blocked":{"description":"Blocks the field to prevent workloads from specifying any value for it.","type":"boolean","nullable":true}}},"SourceOfRule":{"description":"This field is used by the system along with effective rules, in order to specify the org unit from which this effective rule has been derived. It should be left empty when sending apply policy requests.","required":["scope"],"properties":{"scope":{"$ref":"#/components/schemas/ScopeType"},"projectId":{"$ref":"#/components/schemas/ProjectIdOptional"},"departmentId":{"$ref":"#/components/schemas/DepartmentIdOptional"},"clusterId":{"$ref":"#/components/schemas/ClusterIdOptional"},"isFallback":{"description":"source of this rule is the fallback policy","type":"boolean"}},"nullable":true,"type":"object"},"StringRulesOptions":{"properties":{"options":{"description":"Set of options that the value of the field must be chosen from.","type":"array","items":{"$ref":"#/components/schemas/StringOption"},"nullable":true}}},"StringOption":{"description":"One of the values that the field can be assigned to, when options police is applied on the field.","required":["value"],"properties":{"value":{"description":"The value that the field should hold","type":"string","pattern":".*"},"displayed":{"description":"Textual description of the value. to be used by user interface applications.","type":"string","nullable":true,"pattern":".*"}}},"ArrayRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether this array is mandatory. Mandatory array must include at least one item. default to false.","type":"boolean","nullable":true},"options":{"description":"Set of options that the value of each item of the array must be chosen from.","type":"array","items":{"$ref":"#/components/schemas/StringOption"}},"canEdit":{"description":"Whether the value of the array, as a whole, is editable. default to false.","type":"boolean","nullable":true}},"nullable":true,"type":"object"},"PreemptibilityRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/PreemptibilityOptions"}],"nullable":true,"type":"object"},"PreemptibilityOptions":{"properties":{"options":{"description":"Limit the permitted values for preemptibility to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/Preemptibility"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"DistributedInferenceRestartPolicyRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/DistributedInferenceRestartPolicyOptions"}],"nullable":true,"type":"object"},"DistributedInferenceRestartPolicyOptions":{"properties":{"options":{"description":"Limit the permitted values for restartPolicy to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/DistributedInferenceRestartPolicy"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"DistributedInferenceServingPortRules":{"description":"Defines the configuration for the inference serving endpoint. This determines how applications or services can send inference requests to the workload.","allOf":[{"$ref":"#/components/schemas/DistributedInferenceServingPortRulesProperties"}],"nullable":true,"type":"object"},"DistributedInferenceServingPortRulesProperties":{"properties":{"port":{"$ref":"#/components/schemas/IntegerRules"},"protocol":{"$ref":"#/components/schemas/StringRules"},"authorizationType":{"$ref":"#/components/schemas/DistributedInferenceServingPortAuthorizationTypeRules"},"authorizedUsers":{"$ref":"#/components/schemas/ArrayRules"},"authorizedGroups":{"$ref":"#/components/schemas/ArrayRules"},"exposeExternally":{"$ref":"#/components/schemas/BooleanRules"},"exposedUrl":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"IntegerRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory. default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"max":{"description":"The maximum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"step":{"description":"The minimal difference between two values the field can be assigned to. For example, min=2, max=10, step=2 implies that the values the field can hold are 2, 4, 6, 8 and 10.","type":"integer","format":"int32","nullable":true},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"DefaultFromRule":{"properties":{"field":{"description":"The default of this field is taken from another field, with optional factor. The specified field must belong to the same workload section (compute, security, etc). For itemized field, the value of the field will be taken from the same instance.","type":"string","nullable":true,"pattern":".*"},"factor":{"description":"Multiple the value of the fromField by this factor to get the value for this field For example, if factor is 2 and defaultFrom field has value of 8, the calculated default will be determined to be 16.","type":"number","format":"double","nullable":true,"default":1}},"nullable":true,"type":"object"},"DistributedInferenceServingPortAuthorizationTypeRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/DistributedInferenceServingPortAuthorizationTypeOptions"}],"nullable":true,"type":"object"},"DistributedInferenceServingPortAuthorizationTypeOptions":{"properties":{"options":{"type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/DistributedInferenceServingPortAccessAuthorizationTypeEnum"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"BooleanRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory. default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true}},"nullable":true,"type":"object"},"DistributedInferenceStartupPolicyFieldRules":{"properties":{"startupPolicy":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/DistributedInferenceStartupPolicyOptions"}],"nullable":true,"type":"object"}},"nullable":true,"type":"object"},"DistributedInferenceStartupPolicyOptions":{"properties":{"startupPolicy":{"$ref":"#/components/schemas/DistributedInferenceStartupPolicy"}},"nullable":true,"type":"object"},"DistributedInferenceWorkersFieldRules":{"properties":{"workers":{"$ref":"#/components/schemas/IntegerRules"}}},"DistributedInferenceReplicasFieldRules":{"properties":{"replicas":{"$ref":"#/components/schemas/IntegerRules"}}},"DistributedInferenceLeaderRules":{"properties":{"leader":{"description":"Defines the pod specification for the leader. Must always be provided, regardless of the number of workers.","allOf":[{"$ref":"#/components/schemas/DistributedInferenceLeaderWorkerRulesV2"}],"nullable":true,"type":"object"}}},"DistributedInferenceLeaderWorkerRulesV2":{"properties":{"annotations":{"$ref":"#/components/schemas/InstancesRules"},"args":{"$ref":"#/components/schemas/StringRules"},"command":{"$ref":"#/components/schemas/StringRules"},"compute":{"$ref":"#/components/schemas/SupersetRulesAllOfCompute"},"createHomeDir":{"$ref":"#/components/schemas/BooleanRules"},"environmentVariables":{"$ref":"#/components/schemas/InstancesRules"},"image":{"$ref":"#/components/schemas/StringRules"},"imagePullPolicy":{"$ref":"#/components/schemas/ImagePullPolicyRules"},"imagePullSecrets":{"$ref":"#/components/schemas/ImagePullSecretsRules"},"labels":{"$ref":"#/components/schemas/InstancesRules"},"nodeAffinityRequired":{"$ref":"#/components/schemas/ArbitraryRules"},"nodeType":{"$ref":"#/components/schemas/StringRules"},"podAffinity":{"$ref":"#/components/schemas/PodAffinityRules"},"probes":{"$ref":"#/components/schemas/ProbesRules"},"security":{"nullable":true,"properties":{"capabilities":{"$ref":"#/components/schemas/ArrayRules"},"hostIpc":{"$ref":"#/components/schemas/BooleanRules"},"hostNetwork":{"$ref":"#/components/schemas/BooleanRules"},"readOnlyRootFilesystem":{"$ref":"#/components/schemas/BooleanRules"},"runAsGid":{"$ref":"#/components/schemas/IntegerRulesOptional"},"runAsNonRoot":{"$ref":"#/components/schemas/BooleanRules"},"runAsUid":{"$ref":"#/components/schemas/IntegerRulesOptional"},"seccompProfileType":{"$ref":"#/components/schemas/SeccompProfileTypeRules"},"supplementalGroups":{"$ref":"#/components/schemas/StringRules"},"uidGidSource":{"$ref":"#/components/schemas/UidGidSourceRules"}},"type":"object"},"storage":{"nullable":true,"properties":{"configMapVolume":{"$ref":"#/components/schemas/ConfigMapsRules"},"emptyDirVolume":{"$ref":"#/components/schemas/EmptyDirsRules"},"pvc":{"$ref":"#/components/schemas/PvcsRules"},"secretVolume":{"$ref":"#/components/schemas/SecretsRules"}},"type":"object"},"tolerations":{"$ref":"#/components/schemas/TolerationsRules"},"workingDir":{"$ref":"#/components/schemas/StringRules"}},"type":"object"},"InstancesRules":{"properties":{"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ItemRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"canAdd":{"description":"Whether it is permitted to add items. Default to true.","type":"boolean","nullable":true},"locked":{"description":"Set of keys for items that are \"locked\", i.e. cannot be removed or deleted.","type":"array","items":{"type":"string"}}},"nullable":true,"type":"object"},"SupersetRulesAllOfCompute":{"title":"SupersetRulesAllOfCompute","nullable":true,"properties":{"cpuCoreLimit":{"$ref":"#/components/schemas/NumberRules"},"cpuCoreRequest":{"$ref":"#/components/schemas/NumberRules"},"cpuMemoryLimit":{"$ref":"#/components/schemas/QuantityRules"},"cpuMemoryRequest":{"$ref":"#/components/schemas/QuantityRules"},"extendedResources":{"$ref":"#/components/schemas/ExtendedResourcesRules"},"gpuDevicesRequest":{"$ref":"#/components/schemas/IntegerRules"},"gpuMemoryLimit":{"$ref":"#/components/schemas/QuantityRules"},"gpuMemoryRequest":{"$ref":"#/components/schemas/QuantityRules"},"gpuPortionLimit":{"$ref":"#/components/schemas/NumberRules"},"gpuPortionRequest":{"$ref":"#/components/schemas/NumberRules"},"gpuRequestType":{"$ref":"#/components/schemas/GpuRequestRules"},"largeShmRequest":{"$ref":"#/components/schemas/BooleanRules"}},"type":"object"},"NumberRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory. default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"number","nullable":true},"max":{"description":"The maximum value that the field can be assigned to.","type":"number","nullable":true},"step":{"description":"The minimal difference between two values the field can be assigned to. For example, min=2, max=3, step=0.25 implies that the values the field can hold are 2, 2.25, 2.5 and 3.","type":"number","nullable":true},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"QuantityRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory, default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable, default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"string","nullable":true,"pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"},"max":{"description":"The maximum value that the field can be assigned to.","type":"string","nullable":true,"pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"ExtendedResourcesRules":{"properties":{"attributes":{"$ref":"#/components/schemas/ExtendedResourceRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ExtendedResourceRules":{"description":"Rules for the attributes of extendedResources","properties":{"quantity":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"GpuRequestRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/GpuRequestOptions"}],"nullable":true,"type":"object"},"GpuRequestOptions":{"properties":{"options":{"description":"Limit the permitted values for gpuRequest to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/GpuRequestType"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ImagePullPolicyRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/ImagePullPolicyOptions"}],"nullable":true,"type":"object"},"ImagePullPolicyOptions":{"properties":{"options":{"description":"Limit the permitted values for imagePullPolicy to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/ImagePullPolicy"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ImagePullSecretsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/ImagePullSecretsRulesAttributes"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ImagePullSecretsRulesAttributes":{"description":"Rules for the attributes of imagePullSecrets","properties":{"name":{"$ref":"#/components/schemas/StringRules"},"userCredentials":{"$ref":"#/components/schemas/BooleanRules"}},"nullable":true,"type":"object"},"ArbitraryRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether this arbitrary object is mandatory. default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field, as a whole, is editable. default to false.","type":"boolean","nullable":true}},"nullable":true,"type":"object"},"PodAffinityRules":{"properties":{"type":{"$ref":"#/components/schemas/PodAffinityTypeRules"},"key":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"PodAffinityTypeRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/PodAffinityTypeOptions"}],"nullable":true,"type":"object"},"PodAffinityTypeOptions":{"properties":{"options":{"type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/PodAffinityType"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"type":"object"},"ProbesRules":{"properties":{"readiness":{"$ref":"#/components/schemas/ProbeRules"}},"nullable":true,"type":"object"},"ProbeRules":{"properties":{"initialDelaySeconds":{"$ref":"#/components/schemas/IntegerRules"},"periodSeconds":{"$ref":"#/components/schemas/IntegerRules"},"timeoutSeconds":{"$ref":"#/components/schemas/IntegerRules"},"successThreshold":{"$ref":"#/components/schemas/IntegerRules"},"failureThreshold":{"$ref":"#/components/schemas/IntegerRules"},"handler":{"$ref":"#/components/schemas/ProbeHandlerRules"}},"nullable":true,"type":"object"},"ProbeHandlerRules":{"properties":{"httpGet":{"properties":{"path":{"$ref":"#/components/schemas/StringRules"},"port":{"$ref":"#/components/schemas/IntegerRules"},"host":{"$ref":"#/components/schemas/StringRules"},"scheme":{"$ref":"#/components/schemas/StringRules"}}}},"nullable":true,"type":"object"},"IntegerRulesOptional":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"max":{"description":"The maximum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"step":{"description":"The minimal difference between two values the field can be assigned to. For example, min=2, max=10, step=2 implies that the values the field can hold are 2, 4, 6, 8 and 10.","type":"integer","format":"int32","nullable":true},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"SeccompProfileTypeRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/SeccompProfileTypeOptions"}],"nullable":true,"type":"object"},"SeccompProfileTypeOptions":{"properties":{"options":{"description":"Limit the permitted values for secompProfileType to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/SeccompProfileType"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"UidGidSourceRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/UidGidSourceOptions"}],"nullable":true,"type":"object"},"UidGidSourceOptions":{"properties":{"options":{"description":"Limit the permitted values for uidGidSource to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/UidGidSource"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ConfigMapsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/ConfigMapRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ConfigMapRules":{"properties":{"configMap":{"$ref":"#/components/schemas/StringRules"},"mountPath":{"$ref":"#/components/schemas/StringRules"},"subPath":{"$ref":"#/components/schemas/StringRules"},"defaultMode":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"EmptyDirsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/EmptyDirRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"EmptyDirRules":{"properties":{"path":{"$ref":"#/components/schemas/StringRules"},"medium":{"$ref":"#/components/schemas/StringRules"},"sizeLimit":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"PvcsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/PvcRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"PvcRules":{"properties":{"claimName":{"$ref":"#/components/schemas/StringRules"},"path":{"$ref":"#/components/schemas/StringRules"},"readOnly":{"$ref":"#/components/schemas/BooleanRules"},"claimInfo":{"$ref":"#/components/schemas/ClaimInfoRules"}},"nullable":true,"type":"object"},"ClaimInfoRules":{"properties":{"size":{"$ref":"#/components/schemas/StringRules"},"storageClass":{"$ref":"#/components/schemas/StringRules"},"accessModes":{"$ref":"#/components/schemas/PvcAccessModesRules"}},"nullable":true,"type":"object"},"PvcAccessModesRules":{"description":"Rules for access mode(s) for a newly created PVC.","properties":{"readWriteOnce":{"$ref":"#/components/schemas/BooleanRules"},"readOnlyMany":{"$ref":"#/components/schemas/BooleanRules"},"readWriteMany":{"$ref":"#/components/schemas/BooleanRules"}},"nullable":true,"type":"object"},"SecretsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/SecretRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"SecretRules":{"properties":{"secret":{"$ref":"#/components/schemas/StringRules"},"mountPath":{"$ref":"#/components/schemas/StringRules"},"defaultMode":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"TolerationsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/TolerationRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"TolerationRules":{"description":"Toleration details.","properties":{"operator":{"$ref":"#/components/schemas/TolerationOperatorRules"},"key":{"$ref":"#/components/schemas/StringRules"},"value":{"$ref":"#/components/schemas/StringRules"},"effect":{"$ref":"#/components/schemas/TolerationEffectRules"},"seconds":{"$ref":"#/components/schemas/IntegerRules"},"exclude":{"$ref":"#/components/schemas/BooleanRules"}},"nullable":true,"type":"object"},"TolerationOperatorRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/TolerationOperatorOptions"}],"nullable":true,"type":"object"},"TolerationOperatorOptions":{"properties":{"options":{"description":"Limit the permitted values for imagePullPolicy to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/TolerationOperator"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"TolerationEffectRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/TolerationEffectOptions"}],"nullable":true,"type":"object"},"TolerationEffectOptions":{"properties":{"options":{"description":"Limit the permitted values for imagePullPolicy to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/TolerationEffect"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"DistributedInferenceWorkerRules":{"properties":{"worker":{"description":"Defines the pod specification for the workers. Required only if the number of workers is greater than 0.","allOf":[{"$ref":"#/components/schemas/DistributedInferenceLeaderWorkerRulesV2"}],"nullable":true,"type":"object"}}},"DistributedInferenceImposedAssets":{"properties":{"leader":{"$ref":"#/components/schemas/ImposedAssets"},"worker":{"$ref":"#/components/schemas/ImposedAssets"}},"nullable":true,"type":"object"},"ImposedAssets":{"description":"a list of datasource assets to import into the policy. these datasources will be included in any workload that will be created in the scope of the policy.","type":"array","items":{"type":"string","format":"uuid"},"nullable":true},"PolicyValidationStatus":{"properties":{"validation":{"properties":{"errorMessage":{"pattern":".*","type":"string","description":"In case validation failed, holds the error message explaining the issue"}},"nullable":true,"type":"object"}},"nullable":true,"type":"object"},"Timestamp":{"description":"The time at which an event occurred. e.g. the time an effective policy has been updated","type":"string","minLength":1,"format":"date-time"},"Error":{"required":["code","message"],"properties":{"code":{"type":"integer","minimum":100,"maximum":599},"message":{"type":"string"},"details":{"type":"string"}}}},"responses":{"400BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401Unauthorized":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403Forbidden":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404NotFound":{"description":"The specified resource was not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503ServiceUnavailable":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/api/v2/policy/distributed-inferences":{"get":{"summary":"Get a distributed inference policy.","description":"Retrieve the details of a distributed inference policy for a given organizational unit.","operationId":"get_distributed_inference_policy_v2","tags":["Policy"],"parameters":[{"$ref":"#/components/parameters/PolicyScope"},{"$ref":"#/components/parameters/FilterByDepartment"},{"$ref":"#/components/parameters/FilterByProject"},{"$ref":"#/components/parameters/FilterByCluster"}],"responses":{"200":{"description":"Request completed successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DistributedInferencePolicyV2"}}}},"400":{"$ref":"#/components/responses/400BadRequest"},"401":{"$ref":"#/components/responses/401Unauthorized"},"403":{"$ref":"#/components/responses/403Forbidden"},"404":{"$ref":"#/components/responses/404NotFound"},"503":{"$ref":"#/components/responses/503ServiceUnavailable"}}}}}}
```

## Overwrite a distributed inference policy.

> Use to apply a distributed inference policy for a given organizational unit.

```json
{"openapi":"3.0.3","info":{"title":"NVIDIA Run:ai","version":"2.26"},"tags":[{"name":"Policy","description":"Policies allow administrators to impose restrictions and set default values for researcher workloads. \nRestrictions and default values can be placed on CPUs, GPUs, and other resources or entities. \nFor more information, see [Policies](https://run-ai-docs.nvidia.com/self-hosted/2.26/platform-management/policies/#introduction).\n"}],"servers":[{"url":"https://app.run.ai"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer authentication"}},"parameters":{"ValidateOnly":{"name":"validateOnly","in":"query","required":false,"description":"Validate the given policy payload without applying it","schema":{"type":"boolean"}},"ApproveClusterDeletion":{"name":"approveClusterDeletion","in":"query","required":false,"description":"Required when modifying or deleting a policy if the tenant includes one or more clusters running version 2.20 or earlier. In such cases, the platform must delete the policy from the affected clusters. This flag indicates that the administrator approves this deletion.","schema":{"type":"boolean"}}},"schemas":{"DistributedInferencePolicyOverwriteRequestV2":{"properties":{"meta":{"$ref":"#/components/schemas/PolicyCreationFields"},"policy":{"$ref":"#/components/schemas/DistributedInferencePolicyDefaultsAndRulesV2"}},"type":"object"},"PolicyCreationFields":{"required":["name","scope"],"properties":{"scope":{"$ref":"#/components/schemas/ScopeType"},"projectId":{"$ref":"#/components/schemas/ProjectIdOptional"},"departmentId":{"$ref":"#/components/schemas/DepartmentIdOptional"},"clusterId":{"$ref":"#/components/schemas/ClusterIdOptional"},"name":{"$ref":"#/components/schemas/PolicyName"}}},"ScopeType":{"type":"string","enum":["system","tenant","cluster","department","project"]},"ProjectIdOptional":{"description":"The id of the project.","type":"integer","format":"int32","nullable":true},"DepartmentIdOptional":{"description":"The id of the department.","type":"string","minLength":1,"nullable":true,"pattern":".*"},"ClusterIdOptional":{"description":"The id of the cluster.","type":"string","format":"uuid","minLength":1,"nullable":true},"PolicyName":{"description":"A chosen name for the policy.","type":"string","minLength":1,"pattern":".*"},"DistributedInferencePolicyDefaultsAndRulesV2":{"properties":{"defaults":{"allOf":[{"$ref":"#/components/schemas/DistributedInferenceDefaultsV2"}],"nullable":true,"type":"object"},"rules":{"allOf":[{"$ref":"#/components/schemas/DistributedInferenceRulesV2"}],"nullable":true,"type":"object"},"imposedAssets":{"$ref":"#/components/schemas/DistributedInferenceImposedAssets"},"status":{"$ref":"#/components/schemas/PolicyValidationStatus"}},"nullable":true,"type":"object"},"DistributedInferenceDefaultsV2":{"allOf":[{"$ref":"#/components/schemas/DistributedInferenceCommonDefaultsV2"},{"$ref":"#/components/schemas/DistributedInferenceLeaderDefaults"},{"$ref":"#/components/schemas/DistributedInferenceWorkerDefaults"}]},"DistributedInferenceCommonDefaultsV2":{"allOf":[{"nullable":true,"properties":{"category":{"$ref":"#/components/schemas/Category"},"nodePools":{"$ref":"#/components/schemas/NodePools"},"preemptibility":{"$ref":"#/components/schemas/Preemptibility"},"priorityClass":{"$ref":"#/components/schemas/PriorityClass"},"restartPolicy":{"$ref":"#/components/schemas/DistributedInferenceRestartPolicy"},"servingPort":{"$ref":"#/components/schemas/DistributedInferenceServingPort"}},"type":"object"},{"$ref":"#/components/schemas/DistributedInferenceStartupPolicyField"},{"$ref":"#/components/schemas/DistributedInferenceWorkersField"},{"$ref":"#/components/schemas/DistributedInferenceReplicasField"}],"nullable":true,"type":"object"},"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":".*"},"NodePools":{"description":"A prioritized list of node pools for the scheduler to run the workload on. The scheduler will always try to use the first node pool before moving to the next one if the first is not available.","type":"array","items":{"type":"string","maxLength":63,"pattern":".*"},"maxItems":1000,"nullable":true},"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","minLength":1,"enum":["preemptible","non-preemptible"],"nullable":true},"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","nullable":true,"pattern":".*"},"DistributedInferenceRestartPolicy":{"description":"Determines the behavior when a pod fails.\n- `RecreateGroupOnPodRestart`: Restarts all pods in the group if any pod fails.\n- `None`: No automatic restart behavior is applied.\n","type":"string","enum":["RecreateGroupOnPodRestart","None"],"nullable":true,"default":"RecreateGroupOnPodRestart"},"DistributedInferenceServingPort":{"description":"Defines the configuration for the inference serving endpoint. This determines how applications or services can send inference requests to the workload.","allOf":[{"$ref":"#/components/schemas/DistributedInferenceServingPortContainerAndProtocol"},{"$ref":"#/components/schemas/DistributedInferenceServingPortAccess"}],"nullable":true,"type":"object"},"DistributedInferenceServingPortContainerAndProtocol":{"properties":{"port":{"description":"The port exposed by the container running the distributed inference service.","type":"integer","format":"int32","minimum":1,"maximum":65535,"nullable":true},"protocol":{"$ref":"#/components/schemas/DistributedInferenceServingPortProtocol"}}},"DistributedInferenceServingPortProtocol":{"description":"The protocol used to access the port.","type":"string","enum":["http"],"nullable":true,"default":"http"},"DistributedInferenceServingPortAccess":{"properties":{"authorizationType":{"$ref":"#/components/schemas/DistributedInferenceServingPortAccessAuthorizationTypeEnum"},"authorizedUsers":{"description":"A list of users and service accounts allowed to send inference requests to the serving endpoint. `Note:` Cannot be used together with authorizedGroups.","type":"array","items":{"type":"string","pattern":".*"},"nullable":true},"authorizedGroups":{"description":"A list of user groups allowed to send inference requests to the serving endpoint. `Note:` Cannot be used together with authorizedUsers.","type":"array","items":{"type":"string","pattern":".*"},"nullable":true},"exposeExternally":{"description":"Indicates whether the inference serving endpoint should be accessible outside the cluster. If set to true, the endpoint will be exposed externally. To enable external access, your administrator must configure the cluster as described in the [inference requirements](https://run-ai-docs.nvidia.com/self-hosted/2.26/getting-started/installation/system-requirements#inference). section.","type":"boolean","nullable":true,"default":true},"exposedUrl":{"description":"The custom URL to use for the serving port. If empty (default), an autogenerated URL will be used.","type":"string","nullable":true,"pattern":".*"}}},"DistributedInferenceServingPortAccessAuthorizationTypeEnum":{"type":"string","description":"Specifies who can send inference requests to the serving endpoint:\n\nPossible values:\n- `public`: No authorization is required. (Default)\n- `authenticatedUsers`: Any NVIDIA Run:ai authenticated user and service account can send requests.\n- `authorizedUsers`: Only users listed in the authorizedUsers field can send requests.\n- `authorizedGroups`: Only members of user groups listed in the authorizedGroups field can send requests.\n","enum":["public","authenticatedUsers","authorizedUsers","authorizedGroups"],"nullable":true},"DistributedInferenceStartupPolicyField":{"properties":{"startupPolicy":{"$ref":"#/components/schemas/DistributedInferenceStartupPolicy"}},"nullable":true,"type":"object"},"DistributedInferenceStartupPolicy":{"description":"Determines when the worker pods should start during workload initialization. \n - `LeaderCreated`: Workers start after the leader pod is created.\n - `LeaderReady`: Workers start only after the leader pod is ready.\n","type":"string","enum":["LeaderCreated","LeaderReady"],"nullable":true,"default":"LeaderCreated"},"DistributedInferenceWorkersField":{"properties":{"workers":{"default":0,"description":"Specifies the number of worker nodes to run. If set to 0, only the leader node will run, and no worker pods will be created. In this case, worker spec is not required.","type":"integer","format":"int32","minimum":0,"maximum":1000,"nullable":true}}},"DistributedInferenceReplicasField":{"properties":{"replicas":{"default":1,"description":"Specifies the number of leader-worker sets to deploy. Each replica represents a group consisting of one leader pod and multiple worker pods. \nFor example, setting replicas: 3 will create 3 independent groups, each with its own leader and corresponding set of workers.\n","type":"integer","format":"int32","minimum":0,"maximum":1000,"nullable":true}}},"DistributedInferenceLeaderDefaults":{"properties":{"leader":{"description":"Defines the pod specification for the leader. Must always be provided, regardless of the number of workers.","allOf":[{"$ref":"#/components/schemas/DistributedInferenceLeaderWorkerDefaultsV2"}],"nullable":true,"type":"object"}}},"DistributedInferenceLeaderWorkerDefaultsV2":{"properties":{"annotations":{"$ref":"#/components/schemas/AnnotationsDefaults"},"args":{"$ref":"#/components/schemas/Args"},"command":{"$ref":"#/components/schemas/Command"},"compute":{"$ref":"#/components/schemas/SupersetDefaultsAllOfCompute"},"createHomeDir":{"$ref":"#/components/schemas/CreateHomeDir"},"environmentVariables":{"$ref":"#/components/schemas/EnvironmentVariablesDefaults"},"image":{"$ref":"#/components/schemas/Image"},"imagePullPolicy":{"$ref":"#/components/schemas/ImagePullPolicy"},"imagePullSecrets":{"$ref":"#/components/schemas/ImagePullSecretsDefaults"},"labels":{"$ref":"#/components/schemas/LabelsDefaults"},"nodeAffinityRequired":{"$ref":"#/components/schemas/NodeAffinityRequired"},"nodeType":{"$ref":"#/components/schemas/NodeType2"},"podAffinity":{"$ref":"#/components/schemas/PodAffinity"},"probes":{"$ref":"#/components/schemas/Probes"},"security":{"$ref":"#/components/schemas/DistributedInferenceLeaderWorkerDefaultsV2Security"},"storage":{"nullable":true,"properties":{"configMapVolume":{"$ref":"#/components/schemas/ConfigMapsDefaults"},"emptyDirVolume":{"$ref":"#/components/schemas/EmptyDirsDefaults"},"pvc":{"$ref":"#/components/schemas/PvcsDefaults"},"secretVolume":{"$ref":"#/components/schemas/SecretsDefaults"}},"type":"object"},"tolerations":{"$ref":"#/components/schemas/TolerationsDefaults"},"workingDir":{"$ref":"#/components/schemas/WorkingDir"}},"type":"object"},"AnnotationsDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/Annotations"}},"nullable":true,"type":"object"},"Annotations":{"description":"Set of annotations to populate into the container running the workload.","type":"array","items":{"$ref":"#/components/schemas/Annotation"},"maxItems":1000,"nullable":true},"Annotation":{"description":"Annotation details to be populated into the container.","properties":{"name":{"description":"The name of the annotation (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":".*"},"value":{"description":"The value of the annotation.","type":"string","maxLength":10000,"nullable":true,"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","default":false,"nullable":true}},"nullable":true,"type":"object"},"Args":{"description":"Arguments to the command that the container running the workload executes.","type":"string","minLength":1,"maxLength":10000,"nullable":true,"pattern":".*"},"Command":{"description":"A command to the server as the entry point of the container running the workload.","type":"string","minLength":1,"maxLength":10000,"nullable":true,"pattern":".*"},"SupersetDefaultsAllOfCompute":{"title":"SupersetDefaultsAllOfCompute","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/ExtendedResourcesDefaults"},"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"},"CpuCoreLimit":{"description":"Limitations on the number of CPUs consumed by the workload (0.5, 1, .etc). The system guarantees that this workload will not be able to consume more than this amount of CPUs.","format":"double","type":"number","nullable":true,"minimum":0},"CpuCoreRequest":{"description":"CPU units to allocate for the created workload (0.5, 1, .etc). The workload will receive at least this amount of CPU. Note that the workload will not be scheduled unless the system can guarantee this amount of CPUs to the workload.","format":"double","type":"number","nullable":true,"minimum":0},"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]*)$","maxLength":63,"nullable":true},"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","pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$","maxLength":63,"nullable":true},"ExtendedResourcesDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/ExtendedResource"},"instances":{"$ref":"#/components/schemas/ExtendedResources"}},"nullable":true,"type":"object"},"ExtendedResource":{"description":"Quantity of an extended resource.","properties":{"resource":{"description":"The name of the extended resource (mandatory)","type":"string","minLength":1,"maxLength":253,"nullable":true,"pattern":".*"},"quantity":{"description":"The requested quantity for the resource.","type":"string","minLength":1,"maxLength":63,"nullable":true,"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","nullable":true}},"nullable":true,"type":"object"},"ExtendedResources":{"description":"Extended resources and their quantity.","type":"array","items":{"$ref":"#/components/schemas/ExtendedResource"},"maxItems":1000,"nullable":true},"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","format":"int32","nullable":true,"minimum":0},"GpuMemoryLimit":{"description":"Limitation on the memory consumed by the workload, per GPU device. The system guarantees The gpuMemoryLimit must be no less than gpuMemoryRequest.","type":"string","pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$","maxLength":63,"nullable":true},"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]*)$","maxLength":63,"nullable":true},"GpuPortionLimit":{"description":"Limitations on the portion consumed by the workload, per GPU device. The system guarantees The gpuPotionLimit must be no less than the gpuPortionRequest.","type":"number","format":"double","nullable":true,"minimum":0},"GpuPortionRequest":{"description":"Required if and only if gpuRequestType is portion. States the portion of the GPU to allocate for the created workload, per GPU device, between 0 and 1. The default is no allocated GPUs.","type":"number","format":"double","nullable":true,"minimum":0},"GpuRequestType":{"description":"Sets the unit type for GPU resources requests. Stated in terms of portion or memory. Sets the unit type for other GPU request fields. If `gpuDevicesRequest > 1`, only `portion` is supported. If `gpuDeviceRequest = 1`, the request type can be stated as `portion` or `memory`.","type":"string","minLength":1,"enum":["portion","memory"],"nullable":true},"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","nullable":true},"CreateHomeDir":{"description":"When set to `true`, creates a home directory for the container.","type":"boolean","nullable":true},"EnvironmentVariablesDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/EnvironmentVariables"}},"nullable":true,"type":"object"},"EnvironmentVariables":{"description":"Set of environment variables to populate into the container running the workload.","type":"array","items":{"$ref":"#/components/schemas/EnvironmentVariable"},"maxItems":1000,"nullable":true},"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,"maxLength":63,"nullable":true,"pattern":".*"},"value":{"description":"The value of the environment variable. (mutually exclusive with secret, userCredential, configMap and podFieldRef)","type":"string","maxLength":10000,"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","nullable":true},"description":{"description":"Description of the environment variable.","type":"string","maxLength":250,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"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,"maxLength":253,"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,"maxLength":63,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"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","minLength":1,"maxLength":253,"nullable":true,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$"},"key":{"description":"The key in the config-map resource. (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"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","minLength":1,"maxLength":10000,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"EnvironmentVariableUserCredential":{"description":"Defines a reference to a user-created credential and a specific key within that credential whose value will populate the environment variable. User credentials can only be accessed by the user who created them.","properties":{"name":{"description":"The name of the user credential.  (mandatory)","type":"string","minLength":1,"maxLength":253,"nullable":true},"key":{"description":"The key in the user credential resource. (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true}},"nullable":true,"type":"object"},"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","minLength":1,"maxLength":253,"nullable":true,"pattern":".*"},"ImagePullPolicy":{"description":"Image pull policy. Defaults to `Always` if `:latest` tag is specified, otherwise it is `IfNotPresent`.","type":"string","minLength":1,"enum":["Always","Never","IfNotPresent"],"nullable":true},"ImagePullSecretsDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/ImagePullSecrets"}},"nullable":true,"type":"object"},"ImagePullSecrets":{"description":"A list of references to Kubernetes secrets in the same namespace used for pulling container images.","type":"array","items":{"$ref":"#/components/schemas/ImagePullSecret"},"maxItems":1000,"nullable":true},"ImagePullSecret":{"description":"A reference to a secret in the same namespace used to pull container images.","properties":{"name":{"type":"string","description":"The name of the Kubernetes secret containing the image pull credentials.","pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$","maxLength":253},"userCredential":{"type":"boolean","description":"Indicates whether the secret is a user credential. Set to true if the secret was created by the user and is only accessible by them.","nullable":true},"exclude":{"description":"Use 'true' in case the secret is defined in defaults of the policy, and you wish to exclude it from the workload.","type":"boolean","default":false,"nullable":true}},"nullable":true,"type":"object"},"LabelsDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/Labels"}},"nullable":true,"type":"object"},"Labels":{"description":"Set of labels to populate into the container running the workload.","type":"array","items":{"$ref":"#/components/schemas/Label"},"maxItems":1000,"nullable":true},"Label":{"description":"Label details to be populated into the container.","properties":{"name":{"description":"The name of the label (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":".*"},"value":{"description":"The value of the label.","type":"string","nullable":true,"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","nullable":true}},"nullable":true,"type":"object"},"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"},"maxItems":1000}},"nullable":true},"NodeSelectorTerm":{"type":"object","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"},"maxItems":1000}},"nullable":true},"MatchExpression":{"type":"object","description":"A selector that contains values, a key, and an operator that relates the key and values.","properties":{"key":{"description":"The label key that the selector applies to (mandatory).","type":"string","pattern":".*","maxLength":63},"operator":{"$ref":"#/components/schemas/MatchExpressionOperator"},"values":{"description":"An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer.","type":"array","items":{"type":"string","maxLength":10000,"pattern":".*"},"maxItems":1000}},"required":["key","operator"],"nullable":true},"MatchExpressionOperator":{"description":"Represents a key's relationship to a set of values (mandatory).","type":"string","enum":["In","NotIn","Exists","DoesNotExist","Gt","Lt"]},"NodeType2":{"deprecated":true,"description":"Deprecated: use a workload policy node selector to target node types instead. 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","minLength":1,"nullable":true,"pattern":".*"},"PodAffinity":{"description":"Pod affinity scheduling rules (e.g. co-locate this workload in the same node, zone, etc. as some other workloads).","type":"object","properties":{"type":{"$ref":"#/components/schemas/PodAffinityType"},"key":{"description":"The label key to use. (mandatory)","type":"string","nullable":true,"pattern":".*","maxLength":63}},"nullable":true},"PodAffinityType":{"description":"The affinity type, required or preferred. (mandatory)","type":"string","enum":["Required","Preferred"],"nullable":true},"Probes":{"description":"Probes are used to determine if the container is healthy and ready to accept traffic.","type":"object","properties":{"readiness":{"$ref":"#/components/schemas/Probe"}},"nullable":true},"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},"ProbeHandler":{"description":"The action taken to determine the health of the container. (mandatory)","type":"object","properties":{"httpGet":{"description":"An action based on HTTP Get requests.","type":"object","properties":{"path":{"description":"Path to access on the HTTP server, defaults to /.","type":"string","pattern":"^(\\x2F[a-zA-Z0-9\\-_.\\x2F]*)?$","nullable":true,"maxLength":2048},"port":{"description":"Number of the port to access on the container.","type":"integer","format":"int32","minimum":1,"maximum":65535,"nullable":true},"host":{"description":"Host name to connect to, defaults to the pod IP.","type":"string","format":"hostname","nullable":true,"pattern":".*","maxLength":253},"scheme":{"$ref":"#/components/schemas/ProbeHandlerScheme"}}}},"nullable":true},"ProbeHandlerScheme":{"description":"Scheme to use for connecting to the host, defaults to HTTP.","type":"string","enum":["HTTP","HTTPS"],"nullable":true},"DistributedInferenceLeaderWorkerDefaultsV2Security":{"title":"DistributedInferenceLeaderWorkerDefaultsV2Security","nullable":true,"properties":{"capabilities":{"$ref":"#/components/schemas/Capabilities"},"hostIpc":{"$ref":"#/components/schemas/HostIpc"},"hostNetwork":{"$ref":"#/components/schemas/HostNetwork"},"readOnlyRootFilesystem":{"$ref":"#/components/schemas/ReadOnlyRootFileSystem"},"runAsGid":{"$ref":"#/components/schemas/RunAsGid"},"runAsNonRoot":{"$ref":"#/components/schemas/RunAsNonRoot"},"runAsUid":{"$ref":"#/components/schemas/RunAsUid"},"seccompProfileType":{"$ref":"#/components/schemas/SeccompProfileType"},"supplementalGroups":{"$ref":"#/components/schemas/SupplementalGroups"},"uidGidSource":{"$ref":"#/components/schemas/UidGidSource"}},"type":"object"},"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"},"nullable":true},"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"]},"HostIpc":{"description":"Whether to enable host IPC. Defaults to false.","type":"boolean","nullable":true},"HostNetwork":{"description":"Whether to enable host networking. Default to false.","type":"boolean","nullable":true},"ReadOnlyRootFileSystem":{"description":"If true, mounts the container's root filesystem as read-only.","type":"boolean","nullable":true},"RunAsGid":{"description":"The group id to run the entrypoint of the container which executes the workspace. Default to the value specified in the environment asset `runAsGid` field (optional). Use only when the source uid/gid of the environment asset is not `fromTheImage`, and `overrideUidGidInWorkspace` is enabled.","type":"integer","format":"int64","nullable":true},"RunAsNonRoot":{"description":"Force the container to run as a non-root user.","type":"boolean","nullable":true},"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","format":"int64","nullable":true},"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","enum":["RuntimeDefault","Unconfined","Localhost"],"nullable":true},"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","nullable":true,"pattern":".*"},"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://run-ai-docs.nvidia.com/self-hosted/2.26/infrastructure-setup/advanced-setup/container-access/user-identity-in-containers).","type":"string","enum":["fromTheImage","fromIdpToken","custom"],"nullable":true},"ConfigMapsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/ConfigMapInstance"},"instances":{"$ref":"#/components/schemas/ConfigMapItems"}},"nullable":true,"type":"object"},"ConfigMapInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/ConfigMap"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"StorageInstanceName":{"properties":{"name":{"description":"unique name to identify the instance. primarily used for policy locked rules.","type":"string","minLength":1,"maxLength":63,"nullable":true}},"nullable":true,"type":"object"},"ConfigMap":{"properties":{"configMap":{"description":"The name of the ConfigMap resource. (mandatory)","type":"string","minLength":1,"maxLength":253,"nullable":true,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$"},"mountPath":{"description":"Local path within the workload to which the ConfigMap will be mapped to. (mandatory)","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"subPath":{"description":"Path within the volume from which the container's volume should be mounted.","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"defaultMode":{"$ref":"#/components/schemas/DefaultMode"}},"nullable":true,"type":"object"},"DefaultMode":{"type":"string","description":"File permission mode in octal string format. This value must be a 4-digit octal number, representing the default file mode when mounting a Secret or ConfigMap as a volume.\n","minLength":4,"maxLength":4,"pattern":"0[0-7]{3}","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,"nullable":true}},"type":"object","nullable":true},"ConfigMapItems":{"description":"Set of config map volumes to use in the workload","type":"array","items":{"$ref":"#/components/schemas/ConfigMapInstance"},"maxItems":1000,"nullable":true},"EmptyDirsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/EmptyDirInstance"},"instances":{"$ref":"#/components/schemas/EmptyDirItems"}},"nullable":true,"type":"object"},"EmptyDirInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/EmptyDir"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"EmptyDir":{"properties":{"path":{"description":"Local path within the workload to which the EmptyDir volume will be mapped. (mandatory)","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"medium":{"description":"The type of storage medium for the volume. Use \"Memory\" for memory-backed storage, or leave empty for disk-backed storage.","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":".*"},"sizeLimit":{"description":"The total amount of local storage or memory required for the emptyDir volume. Specify using Kubernetes quantity format (e.g., 1G, 500Mi).","type":"string","maxLength":63,"pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$","nullable":true}},"nullable":true,"type":"object"},"EmptyDirItems":{"description":"A list of emptyDir volumes to mount in the workload.","type":"array","items":{"$ref":"#/components/schemas/EmptyDirInstance"},"maxItems":1000,"nullable":true},"PvcsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/PvcInstance"},"instances":{"$ref":"#/components/schemas/PvcItems"}},"nullable":true,"type":"object"},"PvcInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/Pvc"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"Pvc":{"allOf":[{"$ref":"#/components/schemas/PvcFieldsUpdatable"},{"$ref":"#/components/schemas/PvcFieldsNonUpdatable"}]},"PvcFieldsUpdatable":{"properties":{"path":{"description":"Local path within the workload to which the PVC bucket will be mapped. (mandatory)","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"PvcFieldsNonUpdatable":{"properties":{"existingPvc":{"description":"Verify existing PVC. PVC is assumed to exist when set to `true`. If set to `false`, the PVC will be created, if it does not exist.","type":"boolean","default":false,"nullable":true},"claimName":{"description":"Name for the PVC. Allow referencing it across workloads. If not provided, a name based on the workload name and scope will be auto-generated.","type":"string","minLength":1,"maxLength":63,"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,"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,"nullable":true}},"nullable":true,"type":"object"},"ClaimInfo":{"description":"Claim information for the newly created PVC. The information should not be provided when attempting to use existing PVC.","properties":{"size":{"$ref":"#/components/schemas/PvcClaimSize"},"storageClass":{"description":"Storage class name to associate with the PVC. This parameter may be omitted if there is a single storage class in the system, or you are using the default storage class. For more information, see [Storage class](https://kubernetes.io/docs/concepts/storage/storage-classes).","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$"},"accessModes":{"$ref":"#/components/schemas/PvcAccessModes"},"volumeMode":{"$ref":"#/components/schemas/PvcVolumeMode"},"addedAttrValues":{"$ref":"#/components/schemas/PvcAddedAttrValues"}},"nullable":true,"type":"object"},"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]*)$","maxLength":63,"nullable":true},"PvcAccessModes":{"description":"Default access mode(s) applied to newly created PVCs unless explicitly overridden.","properties":{"readWriteOnce":{"description":"Mount the volume as read/write by a single node.","type":"boolean","default":true,"nullable":true},"readOnlyMany":{"description":"Mount the volume as read-only by many nodes.","type":"boolean","default":false,"nullable":true},"readWriteMany":{"description":"Mount the volume as read/write by many nodes.","type":"boolean","default":false,"nullable":true}},"nullable":true,"type":"object"},"PvcVolumeMode":{"description":"Default volume mode for the PVC. Choose between Filesystem (default) or Block.","type":"string","enum":["Filesystem","Block"],"nullable":true},"PvcAddedAttrValues":{"description":"an optional array of key-values pairs that are written as annotations on the created PVC. the allowed attributes are determined according to the storage class configuration (see k8s-objects-tracker for further info).","type":"array","items":{"$ref":"#/components/schemas/PvcAddedAttrValue"},"maxItems":1000},"PvcAddedAttrValue":{"type":"object","required":["key"],"properties":{"key":{"type":"string","minLength":1,"maxLength":63,"pattern":"^([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]$"},"value":{"type":"string","pattern":".*","maxLength":10000}}},"PvcItems":{"description":"Set of pvc persistent volume claims to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/PvcInstance"},"maxItems":1000,"nullable":true},"SecretsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/SecretInstance"},"instances":{"$ref":"#/components/schemas/SecretItems"}},"nullable":true,"type":"object"},"SecretInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/Secret"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"Secret":{"allOf":[{"$ref":"#/components/schemas/SecretFieldsUpdatable"},{"$ref":"#/components/schemas/SecretFieldsNonUpdatable"}]},"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"},"SecretFieldsNonUpdatable":{"properties":{"secret":{"description":"The name of the Secret resource. (mandatory)","type":"string","minLength":1,"nullable":true}},"nullable":true,"type":"object"},"SecretItems":{"description":"Set of secret volumes to use in the workload","type":"array","items":{"$ref":"#/components/schemas/SecretInstance"},"nullable":true},"TolerationsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/Toleration"},"instances":{"$ref":"#/components/schemas/Tolerations"}},"nullable":true,"type":"object"},"Toleration":{"description":"Toleration details.","properties":{"name":{"description":"The name of the toleration.","type":"string","minLength":1,"maxLength":253,"nullable":true,"pattern":".*"},"operator":{"$ref":"#/components/schemas/TolerationOperator"},"key":{"description":"The taint key that the toleration applies to. (mandatory)","type":"string","maxLength":253,"nullable":true,"pattern":".*"},"value":{"description":"The taint value the toleration matches to. Mandatory if operator is Exists, forbidden otherwise.","type":"string","maxLength":10000,"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","nullable":true}},"nullable":true,"type":"object"},"TolerationOperator":{"description":"A key's relationship to the value. Equal uses key and value. Exists is equivalent to wildcard for value, so that a workload can tolerate all taints of a particular category. (mandatory)","type":"string","enum":["Equal","Exists"],"nullable":true},"TolerationEffect":{"description":"The taint effect to match. (mandatory)","type":"string","enum":["NoSchedule","NoExecute","PreferNoSchedule","Any"],"nullable":true},"Tolerations":{"description":"Set of tolerations to apply to the workload.","type":"array","items":{"$ref":"#/components/schemas/Toleration"},"maxItems":1000,"nullable":true},"WorkingDir":{"description":"Container's working directory. If not specified, the container runtime default will be used. This may be configured in the container image.","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"DistributedInferenceWorkerDefaults":{"properties":{"worker":{"description":"Defines the pod specification for the workers. Required only if the number of workers is greater than 0.","allOf":[{"$ref":"#/components/schemas/DistributedInferenceLeaderWorkerDefaultsV2"}],"nullable":true,"type":"object"}}},"DistributedInferenceRulesV2":{"allOf":[{"$ref":"#/components/schemas/DistributedInferenceCommonRulesV2"},{"$ref":"#/components/schemas/DistributedInferenceLeaderRules"},{"$ref":"#/components/schemas/DistributedInferenceWorkerRules"}]},"DistributedInferenceCommonRulesV2":{"allOf":[{"nullable":true,"properties":{"category":{"$ref":"#/components/schemas/StringRules"},"nodePools":{"$ref":"#/components/schemas/ArrayRules"},"preemptibility":{"$ref":"#/components/schemas/PreemptibilityRules"},"priorityClass":{"$ref":"#/components/schemas/StringRules"},"restartPolicy":{"$ref":"#/components/schemas/DistributedInferenceRestartPolicyRules"},"servingPort":{"$ref":"#/components/schemas/DistributedInferenceServingPortRules"}},"type":"object"},{"$ref":"#/components/schemas/DistributedInferenceStartupPolicyFieldRules"},{"$ref":"#/components/schemas/DistributedInferenceWorkersFieldRules"},{"$ref":"#/components/schemas/DistributedInferenceReplicasFieldRules"}],"nullable":true,"type":"object"},"StringRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/StringRulesOptions"}],"nullable":true,"type":"object"},"StringRulesCommon":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory, default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable, default to true","type":"boolean","nullable":true},"blocked":{"description":"Blocks the field to prevent workloads from specifying any value for it.","type":"boolean","nullable":true}}},"SourceOfRule":{"description":"This field is used by the system along with effective rules, in order to specify the org unit from which this effective rule has been derived. It should be left empty when sending apply policy requests.","required":["scope"],"properties":{"scope":{"$ref":"#/components/schemas/ScopeType"},"projectId":{"$ref":"#/components/schemas/ProjectIdOptional"},"departmentId":{"$ref":"#/components/schemas/DepartmentIdOptional"},"clusterId":{"$ref":"#/components/schemas/ClusterIdOptional"},"isFallback":{"description":"source of this rule is the fallback policy","type":"boolean"}},"nullable":true,"type":"object"},"StringRulesOptions":{"properties":{"options":{"description":"Set of options that the value of the field must be chosen from.","type":"array","items":{"$ref":"#/components/schemas/StringOption"},"nullable":true}}},"StringOption":{"description":"One of the values that the field can be assigned to, when options police is applied on the field.","required":["value"],"properties":{"value":{"description":"The value that the field should hold","type":"string","pattern":".*"},"displayed":{"description":"Textual description of the value. to be used by user interface applications.","type":"string","nullable":true,"pattern":".*"}}},"ArrayRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether this array is mandatory. Mandatory array must include at least one item. default to false.","type":"boolean","nullable":true},"options":{"description":"Set of options that the value of each item of the array must be chosen from.","type":"array","items":{"$ref":"#/components/schemas/StringOption"}},"canEdit":{"description":"Whether the value of the array, as a whole, is editable. default to false.","type":"boolean","nullable":true}},"nullable":true,"type":"object"},"PreemptibilityRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/PreemptibilityOptions"}],"nullable":true,"type":"object"},"PreemptibilityOptions":{"properties":{"options":{"description":"Limit the permitted values for preemptibility to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/Preemptibility"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"DistributedInferenceRestartPolicyRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/DistributedInferenceRestartPolicyOptions"}],"nullable":true,"type":"object"},"DistributedInferenceRestartPolicyOptions":{"properties":{"options":{"description":"Limit the permitted values for restartPolicy to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/DistributedInferenceRestartPolicy"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"DistributedInferenceServingPortRules":{"description":"Defines the configuration for the inference serving endpoint. This determines how applications or services can send inference requests to the workload.","allOf":[{"$ref":"#/components/schemas/DistributedInferenceServingPortRulesProperties"}],"nullable":true,"type":"object"},"DistributedInferenceServingPortRulesProperties":{"properties":{"port":{"$ref":"#/components/schemas/IntegerRules"},"protocol":{"$ref":"#/components/schemas/StringRules"},"authorizationType":{"$ref":"#/components/schemas/DistributedInferenceServingPortAuthorizationTypeRules"},"authorizedUsers":{"$ref":"#/components/schemas/ArrayRules"},"authorizedGroups":{"$ref":"#/components/schemas/ArrayRules"},"exposeExternally":{"$ref":"#/components/schemas/BooleanRules"},"exposedUrl":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"IntegerRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory. default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"max":{"description":"The maximum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"step":{"description":"The minimal difference between two values the field can be assigned to. For example, min=2, max=10, step=2 implies that the values the field can hold are 2, 4, 6, 8 and 10.","type":"integer","format":"int32","nullable":true},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"DefaultFromRule":{"properties":{"field":{"description":"The default of this field is taken from another field, with optional factor. The specified field must belong to the same workload section (compute, security, etc). For itemized field, the value of the field will be taken from the same instance.","type":"string","nullable":true,"pattern":".*"},"factor":{"description":"Multiple the value of the fromField by this factor to get the value for this field For example, if factor is 2 and defaultFrom field has value of 8, the calculated default will be determined to be 16.","type":"number","format":"double","nullable":true,"default":1}},"nullable":true,"type":"object"},"DistributedInferenceServingPortAuthorizationTypeRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/DistributedInferenceServingPortAuthorizationTypeOptions"}],"nullable":true,"type":"object"},"DistributedInferenceServingPortAuthorizationTypeOptions":{"properties":{"options":{"type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/DistributedInferenceServingPortAccessAuthorizationTypeEnum"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"BooleanRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory. default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true}},"nullable":true,"type":"object"},"DistributedInferenceStartupPolicyFieldRules":{"properties":{"startupPolicy":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/DistributedInferenceStartupPolicyOptions"}],"nullable":true,"type":"object"}},"nullable":true,"type":"object"},"DistributedInferenceStartupPolicyOptions":{"properties":{"startupPolicy":{"$ref":"#/components/schemas/DistributedInferenceStartupPolicy"}},"nullable":true,"type":"object"},"DistributedInferenceWorkersFieldRules":{"properties":{"workers":{"$ref":"#/components/schemas/IntegerRules"}}},"DistributedInferenceReplicasFieldRules":{"properties":{"replicas":{"$ref":"#/components/schemas/IntegerRules"}}},"DistributedInferenceLeaderRules":{"properties":{"leader":{"description":"Defines the pod specification for the leader. Must always be provided, regardless of the number of workers.","allOf":[{"$ref":"#/components/schemas/DistributedInferenceLeaderWorkerRulesV2"}],"nullable":true,"type":"object"}}},"DistributedInferenceLeaderWorkerRulesV2":{"properties":{"annotations":{"$ref":"#/components/schemas/InstancesRules"},"args":{"$ref":"#/components/schemas/StringRules"},"command":{"$ref":"#/components/schemas/StringRules"},"compute":{"$ref":"#/components/schemas/SupersetRulesAllOfCompute"},"createHomeDir":{"$ref":"#/components/schemas/BooleanRules"},"environmentVariables":{"$ref":"#/components/schemas/InstancesRules"},"image":{"$ref":"#/components/schemas/StringRules"},"imagePullPolicy":{"$ref":"#/components/schemas/ImagePullPolicyRules"},"imagePullSecrets":{"$ref":"#/components/schemas/ImagePullSecretsRules"},"labels":{"$ref":"#/components/schemas/InstancesRules"},"nodeAffinityRequired":{"$ref":"#/components/schemas/ArbitraryRules"},"nodeType":{"$ref":"#/components/schemas/StringRules"},"podAffinity":{"$ref":"#/components/schemas/PodAffinityRules"},"probes":{"$ref":"#/components/schemas/ProbesRules"},"security":{"nullable":true,"properties":{"capabilities":{"$ref":"#/components/schemas/ArrayRules"},"hostIpc":{"$ref":"#/components/schemas/BooleanRules"},"hostNetwork":{"$ref":"#/components/schemas/BooleanRules"},"readOnlyRootFilesystem":{"$ref":"#/components/schemas/BooleanRules"},"runAsGid":{"$ref":"#/components/schemas/IntegerRulesOptional"},"runAsNonRoot":{"$ref":"#/components/schemas/BooleanRules"},"runAsUid":{"$ref":"#/components/schemas/IntegerRulesOptional"},"seccompProfileType":{"$ref":"#/components/schemas/SeccompProfileTypeRules"},"supplementalGroups":{"$ref":"#/components/schemas/StringRules"},"uidGidSource":{"$ref":"#/components/schemas/UidGidSourceRules"}},"type":"object"},"storage":{"nullable":true,"properties":{"configMapVolume":{"$ref":"#/components/schemas/ConfigMapsRules"},"emptyDirVolume":{"$ref":"#/components/schemas/EmptyDirsRules"},"pvc":{"$ref":"#/components/schemas/PvcsRules"},"secretVolume":{"$ref":"#/components/schemas/SecretsRules"}},"type":"object"},"tolerations":{"$ref":"#/components/schemas/TolerationsRules"},"workingDir":{"$ref":"#/components/schemas/StringRules"}},"type":"object"},"InstancesRules":{"properties":{"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ItemRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"canAdd":{"description":"Whether it is permitted to add items. Default to true.","type":"boolean","nullable":true},"locked":{"description":"Set of keys for items that are \"locked\", i.e. cannot be removed or deleted.","type":"array","items":{"type":"string"}}},"nullable":true,"type":"object"},"SupersetRulesAllOfCompute":{"title":"SupersetRulesAllOfCompute","nullable":true,"properties":{"cpuCoreLimit":{"$ref":"#/components/schemas/NumberRules"},"cpuCoreRequest":{"$ref":"#/components/schemas/NumberRules"},"cpuMemoryLimit":{"$ref":"#/components/schemas/QuantityRules"},"cpuMemoryRequest":{"$ref":"#/components/schemas/QuantityRules"},"extendedResources":{"$ref":"#/components/schemas/ExtendedResourcesRules"},"gpuDevicesRequest":{"$ref":"#/components/schemas/IntegerRules"},"gpuMemoryLimit":{"$ref":"#/components/schemas/QuantityRules"},"gpuMemoryRequest":{"$ref":"#/components/schemas/QuantityRules"},"gpuPortionLimit":{"$ref":"#/components/schemas/NumberRules"},"gpuPortionRequest":{"$ref":"#/components/schemas/NumberRules"},"gpuRequestType":{"$ref":"#/components/schemas/GpuRequestRules"},"largeShmRequest":{"$ref":"#/components/schemas/BooleanRules"}},"type":"object"},"NumberRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory. default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"number","nullable":true},"max":{"description":"The maximum value that the field can be assigned to.","type":"number","nullable":true},"step":{"description":"The minimal difference between two values the field can be assigned to. For example, min=2, max=3, step=0.25 implies that the values the field can hold are 2, 2.25, 2.5 and 3.","type":"number","nullable":true},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"QuantityRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory, default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable, default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"string","nullable":true,"pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"},"max":{"description":"The maximum value that the field can be assigned to.","type":"string","nullable":true,"pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"ExtendedResourcesRules":{"properties":{"attributes":{"$ref":"#/components/schemas/ExtendedResourceRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ExtendedResourceRules":{"description":"Rules for the attributes of extendedResources","properties":{"quantity":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"GpuRequestRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/GpuRequestOptions"}],"nullable":true,"type":"object"},"GpuRequestOptions":{"properties":{"options":{"description":"Limit the permitted values for gpuRequest to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/GpuRequestType"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ImagePullPolicyRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/ImagePullPolicyOptions"}],"nullable":true,"type":"object"},"ImagePullPolicyOptions":{"properties":{"options":{"description":"Limit the permitted values for imagePullPolicy to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/ImagePullPolicy"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ImagePullSecretsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/ImagePullSecretsRulesAttributes"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ImagePullSecretsRulesAttributes":{"description":"Rules for the attributes of imagePullSecrets","properties":{"name":{"$ref":"#/components/schemas/StringRules"},"userCredentials":{"$ref":"#/components/schemas/BooleanRules"}},"nullable":true,"type":"object"},"ArbitraryRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether this arbitrary object is mandatory. default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field, as a whole, is editable. default to false.","type":"boolean","nullable":true}},"nullable":true,"type":"object"},"PodAffinityRules":{"properties":{"type":{"$ref":"#/components/schemas/PodAffinityTypeRules"},"key":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"PodAffinityTypeRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/PodAffinityTypeOptions"}],"nullable":true,"type":"object"},"PodAffinityTypeOptions":{"properties":{"options":{"type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/PodAffinityType"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"type":"object"},"ProbesRules":{"properties":{"readiness":{"$ref":"#/components/schemas/ProbeRules"}},"nullable":true,"type":"object"},"ProbeRules":{"properties":{"initialDelaySeconds":{"$ref":"#/components/schemas/IntegerRules"},"periodSeconds":{"$ref":"#/components/schemas/IntegerRules"},"timeoutSeconds":{"$ref":"#/components/schemas/IntegerRules"},"successThreshold":{"$ref":"#/components/schemas/IntegerRules"},"failureThreshold":{"$ref":"#/components/schemas/IntegerRules"},"handler":{"$ref":"#/components/schemas/ProbeHandlerRules"}},"nullable":true,"type":"object"},"ProbeHandlerRules":{"properties":{"httpGet":{"properties":{"path":{"$ref":"#/components/schemas/StringRules"},"port":{"$ref":"#/components/schemas/IntegerRules"},"host":{"$ref":"#/components/schemas/StringRules"},"scheme":{"$ref":"#/components/schemas/StringRules"}}}},"nullable":true,"type":"object"},"IntegerRulesOptional":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"max":{"description":"The maximum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"step":{"description":"The minimal difference between two values the field can be assigned to. For example, min=2, max=10, step=2 implies that the values the field can hold are 2, 4, 6, 8 and 10.","type":"integer","format":"int32","nullable":true},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"SeccompProfileTypeRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/SeccompProfileTypeOptions"}],"nullable":true,"type":"object"},"SeccompProfileTypeOptions":{"properties":{"options":{"description":"Limit the permitted values for secompProfileType to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/SeccompProfileType"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"UidGidSourceRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/UidGidSourceOptions"}],"nullable":true,"type":"object"},"UidGidSourceOptions":{"properties":{"options":{"description":"Limit the permitted values for uidGidSource to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/UidGidSource"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ConfigMapsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/ConfigMapRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ConfigMapRules":{"properties":{"configMap":{"$ref":"#/components/schemas/StringRules"},"mountPath":{"$ref":"#/components/schemas/StringRules"},"subPath":{"$ref":"#/components/schemas/StringRules"},"defaultMode":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"EmptyDirsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/EmptyDirRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"EmptyDirRules":{"properties":{"path":{"$ref":"#/components/schemas/StringRules"},"medium":{"$ref":"#/components/schemas/StringRules"},"sizeLimit":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"PvcsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/PvcRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"PvcRules":{"properties":{"claimName":{"$ref":"#/components/schemas/StringRules"},"path":{"$ref":"#/components/schemas/StringRules"},"readOnly":{"$ref":"#/components/schemas/BooleanRules"},"claimInfo":{"$ref":"#/components/schemas/ClaimInfoRules"}},"nullable":true,"type":"object"},"ClaimInfoRules":{"properties":{"size":{"$ref":"#/components/schemas/StringRules"},"storageClass":{"$ref":"#/components/schemas/StringRules"},"accessModes":{"$ref":"#/components/schemas/PvcAccessModesRules"}},"nullable":true,"type":"object"},"PvcAccessModesRules":{"description":"Rules for access mode(s) for a newly created PVC.","properties":{"readWriteOnce":{"$ref":"#/components/schemas/BooleanRules"},"readOnlyMany":{"$ref":"#/components/schemas/BooleanRules"},"readWriteMany":{"$ref":"#/components/schemas/BooleanRules"}},"nullable":true,"type":"object"},"SecretsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/SecretRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"SecretRules":{"properties":{"secret":{"$ref":"#/components/schemas/StringRules"},"mountPath":{"$ref":"#/components/schemas/StringRules"},"defaultMode":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"TolerationsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/TolerationRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"TolerationRules":{"description":"Toleration details.","properties":{"operator":{"$ref":"#/components/schemas/TolerationOperatorRules"},"key":{"$ref":"#/components/schemas/StringRules"},"value":{"$ref":"#/components/schemas/StringRules"},"effect":{"$ref":"#/components/schemas/TolerationEffectRules"},"seconds":{"$ref":"#/components/schemas/IntegerRules"},"exclude":{"$ref":"#/components/schemas/BooleanRules"}},"nullable":true,"type":"object"},"TolerationOperatorRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/TolerationOperatorOptions"}],"nullable":true,"type":"object"},"TolerationOperatorOptions":{"properties":{"options":{"description":"Limit the permitted values for imagePullPolicy to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/TolerationOperator"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"TolerationEffectRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/TolerationEffectOptions"}],"nullable":true,"type":"object"},"TolerationEffectOptions":{"properties":{"options":{"description":"Limit the permitted values for imagePullPolicy to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/TolerationEffect"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"DistributedInferenceWorkerRules":{"properties":{"worker":{"description":"Defines the pod specification for the workers. Required only if the number of workers is greater than 0.","allOf":[{"$ref":"#/components/schemas/DistributedInferenceLeaderWorkerRulesV2"}],"nullable":true,"type":"object"}}},"DistributedInferenceImposedAssets":{"properties":{"leader":{"$ref":"#/components/schemas/ImposedAssets"},"worker":{"$ref":"#/components/schemas/ImposedAssets"}},"nullable":true,"type":"object"},"ImposedAssets":{"description":"a list of datasource assets to import into the policy. these datasources will be included in any workload that will be created in the scope of the policy.","type":"array","items":{"type":"string","format":"uuid"},"nullable":true},"PolicyValidationStatus":{"properties":{"validation":{"properties":{"errorMessage":{"pattern":".*","type":"string","description":"In case validation failed, holds the error message explaining the issue"}},"nullable":true,"type":"object"}},"nullable":true,"type":"object"},"DistributedInferencePolicyV2":{"properties":{"meta":{"$ref":"#/components/schemas/PolicyMeta"},"policy":{"$ref":"#/components/schemas/DistributedInferencePolicyDefaultsAndRulesV2"},"effective":{"$ref":"#/components/schemas/DistributedInferencePolicyDefaultsAndRulesV2"},"effectiveUpdatedAt":{"$ref":"#/components/schemas/Timestamp"}},"nullable":true,"type":"object"},"PolicyMeta":{"allOf":[{"$ref":"#/components/schemas/PolicyReadOnlyFields"},{"$ref":"#/components/schemas/PolicyCreationFields"}]},"PolicyReadOnlyFields":{"required":["id","createdBy","createdAt","updatedBy","updatedAt"],"properties":{"id":{"$ref":"#/components/schemas/PolicyId"},"tenantId":{"$ref":"#/components/schemas/TenantId"},"clusterId":{"$ref":"#/components/schemas/ClusterIdOptional"},"createdBy":{"description":"The user who created the policy.","type":"string","minLength":1},"createdAt":{"description":"The time at which the policy wes created","type":"string","minLength":1,"format":"date-time"},"updatedBy":{"description":"The user who updated the policy.","type":"string","minLength":1},"updatedAt":{"description":"The time at which the policy has been updated","type":"string","minLength":1,"format":"date-time"}}},"PolicyId":{"description":"The unique id of the policy.","type":"string","minLength":1,"format":"uuid"},"TenantId":{"description":"The id of the tenant.","type":"integer","format":"int32"},"Timestamp":{"description":"The time at which an event occurred. e.g. the time an effective policy has been updated","type":"string","minLength":1,"format":"date-time"},"Error":{"required":["code","message"],"properties":{"code":{"type":"integer","minimum":100,"maximum":599},"message":{"type":"string"},"details":{"type":"string"}}}},"responses":{"400BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401Unauthorized":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403Forbidden":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503ServiceUnavailable":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/api/v2/policy/distributed-inferences":{"put":{"summary":"Overwrite a distributed inference policy.","description":"Use to apply a distributed inference policy for a given organizational unit.","operationId":"overwrite_distributed_inference_policy_v2","tags":["Policy"],"parameters":[{"$ref":"#/components/parameters/ValidateOnly"},{"$ref":"#/components/parameters/ApproveClusterDeletion"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DistributedInferencePolicyOverwriteRequestV2"}}}},"responses":{"200":{"description":"Policy applied.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DistributedInferencePolicyV2"}}}},"400":{"$ref":"#/components/responses/400BadRequest"},"401":{"$ref":"#/components/responses/401Unauthorized"},"403":{"$ref":"#/components/responses/403Forbidden"},"503":{"$ref":"#/components/responses/503ServiceUnavailable"}}}}}}
```

## Delete a distributed inference policy.

> Use to delete a distributed inference policy for a given organizational unit.

```json
{"openapi":"3.0.3","info":{"title":"NVIDIA Run:ai","version":"2.26"},"tags":[{"name":"Policy","description":"Policies allow administrators to impose restrictions and set default values for researcher workloads. \nRestrictions and default values can be placed on CPUs, GPUs, and other resources or entities. \nFor more information, see [Policies](https://run-ai-docs.nvidia.com/self-hosted/2.26/platform-management/policies/#introduction).\n"}],"servers":[{"url":"https://app.run.ai"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer authentication"}},"parameters":{"PolicyScope":{"name":"scope","in":"query","required":true,"description":"The scope that the policy relates to.","schema":{"type":"string","enum":["tenant","cluster","department","project"]}},"FilterByDepartment":{"name":"departmentId","in":"query","description":"Filter using the department id.","required":false,"schema":{"type":"string"}},"FilterByProject":{"name":"projectId","in":"query","description":"project id to filter by","required":false,"schema":{"type":"string"}},"FilterByCluster":{"name":"clusterId","in":"query","description":"Filter using the Universally Unique Identifier (UUID) of the cluster.","required":false,"schema":{"type":"string","format":"uuid"}},"ApproveClusterDeletion":{"name":"approveClusterDeletion","in":"query","required":false,"description":"Required when modifying or deleting a policy if the tenant includes one or more clusters running version 2.20 or earlier. In such cases, the platform must delete the policy from the affected clusters. This flag indicates that the administrator approves this deletion.","schema":{"type":"boolean"}}},"responses":{"400BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401Unauthorized":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403Forbidden":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404NotFound":{"description":"The specified resource was not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503ServiceUnavailable":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"schemas":{"Error":{"required":["code","message"],"properties":{"code":{"type":"integer","minimum":100,"maximum":599},"message":{"type":"string"},"details":{"type":"string"}}}}},"paths":{"/api/v2/policy/distributed-inferences":{"delete":{"summary":"Delete a distributed inference policy.","description":"Use to delete a distributed inference policy for a given organizational unit.","operationId":"delete_distributed_inference_policy","tags":["Policy"],"parameters":[{"$ref":"#/components/parameters/PolicyScope"},{"$ref":"#/components/parameters/FilterByDepartment"},{"$ref":"#/components/parameters/FilterByProject"},{"$ref":"#/components/parameters/FilterByCluster"},{"$ref":"#/components/parameters/ApproveClusterDeletion"}],"responses":{"204":{"description":"The policy was deleted successfully."},"400":{"$ref":"#/components/responses/400BadRequest"},"401":{"$ref":"#/components/responses/401Unauthorized"},"403":{"$ref":"#/components/responses/403Forbidden"},"404":{"$ref":"#/components/responses/404NotFound"},"503":{"$ref":"#/components/responses/503ServiceUnavailable"}}}}}}
```

## Update a distributed inference policy.

> Use to apply changes to a distributed inference policy for a given organizational unit.

```json
{"openapi":"3.0.3","info":{"title":"NVIDIA Run:ai","version":"2.26"},"tags":[{"name":"Policy","description":"Policies allow administrators to impose restrictions and set default values for researcher workloads. \nRestrictions and default values can be placed on CPUs, GPUs, and other resources or entities. \nFor more information, see [Policies](https://run-ai-docs.nvidia.com/self-hosted/2.26/platform-management/policies/#introduction).\n"}],"servers":[{"url":"https://app.run.ai"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer authentication"}},"parameters":{"ValidateOnly":{"name":"validateOnly","in":"query","required":false,"description":"Validate the given policy payload without applying it","schema":{"type":"boolean"}},"ApproveClusterDeletion":{"name":"approveClusterDeletion","in":"query","required":false,"description":"Required when modifying or deleting a policy if the tenant includes one or more clusters running version 2.20 or earlier. In such cases, the platform must delete the policy from the affected clusters. This flag indicates that the administrator approves this deletion.","schema":{"type":"boolean"}}},"schemas":{"DistributedInferencePolicyChangeRequestV2":{"properties":{"meta":{"$ref":"#/components/schemas/PolicyCreationFields"},"policy":{"$ref":"#/components/schemas/DistributedInferencePolicyDefaultsAndRulesV2"},"reset":{"$ref":"#/components/schemas/FieldsToReset"}},"type":"object"},"PolicyCreationFields":{"required":["name","scope"],"properties":{"scope":{"$ref":"#/components/schemas/ScopeType"},"projectId":{"$ref":"#/components/schemas/ProjectIdOptional"},"departmentId":{"$ref":"#/components/schemas/DepartmentIdOptional"},"clusterId":{"$ref":"#/components/schemas/ClusterIdOptional"},"name":{"$ref":"#/components/schemas/PolicyName"}}},"ScopeType":{"type":"string","enum":["system","tenant","cluster","department","project"]},"ProjectIdOptional":{"description":"The id of the project.","type":"integer","format":"int32","nullable":true},"DepartmentIdOptional":{"description":"The id of the department.","type":"string","minLength":1,"nullable":true,"pattern":".*"},"ClusterIdOptional":{"description":"The id of the cluster.","type":"string","format":"uuid","minLength":1,"nullable":true},"PolicyName":{"description":"A chosen name for the policy.","type":"string","minLength":1,"pattern":".*"},"DistributedInferencePolicyDefaultsAndRulesV2":{"properties":{"defaults":{"allOf":[{"$ref":"#/components/schemas/DistributedInferenceDefaultsV2"}],"nullable":true,"type":"object"},"rules":{"allOf":[{"$ref":"#/components/schemas/DistributedInferenceRulesV2"}],"nullable":true,"type":"object"},"imposedAssets":{"$ref":"#/components/schemas/DistributedInferenceImposedAssets"},"status":{"$ref":"#/components/schemas/PolicyValidationStatus"}},"nullable":true,"type":"object"},"DistributedInferenceDefaultsV2":{"allOf":[{"$ref":"#/components/schemas/DistributedInferenceCommonDefaultsV2"},{"$ref":"#/components/schemas/DistributedInferenceLeaderDefaults"},{"$ref":"#/components/schemas/DistributedInferenceWorkerDefaults"}]},"DistributedInferenceCommonDefaultsV2":{"allOf":[{"nullable":true,"properties":{"category":{"$ref":"#/components/schemas/Category"},"nodePools":{"$ref":"#/components/schemas/NodePools"},"preemptibility":{"$ref":"#/components/schemas/Preemptibility"},"priorityClass":{"$ref":"#/components/schemas/PriorityClass"},"restartPolicy":{"$ref":"#/components/schemas/DistributedInferenceRestartPolicy"},"servingPort":{"$ref":"#/components/schemas/DistributedInferenceServingPort"}},"type":"object"},{"$ref":"#/components/schemas/DistributedInferenceStartupPolicyField"},{"$ref":"#/components/schemas/DistributedInferenceWorkersField"},{"$ref":"#/components/schemas/DistributedInferenceReplicasField"}],"nullable":true,"type":"object"},"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":".*"},"NodePools":{"description":"A prioritized list of node pools for the scheduler to run the workload on. The scheduler will always try to use the first node pool before moving to the next one if the first is not available.","type":"array","items":{"type":"string","maxLength":63,"pattern":".*"},"maxItems":1000,"nullable":true},"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","minLength":1,"enum":["preemptible","non-preemptible"],"nullable":true},"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","nullable":true,"pattern":".*"},"DistributedInferenceRestartPolicy":{"description":"Determines the behavior when a pod fails.\n- `RecreateGroupOnPodRestart`: Restarts all pods in the group if any pod fails.\n- `None`: No automatic restart behavior is applied.\n","type":"string","enum":["RecreateGroupOnPodRestart","None"],"nullable":true,"default":"RecreateGroupOnPodRestart"},"DistributedInferenceServingPort":{"description":"Defines the configuration for the inference serving endpoint. This determines how applications or services can send inference requests to the workload.","allOf":[{"$ref":"#/components/schemas/DistributedInferenceServingPortContainerAndProtocol"},{"$ref":"#/components/schemas/DistributedInferenceServingPortAccess"}],"nullable":true,"type":"object"},"DistributedInferenceServingPortContainerAndProtocol":{"properties":{"port":{"description":"The port exposed by the container running the distributed inference service.","type":"integer","format":"int32","minimum":1,"maximum":65535,"nullable":true},"protocol":{"$ref":"#/components/schemas/DistributedInferenceServingPortProtocol"}}},"DistributedInferenceServingPortProtocol":{"description":"The protocol used to access the port.","type":"string","enum":["http"],"nullable":true,"default":"http"},"DistributedInferenceServingPortAccess":{"properties":{"authorizationType":{"$ref":"#/components/schemas/DistributedInferenceServingPortAccessAuthorizationTypeEnum"},"authorizedUsers":{"description":"A list of users and service accounts allowed to send inference requests to the serving endpoint. `Note:` Cannot be used together with authorizedGroups.","type":"array","items":{"type":"string","pattern":".*"},"nullable":true},"authorizedGroups":{"description":"A list of user groups allowed to send inference requests to the serving endpoint. `Note:` Cannot be used together with authorizedUsers.","type":"array","items":{"type":"string","pattern":".*"},"nullable":true},"exposeExternally":{"description":"Indicates whether the inference serving endpoint should be accessible outside the cluster. If set to true, the endpoint will be exposed externally. To enable external access, your administrator must configure the cluster as described in the [inference requirements](https://run-ai-docs.nvidia.com/self-hosted/2.26/getting-started/installation/system-requirements#inference). section.","type":"boolean","nullable":true,"default":true},"exposedUrl":{"description":"The custom URL to use for the serving port. If empty (default), an autogenerated URL will be used.","type":"string","nullable":true,"pattern":".*"}}},"DistributedInferenceServingPortAccessAuthorizationTypeEnum":{"type":"string","description":"Specifies who can send inference requests to the serving endpoint:\n\nPossible values:\n- `public`: No authorization is required. (Default)\n- `authenticatedUsers`: Any NVIDIA Run:ai authenticated user and service account can send requests.\n- `authorizedUsers`: Only users listed in the authorizedUsers field can send requests.\n- `authorizedGroups`: Only members of user groups listed in the authorizedGroups field can send requests.\n","enum":["public","authenticatedUsers","authorizedUsers","authorizedGroups"],"nullable":true},"DistributedInferenceStartupPolicyField":{"properties":{"startupPolicy":{"$ref":"#/components/schemas/DistributedInferenceStartupPolicy"}},"nullable":true,"type":"object"},"DistributedInferenceStartupPolicy":{"description":"Determines when the worker pods should start during workload initialization. \n - `LeaderCreated`: Workers start after the leader pod is created.\n - `LeaderReady`: Workers start only after the leader pod is ready.\n","type":"string","enum":["LeaderCreated","LeaderReady"],"nullable":true,"default":"LeaderCreated"},"DistributedInferenceWorkersField":{"properties":{"workers":{"default":0,"description":"Specifies the number of worker nodes to run. If set to 0, only the leader node will run, and no worker pods will be created. In this case, worker spec is not required.","type":"integer","format":"int32","minimum":0,"maximum":1000,"nullable":true}}},"DistributedInferenceReplicasField":{"properties":{"replicas":{"default":1,"description":"Specifies the number of leader-worker sets to deploy. Each replica represents a group consisting of one leader pod and multiple worker pods. \nFor example, setting replicas: 3 will create 3 independent groups, each with its own leader and corresponding set of workers.\n","type":"integer","format":"int32","minimum":0,"maximum":1000,"nullable":true}}},"DistributedInferenceLeaderDefaults":{"properties":{"leader":{"description":"Defines the pod specification for the leader. Must always be provided, regardless of the number of workers.","allOf":[{"$ref":"#/components/schemas/DistributedInferenceLeaderWorkerDefaultsV2"}],"nullable":true,"type":"object"}}},"DistributedInferenceLeaderWorkerDefaultsV2":{"properties":{"annotations":{"$ref":"#/components/schemas/AnnotationsDefaults"},"args":{"$ref":"#/components/schemas/Args"},"command":{"$ref":"#/components/schemas/Command"},"compute":{"$ref":"#/components/schemas/SupersetDefaultsAllOfCompute"},"createHomeDir":{"$ref":"#/components/schemas/CreateHomeDir"},"environmentVariables":{"$ref":"#/components/schemas/EnvironmentVariablesDefaults"},"image":{"$ref":"#/components/schemas/Image"},"imagePullPolicy":{"$ref":"#/components/schemas/ImagePullPolicy"},"imagePullSecrets":{"$ref":"#/components/schemas/ImagePullSecretsDefaults"},"labels":{"$ref":"#/components/schemas/LabelsDefaults"},"nodeAffinityRequired":{"$ref":"#/components/schemas/NodeAffinityRequired"},"nodeType":{"$ref":"#/components/schemas/NodeType2"},"podAffinity":{"$ref":"#/components/schemas/PodAffinity"},"probes":{"$ref":"#/components/schemas/Probes"},"security":{"$ref":"#/components/schemas/DistributedInferenceLeaderWorkerDefaultsV2Security"},"storage":{"nullable":true,"properties":{"configMapVolume":{"$ref":"#/components/schemas/ConfigMapsDefaults"},"emptyDirVolume":{"$ref":"#/components/schemas/EmptyDirsDefaults"},"pvc":{"$ref":"#/components/schemas/PvcsDefaults"},"secretVolume":{"$ref":"#/components/schemas/SecretsDefaults"}},"type":"object"},"tolerations":{"$ref":"#/components/schemas/TolerationsDefaults"},"workingDir":{"$ref":"#/components/schemas/WorkingDir"}},"type":"object"},"AnnotationsDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/Annotations"}},"nullable":true,"type":"object"},"Annotations":{"description":"Set of annotations to populate into the container running the workload.","type":"array","items":{"$ref":"#/components/schemas/Annotation"},"maxItems":1000,"nullable":true},"Annotation":{"description":"Annotation details to be populated into the container.","properties":{"name":{"description":"The name of the annotation (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":".*"},"value":{"description":"The value of the annotation.","type":"string","maxLength":10000,"nullable":true,"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","default":false,"nullable":true}},"nullable":true,"type":"object"},"Args":{"description":"Arguments to the command that the container running the workload executes.","type":"string","minLength":1,"maxLength":10000,"nullable":true,"pattern":".*"},"Command":{"description":"A command to the server as the entry point of the container running the workload.","type":"string","minLength":1,"maxLength":10000,"nullable":true,"pattern":".*"},"SupersetDefaultsAllOfCompute":{"title":"SupersetDefaultsAllOfCompute","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/ExtendedResourcesDefaults"},"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"},"CpuCoreLimit":{"description":"Limitations on the number of CPUs consumed by the workload (0.5, 1, .etc). The system guarantees that this workload will not be able to consume more than this amount of CPUs.","format":"double","type":"number","nullable":true,"minimum":0},"CpuCoreRequest":{"description":"CPU units to allocate for the created workload (0.5, 1, .etc). The workload will receive at least this amount of CPU. Note that the workload will not be scheduled unless the system can guarantee this amount of CPUs to the workload.","format":"double","type":"number","nullable":true,"minimum":0},"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]*)$","maxLength":63,"nullable":true},"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","pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$","maxLength":63,"nullable":true},"ExtendedResourcesDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/ExtendedResource"},"instances":{"$ref":"#/components/schemas/ExtendedResources"}},"nullable":true,"type":"object"},"ExtendedResource":{"description":"Quantity of an extended resource.","properties":{"resource":{"description":"The name of the extended resource (mandatory)","type":"string","minLength":1,"maxLength":253,"nullable":true,"pattern":".*"},"quantity":{"description":"The requested quantity for the resource.","type":"string","minLength":1,"maxLength":63,"nullable":true,"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","nullable":true}},"nullable":true,"type":"object"},"ExtendedResources":{"description":"Extended resources and their quantity.","type":"array","items":{"$ref":"#/components/schemas/ExtendedResource"},"maxItems":1000,"nullable":true},"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","format":"int32","nullable":true,"minimum":0},"GpuMemoryLimit":{"description":"Limitation on the memory consumed by the workload, per GPU device. The system guarantees The gpuMemoryLimit must be no less than gpuMemoryRequest.","type":"string","pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$","maxLength":63,"nullable":true},"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]*)$","maxLength":63,"nullable":true},"GpuPortionLimit":{"description":"Limitations on the portion consumed by the workload, per GPU device. The system guarantees The gpuPotionLimit must be no less than the gpuPortionRequest.","type":"number","format":"double","nullable":true,"minimum":0},"GpuPortionRequest":{"description":"Required if and only if gpuRequestType is portion. States the portion of the GPU to allocate for the created workload, per GPU device, between 0 and 1. The default is no allocated GPUs.","type":"number","format":"double","nullable":true,"minimum":0},"GpuRequestType":{"description":"Sets the unit type for GPU resources requests. Stated in terms of portion or memory. Sets the unit type for other GPU request fields. If `gpuDevicesRequest > 1`, only `portion` is supported. If `gpuDeviceRequest = 1`, the request type can be stated as `portion` or `memory`.","type":"string","minLength":1,"enum":["portion","memory"],"nullable":true},"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","nullable":true},"CreateHomeDir":{"description":"When set to `true`, creates a home directory for the container.","type":"boolean","nullable":true},"EnvironmentVariablesDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/EnvironmentVariables"}},"nullable":true,"type":"object"},"EnvironmentVariables":{"description":"Set of environment variables to populate into the container running the workload.","type":"array","items":{"$ref":"#/components/schemas/EnvironmentVariable"},"maxItems":1000,"nullable":true},"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,"maxLength":63,"nullable":true,"pattern":".*"},"value":{"description":"The value of the environment variable. (mutually exclusive with secret, userCredential, configMap and podFieldRef)","type":"string","maxLength":10000,"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","nullable":true},"description":{"description":"Description of the environment variable.","type":"string","maxLength":250,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"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,"maxLength":253,"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,"maxLength":63,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"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","minLength":1,"maxLength":253,"nullable":true,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$"},"key":{"description":"The key in the config-map resource. (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"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","minLength":1,"maxLength":10000,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"EnvironmentVariableUserCredential":{"description":"Defines a reference to a user-created credential and a specific key within that credential whose value will populate the environment variable. User credentials can only be accessed by the user who created them.","properties":{"name":{"description":"The name of the user credential.  (mandatory)","type":"string","minLength":1,"maxLength":253,"nullable":true},"key":{"description":"The key in the user credential resource. (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true}},"nullable":true,"type":"object"},"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","minLength":1,"maxLength":253,"nullable":true,"pattern":".*"},"ImagePullPolicy":{"description":"Image pull policy. Defaults to `Always` if `:latest` tag is specified, otherwise it is `IfNotPresent`.","type":"string","minLength":1,"enum":["Always","Never","IfNotPresent"],"nullable":true},"ImagePullSecretsDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/ImagePullSecrets"}},"nullable":true,"type":"object"},"ImagePullSecrets":{"description":"A list of references to Kubernetes secrets in the same namespace used for pulling container images.","type":"array","items":{"$ref":"#/components/schemas/ImagePullSecret"},"maxItems":1000,"nullable":true},"ImagePullSecret":{"description":"A reference to a secret in the same namespace used to pull container images.","properties":{"name":{"type":"string","description":"The name of the Kubernetes secret containing the image pull credentials.","pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$","maxLength":253},"userCredential":{"type":"boolean","description":"Indicates whether the secret is a user credential. Set to true if the secret was created by the user and is only accessible by them.","nullable":true},"exclude":{"description":"Use 'true' in case the secret is defined in defaults of the policy, and you wish to exclude it from the workload.","type":"boolean","default":false,"nullable":true}},"nullable":true,"type":"object"},"LabelsDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/Labels"}},"nullable":true,"type":"object"},"Labels":{"description":"Set of labels to populate into the container running the workload.","type":"array","items":{"$ref":"#/components/schemas/Label"},"maxItems":1000,"nullable":true},"Label":{"description":"Label details to be populated into the container.","properties":{"name":{"description":"The name of the label (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":".*"},"value":{"description":"The value of the label.","type":"string","nullable":true,"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","nullable":true}},"nullable":true,"type":"object"},"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"},"maxItems":1000}},"nullable":true},"NodeSelectorTerm":{"type":"object","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"},"maxItems":1000}},"nullable":true},"MatchExpression":{"type":"object","description":"A selector that contains values, a key, and an operator that relates the key and values.","properties":{"key":{"description":"The label key that the selector applies to (mandatory).","type":"string","pattern":".*","maxLength":63},"operator":{"$ref":"#/components/schemas/MatchExpressionOperator"},"values":{"description":"An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer.","type":"array","items":{"type":"string","maxLength":10000,"pattern":".*"},"maxItems":1000}},"required":["key","operator"],"nullable":true},"MatchExpressionOperator":{"description":"Represents a key's relationship to a set of values (mandatory).","type":"string","enum":["In","NotIn","Exists","DoesNotExist","Gt","Lt"]},"NodeType2":{"deprecated":true,"description":"Deprecated: use a workload policy node selector to target node types instead. 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","minLength":1,"nullable":true,"pattern":".*"},"PodAffinity":{"description":"Pod affinity scheduling rules (e.g. co-locate this workload in the same node, zone, etc. as some other workloads).","type":"object","properties":{"type":{"$ref":"#/components/schemas/PodAffinityType"},"key":{"description":"The label key to use. (mandatory)","type":"string","nullable":true,"pattern":".*","maxLength":63}},"nullable":true},"PodAffinityType":{"description":"The affinity type, required or preferred. (mandatory)","type":"string","enum":["Required","Preferred"],"nullable":true},"Probes":{"description":"Probes are used to determine if the container is healthy and ready to accept traffic.","type":"object","properties":{"readiness":{"$ref":"#/components/schemas/Probe"}},"nullable":true},"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},"ProbeHandler":{"description":"The action taken to determine the health of the container. (mandatory)","type":"object","properties":{"httpGet":{"description":"An action based on HTTP Get requests.","type":"object","properties":{"path":{"description":"Path to access on the HTTP server, defaults to /.","type":"string","pattern":"^(\\x2F[a-zA-Z0-9\\-_.\\x2F]*)?$","nullable":true,"maxLength":2048},"port":{"description":"Number of the port to access on the container.","type":"integer","format":"int32","minimum":1,"maximum":65535,"nullable":true},"host":{"description":"Host name to connect to, defaults to the pod IP.","type":"string","format":"hostname","nullable":true,"pattern":".*","maxLength":253},"scheme":{"$ref":"#/components/schemas/ProbeHandlerScheme"}}}},"nullable":true},"ProbeHandlerScheme":{"description":"Scheme to use for connecting to the host, defaults to HTTP.","type":"string","enum":["HTTP","HTTPS"],"nullable":true},"DistributedInferenceLeaderWorkerDefaultsV2Security":{"title":"DistributedInferenceLeaderWorkerDefaultsV2Security","nullable":true,"properties":{"capabilities":{"$ref":"#/components/schemas/Capabilities"},"hostIpc":{"$ref":"#/components/schemas/HostIpc"},"hostNetwork":{"$ref":"#/components/schemas/HostNetwork"},"readOnlyRootFilesystem":{"$ref":"#/components/schemas/ReadOnlyRootFileSystem"},"runAsGid":{"$ref":"#/components/schemas/RunAsGid"},"runAsNonRoot":{"$ref":"#/components/schemas/RunAsNonRoot"},"runAsUid":{"$ref":"#/components/schemas/RunAsUid"},"seccompProfileType":{"$ref":"#/components/schemas/SeccompProfileType"},"supplementalGroups":{"$ref":"#/components/schemas/SupplementalGroups"},"uidGidSource":{"$ref":"#/components/schemas/UidGidSource"}},"type":"object"},"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"},"nullable":true},"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"]},"HostIpc":{"description":"Whether to enable host IPC. Defaults to false.","type":"boolean","nullable":true},"HostNetwork":{"description":"Whether to enable host networking. Default to false.","type":"boolean","nullable":true},"ReadOnlyRootFileSystem":{"description":"If true, mounts the container's root filesystem as read-only.","type":"boolean","nullable":true},"RunAsGid":{"description":"The group id to run the entrypoint of the container which executes the workspace. Default to the value specified in the environment asset `runAsGid` field (optional). Use only when the source uid/gid of the environment asset is not `fromTheImage`, and `overrideUidGidInWorkspace` is enabled.","type":"integer","format":"int64","nullable":true},"RunAsNonRoot":{"description":"Force the container to run as a non-root user.","type":"boolean","nullable":true},"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","format":"int64","nullable":true},"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","enum":["RuntimeDefault","Unconfined","Localhost"],"nullable":true},"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","nullable":true,"pattern":".*"},"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://run-ai-docs.nvidia.com/self-hosted/2.26/infrastructure-setup/advanced-setup/container-access/user-identity-in-containers).","type":"string","enum":["fromTheImage","fromIdpToken","custom"],"nullable":true},"ConfigMapsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/ConfigMapInstance"},"instances":{"$ref":"#/components/schemas/ConfigMapItems"}},"nullable":true,"type":"object"},"ConfigMapInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/ConfigMap"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"StorageInstanceName":{"properties":{"name":{"description":"unique name to identify the instance. primarily used for policy locked rules.","type":"string","minLength":1,"maxLength":63,"nullable":true}},"nullable":true,"type":"object"},"ConfigMap":{"properties":{"configMap":{"description":"The name of the ConfigMap resource. (mandatory)","type":"string","minLength":1,"maxLength":253,"nullable":true,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$"},"mountPath":{"description":"Local path within the workload to which the ConfigMap will be mapped to. (mandatory)","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"subPath":{"description":"Path within the volume from which the container's volume should be mounted.","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"defaultMode":{"$ref":"#/components/schemas/DefaultMode"}},"nullable":true,"type":"object"},"DefaultMode":{"type":"string","description":"File permission mode in octal string format. This value must be a 4-digit octal number, representing the default file mode when mounting a Secret or ConfigMap as a volume.\n","minLength":4,"maxLength":4,"pattern":"0[0-7]{3}","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,"nullable":true}},"type":"object","nullable":true},"ConfigMapItems":{"description":"Set of config map volumes to use in the workload","type":"array","items":{"$ref":"#/components/schemas/ConfigMapInstance"},"maxItems":1000,"nullable":true},"EmptyDirsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/EmptyDirInstance"},"instances":{"$ref":"#/components/schemas/EmptyDirItems"}},"nullable":true,"type":"object"},"EmptyDirInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/EmptyDir"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"EmptyDir":{"properties":{"path":{"description":"Local path within the workload to which the EmptyDir volume will be mapped. (mandatory)","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"medium":{"description":"The type of storage medium for the volume. Use \"Memory\" for memory-backed storage, or leave empty for disk-backed storage.","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":".*"},"sizeLimit":{"description":"The total amount of local storage or memory required for the emptyDir volume. Specify using Kubernetes quantity format (e.g., 1G, 500Mi).","type":"string","maxLength":63,"pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$","nullable":true}},"nullable":true,"type":"object"},"EmptyDirItems":{"description":"A list of emptyDir volumes to mount in the workload.","type":"array","items":{"$ref":"#/components/schemas/EmptyDirInstance"},"maxItems":1000,"nullable":true},"PvcsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/PvcInstance"},"instances":{"$ref":"#/components/schemas/PvcItems"}},"nullable":true,"type":"object"},"PvcInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/Pvc"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"Pvc":{"allOf":[{"$ref":"#/components/schemas/PvcFieldsUpdatable"},{"$ref":"#/components/schemas/PvcFieldsNonUpdatable"}]},"PvcFieldsUpdatable":{"properties":{"path":{"description":"Local path within the workload to which the PVC bucket will be mapped. (mandatory)","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"PvcFieldsNonUpdatable":{"properties":{"existingPvc":{"description":"Verify existing PVC. PVC is assumed to exist when set to `true`. If set to `false`, the PVC will be created, if it does not exist.","type":"boolean","default":false,"nullable":true},"claimName":{"description":"Name for the PVC. Allow referencing it across workloads. If not provided, a name based on the workload name and scope will be auto-generated.","type":"string","minLength":1,"maxLength":63,"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,"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,"nullable":true}},"nullable":true,"type":"object"},"ClaimInfo":{"description":"Claim information for the newly created PVC. The information should not be provided when attempting to use existing PVC.","properties":{"size":{"$ref":"#/components/schemas/PvcClaimSize"},"storageClass":{"description":"Storage class name to associate with the PVC. This parameter may be omitted if there is a single storage class in the system, or you are using the default storage class. For more information, see [Storage class](https://kubernetes.io/docs/concepts/storage/storage-classes).","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$"},"accessModes":{"$ref":"#/components/schemas/PvcAccessModes"},"volumeMode":{"$ref":"#/components/schemas/PvcVolumeMode"},"addedAttrValues":{"$ref":"#/components/schemas/PvcAddedAttrValues"}},"nullable":true,"type":"object"},"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]*)$","maxLength":63,"nullable":true},"PvcAccessModes":{"description":"Default access mode(s) applied to newly created PVCs unless explicitly overridden.","properties":{"readWriteOnce":{"description":"Mount the volume as read/write by a single node.","type":"boolean","default":true,"nullable":true},"readOnlyMany":{"description":"Mount the volume as read-only by many nodes.","type":"boolean","default":false,"nullable":true},"readWriteMany":{"description":"Mount the volume as read/write by many nodes.","type":"boolean","default":false,"nullable":true}},"nullable":true,"type":"object"},"PvcVolumeMode":{"description":"Default volume mode for the PVC. Choose between Filesystem (default) or Block.","type":"string","enum":["Filesystem","Block"],"nullable":true},"PvcAddedAttrValues":{"description":"an optional array of key-values pairs that are written as annotations on the created PVC. the allowed attributes are determined according to the storage class configuration (see k8s-objects-tracker for further info).","type":"array","items":{"$ref":"#/components/schemas/PvcAddedAttrValue"},"maxItems":1000},"PvcAddedAttrValue":{"type":"object","required":["key"],"properties":{"key":{"type":"string","minLength":1,"maxLength":63,"pattern":"^([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]$"},"value":{"type":"string","pattern":".*","maxLength":10000}}},"PvcItems":{"description":"Set of pvc persistent volume claims to use in the workload.","type":"array","items":{"$ref":"#/components/schemas/PvcInstance"},"maxItems":1000,"nullable":true},"SecretsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/SecretInstance"},"instances":{"$ref":"#/components/schemas/SecretItems"}},"nullable":true,"type":"object"},"SecretInstance":{"allOf":[{"$ref":"#/components/schemas/StorageInstanceName"},{"$ref":"#/components/schemas/Secret"},{"$ref":"#/components/schemas/ExcludeField"}],"nullable":true,"type":"object"},"Secret":{"allOf":[{"$ref":"#/components/schemas/SecretFieldsUpdatable"},{"$ref":"#/components/schemas/SecretFieldsNonUpdatable"}]},"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"},"SecretFieldsNonUpdatable":{"properties":{"secret":{"description":"The name of the Secret resource. (mandatory)","type":"string","minLength":1,"nullable":true}},"nullable":true,"type":"object"},"SecretItems":{"description":"Set of secret volumes to use in the workload","type":"array","items":{"$ref":"#/components/schemas/SecretInstance"},"nullable":true},"TolerationsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/Toleration"},"instances":{"$ref":"#/components/schemas/Tolerations"}},"nullable":true,"type":"object"},"Toleration":{"description":"Toleration details.","properties":{"name":{"description":"The name of the toleration.","type":"string","minLength":1,"maxLength":253,"nullable":true,"pattern":".*"},"operator":{"$ref":"#/components/schemas/TolerationOperator"},"key":{"description":"The taint key that the toleration applies to. (mandatory)","type":"string","maxLength":253,"nullable":true,"pattern":".*"},"value":{"description":"The taint value the toleration matches to. Mandatory if operator is Exists, forbidden otherwise.","type":"string","maxLength":10000,"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","nullable":true}},"nullable":true,"type":"object"},"TolerationOperator":{"description":"A key's relationship to the value. Equal uses key and value. Exists is equivalent to wildcard for value, so that a workload can tolerate all taints of a particular category. (mandatory)","type":"string","enum":["Equal","Exists"],"nullable":true},"TolerationEffect":{"description":"The taint effect to match. (mandatory)","type":"string","enum":["NoSchedule","NoExecute","PreferNoSchedule","Any"],"nullable":true},"Tolerations":{"description":"Set of tolerations to apply to the workload.","type":"array","items":{"$ref":"#/components/schemas/Toleration"},"maxItems":1000,"nullable":true},"WorkingDir":{"description":"Container's working directory. If not specified, the container runtime default will be used. This may be configured in the container image.","type":"string","minLength":1,"maxLength":4096,"nullable":true,"pattern":".*"},"DistributedInferenceWorkerDefaults":{"properties":{"worker":{"description":"Defines the pod specification for the workers. Required only if the number of workers is greater than 0.","allOf":[{"$ref":"#/components/schemas/DistributedInferenceLeaderWorkerDefaultsV2"}],"nullable":true,"type":"object"}}},"DistributedInferenceRulesV2":{"allOf":[{"$ref":"#/components/schemas/DistributedInferenceCommonRulesV2"},{"$ref":"#/components/schemas/DistributedInferenceLeaderRules"},{"$ref":"#/components/schemas/DistributedInferenceWorkerRules"}]},"DistributedInferenceCommonRulesV2":{"allOf":[{"nullable":true,"properties":{"category":{"$ref":"#/components/schemas/StringRules"},"nodePools":{"$ref":"#/components/schemas/ArrayRules"},"preemptibility":{"$ref":"#/components/schemas/PreemptibilityRules"},"priorityClass":{"$ref":"#/components/schemas/StringRules"},"restartPolicy":{"$ref":"#/components/schemas/DistributedInferenceRestartPolicyRules"},"servingPort":{"$ref":"#/components/schemas/DistributedInferenceServingPortRules"}},"type":"object"},{"$ref":"#/components/schemas/DistributedInferenceStartupPolicyFieldRules"},{"$ref":"#/components/schemas/DistributedInferenceWorkersFieldRules"},{"$ref":"#/components/schemas/DistributedInferenceReplicasFieldRules"}],"nullable":true,"type":"object"},"StringRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/StringRulesOptions"}],"nullable":true,"type":"object"},"StringRulesCommon":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory, default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable, default to true","type":"boolean","nullable":true},"blocked":{"description":"Blocks the field to prevent workloads from specifying any value for it.","type":"boolean","nullable":true}}},"SourceOfRule":{"description":"This field is used by the system along with effective rules, in order to specify the org unit from which this effective rule has been derived. It should be left empty when sending apply policy requests.","required":["scope"],"properties":{"scope":{"$ref":"#/components/schemas/ScopeType"},"projectId":{"$ref":"#/components/schemas/ProjectIdOptional"},"departmentId":{"$ref":"#/components/schemas/DepartmentIdOptional"},"clusterId":{"$ref":"#/components/schemas/ClusterIdOptional"},"isFallback":{"description":"source of this rule is the fallback policy","type":"boolean"}},"nullable":true,"type":"object"},"StringRulesOptions":{"properties":{"options":{"description":"Set of options that the value of the field must be chosen from.","type":"array","items":{"$ref":"#/components/schemas/StringOption"},"nullable":true}}},"StringOption":{"description":"One of the values that the field can be assigned to, when options police is applied on the field.","required":["value"],"properties":{"value":{"description":"The value that the field should hold","type":"string","pattern":".*"},"displayed":{"description":"Textual description of the value. to be used by user interface applications.","type":"string","nullable":true,"pattern":".*"}}},"ArrayRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether this array is mandatory. Mandatory array must include at least one item. default to false.","type":"boolean","nullable":true},"options":{"description":"Set of options that the value of each item of the array must be chosen from.","type":"array","items":{"$ref":"#/components/schemas/StringOption"}},"canEdit":{"description":"Whether the value of the array, as a whole, is editable. default to false.","type":"boolean","nullable":true}},"nullable":true,"type":"object"},"PreemptibilityRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/PreemptibilityOptions"}],"nullable":true,"type":"object"},"PreemptibilityOptions":{"properties":{"options":{"description":"Limit the permitted values for preemptibility to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/Preemptibility"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"DistributedInferenceRestartPolicyRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/DistributedInferenceRestartPolicyOptions"}],"nullable":true,"type":"object"},"DistributedInferenceRestartPolicyOptions":{"properties":{"options":{"description":"Limit the permitted values for restartPolicy to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/DistributedInferenceRestartPolicy"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"DistributedInferenceServingPortRules":{"description":"Defines the configuration for the inference serving endpoint. This determines how applications or services can send inference requests to the workload.","allOf":[{"$ref":"#/components/schemas/DistributedInferenceServingPortRulesProperties"}],"nullable":true,"type":"object"},"DistributedInferenceServingPortRulesProperties":{"properties":{"port":{"$ref":"#/components/schemas/IntegerRules"},"protocol":{"$ref":"#/components/schemas/StringRules"},"authorizationType":{"$ref":"#/components/schemas/DistributedInferenceServingPortAuthorizationTypeRules"},"authorizedUsers":{"$ref":"#/components/schemas/ArrayRules"},"authorizedGroups":{"$ref":"#/components/schemas/ArrayRules"},"exposeExternally":{"$ref":"#/components/schemas/BooleanRules"},"exposedUrl":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"IntegerRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory. default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"max":{"description":"The maximum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"step":{"description":"The minimal difference between two values the field can be assigned to. For example, min=2, max=10, step=2 implies that the values the field can hold are 2, 4, 6, 8 and 10.","type":"integer","format":"int32","nullable":true},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"DefaultFromRule":{"properties":{"field":{"description":"The default of this field is taken from another field, with optional factor. The specified field must belong to the same workload section (compute, security, etc). For itemized field, the value of the field will be taken from the same instance.","type":"string","nullable":true,"pattern":".*"},"factor":{"description":"Multiple the value of the fromField by this factor to get the value for this field For example, if factor is 2 and defaultFrom field has value of 8, the calculated default will be determined to be 16.","type":"number","format":"double","nullable":true,"default":1}},"nullable":true,"type":"object"},"DistributedInferenceServingPortAuthorizationTypeRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/DistributedInferenceServingPortAuthorizationTypeOptions"}],"nullable":true,"type":"object"},"DistributedInferenceServingPortAuthorizationTypeOptions":{"properties":{"options":{"type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/DistributedInferenceServingPortAccessAuthorizationTypeEnum"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"BooleanRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory. default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true}},"nullable":true,"type":"object"},"DistributedInferenceStartupPolicyFieldRules":{"properties":{"startupPolicy":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/DistributedInferenceStartupPolicyOptions"}],"nullable":true,"type":"object"}},"nullable":true,"type":"object"},"DistributedInferenceStartupPolicyOptions":{"properties":{"startupPolicy":{"$ref":"#/components/schemas/DistributedInferenceStartupPolicy"}},"nullable":true,"type":"object"},"DistributedInferenceWorkersFieldRules":{"properties":{"workers":{"$ref":"#/components/schemas/IntegerRules"}}},"DistributedInferenceReplicasFieldRules":{"properties":{"replicas":{"$ref":"#/components/schemas/IntegerRules"}}},"DistributedInferenceLeaderRules":{"properties":{"leader":{"description":"Defines the pod specification for the leader. Must always be provided, regardless of the number of workers.","allOf":[{"$ref":"#/components/schemas/DistributedInferenceLeaderWorkerRulesV2"}],"nullable":true,"type":"object"}}},"DistributedInferenceLeaderWorkerRulesV2":{"properties":{"annotations":{"$ref":"#/components/schemas/InstancesRules"},"args":{"$ref":"#/components/schemas/StringRules"},"command":{"$ref":"#/components/schemas/StringRules"},"compute":{"$ref":"#/components/schemas/SupersetRulesAllOfCompute"},"createHomeDir":{"$ref":"#/components/schemas/BooleanRules"},"environmentVariables":{"$ref":"#/components/schemas/InstancesRules"},"image":{"$ref":"#/components/schemas/StringRules"},"imagePullPolicy":{"$ref":"#/components/schemas/ImagePullPolicyRules"},"imagePullSecrets":{"$ref":"#/components/schemas/ImagePullSecretsRules"},"labels":{"$ref":"#/components/schemas/InstancesRules"},"nodeAffinityRequired":{"$ref":"#/components/schemas/ArbitraryRules"},"nodeType":{"$ref":"#/components/schemas/StringRules"},"podAffinity":{"$ref":"#/components/schemas/PodAffinityRules"},"probes":{"$ref":"#/components/schemas/ProbesRules"},"security":{"nullable":true,"properties":{"capabilities":{"$ref":"#/components/schemas/ArrayRules"},"hostIpc":{"$ref":"#/components/schemas/BooleanRules"},"hostNetwork":{"$ref":"#/components/schemas/BooleanRules"},"readOnlyRootFilesystem":{"$ref":"#/components/schemas/BooleanRules"},"runAsGid":{"$ref":"#/components/schemas/IntegerRulesOptional"},"runAsNonRoot":{"$ref":"#/components/schemas/BooleanRules"},"runAsUid":{"$ref":"#/components/schemas/IntegerRulesOptional"},"seccompProfileType":{"$ref":"#/components/schemas/SeccompProfileTypeRules"},"supplementalGroups":{"$ref":"#/components/schemas/StringRules"},"uidGidSource":{"$ref":"#/components/schemas/UidGidSourceRules"}},"type":"object"},"storage":{"nullable":true,"properties":{"configMapVolume":{"$ref":"#/components/schemas/ConfigMapsRules"},"emptyDirVolume":{"$ref":"#/components/schemas/EmptyDirsRules"},"pvc":{"$ref":"#/components/schemas/PvcsRules"},"secretVolume":{"$ref":"#/components/schemas/SecretsRules"}},"type":"object"},"tolerations":{"$ref":"#/components/schemas/TolerationsRules"},"workingDir":{"$ref":"#/components/schemas/StringRules"}},"type":"object"},"InstancesRules":{"properties":{"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ItemRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"canAdd":{"description":"Whether it is permitted to add items. Default to true.","type":"boolean","nullable":true},"locked":{"description":"Set of keys for items that are \"locked\", i.e. cannot be removed or deleted.","type":"array","items":{"type":"string"}}},"nullable":true,"type":"object"},"SupersetRulesAllOfCompute":{"title":"SupersetRulesAllOfCompute","nullable":true,"properties":{"cpuCoreLimit":{"$ref":"#/components/schemas/NumberRules"},"cpuCoreRequest":{"$ref":"#/components/schemas/NumberRules"},"cpuMemoryLimit":{"$ref":"#/components/schemas/QuantityRules"},"cpuMemoryRequest":{"$ref":"#/components/schemas/QuantityRules"},"extendedResources":{"$ref":"#/components/schemas/ExtendedResourcesRules"},"gpuDevicesRequest":{"$ref":"#/components/schemas/IntegerRules"},"gpuMemoryLimit":{"$ref":"#/components/schemas/QuantityRules"},"gpuMemoryRequest":{"$ref":"#/components/schemas/QuantityRules"},"gpuPortionLimit":{"$ref":"#/components/schemas/NumberRules"},"gpuPortionRequest":{"$ref":"#/components/schemas/NumberRules"},"gpuRequestType":{"$ref":"#/components/schemas/GpuRequestRules"},"largeShmRequest":{"$ref":"#/components/schemas/BooleanRules"}},"type":"object"},"NumberRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory. default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"number","nullable":true},"max":{"description":"The maximum value that the field can be assigned to.","type":"number","nullable":true},"step":{"description":"The minimal difference between two values the field can be assigned to. For example, min=2, max=3, step=0.25 implies that the values the field can hold are 2, 2.25, 2.5 and 3.","type":"number","nullable":true},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"QuantityRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory, default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable, default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"string","nullable":true,"pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"},"max":{"description":"The maximum value that the field can be assigned to.","type":"string","nullable":true,"pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"ExtendedResourcesRules":{"properties":{"attributes":{"$ref":"#/components/schemas/ExtendedResourceRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ExtendedResourceRules":{"description":"Rules for the attributes of extendedResources","properties":{"quantity":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"GpuRequestRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/GpuRequestOptions"}],"nullable":true,"type":"object"},"GpuRequestOptions":{"properties":{"options":{"description":"Limit the permitted values for gpuRequest to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/GpuRequestType"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ImagePullPolicyRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/ImagePullPolicyOptions"}],"nullable":true,"type":"object"},"ImagePullPolicyOptions":{"properties":{"options":{"description":"Limit the permitted values for imagePullPolicy to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/ImagePullPolicy"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ImagePullSecretsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/ImagePullSecretsRulesAttributes"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ImagePullSecretsRulesAttributes":{"description":"Rules for the attributes of imagePullSecrets","properties":{"name":{"$ref":"#/components/schemas/StringRules"},"userCredentials":{"$ref":"#/components/schemas/BooleanRules"}},"nullable":true,"type":"object"},"ArbitraryRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether this arbitrary object is mandatory. default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field, as a whole, is editable. default to false.","type":"boolean","nullable":true}},"nullable":true,"type":"object"},"PodAffinityRules":{"properties":{"type":{"$ref":"#/components/schemas/PodAffinityTypeRules"},"key":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"PodAffinityTypeRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/PodAffinityTypeOptions"}],"nullable":true,"type":"object"},"PodAffinityTypeOptions":{"properties":{"options":{"type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/PodAffinityType"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"type":"object"},"ProbesRules":{"properties":{"readiness":{"$ref":"#/components/schemas/ProbeRules"}},"nullable":true,"type":"object"},"ProbeRules":{"properties":{"initialDelaySeconds":{"$ref":"#/components/schemas/IntegerRules"},"periodSeconds":{"$ref":"#/components/schemas/IntegerRules"},"timeoutSeconds":{"$ref":"#/components/schemas/IntegerRules"},"successThreshold":{"$ref":"#/components/schemas/IntegerRules"},"failureThreshold":{"$ref":"#/components/schemas/IntegerRules"},"handler":{"$ref":"#/components/schemas/ProbeHandlerRules"}},"nullable":true,"type":"object"},"ProbeHandlerRules":{"properties":{"httpGet":{"properties":{"path":{"$ref":"#/components/schemas/StringRules"},"port":{"$ref":"#/components/schemas/IntegerRules"},"host":{"$ref":"#/components/schemas/StringRules"},"scheme":{"$ref":"#/components/schemas/StringRules"}}}},"nullable":true,"type":"object"},"IntegerRulesOptional":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"max":{"description":"The maximum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"step":{"description":"The minimal difference between two values the field can be assigned to. For example, min=2, max=10, step=2 implies that the values the field can hold are 2, 4, 6, 8 and 10.","type":"integer","format":"int32","nullable":true},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"SeccompProfileTypeRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/SeccompProfileTypeOptions"}],"nullable":true,"type":"object"},"SeccompProfileTypeOptions":{"properties":{"options":{"description":"Limit the permitted values for secompProfileType to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/SeccompProfileType"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"UidGidSourceRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/UidGidSourceOptions"}],"nullable":true,"type":"object"},"UidGidSourceOptions":{"properties":{"options":{"description":"Limit the permitted values for uidGidSource to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/UidGidSource"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ConfigMapsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/ConfigMapRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ConfigMapRules":{"properties":{"configMap":{"$ref":"#/components/schemas/StringRules"},"mountPath":{"$ref":"#/components/schemas/StringRules"},"subPath":{"$ref":"#/components/schemas/StringRules"},"defaultMode":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"EmptyDirsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/EmptyDirRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"EmptyDirRules":{"properties":{"path":{"$ref":"#/components/schemas/StringRules"},"medium":{"$ref":"#/components/schemas/StringRules"},"sizeLimit":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"PvcsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/PvcRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"PvcRules":{"properties":{"claimName":{"$ref":"#/components/schemas/StringRules"},"path":{"$ref":"#/components/schemas/StringRules"},"readOnly":{"$ref":"#/components/schemas/BooleanRules"},"claimInfo":{"$ref":"#/components/schemas/ClaimInfoRules"}},"nullable":true,"type":"object"},"ClaimInfoRules":{"properties":{"size":{"$ref":"#/components/schemas/StringRules"},"storageClass":{"$ref":"#/components/schemas/StringRules"},"accessModes":{"$ref":"#/components/schemas/PvcAccessModesRules"}},"nullable":true,"type":"object"},"PvcAccessModesRules":{"description":"Rules for access mode(s) for a newly created PVC.","properties":{"readWriteOnce":{"$ref":"#/components/schemas/BooleanRules"},"readOnlyMany":{"$ref":"#/components/schemas/BooleanRules"},"readWriteMany":{"$ref":"#/components/schemas/BooleanRules"}},"nullable":true,"type":"object"},"SecretsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/SecretRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"SecretRules":{"properties":{"secret":{"$ref":"#/components/schemas/StringRules"},"mountPath":{"$ref":"#/components/schemas/StringRules"},"defaultMode":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"TolerationsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/TolerationRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"TolerationRules":{"description":"Toleration details.","properties":{"operator":{"$ref":"#/components/schemas/TolerationOperatorRules"},"key":{"$ref":"#/components/schemas/StringRules"},"value":{"$ref":"#/components/schemas/StringRules"},"effect":{"$ref":"#/components/schemas/TolerationEffectRules"},"seconds":{"$ref":"#/components/schemas/IntegerRules"},"exclude":{"$ref":"#/components/schemas/BooleanRules"}},"nullable":true,"type":"object"},"TolerationOperatorRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/TolerationOperatorOptions"}],"nullable":true,"type":"object"},"TolerationOperatorOptions":{"properties":{"options":{"description":"Limit the permitted values for imagePullPolicy to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/TolerationOperator"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"TolerationEffectRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/TolerationEffectOptions"}],"nullable":true,"type":"object"},"TolerationEffectOptions":{"properties":{"options":{"description":"Limit the permitted values for imagePullPolicy to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/TolerationEffect"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"DistributedInferenceWorkerRules":{"properties":{"worker":{"description":"Defines the pod specification for the workers. Required only if the number of workers is greater than 0.","allOf":[{"$ref":"#/components/schemas/DistributedInferenceLeaderWorkerRulesV2"}],"nullable":true,"type":"object"}}},"DistributedInferenceImposedAssets":{"properties":{"leader":{"$ref":"#/components/schemas/ImposedAssets"},"worker":{"$ref":"#/components/schemas/ImposedAssets"}},"nullable":true,"type":"object"},"ImposedAssets":{"description":"a list of datasource assets to import into the policy. these datasources will be included in any workload that will be created in the scope of the policy.","type":"array","items":{"type":"string","format":"uuid"},"nullable":true},"PolicyValidationStatus":{"properties":{"validation":{"properties":{"errorMessage":{"pattern":".*","type":"string","description":"In case validation failed, holds the error message explaining the issue"}},"nullable":true,"type":"object"}},"nullable":true,"type":"object"},"FieldsToReset":{"description":"set of fields in jsonpath format that is requested to clear their policy (default and rules)","type":"array","items":{"type":"string","pattern":".*"}},"DistributedInferencePolicyV2":{"properties":{"meta":{"$ref":"#/components/schemas/PolicyMeta"},"policy":{"$ref":"#/components/schemas/DistributedInferencePolicyDefaultsAndRulesV2"},"effective":{"$ref":"#/components/schemas/DistributedInferencePolicyDefaultsAndRulesV2"},"effectiveUpdatedAt":{"$ref":"#/components/schemas/Timestamp"}},"nullable":true,"type":"object"},"PolicyMeta":{"allOf":[{"$ref":"#/components/schemas/PolicyReadOnlyFields"},{"$ref":"#/components/schemas/PolicyCreationFields"}]},"PolicyReadOnlyFields":{"required":["id","createdBy","createdAt","updatedBy","updatedAt"],"properties":{"id":{"$ref":"#/components/schemas/PolicyId"},"tenantId":{"$ref":"#/components/schemas/TenantId"},"clusterId":{"$ref":"#/components/schemas/ClusterIdOptional"},"createdBy":{"description":"The user who created the policy.","type":"string","minLength":1},"createdAt":{"description":"The time at which the policy wes created","type":"string","minLength":1,"format":"date-time"},"updatedBy":{"description":"The user who updated the policy.","type":"string","minLength":1},"updatedAt":{"description":"The time at which the policy has been updated","type":"string","minLength":1,"format":"date-time"}}},"PolicyId":{"description":"The unique id of the policy.","type":"string","minLength":1,"format":"uuid"},"TenantId":{"description":"The id of the tenant.","type":"integer","format":"int32"},"Timestamp":{"description":"The time at which an event occurred. e.g. the time an effective policy has been updated","type":"string","minLength":1,"format":"date-time"},"Error":{"required":["code","message"],"properties":{"code":{"type":"integer","minimum":100,"maximum":599},"message":{"type":"string"},"details":{"type":"string"}}}},"responses":{"400BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401Unauthorized":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403Forbidden":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503ServiceUnavailable":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/api/v2/policy/distributed-inferences":{"patch":{"summary":"Update a distributed inference policy.","description":"Use to apply changes to a distributed inference policy for a given organizational unit.","operationId":"update_distributed_inference_policy_v2","tags":["Policy"],"parameters":[{"$ref":"#/components/parameters/ValidateOnly"},{"$ref":"#/components/parameters/ApproveClusterDeletion"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DistributedInferencePolicyChangeRequestV2"}}}},"responses":{"200":{"description":"Policy applied.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DistributedInferencePolicyV2"}}}},"400":{"$ref":"#/components/responses/400BadRequest"},"401":{"$ref":"#/components/responses/401Unauthorized"},"403":{"$ref":"#/components/responses/403Forbidden"},"503":{"$ref":"#/components/responses/503ServiceUnavailable"}}}}}}
```

## Get NVIDIA NIM service policy.

> Retrieve the details of NVIDIA NIM service policy for a given organizational unit.

```json
{"openapi":"3.0.3","info":{"title":"NVIDIA Run:ai","version":"2.26"},"tags":[{"name":"Policy","description":"Policies allow administrators to impose restrictions and set default values for researcher workloads. \nRestrictions and default values can be placed on CPUs, GPUs, and other resources or entities. \nFor more information, see [Policies](https://run-ai-docs.nvidia.com/self-hosted/2.26/platform-management/policies/#introduction).\n"}],"servers":[{"url":"https://app.run.ai"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer authentication"}},"parameters":{"PolicyScope":{"name":"scope","in":"query","required":true,"description":"The scope that the policy relates to.","schema":{"type":"string","enum":["tenant","cluster","department","project"]}},"FilterByDepartment":{"name":"departmentId","in":"query","description":"Filter using the department id.","required":false,"schema":{"type":"string"}},"FilterByProject":{"name":"projectId","in":"query","description":"project id to filter by","required":false,"schema":{"type":"string"}},"FilterByCluster":{"name":"clusterId","in":"query","description":"Filter using the Universally Unique Identifier (UUID) of the cluster.","required":false,"schema":{"type":"string","format":"uuid"}}},"schemas":{"NimServicePolicy":{"properties":{"meta":{"$ref":"#/components/schemas/PolicyMeta"},"policy":{"$ref":"#/components/schemas/NimServicePolicyDefaultsAndRules"},"effective":{"$ref":"#/components/schemas/NimServicePolicyDefaultsAndRules"},"effectiveUpdatedAt":{"$ref":"#/components/schemas/Timestamp"}},"nullable":true,"type":"object"},"PolicyMeta":{"allOf":[{"$ref":"#/components/schemas/PolicyReadOnlyFields"},{"$ref":"#/components/schemas/PolicyCreationFields"}]},"PolicyReadOnlyFields":{"required":["id","createdBy","createdAt","updatedBy","updatedAt"],"properties":{"id":{"$ref":"#/components/schemas/PolicyId"},"tenantId":{"$ref":"#/components/schemas/TenantId"},"clusterId":{"$ref":"#/components/schemas/ClusterIdOptional"},"createdBy":{"description":"The user who created the policy.","type":"string","minLength":1},"createdAt":{"description":"The time at which the policy wes created","type":"string","minLength":1,"format":"date-time"},"updatedBy":{"description":"The user who updated the policy.","type":"string","minLength":1},"updatedAt":{"description":"The time at which the policy has been updated","type":"string","minLength":1,"format":"date-time"}}},"PolicyId":{"description":"The unique id of the policy.","type":"string","minLength":1,"format":"uuid"},"TenantId":{"description":"The id of the tenant.","type":"integer","format":"int32"},"ClusterIdOptional":{"description":"The id of the cluster.","type":"string","format":"uuid","minLength":1,"nullable":true},"PolicyCreationFields":{"required":["name","scope"],"properties":{"scope":{"$ref":"#/components/schemas/ScopeType"},"projectId":{"$ref":"#/components/schemas/ProjectIdOptional"},"departmentId":{"$ref":"#/components/schemas/DepartmentIdOptional"},"clusterId":{"$ref":"#/components/schemas/ClusterIdOptional"},"name":{"$ref":"#/components/schemas/PolicyName"}}},"ScopeType":{"type":"string","enum":["system","tenant","cluster","department","project"]},"ProjectIdOptional":{"description":"The id of the project.","type":"integer","format":"int32","nullable":true},"DepartmentIdOptional":{"description":"The id of the department.","type":"string","minLength":1,"nullable":true,"pattern":".*"},"PolicyName":{"description":"A chosen name for the policy.","type":"string","minLength":1,"pattern":".*"},"NimServicePolicyDefaultsAndRules":{"properties":{"defaults":{"allOf":[{"$ref":"#/components/schemas/NimServiceDefaults"}],"nullable":true,"type":"object"},"rules":{"allOf":[{"$ref":"#/components/schemas/NimServiceRules"}],"nullable":true,"type":"object"},"status":{"$ref":"#/components/schemas/PolicyValidationStatus"}},"nullable":true,"type":"object"},"NimServiceDefaults":{"allOf":[{"nullable":true,"properties":{"annotations":{"$ref":"#/components/schemas/AnnotationsDefaults"},"autoscaling":{"nullable":true,"properties":{"maxReplicas":{"$ref":"#/components/schemas/AutoScalingMaxReplicas"},"metric":{"$ref":"#/components/schemas/AutoScalingMetricNim"},"metricThreshold":{"$ref":"#/components/schemas/AutoScalingMetricThreshold"},"minReplicas":{"$ref":"#/components/schemas/AutoScalingMinReplicas"},"scaleWindowSeconds":{"$ref":"#/components/schemas/AutoScalingScaleWindowSeconds"}},"type":"object"},"category":{"$ref":"#/components/schemas/Category"},"compute":{"nullable":true,"properties":{"cpuCoreLimit":{"$ref":"#/components/schemas/CpuCoreLimit"},"cpuCoreRequest":{"$ref":"#/components/schemas/CpuCoreRequest"},"cpuMemoryLimit":{"$ref":"#/components/schemas/CpuMemoryLimit"},"cpuMemoryRequest":{"$ref":"#/components/schemas/CpuMemoryRequest"},"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"}},"type":"object"},"environmentVariables":{"$ref":"#/components/schemas/EnvironmentVariablesDefaults"},"image":{"$ref":"#/components/schemas/Image"},"imagePullPolicy":{"$ref":"#/components/schemas/ImagePullPolicy"},"imagePullSecrets":{"$ref":"#/components/schemas/ImagePullSecretsDefaults"},"labels":{"$ref":"#/components/schemas/LabelsDefaults"},"modelStore":{"nullable":true,"properties":{"nimCache":{"$ref":"#/components/schemas/NimCache"},"pvc":{"$ref":"#/components/schemas/NimServicePvcFields"}},"type":"object"},"multiNode":{"$ref":"#/components/schemas/NimServiceMultiNode"},"ngcAuthSecret":{"$ref":"#/components/schemas/NimServiceNgcAuthSecret"},"nodePools":{"$ref":"#/components/schemas/NodePools"},"preemptibility":{"$ref":"#/components/schemas/Preemptibility"},"priorityClass":{"$ref":"#/components/schemas/PriorityClass"},"probes":{"$ref":"#/components/schemas/Probes"},"replicas":{"$ref":"#/components/schemas/NimServiceReplicas"},"security":{"nullable":true,"properties":{"runAsGid":{"$ref":"#/components/schemas/RunAsGid"},"runAsUid":{"$ref":"#/components/schemas/RunAsUid"}},"type":"object"},"servingPort":{"$ref":"#/components/schemas/NimServiceServingPort"},"tolerations":{"$ref":"#/components/schemas/TolerationsDefaults"}},"type":"object"}]},"AnnotationsDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/Annotations"}},"nullable":true,"type":"object"},"Annotations":{"description":"Set of annotations to populate into the container running the workload.","type":"array","items":{"$ref":"#/components/schemas/Annotation"},"maxItems":1000,"nullable":true},"Annotation":{"description":"Annotation details to be populated into the container.","properties":{"name":{"description":"The name of the annotation (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":".*"},"value":{"description":"The value of the annotation.","type":"string","maxLength":10000,"nullable":true,"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","default":false,"nullable":true}},"nullable":true,"type":"object"},"AutoScalingMaxReplicas":{"description":"The maximum number of replicas for autoscaling. Defaults to minReplicas. Must be no less than minReplicas.","type":"integer","format":"int32","minimum":1,"nullable":true},"AutoScalingMetricNim":{"description":"The metric to use for autoscaling (mandatory).","type":"string","pattern":"^[a-zA-Z_:][a-zA-Z0-9_:]*$","nullable":true},"AutoScalingMetricThreshold":{"description":"The threshold to use with the specified metric for autoscaling (mandatory).","type":"integer","format":"int32","nullable":true},"AutoScalingMinReplicas":{"description":"The minimum number of replicas for autoscaling. Defaults to 1.","type":"integer","format":"int32","minimum":1,"nullable":true},"AutoScalingScaleWindowSeconds":{"description":"The time window for autoscaling decisions, in seconds. Defaults to 300 seconds.","type":"integer","format":"int32","minimum":60,"maximum":3600,"nullable":true},"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":".*"},"CpuCoreLimit":{"description":"Limitations on the number of CPUs consumed by the workload (0.5, 1, .etc). The system guarantees that this workload will not be able to consume more than this amount of CPUs.","format":"double","type":"number","nullable":true,"minimum":0},"CpuCoreRequest":{"description":"CPU units to allocate for the created workload (0.5, 1, .etc). The workload will receive at least this amount of CPU. Note that the workload will not be scheduled unless the system can guarantee this amount of CPUs to the workload.","format":"double","type":"number","nullable":true,"minimum":0},"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]*)$","maxLength":63,"nullable":true},"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","pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$","maxLength":63,"nullable":true},"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","format":"int32","nullable":true,"minimum":0},"GpuMemoryLimit":{"description":"Limitation on the memory consumed by the workload, per GPU device. The system guarantees The gpuMemoryLimit must be no less than gpuMemoryRequest.","type":"string","pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$","maxLength":63,"nullable":true},"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]*)$","maxLength":63,"nullable":true},"GpuPortionLimit":{"description":"Limitations on the portion consumed by the workload, per GPU device. The system guarantees The gpuPotionLimit must be no less than the gpuPortionRequest.","type":"number","format":"double","nullable":true,"minimum":0},"GpuPortionRequest":{"description":"Required if and only if gpuRequestType is portion. States the portion of the GPU to allocate for the created workload, per GPU device, between 0 and 1. The default is no allocated GPUs.","type":"number","format":"double","nullable":true,"minimum":0},"GpuRequestType":{"description":"Sets the unit type for GPU resources requests. Stated in terms of portion or memory. Sets the unit type for other GPU request fields. If `gpuDevicesRequest > 1`, only `portion` is supported. If `gpuDeviceRequest = 1`, the request type can be stated as `portion` or `memory`.","type":"string","minLength":1,"enum":["portion","memory"],"nullable":true},"EnvironmentVariablesDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/EnvironmentVariables"}},"nullable":true,"type":"object"},"EnvironmentVariables":{"description":"Set of environment variables to populate into the container running the workload.","type":"array","items":{"$ref":"#/components/schemas/EnvironmentVariable"},"maxItems":1000,"nullable":true},"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,"maxLength":63,"nullable":true,"pattern":".*"},"value":{"description":"The value of the environment variable. (mutually exclusive with secret, userCredential, configMap and podFieldRef)","type":"string","maxLength":10000,"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","nullable":true},"description":{"description":"Description of the environment variable.","type":"string","maxLength":250,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"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,"maxLength":253,"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,"maxLength":63,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"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","minLength":1,"maxLength":253,"nullable":true,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$"},"key":{"description":"The key in the config-map resource. (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"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","minLength":1,"maxLength":10000,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"EnvironmentVariableUserCredential":{"description":"Defines a reference to a user-created credential and a specific key within that credential whose value will populate the environment variable. User credentials can only be accessed by the user who created them.","properties":{"name":{"description":"The name of the user credential.  (mandatory)","type":"string","minLength":1,"maxLength":253,"nullable":true},"key":{"description":"The key in the user credential resource. (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true}},"nullable":true,"type":"object"},"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","minLength":1,"maxLength":253,"nullable":true,"pattern":".*"},"ImagePullPolicy":{"description":"Image pull policy. Defaults to `Always` if `:latest` tag is specified, otherwise it is `IfNotPresent`.","type":"string","minLength":1,"enum":["Always","Never","IfNotPresent"],"nullable":true},"ImagePullSecretsDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/ImagePullSecrets"}},"nullable":true,"type":"object"},"ImagePullSecrets":{"description":"A list of references to Kubernetes secrets in the same namespace used for pulling container images.","type":"array","items":{"$ref":"#/components/schemas/ImagePullSecret"},"maxItems":1000,"nullable":true},"ImagePullSecret":{"description":"A reference to a secret in the same namespace used to pull container images.","properties":{"name":{"type":"string","description":"The name of the Kubernetes secret containing the image pull credentials.","pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$","maxLength":253},"userCredential":{"type":"boolean","description":"Indicates whether the secret is a user credential. Set to true if the secret was created by the user and is only accessible by them.","nullable":true},"exclude":{"description":"Use 'true' in case the secret is defined in defaults of the policy, and you wish to exclude it from the workload.","type":"boolean","default":false,"nullable":true}},"nullable":true,"type":"object"},"LabelsDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/Labels"}},"nullable":true,"type":"object"},"Labels":{"description":"Set of labels to populate into the container running the workload.","type":"array","items":{"$ref":"#/components/schemas/Label"},"maxItems":1000,"nullable":true},"Label":{"description":"Label details to be populated into the container.","properties":{"name":{"description":"The name of the label (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":".*"},"value":{"description":"The value of the label.","type":"string","nullable":true,"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","nullable":true}},"nullable":true,"type":"object"},"NimCache":{"description":"The specification of a NIM cache volume.","type":"object","properties":{"name":{"description":"The NIMCache resource name (mandatory).","type":"string","minLength":1,"nullable":true},"profile":{"description":"The NIM profile to use (optional).","type":"string","minLength":1,"nullable":true}},"nullable":true},"NimServicePvcFields":{"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,"nullable":true,"pattern":".*"},"readOnly":{"description":"Permit only read access to PVC.","type":"boolean","default":false,"nullable":true},"claimInfo":{"$ref":"#/components/schemas/ClaimInfo"}},"nullable":true,"type":"object"},"ClaimInfo":{"description":"Claim information for the newly created PVC. The information should not be provided when attempting to use existing PVC.","properties":{"size":{"$ref":"#/components/schemas/PvcClaimSize"},"storageClass":{"description":"Storage class name to associate with the PVC. This parameter may be omitted if there is a single storage class in the system, or you are using the default storage class. For more information, see [Storage class](https://kubernetes.io/docs/concepts/storage/storage-classes).","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$"},"accessModes":{"$ref":"#/components/schemas/PvcAccessModes"},"volumeMode":{"$ref":"#/components/schemas/PvcVolumeMode"},"addedAttrValues":{"$ref":"#/components/schemas/PvcAddedAttrValues"}},"nullable":true,"type":"object"},"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]*)$","maxLength":63,"nullable":true},"PvcAccessModes":{"description":"Default access mode(s) applied to newly created PVCs unless explicitly overridden.","properties":{"readWriteOnce":{"description":"Mount the volume as read/write by a single node.","type":"boolean","default":true,"nullable":true},"readOnlyMany":{"description":"Mount the volume as read-only by many nodes.","type":"boolean","default":false,"nullable":true},"readWriteMany":{"description":"Mount the volume as read/write by many nodes.","type":"boolean","default":false,"nullable":true}},"nullable":true,"type":"object"},"PvcVolumeMode":{"description":"Default volume mode for the PVC. Choose between Filesystem (default) or Block.","type":"string","enum":["Filesystem","Block"],"nullable":true},"PvcAddedAttrValues":{"description":"an optional array of key-values pairs that are written as annotations on the created PVC. the allowed attributes are determined according to the storage class configuration (see k8s-objects-tracker for further info).","type":"array","items":{"$ref":"#/components/schemas/PvcAddedAttrValue"},"maxItems":1000},"PvcAddedAttrValue":{"type":"object","required":["key"],"properties":{"key":{"type":"string","minLength":1,"maxLength":63,"pattern":"^([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]$"},"value":{"type":"string","pattern":".*","maxLength":10000}}},"NimServiceMultiNode":{"description":"Defines whether the NIM service runs as a multi-node deployment. If workers is set to 1 or more, the service runs in multi-node.","properties":{"workers":{"$ref":"#/components/schemas/NimServiceWorkers"}},"nullable":true,"type":"object"},"NimServiceWorkers":{"description":"Specifies the number of worker nodes to use when running the NIM service in multi-node.","type":"integer","format":"int32","minimum":1,"maximum":1000,"nullable":true},"NimServiceNgcAuthSecret":{"description":"The name of a Kubernetes secret containing the NGC access credentials. The secret must contain a key named NGC_API_KEY with the API key as the value.","type":"string","pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$","nullable":true},"NodePools":{"description":"A prioritized list of node pools for the scheduler to run the workload on. The scheduler will always try to use the first node pool before moving to the next one if the first is not available.","type":"array","items":{"type":"string","maxLength":63,"pattern":".*"},"maxItems":1000,"nullable":true},"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","minLength":1,"enum":["preemptible","non-preemptible"],"nullable":true},"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","nullable":true,"pattern":".*"},"Probes":{"description":"Probes are used to determine if the container is healthy and ready to accept traffic.","type":"object","properties":{"readiness":{"$ref":"#/components/schemas/Probe"}},"nullable":true},"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},"ProbeHandler":{"description":"The action taken to determine the health of the container. (mandatory)","type":"object","properties":{"httpGet":{"description":"An action based on HTTP Get requests.","type":"object","properties":{"path":{"description":"Path to access on the HTTP server, defaults to /.","type":"string","pattern":"^(\\x2F[a-zA-Z0-9\\-_.\\x2F]*)?$","nullable":true,"maxLength":2048},"port":{"description":"Number of the port to access on the container.","type":"integer","format":"int32","minimum":1,"maximum":65535,"nullable":true},"host":{"description":"Host name to connect to, defaults to the pod IP.","type":"string","format":"hostname","nullable":true,"pattern":".*","maxLength":253},"scheme":{"$ref":"#/components/schemas/ProbeHandlerScheme"}}}},"nullable":true},"ProbeHandlerScheme":{"description":"Scheme to use for connecting to the host, defaults to HTTP.","type":"string","enum":["HTTP","HTTPS"],"nullable":true},"NimServiceReplicas":{"default":1,"description":"The number of replicas to deploy.","type":"integer","format":"int32","minimum":0,"maximum":1000,"nullable":true},"RunAsGid":{"description":"The group id to run the entrypoint of the container which executes the workspace. Default to the value specified in the environment asset `runAsGid` field (optional). Use only when the source uid/gid of the environment asset is not `fromTheImage`, and `overrideUidGidInWorkspace` is enabled.","type":"integer","format":"int64","nullable":true},"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","format":"int64","nullable":true},"NimServiceServingPort":{"description":"A port for accessing the inference service.\nAuthorization fields (authorizationType, authorizedUsers, authorizedGroups) are supported for cluster version 2.25 and above.\n","properties":{"serviceType":{"$ref":"#/components/schemas/ServingPortServiceType"},"port":{"$ref":"#/components/schemas/ServingPortPort"},"grpcPort":{"$ref":"#/components/schemas/ServingPortGrpcPort"},"metricsPort":{"$ref":"#/components/schemas/ServingPortMetricsPort"},"exposeExternally":{"$ref":"#/components/schemas/ServingPortExposeExternally"},"exposedUrl":{"$ref":"#/components/schemas/ServingPortExposedUrl"},"exposedProtocol":{"$ref":"#/components/schemas/ServingPortExposedProtocol"},"authorizationType":{"$ref":"#/components/schemas/NimServiceServingPortAuthorizationType"},"authorizedUsers":{"$ref":"#/components/schemas/NimServiceServingPortAuthorizedUsers"},"authorizedGroups":{"$ref":"#/components/schemas/NimServiceServingPortAuthorizedGroups"}},"nullable":true,"type":"object"},"ServingPortServiceType":{"description":"The type of Kubernetes service to create for the inference deployment. Options include 'ClusterIP' (default), 'NodePort', 'LoadBalancer', and 'ExternalName'.","type":"string","default":"ClusterIP","enum":["ClusterIP","NodePort","LoadBalancer","ExternalName"],"nullable":true},"ServingPortPort":{"description":"The port that the container running the inference service exposes (mandatory).","type":"integer","format":"int32","minimum":1,"maximum":65535,"nullable":true},"ServingPortGrpcPort":{"description":"The GRPC port that the container running the inference service exposes.","type":"integer","format":"int32","minimum":1,"maximum":65535,"nullable":true},"ServingPortMetricsPort":{"description":"The port where metrics are exposed, required only if it's different than the main port.","type":"integer","format":"int32","minimum":1,"maximum":65535,"nullable":true},"ServingPortExposeExternally":{"description":"Indicates whether the inference serving endpoint should be accessible outside the cluster. If set to true, the endpoint will be exposed externally. To enable external access, your administrator must configure the cluster as described in the [inference requirements](https://run-ai-docs.nvidia.com/self-hosted/2.26/getting-started/installation/system-requirements#inference). section.","type":"boolean","nullable":true,"default":true},"ServingPortExposedUrl":{"description":"The custom URL to use for the serving port. If empty (default), an autogenerated URL will be used.","type":"string","nullable":true,"pattern":".*"},"ServingPortExposedProtocol":{"description":"The protocol to use for the exposed URL. If grpcPort is set, this defaults to grpc. Otherwise, it defaults to http.","type":"string","enum":["http","grpc"],"nullable":true},"NimServiceServingPortAuthorizationType":{"type":"string","description":"Specifies who can send requests to the serving endpoint:\n\nPossible values:\n- `public`: No authorization is required. (Default)\n- `authenticatedUsers`: Any NVIDIA Run:ai authenticated user and service account can send requests.\n- `authorizedUsers`: Only users listed in the authorizedUsers field can send requests.\n- `authorizedGroups`: Only members of user groups listed in the authorizedGroups field can send requests.\n","enum":["public","authenticatedUsers","authorizedUsers","authorizedGroups"],"nullable":true},"NimServiceServingPortAuthorizedUsers":{"description":"A list of users and service accounts allowed to send requests to the serving endpoint. `Note:` Cannot be used together with authorizedGroups.","type":"array","items":{"type":"string","maxLength":253,"pattern":".*"},"maxItems":1000,"nullable":true},"NimServiceServingPortAuthorizedGroups":{"description":"A list of user groups allowed to send requests to the serving endpoint. `Note:` Cannot be used together with authorizedUsers.","type":"array","items":{"type":"string","maxLength":253,"pattern":".*"},"maxItems":1000,"nullable":true},"TolerationsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/Toleration"},"instances":{"$ref":"#/components/schemas/Tolerations"}},"nullable":true,"type":"object"},"Toleration":{"description":"Toleration details.","properties":{"name":{"description":"The name of the toleration.","type":"string","minLength":1,"maxLength":253,"nullable":true,"pattern":".*"},"operator":{"$ref":"#/components/schemas/TolerationOperator"},"key":{"description":"The taint key that the toleration applies to. (mandatory)","type":"string","maxLength":253,"nullable":true,"pattern":".*"},"value":{"description":"The taint value the toleration matches to. Mandatory if operator is Exists, forbidden otherwise.","type":"string","maxLength":10000,"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","nullable":true}},"nullable":true,"type":"object"},"TolerationOperator":{"description":"A key's relationship to the value. Equal uses key and value. Exists is equivalent to wildcard for value, so that a workload can tolerate all taints of a particular category. (mandatory)","type":"string","enum":["Equal","Exists"],"nullable":true},"TolerationEffect":{"description":"The taint effect to match. (mandatory)","type":"string","enum":["NoSchedule","NoExecute","PreferNoSchedule","Any"],"nullable":true},"Tolerations":{"description":"Set of tolerations to apply to the workload.","type":"array","items":{"$ref":"#/components/schemas/Toleration"},"maxItems":1000,"nullable":true},"NimServiceRules":{"allOf":[{"nullable":true,"properties":{"annotations":{"$ref":"#/components/schemas/InstancesRules"},"autoscaling":{"nullable":true,"properties":{"maxReplicas":{"$ref":"#/components/schemas/IntegerRules"},"metric":{"$ref":"#/components/schemas/StringRules"},"metricThreshold":{"$ref":"#/components/schemas/IntegerRules"},"minReplicas":{"$ref":"#/components/schemas/IntegerRules"},"scaleWindowSeconds":{"$ref":"#/components/schemas/IntegerRules"}},"type":"object"},"category":{"$ref":"#/components/schemas/StringRules"},"compute":{"nullable":true,"properties":{"cpuCoreLimit":{"$ref":"#/components/schemas/NumberRules"},"cpuCoreRequest":{"$ref":"#/components/schemas/NumberRules"},"cpuMemoryLimit":{"$ref":"#/components/schemas/QuantityRules"},"cpuMemoryRequest":{"$ref":"#/components/schemas/QuantityRules"},"gpuDevicesRequest":{"$ref":"#/components/schemas/IntegerRules"},"gpuMemoryLimit":{"$ref":"#/components/schemas/QuantityRules"},"gpuMemoryRequest":{"$ref":"#/components/schemas/QuantityRules"},"gpuPortionLimit":{"$ref":"#/components/schemas/NumberRules"},"gpuPortionRequest":{"$ref":"#/components/schemas/NumberRules"},"gpuRequestType":{"$ref":"#/components/schemas/GpuRequestRules"}},"type":"object"},"environmentVariables":{"$ref":"#/components/schemas/InstancesRules"},"image":{"$ref":"#/components/schemas/StringRules"},"imagePullPolicy":{"$ref":"#/components/schemas/ImagePullPolicyRules"},"imagePullSecrets":{"$ref":"#/components/schemas/ImagePullSecretsRules"},"labels":{"$ref":"#/components/schemas/InstancesRules"},"modelStore":{"nullable":true,"properties":{"nimCache":{"$ref":"#/components/schemas/NimCacheRules"},"pvc":{"$ref":"#/components/schemas/PvcRules"}},"type":"object"},"multiNode":{"$ref":"#/components/schemas/NimServiceMultiNodeRules"},"ngcAuthSecret":{"$ref":"#/components/schemas/StringRules"},"nodePools":{"$ref":"#/components/schemas/ArrayRules"},"preemptibility":{"$ref":"#/components/schemas/PreemptibilityRules"},"priorityClass":{"$ref":"#/components/schemas/StringRules"},"probes":{"$ref":"#/components/schemas/ProbesRules"},"replicas":{"$ref":"#/components/schemas/IntegerRules"},"security":{"nullable":true,"properties":{"runAsGid":{"$ref":"#/components/schemas/IntegerRulesOptional"},"runAsUid":{"$ref":"#/components/schemas/IntegerRulesOptional"}},"type":"object"},"servingPort":{"$ref":"#/components/schemas/NimServiceServingPortRules"},"tolerations":{"$ref":"#/components/schemas/TolerationsRules"}},"type":"object"}]},"InstancesRules":{"properties":{"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ItemRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"canAdd":{"description":"Whether it is permitted to add items. Default to true.","type":"boolean","nullable":true},"locked":{"description":"Set of keys for items that are \"locked\", i.e. cannot be removed or deleted.","type":"array","items":{"type":"string"}}},"nullable":true,"type":"object"},"SourceOfRule":{"description":"This field is used by the system along with effective rules, in order to specify the org unit from which this effective rule has been derived. It should be left empty when sending apply policy requests.","required":["scope"],"properties":{"scope":{"$ref":"#/components/schemas/ScopeType"},"projectId":{"$ref":"#/components/schemas/ProjectIdOptional"},"departmentId":{"$ref":"#/components/schemas/DepartmentIdOptional"},"clusterId":{"$ref":"#/components/schemas/ClusterIdOptional"},"isFallback":{"description":"source of this rule is the fallback policy","type":"boolean"}},"nullable":true,"type":"object"},"IntegerRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory. default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"max":{"description":"The maximum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"step":{"description":"The minimal difference between two values the field can be assigned to. For example, min=2, max=10, step=2 implies that the values the field can hold are 2, 4, 6, 8 and 10.","type":"integer","format":"int32","nullable":true},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"DefaultFromRule":{"properties":{"field":{"description":"The default of this field is taken from another field, with optional factor. The specified field must belong to the same workload section (compute, security, etc). For itemized field, the value of the field will be taken from the same instance.","type":"string","nullable":true,"pattern":".*"},"factor":{"description":"Multiple the value of the fromField by this factor to get the value for this field For example, if factor is 2 and defaultFrom field has value of 8, the calculated default will be determined to be 16.","type":"number","format":"double","nullable":true,"default":1}},"nullable":true,"type":"object"},"StringRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/StringRulesOptions"}],"nullable":true,"type":"object"},"StringRulesCommon":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory, default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable, default to true","type":"boolean","nullable":true},"blocked":{"description":"Blocks the field to prevent workloads from specifying any value for it.","type":"boolean","nullable":true}}},"StringRulesOptions":{"properties":{"options":{"description":"Set of options that the value of the field must be chosen from.","type":"array","items":{"$ref":"#/components/schemas/StringOption"},"nullable":true}}},"StringOption":{"description":"One of the values that the field can be assigned to, when options police is applied on the field.","required":["value"],"properties":{"value":{"description":"The value that the field should hold","type":"string","pattern":".*"},"displayed":{"description":"Textual description of the value. to be used by user interface applications.","type":"string","nullable":true,"pattern":".*"}}},"NumberRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory. default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"number","nullable":true},"max":{"description":"The maximum value that the field can be assigned to.","type":"number","nullable":true},"step":{"description":"The minimal difference between two values the field can be assigned to. For example, min=2, max=3, step=0.25 implies that the values the field can hold are 2, 2.25, 2.5 and 3.","type":"number","nullable":true},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"QuantityRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory, default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable, default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"string","nullable":true,"pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"},"max":{"description":"The maximum value that the field can be assigned to.","type":"string","nullable":true,"pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"GpuRequestRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/GpuRequestOptions"}],"nullable":true,"type":"object"},"GpuRequestOptions":{"properties":{"options":{"description":"Limit the permitted values for gpuRequest to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/GpuRequestType"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ImagePullPolicyRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/ImagePullPolicyOptions"}],"nullable":true,"type":"object"},"ImagePullPolicyOptions":{"properties":{"options":{"description":"Limit the permitted values for imagePullPolicy to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/ImagePullPolicy"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ImagePullSecretsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/ImagePullSecretsRulesAttributes"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ImagePullSecretsRulesAttributes":{"description":"Rules for the attributes of imagePullSecrets","properties":{"name":{"$ref":"#/components/schemas/StringRules"},"userCredentials":{"$ref":"#/components/schemas/BooleanRules"}},"nullable":true,"type":"object"},"BooleanRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory. default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true}},"nullable":true,"type":"object"},"NimCacheRules":{"properties":{"name":{"$ref":"#/components/schemas/StringRules"},"profile":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"PvcRules":{"properties":{"claimName":{"$ref":"#/components/schemas/StringRules"},"path":{"$ref":"#/components/schemas/StringRules"},"readOnly":{"$ref":"#/components/schemas/BooleanRules"},"claimInfo":{"$ref":"#/components/schemas/ClaimInfoRules"}},"nullable":true,"type":"object"},"ClaimInfoRules":{"properties":{"size":{"$ref":"#/components/schemas/StringRules"},"storageClass":{"$ref":"#/components/schemas/StringRules"},"accessModes":{"$ref":"#/components/schemas/PvcAccessModesRules"}},"nullable":true,"type":"object"},"PvcAccessModesRules":{"description":"Rules for access mode(s) for a newly created PVC.","properties":{"readWriteOnce":{"$ref":"#/components/schemas/BooleanRules"},"readOnlyMany":{"$ref":"#/components/schemas/BooleanRules"},"readWriteMany":{"$ref":"#/components/schemas/BooleanRules"}},"nullable":true,"type":"object"},"NimServiceMultiNodeRules":{"properties":{"workers":{"$ref":"#/components/schemas/IntegerRules"}},"nullable":true,"type":"object"},"ArrayRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether this array is mandatory. Mandatory array must include at least one item. default to false.","type":"boolean","nullable":true},"options":{"description":"Set of options that the value of each item of the array must be chosen from.","type":"array","items":{"$ref":"#/components/schemas/StringOption"}},"canEdit":{"description":"Whether the value of the array, as a whole, is editable. default to false.","type":"boolean","nullable":true}},"nullable":true,"type":"object"},"PreemptibilityRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/PreemptibilityOptions"}],"nullable":true,"type":"object"},"PreemptibilityOptions":{"properties":{"options":{"description":"Limit the permitted values for preemptibility to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/Preemptibility"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ProbesRules":{"properties":{"readiness":{"$ref":"#/components/schemas/ProbeRules"}},"nullable":true,"type":"object"},"ProbeRules":{"properties":{"initialDelaySeconds":{"$ref":"#/components/schemas/IntegerRules"},"periodSeconds":{"$ref":"#/components/schemas/IntegerRules"},"timeoutSeconds":{"$ref":"#/components/schemas/IntegerRules"},"successThreshold":{"$ref":"#/components/schemas/IntegerRules"},"failureThreshold":{"$ref":"#/components/schemas/IntegerRules"},"handler":{"$ref":"#/components/schemas/ProbeHandlerRules"}},"nullable":true,"type":"object"},"ProbeHandlerRules":{"properties":{"httpGet":{"properties":{"path":{"$ref":"#/components/schemas/StringRules"},"port":{"$ref":"#/components/schemas/IntegerRules"},"host":{"$ref":"#/components/schemas/StringRules"},"scheme":{"$ref":"#/components/schemas/StringRules"}}}},"nullable":true,"type":"object"},"IntegerRulesOptional":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"max":{"description":"The maximum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"step":{"description":"The minimal difference between two values the field can be assigned to. For example, min=2, max=10, step=2 implies that the values the field can hold are 2, 4, 6, 8 and 10.","type":"integer","format":"int32","nullable":true},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"NimServiceServingPortRules":{"description":"A port for accessing the inference service","properties":{"serviceType":{"$ref":"#/components/schemas/ServingPortServiceTypeRules"},"port":{"$ref":"#/components/schemas/IntegerRules"},"grpcPort":{"$ref":"#/components/schemas/IntegerRules"},"metricsPort":{"$ref":"#/components/schemas/IntegerRules"},"exposeExternally":{"$ref":"#/components/schemas/BooleanRules"},"exposedUrl":{"$ref":"#/components/schemas/StringRules"},"exposedProtocol":{"$ref":"#/components/schemas/ServingPortExposedProtocolRules"},"authorizationType":{"$ref":"#/components/schemas/NimServiceServingPortAuthorizationTypeRules"},"authorizedUsers":{"$ref":"#/components/schemas/ArrayRules"},"authorizedGroups":{"$ref":"#/components/schemas/ArrayRules"}},"nullable":true,"type":"object"},"ServingPortServiceTypeRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/ServingPortServiceTypeOptions"}],"nullable":true,"type":"object"},"ServingPortServiceTypeOptions":{"properties":{"options":{"type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/ServingPortServiceType"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ServingPortExposedProtocolRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/ServingPortExposedProtocolOptions"}],"nullable":true,"type":"object"},"ServingPortExposedProtocolOptions":{"properties":{"options":{"type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/ServingPortExposedProtocol"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"NimServiceServingPortAuthorizationTypeRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/NimServiceServingPortAuthorizationTypeOptions"}],"nullable":true,"type":"object"},"NimServiceServingPortAuthorizationTypeOptions":{"properties":{"options":{"type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/NimServiceServingPortAuthorizationType"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"TolerationsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/TolerationRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"TolerationRules":{"description":"Toleration details.","properties":{"operator":{"$ref":"#/components/schemas/TolerationOperatorRules"},"key":{"$ref":"#/components/schemas/StringRules"},"value":{"$ref":"#/components/schemas/StringRules"},"effect":{"$ref":"#/components/schemas/TolerationEffectRules"},"seconds":{"$ref":"#/components/schemas/IntegerRules"},"exclude":{"$ref":"#/components/schemas/BooleanRules"}},"nullable":true,"type":"object"},"TolerationOperatorRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/TolerationOperatorOptions"}],"nullable":true,"type":"object"},"TolerationOperatorOptions":{"properties":{"options":{"description":"Limit the permitted values for imagePullPolicy to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/TolerationOperator"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"TolerationEffectRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/TolerationEffectOptions"}],"nullable":true,"type":"object"},"TolerationEffectOptions":{"properties":{"options":{"description":"Limit the permitted values for imagePullPolicy to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/TolerationEffect"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"PolicyValidationStatus":{"properties":{"validation":{"properties":{"errorMessage":{"pattern":".*","type":"string","description":"In case validation failed, holds the error message explaining the issue"}},"nullable":true,"type":"object"}},"nullable":true,"type":"object"},"Timestamp":{"description":"The time at which an event occurred. e.g. the time an effective policy has been updated","type":"string","minLength":1,"format":"date-time"},"Error":{"required":["code","message"],"properties":{"code":{"type":"integer","minimum":100,"maximum":599},"message":{"type":"string"},"details":{"type":"string"}}}},"responses":{"400BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401Unauthorized":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403Forbidden":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404NotFound":{"description":"The specified resource was not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503ServiceUnavailable":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/api/v2/policy/nim-services":{"get":{"summary":"Get NVIDIA NIM service policy.","description":"Retrieve the details of NVIDIA NIM service policy for a given organizational unit.","operationId":"get_nim_service_policy","tags":["Policy"],"parameters":[{"$ref":"#/components/parameters/PolicyScope"},{"$ref":"#/components/parameters/FilterByDepartment"},{"$ref":"#/components/parameters/FilterByProject"},{"$ref":"#/components/parameters/FilterByCluster"}],"responses":{"200":{"description":"Request completed successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NimServicePolicy"}}}},"400":{"$ref":"#/components/responses/400BadRequest"},"401":{"$ref":"#/components/responses/401Unauthorized"},"403":{"$ref":"#/components/responses/403Forbidden"},"404":{"$ref":"#/components/responses/404NotFound"},"503":{"$ref":"#/components/responses/503ServiceUnavailable"}}}}}}
```

## Overwrite NVIDIA NIM service policy.

> Use to apply NVIDIA NIM service policy for a given organizational unit.

```json
{"openapi":"3.0.3","info":{"title":"NVIDIA Run:ai","version":"2.26"},"tags":[{"name":"Policy","description":"Policies allow administrators to impose restrictions and set default values for researcher workloads. \nRestrictions and default values can be placed on CPUs, GPUs, and other resources or entities. \nFor more information, see [Policies](https://run-ai-docs.nvidia.com/self-hosted/2.26/platform-management/policies/#introduction).\n"}],"servers":[{"url":"https://app.run.ai"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer authentication"}},"parameters":{"ValidateOnly":{"name":"validateOnly","in":"query","required":false,"description":"Validate the given policy payload without applying it","schema":{"type":"boolean"}}},"schemas":{"NimServicePolicyOverwriteRequest":{"properties":{"meta":{"$ref":"#/components/schemas/PolicyCreationFields"},"policy":{"$ref":"#/components/schemas/NimServicePolicyDefaultsAndRules"}},"type":"object"},"PolicyCreationFields":{"required":["name","scope"],"properties":{"scope":{"$ref":"#/components/schemas/ScopeType"},"projectId":{"$ref":"#/components/schemas/ProjectIdOptional"},"departmentId":{"$ref":"#/components/schemas/DepartmentIdOptional"},"clusterId":{"$ref":"#/components/schemas/ClusterIdOptional"},"name":{"$ref":"#/components/schemas/PolicyName"}}},"ScopeType":{"type":"string","enum":["system","tenant","cluster","department","project"]},"ProjectIdOptional":{"description":"The id of the project.","type":"integer","format":"int32","nullable":true},"DepartmentIdOptional":{"description":"The id of the department.","type":"string","minLength":1,"nullable":true,"pattern":".*"},"ClusterIdOptional":{"description":"The id of the cluster.","type":"string","format":"uuid","minLength":1,"nullable":true},"PolicyName":{"description":"A chosen name for the policy.","type":"string","minLength":1,"pattern":".*"},"NimServicePolicyDefaultsAndRules":{"properties":{"defaults":{"allOf":[{"$ref":"#/components/schemas/NimServiceDefaults"}],"nullable":true,"type":"object"},"rules":{"allOf":[{"$ref":"#/components/schemas/NimServiceRules"}],"nullable":true,"type":"object"},"status":{"$ref":"#/components/schemas/PolicyValidationStatus"}},"nullable":true,"type":"object"},"NimServiceDefaults":{"allOf":[{"nullable":true,"properties":{"annotations":{"$ref":"#/components/schemas/AnnotationsDefaults"},"autoscaling":{"nullable":true,"properties":{"maxReplicas":{"$ref":"#/components/schemas/AutoScalingMaxReplicas"},"metric":{"$ref":"#/components/schemas/AutoScalingMetricNim"},"metricThreshold":{"$ref":"#/components/schemas/AutoScalingMetricThreshold"},"minReplicas":{"$ref":"#/components/schemas/AutoScalingMinReplicas"},"scaleWindowSeconds":{"$ref":"#/components/schemas/AutoScalingScaleWindowSeconds"}},"type":"object"},"category":{"$ref":"#/components/schemas/Category"},"compute":{"nullable":true,"properties":{"cpuCoreLimit":{"$ref":"#/components/schemas/CpuCoreLimit"},"cpuCoreRequest":{"$ref":"#/components/schemas/CpuCoreRequest"},"cpuMemoryLimit":{"$ref":"#/components/schemas/CpuMemoryLimit"},"cpuMemoryRequest":{"$ref":"#/components/schemas/CpuMemoryRequest"},"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"}},"type":"object"},"environmentVariables":{"$ref":"#/components/schemas/EnvironmentVariablesDefaults"},"image":{"$ref":"#/components/schemas/Image"},"imagePullPolicy":{"$ref":"#/components/schemas/ImagePullPolicy"},"imagePullSecrets":{"$ref":"#/components/schemas/ImagePullSecretsDefaults"},"labels":{"$ref":"#/components/schemas/LabelsDefaults"},"modelStore":{"nullable":true,"properties":{"nimCache":{"$ref":"#/components/schemas/NimCache"},"pvc":{"$ref":"#/components/schemas/NimServicePvcFields"}},"type":"object"},"multiNode":{"$ref":"#/components/schemas/NimServiceMultiNode"},"ngcAuthSecret":{"$ref":"#/components/schemas/NimServiceNgcAuthSecret"},"nodePools":{"$ref":"#/components/schemas/NodePools"},"preemptibility":{"$ref":"#/components/schemas/Preemptibility"},"priorityClass":{"$ref":"#/components/schemas/PriorityClass"},"probes":{"$ref":"#/components/schemas/Probes"},"replicas":{"$ref":"#/components/schemas/NimServiceReplicas"},"security":{"nullable":true,"properties":{"runAsGid":{"$ref":"#/components/schemas/RunAsGid"},"runAsUid":{"$ref":"#/components/schemas/RunAsUid"}},"type":"object"},"servingPort":{"$ref":"#/components/schemas/NimServiceServingPort"},"tolerations":{"$ref":"#/components/schemas/TolerationsDefaults"}},"type":"object"}]},"AnnotationsDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/Annotations"}},"nullable":true,"type":"object"},"Annotations":{"description":"Set of annotations to populate into the container running the workload.","type":"array","items":{"$ref":"#/components/schemas/Annotation"},"maxItems":1000,"nullable":true},"Annotation":{"description":"Annotation details to be populated into the container.","properties":{"name":{"description":"The name of the annotation (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":".*"},"value":{"description":"The value of the annotation.","type":"string","maxLength":10000,"nullable":true,"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","default":false,"nullable":true}},"nullable":true,"type":"object"},"AutoScalingMaxReplicas":{"description":"The maximum number of replicas for autoscaling. Defaults to minReplicas. Must be no less than minReplicas.","type":"integer","format":"int32","minimum":1,"nullable":true},"AutoScalingMetricNim":{"description":"The metric to use for autoscaling (mandatory).","type":"string","pattern":"^[a-zA-Z_:][a-zA-Z0-9_:]*$","nullable":true},"AutoScalingMetricThreshold":{"description":"The threshold to use with the specified metric for autoscaling (mandatory).","type":"integer","format":"int32","nullable":true},"AutoScalingMinReplicas":{"description":"The minimum number of replicas for autoscaling. Defaults to 1.","type":"integer","format":"int32","minimum":1,"nullable":true},"AutoScalingScaleWindowSeconds":{"description":"The time window for autoscaling decisions, in seconds. Defaults to 300 seconds.","type":"integer","format":"int32","minimum":60,"maximum":3600,"nullable":true},"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":".*"},"CpuCoreLimit":{"description":"Limitations on the number of CPUs consumed by the workload (0.5, 1, .etc). The system guarantees that this workload will not be able to consume more than this amount of CPUs.","format":"double","type":"number","nullable":true,"minimum":0},"CpuCoreRequest":{"description":"CPU units to allocate for the created workload (0.5, 1, .etc). The workload will receive at least this amount of CPU. Note that the workload will not be scheduled unless the system can guarantee this amount of CPUs to the workload.","format":"double","type":"number","nullable":true,"minimum":0},"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]*)$","maxLength":63,"nullable":true},"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","pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$","maxLength":63,"nullable":true},"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","format":"int32","nullable":true,"minimum":0},"GpuMemoryLimit":{"description":"Limitation on the memory consumed by the workload, per GPU device. The system guarantees The gpuMemoryLimit must be no less than gpuMemoryRequest.","type":"string","pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$","maxLength":63,"nullable":true},"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]*)$","maxLength":63,"nullable":true},"GpuPortionLimit":{"description":"Limitations on the portion consumed by the workload, per GPU device. The system guarantees The gpuPotionLimit must be no less than the gpuPortionRequest.","type":"number","format":"double","nullable":true,"minimum":0},"GpuPortionRequest":{"description":"Required if and only if gpuRequestType is portion. States the portion of the GPU to allocate for the created workload, per GPU device, between 0 and 1. The default is no allocated GPUs.","type":"number","format":"double","nullable":true,"minimum":0},"GpuRequestType":{"description":"Sets the unit type for GPU resources requests. Stated in terms of portion or memory. Sets the unit type for other GPU request fields. If `gpuDevicesRequest > 1`, only `portion` is supported. If `gpuDeviceRequest = 1`, the request type can be stated as `portion` or `memory`.","type":"string","minLength":1,"enum":["portion","memory"],"nullable":true},"EnvironmentVariablesDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/EnvironmentVariables"}},"nullable":true,"type":"object"},"EnvironmentVariables":{"description":"Set of environment variables to populate into the container running the workload.","type":"array","items":{"$ref":"#/components/schemas/EnvironmentVariable"},"maxItems":1000,"nullable":true},"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,"maxLength":63,"nullable":true,"pattern":".*"},"value":{"description":"The value of the environment variable. (mutually exclusive with secret, userCredential, configMap and podFieldRef)","type":"string","maxLength":10000,"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","nullable":true},"description":{"description":"Description of the environment variable.","type":"string","maxLength":250,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"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,"maxLength":253,"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,"maxLength":63,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"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","minLength":1,"maxLength":253,"nullable":true,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$"},"key":{"description":"The key in the config-map resource. (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"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","minLength":1,"maxLength":10000,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"EnvironmentVariableUserCredential":{"description":"Defines a reference to a user-created credential and a specific key within that credential whose value will populate the environment variable. User credentials can only be accessed by the user who created them.","properties":{"name":{"description":"The name of the user credential.  (mandatory)","type":"string","minLength":1,"maxLength":253,"nullable":true},"key":{"description":"The key in the user credential resource. (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true}},"nullable":true,"type":"object"},"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","minLength":1,"maxLength":253,"nullable":true,"pattern":".*"},"ImagePullPolicy":{"description":"Image pull policy. Defaults to `Always` if `:latest` tag is specified, otherwise it is `IfNotPresent`.","type":"string","minLength":1,"enum":["Always","Never","IfNotPresent"],"nullable":true},"ImagePullSecretsDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/ImagePullSecrets"}},"nullable":true,"type":"object"},"ImagePullSecrets":{"description":"A list of references to Kubernetes secrets in the same namespace used for pulling container images.","type":"array","items":{"$ref":"#/components/schemas/ImagePullSecret"},"maxItems":1000,"nullable":true},"ImagePullSecret":{"description":"A reference to a secret in the same namespace used to pull container images.","properties":{"name":{"type":"string","description":"The name of the Kubernetes secret containing the image pull credentials.","pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$","maxLength":253},"userCredential":{"type":"boolean","description":"Indicates whether the secret is a user credential. Set to true if the secret was created by the user and is only accessible by them.","nullable":true},"exclude":{"description":"Use 'true' in case the secret is defined in defaults of the policy, and you wish to exclude it from the workload.","type":"boolean","default":false,"nullable":true}},"nullable":true,"type":"object"},"LabelsDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/Labels"}},"nullable":true,"type":"object"},"Labels":{"description":"Set of labels to populate into the container running the workload.","type":"array","items":{"$ref":"#/components/schemas/Label"},"maxItems":1000,"nullable":true},"Label":{"description":"Label details to be populated into the container.","properties":{"name":{"description":"The name of the label (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":".*"},"value":{"description":"The value of the label.","type":"string","nullable":true,"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","nullable":true}},"nullable":true,"type":"object"},"NimCache":{"description":"The specification of a NIM cache volume.","type":"object","properties":{"name":{"description":"The NIMCache resource name (mandatory).","type":"string","minLength":1,"nullable":true},"profile":{"description":"The NIM profile to use (optional).","type":"string","minLength":1,"nullable":true}},"nullable":true},"NimServicePvcFields":{"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,"nullable":true,"pattern":".*"},"readOnly":{"description":"Permit only read access to PVC.","type":"boolean","default":false,"nullable":true},"claimInfo":{"$ref":"#/components/schemas/ClaimInfo"}},"nullable":true,"type":"object"},"ClaimInfo":{"description":"Claim information for the newly created PVC. The information should not be provided when attempting to use existing PVC.","properties":{"size":{"$ref":"#/components/schemas/PvcClaimSize"},"storageClass":{"description":"Storage class name to associate with the PVC. This parameter may be omitted if there is a single storage class in the system, or you are using the default storage class. For more information, see [Storage class](https://kubernetes.io/docs/concepts/storage/storage-classes).","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$"},"accessModes":{"$ref":"#/components/schemas/PvcAccessModes"},"volumeMode":{"$ref":"#/components/schemas/PvcVolumeMode"},"addedAttrValues":{"$ref":"#/components/schemas/PvcAddedAttrValues"}},"nullable":true,"type":"object"},"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]*)$","maxLength":63,"nullable":true},"PvcAccessModes":{"description":"Default access mode(s) applied to newly created PVCs unless explicitly overridden.","properties":{"readWriteOnce":{"description":"Mount the volume as read/write by a single node.","type":"boolean","default":true,"nullable":true},"readOnlyMany":{"description":"Mount the volume as read-only by many nodes.","type":"boolean","default":false,"nullable":true},"readWriteMany":{"description":"Mount the volume as read/write by many nodes.","type":"boolean","default":false,"nullable":true}},"nullable":true,"type":"object"},"PvcVolumeMode":{"description":"Default volume mode for the PVC. Choose between Filesystem (default) or Block.","type":"string","enum":["Filesystem","Block"],"nullable":true},"PvcAddedAttrValues":{"description":"an optional array of key-values pairs that are written as annotations on the created PVC. the allowed attributes are determined according to the storage class configuration (see k8s-objects-tracker for further info).","type":"array","items":{"$ref":"#/components/schemas/PvcAddedAttrValue"},"maxItems":1000},"PvcAddedAttrValue":{"type":"object","required":["key"],"properties":{"key":{"type":"string","minLength":1,"maxLength":63,"pattern":"^([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]$"},"value":{"type":"string","pattern":".*","maxLength":10000}}},"NimServiceMultiNode":{"description":"Defines whether the NIM service runs as a multi-node deployment. If workers is set to 1 or more, the service runs in multi-node.","properties":{"workers":{"$ref":"#/components/schemas/NimServiceWorkers"}},"nullable":true,"type":"object"},"NimServiceWorkers":{"description":"Specifies the number of worker nodes to use when running the NIM service in multi-node.","type":"integer","format":"int32","minimum":1,"maximum":1000,"nullable":true},"NimServiceNgcAuthSecret":{"description":"The name of a Kubernetes secret containing the NGC access credentials. The secret must contain a key named NGC_API_KEY with the API key as the value.","type":"string","pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$","nullable":true},"NodePools":{"description":"A prioritized list of node pools for the scheduler to run the workload on. The scheduler will always try to use the first node pool before moving to the next one if the first is not available.","type":"array","items":{"type":"string","maxLength":63,"pattern":".*"},"maxItems":1000,"nullable":true},"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","minLength":1,"enum":["preemptible","non-preemptible"],"nullable":true},"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","nullable":true,"pattern":".*"},"Probes":{"description":"Probes are used to determine if the container is healthy and ready to accept traffic.","type":"object","properties":{"readiness":{"$ref":"#/components/schemas/Probe"}},"nullable":true},"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},"ProbeHandler":{"description":"The action taken to determine the health of the container. (mandatory)","type":"object","properties":{"httpGet":{"description":"An action based on HTTP Get requests.","type":"object","properties":{"path":{"description":"Path to access on the HTTP server, defaults to /.","type":"string","pattern":"^(\\x2F[a-zA-Z0-9\\-_.\\x2F]*)?$","nullable":true,"maxLength":2048},"port":{"description":"Number of the port to access on the container.","type":"integer","format":"int32","minimum":1,"maximum":65535,"nullable":true},"host":{"description":"Host name to connect to, defaults to the pod IP.","type":"string","format":"hostname","nullable":true,"pattern":".*","maxLength":253},"scheme":{"$ref":"#/components/schemas/ProbeHandlerScheme"}}}},"nullable":true},"ProbeHandlerScheme":{"description":"Scheme to use for connecting to the host, defaults to HTTP.","type":"string","enum":["HTTP","HTTPS"],"nullable":true},"NimServiceReplicas":{"default":1,"description":"The number of replicas to deploy.","type":"integer","format":"int32","minimum":0,"maximum":1000,"nullable":true},"RunAsGid":{"description":"The group id to run the entrypoint of the container which executes the workspace. Default to the value specified in the environment asset `runAsGid` field (optional). Use only when the source uid/gid of the environment asset is not `fromTheImage`, and `overrideUidGidInWorkspace` is enabled.","type":"integer","format":"int64","nullable":true},"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","format":"int64","nullable":true},"NimServiceServingPort":{"description":"A port for accessing the inference service.\nAuthorization fields (authorizationType, authorizedUsers, authorizedGroups) are supported for cluster version 2.25 and above.\n","properties":{"serviceType":{"$ref":"#/components/schemas/ServingPortServiceType"},"port":{"$ref":"#/components/schemas/ServingPortPort"},"grpcPort":{"$ref":"#/components/schemas/ServingPortGrpcPort"},"metricsPort":{"$ref":"#/components/schemas/ServingPortMetricsPort"},"exposeExternally":{"$ref":"#/components/schemas/ServingPortExposeExternally"},"exposedUrl":{"$ref":"#/components/schemas/ServingPortExposedUrl"},"exposedProtocol":{"$ref":"#/components/schemas/ServingPortExposedProtocol"},"authorizationType":{"$ref":"#/components/schemas/NimServiceServingPortAuthorizationType"},"authorizedUsers":{"$ref":"#/components/schemas/NimServiceServingPortAuthorizedUsers"},"authorizedGroups":{"$ref":"#/components/schemas/NimServiceServingPortAuthorizedGroups"}},"nullable":true,"type":"object"},"ServingPortServiceType":{"description":"The type of Kubernetes service to create for the inference deployment. Options include 'ClusterIP' (default), 'NodePort', 'LoadBalancer', and 'ExternalName'.","type":"string","default":"ClusterIP","enum":["ClusterIP","NodePort","LoadBalancer","ExternalName"],"nullable":true},"ServingPortPort":{"description":"The port that the container running the inference service exposes (mandatory).","type":"integer","format":"int32","minimum":1,"maximum":65535,"nullable":true},"ServingPortGrpcPort":{"description":"The GRPC port that the container running the inference service exposes.","type":"integer","format":"int32","minimum":1,"maximum":65535,"nullable":true},"ServingPortMetricsPort":{"description":"The port where metrics are exposed, required only if it's different than the main port.","type":"integer","format":"int32","minimum":1,"maximum":65535,"nullable":true},"ServingPortExposeExternally":{"description":"Indicates whether the inference serving endpoint should be accessible outside the cluster. If set to true, the endpoint will be exposed externally. To enable external access, your administrator must configure the cluster as described in the [inference requirements](https://run-ai-docs.nvidia.com/self-hosted/2.26/getting-started/installation/system-requirements#inference). section.","type":"boolean","nullable":true,"default":true},"ServingPortExposedUrl":{"description":"The custom URL to use for the serving port. If empty (default), an autogenerated URL will be used.","type":"string","nullable":true,"pattern":".*"},"ServingPortExposedProtocol":{"description":"The protocol to use for the exposed URL. If grpcPort is set, this defaults to grpc. Otherwise, it defaults to http.","type":"string","enum":["http","grpc"],"nullable":true},"NimServiceServingPortAuthorizationType":{"type":"string","description":"Specifies who can send requests to the serving endpoint:\n\nPossible values:\n- `public`: No authorization is required. (Default)\n- `authenticatedUsers`: Any NVIDIA Run:ai authenticated user and service account can send requests.\n- `authorizedUsers`: Only users listed in the authorizedUsers field can send requests.\n- `authorizedGroups`: Only members of user groups listed in the authorizedGroups field can send requests.\n","enum":["public","authenticatedUsers","authorizedUsers","authorizedGroups"],"nullable":true},"NimServiceServingPortAuthorizedUsers":{"description":"A list of users and service accounts allowed to send requests to the serving endpoint. `Note:` Cannot be used together with authorizedGroups.","type":"array","items":{"type":"string","maxLength":253,"pattern":".*"},"maxItems":1000,"nullable":true},"NimServiceServingPortAuthorizedGroups":{"description":"A list of user groups allowed to send requests to the serving endpoint. `Note:` Cannot be used together with authorizedUsers.","type":"array","items":{"type":"string","maxLength":253,"pattern":".*"},"maxItems":1000,"nullable":true},"TolerationsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/Toleration"},"instances":{"$ref":"#/components/schemas/Tolerations"}},"nullable":true,"type":"object"},"Toleration":{"description":"Toleration details.","properties":{"name":{"description":"The name of the toleration.","type":"string","minLength":1,"maxLength":253,"nullable":true,"pattern":".*"},"operator":{"$ref":"#/components/schemas/TolerationOperator"},"key":{"description":"The taint key that the toleration applies to. (mandatory)","type":"string","maxLength":253,"nullable":true,"pattern":".*"},"value":{"description":"The taint value the toleration matches to. Mandatory if operator is Exists, forbidden otherwise.","type":"string","maxLength":10000,"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","nullable":true}},"nullable":true,"type":"object"},"TolerationOperator":{"description":"A key's relationship to the value. Equal uses key and value. Exists is equivalent to wildcard for value, so that a workload can tolerate all taints of a particular category. (mandatory)","type":"string","enum":["Equal","Exists"],"nullable":true},"TolerationEffect":{"description":"The taint effect to match. (mandatory)","type":"string","enum":["NoSchedule","NoExecute","PreferNoSchedule","Any"],"nullable":true},"Tolerations":{"description":"Set of tolerations to apply to the workload.","type":"array","items":{"$ref":"#/components/schemas/Toleration"},"maxItems":1000,"nullable":true},"NimServiceRules":{"allOf":[{"nullable":true,"properties":{"annotations":{"$ref":"#/components/schemas/InstancesRules"},"autoscaling":{"nullable":true,"properties":{"maxReplicas":{"$ref":"#/components/schemas/IntegerRules"},"metric":{"$ref":"#/components/schemas/StringRules"},"metricThreshold":{"$ref":"#/components/schemas/IntegerRules"},"minReplicas":{"$ref":"#/components/schemas/IntegerRules"},"scaleWindowSeconds":{"$ref":"#/components/schemas/IntegerRules"}},"type":"object"},"category":{"$ref":"#/components/schemas/StringRules"},"compute":{"nullable":true,"properties":{"cpuCoreLimit":{"$ref":"#/components/schemas/NumberRules"},"cpuCoreRequest":{"$ref":"#/components/schemas/NumberRules"},"cpuMemoryLimit":{"$ref":"#/components/schemas/QuantityRules"},"cpuMemoryRequest":{"$ref":"#/components/schemas/QuantityRules"},"gpuDevicesRequest":{"$ref":"#/components/schemas/IntegerRules"},"gpuMemoryLimit":{"$ref":"#/components/schemas/QuantityRules"},"gpuMemoryRequest":{"$ref":"#/components/schemas/QuantityRules"},"gpuPortionLimit":{"$ref":"#/components/schemas/NumberRules"},"gpuPortionRequest":{"$ref":"#/components/schemas/NumberRules"},"gpuRequestType":{"$ref":"#/components/schemas/GpuRequestRules"}},"type":"object"},"environmentVariables":{"$ref":"#/components/schemas/InstancesRules"},"image":{"$ref":"#/components/schemas/StringRules"},"imagePullPolicy":{"$ref":"#/components/schemas/ImagePullPolicyRules"},"imagePullSecrets":{"$ref":"#/components/schemas/ImagePullSecretsRules"},"labels":{"$ref":"#/components/schemas/InstancesRules"},"modelStore":{"nullable":true,"properties":{"nimCache":{"$ref":"#/components/schemas/NimCacheRules"},"pvc":{"$ref":"#/components/schemas/PvcRules"}},"type":"object"},"multiNode":{"$ref":"#/components/schemas/NimServiceMultiNodeRules"},"ngcAuthSecret":{"$ref":"#/components/schemas/StringRules"},"nodePools":{"$ref":"#/components/schemas/ArrayRules"},"preemptibility":{"$ref":"#/components/schemas/PreemptibilityRules"},"priorityClass":{"$ref":"#/components/schemas/StringRules"},"probes":{"$ref":"#/components/schemas/ProbesRules"},"replicas":{"$ref":"#/components/schemas/IntegerRules"},"security":{"nullable":true,"properties":{"runAsGid":{"$ref":"#/components/schemas/IntegerRulesOptional"},"runAsUid":{"$ref":"#/components/schemas/IntegerRulesOptional"}},"type":"object"},"servingPort":{"$ref":"#/components/schemas/NimServiceServingPortRules"},"tolerations":{"$ref":"#/components/schemas/TolerationsRules"}},"type":"object"}]},"InstancesRules":{"properties":{"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ItemRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"canAdd":{"description":"Whether it is permitted to add items. Default to true.","type":"boolean","nullable":true},"locked":{"description":"Set of keys for items that are \"locked\", i.e. cannot be removed or deleted.","type":"array","items":{"type":"string"}}},"nullable":true,"type":"object"},"SourceOfRule":{"description":"This field is used by the system along with effective rules, in order to specify the org unit from which this effective rule has been derived. It should be left empty when sending apply policy requests.","required":["scope"],"properties":{"scope":{"$ref":"#/components/schemas/ScopeType"},"projectId":{"$ref":"#/components/schemas/ProjectIdOptional"},"departmentId":{"$ref":"#/components/schemas/DepartmentIdOptional"},"clusterId":{"$ref":"#/components/schemas/ClusterIdOptional"},"isFallback":{"description":"source of this rule is the fallback policy","type":"boolean"}},"nullable":true,"type":"object"},"IntegerRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory. default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"max":{"description":"The maximum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"step":{"description":"The minimal difference between two values the field can be assigned to. For example, min=2, max=10, step=2 implies that the values the field can hold are 2, 4, 6, 8 and 10.","type":"integer","format":"int32","nullable":true},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"DefaultFromRule":{"properties":{"field":{"description":"The default of this field is taken from another field, with optional factor. The specified field must belong to the same workload section (compute, security, etc). For itemized field, the value of the field will be taken from the same instance.","type":"string","nullable":true,"pattern":".*"},"factor":{"description":"Multiple the value of the fromField by this factor to get the value for this field For example, if factor is 2 and defaultFrom field has value of 8, the calculated default will be determined to be 16.","type":"number","format":"double","nullable":true,"default":1}},"nullable":true,"type":"object"},"StringRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/StringRulesOptions"}],"nullable":true,"type":"object"},"StringRulesCommon":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory, default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable, default to true","type":"boolean","nullable":true},"blocked":{"description":"Blocks the field to prevent workloads from specifying any value for it.","type":"boolean","nullable":true}}},"StringRulesOptions":{"properties":{"options":{"description":"Set of options that the value of the field must be chosen from.","type":"array","items":{"$ref":"#/components/schemas/StringOption"},"nullable":true}}},"StringOption":{"description":"One of the values that the field can be assigned to, when options police is applied on the field.","required":["value"],"properties":{"value":{"description":"The value that the field should hold","type":"string","pattern":".*"},"displayed":{"description":"Textual description of the value. to be used by user interface applications.","type":"string","nullable":true,"pattern":".*"}}},"NumberRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory. default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"number","nullable":true},"max":{"description":"The maximum value that the field can be assigned to.","type":"number","nullable":true},"step":{"description":"The minimal difference between two values the field can be assigned to. For example, min=2, max=3, step=0.25 implies that the values the field can hold are 2, 2.25, 2.5 and 3.","type":"number","nullable":true},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"QuantityRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory, default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable, default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"string","nullable":true,"pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"},"max":{"description":"The maximum value that the field can be assigned to.","type":"string","nullable":true,"pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"GpuRequestRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/GpuRequestOptions"}],"nullable":true,"type":"object"},"GpuRequestOptions":{"properties":{"options":{"description":"Limit the permitted values for gpuRequest to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/GpuRequestType"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ImagePullPolicyRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/ImagePullPolicyOptions"}],"nullable":true,"type":"object"},"ImagePullPolicyOptions":{"properties":{"options":{"description":"Limit the permitted values for imagePullPolicy to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/ImagePullPolicy"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ImagePullSecretsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/ImagePullSecretsRulesAttributes"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ImagePullSecretsRulesAttributes":{"description":"Rules for the attributes of imagePullSecrets","properties":{"name":{"$ref":"#/components/schemas/StringRules"},"userCredentials":{"$ref":"#/components/schemas/BooleanRules"}},"nullable":true,"type":"object"},"BooleanRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory. default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true}},"nullable":true,"type":"object"},"NimCacheRules":{"properties":{"name":{"$ref":"#/components/schemas/StringRules"},"profile":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"PvcRules":{"properties":{"claimName":{"$ref":"#/components/schemas/StringRules"},"path":{"$ref":"#/components/schemas/StringRules"},"readOnly":{"$ref":"#/components/schemas/BooleanRules"},"claimInfo":{"$ref":"#/components/schemas/ClaimInfoRules"}},"nullable":true,"type":"object"},"ClaimInfoRules":{"properties":{"size":{"$ref":"#/components/schemas/StringRules"},"storageClass":{"$ref":"#/components/schemas/StringRules"},"accessModes":{"$ref":"#/components/schemas/PvcAccessModesRules"}},"nullable":true,"type":"object"},"PvcAccessModesRules":{"description":"Rules for access mode(s) for a newly created PVC.","properties":{"readWriteOnce":{"$ref":"#/components/schemas/BooleanRules"},"readOnlyMany":{"$ref":"#/components/schemas/BooleanRules"},"readWriteMany":{"$ref":"#/components/schemas/BooleanRules"}},"nullable":true,"type":"object"},"NimServiceMultiNodeRules":{"properties":{"workers":{"$ref":"#/components/schemas/IntegerRules"}},"nullable":true,"type":"object"},"ArrayRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether this array is mandatory. Mandatory array must include at least one item. default to false.","type":"boolean","nullable":true},"options":{"description":"Set of options that the value of each item of the array must be chosen from.","type":"array","items":{"$ref":"#/components/schemas/StringOption"}},"canEdit":{"description":"Whether the value of the array, as a whole, is editable. default to false.","type":"boolean","nullable":true}},"nullable":true,"type":"object"},"PreemptibilityRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/PreemptibilityOptions"}],"nullable":true,"type":"object"},"PreemptibilityOptions":{"properties":{"options":{"description":"Limit the permitted values for preemptibility to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/Preemptibility"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ProbesRules":{"properties":{"readiness":{"$ref":"#/components/schemas/ProbeRules"}},"nullable":true,"type":"object"},"ProbeRules":{"properties":{"initialDelaySeconds":{"$ref":"#/components/schemas/IntegerRules"},"periodSeconds":{"$ref":"#/components/schemas/IntegerRules"},"timeoutSeconds":{"$ref":"#/components/schemas/IntegerRules"},"successThreshold":{"$ref":"#/components/schemas/IntegerRules"},"failureThreshold":{"$ref":"#/components/schemas/IntegerRules"},"handler":{"$ref":"#/components/schemas/ProbeHandlerRules"}},"nullable":true,"type":"object"},"ProbeHandlerRules":{"properties":{"httpGet":{"properties":{"path":{"$ref":"#/components/schemas/StringRules"},"port":{"$ref":"#/components/schemas/IntegerRules"},"host":{"$ref":"#/components/schemas/StringRules"},"scheme":{"$ref":"#/components/schemas/StringRules"}}}},"nullable":true,"type":"object"},"IntegerRulesOptional":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"max":{"description":"The maximum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"step":{"description":"The minimal difference between two values the field can be assigned to. For example, min=2, max=10, step=2 implies that the values the field can hold are 2, 4, 6, 8 and 10.","type":"integer","format":"int32","nullable":true},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"NimServiceServingPortRules":{"description":"A port for accessing the inference service","properties":{"serviceType":{"$ref":"#/components/schemas/ServingPortServiceTypeRules"},"port":{"$ref":"#/components/schemas/IntegerRules"},"grpcPort":{"$ref":"#/components/schemas/IntegerRules"},"metricsPort":{"$ref":"#/components/schemas/IntegerRules"},"exposeExternally":{"$ref":"#/components/schemas/BooleanRules"},"exposedUrl":{"$ref":"#/components/schemas/StringRules"},"exposedProtocol":{"$ref":"#/components/schemas/ServingPortExposedProtocolRules"},"authorizationType":{"$ref":"#/components/schemas/NimServiceServingPortAuthorizationTypeRules"},"authorizedUsers":{"$ref":"#/components/schemas/ArrayRules"},"authorizedGroups":{"$ref":"#/components/schemas/ArrayRules"}},"nullable":true,"type":"object"},"ServingPortServiceTypeRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/ServingPortServiceTypeOptions"}],"nullable":true,"type":"object"},"ServingPortServiceTypeOptions":{"properties":{"options":{"type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/ServingPortServiceType"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ServingPortExposedProtocolRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/ServingPortExposedProtocolOptions"}],"nullable":true,"type":"object"},"ServingPortExposedProtocolOptions":{"properties":{"options":{"type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/ServingPortExposedProtocol"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"NimServiceServingPortAuthorizationTypeRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/NimServiceServingPortAuthorizationTypeOptions"}],"nullable":true,"type":"object"},"NimServiceServingPortAuthorizationTypeOptions":{"properties":{"options":{"type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/NimServiceServingPortAuthorizationType"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"TolerationsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/TolerationRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"TolerationRules":{"description":"Toleration details.","properties":{"operator":{"$ref":"#/components/schemas/TolerationOperatorRules"},"key":{"$ref":"#/components/schemas/StringRules"},"value":{"$ref":"#/components/schemas/StringRules"},"effect":{"$ref":"#/components/schemas/TolerationEffectRules"},"seconds":{"$ref":"#/components/schemas/IntegerRules"},"exclude":{"$ref":"#/components/schemas/BooleanRules"}},"nullable":true,"type":"object"},"TolerationOperatorRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/TolerationOperatorOptions"}],"nullable":true,"type":"object"},"TolerationOperatorOptions":{"properties":{"options":{"description":"Limit the permitted values for imagePullPolicy to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/TolerationOperator"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"TolerationEffectRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/TolerationEffectOptions"}],"nullable":true,"type":"object"},"TolerationEffectOptions":{"properties":{"options":{"description":"Limit the permitted values for imagePullPolicy to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/TolerationEffect"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"PolicyValidationStatus":{"properties":{"validation":{"properties":{"errorMessage":{"pattern":".*","type":"string","description":"In case validation failed, holds the error message explaining the issue"}},"nullable":true,"type":"object"}},"nullable":true,"type":"object"},"NimServicePolicy":{"properties":{"meta":{"$ref":"#/components/schemas/PolicyMeta"},"policy":{"$ref":"#/components/schemas/NimServicePolicyDefaultsAndRules"},"effective":{"$ref":"#/components/schemas/NimServicePolicyDefaultsAndRules"},"effectiveUpdatedAt":{"$ref":"#/components/schemas/Timestamp"}},"nullable":true,"type":"object"},"PolicyMeta":{"allOf":[{"$ref":"#/components/schemas/PolicyReadOnlyFields"},{"$ref":"#/components/schemas/PolicyCreationFields"}]},"PolicyReadOnlyFields":{"required":["id","createdBy","createdAt","updatedBy","updatedAt"],"properties":{"id":{"$ref":"#/components/schemas/PolicyId"},"tenantId":{"$ref":"#/components/schemas/TenantId"},"clusterId":{"$ref":"#/components/schemas/ClusterIdOptional"},"createdBy":{"description":"The user who created the policy.","type":"string","minLength":1},"createdAt":{"description":"The time at which the policy wes created","type":"string","minLength":1,"format":"date-time"},"updatedBy":{"description":"The user who updated the policy.","type":"string","minLength":1},"updatedAt":{"description":"The time at which the policy has been updated","type":"string","minLength":1,"format":"date-time"}}},"PolicyId":{"description":"The unique id of the policy.","type":"string","minLength":1,"format":"uuid"},"TenantId":{"description":"The id of the tenant.","type":"integer","format":"int32"},"Timestamp":{"description":"The time at which an event occurred. e.g. the time an effective policy has been updated","type":"string","minLength":1,"format":"date-time"},"Error":{"required":["code","message"],"properties":{"code":{"type":"integer","minimum":100,"maximum":599},"message":{"type":"string"},"details":{"type":"string"}}}},"responses":{"400BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401Unauthorized":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403Forbidden":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503ServiceUnavailable":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/api/v2/policy/nim-services":{"put":{"summary":"Overwrite NVIDIA NIM service policy.","description":"Use to apply NVIDIA NIM service policy for a given organizational unit.","operationId":"overwrite_nim_service_policy","tags":["Policy"],"parameters":[{"$ref":"#/components/parameters/ValidateOnly"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NimServicePolicyOverwriteRequest"}}}},"responses":{"200":{"description":"Policy applied.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NimServicePolicy"}}}},"400":{"$ref":"#/components/responses/400BadRequest"},"401":{"$ref":"#/components/responses/401Unauthorized"},"403":{"$ref":"#/components/responses/403Forbidden"},"503":{"$ref":"#/components/responses/503ServiceUnavailable"}}}}}}
```

## Delete NVIDIA NIM service policy.

> Use to delete NVIDIA NIM service policy for a given organizational unit.

```json
{"openapi":"3.0.3","info":{"title":"NVIDIA Run:ai","version":"2.26"},"tags":[{"name":"Policy","description":"Policies allow administrators to impose restrictions and set default values for researcher workloads. \nRestrictions and default values can be placed on CPUs, GPUs, and other resources or entities. \nFor more information, see [Policies](https://run-ai-docs.nvidia.com/self-hosted/2.26/platform-management/policies/#introduction).\n"}],"servers":[{"url":"https://app.run.ai"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer authentication"}},"parameters":{"PolicyScope":{"name":"scope","in":"query","required":true,"description":"The scope that the policy relates to.","schema":{"type":"string","enum":["tenant","cluster","department","project"]}},"FilterByDepartment":{"name":"departmentId","in":"query","description":"Filter using the department id.","required":false,"schema":{"type":"string"}},"FilterByProject":{"name":"projectId","in":"query","description":"project id to filter by","required":false,"schema":{"type":"string"}},"FilterByCluster":{"name":"clusterId","in":"query","description":"Filter using the Universally Unique Identifier (UUID) of the cluster.","required":false,"schema":{"type":"string","format":"uuid"}}},"responses":{"400BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401Unauthorized":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403Forbidden":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404NotFound":{"description":"The specified resource was not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503ServiceUnavailable":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"schemas":{"Error":{"required":["code","message"],"properties":{"code":{"type":"integer","minimum":100,"maximum":599},"message":{"type":"string"},"details":{"type":"string"}}}}},"paths":{"/api/v2/policy/nim-services":{"delete":{"summary":"Delete NVIDIA NIM service policy.","description":"Use to delete NVIDIA NIM service policy for a given organizational unit.","operationId":"delete_nim_service_policy","tags":["Policy"],"parameters":[{"$ref":"#/components/parameters/PolicyScope"},{"$ref":"#/components/parameters/FilterByDepartment"},{"$ref":"#/components/parameters/FilterByProject"},{"$ref":"#/components/parameters/FilterByCluster"}],"responses":{"204":{"description":"The policy was deleted successfully."},"400":{"$ref":"#/components/responses/400BadRequest"},"401":{"$ref":"#/components/responses/401Unauthorized"},"403":{"$ref":"#/components/responses/403Forbidden"},"404":{"$ref":"#/components/responses/404NotFound"},"503":{"$ref":"#/components/responses/503ServiceUnavailable"}}}}}}
```

## Update NVIDIA NIM service policy.

> Use to apply changes to NVIDIA NIM service policy for a given organizational unit.

```json
{"openapi":"3.0.3","info":{"title":"NVIDIA Run:ai","version":"2.26"},"tags":[{"name":"Policy","description":"Policies allow administrators to impose restrictions and set default values for researcher workloads. \nRestrictions and default values can be placed on CPUs, GPUs, and other resources or entities. \nFor more information, see [Policies](https://run-ai-docs.nvidia.com/self-hosted/2.26/platform-management/policies/#introduction).\n"}],"servers":[{"url":"https://app.run.ai"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer authentication"}},"parameters":{"ValidateOnly":{"name":"validateOnly","in":"query","required":false,"description":"Validate the given policy payload without applying it","schema":{"type":"boolean"}}},"schemas":{"NimServicePolicyChangeRequest":{"properties":{"meta":{"$ref":"#/components/schemas/PolicyCreationFields"},"policy":{"$ref":"#/components/schemas/NimServicePolicyDefaultsAndRules"},"reset":{"$ref":"#/components/schemas/FieldsToReset"}},"type":"object"},"PolicyCreationFields":{"required":["name","scope"],"properties":{"scope":{"$ref":"#/components/schemas/ScopeType"},"projectId":{"$ref":"#/components/schemas/ProjectIdOptional"},"departmentId":{"$ref":"#/components/schemas/DepartmentIdOptional"},"clusterId":{"$ref":"#/components/schemas/ClusterIdOptional"},"name":{"$ref":"#/components/schemas/PolicyName"}}},"ScopeType":{"type":"string","enum":["system","tenant","cluster","department","project"]},"ProjectIdOptional":{"description":"The id of the project.","type":"integer","format":"int32","nullable":true},"DepartmentIdOptional":{"description":"The id of the department.","type":"string","minLength":1,"nullable":true,"pattern":".*"},"ClusterIdOptional":{"description":"The id of the cluster.","type":"string","format":"uuid","minLength":1,"nullable":true},"PolicyName":{"description":"A chosen name for the policy.","type":"string","minLength":1,"pattern":".*"},"NimServicePolicyDefaultsAndRules":{"properties":{"defaults":{"allOf":[{"$ref":"#/components/schemas/NimServiceDefaults"}],"nullable":true,"type":"object"},"rules":{"allOf":[{"$ref":"#/components/schemas/NimServiceRules"}],"nullable":true,"type":"object"},"status":{"$ref":"#/components/schemas/PolicyValidationStatus"}},"nullable":true,"type":"object"},"NimServiceDefaults":{"allOf":[{"nullable":true,"properties":{"annotations":{"$ref":"#/components/schemas/AnnotationsDefaults"},"autoscaling":{"nullable":true,"properties":{"maxReplicas":{"$ref":"#/components/schemas/AutoScalingMaxReplicas"},"metric":{"$ref":"#/components/schemas/AutoScalingMetricNim"},"metricThreshold":{"$ref":"#/components/schemas/AutoScalingMetricThreshold"},"minReplicas":{"$ref":"#/components/schemas/AutoScalingMinReplicas"},"scaleWindowSeconds":{"$ref":"#/components/schemas/AutoScalingScaleWindowSeconds"}},"type":"object"},"category":{"$ref":"#/components/schemas/Category"},"compute":{"nullable":true,"properties":{"cpuCoreLimit":{"$ref":"#/components/schemas/CpuCoreLimit"},"cpuCoreRequest":{"$ref":"#/components/schemas/CpuCoreRequest"},"cpuMemoryLimit":{"$ref":"#/components/schemas/CpuMemoryLimit"},"cpuMemoryRequest":{"$ref":"#/components/schemas/CpuMemoryRequest"},"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"}},"type":"object"},"environmentVariables":{"$ref":"#/components/schemas/EnvironmentVariablesDefaults"},"image":{"$ref":"#/components/schemas/Image"},"imagePullPolicy":{"$ref":"#/components/schemas/ImagePullPolicy"},"imagePullSecrets":{"$ref":"#/components/schemas/ImagePullSecretsDefaults"},"labels":{"$ref":"#/components/schemas/LabelsDefaults"},"modelStore":{"nullable":true,"properties":{"nimCache":{"$ref":"#/components/schemas/NimCache"},"pvc":{"$ref":"#/components/schemas/NimServicePvcFields"}},"type":"object"},"multiNode":{"$ref":"#/components/schemas/NimServiceMultiNode"},"ngcAuthSecret":{"$ref":"#/components/schemas/NimServiceNgcAuthSecret"},"nodePools":{"$ref":"#/components/schemas/NodePools"},"preemptibility":{"$ref":"#/components/schemas/Preemptibility"},"priorityClass":{"$ref":"#/components/schemas/PriorityClass"},"probes":{"$ref":"#/components/schemas/Probes"},"replicas":{"$ref":"#/components/schemas/NimServiceReplicas"},"security":{"nullable":true,"properties":{"runAsGid":{"$ref":"#/components/schemas/RunAsGid"},"runAsUid":{"$ref":"#/components/schemas/RunAsUid"}},"type":"object"},"servingPort":{"$ref":"#/components/schemas/NimServiceServingPort"},"tolerations":{"$ref":"#/components/schemas/TolerationsDefaults"}},"type":"object"}]},"AnnotationsDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/Annotations"}},"nullable":true,"type":"object"},"Annotations":{"description":"Set of annotations to populate into the container running the workload.","type":"array","items":{"$ref":"#/components/schemas/Annotation"},"maxItems":1000,"nullable":true},"Annotation":{"description":"Annotation details to be populated into the container.","properties":{"name":{"description":"The name of the annotation (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":".*"},"value":{"description":"The value of the annotation.","type":"string","maxLength":10000,"nullable":true,"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","default":false,"nullable":true}},"nullable":true,"type":"object"},"AutoScalingMaxReplicas":{"description":"The maximum number of replicas for autoscaling. Defaults to minReplicas. Must be no less than minReplicas.","type":"integer","format":"int32","minimum":1,"nullable":true},"AutoScalingMetricNim":{"description":"The metric to use for autoscaling (mandatory).","type":"string","pattern":"^[a-zA-Z_:][a-zA-Z0-9_:]*$","nullable":true},"AutoScalingMetricThreshold":{"description":"The threshold to use with the specified metric for autoscaling (mandatory).","type":"integer","format":"int32","nullable":true},"AutoScalingMinReplicas":{"description":"The minimum number of replicas for autoscaling. Defaults to 1.","type":"integer","format":"int32","minimum":1,"nullable":true},"AutoScalingScaleWindowSeconds":{"description":"The time window for autoscaling decisions, in seconds. Defaults to 300 seconds.","type":"integer","format":"int32","minimum":60,"maximum":3600,"nullable":true},"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":".*"},"CpuCoreLimit":{"description":"Limitations on the number of CPUs consumed by the workload (0.5, 1, .etc). The system guarantees that this workload will not be able to consume more than this amount of CPUs.","format":"double","type":"number","nullable":true,"minimum":0},"CpuCoreRequest":{"description":"CPU units to allocate for the created workload (0.5, 1, .etc). The workload will receive at least this amount of CPU. Note that the workload will not be scheduled unless the system can guarantee this amount of CPUs to the workload.","format":"double","type":"number","nullable":true,"minimum":0},"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]*)$","maxLength":63,"nullable":true},"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","pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$","maxLength":63,"nullable":true},"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","format":"int32","nullable":true,"minimum":0},"GpuMemoryLimit":{"description":"Limitation on the memory consumed by the workload, per GPU device. The system guarantees The gpuMemoryLimit must be no less than gpuMemoryRequest.","type":"string","pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$","maxLength":63,"nullable":true},"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]*)$","maxLength":63,"nullable":true},"GpuPortionLimit":{"description":"Limitations on the portion consumed by the workload, per GPU device. The system guarantees The gpuPotionLimit must be no less than the gpuPortionRequest.","type":"number","format":"double","nullable":true,"minimum":0},"GpuPortionRequest":{"description":"Required if and only if gpuRequestType is portion. States the portion of the GPU to allocate for the created workload, per GPU device, between 0 and 1. The default is no allocated GPUs.","type":"number","format":"double","nullable":true,"minimum":0},"GpuRequestType":{"description":"Sets the unit type for GPU resources requests. Stated in terms of portion or memory. Sets the unit type for other GPU request fields. If `gpuDevicesRequest > 1`, only `portion` is supported. If `gpuDeviceRequest = 1`, the request type can be stated as `portion` or `memory`.","type":"string","minLength":1,"enum":["portion","memory"],"nullable":true},"EnvironmentVariablesDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/EnvironmentVariables"}},"nullable":true,"type":"object"},"EnvironmentVariables":{"description":"Set of environment variables to populate into the container running the workload.","type":"array","items":{"$ref":"#/components/schemas/EnvironmentVariable"},"maxItems":1000,"nullable":true},"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,"maxLength":63,"nullable":true,"pattern":".*"},"value":{"description":"The value of the environment variable. (mutually exclusive with secret, userCredential, configMap and podFieldRef)","type":"string","maxLength":10000,"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","nullable":true},"description":{"description":"Description of the environment variable.","type":"string","maxLength":250,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"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,"maxLength":253,"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,"maxLength":63,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"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","minLength":1,"maxLength":253,"nullable":true,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$"},"key":{"description":"The key in the config-map resource. (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"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","minLength":1,"maxLength":10000,"nullable":true,"pattern":".*"}},"nullable":true,"type":"object"},"EnvironmentVariableUserCredential":{"description":"Defines a reference to a user-created credential and a specific key within that credential whose value will populate the environment variable. User credentials can only be accessed by the user who created them.","properties":{"name":{"description":"The name of the user credential.  (mandatory)","type":"string","minLength":1,"maxLength":253,"nullable":true},"key":{"description":"The key in the user credential resource. (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true}},"nullable":true,"type":"object"},"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","minLength":1,"maxLength":253,"nullable":true,"pattern":".*"},"ImagePullPolicy":{"description":"Image pull policy. Defaults to `Always` if `:latest` tag is specified, otherwise it is `IfNotPresent`.","type":"string","minLength":1,"enum":["Always","Never","IfNotPresent"],"nullable":true},"ImagePullSecretsDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/ImagePullSecrets"}},"nullable":true,"type":"object"},"ImagePullSecrets":{"description":"A list of references to Kubernetes secrets in the same namespace used for pulling container images.","type":"array","items":{"$ref":"#/components/schemas/ImagePullSecret"},"maxItems":1000,"nullable":true},"ImagePullSecret":{"description":"A reference to a secret in the same namespace used to pull container images.","properties":{"name":{"type":"string","description":"The name of the Kubernetes secret containing the image pull credentials.","pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$","maxLength":253},"userCredential":{"type":"boolean","description":"Indicates whether the secret is a user credential. Set to true if the secret was created by the user and is only accessible by them.","nullable":true},"exclude":{"description":"Use 'true' in case the secret is defined in defaults of the policy, and you wish to exclude it from the workload.","type":"boolean","default":false,"nullable":true}},"nullable":true,"type":"object"},"LabelsDefaults":{"properties":{"instances":{"$ref":"#/components/schemas/Labels"}},"nullable":true,"type":"object"},"Labels":{"description":"Set of labels to populate into the container running the workload.","type":"array","items":{"$ref":"#/components/schemas/Label"},"maxItems":1000,"nullable":true},"Label":{"description":"Label details to be populated into the container.","properties":{"name":{"description":"The name of the label (mandatory)","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":".*"},"value":{"description":"The value of the label.","type":"string","nullable":true,"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","nullable":true}},"nullable":true,"type":"object"},"NimCache":{"description":"The specification of a NIM cache volume.","type":"object","properties":{"name":{"description":"The NIMCache resource name (mandatory).","type":"string","minLength":1,"nullable":true},"profile":{"description":"The NIM profile to use (optional).","type":"string","minLength":1,"nullable":true}},"nullable":true},"NimServicePvcFields":{"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,"nullable":true,"pattern":".*"},"readOnly":{"description":"Permit only read access to PVC.","type":"boolean","default":false,"nullable":true},"claimInfo":{"$ref":"#/components/schemas/ClaimInfo"}},"nullable":true,"type":"object"},"ClaimInfo":{"description":"Claim information for the newly created PVC. The information should not be provided when attempting to use existing PVC.","properties":{"size":{"$ref":"#/components/schemas/PvcClaimSize"},"storageClass":{"description":"Storage class name to associate with the PVC. This parameter may be omitted if there is a single storage class in the system, or you are using the default storage class. For more information, see [Storage class](https://kubernetes.io/docs/concepts/storage/storage-classes).","type":"string","minLength":1,"maxLength":63,"nullable":true,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$"},"accessModes":{"$ref":"#/components/schemas/PvcAccessModes"},"volumeMode":{"$ref":"#/components/schemas/PvcVolumeMode"},"addedAttrValues":{"$ref":"#/components/schemas/PvcAddedAttrValues"}},"nullable":true,"type":"object"},"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]*)$","maxLength":63,"nullable":true},"PvcAccessModes":{"description":"Default access mode(s) applied to newly created PVCs unless explicitly overridden.","properties":{"readWriteOnce":{"description":"Mount the volume as read/write by a single node.","type":"boolean","default":true,"nullable":true},"readOnlyMany":{"description":"Mount the volume as read-only by many nodes.","type":"boolean","default":false,"nullable":true},"readWriteMany":{"description":"Mount the volume as read/write by many nodes.","type":"boolean","default":false,"nullable":true}},"nullable":true,"type":"object"},"PvcVolumeMode":{"description":"Default volume mode for the PVC. Choose between Filesystem (default) or Block.","type":"string","enum":["Filesystem","Block"],"nullable":true},"PvcAddedAttrValues":{"description":"an optional array of key-values pairs that are written as annotations on the created PVC. the allowed attributes are determined according to the storage class configuration (see k8s-objects-tracker for further info).","type":"array","items":{"$ref":"#/components/schemas/PvcAddedAttrValue"},"maxItems":1000},"PvcAddedAttrValue":{"type":"object","required":["key"],"properties":{"key":{"type":"string","minLength":1,"maxLength":63,"pattern":"^([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]$"},"value":{"type":"string","pattern":".*","maxLength":10000}}},"NimServiceMultiNode":{"description":"Defines whether the NIM service runs as a multi-node deployment. If workers is set to 1 or more, the service runs in multi-node.","properties":{"workers":{"$ref":"#/components/schemas/NimServiceWorkers"}},"nullable":true,"type":"object"},"NimServiceWorkers":{"description":"Specifies the number of worker nodes to use when running the NIM service in multi-node.","type":"integer","format":"int32","minimum":1,"maximum":1000,"nullable":true},"NimServiceNgcAuthSecret":{"description":"The name of a Kubernetes secret containing the NGC access credentials. The secret must contain a key named NGC_API_KEY with the API key as the value.","type":"string","pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$","nullable":true},"NodePools":{"description":"A prioritized list of node pools for the scheduler to run the workload on. The scheduler will always try to use the first node pool before moving to the next one if the first is not available.","type":"array","items":{"type":"string","maxLength":63,"pattern":".*"},"maxItems":1000,"nullable":true},"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","minLength":1,"enum":["preemptible","non-preemptible"],"nullable":true},"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","nullable":true,"pattern":".*"},"Probes":{"description":"Probes are used to determine if the container is healthy and ready to accept traffic.","type":"object","properties":{"readiness":{"$ref":"#/components/schemas/Probe"}},"nullable":true},"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},"ProbeHandler":{"description":"The action taken to determine the health of the container. (mandatory)","type":"object","properties":{"httpGet":{"description":"An action based on HTTP Get requests.","type":"object","properties":{"path":{"description":"Path to access on the HTTP server, defaults to /.","type":"string","pattern":"^(\\x2F[a-zA-Z0-9\\-_.\\x2F]*)?$","nullable":true,"maxLength":2048},"port":{"description":"Number of the port to access on the container.","type":"integer","format":"int32","minimum":1,"maximum":65535,"nullable":true},"host":{"description":"Host name to connect to, defaults to the pod IP.","type":"string","format":"hostname","nullable":true,"pattern":".*","maxLength":253},"scheme":{"$ref":"#/components/schemas/ProbeHandlerScheme"}}}},"nullable":true},"ProbeHandlerScheme":{"description":"Scheme to use for connecting to the host, defaults to HTTP.","type":"string","enum":["HTTP","HTTPS"],"nullable":true},"NimServiceReplicas":{"default":1,"description":"The number of replicas to deploy.","type":"integer","format":"int32","minimum":0,"maximum":1000,"nullable":true},"RunAsGid":{"description":"The group id to run the entrypoint of the container which executes the workspace. Default to the value specified in the environment asset `runAsGid` field (optional). Use only when the source uid/gid of the environment asset is not `fromTheImage`, and `overrideUidGidInWorkspace` is enabled.","type":"integer","format":"int64","nullable":true},"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","format":"int64","nullable":true},"NimServiceServingPort":{"description":"A port for accessing the inference service.\nAuthorization fields (authorizationType, authorizedUsers, authorizedGroups) are supported for cluster version 2.25 and above.\n","properties":{"serviceType":{"$ref":"#/components/schemas/ServingPortServiceType"},"port":{"$ref":"#/components/schemas/ServingPortPort"},"grpcPort":{"$ref":"#/components/schemas/ServingPortGrpcPort"},"metricsPort":{"$ref":"#/components/schemas/ServingPortMetricsPort"},"exposeExternally":{"$ref":"#/components/schemas/ServingPortExposeExternally"},"exposedUrl":{"$ref":"#/components/schemas/ServingPortExposedUrl"},"exposedProtocol":{"$ref":"#/components/schemas/ServingPortExposedProtocol"},"authorizationType":{"$ref":"#/components/schemas/NimServiceServingPortAuthorizationType"},"authorizedUsers":{"$ref":"#/components/schemas/NimServiceServingPortAuthorizedUsers"},"authorizedGroups":{"$ref":"#/components/schemas/NimServiceServingPortAuthorizedGroups"}},"nullable":true,"type":"object"},"ServingPortServiceType":{"description":"The type of Kubernetes service to create for the inference deployment. Options include 'ClusterIP' (default), 'NodePort', 'LoadBalancer', and 'ExternalName'.","type":"string","default":"ClusterIP","enum":["ClusterIP","NodePort","LoadBalancer","ExternalName"],"nullable":true},"ServingPortPort":{"description":"The port that the container running the inference service exposes (mandatory).","type":"integer","format":"int32","minimum":1,"maximum":65535,"nullable":true},"ServingPortGrpcPort":{"description":"The GRPC port that the container running the inference service exposes.","type":"integer","format":"int32","minimum":1,"maximum":65535,"nullable":true},"ServingPortMetricsPort":{"description":"The port where metrics are exposed, required only if it's different than the main port.","type":"integer","format":"int32","minimum":1,"maximum":65535,"nullable":true},"ServingPortExposeExternally":{"description":"Indicates whether the inference serving endpoint should be accessible outside the cluster. If set to true, the endpoint will be exposed externally. To enable external access, your administrator must configure the cluster as described in the [inference requirements](https://run-ai-docs.nvidia.com/self-hosted/2.26/getting-started/installation/system-requirements#inference). section.","type":"boolean","nullable":true,"default":true},"ServingPortExposedUrl":{"description":"The custom URL to use for the serving port. If empty (default), an autogenerated URL will be used.","type":"string","nullable":true,"pattern":".*"},"ServingPortExposedProtocol":{"description":"The protocol to use for the exposed URL. If grpcPort is set, this defaults to grpc. Otherwise, it defaults to http.","type":"string","enum":["http","grpc"],"nullable":true},"NimServiceServingPortAuthorizationType":{"type":"string","description":"Specifies who can send requests to the serving endpoint:\n\nPossible values:\n- `public`: No authorization is required. (Default)\n- `authenticatedUsers`: Any NVIDIA Run:ai authenticated user and service account can send requests.\n- `authorizedUsers`: Only users listed in the authorizedUsers field can send requests.\n- `authorizedGroups`: Only members of user groups listed in the authorizedGroups field can send requests.\n","enum":["public","authenticatedUsers","authorizedUsers","authorizedGroups"],"nullable":true},"NimServiceServingPortAuthorizedUsers":{"description":"A list of users and service accounts allowed to send requests to the serving endpoint. `Note:` Cannot be used together with authorizedGroups.","type":"array","items":{"type":"string","maxLength":253,"pattern":".*"},"maxItems":1000,"nullable":true},"NimServiceServingPortAuthorizedGroups":{"description":"A list of user groups allowed to send requests to the serving endpoint. `Note:` Cannot be used together with authorizedUsers.","type":"array","items":{"type":"string","maxLength":253,"pattern":".*"},"maxItems":1000,"nullable":true},"TolerationsDefaults":{"properties":{"attributes":{"$ref":"#/components/schemas/Toleration"},"instances":{"$ref":"#/components/schemas/Tolerations"}},"nullable":true,"type":"object"},"Toleration":{"description":"Toleration details.","properties":{"name":{"description":"The name of the toleration.","type":"string","minLength":1,"maxLength":253,"nullable":true,"pattern":".*"},"operator":{"$ref":"#/components/schemas/TolerationOperator"},"key":{"description":"The taint key that the toleration applies to. (mandatory)","type":"string","maxLength":253,"nullable":true,"pattern":".*"},"value":{"description":"The taint value the toleration matches to. Mandatory if operator is Exists, forbidden otherwise.","type":"string","maxLength":10000,"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","nullable":true}},"nullable":true,"type":"object"},"TolerationOperator":{"description":"A key's relationship to the value. Equal uses key and value. Exists is equivalent to wildcard for value, so that a workload can tolerate all taints of a particular category. (mandatory)","type":"string","enum":["Equal","Exists"],"nullable":true},"TolerationEffect":{"description":"The taint effect to match. (mandatory)","type":"string","enum":["NoSchedule","NoExecute","PreferNoSchedule","Any"],"nullable":true},"Tolerations":{"description":"Set of tolerations to apply to the workload.","type":"array","items":{"$ref":"#/components/schemas/Toleration"},"maxItems":1000,"nullable":true},"NimServiceRules":{"allOf":[{"nullable":true,"properties":{"annotations":{"$ref":"#/components/schemas/InstancesRules"},"autoscaling":{"nullable":true,"properties":{"maxReplicas":{"$ref":"#/components/schemas/IntegerRules"},"metric":{"$ref":"#/components/schemas/StringRules"},"metricThreshold":{"$ref":"#/components/schemas/IntegerRules"},"minReplicas":{"$ref":"#/components/schemas/IntegerRules"},"scaleWindowSeconds":{"$ref":"#/components/schemas/IntegerRules"}},"type":"object"},"category":{"$ref":"#/components/schemas/StringRules"},"compute":{"nullable":true,"properties":{"cpuCoreLimit":{"$ref":"#/components/schemas/NumberRules"},"cpuCoreRequest":{"$ref":"#/components/schemas/NumberRules"},"cpuMemoryLimit":{"$ref":"#/components/schemas/QuantityRules"},"cpuMemoryRequest":{"$ref":"#/components/schemas/QuantityRules"},"gpuDevicesRequest":{"$ref":"#/components/schemas/IntegerRules"},"gpuMemoryLimit":{"$ref":"#/components/schemas/QuantityRules"},"gpuMemoryRequest":{"$ref":"#/components/schemas/QuantityRules"},"gpuPortionLimit":{"$ref":"#/components/schemas/NumberRules"},"gpuPortionRequest":{"$ref":"#/components/schemas/NumberRules"},"gpuRequestType":{"$ref":"#/components/schemas/GpuRequestRules"}},"type":"object"},"environmentVariables":{"$ref":"#/components/schemas/InstancesRules"},"image":{"$ref":"#/components/schemas/StringRules"},"imagePullPolicy":{"$ref":"#/components/schemas/ImagePullPolicyRules"},"imagePullSecrets":{"$ref":"#/components/schemas/ImagePullSecretsRules"},"labels":{"$ref":"#/components/schemas/InstancesRules"},"modelStore":{"nullable":true,"properties":{"nimCache":{"$ref":"#/components/schemas/NimCacheRules"},"pvc":{"$ref":"#/components/schemas/PvcRules"}},"type":"object"},"multiNode":{"$ref":"#/components/schemas/NimServiceMultiNodeRules"},"ngcAuthSecret":{"$ref":"#/components/schemas/StringRules"},"nodePools":{"$ref":"#/components/schemas/ArrayRules"},"preemptibility":{"$ref":"#/components/schemas/PreemptibilityRules"},"priorityClass":{"$ref":"#/components/schemas/StringRules"},"probes":{"$ref":"#/components/schemas/ProbesRules"},"replicas":{"$ref":"#/components/schemas/IntegerRules"},"security":{"nullable":true,"properties":{"runAsGid":{"$ref":"#/components/schemas/IntegerRulesOptional"},"runAsUid":{"$ref":"#/components/schemas/IntegerRulesOptional"}},"type":"object"},"servingPort":{"$ref":"#/components/schemas/NimServiceServingPortRules"},"tolerations":{"$ref":"#/components/schemas/TolerationsRules"}},"type":"object"}]},"InstancesRules":{"properties":{"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ItemRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"canAdd":{"description":"Whether it is permitted to add items. Default to true.","type":"boolean","nullable":true},"locked":{"description":"Set of keys for items that are \"locked\", i.e. cannot be removed or deleted.","type":"array","items":{"type":"string"}}},"nullable":true,"type":"object"},"SourceOfRule":{"description":"This field is used by the system along with effective rules, in order to specify the org unit from which this effective rule has been derived. It should be left empty when sending apply policy requests.","required":["scope"],"properties":{"scope":{"$ref":"#/components/schemas/ScopeType"},"projectId":{"$ref":"#/components/schemas/ProjectIdOptional"},"departmentId":{"$ref":"#/components/schemas/DepartmentIdOptional"},"clusterId":{"$ref":"#/components/schemas/ClusterIdOptional"},"isFallback":{"description":"source of this rule is the fallback policy","type":"boolean"}},"nullable":true,"type":"object"},"IntegerRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory. default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"max":{"description":"The maximum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"step":{"description":"The minimal difference between two values the field can be assigned to. For example, min=2, max=10, step=2 implies that the values the field can hold are 2, 4, 6, 8 and 10.","type":"integer","format":"int32","nullable":true},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"DefaultFromRule":{"properties":{"field":{"description":"The default of this field is taken from another field, with optional factor. The specified field must belong to the same workload section (compute, security, etc). For itemized field, the value of the field will be taken from the same instance.","type":"string","nullable":true,"pattern":".*"},"factor":{"description":"Multiple the value of the fromField by this factor to get the value for this field For example, if factor is 2 and defaultFrom field has value of 8, the calculated default will be determined to be 16.","type":"number","format":"double","nullable":true,"default":1}},"nullable":true,"type":"object"},"StringRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/StringRulesOptions"}],"nullable":true,"type":"object"},"StringRulesCommon":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory, default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable, default to true","type":"boolean","nullable":true},"blocked":{"description":"Blocks the field to prevent workloads from specifying any value for it.","type":"boolean","nullable":true}}},"StringRulesOptions":{"properties":{"options":{"description":"Set of options that the value of the field must be chosen from.","type":"array","items":{"$ref":"#/components/schemas/StringOption"},"nullable":true}}},"StringOption":{"description":"One of the values that the field can be assigned to, when options police is applied on the field.","required":["value"],"properties":{"value":{"description":"The value that the field should hold","type":"string","pattern":".*"},"displayed":{"description":"Textual description of the value. to be used by user interface applications.","type":"string","nullable":true,"pattern":".*"}}},"NumberRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory. default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"number","nullable":true},"max":{"description":"The maximum value that the field can be assigned to.","type":"number","nullable":true},"step":{"description":"The minimal difference between two values the field can be assigned to. For example, min=2, max=3, step=0.25 implies that the values the field can hold are 2, 2.25, 2.5 and 3.","type":"number","nullable":true},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"QuantityRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory, default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable, default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"string","nullable":true,"pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"},"max":{"description":"The maximum value that the field can be assigned to.","type":"string","nullable":true,"pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"GpuRequestRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/GpuRequestOptions"}],"nullable":true,"type":"object"},"GpuRequestOptions":{"properties":{"options":{"description":"Limit the permitted values for gpuRequest to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/GpuRequestType"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ImagePullPolicyRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/ImagePullPolicyOptions"}],"nullable":true,"type":"object"},"ImagePullPolicyOptions":{"properties":{"options":{"description":"Limit the permitted values for imagePullPolicy to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/ImagePullPolicy"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ImagePullSecretsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/ImagePullSecretsRulesAttributes"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"ImagePullSecretsRulesAttributes":{"description":"Rules for the attributes of imagePullSecrets","properties":{"name":{"$ref":"#/components/schemas/StringRules"},"userCredentials":{"$ref":"#/components/schemas/BooleanRules"}},"nullable":true,"type":"object"},"BooleanRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether the field is mandatory. default to false.","type":"boolean","nullable":true},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true}},"nullable":true,"type":"object"},"NimCacheRules":{"properties":{"name":{"$ref":"#/components/schemas/StringRules"},"profile":{"$ref":"#/components/schemas/StringRules"}},"nullable":true,"type":"object"},"PvcRules":{"properties":{"claimName":{"$ref":"#/components/schemas/StringRules"},"path":{"$ref":"#/components/schemas/StringRules"},"readOnly":{"$ref":"#/components/schemas/BooleanRules"},"claimInfo":{"$ref":"#/components/schemas/ClaimInfoRules"}},"nullable":true,"type":"object"},"ClaimInfoRules":{"properties":{"size":{"$ref":"#/components/schemas/StringRules"},"storageClass":{"$ref":"#/components/schemas/StringRules"},"accessModes":{"$ref":"#/components/schemas/PvcAccessModesRules"}},"nullable":true,"type":"object"},"PvcAccessModesRules":{"description":"Rules for access mode(s) for a newly created PVC.","properties":{"readWriteOnce":{"$ref":"#/components/schemas/BooleanRules"},"readOnlyMany":{"$ref":"#/components/schemas/BooleanRules"},"readWriteMany":{"$ref":"#/components/schemas/BooleanRules"}},"nullable":true,"type":"object"},"NimServiceMultiNodeRules":{"properties":{"workers":{"$ref":"#/components/schemas/IntegerRules"}},"nullable":true,"type":"object"},"ArrayRules":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"required":{"description":"Whether this array is mandatory. Mandatory array must include at least one item. default to false.","type":"boolean","nullable":true},"options":{"description":"Set of options that the value of each item of the array must be chosen from.","type":"array","items":{"$ref":"#/components/schemas/StringOption"}},"canEdit":{"description":"Whether the value of the array, as a whole, is editable. default to false.","type":"boolean","nullable":true}},"nullable":true,"type":"object"},"PreemptibilityRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/PreemptibilityOptions"}],"nullable":true,"type":"object"},"PreemptibilityOptions":{"properties":{"options":{"description":"Limit the permitted values for preemptibility to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/Preemptibility"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ProbesRules":{"properties":{"readiness":{"$ref":"#/components/schemas/ProbeRules"}},"nullable":true,"type":"object"},"ProbeRules":{"properties":{"initialDelaySeconds":{"$ref":"#/components/schemas/IntegerRules"},"periodSeconds":{"$ref":"#/components/schemas/IntegerRules"},"timeoutSeconds":{"$ref":"#/components/schemas/IntegerRules"},"successThreshold":{"$ref":"#/components/schemas/IntegerRules"},"failureThreshold":{"$ref":"#/components/schemas/IntegerRules"},"handler":{"$ref":"#/components/schemas/ProbeHandlerRules"}},"nullable":true,"type":"object"},"ProbeHandlerRules":{"properties":{"httpGet":{"properties":{"path":{"$ref":"#/components/schemas/StringRules"},"port":{"$ref":"#/components/schemas/IntegerRules"},"host":{"$ref":"#/components/schemas/StringRules"},"scheme":{"$ref":"#/components/schemas/StringRules"}}}},"nullable":true,"type":"object"},"IntegerRulesOptional":{"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"},"canEdit":{"description":"Whether the value of the field is editable. default to true","type":"boolean","nullable":true},"min":{"description":"The minimum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"max":{"description":"The maximum value that the field can be assigned to.","type":"integer","format":"int32","nullable":true},"step":{"description":"The minimal difference between two values the field can be assigned to. For example, min=2, max=10, step=2 implies that the values the field can hold are 2, 4, 6, 8 and 10.","type":"integer","format":"int32","nullable":true},"defaultFrom":{"$ref":"#/components/schemas/DefaultFromRule"}},"nullable":true,"type":"object"},"NimServiceServingPortRules":{"description":"A port for accessing the inference service","properties":{"serviceType":{"$ref":"#/components/schemas/ServingPortServiceTypeRules"},"port":{"$ref":"#/components/schemas/IntegerRules"},"grpcPort":{"$ref":"#/components/schemas/IntegerRules"},"metricsPort":{"$ref":"#/components/schemas/IntegerRules"},"exposeExternally":{"$ref":"#/components/schemas/BooleanRules"},"exposedUrl":{"$ref":"#/components/schemas/StringRules"},"exposedProtocol":{"$ref":"#/components/schemas/ServingPortExposedProtocolRules"},"authorizationType":{"$ref":"#/components/schemas/NimServiceServingPortAuthorizationTypeRules"},"authorizedUsers":{"$ref":"#/components/schemas/ArrayRules"},"authorizedGroups":{"$ref":"#/components/schemas/ArrayRules"}},"nullable":true,"type":"object"},"ServingPortServiceTypeRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/ServingPortServiceTypeOptions"}],"nullable":true,"type":"object"},"ServingPortServiceTypeOptions":{"properties":{"options":{"type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/ServingPortServiceType"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"ServingPortExposedProtocolRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/ServingPortExposedProtocolOptions"}],"nullable":true,"type":"object"},"ServingPortExposedProtocolOptions":{"properties":{"options":{"type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/ServingPortExposedProtocol"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"NimServiceServingPortAuthorizationTypeRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/NimServiceServingPortAuthorizationTypeOptions"}],"nullable":true,"type":"object"},"NimServiceServingPortAuthorizationTypeOptions":{"properties":{"options":{"type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/NimServiceServingPortAuthorizationType"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"TolerationsRules":{"properties":{"attributes":{"$ref":"#/components/schemas/TolerationRules"},"instances":{"$ref":"#/components/schemas/ItemRules"}},"nullable":true,"type":"object"},"TolerationRules":{"description":"Toleration details.","properties":{"operator":{"$ref":"#/components/schemas/TolerationOperatorRules"},"key":{"$ref":"#/components/schemas/StringRules"},"value":{"$ref":"#/components/schemas/StringRules"},"effect":{"$ref":"#/components/schemas/TolerationEffectRules"},"seconds":{"$ref":"#/components/schemas/IntegerRules"},"exclude":{"$ref":"#/components/schemas/BooleanRules"}},"nullable":true,"type":"object"},"TolerationOperatorRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/TolerationOperatorOptions"}],"nullable":true,"type":"object"},"TolerationOperatorOptions":{"properties":{"options":{"description":"Limit the permitted values for imagePullPolicy to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/TolerationOperator"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"TolerationEffectRules":{"allOf":[{"$ref":"#/components/schemas/StringRulesCommon"},{"$ref":"#/components/schemas/TolerationEffectOptions"}],"nullable":true,"type":"object"},"TolerationEffectOptions":{"properties":{"options":{"description":"Limit the permitted values for imagePullPolicy to a given set of values.","type":"array","items":{"required":["value"],"properties":{"value":{"$ref":"#/components/schemas/TolerationEffect"},"displayed":{"description":"Textual description of the value","type":"string","nullable":true,"pattern":".*"}}},"nullable":true}},"nullable":true,"type":"object"},"PolicyValidationStatus":{"properties":{"validation":{"properties":{"errorMessage":{"pattern":".*","type":"string","description":"In case validation failed, holds the error message explaining the issue"}},"nullable":true,"type":"object"}},"nullable":true,"type":"object"},"FieldsToReset":{"description":"set of fields in jsonpath format that is requested to clear their policy (default and rules)","type":"array","items":{"type":"string","pattern":".*"}},"NimServicePolicy":{"properties":{"meta":{"$ref":"#/components/schemas/PolicyMeta"},"policy":{"$ref":"#/components/schemas/NimServicePolicyDefaultsAndRules"},"effective":{"$ref":"#/components/schemas/NimServicePolicyDefaultsAndRules"},"effectiveUpdatedAt":{"$ref":"#/components/schemas/Timestamp"}},"nullable":true,"type":"object"},"PolicyMeta":{"allOf":[{"$ref":"#/components/schemas/PolicyReadOnlyFields"},{"$ref":"#/components/schemas/PolicyCreationFields"}]},"PolicyReadOnlyFields":{"required":["id","createdBy","createdAt","updatedBy","updatedAt"],"properties":{"id":{"$ref":"#/components/schemas/PolicyId"},"tenantId":{"$ref":"#/components/schemas/TenantId"},"clusterId":{"$ref":"#/components/schemas/ClusterIdOptional"},"createdBy":{"description":"The user who created the policy.","type":"string","minLength":1},"createdAt":{"description":"The time at which the policy wes created","type":"string","minLength":1,"format":"date-time"},"updatedBy":{"description":"The user who updated the policy.","type":"string","minLength":1},"updatedAt":{"description":"The time at which the policy has been updated","type":"string","minLength":1,"format":"date-time"}}},"PolicyId":{"description":"The unique id of the policy.","type":"string","minLength":1,"format":"uuid"},"TenantId":{"description":"The id of the tenant.","type":"integer","format":"int32"},"Timestamp":{"description":"The time at which an event occurred. e.g. the time an effective policy has been updated","type":"string","minLength":1,"format":"date-time"},"Error":{"required":["code","message"],"properties":{"code":{"type":"integer","minimum":100,"maximum":599},"message":{"type":"string"},"details":{"type":"string"}}}},"responses":{"400BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401Unauthorized":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403Forbidden":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503ServiceUnavailable":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/api/v2/policy/nim-services":{"patch":{"summary":"Update NVIDIA NIM service policy.","description":"Use to apply changes to NVIDIA NIM service policy for a given organizational unit.","operationId":"update_nim_service_policy","tags":["Policy"],"parameters":[{"$ref":"#/components/parameters/ValidateOnly"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NimServicePolicyChangeRequest"}}}},"responses":{"200":{"description":"Policy applied.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NimServicePolicy"}}}},"400":{"$ref":"#/components/responses/400BadRequest"},"401":{"$ref":"#/components/responses/401Unauthorized"},"403":{"$ref":"#/components/responses/403Forbidden"},"503":{"$ref":"#/components/responses/503ServiceUnavailable"}}}}}}
```

## Get minimal mapping info. \[experimental]

> Retrieve the names and descriptions of fields, spec selectors, and item selectors for a workload type, without the full JQ expressions.

```json
{"openapi":"3.0.3","info":{"title":"NVIDIA Run:ai","version":"2.26"},"tags":[{"name":"Policy","description":"Policies allow administrators to impose restrictions and set default values for researcher workloads. \nRestrictions and default values can be placed on CPUs, GPUs, and other resources or entities. \nFor more information, see [Policies](https://run-ai-docs.nvidia.com/self-hosted/2.26/platform-management/policies/#introduction).\n"}],"servers":[{"url":"https://app.run.ai"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer authentication"}},"schemas":{"GetMappingMinimalInfoReq":{"type":"object","description":"The workload type whose minimal mapping information is requested.","required":["workloadType"],"properties":{"workloadType":{"description":"The Kubernetes group, version, and kind of the workload type whose minimal mapping information is requested.","allOf":[{"$ref":"#/components/schemas/GVK"}]}}},"GVK":{"type":"object","description":"Specifies the Group, Version, and Kind (GVK) of the Kubernetes resource that defines the workload.","required":["version","kind"],"properties":{"group":{"description":"The API group of the Kubernetes resource. Empty string for core resources like Pod.","type":"string","nullable":true,"maxLength":253},"version":{"description":"The API version of the resource within the specified group.","type":"string","maxLength":250},"kind":{"description":"The type of Kubernetes resource being referenced.","type":"string","maxLength":250}}},"GetMappingMinimalResp":{"type":"object","description":"The names and descriptions of the fields, spec selectors, and item selectors of a workload type's mapping, without the full JQ expressions. Each leaf value is the description of the corresponding element.","properties":{"fields":{"$ref":"#/components/schemas/MappingMinimalPerField"},"specSelectors":{"$ref":"#/components/schemas/MappingMinimalSpecSelectors"}}},"MappingMinimalPerField":{"type":"object","description":"Maps each field name to its spec selectors.","additionalProperties":{"$ref":"#/components/schemas/MappingMinimalField"}},"MappingMinimalField":{"type":"object","description":"Maps each spec selector name to its item selectors.","additionalProperties":{"type":"object","description":"Maps each item selector name to its description.","additionalProperties":{"type":"string"}}},"MappingMinimalSpecSelectors":{"type":"object","description":"Maps each spec selector name to its description.","additionalProperties":{"type":"string"}},"Error":{"required":["code","message"],"properties":{"code":{"type":"integer","minimum":100,"maximum":599},"message":{"type":"string"},"details":{"type":"string"}}}},"responses":{"400BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401Unauthorized":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403Forbidden":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404NotFound":{"description":"The specified resource was not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503ServiceUnavailable":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/api/v1/policies/mappings/minimal":{"post":{"summary":"Get minimal mapping info. [experimental]","description":"Retrieve the names and descriptions of fields, spec selectors, and item selectors for a workload type, without the full JQ expressions.","operationId":"get_mapping_minimal","tags":["Policy"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetMappingMinimalInfoReq"}}}},"responses":{"200":{"description":"The names and descriptions of the mapping's fields, spec selectors, and item selectors.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetMappingMinimalResp"}}}},"400":{"$ref":"#/components/responses/400BadRequest"},"401":{"$ref":"#/components/responses/401Unauthorized"},"403":{"$ref":"#/components/responses/403Forbidden"},"404":{"$ref":"#/components/responses/404NotFound"},"503":{"$ref":"#/components/responses/503ServiceUnavailable"}}}}}}
```

## Get mapping field info. \[experimental]

> Retrieve the detailed breakdown for one or more field references in a workload type's mapping.

```json
{"openapi":"3.0.3","info":{"title":"NVIDIA Run:ai","version":"2.26"},"tags":[{"name":"Policy","description":"Policies allow administrators to impose restrictions and set default values for researcher workloads. \nRestrictions and default values can be placed on CPUs, GPUs, and other resources or entities. \nFor more information, see [Policies](https://run-ai-docs.nvidia.com/self-hosted/2.26/platform-management/policies/#introduction).\n"}],"servers":[{"url":"https://app.run.ai"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer authentication"}},"schemas":{"GetMappingFieldInfoReq":{"type":"object","description":"The workload type and the field references for which a detailed mapping breakdown is requested.","properties":{"workloadType":{"description":"The Kubernetes group, version, and kind of the workload type whose mapping is queried.","allOf":[{"$ref":"#/components/schemas/GVK"}]},"fieldsRef":{"description":"The field references to retrieve the detailed breakdown for.","type":"array","items":{"$ref":"#/components/schemas/BreakdownFieldRef"}}}},"GVK":{"type":"object","description":"Specifies the Group, Version, and Kind (GVK) of the Kubernetes resource that defines the workload.","required":["version","kind"],"properties":{"group":{"description":"The API group of the Kubernetes resource. Empty string for core resources like Pod.","type":"string","nullable":true,"maxLength":253},"version":{"description":"The API version of the resource within the specified group.","type":"string","maxLength":250},"kind":{"description":"The type of Kubernetes resource being referenced.","type":"string","maxLength":250}}},"BreakdownFieldRef":{"type":"object","description":"A reference to a single field within a workload type's mapping.","properties":{"fieldName":{"description":"The name of the field to retrieve the breakdown for.","allOf":[{"$ref":"#/components/schemas/MappingFieldName"}]},"specSelector":{"description":"The name of the spec selector that exposes the field. Optional; when omitted, the breakdown includes all spec selectors that expose the field.","allOf":[{"$ref":"#/components/schemas/SpecSelectorName"}],"nullable":true,"type":"string"},"itemSelector":{"description":"The name of the item selector that applies to the field. Optional; omit for non-itemized fields.","type":"string","nullable":true,"allOf":[{"$ref":"#/components/schemas/ItemSelectorName"}]}}},"MappingFieldName":{"type":"string","description":"The unique name of the field.","minLength":1,"maxLength":63,"pattern":"^[A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])?$"},"SpecSelectorName":{"type":"string","description":"The unique name of the spec selector","minLength":1,"maxLength":63,"pattern":"^[A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])?$"},"ItemSelectorName":{"type":"string","description":"The unique name of the item selector","minLength":1,"maxLength":63,"pattern":"^[A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])?$"},"Breakdown":{"type":"object","description":"The detailed breakdown of a mapping's fields and spec selectors, including per-field variations, formatter details, and item-selector queries. This is the same payload returned by GET /api/v1/policies/{policyId}?breakdown=true.","properties":{"breakdown":{"type":"object","nullable":true,"description":"The detailed breakdown, keyed into per-field variations and per-spec-selector details.","properties":{"fields":{"$ref":"#/components/schemas/BreakdownFields"},"specSelectors":{"$ref":"#/components/schemas/BreakdownSpecSelectors"}}}}},"BreakdownFields":{"description":"The detailed breakdown of fields, keyed by field name. Each field maps to the list of its variations across the requested spec selectors and item selectors.","type":"object","additionalProperties":{"type":"array","items":{"$ref":"#/components/schemas/BreakdownFieldVariation"}}},"BreakdownFieldVariation":{"type":"object","description":"A single variation of a field in the breakdown: the spec selectors it appears under, how it is read and written (formatter details or a direct specRef), its data type, and the item-selector queries that apply to it.","properties":{"specSelectors":{"description":"The spec selectors under which this variation of the field appears.","type":"array","items":{"$ref":"#/components/schemas/SpecSelectorName"}},"formatter":{"$ref":"#/components/schemas/BreakdownFormatter"},"specRef":{"description":"A direct dotted path into the workload spec, used in place of a formatter for simple fields.","allOf":[{"$ref":"#/components/schemas/SpecReference"}]},"type":{"description":"The data type of the field.","allOf":[{"$ref":"#/components/schemas/MappingFieldType"}]},"itemSelectors":{"$ref":"#/components/schemas/BreakdownItemSelectors"},"possibleEnforcements":{"description":"The enforcement types that may be applied to this variation of the field. Derived from the field's data type, with `items` added when the field is itemized (has an itemSelector).","type":"array","items":{"$ref":"#/components/schemas/MappingPossibleEnforcement"}}}},"BreakdownFormatter":{"type":"object","description":"The formatter details for a field in the breakdown: either the name of the built-in formatter used, or the resolved getExpr/setExpr, arrayKey, and argument type/enum information.","properties":{"builtin":{"description":"The name of the built-in formatter, if used.","type":"string","allOf":[{"$ref":"#/components/schemas/FormatterName"}],"nullable":true},"setExpr":{"type":"string","allOf":[{"$ref":"#/components/schemas/FormatterSetExpression"}],"nullable":true},"getExpr":{"type":"string","allOf":[{"$ref":"#/components/schemas/FormatterGetExpression"}],"nullable":true},"arrayKey":{"type":"object","allOf":[{"$ref":"#/components/schemas/FormatterArrayKey"}],"nullable":true},"argsInfo":{"$ref":"#/components/schemas/MappingArgsInfo"},"argsEnum":{"$ref":"#/components/schemas/MappingArgsEnum"}}},"FormatterName":{"type":"string","description":"The unique name of the formatter","minLength":1,"maxLength":63,"pattern":"^[A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])?$"},"FormatterSetExpression":{"type":"string","description":"The JQ expression used to write the field value into the workload spec. Consult https://jqlang.org/manual/ for further info.","minLength":1,"maxLength":4095,"pattern":".*"},"FormatterGetExpression":{"type":"string","description":"The JQ expression used to read the field value from the workload spec. Consult https://jqlang.org/manual/ for further info.","minLength":1,"maxLength":4095,"pattern":".*"},"FormatterArrayKey":{"type":"object","description":"The unique key per item for an itemized field, provided as an argName with an optional specRef.","required":["argName"],"properties":{"argName":{"description":"The name of the argument that supplies the unique key value per item.","allOf":[{"$ref":"#/components/schemas/MappingArgName"}]},"specRef":{"description":"An optional direct dotted path into the workload spec that locates the key value for each item.","type":"string","allOf":[{"$ref":"#/components/schemas/SpecReference"}],"nullable":true}}},"MappingArgName":{"type":"string","description":"The name of an argument referenced by a JQ expression as $ARGS.named.<argName>. The JQ expression may include arguments such as $ARGS.named.containerPort. In this case, containerPort is the argName.","minLength":1,"maxLength":63,"pattern":"^[A-Za-z_][A-Za-z0-9_]*$"},"SpecReference":{"type":"string","description":"A direct dot-separated path into the workload spec, for example securityContext.privileged. Examples that match are name configMapRef configMapRef.name secretRef.name foo-bar.baz Examples that don't match are Name, config-map. (ends with dot), .name, foo-","minLength":1,"maxLength":253,"pattern":"^(?:[a-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?)(?:\\.(?:[a-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?))*$"},"MappingArgsInfo":{"type":"object","description":"The data type of each argument referenced by the JQ expression as $ARGS.named.<argName>.","additionalProperties":{"$ref":"#/components/schemas/MappingFieldType"}},"MappingFieldType":{"description":"The data type of the field.","type":"string","enum":["string","boolean","integer","number","quantity","ipaddress","integers","numbers","strings","namesArray","object"]},"MappingArgsEnum":{"type":"object","description":"The allowed values for each string-typed argument referenced by the JQ expression as $ARGS.named.<argName>. Up to 100 values per argument.","additionalProperties":{"type":"array","maxItems":100,"items":{"type":"string","pattern":".*"}}},"BreakdownItemSelectors":{"type":"object","description":"The item selectors that apply to the field, keyed by item-selector name, with each value containing the item selector's JQ query and argument metadata.","additionalProperties":{"$ref":"#/components/schemas/BreakdownItemSelector"}},"BreakdownItemSelector":{"type":"object","description":"The details of a single item selector in the breakdown: its JQ query, and the type and enum information for any arguments referenced by the query.","properties":{"query":{"$ref":"#/components/schemas/ItemSelectorQuery"},"argsInfo":{"$ref":"#/components/schemas/MappingArgsInfo"},"argsEnum":{"$ref":"#/components/schemas/MappingArgsEnum"}}},"ItemSelectorQuery":{"type":"string","description":"The JQ query used to filter items of an itemized field. Consult https://jqlang.org/manual/ for further info.","minLength":1,"maxLength":4095,"pattern":".*"},"MappingPossibleEnforcement":{"description":"The name of an enforcement type that may be applied to a field. The set of enforcements available for a given field is determined by the field's data type and by whether the field is itemized (has an itemSelector).","type":"string","enum":["set","default","required","blocked","match","options","length","range","quantityRange","elements","items"]},"BreakdownSpecSelectors":{"type":"object","description":"The detailed breakdown of spec selectors, keyed by spec-selector name.","additionalProperties":{"$ref":"#/components/schemas/BreakdownSpecSelector"}},"BreakdownSpecSelector":{"type":"object","description":"The details of a single spec selector in the breakdown: its description, JQ query, and the type and enum information for any arguments referenced by the query.","properties":{"description":{"$ref":"#/components/schemas/MappingDescriptionOptional"},"query":{"$ref":"#/components/schemas/SpecSelectorQuery"},"argsInfo":{"$ref":"#/components/schemas/MappingArgsInfo"},"argsEnum":{"$ref":"#/components/schemas/MappingArgsEnum"},"dependency":{"$ref":"#/components/schemas/SpecSelectorDependency"}}},"MappingDescriptionOptional":{"type":"string","nullable":true,"description":"A free-text description of the element.","pattern":".*","minLength":1,"maxLength":1023},"SpecSelectorQuery":{"type":"string","description":"The JQ query used to select a subtree of the workload spec. Consult https://jqlang.org/manual/ for further info.","minLength":1,"maxLength":4095,"pattern":".*"},"SpecSelectorDependency":{"type":"object","nullable":true,"description":"Declares that this spec selector depends on a parent path existing.\nThe engine will ensure the element path exists before running SET/DEFAULT\nactions that target this selector.\n","properties":{"specSelector":{"allOf":[{"$ref":"#/components/schemas/SpecSelectorName"}],"nullable":true,"type":"string","description":"Optional parent spec selector that provides iteration context.\nWhen set, the element path is created relative to each result\nof the parent selector. When omitted, element is relative to\nthe workload root.\n"},"path":{"type":"string","description":"Dot-separated path to ensure exists below the parent.\nExample: \"template.metadata\" creates both .template and\n.template.metadata if missing.\n","minLength":1,"maxLength":255,"pattern":"^[a-zA-Z_][a-zA-Z0-9_-]*(\\.[a-zA-Z_][a-zA-Z0-9_-]*)*$"}}},"Error":{"required":["code","message"],"properties":{"code":{"type":"integer","minimum":100,"maximum":599},"message":{"type":"string"},"details":{"type":"string"}}}},"responses":{"400BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401Unauthorized":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403Forbidden":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404NotFound":{"description":"The specified resource was not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503ServiceUnavailable":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/api/v1/policies/mappings/field-info":{"post":{"summary":"Get mapping field info. [experimental]","description":"Retrieve the detailed breakdown for one or more field references in a workload type's mapping.","operationId":"get_mapping_field_info","tags":["Policy"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetMappingFieldInfoReq"}}}},"responses":{"200":{"description":"The detailed breakdown of the requested fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Breakdown"}}}},"400":{"$ref":"#/components/responses/400BadRequest"},"401":{"$ref":"#/components/responses/401Unauthorized"},"403":{"$ref":"#/components/responses/403Forbidden"},"404":{"$ref":"#/components/responses/404NotFound"},"503":{"$ref":"#/components/responses/503ServiceUnavailable"}}}}}}
```

## List policies. \[experimental]

> Retrieve a list of policies with their details, optionally filtered, sorted, and paginated.

```json
{"openapi":"3.0.3","info":{"title":"NVIDIA Run:ai","version":"2.26"},"tags":[{"name":"Policy","description":"Policies allow administrators to impose restrictions and set default values for researcher workloads. \nRestrictions and default values can be placed on CPUs, GPUs, and other resources or entities. \nFor more information, see [Policies](https://run-ai-docs.nvidia.com/self-hosted/2.26/platform-management/policies/#introduction).\n"}],"servers":[{"url":"https://app.run.ai"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer authentication"}},"parameters":{"PoliciesFilter":{"name":"filterBy","in":"query","required":false,"description":"Filter results by a parameter. Use the format field-name operator value. Filterable fields are `id`, `type` and `scope`. Operators are `==` Equals, `!=` Not equals, `<=` Less than or equal, `>=` Greater than or equal, `=@` contains, `!@` Does not contain, `=^` Starts with and `=$` Ends with. Dates are in ISO 8601 timestamp format and available for operators `==`, `!=`, `<=` and `>=`.","schema":{"type":"array","maxItems":10,"items":{"type":"string","pattern":"^(id|type|scope)(==|!=|<=|>=|=@|!@|=\\^|=\\$).+$"}},"explode":false},"PoliciesSort":{"name":"sortBy","in":"query","required":false,"description":"The field to sort the results by.","schema":{"type":"string","enum":["id","type","scope","createdAt","createdBy","updatedAt","updatedBy"]}},"Offset":{"name":"offset","in":"query","required":false,"description":"The offset of the first item returned in the collection.","schema":{"type":"integer","format":"int32"}},"Limit":{"name":"limit","in":"query","required":false,"description":"The maximum number of entries to return.","schema":{"type":"integer","format":"int32","default":50,"minimum":1,"maximum":500}},"SortOrder":{"name":"sortOrder","in":"query","required":false,"description":"Sort results in descending or ascending order.","schema":{"type":"string","enum":["asc","desc"],"default":"asc"}}},"schemas":{"ListGvkPoliciesResp":{"type":"object","description":"A paginated list of policies.","required":["items"],"properties":{"items":{"description":"The policies matching the request, up to a maximum of 1000.","type":"array","items":{"$ref":"#/components/schemas/Policy"},"maxItems":1000}}},"Policy":{"type":"object","description":"A policy resource. A policy is uniquely identified by the triple of workload type (Kubernetes Group/Version/Kind), scope, and project id, and constrains the allowed values of fields in the workload spec through its rules. The server assigns a unique id and tracks ownership and configuration status.","allOf":[{"$ref":"#/components/schemas/PolicyDescriptionField"},{"$ref":"#/components/schemas/WorkloadTypeAndScope"},{"$ref":"#/components/schemas/PolicyRules"},{"$ref":"#/components/schemas/EffectiveRules"},{"$ref":"#/components/schemas/PolicyIdAndOwnership"}],"properties":{"status":{"description":"Configuration issues detected by the server for this policy. Returned in responses only; not accepted in requests.","allOf":[{"$ref":"#/components/schemas/PolicyStatus"}],"type":"object","nullable":true}}},"PolicyDescriptionField":{"type":"object","properties":{"description":{"$ref":"#/components/schemas/PolicyDescriptionOptional"}}},"PolicyDescriptionOptional":{"type":"string","nullable":true,"description":"A description of the policy.","pattern":".*","minLength":1,"maxLength":1023},"WorkloadTypeAndScope":{"type":"object","description":"The workload type and scope this policy applies to. Together with the project id, they form the unique triple that identifies a policy. The workload type is the Kubernetes Group/Version/Kind of the workloads the policy governs, and the scope is the level at which it takes effect. Currently only the project scope is supported; tenant, cluster, and department are planned, and system is not supported.","required":["workloadType","scope"],"properties":{"workloadType":{"$ref":"#/components/schemas/GVK"},"scope":{"$ref":"#/components/schemas/ScopeType"},"clusterId":{"description":"The id of the cluster the policy applies to. Required when the scope is cluster.","allOf":[{"$ref":"#/components/schemas/ClusterId"}],"type":"string","nullable":true},"departmentId":{"description":"The id of the department the policy applies to. Required when the scope is department.","allOf":[{"$ref":"#/components/schemas/DepartmentId"}],"type":"string","nullable":true},"projectId":{"description":"The id of the project the policy applies to. Required when the scope is project.","allOf":[{"$ref":"#/components/schemas/ProjectId"}],"type":"string","nullable":true}}},"GVK":{"type":"object","description":"Specifies the Group, Version, and Kind (GVK) of the Kubernetes resource that defines the workload.","required":["version","kind"],"properties":{"group":{"description":"The API group of the Kubernetes resource. Empty string for core resources like Pod.","type":"string","nullable":true,"maxLength":253},"version":{"description":"The API version of the resource within the specified group.","type":"string","maxLength":250},"kind":{"description":"The type of Kubernetes resource being referenced.","type":"string","maxLength":250}}},"ScopeType":{"type":"string","enum":["system","tenant","cluster","department","project"]},"ClusterId":{"description":"The id of the cluster.","type":"string","format":"uuid"},"DepartmentId":{"description":"The id of the department.","type":"string","minLength":1,"pattern":".*"},"ProjectId":{"description":"The id of the project.","type":"string","pattern":".*"},"PolicyRules":{"type":"object","properties":{"rules":{"description":"The rules declared on this policy. Each rule targets a field in the workload spec and constrains its allowed values through its enforcements.","type":"array","items":{"$ref":"#/components/schemas/PolicyRule"}}}},"PolicyRule":{"type":"object","description":"A single policy rule. It combines the rule's identity (the field it targets, along with the spec selector, optional item selector, and selector parameters) with its enforcements (the behavior that constrains the field's allowed values).","allOf":[{"$ref":"#/components/schemas/PolicyRuleRef"},{"$ref":"#/components/schemas/PolicyRuleEnforcements"}]},"PolicyRuleRef":{"type":"object","description":"The identity of a policy rule: the policy-controllable field it enforces, the spec selector that picks which subtree of the workload spec it applies to, and the optional item selector and selector parameters that narrow the target for itemized fields.","required":["field","specSelector"],"properties":{"field":{"$ref":"#/components/schemas/MappingFieldName"},"specSelector":{"$ref":"#/components/schemas/SpecSelectorName"},"itemSelector":{"description":"The name of the item selector that picks specific items of an itemized field. Omit for non-itemized fields.","allOf":[{"$ref":"#/components/schemas/ItemSelectorName"}],"type":"string","nullable":true},"selectorParams":{"$ref":"#/components/schemas/SelectorParams"}}},"MappingFieldName":{"type":"string","description":"The unique name of the field.","minLength":1,"maxLength":63,"pattern":"^[A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])?$"},"SpecSelectorName":{"type":"string","description":"The unique name of the spec selector","minLength":1,"maxLength":63,"pattern":"^[A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])?$"},"ItemSelectorName":{"type":"string","description":"The unique name of the item selector","minLength":1,"maxLength":63,"pattern":"^[A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])?$"},"SelectorParams":{"type":"object","description":"The parameter values supplied to the spec selector and item selector at evaluation time, as a key-value map.","additionalProperties":true},"PolicyRuleEnforcements":{"type":"object","required":["enforcements"],"properties":{"enforcements":{"description":"The set of enforcements that define the rule's behavior. Each enforcement pairs an enforcement type with its value, and multiple enforcements may combine on a single rule to constrain the targeted field.","type":"array","items":{"allOf":[{"$ref":"#/components/schemas/PolicyRuleEnforcement"}]}}}},"PolicyRuleEnforcement":{"description":"A single enforcement on a policy rule. Exactly one enforcement type is expressed per object (for example set, default, required, blocked, options, match, or one of the grouped range, length, elements, items, or quantityRange constraints); combine multiple enforcement objects on a rule to apply several constraints to the same field.","anyOf":[{"$ref":"#/components/schemas/PolicyEnforcementSet"},{"$ref":"#/components/schemas/PolicyEnforcementDefault"},{"$ref":"#/components/schemas/PolicyEnforcementRequired"},{"$ref":"#/components/schemas/PolicyEnforcementBlocked"},{"$ref":"#/components/schemas/PolicyEnforcementLength"},{"$ref":"#/components/schemas/PolicyEnforcementOptions"},{"$ref":"#/components/schemas/PolicyEnforcementMatch"},{"$ref":"#/components/schemas/PolicyEnforcementRange"},{"$ref":"#/components/schemas/PolicyEnforcementElements"},{"$ref":"#/components/schemas/PolicyEnforcementItems"},{"$ref":"#/components/schemas/PolicyEnforcementQuantityRange"}]},"PolicyEnforcementSet":{"type":"object","properties":{"set":{"type":"object","description":"Enforces the value of the field.","additionalProperties":true}}},"PolicyEnforcementDefault":{"type":"object","properties":{"default":{"type":"object","description":"Sets the value of the field when the user does not supply one.","additionalProperties":true}}},"PolicyEnforcementRequired":{"type":"object","properties":{"required":{"description":"Requires the field to have a value, supplied either in the submission or by a policy default.","type":"boolean","default":false,"nullable":true}}},"PolicyEnforcementBlocked":{"type":"object","properties":{"blocked":{"description":"Prevents the field from being assigned any value. Inverse of \"required\".","type":"boolean","default":false,"nullable":true}}},"PolicyEnforcementLength":{"type":"object","properties":{"length":{"type":"object","description":"Enforces the field's length (character count for strings, element count for slices, arrays, and maps) to fall within the inclusive range [min, max]. At least one of `min`/`max` must be specified.\n","nullable":true,"properties":{"min":{"description":"Enforces the minimum length.","type":"integer","format":"int32","minimum":0,"nullable":true},"max":{"description":"Enforces the maximum length.","type":"integer","format":"int32","minimum":0,"nullable":true}}}}},"PolicyEnforcementOptions":{"type":"object","properties":{"options":{"description":"Restricts the value of the field to one of the listed options.","type":"array","items":{"type":"string"},"nullable":true}}},"PolicyEnforcementMatch":{"type":"object","properties":{"match":{"description":"Requires the value of the field to match the regular expression.","type":"string","nullable":true}}},"PolicyEnforcementRange":{"type":"object","properties":{"range":{"type":"object","description":"Enforces a numeric value to fall within the inclusive range [min, max], optionally restricted to increments of `step` starting from `min`.\n","nullable":true,"properties":{"min":{"description":"Enforces the minimum numeric value of the field.","type":"number","nullable":true},"max":{"description":"Enforces the maximum numeric value of the field.","type":"number","nullable":true},"step":{"description":"Restricts the field value to specific numeric increments starting from `min` (or from 0 when `min` is absent). Must be greater than 0.\n","type":"number","nullable":true}}}}},"PolicyEnforcementElements":{"type":"object","properties":{"elements":{"type":"object","description":"Enforces the number of elements in an array field to fall within the inclusive range [min, max]. At least one of `min`/`max` must be specified.\n","nullable":true,"properties":{"min":{"description":"Enforces the minimum number of elements.","type":"integer","format":"int32","minimum":0,"nullable":true},"max":{"description":"Enforces the maximum number of elements.","type":"integer","format":"int32","minimum":0,"nullable":true}}}}},"PolicyEnforcementItems":{"type":"object","properties":{"items":{"type":"object","description":"Enforces the number of items produced by a field's itemSelector to fall within the inclusive range [min, max]. At least one of `min`/`max` must be specified. Applies only to fields that declare itemSelectors.\n","nullable":true,"properties":{"min":{"description":"Enforces the minimum number of items.","type":"integer","format":"int32","minimum":0,"nullable":true},"max":{"description":"Enforces the maximum number of items.","type":"integer","format":"int32","minimum":0,"nullable":true}}}}},"PolicyEnforcementQuantityRange":{"type":"object","properties":{"quantityRange":{"type":"object","description":"Enforces a Kubernetes resource quantity to fall within the inclusive range [min, max], optionally restricted to increments of `step` starting from `min`. All bounds must be valid Kubernetes quantities such as 100m, 1Gi, or 500Mi.\n","nullable":true,"properties":{"min":{"description":"Enforces the minimum quantity value of the field.","type":"string","nullable":true},"max":{"description":"Enforces the maximum quantity value of the field.","type":"string","nullable":true},"step":{"description":"Restricts the field value to specific quantity increments starting from `min` (or from 0 when `min` is absent).\n","type":"string","nullable":true}}}}},"EffectiveRules":{"type":"object","properties":{"effectiveRules":{"description":"The merged rule set in effect for this policy, including rules inherited from broader scopes (cluster, then department, then project). Each entry adds the sourceOfRule indicating where the rule was defined. Returned in responses only; not accepted in requests.","type":"array","items":{"allOf":[{"$ref":"#/components/schemas/PolicyRule"},{"$ref":"#/components/schemas/PolicyRuleSource"}]}}}},"PolicyRuleSource":{"type":"object","description":"The origin of an effective rule. Identifies the scope at which the rule was defined and the matching project, department, or cluster id. Set by the server on effective rules in responses only; leave empty in requests.","required":["sourceOfRule"],"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"}}},"SourceOfRule":{"description":"This field is used by the system along with effective rules, in order to specify the org unit from which this effective rule has been derived. It should be left empty when sending apply policy requests.","required":["scope"],"properties":{"scope":{"$ref":"#/components/schemas/ScopeType"},"projectId":{"$ref":"#/components/schemas/ProjectIdOptional"},"departmentId":{"$ref":"#/components/schemas/DepartmentIdOptional"},"clusterId":{"$ref":"#/components/schemas/ClusterIdOptional"},"isFallback":{"description":"source of this rule is the fallback policy","type":"boolean"}},"nullable":true,"type":"object"},"ProjectIdOptional":{"description":"The id of the project.","type":"integer","format":"int32","nullable":true},"DepartmentIdOptional":{"description":"The id of the department.","type":"string","minLength":1,"nullable":true,"pattern":".*"},"ClusterIdOptional":{"description":"The id of the cluster.","type":"string","format":"uuid","minLength":1,"nullable":true},"PolicyIdAndOwnership":{"type":"object","required":["id","createdBy","createdAt","updatedBy","updatedAt"],"properties":{"id":{"description":"The unique identifier for the policy.","type":"string","format":"uuid"},"createdBy":{"description":"Identifier of the user who created the policy.","type":"string","minLength":1},"createdAt":{"description":"The timestamp for when the policy was created.","type":"string","minLength":1,"format":"date-time"},"updatedBy":{"description":"Identifier of the user who last updated the policy.","type":"string","minLength":1},"updatedAt":{"description":"The timestamp for when the policy was last updated.","type":"string","minLength":1,"format":"date-time"}}},"PolicyStatus":{"type":"object","description":"Configuration issues detected by the server for the policy, along with its current phase.","properties":{"phase":{"$ref":"#/components/schemas/PolicyPhase"},"issues":{"description":"The list of configuration issues detected for the policy.","type":"array","maxItems":500,"items":{"type":"string","maxLength":1024}}}},"PolicyPhase":{"type":"string","enum":["Ready","PendingUpdate","Degraded"],"description":"The current phase of the policy. Supported values include:\n- Ready: The policy is fully validated, and all rules are successfully applied to the workload.\n- PendingUpdate: Configuration components (e.g., specSelector, itemSelector) have changed. \n  The policy is awaiting validation to ensure the full rule set remains functional; \n  this validation occurs the next time the policy is applied.\n- Degraded: One or more policy rules cannot be applied due to recent configuration changes. \n  While the policy remains active, some rules may be ignored during enforcement.\n"},"Error":{"required":["code","message"],"properties":{"code":{"type":"integer","minimum":100,"maximum":599},"message":{"type":"string"},"details":{"type":"string"}}}},"responses":{"400BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401Unauthorized":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403Forbidden":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503ServiceUnavailable":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/api/v1/policies":{"get":{"summary":"List policies. [experimental]","description":"Retrieve a list of policies with their details, optionally filtered, sorted, and paginated.","operationId":"list_gvk_policies","tags":["Policy"],"parameters":[{"$ref":"#/components/parameters/PoliciesFilter"},{"$ref":"#/components/parameters/PoliciesSort"},{"$ref":"#/components/parameters/Offset"},{"$ref":"#/components/parameters/Limit"},{"$ref":"#/components/parameters/SortOrder"}],"responses":{"200":{"description":"The list of matching policies.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListGvkPoliciesResp"}}}},"400":{"$ref":"#/components/responses/400BadRequest"},"401":{"$ref":"#/components/responses/401Unauthorized"},"403":{"$ref":"#/components/responses/403Forbidden"},"503":{"$ref":"#/components/responses/503ServiceUnavailable"}}}}}}
```

## Create a policy. \[experimental]

> Create a policy for a specific workload type based on the provided specification.

```json
{"openapi":"3.0.3","info":{"title":"NVIDIA Run:ai","version":"2.26"},"tags":[{"name":"Policy","description":"Policies allow administrators to impose restrictions and set default values for researcher workloads. \nRestrictions and default values can be placed on CPUs, GPUs, and other resources or entities. \nFor more information, see [Policies](https://run-ai-docs.nvidia.com/self-hosted/2.26/platform-management/policies/#introduction).\n"}],"servers":[{"url":"https://app.run.ai"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer authentication"}},"schemas":{"CreateGvkPolicyReq":{"type":"object","description":"Create a policy and apply it on a given workload type.","allOf":[{"$ref":"#/components/schemas/PolicyDescriptionField"},{"$ref":"#/components/schemas/WorkloadTypeAndScope"},{"$ref":"#/components/schemas/PolicyRules"}]},"PolicyDescriptionField":{"type":"object","properties":{"description":{"$ref":"#/components/schemas/PolicyDescriptionOptional"}}},"PolicyDescriptionOptional":{"type":"string","nullable":true,"description":"A description of the policy.","pattern":".*","minLength":1,"maxLength":1023},"WorkloadTypeAndScope":{"type":"object","description":"The workload type and scope this policy applies to. Together with the project id, they form the unique triple that identifies a policy. The workload type is the Kubernetes Group/Version/Kind of the workloads the policy governs, and the scope is the level at which it takes effect. Currently only the project scope is supported; tenant, cluster, and department are planned, and system is not supported.","required":["workloadType","scope"],"properties":{"workloadType":{"$ref":"#/components/schemas/GVK"},"scope":{"$ref":"#/components/schemas/ScopeType"},"clusterId":{"description":"The id of the cluster the policy applies to. Required when the scope is cluster.","allOf":[{"$ref":"#/components/schemas/ClusterId"}],"type":"string","nullable":true},"departmentId":{"description":"The id of the department the policy applies to. Required when the scope is department.","allOf":[{"$ref":"#/components/schemas/DepartmentId"}],"type":"string","nullable":true},"projectId":{"description":"The id of the project the policy applies to. Required when the scope is project.","allOf":[{"$ref":"#/components/schemas/ProjectId"}],"type":"string","nullable":true}}},"GVK":{"type":"object","description":"Specifies the Group, Version, and Kind (GVK) of the Kubernetes resource that defines the workload.","required":["version","kind"],"properties":{"group":{"description":"The API group of the Kubernetes resource. Empty string for core resources like Pod.","type":"string","nullable":true,"maxLength":253},"version":{"description":"The API version of the resource within the specified group.","type":"string","maxLength":250},"kind":{"description":"The type of Kubernetes resource being referenced.","type":"string","maxLength":250}}},"ScopeType":{"type":"string","enum":["system","tenant","cluster","department","project"]},"ClusterId":{"description":"The id of the cluster.","type":"string","format":"uuid"},"DepartmentId":{"description":"The id of the department.","type":"string","minLength":1,"pattern":".*"},"ProjectId":{"description":"The id of the project.","type":"string","pattern":".*"},"PolicyRules":{"type":"object","properties":{"rules":{"description":"The rules declared on this policy. Each rule targets a field in the workload spec and constrains its allowed values through its enforcements.","type":"array","items":{"$ref":"#/components/schemas/PolicyRule"}}}},"PolicyRule":{"type":"object","description":"A single policy rule. It combines the rule's identity (the field it targets, along with the spec selector, optional item selector, and selector parameters) with its enforcements (the behavior that constrains the field's allowed values).","allOf":[{"$ref":"#/components/schemas/PolicyRuleRef"},{"$ref":"#/components/schemas/PolicyRuleEnforcements"}]},"PolicyRuleRef":{"type":"object","description":"The identity of a policy rule: the policy-controllable field it enforces, the spec selector that picks which subtree of the workload spec it applies to, and the optional item selector and selector parameters that narrow the target for itemized fields.","required":["field","specSelector"],"properties":{"field":{"$ref":"#/components/schemas/MappingFieldName"},"specSelector":{"$ref":"#/components/schemas/SpecSelectorName"},"itemSelector":{"description":"The name of the item selector that picks specific items of an itemized field. Omit for non-itemized fields.","allOf":[{"$ref":"#/components/schemas/ItemSelectorName"}],"type":"string","nullable":true},"selectorParams":{"$ref":"#/components/schemas/SelectorParams"}}},"MappingFieldName":{"type":"string","description":"The unique name of the field.","minLength":1,"maxLength":63,"pattern":"^[A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])?$"},"SpecSelectorName":{"type":"string","description":"The unique name of the spec selector","minLength":1,"maxLength":63,"pattern":"^[A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])?$"},"ItemSelectorName":{"type":"string","description":"The unique name of the item selector","minLength":1,"maxLength":63,"pattern":"^[A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])?$"},"SelectorParams":{"type":"object","description":"The parameter values supplied to the spec selector and item selector at evaluation time, as a key-value map.","additionalProperties":true},"PolicyRuleEnforcements":{"type":"object","required":["enforcements"],"properties":{"enforcements":{"description":"The set of enforcements that define the rule's behavior. Each enforcement pairs an enforcement type with its value, and multiple enforcements may combine on a single rule to constrain the targeted field.","type":"array","items":{"allOf":[{"$ref":"#/components/schemas/PolicyRuleEnforcement"}]}}}},"PolicyRuleEnforcement":{"description":"A single enforcement on a policy rule. Exactly one enforcement type is expressed per object (for example set, default, required, blocked, options, match, or one of the grouped range, length, elements, items, or quantityRange constraints); combine multiple enforcement objects on a rule to apply several constraints to the same field.","anyOf":[{"$ref":"#/components/schemas/PolicyEnforcementSet"},{"$ref":"#/components/schemas/PolicyEnforcementDefault"},{"$ref":"#/components/schemas/PolicyEnforcementRequired"},{"$ref":"#/components/schemas/PolicyEnforcementBlocked"},{"$ref":"#/components/schemas/PolicyEnforcementLength"},{"$ref":"#/components/schemas/PolicyEnforcementOptions"},{"$ref":"#/components/schemas/PolicyEnforcementMatch"},{"$ref":"#/components/schemas/PolicyEnforcementRange"},{"$ref":"#/components/schemas/PolicyEnforcementElements"},{"$ref":"#/components/schemas/PolicyEnforcementItems"},{"$ref":"#/components/schemas/PolicyEnforcementQuantityRange"}]},"PolicyEnforcementSet":{"type":"object","properties":{"set":{"type":"object","description":"Enforces the value of the field.","additionalProperties":true}}},"PolicyEnforcementDefault":{"type":"object","properties":{"default":{"type":"object","description":"Sets the value of the field when the user does not supply one.","additionalProperties":true}}},"PolicyEnforcementRequired":{"type":"object","properties":{"required":{"description":"Requires the field to have a value, supplied either in the submission or by a policy default.","type":"boolean","default":false,"nullable":true}}},"PolicyEnforcementBlocked":{"type":"object","properties":{"blocked":{"description":"Prevents the field from being assigned any value. Inverse of \"required\".","type":"boolean","default":false,"nullable":true}}},"PolicyEnforcementLength":{"type":"object","properties":{"length":{"type":"object","description":"Enforces the field's length (character count for strings, element count for slices, arrays, and maps) to fall within the inclusive range [min, max]. At least one of `min`/`max` must be specified.\n","nullable":true,"properties":{"min":{"description":"Enforces the minimum length.","type":"integer","format":"int32","minimum":0,"nullable":true},"max":{"description":"Enforces the maximum length.","type":"integer","format":"int32","minimum":0,"nullable":true}}}}},"PolicyEnforcementOptions":{"type":"object","properties":{"options":{"description":"Restricts the value of the field to one of the listed options.","type":"array","items":{"type":"string"},"nullable":true}}},"PolicyEnforcementMatch":{"type":"object","properties":{"match":{"description":"Requires the value of the field to match the regular expression.","type":"string","nullable":true}}},"PolicyEnforcementRange":{"type":"object","properties":{"range":{"type":"object","description":"Enforces a numeric value to fall within the inclusive range [min, max], optionally restricted to increments of `step` starting from `min`.\n","nullable":true,"properties":{"min":{"description":"Enforces the minimum numeric value of the field.","type":"number","nullable":true},"max":{"description":"Enforces the maximum numeric value of the field.","type":"number","nullable":true},"step":{"description":"Restricts the field value to specific numeric increments starting from `min` (or from 0 when `min` is absent). Must be greater than 0.\n","type":"number","nullable":true}}}}},"PolicyEnforcementElements":{"type":"object","properties":{"elements":{"type":"object","description":"Enforces the number of elements in an array field to fall within the inclusive range [min, max]. At least one of `min`/`max` must be specified.\n","nullable":true,"properties":{"min":{"description":"Enforces the minimum number of elements.","type":"integer","format":"int32","minimum":0,"nullable":true},"max":{"description":"Enforces the maximum number of elements.","type":"integer","format":"int32","minimum":0,"nullable":true}}}}},"PolicyEnforcementItems":{"type":"object","properties":{"items":{"type":"object","description":"Enforces the number of items produced by a field's itemSelector to fall within the inclusive range [min, max]. At least one of `min`/`max` must be specified. Applies only to fields that declare itemSelectors.\n","nullable":true,"properties":{"min":{"description":"Enforces the minimum number of items.","type":"integer","format":"int32","minimum":0,"nullable":true},"max":{"description":"Enforces the maximum number of items.","type":"integer","format":"int32","minimum":0,"nullable":true}}}}},"PolicyEnforcementQuantityRange":{"type":"object","properties":{"quantityRange":{"type":"object","description":"Enforces a Kubernetes resource quantity to fall within the inclusive range [min, max], optionally restricted to increments of `step` starting from `min`. All bounds must be valid Kubernetes quantities such as 100m, 1Gi, or 500Mi.\n","nullable":true,"properties":{"min":{"description":"Enforces the minimum quantity value of the field.","type":"string","nullable":true},"max":{"description":"Enforces the maximum quantity value of the field.","type":"string","nullable":true},"step":{"description":"Restricts the field value to specific quantity increments starting from `min` (or from 0 when `min` is absent).\n","type":"string","nullable":true}}}}},"Policy":{"type":"object","description":"A policy resource. A policy is uniquely identified by the triple of workload type (Kubernetes Group/Version/Kind), scope, and project id, and constrains the allowed values of fields in the workload spec through its rules. The server assigns a unique id and tracks ownership and configuration status.","allOf":[{"$ref":"#/components/schemas/PolicyDescriptionField"},{"$ref":"#/components/schemas/WorkloadTypeAndScope"},{"$ref":"#/components/schemas/PolicyRules"},{"$ref":"#/components/schemas/EffectiveRules"},{"$ref":"#/components/schemas/PolicyIdAndOwnership"}],"properties":{"status":{"description":"Configuration issues detected by the server for this policy. Returned in responses only; not accepted in requests.","allOf":[{"$ref":"#/components/schemas/PolicyStatus"}],"type":"object","nullable":true}}},"EffectiveRules":{"type":"object","properties":{"effectiveRules":{"description":"The merged rule set in effect for this policy, including rules inherited from broader scopes (cluster, then department, then project). Each entry adds the sourceOfRule indicating where the rule was defined. Returned in responses only; not accepted in requests.","type":"array","items":{"allOf":[{"$ref":"#/components/schemas/PolicyRule"},{"$ref":"#/components/schemas/PolicyRuleSource"}]}}}},"PolicyRuleSource":{"type":"object","description":"The origin of an effective rule. Identifies the scope at which the rule was defined and the matching project, department, or cluster id. Set by the server on effective rules in responses only; leave empty in requests.","required":["sourceOfRule"],"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"}}},"SourceOfRule":{"description":"This field is used by the system along with effective rules, in order to specify the org unit from which this effective rule has been derived. It should be left empty when sending apply policy requests.","required":["scope"],"properties":{"scope":{"$ref":"#/components/schemas/ScopeType"},"projectId":{"$ref":"#/components/schemas/ProjectIdOptional"},"departmentId":{"$ref":"#/components/schemas/DepartmentIdOptional"},"clusterId":{"$ref":"#/components/schemas/ClusterIdOptional"},"isFallback":{"description":"source of this rule is the fallback policy","type":"boolean"}},"nullable":true,"type":"object"},"ProjectIdOptional":{"description":"The id of the project.","type":"integer","format":"int32","nullable":true},"DepartmentIdOptional":{"description":"The id of the department.","type":"string","minLength":1,"nullable":true,"pattern":".*"},"ClusterIdOptional":{"description":"The id of the cluster.","type":"string","format":"uuid","minLength":1,"nullable":true},"PolicyIdAndOwnership":{"type":"object","required":["id","createdBy","createdAt","updatedBy","updatedAt"],"properties":{"id":{"description":"The unique identifier for the policy.","type":"string","format":"uuid"},"createdBy":{"description":"Identifier of the user who created the policy.","type":"string","minLength":1},"createdAt":{"description":"The timestamp for when the policy was created.","type":"string","minLength":1,"format":"date-time"},"updatedBy":{"description":"Identifier of the user who last updated the policy.","type":"string","minLength":1},"updatedAt":{"description":"The timestamp for when the policy was last updated.","type":"string","minLength":1,"format":"date-time"}}},"PolicyStatus":{"type":"object","description":"Configuration issues detected by the server for the policy, along with its current phase.","properties":{"phase":{"$ref":"#/components/schemas/PolicyPhase"},"issues":{"description":"The list of configuration issues detected for the policy.","type":"array","maxItems":500,"items":{"type":"string","maxLength":1024}}}},"PolicyPhase":{"type":"string","enum":["Ready","PendingUpdate","Degraded"],"description":"The current phase of the policy. Supported values include:\n- Ready: The policy is fully validated, and all rules are successfully applied to the workload.\n- PendingUpdate: Configuration components (e.g., specSelector, itemSelector) have changed. \n  The policy is awaiting validation to ensure the full rule set remains functional; \n  this validation occurs the next time the policy is applied.\n- Degraded: One or more policy rules cannot be applied due to recent configuration changes. \n  While the policy remains active, some rules may be ignored during enforcement.\n"},"Error":{"required":["code","message"],"properties":{"code":{"type":"integer","minimum":100,"maximum":599},"message":{"type":"string"},"details":{"type":"string"}}}},"responses":{"400BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401Unauthorized":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403Forbidden":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503ServiceUnavailable":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/api/v1/policies":{"post":{"summary":"Create a policy. [experimental]","description":"Create a policy for a specific workload type based on the provided specification.","operationId":"create_gvk_policy","tags":["Policy"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateGvkPolicyReq"}}}},"responses":{"200":{"description":"The created policy.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Policy"}}}},"400":{"$ref":"#/components/responses/400BadRequest"},"401":{"$ref":"#/components/responses/401Unauthorized"},"403":{"$ref":"#/components/responses/403Forbidden"},"503":{"$ref":"#/components/responses/503ServiceUnavailable"}}}}}}
```

## POST /api/v1/policies/effective

> Get the effective policy by type and scope. The effective policy is a combination of the policy provided for the given scope (if exist) and the effective policies of its parent scopes.

```json
{"openapi":"3.0.3","info":{"title":"NVIDIA Run:ai","version":"2.26"},"tags":[{"name":"Policy","description":"Policies allow administrators to impose restrictions and set default values for researcher workloads. \nRestrictions and default values can be placed on CPUs, GPUs, and other resources or entities. \nFor more information, see [Policies](https://run-ai-docs.nvidia.com/self-hosted/2.26/platform-management/policies/#introduction).\n"}],"servers":[{"url":"https://app.run.ai"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer authentication"}},"schemas":{"WorkloadTypeAndScope":{"type":"object","description":"The workload type and scope this policy applies to. Together with the project id, they form the unique triple that identifies a policy. The workload type is the Kubernetes Group/Version/Kind of the workloads the policy governs, and the scope is the level at which it takes effect. Currently only the project scope is supported; tenant, cluster, and department are planned, and system is not supported.","required":["workloadType","scope"],"properties":{"workloadType":{"$ref":"#/components/schemas/GVK"},"scope":{"$ref":"#/components/schemas/ScopeType"},"clusterId":{"description":"The id of the cluster the policy applies to. Required when the scope is cluster.","allOf":[{"$ref":"#/components/schemas/ClusterId"}],"type":"string","nullable":true},"departmentId":{"description":"The id of the department the policy applies to. Required when the scope is department.","allOf":[{"$ref":"#/components/schemas/DepartmentId"}],"type":"string","nullable":true},"projectId":{"description":"The id of the project the policy applies to. Required when the scope is project.","allOf":[{"$ref":"#/components/schemas/ProjectId"}],"type":"string","nullable":true}}},"GVK":{"type":"object","description":"Specifies the Group, Version, and Kind (GVK) of the Kubernetes resource that defines the workload.","required":["version","kind"],"properties":{"group":{"description":"The API group of the Kubernetes resource. Empty string for core resources like Pod.","type":"string","nullable":true,"maxLength":253},"version":{"description":"The API version of the resource within the specified group.","type":"string","maxLength":250},"kind":{"description":"The type of Kubernetes resource being referenced.","type":"string","maxLength":250}}},"ScopeType":{"type":"string","enum":["system","tenant","cluster","department","project"]},"ClusterId":{"description":"The id of the cluster.","type":"string","format":"uuid"},"DepartmentId":{"description":"The id of the department.","type":"string","minLength":1,"pattern":".*"},"ProjectId":{"description":"The id of the project.","type":"string","pattern":".*"},"EffectiveRules":{"type":"object","properties":{"effectiveRules":{"description":"The merged rule set in effect for this policy, including rules inherited from broader scopes (cluster, then department, then project). Each entry adds the sourceOfRule indicating where the rule was defined. Returned in responses only; not accepted in requests.","type":"array","items":{"allOf":[{"$ref":"#/components/schemas/PolicyRule"},{"$ref":"#/components/schemas/PolicyRuleSource"}]}}}},"PolicyRule":{"type":"object","description":"A single policy rule. It combines the rule's identity (the field it targets, along with the spec selector, optional item selector, and selector parameters) with its enforcements (the behavior that constrains the field's allowed values).","allOf":[{"$ref":"#/components/schemas/PolicyRuleRef"},{"$ref":"#/components/schemas/PolicyRuleEnforcements"}]},"PolicyRuleRef":{"type":"object","description":"The identity of a policy rule: the policy-controllable field it enforces, the spec selector that picks which subtree of the workload spec it applies to, and the optional item selector and selector parameters that narrow the target for itemized fields.","required":["field","specSelector"],"properties":{"field":{"$ref":"#/components/schemas/MappingFieldName"},"specSelector":{"$ref":"#/components/schemas/SpecSelectorName"},"itemSelector":{"description":"The name of the item selector that picks specific items of an itemized field. Omit for non-itemized fields.","allOf":[{"$ref":"#/components/schemas/ItemSelectorName"}],"type":"string","nullable":true},"selectorParams":{"$ref":"#/components/schemas/SelectorParams"}}},"MappingFieldName":{"type":"string","description":"The unique name of the field.","minLength":1,"maxLength":63,"pattern":"^[A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])?$"},"SpecSelectorName":{"type":"string","description":"The unique name of the spec selector","minLength":1,"maxLength":63,"pattern":"^[A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])?$"},"ItemSelectorName":{"type":"string","description":"The unique name of the item selector","minLength":1,"maxLength":63,"pattern":"^[A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])?$"},"SelectorParams":{"type":"object","description":"The parameter values supplied to the spec selector and item selector at evaluation time, as a key-value map.","additionalProperties":true},"PolicyRuleEnforcements":{"type":"object","required":["enforcements"],"properties":{"enforcements":{"description":"The set of enforcements that define the rule's behavior. Each enforcement pairs an enforcement type with its value, and multiple enforcements may combine on a single rule to constrain the targeted field.","type":"array","items":{"allOf":[{"$ref":"#/components/schemas/PolicyRuleEnforcement"}]}}}},"PolicyRuleEnforcement":{"description":"A single enforcement on a policy rule. Exactly one enforcement type is expressed per object (for example set, default, required, blocked, options, match, or one of the grouped range, length, elements, items, or quantityRange constraints); combine multiple enforcement objects on a rule to apply several constraints to the same field.","anyOf":[{"$ref":"#/components/schemas/PolicyEnforcementSet"},{"$ref":"#/components/schemas/PolicyEnforcementDefault"},{"$ref":"#/components/schemas/PolicyEnforcementRequired"},{"$ref":"#/components/schemas/PolicyEnforcementBlocked"},{"$ref":"#/components/schemas/PolicyEnforcementLength"},{"$ref":"#/components/schemas/PolicyEnforcementOptions"},{"$ref":"#/components/schemas/PolicyEnforcementMatch"},{"$ref":"#/components/schemas/PolicyEnforcementRange"},{"$ref":"#/components/schemas/PolicyEnforcementElements"},{"$ref":"#/components/schemas/PolicyEnforcementItems"},{"$ref":"#/components/schemas/PolicyEnforcementQuantityRange"}]},"PolicyEnforcementSet":{"type":"object","properties":{"set":{"type":"object","description":"Enforces the value of the field.","additionalProperties":true}}},"PolicyEnforcementDefault":{"type":"object","properties":{"default":{"type":"object","description":"Sets the value of the field when the user does not supply one.","additionalProperties":true}}},"PolicyEnforcementRequired":{"type":"object","properties":{"required":{"description":"Requires the field to have a value, supplied either in the submission or by a policy default.","type":"boolean","default":false,"nullable":true}}},"PolicyEnforcementBlocked":{"type":"object","properties":{"blocked":{"description":"Prevents the field from being assigned any value. Inverse of \"required\".","type":"boolean","default":false,"nullable":true}}},"PolicyEnforcementLength":{"type":"object","properties":{"length":{"type":"object","description":"Enforces the field's length (character count for strings, element count for slices, arrays, and maps) to fall within the inclusive range [min, max]. At least one of `min`/`max` must be specified.\n","nullable":true,"properties":{"min":{"description":"Enforces the minimum length.","type":"integer","format":"int32","minimum":0,"nullable":true},"max":{"description":"Enforces the maximum length.","type":"integer","format":"int32","minimum":0,"nullable":true}}}}},"PolicyEnforcementOptions":{"type":"object","properties":{"options":{"description":"Restricts the value of the field to one of the listed options.","type":"array","items":{"type":"string"},"nullable":true}}},"PolicyEnforcementMatch":{"type":"object","properties":{"match":{"description":"Requires the value of the field to match the regular expression.","type":"string","nullable":true}}},"PolicyEnforcementRange":{"type":"object","properties":{"range":{"type":"object","description":"Enforces a numeric value to fall within the inclusive range [min, max], optionally restricted to increments of `step` starting from `min`.\n","nullable":true,"properties":{"min":{"description":"Enforces the minimum numeric value of the field.","type":"number","nullable":true},"max":{"description":"Enforces the maximum numeric value of the field.","type":"number","nullable":true},"step":{"description":"Restricts the field value to specific numeric increments starting from `min` (or from 0 when `min` is absent). Must be greater than 0.\n","type":"number","nullable":true}}}}},"PolicyEnforcementElements":{"type":"object","properties":{"elements":{"type":"object","description":"Enforces the number of elements in an array field to fall within the inclusive range [min, max]. At least one of `min`/`max` must be specified.\n","nullable":true,"properties":{"min":{"description":"Enforces the minimum number of elements.","type":"integer","format":"int32","minimum":0,"nullable":true},"max":{"description":"Enforces the maximum number of elements.","type":"integer","format":"int32","minimum":0,"nullable":true}}}}},"PolicyEnforcementItems":{"type":"object","properties":{"items":{"type":"object","description":"Enforces the number of items produced by a field's itemSelector to fall within the inclusive range [min, max]. At least one of `min`/`max` must be specified. Applies only to fields that declare itemSelectors.\n","nullable":true,"properties":{"min":{"description":"Enforces the minimum number of items.","type":"integer","format":"int32","minimum":0,"nullable":true},"max":{"description":"Enforces the maximum number of items.","type":"integer","format":"int32","minimum":0,"nullable":true}}}}},"PolicyEnforcementQuantityRange":{"type":"object","properties":{"quantityRange":{"type":"object","description":"Enforces a Kubernetes resource quantity to fall within the inclusive range [min, max], optionally restricted to increments of `step` starting from `min`. All bounds must be valid Kubernetes quantities such as 100m, 1Gi, or 500Mi.\n","nullable":true,"properties":{"min":{"description":"Enforces the minimum quantity value of the field.","type":"string","nullable":true},"max":{"description":"Enforces the maximum quantity value of the field.","type":"string","nullable":true},"step":{"description":"Restricts the field value to specific quantity increments starting from `min` (or from 0 when `min` is absent).\n","type":"string","nullable":true}}}}},"PolicyRuleSource":{"type":"object","description":"The origin of an effective rule. Identifies the scope at which the rule was defined and the matching project, department, or cluster id. Set by the server on effective rules in responses only; leave empty in requests.","required":["sourceOfRule"],"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"}}},"SourceOfRule":{"description":"This field is used by the system along with effective rules, in order to specify the org unit from which this effective rule has been derived. It should be left empty when sending apply policy requests.","required":["scope"],"properties":{"scope":{"$ref":"#/components/schemas/ScopeType"},"projectId":{"$ref":"#/components/schemas/ProjectIdOptional"},"departmentId":{"$ref":"#/components/schemas/DepartmentIdOptional"},"clusterId":{"$ref":"#/components/schemas/ClusterIdOptional"},"isFallback":{"description":"source of this rule is the fallback policy","type":"boolean"}},"nullable":true,"type":"object"},"ProjectIdOptional":{"description":"The id of the project.","type":"integer","format":"int32","nullable":true},"DepartmentIdOptional":{"description":"The id of the department.","type":"string","minLength":1,"nullable":true,"pattern":".*"},"ClusterIdOptional":{"description":"The id of the cluster.","type":"string","format":"uuid","minLength":1,"nullable":true},"Error":{"required":["code","message"],"properties":{"code":{"type":"integer","minimum":100,"maximum":599},"message":{"type":"string"},"details":{"type":"string"}}}},"responses":{"400BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401Unauthorized":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403Forbidden":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404NotFound":{"description":"The specified resource was not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503ServiceUnavailable":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/api/v1/policies/effective":{"post":{"summary":"Get the effective policy by type and scope. The effective policy is a combination of the policy provided for the given scope (if exist) and the effective policies of its parent scopes.","operationId":"get_effective_policy","tags":["Policy"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkloadTypeAndScope"}}}},"responses":{"200":{"description":"Policy found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EffectiveRules"}}}},"400":{"$ref":"#/components/responses/400BadRequest"},"401":{"$ref":"#/components/responses/401Unauthorized"},"403":{"$ref":"#/components/responses/403Forbidden"},"404":{"$ref":"#/components/responses/404NotFound"},"503":{"$ref":"#/components/responses/503ServiceUnavailable"}}}}}}
```

## Get a policy. \[experimental]

> Retrieve policy details by id, including both the declared rules and the effective rules.

```json
{"openapi":"3.0.3","info":{"title":"NVIDIA Run:ai","version":"2.26"},"tags":[{"name":"Policy","description":"Policies allow administrators to impose restrictions and set default values for researcher workloads. \nRestrictions and default values can be placed on CPUs, GPUs, and other resources or entities. \nFor more information, see [Policies](https://run-ai-docs.nvidia.com/self-hosted/2.26/platform-management/policies/#introduction).\n"}],"servers":[{"url":"https://app.run.ai"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer authentication"}},"parameters":{"PolicyId":{"name":"PolicyId","in":"path","required":true,"description":"The unique identifier for the policy.","schema":{"type":"string","format":"uuid"}}},"schemas":{"GetGvkPolicyResp":{"description":"A policy together with an optional breakdown. The breakdown is included only when the breakdown query parameter is set, and provides resolved fields and spec selectors from the Mapping subsystem.","allOf":[{"$ref":"#/components/schemas/Policy"},{"$ref":"#/components/schemas/Breakdown"}]},"Policy":{"type":"object","description":"A policy resource. A policy is uniquely identified by the triple of workload type (Kubernetes Group/Version/Kind), scope, and project id, and constrains the allowed values of fields in the workload spec through its rules. The server assigns a unique id and tracks ownership and configuration status.","allOf":[{"$ref":"#/components/schemas/PolicyDescriptionField"},{"$ref":"#/components/schemas/WorkloadTypeAndScope"},{"$ref":"#/components/schemas/PolicyRules"},{"$ref":"#/components/schemas/EffectiveRules"},{"$ref":"#/components/schemas/PolicyIdAndOwnership"}],"properties":{"status":{"description":"Configuration issues detected by the server for this policy. Returned in responses only; not accepted in requests.","allOf":[{"$ref":"#/components/schemas/PolicyStatus"}],"type":"object","nullable":true}}},"PolicyDescriptionField":{"type":"object","properties":{"description":{"$ref":"#/components/schemas/PolicyDescriptionOptional"}}},"PolicyDescriptionOptional":{"type":"string","nullable":true,"description":"A description of the policy.","pattern":".*","minLength":1,"maxLength":1023},"WorkloadTypeAndScope":{"type":"object","description":"The workload type and scope this policy applies to. Together with the project id, they form the unique triple that identifies a policy. The workload type is the Kubernetes Group/Version/Kind of the workloads the policy governs, and the scope is the level at which it takes effect. Currently only the project scope is supported; tenant, cluster, and department are planned, and system is not supported.","required":["workloadType","scope"],"properties":{"workloadType":{"$ref":"#/components/schemas/GVK"},"scope":{"$ref":"#/components/schemas/ScopeType"},"clusterId":{"description":"The id of the cluster the policy applies to. Required when the scope is cluster.","allOf":[{"$ref":"#/components/schemas/ClusterId"}],"type":"string","nullable":true},"departmentId":{"description":"The id of the department the policy applies to. Required when the scope is department.","allOf":[{"$ref":"#/components/schemas/DepartmentId"}],"type":"string","nullable":true},"projectId":{"description":"The id of the project the policy applies to. Required when the scope is project.","allOf":[{"$ref":"#/components/schemas/ProjectId"}],"type":"string","nullable":true}}},"GVK":{"type":"object","description":"Specifies the Group, Version, and Kind (GVK) of the Kubernetes resource that defines the workload.","required":["version","kind"],"properties":{"group":{"description":"The API group of the Kubernetes resource. Empty string for core resources like Pod.","type":"string","nullable":true,"maxLength":253},"version":{"description":"The API version of the resource within the specified group.","type":"string","maxLength":250},"kind":{"description":"The type of Kubernetes resource being referenced.","type":"string","maxLength":250}}},"ScopeType":{"type":"string","enum":["system","tenant","cluster","department","project"]},"ClusterId":{"description":"The id of the cluster.","type":"string","format":"uuid"},"DepartmentId":{"description":"The id of the department.","type":"string","minLength":1,"pattern":".*"},"ProjectId":{"description":"The id of the project.","type":"string","pattern":".*"},"PolicyRules":{"type":"object","properties":{"rules":{"description":"The rules declared on this policy. Each rule targets a field in the workload spec and constrains its allowed values through its enforcements.","type":"array","items":{"$ref":"#/components/schemas/PolicyRule"}}}},"PolicyRule":{"type":"object","description":"A single policy rule. It combines the rule's identity (the field it targets, along with the spec selector, optional item selector, and selector parameters) with its enforcements (the behavior that constrains the field's allowed values).","allOf":[{"$ref":"#/components/schemas/PolicyRuleRef"},{"$ref":"#/components/schemas/PolicyRuleEnforcements"}]},"PolicyRuleRef":{"type":"object","description":"The identity of a policy rule: the policy-controllable field it enforces, the spec selector that picks which subtree of the workload spec it applies to, and the optional item selector and selector parameters that narrow the target for itemized fields.","required":["field","specSelector"],"properties":{"field":{"$ref":"#/components/schemas/MappingFieldName"},"specSelector":{"$ref":"#/components/schemas/SpecSelectorName"},"itemSelector":{"description":"The name of the item selector that picks specific items of an itemized field. Omit for non-itemized fields.","allOf":[{"$ref":"#/components/schemas/ItemSelectorName"}],"type":"string","nullable":true},"selectorParams":{"$ref":"#/components/schemas/SelectorParams"}}},"MappingFieldName":{"type":"string","description":"The unique name of the field.","minLength":1,"maxLength":63,"pattern":"^[A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])?$"},"SpecSelectorName":{"type":"string","description":"The unique name of the spec selector","minLength":1,"maxLength":63,"pattern":"^[A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])?$"},"ItemSelectorName":{"type":"string","description":"The unique name of the item selector","minLength":1,"maxLength":63,"pattern":"^[A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])?$"},"SelectorParams":{"type":"object","description":"The parameter values supplied to the spec selector and item selector at evaluation time, as a key-value map.","additionalProperties":true},"PolicyRuleEnforcements":{"type":"object","required":["enforcements"],"properties":{"enforcements":{"description":"The set of enforcements that define the rule's behavior. Each enforcement pairs an enforcement type with its value, and multiple enforcements may combine on a single rule to constrain the targeted field.","type":"array","items":{"allOf":[{"$ref":"#/components/schemas/PolicyRuleEnforcement"}]}}}},"PolicyRuleEnforcement":{"description":"A single enforcement on a policy rule. Exactly one enforcement type is expressed per object (for example set, default, required, blocked, options, match, or one of the grouped range, length, elements, items, or quantityRange constraints); combine multiple enforcement objects on a rule to apply several constraints to the same field.","anyOf":[{"$ref":"#/components/schemas/PolicyEnforcementSet"},{"$ref":"#/components/schemas/PolicyEnforcementDefault"},{"$ref":"#/components/schemas/PolicyEnforcementRequired"},{"$ref":"#/components/schemas/PolicyEnforcementBlocked"},{"$ref":"#/components/schemas/PolicyEnforcementLength"},{"$ref":"#/components/schemas/PolicyEnforcementOptions"},{"$ref":"#/components/schemas/PolicyEnforcementMatch"},{"$ref":"#/components/schemas/PolicyEnforcementRange"},{"$ref":"#/components/schemas/PolicyEnforcementElements"},{"$ref":"#/components/schemas/PolicyEnforcementItems"},{"$ref":"#/components/schemas/PolicyEnforcementQuantityRange"}]},"PolicyEnforcementSet":{"type":"object","properties":{"set":{"type":"object","description":"Enforces the value of the field.","additionalProperties":true}}},"PolicyEnforcementDefault":{"type":"object","properties":{"default":{"type":"object","description":"Sets the value of the field when the user does not supply one.","additionalProperties":true}}},"PolicyEnforcementRequired":{"type":"object","properties":{"required":{"description":"Requires the field to have a value, supplied either in the submission or by a policy default.","type":"boolean","default":false,"nullable":true}}},"PolicyEnforcementBlocked":{"type":"object","properties":{"blocked":{"description":"Prevents the field from being assigned any value. Inverse of \"required\".","type":"boolean","default":false,"nullable":true}}},"PolicyEnforcementLength":{"type":"object","properties":{"length":{"type":"object","description":"Enforces the field's length (character count for strings, element count for slices, arrays, and maps) to fall within the inclusive range [min, max]. At least one of `min`/`max` must be specified.\n","nullable":true,"properties":{"min":{"description":"Enforces the minimum length.","type":"integer","format":"int32","minimum":0,"nullable":true},"max":{"description":"Enforces the maximum length.","type":"integer","format":"int32","minimum":0,"nullable":true}}}}},"PolicyEnforcementOptions":{"type":"object","properties":{"options":{"description":"Restricts the value of the field to one of the listed options.","type":"array","items":{"type":"string"},"nullable":true}}},"PolicyEnforcementMatch":{"type":"object","properties":{"match":{"description":"Requires the value of the field to match the regular expression.","type":"string","nullable":true}}},"PolicyEnforcementRange":{"type":"object","properties":{"range":{"type":"object","description":"Enforces a numeric value to fall within the inclusive range [min, max], optionally restricted to increments of `step` starting from `min`.\n","nullable":true,"properties":{"min":{"description":"Enforces the minimum numeric value of the field.","type":"number","nullable":true},"max":{"description":"Enforces the maximum numeric value of the field.","type":"number","nullable":true},"step":{"description":"Restricts the field value to specific numeric increments starting from `min` (or from 0 when `min` is absent). Must be greater than 0.\n","type":"number","nullable":true}}}}},"PolicyEnforcementElements":{"type":"object","properties":{"elements":{"type":"object","description":"Enforces the number of elements in an array field to fall within the inclusive range [min, max]. At least one of `min`/`max` must be specified.\n","nullable":true,"properties":{"min":{"description":"Enforces the minimum number of elements.","type":"integer","format":"int32","minimum":0,"nullable":true},"max":{"description":"Enforces the maximum number of elements.","type":"integer","format":"int32","minimum":0,"nullable":true}}}}},"PolicyEnforcementItems":{"type":"object","properties":{"items":{"type":"object","description":"Enforces the number of items produced by a field's itemSelector to fall within the inclusive range [min, max]. At least one of `min`/`max` must be specified. Applies only to fields that declare itemSelectors.\n","nullable":true,"properties":{"min":{"description":"Enforces the minimum number of items.","type":"integer","format":"int32","minimum":0,"nullable":true},"max":{"description":"Enforces the maximum number of items.","type":"integer","format":"int32","minimum":0,"nullable":true}}}}},"PolicyEnforcementQuantityRange":{"type":"object","properties":{"quantityRange":{"type":"object","description":"Enforces a Kubernetes resource quantity to fall within the inclusive range [min, max], optionally restricted to increments of `step` starting from `min`. All bounds must be valid Kubernetes quantities such as 100m, 1Gi, or 500Mi.\n","nullable":true,"properties":{"min":{"description":"Enforces the minimum quantity value of the field.","type":"string","nullable":true},"max":{"description":"Enforces the maximum quantity value of the field.","type":"string","nullable":true},"step":{"description":"Restricts the field value to specific quantity increments starting from `min` (or from 0 when `min` is absent).\n","type":"string","nullable":true}}}}},"EffectiveRules":{"type":"object","properties":{"effectiveRules":{"description":"The merged rule set in effect for this policy, including rules inherited from broader scopes (cluster, then department, then project). Each entry adds the sourceOfRule indicating where the rule was defined. Returned in responses only; not accepted in requests.","type":"array","items":{"allOf":[{"$ref":"#/components/schemas/PolicyRule"},{"$ref":"#/components/schemas/PolicyRuleSource"}]}}}},"PolicyRuleSource":{"type":"object","description":"The origin of an effective rule. Identifies the scope at which the rule was defined and the matching project, department, or cluster id. Set by the server on effective rules in responses only; leave empty in requests.","required":["sourceOfRule"],"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"}}},"SourceOfRule":{"description":"This field is used by the system along with effective rules, in order to specify the org unit from which this effective rule has been derived. It should be left empty when sending apply policy requests.","required":["scope"],"properties":{"scope":{"$ref":"#/components/schemas/ScopeType"},"projectId":{"$ref":"#/components/schemas/ProjectIdOptional"},"departmentId":{"$ref":"#/components/schemas/DepartmentIdOptional"},"clusterId":{"$ref":"#/components/schemas/ClusterIdOptional"},"isFallback":{"description":"source of this rule is the fallback policy","type":"boolean"}},"nullable":true,"type":"object"},"ProjectIdOptional":{"description":"The id of the project.","type":"integer","format":"int32","nullable":true},"DepartmentIdOptional":{"description":"The id of the department.","type":"string","minLength":1,"nullable":true,"pattern":".*"},"ClusterIdOptional":{"description":"The id of the cluster.","type":"string","format":"uuid","minLength":1,"nullable":true},"PolicyIdAndOwnership":{"type":"object","required":["id","createdBy","createdAt","updatedBy","updatedAt"],"properties":{"id":{"description":"The unique identifier for the policy.","type":"string","format":"uuid"},"createdBy":{"description":"Identifier of the user who created the policy.","type":"string","minLength":1},"createdAt":{"description":"The timestamp for when the policy was created.","type":"string","minLength":1,"format":"date-time"},"updatedBy":{"description":"Identifier of the user who last updated the policy.","type":"string","minLength":1},"updatedAt":{"description":"The timestamp for when the policy was last updated.","type":"string","minLength":1,"format":"date-time"}}},"PolicyStatus":{"type":"object","description":"Configuration issues detected by the server for the policy, along with its current phase.","properties":{"phase":{"$ref":"#/components/schemas/PolicyPhase"},"issues":{"description":"The list of configuration issues detected for the policy.","type":"array","maxItems":500,"items":{"type":"string","maxLength":1024}}}},"PolicyPhase":{"type":"string","enum":["Ready","PendingUpdate","Degraded"],"description":"The current phase of the policy. Supported values include:\n- Ready: The policy is fully validated, and all rules are successfully applied to the workload.\n- PendingUpdate: Configuration components (e.g., specSelector, itemSelector) have changed. \n  The policy is awaiting validation to ensure the full rule set remains functional; \n  this validation occurs the next time the policy is applied.\n- Degraded: One or more policy rules cannot be applied due to recent configuration changes. \n  While the policy remains active, some rules may be ignored during enforcement.\n"},"Breakdown":{"type":"object","description":"The detailed breakdown of a mapping's fields and spec selectors, including per-field variations, formatter details, and item-selector queries. This is the same payload returned by GET /api/v1/policies/{policyId}?breakdown=true.","properties":{"breakdown":{"type":"object","nullable":true,"description":"The detailed breakdown, keyed into per-field variations and per-spec-selector details.","properties":{"fields":{"$ref":"#/components/schemas/BreakdownFields"},"specSelectors":{"$ref":"#/components/schemas/BreakdownSpecSelectors"}}}}},"BreakdownFields":{"description":"The detailed breakdown of fields, keyed by field name. Each field maps to the list of its variations across the requested spec selectors and item selectors.","type":"object","additionalProperties":{"type":"array","items":{"$ref":"#/components/schemas/BreakdownFieldVariation"}}},"BreakdownFieldVariation":{"type":"object","description":"A single variation of a field in the breakdown: the spec selectors it appears under, how it is read and written (formatter details or a direct specRef), its data type, and the item-selector queries that apply to it.","properties":{"specSelectors":{"description":"The spec selectors under which this variation of the field appears.","type":"array","items":{"$ref":"#/components/schemas/SpecSelectorName"}},"formatter":{"$ref":"#/components/schemas/BreakdownFormatter"},"specRef":{"description":"A direct dotted path into the workload spec, used in place of a formatter for simple fields.","allOf":[{"$ref":"#/components/schemas/SpecReference"}]},"type":{"description":"The data type of the field.","allOf":[{"$ref":"#/components/schemas/MappingFieldType"}]},"itemSelectors":{"$ref":"#/components/schemas/BreakdownItemSelectors"},"possibleEnforcements":{"description":"The enforcement types that may be applied to this variation of the field. Derived from the field's data type, with `items` added when the field is itemized (has an itemSelector).","type":"array","items":{"$ref":"#/components/schemas/MappingPossibleEnforcement"}}}},"BreakdownFormatter":{"type":"object","description":"The formatter details for a field in the breakdown: either the name of the built-in formatter used, or the resolved getExpr/setExpr, arrayKey, and argument type/enum information.","properties":{"builtin":{"description":"The name of the built-in formatter, if used.","type":"string","allOf":[{"$ref":"#/components/schemas/FormatterName"}],"nullable":true},"setExpr":{"type":"string","allOf":[{"$ref":"#/components/schemas/FormatterSetExpression"}],"nullable":true},"getExpr":{"type":"string","allOf":[{"$ref":"#/components/schemas/FormatterGetExpression"}],"nullable":true},"arrayKey":{"type":"object","allOf":[{"$ref":"#/components/schemas/FormatterArrayKey"}],"nullable":true},"argsInfo":{"$ref":"#/components/schemas/MappingArgsInfo"},"argsEnum":{"$ref":"#/components/schemas/MappingArgsEnum"}}},"FormatterName":{"type":"string","description":"The unique name of the formatter","minLength":1,"maxLength":63,"pattern":"^[A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])?$"},"FormatterSetExpression":{"type":"string","description":"The JQ expression used to write the field value into the workload spec. Consult https://jqlang.org/manual/ for further info.","minLength":1,"maxLength":4095,"pattern":".*"},"FormatterGetExpression":{"type":"string","description":"The JQ expression used to read the field value from the workload spec. Consult https://jqlang.org/manual/ for further info.","minLength":1,"maxLength":4095,"pattern":".*"},"FormatterArrayKey":{"type":"object","description":"The unique key per item for an itemized field, provided as an argName with an optional specRef.","required":["argName"],"properties":{"argName":{"description":"The name of the argument that supplies the unique key value per item.","allOf":[{"$ref":"#/components/schemas/MappingArgName"}]},"specRef":{"description":"An optional direct dotted path into the workload spec that locates the key value for each item.","type":"string","allOf":[{"$ref":"#/components/schemas/SpecReference"}],"nullable":true}}},"MappingArgName":{"type":"string","description":"The name of an argument referenced by a JQ expression as $ARGS.named.<argName>. The JQ expression may include arguments such as $ARGS.named.containerPort. In this case, containerPort is the argName.","minLength":1,"maxLength":63,"pattern":"^[A-Za-z_][A-Za-z0-9_]*$"},"SpecReference":{"type":"string","description":"A direct dot-separated path into the workload spec, for example securityContext.privileged. Examples that match are name configMapRef configMapRef.name secretRef.name foo-bar.baz Examples that don't match are Name, config-map. (ends with dot), .name, foo-","minLength":1,"maxLength":253,"pattern":"^(?:[a-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?)(?:\\.(?:[a-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?))*$"},"MappingArgsInfo":{"type":"object","description":"The data type of each argument referenced by the JQ expression as $ARGS.named.<argName>.","additionalProperties":{"$ref":"#/components/schemas/MappingFieldType"}},"MappingFieldType":{"description":"The data type of the field.","type":"string","enum":["string","boolean","integer","number","quantity","ipaddress","integers","numbers","strings","namesArray","object"]},"MappingArgsEnum":{"type":"object","description":"The allowed values for each string-typed argument referenced by the JQ expression as $ARGS.named.<argName>. Up to 100 values per argument.","additionalProperties":{"type":"array","maxItems":100,"items":{"type":"string","pattern":".*"}}},"BreakdownItemSelectors":{"type":"object","description":"The item selectors that apply to the field, keyed by item-selector name, with each value containing the item selector's JQ query and argument metadata.","additionalProperties":{"$ref":"#/components/schemas/BreakdownItemSelector"}},"BreakdownItemSelector":{"type":"object","description":"The details of a single item selector in the breakdown: its JQ query, and the type and enum information for any arguments referenced by the query.","properties":{"query":{"$ref":"#/components/schemas/ItemSelectorQuery"},"argsInfo":{"$ref":"#/components/schemas/MappingArgsInfo"},"argsEnum":{"$ref":"#/components/schemas/MappingArgsEnum"}}},"ItemSelectorQuery":{"type":"string","description":"The JQ query used to filter items of an itemized field. Consult https://jqlang.org/manual/ for further info.","minLength":1,"maxLength":4095,"pattern":".*"},"MappingPossibleEnforcement":{"description":"The name of an enforcement type that may be applied to a field. The set of enforcements available for a given field is determined by the field's data type and by whether the field is itemized (has an itemSelector).","type":"string","enum":["set","default","required","blocked","match","options","length","range","quantityRange","elements","items"]},"BreakdownSpecSelectors":{"type":"object","description":"The detailed breakdown of spec selectors, keyed by spec-selector name.","additionalProperties":{"$ref":"#/components/schemas/BreakdownSpecSelector"}},"BreakdownSpecSelector":{"type":"object","description":"The details of a single spec selector in the breakdown: its description, JQ query, and the type and enum information for any arguments referenced by the query.","properties":{"description":{"$ref":"#/components/schemas/MappingDescriptionOptional"},"query":{"$ref":"#/components/schemas/SpecSelectorQuery"},"argsInfo":{"$ref":"#/components/schemas/MappingArgsInfo"},"argsEnum":{"$ref":"#/components/schemas/MappingArgsEnum"},"dependency":{"$ref":"#/components/schemas/SpecSelectorDependency"}}},"MappingDescriptionOptional":{"type":"string","nullable":true,"description":"A free-text description of the element.","pattern":".*","minLength":1,"maxLength":1023},"SpecSelectorQuery":{"type":"string","description":"The JQ query used to select a subtree of the workload spec. Consult https://jqlang.org/manual/ for further info.","minLength":1,"maxLength":4095,"pattern":".*"},"SpecSelectorDependency":{"type":"object","nullable":true,"description":"Declares that this spec selector depends on a parent path existing.\nThe engine will ensure the element path exists before running SET/DEFAULT\nactions that target this selector.\n","properties":{"specSelector":{"allOf":[{"$ref":"#/components/schemas/SpecSelectorName"}],"nullable":true,"type":"string","description":"Optional parent spec selector that provides iteration context.\nWhen set, the element path is created relative to each result\nof the parent selector. When omitted, element is relative to\nthe workload root.\n"},"path":{"type":"string","description":"Dot-separated path to ensure exists below the parent.\nExample: \"template.metadata\" creates both .template and\n.template.metadata if missing.\n","minLength":1,"maxLength":255,"pattern":"^[a-zA-Z_][a-zA-Z0-9_-]*(\\.[a-zA-Z_][a-zA-Z0-9_-]*)*$"}}},"Error":{"required":["code","message"],"properties":{"code":{"type":"integer","minimum":100,"maximum":599},"message":{"type":"string"},"details":{"type":"string"}}}},"responses":{"400BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401Unauthorized":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403Forbidden":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404NotFound":{"description":"The specified resource was not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503ServiceUnavailable":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/api/v1/policies/{PolicyId}":{"get":{"summary":"Get a policy. [experimental]","description":"Retrieve policy details by id, including both the declared rules and the effective rules.","operationId":"get_gvk_policy","tags":["Policy"],"parameters":[{"$ref":"#/components/parameters/PolicyId"}],"responses":{"200":{"description":"The requested policy.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetGvkPolicyResp"}}}},"400":{"$ref":"#/components/responses/400BadRequest"},"401":{"$ref":"#/components/responses/401Unauthorized"},"403":{"$ref":"#/components/responses/403Forbidden"},"404":{"$ref":"#/components/responses/404NotFound"},"503":{"$ref":"#/components/responses/503ServiceUnavailable"}}}}}}
```

## Replace a policy. \[experimental]

> Replace an existing policy's rules and description.

```json
{"openapi":"3.0.3","info":{"title":"NVIDIA Run:ai","version":"2.26"},"tags":[{"name":"Policy","description":"Policies allow administrators to impose restrictions and set default values for researcher workloads. \nRestrictions and default values can be placed on CPUs, GPUs, and other resources or entities. \nFor more information, see [Policies](https://run-ai-docs.nvidia.com/self-hosted/2.26/platform-management/policies/#introduction).\n"}],"servers":[{"url":"https://app.run.ai"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer authentication"}},"parameters":{"PolicyId":{"name":"PolicyId","in":"path","required":true,"description":"The unique identifier for the policy.","schema":{"type":"string","format":"uuid"}}},"schemas":{"UpdateGvkPolicyReq":{"type":"object","description":"Update a policy.","allOf":[{"$ref":"#/components/schemas/PolicyDescriptionField"},{"$ref":"#/components/schemas/PolicyRules"}]},"PolicyDescriptionField":{"type":"object","properties":{"description":{"$ref":"#/components/schemas/PolicyDescriptionOptional"}}},"PolicyDescriptionOptional":{"type":"string","nullable":true,"description":"A description of the policy.","pattern":".*","minLength":1,"maxLength":1023},"PolicyRules":{"type":"object","properties":{"rules":{"description":"The rules declared on this policy. Each rule targets a field in the workload spec and constrains its allowed values through its enforcements.","type":"array","items":{"$ref":"#/components/schemas/PolicyRule"}}}},"PolicyRule":{"type":"object","description":"A single policy rule. It combines the rule's identity (the field it targets, along with the spec selector, optional item selector, and selector parameters) with its enforcements (the behavior that constrains the field's allowed values).","allOf":[{"$ref":"#/components/schemas/PolicyRuleRef"},{"$ref":"#/components/schemas/PolicyRuleEnforcements"}]},"PolicyRuleRef":{"type":"object","description":"The identity of a policy rule: the policy-controllable field it enforces, the spec selector that picks which subtree of the workload spec it applies to, and the optional item selector and selector parameters that narrow the target for itemized fields.","required":["field","specSelector"],"properties":{"field":{"$ref":"#/components/schemas/MappingFieldName"},"specSelector":{"$ref":"#/components/schemas/SpecSelectorName"},"itemSelector":{"description":"The name of the item selector that picks specific items of an itemized field. Omit for non-itemized fields.","allOf":[{"$ref":"#/components/schemas/ItemSelectorName"}],"type":"string","nullable":true},"selectorParams":{"$ref":"#/components/schemas/SelectorParams"}}},"MappingFieldName":{"type":"string","description":"The unique name of the field.","minLength":1,"maxLength":63,"pattern":"^[A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])?$"},"SpecSelectorName":{"type":"string","description":"The unique name of the spec selector","minLength":1,"maxLength":63,"pattern":"^[A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])?$"},"ItemSelectorName":{"type":"string","description":"The unique name of the item selector","minLength":1,"maxLength":63,"pattern":"^[A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])?$"},"SelectorParams":{"type":"object","description":"The parameter values supplied to the spec selector and item selector at evaluation time, as a key-value map.","additionalProperties":true},"PolicyRuleEnforcements":{"type":"object","required":["enforcements"],"properties":{"enforcements":{"description":"The set of enforcements that define the rule's behavior. Each enforcement pairs an enforcement type with its value, and multiple enforcements may combine on a single rule to constrain the targeted field.","type":"array","items":{"allOf":[{"$ref":"#/components/schemas/PolicyRuleEnforcement"}]}}}},"PolicyRuleEnforcement":{"description":"A single enforcement on a policy rule. Exactly one enforcement type is expressed per object (for example set, default, required, blocked, options, match, or one of the grouped range, length, elements, items, or quantityRange constraints); combine multiple enforcement objects on a rule to apply several constraints to the same field.","anyOf":[{"$ref":"#/components/schemas/PolicyEnforcementSet"},{"$ref":"#/components/schemas/PolicyEnforcementDefault"},{"$ref":"#/components/schemas/PolicyEnforcementRequired"},{"$ref":"#/components/schemas/PolicyEnforcementBlocked"},{"$ref":"#/components/schemas/PolicyEnforcementLength"},{"$ref":"#/components/schemas/PolicyEnforcementOptions"},{"$ref":"#/components/schemas/PolicyEnforcementMatch"},{"$ref":"#/components/schemas/PolicyEnforcementRange"},{"$ref":"#/components/schemas/PolicyEnforcementElements"},{"$ref":"#/components/schemas/PolicyEnforcementItems"},{"$ref":"#/components/schemas/PolicyEnforcementQuantityRange"}]},"PolicyEnforcementSet":{"type":"object","properties":{"set":{"type":"object","description":"Enforces the value of the field.","additionalProperties":true}}},"PolicyEnforcementDefault":{"type":"object","properties":{"default":{"type":"object","description":"Sets the value of the field when the user does not supply one.","additionalProperties":true}}},"PolicyEnforcementRequired":{"type":"object","properties":{"required":{"description":"Requires the field to have a value, supplied either in the submission or by a policy default.","type":"boolean","default":false,"nullable":true}}},"PolicyEnforcementBlocked":{"type":"object","properties":{"blocked":{"description":"Prevents the field from being assigned any value. Inverse of \"required\".","type":"boolean","default":false,"nullable":true}}},"PolicyEnforcementLength":{"type":"object","properties":{"length":{"type":"object","description":"Enforces the field's length (character count for strings, element count for slices, arrays, and maps) to fall within the inclusive range [min, max]. At least one of `min`/`max` must be specified.\n","nullable":true,"properties":{"min":{"description":"Enforces the minimum length.","type":"integer","format":"int32","minimum":0,"nullable":true},"max":{"description":"Enforces the maximum length.","type":"integer","format":"int32","minimum":0,"nullable":true}}}}},"PolicyEnforcementOptions":{"type":"object","properties":{"options":{"description":"Restricts the value of the field to one of the listed options.","type":"array","items":{"type":"string"},"nullable":true}}},"PolicyEnforcementMatch":{"type":"object","properties":{"match":{"description":"Requires the value of the field to match the regular expression.","type":"string","nullable":true}}},"PolicyEnforcementRange":{"type":"object","properties":{"range":{"type":"object","description":"Enforces a numeric value to fall within the inclusive range [min, max], optionally restricted to increments of `step` starting from `min`.\n","nullable":true,"properties":{"min":{"description":"Enforces the minimum numeric value of the field.","type":"number","nullable":true},"max":{"description":"Enforces the maximum numeric value of the field.","type":"number","nullable":true},"step":{"description":"Restricts the field value to specific numeric increments starting from `min` (or from 0 when `min` is absent). Must be greater than 0.\n","type":"number","nullable":true}}}}},"PolicyEnforcementElements":{"type":"object","properties":{"elements":{"type":"object","description":"Enforces the number of elements in an array field to fall within the inclusive range [min, max]. At least one of `min`/`max` must be specified.\n","nullable":true,"properties":{"min":{"description":"Enforces the minimum number of elements.","type":"integer","format":"int32","minimum":0,"nullable":true},"max":{"description":"Enforces the maximum number of elements.","type":"integer","format":"int32","minimum":0,"nullable":true}}}}},"PolicyEnforcementItems":{"type":"object","properties":{"items":{"type":"object","description":"Enforces the number of items produced by a field's itemSelector to fall within the inclusive range [min, max]. At least one of `min`/`max` must be specified. Applies only to fields that declare itemSelectors.\n","nullable":true,"properties":{"min":{"description":"Enforces the minimum number of items.","type":"integer","format":"int32","minimum":0,"nullable":true},"max":{"description":"Enforces the maximum number of items.","type":"integer","format":"int32","minimum":0,"nullable":true}}}}},"PolicyEnforcementQuantityRange":{"type":"object","properties":{"quantityRange":{"type":"object","description":"Enforces a Kubernetes resource quantity to fall within the inclusive range [min, max], optionally restricted to increments of `step` starting from `min`. All bounds must be valid Kubernetes quantities such as 100m, 1Gi, or 500Mi.\n","nullable":true,"properties":{"min":{"description":"Enforces the minimum quantity value of the field.","type":"string","nullable":true},"max":{"description":"Enforces the maximum quantity value of the field.","type":"string","nullable":true},"step":{"description":"Restricts the field value to specific quantity increments starting from `min` (or from 0 when `min` is absent).\n","type":"string","nullable":true}}}}},"Policy":{"type":"object","description":"A policy resource. A policy is uniquely identified by the triple of workload type (Kubernetes Group/Version/Kind), scope, and project id, and constrains the allowed values of fields in the workload spec through its rules. The server assigns a unique id and tracks ownership and configuration status.","allOf":[{"$ref":"#/components/schemas/PolicyDescriptionField"},{"$ref":"#/components/schemas/WorkloadTypeAndScope"},{"$ref":"#/components/schemas/PolicyRules"},{"$ref":"#/components/schemas/EffectiveRules"},{"$ref":"#/components/schemas/PolicyIdAndOwnership"}],"properties":{"status":{"description":"Configuration issues detected by the server for this policy. Returned in responses only; not accepted in requests.","allOf":[{"$ref":"#/components/schemas/PolicyStatus"}],"type":"object","nullable":true}}},"WorkloadTypeAndScope":{"type":"object","description":"The workload type and scope this policy applies to. Together with the project id, they form the unique triple that identifies a policy. The workload type is the Kubernetes Group/Version/Kind of the workloads the policy governs, and the scope is the level at which it takes effect. Currently only the project scope is supported; tenant, cluster, and department are planned, and system is not supported.","required":["workloadType","scope"],"properties":{"workloadType":{"$ref":"#/components/schemas/GVK"},"scope":{"$ref":"#/components/schemas/ScopeType"},"clusterId":{"description":"The id of the cluster the policy applies to. Required when the scope is cluster.","allOf":[{"$ref":"#/components/schemas/ClusterId"}],"type":"string","nullable":true},"departmentId":{"description":"The id of the department the policy applies to. Required when the scope is department.","allOf":[{"$ref":"#/components/schemas/DepartmentId"}],"type":"string","nullable":true},"projectId":{"description":"The id of the project the policy applies to. Required when the scope is project.","allOf":[{"$ref":"#/components/schemas/ProjectId"}],"type":"string","nullable":true}}},"GVK":{"type":"object","description":"Specifies the Group, Version, and Kind (GVK) of the Kubernetes resource that defines the workload.","required":["version","kind"],"properties":{"group":{"description":"The API group of the Kubernetes resource. Empty string for core resources like Pod.","type":"string","nullable":true,"maxLength":253},"version":{"description":"The API version of the resource within the specified group.","type":"string","maxLength":250},"kind":{"description":"The type of Kubernetes resource being referenced.","type":"string","maxLength":250}}},"ScopeType":{"type":"string","enum":["system","tenant","cluster","department","project"]},"ClusterId":{"description":"The id of the cluster.","type":"string","format":"uuid"},"DepartmentId":{"description":"The id of the department.","type":"string","minLength":1,"pattern":".*"},"ProjectId":{"description":"The id of the project.","type":"string","pattern":".*"},"EffectiveRules":{"type":"object","properties":{"effectiveRules":{"description":"The merged rule set in effect for this policy, including rules inherited from broader scopes (cluster, then department, then project). Each entry adds the sourceOfRule indicating where the rule was defined. Returned in responses only; not accepted in requests.","type":"array","items":{"allOf":[{"$ref":"#/components/schemas/PolicyRule"},{"$ref":"#/components/schemas/PolicyRuleSource"}]}}}},"PolicyRuleSource":{"type":"object","description":"The origin of an effective rule. Identifies the scope at which the rule was defined and the matching project, department, or cluster id. Set by the server on effective rules in responses only; leave empty in requests.","required":["sourceOfRule"],"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"}}},"SourceOfRule":{"description":"This field is used by the system along with effective rules, in order to specify the org unit from which this effective rule has been derived. It should be left empty when sending apply policy requests.","required":["scope"],"properties":{"scope":{"$ref":"#/components/schemas/ScopeType"},"projectId":{"$ref":"#/components/schemas/ProjectIdOptional"},"departmentId":{"$ref":"#/components/schemas/DepartmentIdOptional"},"clusterId":{"$ref":"#/components/schemas/ClusterIdOptional"},"isFallback":{"description":"source of this rule is the fallback policy","type":"boolean"}},"nullable":true,"type":"object"},"ProjectIdOptional":{"description":"The id of the project.","type":"integer","format":"int32","nullable":true},"DepartmentIdOptional":{"description":"The id of the department.","type":"string","minLength":1,"nullable":true,"pattern":".*"},"ClusterIdOptional":{"description":"The id of the cluster.","type":"string","format":"uuid","minLength":1,"nullable":true},"PolicyIdAndOwnership":{"type":"object","required":["id","createdBy","createdAt","updatedBy","updatedAt"],"properties":{"id":{"description":"The unique identifier for the policy.","type":"string","format":"uuid"},"createdBy":{"description":"Identifier of the user who created the policy.","type":"string","minLength":1},"createdAt":{"description":"The timestamp for when the policy was created.","type":"string","minLength":1,"format":"date-time"},"updatedBy":{"description":"Identifier of the user who last updated the policy.","type":"string","minLength":1},"updatedAt":{"description":"The timestamp for when the policy was last updated.","type":"string","minLength":1,"format":"date-time"}}},"PolicyStatus":{"type":"object","description":"Configuration issues detected by the server for the policy, along with its current phase.","properties":{"phase":{"$ref":"#/components/schemas/PolicyPhase"},"issues":{"description":"The list of configuration issues detected for the policy.","type":"array","maxItems":500,"items":{"type":"string","maxLength":1024}}}},"PolicyPhase":{"type":"string","enum":["Ready","PendingUpdate","Degraded"],"description":"The current phase of the policy. Supported values include:\n- Ready: The policy is fully validated, and all rules are successfully applied to the workload.\n- PendingUpdate: Configuration components (e.g., specSelector, itemSelector) have changed. \n  The policy is awaiting validation to ensure the full rule set remains functional; \n  this validation occurs the next time the policy is applied.\n- Degraded: One or more policy rules cannot be applied due to recent configuration changes. \n  While the policy remains active, some rules may be ignored during enforcement.\n"},"Error":{"required":["code","message"],"properties":{"code":{"type":"integer","minimum":100,"maximum":599},"message":{"type":"string"},"details":{"type":"string"}}}},"responses":{"400BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401Unauthorized":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403Forbidden":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404NotFound":{"description":"The specified resource was not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503ServiceUnavailable":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/api/v1/policies/{PolicyId}":{"put":{"summary":"Replace a policy. [experimental]","description":"Replace an existing policy's rules and description.","operationId":"apply_gvk_policy","tags":["Policy"],"parameters":[{"$ref":"#/components/parameters/PolicyId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateGvkPolicyReq"}}}},"responses":{"200":{"description":"The updated policy.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Policy"}}}},"400":{"$ref":"#/components/responses/400BadRequest"},"401":{"$ref":"#/components/responses/401Unauthorized"},"403":{"$ref":"#/components/responses/403Forbidden"},"404":{"$ref":"#/components/responses/404NotFound"},"503":{"$ref":"#/components/responses/503ServiceUnavailable"}}}}}}
```

## Delete a policy. \[experimental]

> Delete an existing policy and all of its rules.

```json
{"openapi":"3.0.3","info":{"title":"NVIDIA Run:ai","version":"2.26"},"tags":[{"name":"Policy","description":"Policies allow administrators to impose restrictions and set default values for researcher workloads. \nRestrictions and default values can be placed on CPUs, GPUs, and other resources or entities. \nFor more information, see [Policies](https://run-ai-docs.nvidia.com/self-hosted/2.26/platform-management/policies/#introduction).\n"}],"servers":[{"url":"https://app.run.ai"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer authentication"}},"parameters":{"PolicyId":{"name":"PolicyId","in":"path","required":true,"description":"The unique identifier for the policy.","schema":{"type":"string","format":"uuid"}}},"responses":{"204NoContent":{"description":"No Content."},"400BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401Unauthorized":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403Forbidden":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404NotFound":{"description":"The specified resource was not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503ServiceUnavailable":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"schemas":{"Error":{"required":["code","message"],"properties":{"code":{"type":"integer","minimum":100,"maximum":599},"message":{"type":"string"},"details":{"type":"string"}}}}},"paths":{"/api/v1/policies/{PolicyId}":{"delete":{"summary":"Delete a policy. [experimental]","description":"Delete an existing policy and all of its rules.","operationId":"delete_gvk_policy","tags":["Policy"],"parameters":[{"$ref":"#/components/parameters/PolicyId"}],"responses":{"204":{"$ref":"#/components/responses/204NoContent"},"400":{"$ref":"#/components/responses/400BadRequest"},"401":{"$ref":"#/components/responses/401Unauthorized"},"403":{"$ref":"#/components/responses/403Forbidden"},"404":{"$ref":"#/components/responses/404NotFound"},"503":{"$ref":"#/components/responses/503ServiceUnavailable"}}}}}}
```

## Patch a policy. \[experimental]

> Merge rules into an existing policy, keyed by rule identity.

```json
{"openapi":"3.0.3","info":{"title":"NVIDIA Run:ai","version":"2.26"},"tags":[{"name":"Policy","description":"Policies allow administrators to impose restrictions and set default values for researcher workloads. \nRestrictions and default values can be placed on CPUs, GPUs, and other resources or entities. \nFor more information, see [Policies](https://run-ai-docs.nvidia.com/self-hosted/2.26/platform-management/policies/#introduction).\n"}],"servers":[{"url":"https://app.run.ai"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer authentication"}},"parameters":{"PolicyId":{"name":"PolicyId","in":"path","required":true,"description":"The unique identifier for the policy.","schema":{"type":"string","format":"uuid"}}},"schemas":{"UpdateGvkPolicyReq":{"type":"object","description":"Update a policy.","allOf":[{"$ref":"#/components/schemas/PolicyDescriptionField"},{"$ref":"#/components/schemas/PolicyRules"}]},"PolicyDescriptionField":{"type":"object","properties":{"description":{"$ref":"#/components/schemas/PolicyDescriptionOptional"}}},"PolicyDescriptionOptional":{"type":"string","nullable":true,"description":"A description of the policy.","pattern":".*","minLength":1,"maxLength":1023},"PolicyRules":{"type":"object","properties":{"rules":{"description":"The rules declared on this policy. Each rule targets a field in the workload spec and constrains its allowed values through its enforcements.","type":"array","items":{"$ref":"#/components/schemas/PolicyRule"}}}},"PolicyRule":{"type":"object","description":"A single policy rule. It combines the rule's identity (the field it targets, along with the spec selector, optional item selector, and selector parameters) with its enforcements (the behavior that constrains the field's allowed values).","allOf":[{"$ref":"#/components/schemas/PolicyRuleRef"},{"$ref":"#/components/schemas/PolicyRuleEnforcements"}]},"PolicyRuleRef":{"type":"object","description":"The identity of a policy rule: the policy-controllable field it enforces, the spec selector that picks which subtree of the workload spec it applies to, and the optional item selector and selector parameters that narrow the target for itemized fields.","required":["field","specSelector"],"properties":{"field":{"$ref":"#/components/schemas/MappingFieldName"},"specSelector":{"$ref":"#/components/schemas/SpecSelectorName"},"itemSelector":{"description":"The name of the item selector that picks specific items of an itemized field. Omit for non-itemized fields.","allOf":[{"$ref":"#/components/schemas/ItemSelectorName"}],"type":"string","nullable":true},"selectorParams":{"$ref":"#/components/schemas/SelectorParams"}}},"MappingFieldName":{"type":"string","description":"The unique name of the field.","minLength":1,"maxLength":63,"pattern":"^[A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])?$"},"SpecSelectorName":{"type":"string","description":"The unique name of the spec selector","minLength":1,"maxLength":63,"pattern":"^[A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])?$"},"ItemSelectorName":{"type":"string","description":"The unique name of the item selector","minLength":1,"maxLength":63,"pattern":"^[A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])?$"},"SelectorParams":{"type":"object","description":"The parameter values supplied to the spec selector and item selector at evaluation time, as a key-value map.","additionalProperties":true},"PolicyRuleEnforcements":{"type":"object","required":["enforcements"],"properties":{"enforcements":{"description":"The set of enforcements that define the rule's behavior. Each enforcement pairs an enforcement type with its value, and multiple enforcements may combine on a single rule to constrain the targeted field.","type":"array","items":{"allOf":[{"$ref":"#/components/schemas/PolicyRuleEnforcement"}]}}}},"PolicyRuleEnforcement":{"description":"A single enforcement on a policy rule. Exactly one enforcement type is expressed per object (for example set, default, required, blocked, options, match, or one of the grouped range, length, elements, items, or quantityRange constraints); combine multiple enforcement objects on a rule to apply several constraints to the same field.","anyOf":[{"$ref":"#/components/schemas/PolicyEnforcementSet"},{"$ref":"#/components/schemas/PolicyEnforcementDefault"},{"$ref":"#/components/schemas/PolicyEnforcementRequired"},{"$ref":"#/components/schemas/PolicyEnforcementBlocked"},{"$ref":"#/components/schemas/PolicyEnforcementLength"},{"$ref":"#/components/schemas/PolicyEnforcementOptions"},{"$ref":"#/components/schemas/PolicyEnforcementMatch"},{"$ref":"#/components/schemas/PolicyEnforcementRange"},{"$ref":"#/components/schemas/PolicyEnforcementElements"},{"$ref":"#/components/schemas/PolicyEnforcementItems"},{"$ref":"#/components/schemas/PolicyEnforcementQuantityRange"}]},"PolicyEnforcementSet":{"type":"object","properties":{"set":{"type":"object","description":"Enforces the value of the field.","additionalProperties":true}}},"PolicyEnforcementDefault":{"type":"object","properties":{"default":{"type":"object","description":"Sets the value of the field when the user does not supply one.","additionalProperties":true}}},"PolicyEnforcementRequired":{"type":"object","properties":{"required":{"description":"Requires the field to have a value, supplied either in the submission or by a policy default.","type":"boolean","default":false,"nullable":true}}},"PolicyEnforcementBlocked":{"type":"object","properties":{"blocked":{"description":"Prevents the field from being assigned any value. Inverse of \"required\".","type":"boolean","default":false,"nullable":true}}},"PolicyEnforcementLength":{"type":"object","properties":{"length":{"type":"object","description":"Enforces the field's length (character count for strings, element count for slices, arrays, and maps) to fall within the inclusive range [min, max]. At least one of `min`/`max` must be specified.\n","nullable":true,"properties":{"min":{"description":"Enforces the minimum length.","type":"integer","format":"int32","minimum":0,"nullable":true},"max":{"description":"Enforces the maximum length.","type":"integer","format":"int32","minimum":0,"nullable":true}}}}},"PolicyEnforcementOptions":{"type":"object","properties":{"options":{"description":"Restricts the value of the field to one of the listed options.","type":"array","items":{"type":"string"},"nullable":true}}},"PolicyEnforcementMatch":{"type":"object","properties":{"match":{"description":"Requires the value of the field to match the regular expression.","type":"string","nullable":true}}},"PolicyEnforcementRange":{"type":"object","properties":{"range":{"type":"object","description":"Enforces a numeric value to fall within the inclusive range [min, max], optionally restricted to increments of `step` starting from `min`.\n","nullable":true,"properties":{"min":{"description":"Enforces the minimum numeric value of the field.","type":"number","nullable":true},"max":{"description":"Enforces the maximum numeric value of the field.","type":"number","nullable":true},"step":{"description":"Restricts the field value to specific numeric increments starting from `min` (or from 0 when `min` is absent). Must be greater than 0.\n","type":"number","nullable":true}}}}},"PolicyEnforcementElements":{"type":"object","properties":{"elements":{"type":"object","description":"Enforces the number of elements in an array field to fall within the inclusive range [min, max]. At least one of `min`/`max` must be specified.\n","nullable":true,"properties":{"min":{"description":"Enforces the minimum number of elements.","type":"integer","format":"int32","minimum":0,"nullable":true},"max":{"description":"Enforces the maximum number of elements.","type":"integer","format":"int32","minimum":0,"nullable":true}}}}},"PolicyEnforcementItems":{"type":"object","properties":{"items":{"type":"object","description":"Enforces the number of items produced by a field's itemSelector to fall within the inclusive range [min, max]. At least one of `min`/`max` must be specified. Applies only to fields that declare itemSelectors.\n","nullable":true,"properties":{"min":{"description":"Enforces the minimum number of items.","type":"integer","format":"int32","minimum":0,"nullable":true},"max":{"description":"Enforces the maximum number of items.","type":"integer","format":"int32","minimum":0,"nullable":true}}}}},"PolicyEnforcementQuantityRange":{"type":"object","properties":{"quantityRange":{"type":"object","description":"Enforces a Kubernetes resource quantity to fall within the inclusive range [min, max], optionally restricted to increments of `step` starting from `min`. All bounds must be valid Kubernetes quantities such as 100m, 1Gi, or 500Mi.\n","nullable":true,"properties":{"min":{"description":"Enforces the minimum quantity value of the field.","type":"string","nullable":true},"max":{"description":"Enforces the maximum quantity value of the field.","type":"string","nullable":true},"step":{"description":"Restricts the field value to specific quantity increments starting from `min` (or from 0 when `min` is absent).\n","type":"string","nullable":true}}}}},"Policy":{"type":"object","description":"A policy resource. A policy is uniquely identified by the triple of workload type (Kubernetes Group/Version/Kind), scope, and project id, and constrains the allowed values of fields in the workload spec through its rules. The server assigns a unique id and tracks ownership and configuration status.","allOf":[{"$ref":"#/components/schemas/PolicyDescriptionField"},{"$ref":"#/components/schemas/WorkloadTypeAndScope"},{"$ref":"#/components/schemas/PolicyRules"},{"$ref":"#/components/schemas/EffectiveRules"},{"$ref":"#/components/schemas/PolicyIdAndOwnership"}],"properties":{"status":{"description":"Configuration issues detected by the server for this policy. Returned in responses only; not accepted in requests.","allOf":[{"$ref":"#/components/schemas/PolicyStatus"}],"type":"object","nullable":true}}},"WorkloadTypeAndScope":{"type":"object","description":"The workload type and scope this policy applies to. Together with the project id, they form the unique triple that identifies a policy. The workload type is the Kubernetes Group/Version/Kind of the workloads the policy governs, and the scope is the level at which it takes effect. Currently only the project scope is supported; tenant, cluster, and department are planned, and system is not supported.","required":["workloadType","scope"],"properties":{"workloadType":{"$ref":"#/components/schemas/GVK"},"scope":{"$ref":"#/components/schemas/ScopeType"},"clusterId":{"description":"The id of the cluster the policy applies to. Required when the scope is cluster.","allOf":[{"$ref":"#/components/schemas/ClusterId"}],"type":"string","nullable":true},"departmentId":{"description":"The id of the department the policy applies to. Required when the scope is department.","allOf":[{"$ref":"#/components/schemas/DepartmentId"}],"type":"string","nullable":true},"projectId":{"description":"The id of the project the policy applies to. Required when the scope is project.","allOf":[{"$ref":"#/components/schemas/ProjectId"}],"type":"string","nullable":true}}},"GVK":{"type":"object","description":"Specifies the Group, Version, and Kind (GVK) of the Kubernetes resource that defines the workload.","required":["version","kind"],"properties":{"group":{"description":"The API group of the Kubernetes resource. Empty string for core resources like Pod.","type":"string","nullable":true,"maxLength":253},"version":{"description":"The API version of the resource within the specified group.","type":"string","maxLength":250},"kind":{"description":"The type of Kubernetes resource being referenced.","type":"string","maxLength":250}}},"ScopeType":{"type":"string","enum":["system","tenant","cluster","department","project"]},"ClusterId":{"description":"The id of the cluster.","type":"string","format":"uuid"},"DepartmentId":{"description":"The id of the department.","type":"string","minLength":1,"pattern":".*"},"ProjectId":{"description":"The id of the project.","type":"string","pattern":".*"},"EffectiveRules":{"type":"object","properties":{"effectiveRules":{"description":"The merged rule set in effect for this policy, including rules inherited from broader scopes (cluster, then department, then project). Each entry adds the sourceOfRule indicating where the rule was defined. Returned in responses only; not accepted in requests.","type":"array","items":{"allOf":[{"$ref":"#/components/schemas/PolicyRule"},{"$ref":"#/components/schemas/PolicyRuleSource"}]}}}},"PolicyRuleSource":{"type":"object","description":"The origin of an effective rule. Identifies the scope at which the rule was defined and the matching project, department, or cluster id. Set by the server on effective rules in responses only; leave empty in requests.","required":["sourceOfRule"],"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"}}},"SourceOfRule":{"description":"This field is used by the system along with effective rules, in order to specify the org unit from which this effective rule has been derived. It should be left empty when sending apply policy requests.","required":["scope"],"properties":{"scope":{"$ref":"#/components/schemas/ScopeType"},"projectId":{"$ref":"#/components/schemas/ProjectIdOptional"},"departmentId":{"$ref":"#/components/schemas/DepartmentIdOptional"},"clusterId":{"$ref":"#/components/schemas/ClusterIdOptional"},"isFallback":{"description":"source of this rule is the fallback policy","type":"boolean"}},"nullable":true,"type":"object"},"ProjectIdOptional":{"description":"The id of the project.","type":"integer","format":"int32","nullable":true},"DepartmentIdOptional":{"description":"The id of the department.","type":"string","minLength":1,"nullable":true,"pattern":".*"},"ClusterIdOptional":{"description":"The id of the cluster.","type":"string","format":"uuid","minLength":1,"nullable":true},"PolicyIdAndOwnership":{"type":"object","required":["id","createdBy","createdAt","updatedBy","updatedAt"],"properties":{"id":{"description":"The unique identifier for the policy.","type":"string","format":"uuid"},"createdBy":{"description":"Identifier of the user who created the policy.","type":"string","minLength":1},"createdAt":{"description":"The timestamp for when the policy was created.","type":"string","minLength":1,"format":"date-time"},"updatedBy":{"description":"Identifier of the user who last updated the policy.","type":"string","minLength":1},"updatedAt":{"description":"The timestamp for when the policy was last updated.","type":"string","minLength":1,"format":"date-time"}}},"PolicyStatus":{"type":"object","description":"Configuration issues detected by the server for the policy, along with its current phase.","properties":{"phase":{"$ref":"#/components/schemas/PolicyPhase"},"issues":{"description":"The list of configuration issues detected for the policy.","type":"array","maxItems":500,"items":{"type":"string","maxLength":1024}}}},"PolicyPhase":{"type":"string","enum":["Ready","PendingUpdate","Degraded"],"description":"The current phase of the policy. Supported values include:\n- Ready: The policy is fully validated, and all rules are successfully applied to the workload.\n- PendingUpdate: Configuration components (e.g., specSelector, itemSelector) have changed. \n  The policy is awaiting validation to ensure the full rule set remains functional; \n  this validation occurs the next time the policy is applied.\n- Degraded: One or more policy rules cannot be applied due to recent configuration changes. \n  While the policy remains active, some rules may be ignored during enforcement.\n"},"Error":{"required":["code","message"],"properties":{"code":{"type":"integer","minimum":100,"maximum":599},"message":{"type":"string"},"details":{"type":"string"}}}},"responses":{"400BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401Unauthorized":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403Forbidden":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404NotFound":{"description":"The specified resource was not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503ServiceUnavailable":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/api/v1/policies/{PolicyId}":{"patch":{"summary":"Patch a policy. [experimental]","description":"Merge rules into an existing policy, keyed by rule identity.","operationId":"patch_gvk_policy","tags":["Policy"],"parameters":[{"$ref":"#/components/parameters/PolicyId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateGvkPolicyReq"}}}},"responses":{"200":{"description":"The updated policy.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Policy"}}}},"400":{"$ref":"#/components/responses/400BadRequest"},"401":{"$ref":"#/components/responses/401Unauthorized"},"403":{"$ref":"#/components/responses/403Forbidden"},"404":{"$ref":"#/components/responses/404NotFound"},"503":{"$ref":"#/components/responses/503ServiceUnavailable"}}}}}}
```

## Delete rules from a policy. \[experimental]

> Delete one or more rules from an existing policy by reference.

```json
{"openapi":"3.0.3","info":{"title":"NVIDIA Run:ai","version":"2.26"},"tags":[{"name":"Policy","description":"Policies allow administrators to impose restrictions and set default values for researcher workloads. \nRestrictions and default values can be placed on CPUs, GPUs, and other resources or entities. \nFor more information, see [Policies](https://run-ai-docs.nvidia.com/self-hosted/2.26/platform-management/policies/#introduction).\n"}],"servers":[{"url":"https://app.run.ai"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer authentication"}},"parameters":{"PolicyId":{"name":"PolicyId","in":"path","required":true,"description":"The unique identifier for the policy.","schema":{"type":"string","format":"uuid"}}},"schemas":{"DeleteGvkPolicyRulesReq":{"type":"object","description":"Delete one or more rules from a policy.","allOf":[{"$ref":"#/components/schemas/PolicyRulesRef"}]},"PolicyRulesRef":{"type":"object","required":["rules"],"properties":{"rules":{"description":"References to the rules to remove from the policy. Each entry identifies a rule by its identity fields only (field, spec selector, and optional item selector and selector parameters).","type":"array","items":{"$ref":"#/components/schemas/PolicyRuleRef"}}}},"PolicyRuleRef":{"type":"object","description":"The identity of a policy rule: the policy-controllable field it enforces, the spec selector that picks which subtree of the workload spec it applies to, and the optional item selector and selector parameters that narrow the target for itemized fields.","required":["field","specSelector"],"properties":{"field":{"$ref":"#/components/schemas/MappingFieldName"},"specSelector":{"$ref":"#/components/schemas/SpecSelectorName"},"itemSelector":{"description":"The name of the item selector that picks specific items of an itemized field. Omit for non-itemized fields.","allOf":[{"$ref":"#/components/schemas/ItemSelectorName"}],"type":"string","nullable":true},"selectorParams":{"$ref":"#/components/schemas/SelectorParams"}}},"MappingFieldName":{"type":"string","description":"The unique name of the field.","minLength":1,"maxLength":63,"pattern":"^[A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])?$"},"SpecSelectorName":{"type":"string","description":"The unique name of the spec selector","minLength":1,"maxLength":63,"pattern":"^[A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])?$"},"ItemSelectorName":{"type":"string","description":"The unique name of the item selector","minLength":1,"maxLength":63,"pattern":"^[A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])?$"},"SelectorParams":{"type":"object","description":"The parameter values supplied to the spec selector and item selector at evaluation time, as a key-value map.","additionalProperties":true},"Policy":{"type":"object","description":"A policy resource. A policy is uniquely identified by the triple of workload type (Kubernetes Group/Version/Kind), scope, and project id, and constrains the allowed values of fields in the workload spec through its rules. The server assigns a unique id and tracks ownership and configuration status.","allOf":[{"$ref":"#/components/schemas/PolicyDescriptionField"},{"$ref":"#/components/schemas/WorkloadTypeAndScope"},{"$ref":"#/components/schemas/PolicyRules"},{"$ref":"#/components/schemas/EffectiveRules"},{"$ref":"#/components/schemas/PolicyIdAndOwnership"}],"properties":{"status":{"description":"Configuration issues detected by the server for this policy. Returned in responses only; not accepted in requests.","allOf":[{"$ref":"#/components/schemas/PolicyStatus"}],"type":"object","nullable":true}}},"PolicyDescriptionField":{"type":"object","properties":{"description":{"$ref":"#/components/schemas/PolicyDescriptionOptional"}}},"PolicyDescriptionOptional":{"type":"string","nullable":true,"description":"A description of the policy.","pattern":".*","minLength":1,"maxLength":1023},"WorkloadTypeAndScope":{"type":"object","description":"The workload type and scope this policy applies to. Together with the project id, they form the unique triple that identifies a policy. The workload type is the Kubernetes Group/Version/Kind of the workloads the policy governs, and the scope is the level at which it takes effect. Currently only the project scope is supported; tenant, cluster, and department are planned, and system is not supported.","required":["workloadType","scope"],"properties":{"workloadType":{"$ref":"#/components/schemas/GVK"},"scope":{"$ref":"#/components/schemas/ScopeType"},"clusterId":{"description":"The id of the cluster the policy applies to. Required when the scope is cluster.","allOf":[{"$ref":"#/components/schemas/ClusterId"}],"type":"string","nullable":true},"departmentId":{"description":"The id of the department the policy applies to. Required when the scope is department.","allOf":[{"$ref":"#/components/schemas/DepartmentId"}],"type":"string","nullable":true},"projectId":{"description":"The id of the project the policy applies to. Required when the scope is project.","allOf":[{"$ref":"#/components/schemas/ProjectId"}],"type":"string","nullable":true}}},"GVK":{"type":"object","description":"Specifies the Group, Version, and Kind (GVK) of the Kubernetes resource that defines the workload.","required":["version","kind"],"properties":{"group":{"description":"The API group of the Kubernetes resource. Empty string for core resources like Pod.","type":"string","nullable":true,"maxLength":253},"version":{"description":"The API version of the resource within the specified group.","type":"string","maxLength":250},"kind":{"description":"The type of Kubernetes resource being referenced.","type":"string","maxLength":250}}},"ScopeType":{"type":"string","enum":["system","tenant","cluster","department","project"]},"ClusterId":{"description":"The id of the cluster.","type":"string","format":"uuid"},"DepartmentId":{"description":"The id of the department.","type":"string","minLength":1,"pattern":".*"},"ProjectId":{"description":"The id of the project.","type":"string","pattern":".*"},"PolicyRules":{"type":"object","properties":{"rules":{"description":"The rules declared on this policy. Each rule targets a field in the workload spec and constrains its allowed values through its enforcements.","type":"array","items":{"$ref":"#/components/schemas/PolicyRule"}}}},"PolicyRule":{"type":"object","description":"A single policy rule. It combines the rule's identity (the field it targets, along with the spec selector, optional item selector, and selector parameters) with its enforcements (the behavior that constrains the field's allowed values).","allOf":[{"$ref":"#/components/schemas/PolicyRuleRef"},{"$ref":"#/components/schemas/PolicyRuleEnforcements"}]},"PolicyRuleEnforcements":{"type":"object","required":["enforcements"],"properties":{"enforcements":{"description":"The set of enforcements that define the rule's behavior. Each enforcement pairs an enforcement type with its value, and multiple enforcements may combine on a single rule to constrain the targeted field.","type":"array","items":{"allOf":[{"$ref":"#/components/schemas/PolicyRuleEnforcement"}]}}}},"PolicyRuleEnforcement":{"description":"A single enforcement on a policy rule. Exactly one enforcement type is expressed per object (for example set, default, required, blocked, options, match, or one of the grouped range, length, elements, items, or quantityRange constraints); combine multiple enforcement objects on a rule to apply several constraints to the same field.","anyOf":[{"$ref":"#/components/schemas/PolicyEnforcementSet"},{"$ref":"#/components/schemas/PolicyEnforcementDefault"},{"$ref":"#/components/schemas/PolicyEnforcementRequired"},{"$ref":"#/components/schemas/PolicyEnforcementBlocked"},{"$ref":"#/components/schemas/PolicyEnforcementLength"},{"$ref":"#/components/schemas/PolicyEnforcementOptions"},{"$ref":"#/components/schemas/PolicyEnforcementMatch"},{"$ref":"#/components/schemas/PolicyEnforcementRange"},{"$ref":"#/components/schemas/PolicyEnforcementElements"},{"$ref":"#/components/schemas/PolicyEnforcementItems"},{"$ref":"#/components/schemas/PolicyEnforcementQuantityRange"}]},"PolicyEnforcementSet":{"type":"object","properties":{"set":{"type":"object","description":"Enforces the value of the field.","additionalProperties":true}}},"PolicyEnforcementDefault":{"type":"object","properties":{"default":{"type":"object","description":"Sets the value of the field when the user does not supply one.","additionalProperties":true}}},"PolicyEnforcementRequired":{"type":"object","properties":{"required":{"description":"Requires the field to have a value, supplied either in the submission or by a policy default.","type":"boolean","default":false,"nullable":true}}},"PolicyEnforcementBlocked":{"type":"object","properties":{"blocked":{"description":"Prevents the field from being assigned any value. Inverse of \"required\".","type":"boolean","default":false,"nullable":true}}},"PolicyEnforcementLength":{"type":"object","properties":{"length":{"type":"object","description":"Enforces the field's length (character count for strings, element count for slices, arrays, and maps) to fall within the inclusive range [min, max]. At least one of `min`/`max` must be specified.\n","nullable":true,"properties":{"min":{"description":"Enforces the minimum length.","type":"integer","format":"int32","minimum":0,"nullable":true},"max":{"description":"Enforces the maximum length.","type":"integer","format":"int32","minimum":0,"nullable":true}}}}},"PolicyEnforcementOptions":{"type":"object","properties":{"options":{"description":"Restricts the value of the field to one of the listed options.","type":"array","items":{"type":"string"},"nullable":true}}},"PolicyEnforcementMatch":{"type":"object","properties":{"match":{"description":"Requires the value of the field to match the regular expression.","type":"string","nullable":true}}},"PolicyEnforcementRange":{"type":"object","properties":{"range":{"type":"object","description":"Enforces a numeric value to fall within the inclusive range [min, max], optionally restricted to increments of `step` starting from `min`.\n","nullable":true,"properties":{"min":{"description":"Enforces the minimum numeric value of the field.","type":"number","nullable":true},"max":{"description":"Enforces the maximum numeric value of the field.","type":"number","nullable":true},"step":{"description":"Restricts the field value to specific numeric increments starting from `min` (or from 0 when `min` is absent). Must be greater than 0.\n","type":"number","nullable":true}}}}},"PolicyEnforcementElements":{"type":"object","properties":{"elements":{"type":"object","description":"Enforces the number of elements in an array field to fall within the inclusive range [min, max]. At least one of `min`/`max` must be specified.\n","nullable":true,"properties":{"min":{"description":"Enforces the minimum number of elements.","type":"integer","format":"int32","minimum":0,"nullable":true},"max":{"description":"Enforces the maximum number of elements.","type":"integer","format":"int32","minimum":0,"nullable":true}}}}},"PolicyEnforcementItems":{"type":"object","properties":{"items":{"type":"object","description":"Enforces the number of items produced by a field's itemSelector to fall within the inclusive range [min, max]. At least one of `min`/`max` must be specified. Applies only to fields that declare itemSelectors.\n","nullable":true,"properties":{"min":{"description":"Enforces the minimum number of items.","type":"integer","format":"int32","minimum":0,"nullable":true},"max":{"description":"Enforces the maximum number of items.","type":"integer","format":"int32","minimum":0,"nullable":true}}}}},"PolicyEnforcementQuantityRange":{"type":"object","properties":{"quantityRange":{"type":"object","description":"Enforces a Kubernetes resource quantity to fall within the inclusive range [min, max], optionally restricted to increments of `step` starting from `min`. All bounds must be valid Kubernetes quantities such as 100m, 1Gi, or 500Mi.\n","nullable":true,"properties":{"min":{"description":"Enforces the minimum quantity value of the field.","type":"string","nullable":true},"max":{"description":"Enforces the maximum quantity value of the field.","type":"string","nullable":true},"step":{"description":"Restricts the field value to specific quantity increments starting from `min` (or from 0 when `min` is absent).\n","type":"string","nullable":true}}}}},"EffectiveRules":{"type":"object","properties":{"effectiveRules":{"description":"The merged rule set in effect for this policy, including rules inherited from broader scopes (cluster, then department, then project). Each entry adds the sourceOfRule indicating where the rule was defined. Returned in responses only; not accepted in requests.","type":"array","items":{"allOf":[{"$ref":"#/components/schemas/PolicyRule"},{"$ref":"#/components/schemas/PolicyRuleSource"}]}}}},"PolicyRuleSource":{"type":"object","description":"The origin of an effective rule. Identifies the scope at which the rule was defined and the matching project, department, or cluster id. Set by the server on effective rules in responses only; leave empty in requests.","required":["sourceOfRule"],"properties":{"sourceOfRule":{"$ref":"#/components/schemas/SourceOfRule"}}},"SourceOfRule":{"description":"This field is used by the system along with effective rules, in order to specify the org unit from which this effective rule has been derived. It should be left empty when sending apply policy requests.","required":["scope"],"properties":{"scope":{"$ref":"#/components/schemas/ScopeType"},"projectId":{"$ref":"#/components/schemas/ProjectIdOptional"},"departmentId":{"$ref":"#/components/schemas/DepartmentIdOptional"},"clusterId":{"$ref":"#/components/schemas/ClusterIdOptional"},"isFallback":{"description":"source of this rule is the fallback policy","type":"boolean"}},"nullable":true,"type":"object"},"ProjectIdOptional":{"description":"The id of the project.","type":"integer","format":"int32","nullable":true},"DepartmentIdOptional":{"description":"The id of the department.","type":"string","minLength":1,"nullable":true,"pattern":".*"},"ClusterIdOptional":{"description":"The id of the cluster.","type":"string","format":"uuid","minLength":1,"nullable":true},"PolicyIdAndOwnership":{"type":"object","required":["id","createdBy","createdAt","updatedBy","updatedAt"],"properties":{"id":{"description":"The unique identifier for the policy.","type":"string","format":"uuid"},"createdBy":{"description":"Identifier of the user who created the policy.","type":"string","minLength":1},"createdAt":{"description":"The timestamp for when the policy was created.","type":"string","minLength":1,"format":"date-time"},"updatedBy":{"description":"Identifier of the user who last updated the policy.","type":"string","minLength":1},"updatedAt":{"description":"The timestamp for when the policy was last updated.","type":"string","minLength":1,"format":"date-time"}}},"PolicyStatus":{"type":"object","description":"Configuration issues detected by the server for the policy, along with its current phase.","properties":{"phase":{"$ref":"#/components/schemas/PolicyPhase"},"issues":{"description":"The list of configuration issues detected for the policy.","type":"array","maxItems":500,"items":{"type":"string","maxLength":1024}}}},"PolicyPhase":{"type":"string","enum":["Ready","PendingUpdate","Degraded"],"description":"The current phase of the policy. Supported values include:\n- Ready: The policy is fully validated, and all rules are successfully applied to the workload.\n- PendingUpdate: Configuration components (e.g., specSelector, itemSelector) have changed. \n  The policy is awaiting validation to ensure the full rule set remains functional; \n  this validation occurs the next time the policy is applied.\n- Degraded: One or more policy rules cannot be applied due to recent configuration changes. \n  While the policy remains active, some rules may be ignored during enforcement.\n"},"Error":{"required":["code","message"],"properties":{"code":{"type":"integer","minimum":100,"maximum":599},"message":{"type":"string"},"details":{"type":"string"}}}},"responses":{"400BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401Unauthorized":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403Forbidden":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404NotFound":{"description":"The specified resource was not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503ServiceUnavailable":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/api/v1/policies/{PolicyId}/rules":{"delete":{"summary":"Delete rules from a policy. [experimental]","description":"Delete one or more rules from an existing policy by reference.","operationId":"delete_gvk_policy_rules","tags":["Policy"],"parameters":[{"$ref":"#/components/parameters/PolicyId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteGvkPolicyRulesReq"}}}},"responses":{"200":{"description":"The updated policy with the referenced rules removed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Policy"}}}},"400":{"$ref":"#/components/responses/400BadRequest"},"401":{"$ref":"#/components/responses/401Unauthorized"},"403":{"$ref":"#/components/responses/403Forbidden"},"404":{"$ref":"#/components/responses/404NotFound"},"503":{"$ref":"#/components/responses/503ServiceUnavailable"}}}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://run-ai-docs.nvidia.com/api/2.26/policies/policy.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
