# NodePools

Node pools assist in managing heterogeneous resources effectively. A node pool is a set of nodes grouped into a bucket of resources using a predefined (for example, GPU-Type) or administrator-defined label (for example, key & value). For more information, see [Node Pools](https://run-ai-docs.nvidia.com/self-hosted/2.23/platform-management/aiinitiatives/resources/node-pools/#introduction).

## Get the node pool metrics data.

> Retrieve the node pool metrics data by Universally Unique Identifier (UUID).

```json
{"openapi":"3.0.3","info":{"title":"NVIDIA Run:ai","version":"2.23"},"tags":[{"name":"NodePools","description":"Node pools assist in managing heterogeneous resources effectively. \nA node pool is a set of nodes grouped into a bucket of resources using a predefined (for example, GPU-Type) or \nadministrator-defined label (for example, key & value). \nFor more information, see [Node Pools](https://run-ai-docs.nvidia.com/self-hosted/2.23/platform-management/aiinitiatives/resources/node-pools/#introduction).\n"}],"servers":[{"url":"https://app.run.ai"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer authentication"}},"parameters":{"ClusterUuid":{"name":"clusterUuid","in":"path","required":true,"description":"The Universally Unique Identifier (UUID) of the cluster.","schema":{"type":"string","format":"uuid","minLength":1}},"NodepoolPath":{"in":"path","name":"nodepoolName","required":true,"description":"The unique nodepool name.","schema":{"type":"string"}},"StartRequired":{"name":"start","in":"query","description":"Start date of time range to fetch data in ISO 8601 timestamp format.","required":true,"schema":{"type":"string","format":"date-time"}},"EndRequired":{"name":"end","in":"query","description":"End date of time range to fetch data in ISO 8601 timestamp format.","required":true,"schema":{"type":"string","format":"date-time"}},"NumberOfSamples":{"name":"numberOfSamples","in":"query","description":"The number of samples to take in the specified time range.","required":false,"schema":{"type":"integer","maximum":1000,"minimum":0,"default":20}},"MetricsType":{"name":"metricType","in":"query","required":true,"description":"specifies what data to request","explode":false,"schema":{"type":"array","items":{"$ref":"#/components/schemas/MetricsType"}}}},"schemas":{"MetricsType":{"type":"string","description":"specifies what data to request","enum":["TOTAL_GPU_NODES","GPU_UTILIZATION","GPU_UTILIZATION_DISTRIBUTION","GPU_MEMORY_UTILIZATION","CPU_UTILIZATION","CPU_MEMORY_UTILIZATION","TOTAL_GPU","GPU_QUOTA","ALLOCATED_GPU","UNALLOCATED_GPU","AVG_WORKLOAD_WAIT_TIME","WORKLOADS_COUNT"]},"MetricsResponse":{"type":"object","required":["measurements"],"properties":{"measurements":{"type":"array","items":{"$ref":"#/components/schemas/MeasurementResponse"}}}},"MeasurementResponse":{"type":"object","required":["type","values"],"properties":{"type":{"type":"string","description":"specifies what data returned"},"labels":{"type":"object","nullable":true,"description":"labels of the metric measurement","additionalProperties":{"type":"string"}},"values":{"type":"array","nullable":true,"items":{"type":"object","required":["value","timestamp"],"properties":{"value":{"type":"string"},"timestamp":{"type":"string","format":"date-time","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"}}}},"500InternalServerError":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503ServiceUnavailable":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/api/v1/clusters/{clusterUuid}/nodepools/{nodepoolName}/metrics":{"get":{"summary":"Get the node pool metrics data.","description":"Retrieve the node pool metrics data by Universally Unique Identifier (UUID).","operationId":"get_nodepool_metrics","tags":["NodePools"],"parameters":[{"$ref":"#/components/parameters/ClusterUuid"},{"$ref":"#/components/parameters/NodepoolPath"},{"$ref":"#/components/parameters/StartRequired"},{"$ref":"#/components/parameters/EndRequired"},{"$ref":"#/components/parameters/NumberOfSamples"},{"$ref":"#/components/parameters/MetricsType"}],"responses":{"200":{"description":"Executed successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetricsResponse"}},"text/csv":{}}},"207":{"description":"Partial success.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetricsResponse"}}}},"400":{"$ref":"#/components/responses/400BadRequest"},"401":{"$ref":"#/components/responses/401Unauthorized"},"403":{"$ref":"#/components/responses/403Forbidden"},"404":{"$ref":"#/components/responses/404NotFound"},"500":{"$ref":"#/components/responses/500InternalServerError"},"503":{"$ref":"#/components/responses/503ServiceUnavailable"}}}}}}
```

## Get nodepools

> Get nodepools

```json
{"openapi":"3.0.3","info":{"title":"NVIDIA Run:ai","version":"2.23"},"tags":[{"name":"NodePools","description":"Node pools assist in managing heterogeneous resources effectively. \nA node pool is a set of nodes grouped into a bucket of resources using a predefined (for example, GPU-Type) or \nadministrator-defined label (for example, key & value). \nFor more information, see [Node Pools](https://run-ai-docs.nvidia.com/self-hosted/2.23/platform-management/aiinitiatives/resources/node-pools/#introduction).\n"}],"servers":[{"url":"https://app.run.ai"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer authentication"}},"parameters":{"NodepoolsFilterBy":{"name":"filterBy","in":"query","required":false,"description":"Filter results by a parameter. Use the format field-name operator value. Operators are == Equals, != Not equals, <= Less than or equal, >= Greater than or equal, =@ contains, !@ Does not contains, =^ Starts with and =$ Ends with. Dates are in ISO 8601 timestamp format and available for operators ==, !=, <= and >=.","schema":{"type":"array","items":{"type":"string","pattern":"^(name|clusterId|phase|createdAt|updatedAt|gpuNetworkAccelerationDetection|networkTopologyName|gpuNetworkAccelerationDetected|gpuNetworkAccelerationLabelKey|swapEnabled|nodeLevelSchedulerEnabled)(==|!=|<=|>=|=@|!@|=\\^|=\\$).+$"}},"explode":false},"NodepoolsSortBy":{"name":"sortBy","in":"query","required":false,"description":"Sort results by a parameters.","schema":{"$ref":"#/components/schemas/NodepoolSortFilterFields"}},"SortOrder":{"name":"sortOrder","in":"query","required":false,"description":"Sort results in descending or ascending order.","schema":{"type":"string","enum":["asc","desc"],"default":"asc"}},"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}}},"schemas":{"NodepoolSortFilterFields":{"type":"string","enum":["name","phase","clusterId","createdAt","updatedAt","networkTopologyName","gpuNetworkAccelerationDetection","gpuNetworkAccelerationDetected","gpuNetworkAccelerationLabelKey","swapEnabled","nodeLevelSchedulerEnabled"]},"Nodepool":{"allOf":[{"$ref":"#/components/schemas/NodepoolCreateResponseFields"},{"$ref":"#/components/schemas/NodepoolSyncFields"},{"$ref":"#/components/schemas/NodepoolCalculatedFields"}]},"NodepoolCreateResponseFields":{"type":"object","required":["name","labelKey","labelValue","clusterId"],"properties":{"name":{"type":"string","minLength":1},"labelKey":{"type":"string","description":"Label key for associated nodes to the Node Pool (with value as in labelValue)","minLength":1},"labelValue":{"type":"string","description":"Label value for associated nodes to the Node Pool (with key as in labelKey)","minLength":1},"clusterId":{"type":"string","format":"uuid"},"overProvisioningRatio":{"type":"integer","minimum":1,"maximum":5,"default":1,"nullable":true,"deprecated":true},"placementStrategy":{"deprecated":true,"description":"scheduling strategy per resource","properties":{"cpu":{"$ref":"#/components/schemas/PlacementStrategy"},"gpu":{"$ref":"#/components/schemas/PlacementStrategy"}}},"gpuNetworkAccelerationLabelKey":{"description":"Label key by which to determine GPUNetworkAccelerationDetection nodes","type":"string"},"gpuNetworkAccelerationDetection":{"$ref":"#/components/schemas/NodepoolGPUNetworkAccelerationDetection"},"networkTopologyName":{"$ref":"#/components/schemas/NetworkTopologyNameOptional"},"networkTopologyId":{"$ref":"#/components/schemas/NetworkTopologyIdOptional"},"gpuResourceOptimization":{"$ref":"#/components/schemas/GPUResourceOptimization"},"schedulingConfiguration":{"$ref":"#/components/schemas/SchedulingConfiguration"}}},"PlacementStrategy":{"type":"string","enum":["spread","binpack"],"nullable":true},"NodepoolGPUNetworkAccelerationDetection":{"type":"string","enum":["Use","DontUse","Auto"],"nullable":true,"default":"Auto","description":"GPUNetworkAccelerationDetection is a strategy to use for GPU Network Acceleration detection"},"NetworkTopologyNameOptional":{"type":"string","nullable":true,"description":"Name of the network topology","maxLength":63,"minLength":1,"pattern":"^[a-z]([a-z0-9-]*[a-z0-9])?$"},"NetworkTopologyIdOptional":{"type":"string","format":"uuid","nullable":true,"description":"The unique identifier for the network topology"},"GPUResourceOptimization":{"type":"object","nullable":true,"properties":{"swapEnabled":{"type":"boolean","description":"Indicates if swap is enabled on the node pool","default":false,"nullable":true},"cpuSwapMemorySize":{"type":"string","description":"Size of the swap cpu memory. Only allowed when swapEnabled is true","default":"100G","nullable":true,"pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"},"reservedGpuMemoryForSwapOperations":{"type":"string","description":"Reserved GPU memory for swap operations. Only allowed when swapEnabled is true","default":"2G","nullable":true,"pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"},"nodeLevelSchedulerEnabled":{"type":"boolean","description":"Indicates if node level scheduler is enabled on the node pool. Replaces the deprecated 'overProvisioningRatio' field","default":false,"nullable":true}}},"SchedulingConfiguration":{"type":"object","nullable":true,"properties":{"placementStrategy":{"description":"Scheduling strategy per resource","properties":{"cpu":{"$ref":"#/components/schemas/PlacementStrategy"},"gpu":{"$ref":"#/components/schemas/PlacementStrategy"}}},"minGuaranteedRuntime":{"description":"Minimum duration (e.g., 5d8h40m) that a preemptible workload is guaranteed to run once scheduled and bound to a node. During this period, it is considered non-preemptible even if a higher-priority workload becomes eligible. Defaults to 0 (immediate preemption allowed).","type":"string","nullable":true,"pattern":"^(0|[+]?((\\d+(\\.\\d+)?)(ns|us|µs|μs|ms|s|m|h|d|w))+$)"}}},"NodepoolSyncFields":{"type":"object","required":["name"],"properties":{"name":{"type":"string"},"phase":{"$ref":"#/components/schemas/NodepoolPhase"},"phaseMessage":{"type":"string","description":"Message for status of Node Pool"},"status":{"allOf":[{"$ref":"#/components/schemas/NodepoolSyncUpdateFields"},{"type":"object","properties":{"conditions":{"type":"array","items":{"$ref":"#/components/schemas/NodepoolConditionDetails"}},"gpuNetworkAccelerationDetected":{"description":"Signals to all relevant parties about GPUNetworkAcceleration being detected in some nodepool's nodes","type":"boolean"},"nodes":{"type":"array","items":{"type":"string"}}}}]}}},"NodepoolPhase":{"type":"string","enum":["Creating","Updating","Deleting","Empty","Unschedulable","Ready","Deleted"],"description":"Phase of Node Pool"},"NodepoolSyncUpdateFields":{"type":"object","properties":{"labelKey":{"type":"string","description":"Label key for associated nodes to the Node Pool (with value as in labelValue)","minLength":1,"nullable":true},"labelValue":{"type":"string","description":"Label value for associated nodes to the Node Pool (with key as in labelKey)","minLength":1,"nullable":true},"overProvisioningRatio":{"type":"integer","minimum":1,"maximum":5,"default":1,"nullable":true,"deprecated":true},"placementStrategy":{"description":"scheduling strategy per resource","deprecated":true,"properties":{"cpu":{"$ref":"#/components/schemas/PlacementStrategy"},"gpu":{"$ref":"#/components/schemas/PlacementStrategy"}}},"gpuNetworkAccelerationLabelKey":{"description":"Label key by which to determine GPUNetworkAccelerationDetection nodes","type":"string"},"gpuNetworkAccelerationDetection":{"$ref":"#/components/schemas/NodepoolGPUNetworkAccelerationDetection"},"gpuResourceOptimization":{"$ref":"#/components/schemas/GPUResourceOptimization"},"schedulingConfiguration":{"$ref":"#/components/schemas/SchedulingConfiguration"}}},"NodepoolConditionDetails":{"type":"object","required":["type","reason"],"properties":{"type":{"type":"string","description":"Type of Nodepool condition."},"reason":{"type":"string","description":"(brief) reason for the condition's last transition."},"message":{"type":"string","description":"Human readable message indicating details about last transition."},"status":{"type":"string","description":"The status of the condition, can be True or False","enum":["True","False"]},"nodes":{"type":"array","description":"Names of the nodes related to the nodepool condition","items":{"type":"string"}}}},"NodepoolCalculatedFields":{"type":"object","required":["id","tenantId","clusterName","createdBy","createdAt","updatedBy","updatedAt","isDefault"],"properties":{"id":{"type":"string","description":"The NodePool id","readOnly":true},"tenantId":{"description":"The id of the tenant.","type":"integer","format":"int32"},"clusterName":{"type":"string"},"createdBy":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedBy":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"deletedBy":{"type":"string"},"deletedAt":{"type":"string","nullable":true,"format":"date-time"},"isDefault":{"type":"boolean","description":"Is the Node Pool is the cluster default"}}},"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/node-pools":{"get":{"summary":"Get nodepools","operationId":"get_nodepools","description":"Get nodepools","tags":["NodePools"],"parameters":[{"$ref":"#/components/parameters/NodepoolsFilterBy"},{"$ref":"#/components/parameters/NodepoolsSortBy"},{"$ref":"#/components/parameters/SortOrder"},{"$ref":"#/components/parameters/Offset"},{"$ref":"#/components/parameters/Limit"}],"responses":{"200":{"description":"ok","content":{"application/json":{"schema":{"type":"object","properties":{"nodepools":{"type":"array","items":{"$ref":"#/components/schemas/Nodepool"}}}}}}},"400":{"$ref":"#/components/responses/400BadRequest"},"401":{"$ref":"#/components/responses/401Unauthorized"},"403":{"$ref":"#/components/responses/403Forbidden"},"503":{"$ref":"#/components/responses/503ServiceUnavailable"}}}}}}
```

## Create nodepool

> Create nodepool

```json
{"openapi":"3.0.3","info":{"title":"NVIDIA Run:ai","version":"2.23"},"tags":[{"name":"NodePools","description":"Node pools assist in managing heterogeneous resources effectively. \nA node pool is a set of nodes grouped into a bucket of resources using a predefined (for example, GPU-Type) or \nadministrator-defined label (for example, key & value). \nFor more information, see [Node Pools](https://run-ai-docs.nvidia.com/self-hosted/2.23/platform-management/aiinitiatives/resources/node-pools/#introduction).\n"}],"servers":[{"url":"https://app.run.ai"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer authentication"}},"schemas":{"NodepoolCreateFields":{"type":"object","required":["name","labelKey","labelValue","clusterId"],"properties":{"name":{"type":"string","minLength":1},"labelKey":{"type":"string","description":"Label key for associated nodes to the Node Pool (with value as in labelValue)","minLength":1},"labelValue":{"type":"string","description":"Label value for associated nodes to the Node Pool (with key as in labelKey)","minLength":1},"clusterId":{"type":"string","format":"uuid"},"overProvisioningRatio":{"type":"integer","minimum":1,"maximum":5,"default":1,"nullable":true,"deprecated":true},"placementStrategy":{"deprecated":true,"description":"scheduling strategy per resource","properties":{"cpu":{"$ref":"#/components/schemas/PlacementStrategy"},"gpu":{"$ref":"#/components/schemas/PlacementStrategy"}}},"gpuNetworkAccelerationLabelKey":{"description":"Label key by which to determine GPUNetworkAccelerationDetection nodes","type":"string","nullable":true},"gpuNetworkAccelerationDetection":{"$ref":"#/components/schemas/NodepoolGPUNetworkAccelerationDetection"},"gpuResourceOptimization":{"$ref":"#/components/schemas/GPUResourceOptimization"},"schedulingConfiguration":{"$ref":"#/components/schemas/SchedulingConfiguration"},"networkTopologyId":{"$ref":"#/components/schemas/NetworkTopologyIdOptional"}}},"PlacementStrategy":{"type":"string","enum":["spread","binpack"],"nullable":true},"NodepoolGPUNetworkAccelerationDetection":{"type":"string","enum":["Use","DontUse","Auto"],"nullable":true,"default":"Auto","description":"GPUNetworkAccelerationDetection is a strategy to use for GPU Network Acceleration detection"},"GPUResourceOptimization":{"type":"object","nullable":true,"properties":{"swapEnabled":{"type":"boolean","description":"Indicates if swap is enabled on the node pool","default":false,"nullable":true},"cpuSwapMemorySize":{"type":"string","description":"Size of the swap cpu memory. Only allowed when swapEnabled is true","default":"100G","nullable":true,"pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"},"reservedGpuMemoryForSwapOperations":{"type":"string","description":"Reserved GPU memory for swap operations. Only allowed when swapEnabled is true","default":"2G","nullable":true,"pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"},"nodeLevelSchedulerEnabled":{"type":"boolean","description":"Indicates if node level scheduler is enabled on the node pool. Replaces the deprecated 'overProvisioningRatio' field","default":false,"nullable":true}}},"SchedulingConfiguration":{"type":"object","nullable":true,"properties":{"placementStrategy":{"description":"Scheduling strategy per resource","properties":{"cpu":{"$ref":"#/components/schemas/PlacementStrategy"},"gpu":{"$ref":"#/components/schemas/PlacementStrategy"}}},"minGuaranteedRuntime":{"description":"Minimum duration (e.g., 5d8h40m) that a preemptible workload is guaranteed to run once scheduled and bound to a node. During this period, it is considered non-preemptible even if a higher-priority workload becomes eligible. Defaults to 0 (immediate preemption allowed).","type":"string","nullable":true,"pattern":"^(0|[+]?((\\d+(\\.\\d+)?)(ns|us|µs|μs|ms|s|m|h|d|w))+$)"}}},"NetworkTopologyIdOptional":{"type":"string","format":"uuid","nullable":true,"description":"The unique identifier for the network topology"},"Nodepool":{"allOf":[{"$ref":"#/components/schemas/NodepoolCreateResponseFields"},{"$ref":"#/components/schemas/NodepoolSyncFields"},{"$ref":"#/components/schemas/NodepoolCalculatedFields"}]},"NodepoolCreateResponseFields":{"type":"object","required":["name","labelKey","labelValue","clusterId"],"properties":{"name":{"type":"string","minLength":1},"labelKey":{"type":"string","description":"Label key for associated nodes to the Node Pool (with value as in labelValue)","minLength":1},"labelValue":{"type":"string","description":"Label value for associated nodes to the Node Pool (with key as in labelKey)","minLength":1},"clusterId":{"type":"string","format":"uuid"},"overProvisioningRatio":{"type":"integer","minimum":1,"maximum":5,"default":1,"nullable":true,"deprecated":true},"placementStrategy":{"deprecated":true,"description":"scheduling strategy per resource","properties":{"cpu":{"$ref":"#/components/schemas/PlacementStrategy"},"gpu":{"$ref":"#/components/schemas/PlacementStrategy"}}},"gpuNetworkAccelerationLabelKey":{"description":"Label key by which to determine GPUNetworkAccelerationDetection nodes","type":"string"},"gpuNetworkAccelerationDetection":{"$ref":"#/components/schemas/NodepoolGPUNetworkAccelerationDetection"},"networkTopologyName":{"$ref":"#/components/schemas/NetworkTopologyNameOptional"},"networkTopologyId":{"$ref":"#/components/schemas/NetworkTopologyIdOptional"},"gpuResourceOptimization":{"$ref":"#/components/schemas/GPUResourceOptimization"},"schedulingConfiguration":{"$ref":"#/components/schemas/SchedulingConfiguration"}}},"NetworkTopologyNameOptional":{"type":"string","nullable":true,"description":"Name of the network topology","maxLength":63,"minLength":1,"pattern":"^[a-z]([a-z0-9-]*[a-z0-9])?$"},"NodepoolSyncFields":{"type":"object","required":["name"],"properties":{"name":{"type":"string"},"phase":{"$ref":"#/components/schemas/NodepoolPhase"},"phaseMessage":{"type":"string","description":"Message for status of Node Pool"},"status":{"allOf":[{"$ref":"#/components/schemas/NodepoolSyncUpdateFields"},{"type":"object","properties":{"conditions":{"type":"array","items":{"$ref":"#/components/schemas/NodepoolConditionDetails"}},"gpuNetworkAccelerationDetected":{"description":"Signals to all relevant parties about GPUNetworkAcceleration being detected in some nodepool's nodes","type":"boolean"},"nodes":{"type":"array","items":{"type":"string"}}}}]}}},"NodepoolPhase":{"type":"string","enum":["Creating","Updating","Deleting","Empty","Unschedulable","Ready","Deleted"],"description":"Phase of Node Pool"},"NodepoolSyncUpdateFields":{"type":"object","properties":{"labelKey":{"type":"string","description":"Label key for associated nodes to the Node Pool (with value as in labelValue)","minLength":1,"nullable":true},"labelValue":{"type":"string","description":"Label value for associated nodes to the Node Pool (with key as in labelKey)","minLength":1,"nullable":true},"overProvisioningRatio":{"type":"integer","minimum":1,"maximum":5,"default":1,"nullable":true,"deprecated":true},"placementStrategy":{"description":"scheduling strategy per resource","deprecated":true,"properties":{"cpu":{"$ref":"#/components/schemas/PlacementStrategy"},"gpu":{"$ref":"#/components/schemas/PlacementStrategy"}}},"gpuNetworkAccelerationLabelKey":{"description":"Label key by which to determine GPUNetworkAccelerationDetection nodes","type":"string"},"gpuNetworkAccelerationDetection":{"$ref":"#/components/schemas/NodepoolGPUNetworkAccelerationDetection"},"gpuResourceOptimization":{"$ref":"#/components/schemas/GPUResourceOptimization"},"schedulingConfiguration":{"$ref":"#/components/schemas/SchedulingConfiguration"}}},"NodepoolConditionDetails":{"type":"object","required":["type","reason"],"properties":{"type":{"type":"string","description":"Type of Nodepool condition."},"reason":{"type":"string","description":"(brief) reason for the condition's last transition."},"message":{"type":"string","description":"Human readable message indicating details about last transition."},"status":{"type":"string","description":"The status of the condition, can be True or False","enum":["True","False"]},"nodes":{"type":"array","description":"Names of the nodes related to the nodepool condition","items":{"type":"string"}}}},"NodepoolCalculatedFields":{"type":"object","required":["id","tenantId","clusterName","createdBy","createdAt","updatedBy","updatedAt","isDefault"],"properties":{"id":{"type":"string","description":"The NodePool id","readOnly":true},"tenantId":{"description":"The id of the tenant.","type":"integer","format":"int32"},"clusterName":{"type":"string"},"createdBy":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedBy":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"deletedBy":{"type":"string"},"deletedAt":{"type":"string","nullable":true,"format":"date-time"},"isDefault":{"type":"boolean","description":"Is the Node Pool is the cluster default"}}},"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/node-pools":{"post":{"summary":"Create nodepool","operationId":"create_nodepool","description":"Create nodepool","tags":["NodePools"],"requestBody":{"description":"Nodepool to create.","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NodepoolCreateFields"}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Nodepool"}}}},"400":{"$ref":"#/components/responses/400BadRequest"},"401":{"$ref":"#/components/responses/401Unauthorized"},"403":{"$ref":"#/components/responses/403Forbidden"},"503":{"$ref":"#/components/responses/503ServiceUnavailable"}}}}}}
```

## Count nodepools

> Count nodepools

```json
{"openapi":"3.0.3","info":{"title":"NVIDIA Run:ai","version":"2.23"},"tags":[{"name":"NodePools","description":"Node pools assist in managing heterogeneous resources effectively. \nA node pool is a set of nodes grouped into a bucket of resources using a predefined (for example, GPU-Type) or \nadministrator-defined label (for example, key & value). \nFor more information, see [Node Pools](https://run-ai-docs.nvidia.com/self-hosted/2.23/platform-management/aiinitiatives/resources/node-pools/#introduction).\n"}],"servers":[{"url":"https://app.run.ai"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer authentication"}},"parameters":{"NodepoolsFilterBy":{"name":"filterBy","in":"query","required":false,"description":"Filter results by a parameter. Use the format field-name operator value. Operators are == Equals, != Not equals, <= Less than or equal, >= Greater than or equal, =@ contains, !@ Does not contains, =^ Starts with and =$ Ends with. Dates are in ISO 8601 timestamp format and available for operators ==, !=, <= and >=.","schema":{"type":"array","items":{"type":"string","pattern":"^(name|clusterId|phase|createdAt|updatedAt|gpuNetworkAccelerationDetection|networkTopologyName|gpuNetworkAccelerationDetected|gpuNetworkAccelerationLabelKey|swapEnabled|nodeLevelSchedulerEnabled)(==|!=|<=|>=|=@|!@|=\\^|=\\$).+$"}},"explode":false}},"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"}}}}},"schemas":{"Error":{"required":["code","message"],"properties":{"code":{"type":"integer","minimum":100,"maximum":599},"message":{"type":"string"},"details":{"type":"string"}}}}},"paths":{"/api/v1/node-pools/count":{"get":{"summary":"Count nodepools","operationId":"count_nodepools","description":"Count nodepools","tags":["NodePools"],"parameters":[{"$ref":"#/components/parameters/NodepoolsFilterBy"}],"responses":{"200":{"description":"ok","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","format":"int64"}},"required":["count"]}}}},"400":{"$ref":"#/components/responses/400BadRequest"},"401":{"$ref":"#/components/responses/401Unauthorized"},"403":{"$ref":"#/components/responses/403Forbidden"},"503":{"$ref":"#/components/responses/503ServiceUnavailable"}}}}}}
```

## Get nodepool

> Get nodepool

```json
{"openapi":"3.0.3","info":{"title":"NVIDIA Run:ai","version":"2.23"},"tags":[{"name":"NodePools","description":"Node pools assist in managing heterogeneous resources effectively. \nA node pool is a set of nodes grouped into a bucket of resources using a predefined (for example, GPU-Type) or \nadministrator-defined label (for example, key & value). \nFor more information, see [Node Pools](https://run-ai-docs.nvidia.com/self-hosted/2.23/platform-management/aiinitiatives/resources/node-pools/#introduction).\n"}],"servers":[{"url":"https://app.run.ai"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer authentication"}},"parameters":{"NodepoolId":{"name":"nodepoolId","in":"path","required":true,"description":"The unique id identifying the Node Pool.","schema":{"type":"string"}}},"schemas":{"Nodepool":{"allOf":[{"$ref":"#/components/schemas/NodepoolCreateResponseFields"},{"$ref":"#/components/schemas/NodepoolSyncFields"},{"$ref":"#/components/schemas/NodepoolCalculatedFields"}]},"NodepoolCreateResponseFields":{"type":"object","required":["name","labelKey","labelValue","clusterId"],"properties":{"name":{"type":"string","minLength":1},"labelKey":{"type":"string","description":"Label key for associated nodes to the Node Pool (with value as in labelValue)","minLength":1},"labelValue":{"type":"string","description":"Label value for associated nodes to the Node Pool (with key as in labelKey)","minLength":1},"clusterId":{"type":"string","format":"uuid"},"overProvisioningRatio":{"type":"integer","minimum":1,"maximum":5,"default":1,"nullable":true,"deprecated":true},"placementStrategy":{"deprecated":true,"description":"scheduling strategy per resource","properties":{"cpu":{"$ref":"#/components/schemas/PlacementStrategy"},"gpu":{"$ref":"#/components/schemas/PlacementStrategy"}}},"gpuNetworkAccelerationLabelKey":{"description":"Label key by which to determine GPUNetworkAccelerationDetection nodes","type":"string"},"gpuNetworkAccelerationDetection":{"$ref":"#/components/schemas/NodepoolGPUNetworkAccelerationDetection"},"networkTopologyName":{"$ref":"#/components/schemas/NetworkTopologyNameOptional"},"networkTopologyId":{"$ref":"#/components/schemas/NetworkTopologyIdOptional"},"gpuResourceOptimization":{"$ref":"#/components/schemas/GPUResourceOptimization"},"schedulingConfiguration":{"$ref":"#/components/schemas/SchedulingConfiguration"}}},"PlacementStrategy":{"type":"string","enum":["spread","binpack"],"nullable":true},"NodepoolGPUNetworkAccelerationDetection":{"type":"string","enum":["Use","DontUse","Auto"],"nullable":true,"default":"Auto","description":"GPUNetworkAccelerationDetection is a strategy to use for GPU Network Acceleration detection"},"NetworkTopologyNameOptional":{"type":"string","nullable":true,"description":"Name of the network topology","maxLength":63,"minLength":1,"pattern":"^[a-z]([a-z0-9-]*[a-z0-9])?$"},"NetworkTopologyIdOptional":{"type":"string","format":"uuid","nullable":true,"description":"The unique identifier for the network topology"},"GPUResourceOptimization":{"type":"object","nullable":true,"properties":{"swapEnabled":{"type":"boolean","description":"Indicates if swap is enabled on the node pool","default":false,"nullable":true},"cpuSwapMemorySize":{"type":"string","description":"Size of the swap cpu memory. Only allowed when swapEnabled is true","default":"100G","nullable":true,"pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"},"reservedGpuMemoryForSwapOperations":{"type":"string","description":"Reserved GPU memory for swap operations. Only allowed when swapEnabled is true","default":"2G","nullable":true,"pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"},"nodeLevelSchedulerEnabled":{"type":"boolean","description":"Indicates if node level scheduler is enabled on the node pool. Replaces the deprecated 'overProvisioningRatio' field","default":false,"nullable":true}}},"SchedulingConfiguration":{"type":"object","nullable":true,"properties":{"placementStrategy":{"description":"Scheduling strategy per resource","properties":{"cpu":{"$ref":"#/components/schemas/PlacementStrategy"},"gpu":{"$ref":"#/components/schemas/PlacementStrategy"}}},"minGuaranteedRuntime":{"description":"Minimum duration (e.g., 5d8h40m) that a preemptible workload is guaranteed to run once scheduled and bound to a node. During this period, it is considered non-preemptible even if a higher-priority workload becomes eligible. Defaults to 0 (immediate preemption allowed).","type":"string","nullable":true,"pattern":"^(0|[+]?((\\d+(\\.\\d+)?)(ns|us|µs|μs|ms|s|m|h|d|w))+$)"}}},"NodepoolSyncFields":{"type":"object","required":["name"],"properties":{"name":{"type":"string"},"phase":{"$ref":"#/components/schemas/NodepoolPhase"},"phaseMessage":{"type":"string","description":"Message for status of Node Pool"},"status":{"allOf":[{"$ref":"#/components/schemas/NodepoolSyncUpdateFields"},{"type":"object","properties":{"conditions":{"type":"array","items":{"$ref":"#/components/schemas/NodepoolConditionDetails"}},"gpuNetworkAccelerationDetected":{"description":"Signals to all relevant parties about GPUNetworkAcceleration being detected in some nodepool's nodes","type":"boolean"},"nodes":{"type":"array","items":{"type":"string"}}}}]}}},"NodepoolPhase":{"type":"string","enum":["Creating","Updating","Deleting","Empty","Unschedulable","Ready","Deleted"],"description":"Phase of Node Pool"},"NodepoolSyncUpdateFields":{"type":"object","properties":{"labelKey":{"type":"string","description":"Label key for associated nodes to the Node Pool (with value as in labelValue)","minLength":1,"nullable":true},"labelValue":{"type":"string","description":"Label value for associated nodes to the Node Pool (with key as in labelKey)","minLength":1,"nullable":true},"overProvisioningRatio":{"type":"integer","minimum":1,"maximum":5,"default":1,"nullable":true,"deprecated":true},"placementStrategy":{"description":"scheduling strategy per resource","deprecated":true,"properties":{"cpu":{"$ref":"#/components/schemas/PlacementStrategy"},"gpu":{"$ref":"#/components/schemas/PlacementStrategy"}}},"gpuNetworkAccelerationLabelKey":{"description":"Label key by which to determine GPUNetworkAccelerationDetection nodes","type":"string"},"gpuNetworkAccelerationDetection":{"$ref":"#/components/schemas/NodepoolGPUNetworkAccelerationDetection"},"gpuResourceOptimization":{"$ref":"#/components/schemas/GPUResourceOptimization"},"schedulingConfiguration":{"$ref":"#/components/schemas/SchedulingConfiguration"}}},"NodepoolConditionDetails":{"type":"object","required":["type","reason"],"properties":{"type":{"type":"string","description":"Type of Nodepool condition."},"reason":{"type":"string","description":"(brief) reason for the condition's last transition."},"message":{"type":"string","description":"Human readable message indicating details about last transition."},"status":{"type":"string","description":"The status of the condition, can be True or False","enum":["True","False"]},"nodes":{"type":"array","description":"Names of the nodes related to the nodepool condition","items":{"type":"string"}}}},"NodepoolCalculatedFields":{"type":"object","required":["id","tenantId","clusterName","createdBy","createdAt","updatedBy","updatedAt","isDefault"],"properties":{"id":{"type":"string","description":"The NodePool id","readOnly":true},"tenantId":{"description":"The id of the tenant.","type":"integer","format":"int32"},"clusterName":{"type":"string"},"createdBy":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedBy":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"deletedBy":{"type":"string"},"deletedAt":{"type":"string","nullable":true,"format":"date-time"},"isDefault":{"type":"boolean","description":"Is the Node Pool is the cluster default"}}},"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"}}}},"500InternalServerError":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503ServiceUnavailable":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/api/v1/node-pools/{nodepoolId}":{"get":{"summary":"Get nodepool","operationId":"get_nodepool","description":"Get nodepool","tags":["NodePools"],"parameters":[{"$ref":"#/components/parameters/NodepoolId"}],"responses":{"200":{"description":"Requested nodepool","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Nodepool"}}}},"400":{"$ref":"#/components/responses/400BadRequest"},"401":{"$ref":"#/components/responses/401Unauthorized"},"403":{"$ref":"#/components/responses/403Forbidden"},"404":{"$ref":"#/components/responses/404NotFound"},"500":{"$ref":"#/components/responses/500InternalServerError"},"503":{"$ref":"#/components/responses/503ServiceUnavailable"}}}}}}
```

## Update nodepool

> Update nodepool

```json
{"openapi":"3.0.3","info":{"title":"NVIDIA Run:ai","version":"2.23"},"tags":[{"name":"NodePools","description":"Node pools assist in managing heterogeneous resources effectively. \nA node pool is a set of nodes grouped into a bucket of resources using a predefined (for example, GPU-Type) or \nadministrator-defined label (for example, key & value). \nFor more information, see [Node Pools](https://run-ai-docs.nvidia.com/self-hosted/2.23/platform-management/aiinitiatives/resources/node-pools/#introduction).\n"}],"servers":[{"url":"https://app.run.ai"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer authentication"}},"parameters":{"NodepoolId":{"name":"nodepoolId","in":"path","required":true,"description":"The unique id identifying the Node Pool.","schema":{"type":"string"}}},"schemas":{"NodepoolUpdateFields":{"type":"object","properties":{"labelKey":{"type":"string","description":"Label key for associated nodes to the Node Pool (with value as in labelValue)","minLength":1,"nullable":true},"labelValue":{"type":"string","description":"Label value for associated nodes to the Node Pool (with key as in labelKey)","minLength":1,"nullable":true},"overProvisioningRatio":{"type":"integer","minimum":1,"maximum":5,"default":1,"nullable":true,"deprecated":true},"placementStrategy":{"deprecated":true,"description":"scheduling strategy per resource","properties":{"cpu":{"$ref":"#/components/schemas/PlacementStrategy"},"gpu":{"$ref":"#/components/schemas/PlacementStrategy"}}},"gpuNetworkAccelerationLabelKey":{"description":"Label key by which to determine GPUNetworkAccelerationDetection nodes","type":"string","nullable":true},"gpuNetworkAccelerationDetection":{"$ref":"#/components/schemas/NodepoolGPUNetworkAccelerationDetection"},"gpuResourceOptimization":{"$ref":"#/components/schemas/GPUResourceOptimization"},"schedulingConfiguration":{"$ref":"#/components/schemas/SchedulingConfiguration"},"networkTopologyId":{"$ref":"#/components/schemas/NetworkTopologyIdOptional"}}},"PlacementStrategy":{"type":"string","enum":["spread","binpack"],"nullable":true},"NodepoolGPUNetworkAccelerationDetection":{"type":"string","enum":["Use","DontUse","Auto"],"nullable":true,"default":"Auto","description":"GPUNetworkAccelerationDetection is a strategy to use for GPU Network Acceleration detection"},"GPUResourceOptimization":{"type":"object","nullable":true,"properties":{"swapEnabled":{"type":"boolean","description":"Indicates if swap is enabled on the node pool","default":false,"nullable":true},"cpuSwapMemorySize":{"type":"string","description":"Size of the swap cpu memory. Only allowed when swapEnabled is true","default":"100G","nullable":true,"pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"},"reservedGpuMemoryForSwapOperations":{"type":"string","description":"Reserved GPU memory for swap operations. Only allowed when swapEnabled is true","default":"2G","nullable":true,"pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"},"nodeLevelSchedulerEnabled":{"type":"boolean","description":"Indicates if node level scheduler is enabled on the node pool. Replaces the deprecated 'overProvisioningRatio' field","default":false,"nullable":true}}},"SchedulingConfiguration":{"type":"object","nullable":true,"properties":{"placementStrategy":{"description":"Scheduling strategy per resource","properties":{"cpu":{"$ref":"#/components/schemas/PlacementStrategy"},"gpu":{"$ref":"#/components/schemas/PlacementStrategy"}}},"minGuaranteedRuntime":{"description":"Minimum duration (e.g., 5d8h40m) that a preemptible workload is guaranteed to run once scheduled and bound to a node. During this period, it is considered non-preemptible even if a higher-priority workload becomes eligible. Defaults to 0 (immediate preemption allowed).","type":"string","nullable":true,"pattern":"^(0|[+]?((\\d+(\\.\\d+)?)(ns|us|µs|μs|ms|s|m|h|d|w))+$)"}}},"NetworkTopologyIdOptional":{"type":"string","format":"uuid","nullable":true,"description":"The unique identifier for the network topology"},"Nodepool":{"allOf":[{"$ref":"#/components/schemas/NodepoolCreateResponseFields"},{"$ref":"#/components/schemas/NodepoolSyncFields"},{"$ref":"#/components/schemas/NodepoolCalculatedFields"}]},"NodepoolCreateResponseFields":{"type":"object","required":["name","labelKey","labelValue","clusterId"],"properties":{"name":{"type":"string","minLength":1},"labelKey":{"type":"string","description":"Label key for associated nodes to the Node Pool (with value as in labelValue)","minLength":1},"labelValue":{"type":"string","description":"Label value for associated nodes to the Node Pool (with key as in labelKey)","minLength":1},"clusterId":{"type":"string","format":"uuid"},"overProvisioningRatio":{"type":"integer","minimum":1,"maximum":5,"default":1,"nullable":true,"deprecated":true},"placementStrategy":{"deprecated":true,"description":"scheduling strategy per resource","properties":{"cpu":{"$ref":"#/components/schemas/PlacementStrategy"},"gpu":{"$ref":"#/components/schemas/PlacementStrategy"}}},"gpuNetworkAccelerationLabelKey":{"description":"Label key by which to determine GPUNetworkAccelerationDetection nodes","type":"string"},"gpuNetworkAccelerationDetection":{"$ref":"#/components/schemas/NodepoolGPUNetworkAccelerationDetection"},"networkTopologyName":{"$ref":"#/components/schemas/NetworkTopologyNameOptional"},"networkTopologyId":{"$ref":"#/components/schemas/NetworkTopologyIdOptional"},"gpuResourceOptimization":{"$ref":"#/components/schemas/GPUResourceOptimization"},"schedulingConfiguration":{"$ref":"#/components/schemas/SchedulingConfiguration"}}},"NetworkTopologyNameOptional":{"type":"string","nullable":true,"description":"Name of the network topology","maxLength":63,"minLength":1,"pattern":"^[a-z]([a-z0-9-]*[a-z0-9])?$"},"NodepoolSyncFields":{"type":"object","required":["name"],"properties":{"name":{"type":"string"},"phase":{"$ref":"#/components/schemas/NodepoolPhase"},"phaseMessage":{"type":"string","description":"Message for status of Node Pool"},"status":{"allOf":[{"$ref":"#/components/schemas/NodepoolSyncUpdateFields"},{"type":"object","properties":{"conditions":{"type":"array","items":{"$ref":"#/components/schemas/NodepoolConditionDetails"}},"gpuNetworkAccelerationDetected":{"description":"Signals to all relevant parties about GPUNetworkAcceleration being detected in some nodepool's nodes","type":"boolean"},"nodes":{"type":"array","items":{"type":"string"}}}}]}}},"NodepoolPhase":{"type":"string","enum":["Creating","Updating","Deleting","Empty","Unschedulable","Ready","Deleted"],"description":"Phase of Node Pool"},"NodepoolSyncUpdateFields":{"type":"object","properties":{"labelKey":{"type":"string","description":"Label key for associated nodes to the Node Pool (with value as in labelValue)","minLength":1,"nullable":true},"labelValue":{"type":"string","description":"Label value for associated nodes to the Node Pool (with key as in labelKey)","minLength":1,"nullable":true},"overProvisioningRatio":{"type":"integer","minimum":1,"maximum":5,"default":1,"nullable":true,"deprecated":true},"placementStrategy":{"description":"scheduling strategy per resource","deprecated":true,"properties":{"cpu":{"$ref":"#/components/schemas/PlacementStrategy"},"gpu":{"$ref":"#/components/schemas/PlacementStrategy"}}},"gpuNetworkAccelerationLabelKey":{"description":"Label key by which to determine GPUNetworkAccelerationDetection nodes","type":"string"},"gpuNetworkAccelerationDetection":{"$ref":"#/components/schemas/NodepoolGPUNetworkAccelerationDetection"},"gpuResourceOptimization":{"$ref":"#/components/schemas/GPUResourceOptimization"},"schedulingConfiguration":{"$ref":"#/components/schemas/SchedulingConfiguration"}}},"NodepoolConditionDetails":{"type":"object","required":["type","reason"],"properties":{"type":{"type":"string","description":"Type of Nodepool condition."},"reason":{"type":"string","description":"(brief) reason for the condition's last transition."},"message":{"type":"string","description":"Human readable message indicating details about last transition."},"status":{"type":"string","description":"The status of the condition, can be True or False","enum":["True","False"]},"nodes":{"type":"array","description":"Names of the nodes related to the nodepool condition","items":{"type":"string"}}}},"NodepoolCalculatedFields":{"type":"object","required":["id","tenantId","clusterName","createdBy","createdAt","updatedBy","updatedAt","isDefault"],"properties":{"id":{"type":"string","description":"The NodePool id","readOnly":true},"tenantId":{"description":"The id of the tenant.","type":"integer","format":"int32"},"clusterName":{"type":"string"},"createdBy":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedBy":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"deletedBy":{"type":"string"},"deletedAt":{"type":"string","nullable":true,"format":"date-time"},"isDefault":{"type":"boolean","description":"Is the Node Pool is the cluster default"}}},"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"}}}},"500InternalServerError":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503ServiceUnavailable":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/api/v1/node-pools/{nodepoolId}":{"put":{"summary":"Update nodepool","operationId":"update_nodepool","description":"Update nodepool","tags":["NodePools"],"parameters":[{"$ref":"#/components/parameters/NodepoolId"}],"requestBody":{"description":"Nodepool to update.","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NodepoolUpdateFields"}}}},"responses":{"200":{"description":"Updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Nodepool"}}}},"400":{"$ref":"#/components/responses/400BadRequest"},"401":{"$ref":"#/components/responses/401Unauthorized"},"403":{"$ref":"#/components/responses/403Forbidden"},"404":{"$ref":"#/components/responses/404NotFound"},"500":{"$ref":"#/components/responses/500InternalServerError"},"503":{"$ref":"#/components/responses/503ServiceUnavailable"}}}}}}
```

## Delete nodepool

> Delete nodepool

```json
{"openapi":"3.0.3","info":{"title":"NVIDIA Run:ai","version":"2.23"},"tags":[{"name":"NodePools","description":"Node pools assist in managing heterogeneous resources effectively. \nA node pool is a set of nodes grouped into a bucket of resources using a predefined (for example, GPU-Type) or \nadministrator-defined label (for example, key & value). \nFor more information, see [Node Pools](https://run-ai-docs.nvidia.com/self-hosted/2.23/platform-management/aiinitiatives/resources/node-pools/#introduction).\n"}],"servers":[{"url":"https://app.run.ai"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer authentication"}},"parameters":{"NodepoolId":{"name":"nodepoolId","in":"path","required":true,"description":"The unique id identifying the Node Pool.","schema":{"type":"string"}}},"responses":{"202Accepted":{"description":"Accepted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpResponse"}}}},"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"}}}},"500InternalServerError":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503ServiceUnavailable":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"schemas":{"HttpResponse":{"required":["code","message"],"properties":{"code":{"type":"integer","minimum":100,"maximum":599},"message":{"type":"string"}}},"Error":{"required":["code","message"],"properties":{"code":{"type":"integer","minimum":100,"maximum":599},"message":{"type":"string"},"details":{"type":"string"}}}}},"paths":{"/api/v1/node-pools/{nodepoolId}":{"delete":{"summary":"Delete nodepool","operationId":"delete_nodepool","description":"Delete nodepool","tags":["NodePools"],"parameters":[{"$ref":"#/components/parameters/NodepoolId"}],"responses":{"202":{"$ref":"#/components/responses/202Accepted"},"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"},"500":{"$ref":"#/components/responses/500InternalServerError"},"503":{"$ref":"#/components/responses/503ServiceUnavailable"}}}}}}
```

## Patch nodepool fields

> Update only specific fields of a nodepool

```json
{"openapi":"3.0.3","info":{"title":"NVIDIA Run:ai","version":"2.23"},"tags":[{"name":"NodePools","description":"Node pools assist in managing heterogeneous resources effectively. \nA node pool is a set of nodes grouped into a bucket of resources using a predefined (for example, GPU-Type) or \nadministrator-defined label (for example, key & value). \nFor more information, see [Node Pools](https://run-ai-docs.nvidia.com/self-hosted/2.23/platform-management/aiinitiatives/resources/node-pools/#introduction).\n"}],"servers":[{"url":"https://app.run.ai"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer authentication"}},"parameters":{"NodepoolId":{"name":"nodepoolId","in":"path","required":true,"description":"The unique id identifying the Node Pool.","schema":{"type":"string"}}},"schemas":{"NodepoolUpdateFields":{"type":"object","properties":{"labelKey":{"type":"string","description":"Label key for associated nodes to the Node Pool (with value as in labelValue)","minLength":1,"nullable":true},"labelValue":{"type":"string","description":"Label value for associated nodes to the Node Pool (with key as in labelKey)","minLength":1,"nullable":true},"overProvisioningRatio":{"type":"integer","minimum":1,"maximum":5,"default":1,"nullable":true,"deprecated":true},"placementStrategy":{"deprecated":true,"description":"scheduling strategy per resource","properties":{"cpu":{"$ref":"#/components/schemas/PlacementStrategy"},"gpu":{"$ref":"#/components/schemas/PlacementStrategy"}}},"gpuNetworkAccelerationLabelKey":{"description":"Label key by which to determine GPUNetworkAccelerationDetection nodes","type":"string","nullable":true},"gpuNetworkAccelerationDetection":{"$ref":"#/components/schemas/NodepoolGPUNetworkAccelerationDetection"},"gpuResourceOptimization":{"$ref":"#/components/schemas/GPUResourceOptimization"},"schedulingConfiguration":{"$ref":"#/components/schemas/SchedulingConfiguration"},"networkTopologyId":{"$ref":"#/components/schemas/NetworkTopologyIdOptional"}}},"PlacementStrategy":{"type":"string","enum":["spread","binpack"],"nullable":true},"NodepoolGPUNetworkAccelerationDetection":{"type":"string","enum":["Use","DontUse","Auto"],"nullable":true,"default":"Auto","description":"GPUNetworkAccelerationDetection is a strategy to use for GPU Network Acceleration detection"},"GPUResourceOptimization":{"type":"object","nullable":true,"properties":{"swapEnabled":{"type":"boolean","description":"Indicates if swap is enabled on the node pool","default":false,"nullable":true},"cpuSwapMemorySize":{"type":"string","description":"Size of the swap cpu memory. Only allowed when swapEnabled is true","default":"100G","nullable":true,"pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"},"reservedGpuMemoryForSwapOperations":{"type":"string","description":"Reserved GPU memory for swap operations. Only allowed when swapEnabled is true","default":"2G","nullable":true,"pattern":"^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$"},"nodeLevelSchedulerEnabled":{"type":"boolean","description":"Indicates if node level scheduler is enabled on the node pool. Replaces the deprecated 'overProvisioningRatio' field","default":false,"nullable":true}}},"SchedulingConfiguration":{"type":"object","nullable":true,"properties":{"placementStrategy":{"description":"Scheduling strategy per resource","properties":{"cpu":{"$ref":"#/components/schemas/PlacementStrategy"},"gpu":{"$ref":"#/components/schemas/PlacementStrategy"}}},"minGuaranteedRuntime":{"description":"Minimum duration (e.g., 5d8h40m) that a preemptible workload is guaranteed to run once scheduled and bound to a node. During this period, it is considered non-preemptible even if a higher-priority workload becomes eligible. Defaults to 0 (immediate preemption allowed).","type":"string","nullable":true,"pattern":"^(0|[+]?((\\d+(\\.\\d+)?)(ns|us|µs|μs|ms|s|m|h|d|w))+$)"}}},"NetworkTopologyIdOptional":{"type":"string","format":"uuid","nullable":true,"description":"The unique identifier for the network topology"},"Nodepool":{"allOf":[{"$ref":"#/components/schemas/NodepoolCreateResponseFields"},{"$ref":"#/components/schemas/NodepoolSyncFields"},{"$ref":"#/components/schemas/NodepoolCalculatedFields"}]},"NodepoolCreateResponseFields":{"type":"object","required":["name","labelKey","labelValue","clusterId"],"properties":{"name":{"type":"string","minLength":1},"labelKey":{"type":"string","description":"Label key for associated nodes to the Node Pool (with value as in labelValue)","minLength":1},"labelValue":{"type":"string","description":"Label value for associated nodes to the Node Pool (with key as in labelKey)","minLength":1},"clusterId":{"type":"string","format":"uuid"},"overProvisioningRatio":{"type":"integer","minimum":1,"maximum":5,"default":1,"nullable":true,"deprecated":true},"placementStrategy":{"deprecated":true,"description":"scheduling strategy per resource","properties":{"cpu":{"$ref":"#/components/schemas/PlacementStrategy"},"gpu":{"$ref":"#/components/schemas/PlacementStrategy"}}},"gpuNetworkAccelerationLabelKey":{"description":"Label key by which to determine GPUNetworkAccelerationDetection nodes","type":"string"},"gpuNetworkAccelerationDetection":{"$ref":"#/components/schemas/NodepoolGPUNetworkAccelerationDetection"},"networkTopologyName":{"$ref":"#/components/schemas/NetworkTopologyNameOptional"},"networkTopologyId":{"$ref":"#/components/schemas/NetworkTopologyIdOptional"},"gpuResourceOptimization":{"$ref":"#/components/schemas/GPUResourceOptimization"},"schedulingConfiguration":{"$ref":"#/components/schemas/SchedulingConfiguration"}}},"NetworkTopologyNameOptional":{"type":"string","nullable":true,"description":"Name of the network topology","maxLength":63,"minLength":1,"pattern":"^[a-z]([a-z0-9-]*[a-z0-9])?$"},"NodepoolSyncFields":{"type":"object","required":["name"],"properties":{"name":{"type":"string"},"phase":{"$ref":"#/components/schemas/NodepoolPhase"},"phaseMessage":{"type":"string","description":"Message for status of Node Pool"},"status":{"allOf":[{"$ref":"#/components/schemas/NodepoolSyncUpdateFields"},{"type":"object","properties":{"conditions":{"type":"array","items":{"$ref":"#/components/schemas/NodepoolConditionDetails"}},"gpuNetworkAccelerationDetected":{"description":"Signals to all relevant parties about GPUNetworkAcceleration being detected in some nodepool's nodes","type":"boolean"},"nodes":{"type":"array","items":{"type":"string"}}}}]}}},"NodepoolPhase":{"type":"string","enum":["Creating","Updating","Deleting","Empty","Unschedulable","Ready","Deleted"],"description":"Phase of Node Pool"},"NodepoolSyncUpdateFields":{"type":"object","properties":{"labelKey":{"type":"string","description":"Label key for associated nodes to the Node Pool (with value as in labelValue)","minLength":1,"nullable":true},"labelValue":{"type":"string","description":"Label value for associated nodes to the Node Pool (with key as in labelKey)","minLength":1,"nullable":true},"overProvisioningRatio":{"type":"integer","minimum":1,"maximum":5,"default":1,"nullable":true,"deprecated":true},"placementStrategy":{"description":"scheduling strategy per resource","deprecated":true,"properties":{"cpu":{"$ref":"#/components/schemas/PlacementStrategy"},"gpu":{"$ref":"#/components/schemas/PlacementStrategy"}}},"gpuNetworkAccelerationLabelKey":{"description":"Label key by which to determine GPUNetworkAccelerationDetection nodes","type":"string"},"gpuNetworkAccelerationDetection":{"$ref":"#/components/schemas/NodepoolGPUNetworkAccelerationDetection"},"gpuResourceOptimization":{"$ref":"#/components/schemas/GPUResourceOptimization"},"schedulingConfiguration":{"$ref":"#/components/schemas/SchedulingConfiguration"}}},"NodepoolConditionDetails":{"type":"object","required":["type","reason"],"properties":{"type":{"type":"string","description":"Type of Nodepool condition."},"reason":{"type":"string","description":"(brief) reason for the condition's last transition."},"message":{"type":"string","description":"Human readable message indicating details about last transition."},"status":{"type":"string","description":"The status of the condition, can be True or False","enum":["True","False"]},"nodes":{"type":"array","description":"Names of the nodes related to the nodepool condition","items":{"type":"string"}}}},"NodepoolCalculatedFields":{"type":"object","required":["id","tenantId","clusterName","createdBy","createdAt","updatedBy","updatedAt","isDefault"],"properties":{"id":{"type":"string","description":"The NodePool id","readOnly":true},"tenantId":{"description":"The id of the tenant.","type":"integer","format":"int32"},"clusterName":{"type":"string"},"createdBy":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedBy":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"deletedBy":{"type":"string"},"deletedAt":{"type":"string","nullable":true,"format":"date-time"},"isDefault":{"type":"boolean","description":"Is the Node Pool is the cluster default"}}},"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"}}}},"500InternalServerError":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503ServiceUnavailable":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/api/v1/node-pools/{nodepoolId}":{"patch":{"summary":"Patch nodepool fields","operationId":"patch_nodepool","description":"Update only specific fields of a nodepool","tags":["NodePools"],"parameters":[{"$ref":"#/components/parameters/NodepoolId"}],"requestBody":{"description":"Fields to update.","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NodepoolUpdateFields"}}}},"responses":{"200":{"description":"Updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Nodepool"}}}},"400":{"$ref":"#/components/responses/400BadRequest"},"401":{"$ref":"#/components/responses/401Unauthorized"},"403":{"$ref":"#/components/responses/403Forbidden"},"404":{"$ref":"#/components/responses/404NotFound"},"500":{"$ref":"#/components/responses/500InternalServerError"},"503":{"$ref":"#/components/responses/503ServiceUnavailable"}}}}}}
```

## Get the cluster's Node Pools.

> Retrieve all the node pools with details from the cluster by Universally Unique Identifier (UUID). Deprecated, please use /api/v1/node-pools instead.

```json
{"openapi":"3.0.3","info":{"title":"NVIDIA Run:ai","version":"2.23"},"tags":[{"name":"NodePools","description":"Node pools assist in managing heterogeneous resources effectively. \nA node pool is a set of nodes grouped into a bucket of resources using a predefined (for example, GPU-Type) or \nadministrator-defined label (for example, key & value). \nFor more information, see [Node Pools](https://run-ai-docs.nvidia.com/self-hosted/2.23/platform-management/aiinitiatives/resources/node-pools/#introduction).\n"}],"servers":[{"url":"https://app.run.ai"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer authentication"}},"schemas":{"NodePool1":{"allOf":[{"$ref":"#/components/schemas/NodePoolCreateRequest"},{"properties":{"id":{"type":"number","description":"Node Pool unique id","readOnly":true},"clusterId":{"type":"string","format":"uuid","description":"Node Pool cluster id"},"createdAt":{"type":"string","description":"Node Pool creation time","format":"date-time"},"updatedAt":{"type":"string","description":"Node Pool update time","format":"date-time"},"deletedAt":{"type":"string","description":"Node Pool delete time","format":"date-time"},"status":{"type":"string","enum":["Creating","Updating","Deleting","Empty","Unschedulable","Ready","Deleted"],"description":"Node Pool status"},"statusMessage":{"type":"string","description":"Node Pool status details"},"nodes":{"type":"string","description":"List of Nodes that are assigned to this nodepool - as json string"},"createdBy":{"type":"string","description":"Node Pool creator"},"updatedBy":{"type":"string","description":"Node Pool updater"},"isDefault":{"type":"boolean","description":"Is the Node Pool the default Node Pool for all nodes not assigned to any other Node Pool"}}}]},"NodePoolCreateRequest":{"properties":{"name":{"type":"string","description":"Node Pool Name"},"overProvisioningRatio":{"type":"integer","default":1},"labelKey":{"type":"string","description":"Label key for associated nodes to the Node Pool (with value as in labelValue)"},"labelValue":{"type":"string","description":"Label value for associated nodes to the Node Pool (with key as in labelKey)"},"placementStrategy":{"$ref":"#/components/schemas/PlacementStrategy1"}}},"PlacementStrategy1":{"properties":{"cpu":{"type":"string","enum":["spread","binpack"],"description":"scheduling strategy for cpu"},"gpu":{"type":"string","enum":["spread","binpack"],"description":"scheduling strategy for gpu"}}},"Error":{"required":["code","message"],"properties":{"code":{"type":"integer","minimum":100,"maximum":599},"message":{"type":"string"},"details":{"type":"string"}}},"Error1":{"required":["code","message"],"properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"}}}},"responses":{"Unauthorized":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"NotFound":{"description":"The specified resource was not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error1"}}}}}},"paths":{"/v1/k8s/clusters/{clusterId}/node-pools":{"get":{"tags":["NodePools"],"summary":"Get the cluster's Node Pools.","description":"Retrieve all the node pools with details from the cluster by Universally Unique Identifier (UUID). Deprecated, please use /api/v1/node-pools instead.","deprecated":true,"operationId":"getNodePools","parameters":[{"name":"clusterId","in":"path","description":"Unique identifier of the cluster","required":true,"style":"simple","explode":false,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Node pools returned successfully.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/NodePool1"}}}}},"403":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"default":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## Create a Node Pool.

> Use to create a node pool in a cluster by Universally Unique Identifier (UUID). Deprecated, please use /api/v1/node-pools instead.

```json
{"openapi":"3.0.3","info":{"title":"NVIDIA Run:ai","version":"2.23"},"tags":[{"name":"NodePools","description":"Node pools assist in managing heterogeneous resources effectively. \nA node pool is a set of nodes grouped into a bucket of resources using a predefined (for example, GPU-Type) or \nadministrator-defined label (for example, key & value). \nFor more information, see [Node Pools](https://run-ai-docs.nvidia.com/self-hosted/2.23/platform-management/aiinitiatives/resources/node-pools/#introduction).\n"}],"servers":[{"url":"https://app.run.ai"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer authentication"}},"schemas":{"NodePoolCreateRequest":{"properties":{"name":{"type":"string","description":"Node Pool Name"},"overProvisioningRatio":{"type":"integer","default":1},"labelKey":{"type":"string","description":"Label key for associated nodes to the Node Pool (with value as in labelValue)"},"labelValue":{"type":"string","description":"Label value for associated nodes to the Node Pool (with key as in labelKey)"},"placementStrategy":{"$ref":"#/components/schemas/PlacementStrategy1"}}},"PlacementStrategy1":{"properties":{"cpu":{"type":"string","enum":["spread","binpack"],"description":"scheduling strategy for cpu"},"gpu":{"type":"string","enum":["spread","binpack"],"description":"scheduling strategy for gpu"}}},"Error":{"required":["code","message"],"properties":{"code":{"type":"integer","minimum":100,"maximum":599},"message":{"type":"string"},"details":{"type":"string"}}}},"responses":{"BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Conflict":{"description":"conflict error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/v1/k8s/clusters/{clusterId}/node-pools":{"post":{"tags":["NodePools"],"summary":"Create a Node Pool.","description":"Use to create a node pool in a cluster by Universally Unique Identifier (UUID). Deprecated, please use /api/v1/node-pools instead.","deprecated":true,"operationId":"createNodePool","parameters":[{"name":"clusterId","in":"path","description":"Unique identifier of the cluster","required":true,"style":"simple","explode":false,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NodePoolCreateRequest"}}}},"responses":{"201":{"description":"Created"},"400":{"$ref":"#/components/responses/BadRequest"},"409":{"$ref":"#/components/responses/Conflict"},"default":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## Update labels of a Node Pool.

> Use to update the labels of a node pool. Deprecated, please use PATCH /api/v1/node-pools/{id} instead.

```json
{"openapi":"3.0.3","info":{"title":"NVIDIA Run:ai","version":"2.23"},"tags":[{"name":"NodePools","description":"Node pools assist in managing heterogeneous resources effectively. \nA node pool is a set of nodes grouped into a bucket of resources using a predefined (for example, GPU-Type) or \nadministrator-defined label (for example, key & value). \nFor more information, see [Node Pools](https://run-ai-docs.nvidia.com/self-hosted/2.23/platform-management/aiinitiatives/resources/node-pools/#introduction).\n"}],"servers":[{"url":"https://app.run.ai"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer authentication"}},"schemas":{"NodePoolLabelsRequest":{"properties":{"labelKey":{"type":"string","description":"key of node label for pool"},"labelValue":{"type":"string","description":"value of node label for pool"}}},"Error":{"required":["code","message"],"properties":{"code":{"type":"integer","minimum":100,"maximum":599},"message":{"type":"string"},"details":{"type":"string"}}},"Error1":{"required":["code","message"],"properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"}}}},"responses":{"BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Unauthorized":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"NotFound":{"description":"The specified resource was not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error1"}}}},"serviceUnavailable":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error1"}}}}}},"paths":{"/v1/k8s/clusters/{clusterId}/node-pools/{id}/labels":{"put":{"tags":["NodePools"],"summary":"Update labels of a Node Pool.","description":"Use to update the labels of a node pool. Deprecated, please use PATCH /api/v1/node-pools/{id} instead.","deprecated":true,"operationId":"updateNodePoolLabels","parameters":[{"name":"clusterId","in":"path","description":"Unique identifier of the cluster","required":true,"style":"simple","explode":false,"schema":{"type":"string","format":"uuid"}},{"in":"path","name":"id","schema":{"type":"integer"},"required":true,"description":"The unique id identifying the Node Pool."}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NodePoolLabelsRequest"}}},"required":true},"responses":{"202":{"description":"Node Pool update accepted."},"400":{"$ref":"#/components/responses/BadRequest"},"403":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"503":{"$ref":"#/components/responses/serviceUnavailable"}}}}}}
```

## Update a Node Pool.

> Use to update the details of a node pool by Universally Unique Identifier (UUID). Deprecated, please use PATCH /api/v1/node-pools/{id} instead.

```json
{"openapi":"3.0.3","info":{"title":"NVIDIA Run:ai","version":"2.23"},"tags":[{"name":"NodePools","description":"Node pools assist in managing heterogeneous resources effectively. \nA node pool is a set of nodes grouped into a bucket of resources using a predefined (for example, GPU-Type) or \nadministrator-defined label (for example, key & value). \nFor more information, see [Node Pools](https://run-ai-docs.nvidia.com/self-hosted/2.23/platform-management/aiinitiatives/resources/node-pools/#introduction).\n"}],"servers":[{"url":"https://app.run.ai"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer authentication"}},"schemas":{"UpdateNodePoolRequest":{"properties":{"labelKey":{"type":"string","description":"key of node label for pool"},"labelValue":{"type":"string","description":"value of node label for pool"},"overProvisioningRatio":{"type":"integer","default":1},"placementStrategy":{"$ref":"#/components/schemas/PlacementStrategy1"}}},"PlacementStrategy1":{"properties":{"cpu":{"type":"string","enum":["spread","binpack"],"description":"scheduling strategy for cpu"},"gpu":{"type":"string","enum":["spread","binpack"],"description":"scheduling strategy for gpu"}}},"Error":{"required":["code","message"],"properties":{"code":{"type":"integer","minimum":100,"maximum":599},"message":{"type":"string"},"details":{"type":"string"}}},"Error1":{"required":["code","message"],"properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"}}}},"responses":{"BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Unauthorized":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"NotFound":{"description":"The specified resource was not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error1"}}}},"serviceUnavailable":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error1"}}}}}},"paths":{"/v1/k8s/clusters/{clusterId}/node-pools/{id}":{"put":{"tags":["NodePools"],"summary":"Update a Node Pool.","description":"Use to update the details of a node pool by Universally Unique Identifier (UUID). Deprecated, please use PATCH /api/v1/node-pools/{id} instead.","deprecated":true,"operationId":"updateNodePool","parameters":[{"name":"clusterId","in":"path","description":"Unique identifier of the cluster","required":true,"style":"simple","explode":false,"schema":{"type":"string","format":"uuid"}},{"in":"path","name":"id","schema":{"type":"integer"},"required":true,"description":"The unique id identifying the Node Pool."}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateNodePoolRequest"}}},"required":true},"responses":{"202":{"description":"Node Pool update accepted."},"400":{"$ref":"#/components/responses/BadRequest"},"403":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"503":{"$ref":"#/components/responses/serviceUnavailable"}}}}}}
```

## Delete a Node Pool by id.§

> Use to delete a node pool by Universally Unique Identifier (UUID). Deprecated, please use /api/v1/node-pools/{id} instead.

```json
{"openapi":"3.0.3","info":{"title":"NVIDIA Run:ai","version":"2.23"},"tags":[{"name":"NodePools","description":"Node pools assist in managing heterogeneous resources effectively. \nA node pool is a set of nodes grouped into a bucket of resources using a predefined (for example, GPU-Type) or \nadministrator-defined label (for example, key & value). \nFor more information, see [Node Pools](https://run-ai-docs.nvidia.com/self-hosted/2.23/platform-management/aiinitiatives/resources/node-pools/#introduction).\n"}],"servers":[{"url":"https://app.run.ai"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer authentication"}},"responses":{"BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Unauthorized":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"NotFound":{"description":"The specified resource was not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error1"}}}},"serviceUnavailable":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error1"}}}}},"schemas":{"Error":{"required":["code","message"],"properties":{"code":{"type":"integer","minimum":100,"maximum":599},"message":{"type":"string"},"details":{"type":"string"}}},"Error1":{"required":["code","message"],"properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"}}}}},"paths":{"/v1/k8s/clusters/{clusterId}/node-pools/{id}":{"delete":{"tags":["NodePools"],"summary":"Delete a Node Pool by id.§","description":"Use to delete a node pool by Universally Unique Identifier (UUID). Deprecated, please use /api/v1/node-pools/{id} instead.","deprecated":true,"operationId":"deleteNodePool","parameters":[{"name":"clusterId","in":"path","description":"Unique identifier of the cluster","required":true,"style":"simple","explode":false,"schema":{"type":"string","format":"uuid"}},{"in":"path","name":"id","schema":{"type":"integer"},"required":true,"description":"The unique id identifying the Node Pool."}],"responses":{"202":{"description":"Node Pool deletion accepted"},"400":{"$ref":"#/components/responses/BadRequest"},"403":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"503":{"$ref":"#/components/responses/serviceUnavailable"}}}}}}
```


---

# Agent Instructions: 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:

```
GET https://run-ai-docs.nvidia.com/api/2.23/organizations/nodepools.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
