Skip to content

Update Node Pool Committed Plan

PUT
/tenant_clusters/{tenant_cluster_id}/node-pools/{node_pool_id}/committed-plan/
curl --request PUT \
--url 'https://api.e2enetworks.com/myaccount/api/v1/gpu/tenant_clusters/{tenant_cluster_id}/node-pools/{node_pool_id}/committed-plan/?project_id=<PROJECT_ID>&location=<LOCATION>&apikey=<API_KEY>' \
--header 'Authorization: Bearer <API_TOKEN>' \
--header 'Content-Type: application/json' \
--data '{
"updation_policy": "auto_renew",
"next_sku_item_price_id": 0,
"sku_item_price_id": 0
}'

Does one of two things, depending on the pool’s plan.

On a committed pool, it sets what happens when the term ends: send updation_policy and next_sku_item_price_id. This changes only the end of the term; it does not shorten the term or refund anything.

On an hourly pool, it moves the pool onto a committed plan: send sku_item_price_id as well, a committed plan of the pool’s resource. The pool must be ready and have a fixed size, and the account needs enough credit for the whole term, which is charged upfront. The pool cannot then be resized until the term ends.

tenant_cluster_id
required
integer

Kubernetes cluster ID, as returned by List Kubernetes Clusters.

node_pool_id
required
integer

Worker node pool ID, from the cluster’s node_pools list.

project_id
required
integer

Project ID

active_iam
integer

Active IAM ID (To access contact person account) Find your Active IAM ID here

location
required
string
Allowed values: Delhi Chennai

Location

Media typeapplication/json
object
updation_policy
required

What happens when the term ends: auto_renew starts a new term if the account has enough credit (otherwise the pool moves to hourly billing), and convert_to_hourly_billing moves the pool to the hourly plan.

string
Allowed values: auto_renew convert_to_hourly_billing
next_sku_item_price_id
required

The plan of the same resource to continue on: a committed plan with auto_renew, or an hourly plan with convert_to_hourly_billing.

integer
sku_item_price_id

Only to move an hourly pool onto a committed plan. The committed plan to move it onto.

integer

The committed plan settings are saved.

Media typeapplication/json
object
code
integer
data
object
id
integer
tenant_cluster_id
integer
name
string
role
string
Allowed values: control_plane worker
status

resizing while the pool moves to a new fixed size, scaling while its autoscaler changes the node count.

string
Allowed values: queued joining ready resizing scaling failed deleting
replicas

The node count the pool is set to.

integer
ready_replicas

The pool’s nodes that are up and ready.

integer
labels
Array<object>
object
key
required

The key without the node.e2enetworks.com/ prefix, which the platform adds. Up to 63 letters, numbers, -, _, or ., starting and ending with a letter or number.

string
<= 63 characters
value
required

Required. The same characters as the key.

string
<= 63 characters
taints
Array<object>
object
key
required

The key without the node.e2enetworks.com/ prefix, which the platform adds. Up to 63 letters, numbers, -, _, or ., starting and ending with a letter or number.

string
<= 63 characters
value

May be empty.

string
<= 63 characters
effect
required

NoExecute evicts running pods that do not tolerate the taint.

string
Allowed values: NoSchedule PreferNoSchedule NoExecute
sku_details

The computing resource and pricing plan a node pool runs on.

object
specs
object
sku_id
integer
name
string
series
string
cpu
integer
memory
integer
plan
object
sku_item_price_id
integer
sku_type

hourly or committed.

string
committed_days
integer
unit_price
number
currency
string
committed_info

Set only for a pool on a committed plan.

object
updation_policy
string
Allowed values: auto_renew convert_to_hourly_billing
next_sku_item_price

The computing resource and pricing plan a node pool runs on.

object
specs
object
sku_id
integer
name
string
series
string
cpu
integer
memory
integer
plan
object
sku_item_price_id
integer
sku_type

hourly or committed.

string
committed_days
integer
unit_price
number
currency
string
end_date
string format: date-time
nullable
autoscaling

The pool’s size bounds. A min_replicas lower than max_replicas means the pool is autoscaled; equal values are a fixed size.

object
min_replicas
integer
max_replicas
integer
created_at
string format: date-time
updated_at
string format: date-time
errors
object
message
string

Example

{
"code": 200,
"data": {
"id": 22,
"tenant_cluster_id": 103,
"name": "app-workers",
"role": "control_plane",
"status": "queued",
"replicas": 2,
"ready_replicas": 2,
"labels": [
{
"key": "team",
"value": "ml"
}
],
"taints": [
{
"key": "dedicated",
"value": "gpu",
"effect": "NoSchedule"
}
],
"sku_details": {
"specs": {
"sku_id": 101,
"name": "C3.8GB",
"series": "CPU",
"cpu": 4,
"memory": 8
},
"plan": {
"sku_item_price_id": 1001,
"sku_type": "hourly",
"committed_days": 0,
"unit_price": 4.5,
"currency": "INR"
}
},
"committed_info": {
"updation_policy": "auto_renew",
"next_sku_item_price": {
"specs": {
"sku_id": 101,
"name": "C3.8GB",
"series": "CPU",
"cpu": 4,
"memory": 8
},
"plan": {
"sku_item_price_id": 1001,
"sku_type": "hourly",
"committed_days": 0,
"unit_price": 4.5,
"currency": "INR"
}
},
"end_date": "2026-11-20T10:15:00Z"
},
"autoscaling": {
"min_replicas": 2,
"max_replicas": 2
},
"created_at": "2026-10-20T10:15:00Z",
"updated_at": "2026-10-20T10:42:00Z"
},
"errors": {},
"message": "Success"
}