Skip to content

Update Auto Scaling Group

PUT
/notebooks/autoscale-groups/{group_id}/
curl --request PUT \
--url 'https://api.e2enetworks.com/myaccount/api/v1/gpu/notebooks/autoscale-groups/{group_id}/?project_id=<PROJECT_ID>&location=<LOCATION>&apikey=<API_KEY>' \
--header 'Authorization: Bearer <API_TOKEN>' \
--header 'Content-Type: application/json' \
--data '{
"name": "example-group",
"min_replicas": 2,
"max_replicas": 10,
"desired_replicas": 3,
"scale_mode": "elastic",
"policy_type": "elastic_cpu",
"cpu_threshold_percent": 60,
"memory_threshold_percent": 70,
"network_threshold_bytes_per_sec": 10000000,
"scale_in_stabilization_seconds": 300,
"scale_out_stabilization_seconds": 30,
"watch_period": 3,
"period_duration": 10,
"public_ip_enabled": true,
"scale_up_operator": ">",
"scale_down_operator": "<",
"scale_down_threshold_percent": 30,
"health_check_type": "vm_status",
"health_check_port": 80,
"health_check_path": "/",
"health_check_protocol": "http",
"health_check_interval_seconds": 30,
"health_check_timeout_seconds": 5,
"health_check_unhealthy_threshold": 2,
"health_check_healthy_threshold": 1,
"startup_grace_period_seconds": 300,
"auto_replace_unhealthy": true,
"scheduled_policies": [
{
"id": 88,
"name": "weekday-morning",
"cron_expression": "0 9 * * 1-5",
"timezone_name": "UTC",
"target_min_replicas": 4,
"target_max_replicas": 10,
"duration_seconds": 28800,
"enabled": true
}
]
}'

Changes the settings of a group. Send only the fields to change; the rest keep their value. The plan, the disk size and the source snapshot cannot be changed. Raising min_replicas above the running count adds VMs, and lowering max_replicas below it removes VMs. If scheduled_policies is sent, it replaces the group’s schedules, and an empty list deletes them all, as does null.

group_id
required
integer

Auto Scaling Group ID

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
name

A new name, unique among the project’s groups that are not deleted.

string

Example

example-group
min_replicas

Saved Minimum VMs, at least 1. base_min_replicas is accepted in its place.

integer

Example

2
max_replicas

Saved Maximum VMs, at least min_replicas and at most 60. base_max_replicas is accepted in its place. While a schedule hold is in force, the live range stays the hold’s until it ends.

integer

Example

10
desired_replicas

Sets the number of VMs the group runs now, from min_replicas to max_replicas. Not applied to a Failed group until its next launch.

integer

Example

3
scale_mode
string
Allowed values: elastic scheduled both

Example

elastic
policy_type
string
Allowed values: elastic_cpu elastic_memory elastic_combined elastic_network scheduled

Example

elastic_cpu
cpu_threshold_percent

Whole number from 10 to 99.

integer

Example

60
memory_threshold_percent

Whole number from 10 to 99.

integer

Example

70
network_threshold_bytes_per_sec

Bytes per second per VM.

integer

Example

10000000
scale_in_stabilization_seconds

At least 120 seconds when sent.

integer

Example

300
scale_out_stabilization_seconds

At least 1 second.

integer

Example

30
watch_period
integer

Example

3
period_duration
integer

Example

10
public_ip_enabled

Leave this field out.

boolean

Example

true
scale_up_operator

Leave this field out.

string

Example

>
scale_down_operator

Leave this field out.

string

Example

<
scale_down_threshold_percent

Leave this field out.

integer

Example

30
health_check_type
string
Allowed values: vm_status http tcp

Example

vm_status
health_check_port
integer

Example

80
health_check_path
string

Example

/
health_check_protocol
string
Allowed values: http https

Example

http
health_check_interval_seconds

At least 15.

integer

Example

30
health_check_timeout_seconds
integer

Example

5
health_check_unhealthy_threshold
integer

Example

2
health_check_healthy_threshold
integer

Example

1
startup_grace_period_seconds
integer

Example

300
auto_replace_unhealthy
boolean

Example

true
scheduled_policies

The group’s full list of schedules, with the fields of Create Auto Scaling Group. When the key is sent, the list replaces the group’s schedules. An empty list deletes all of them, and so does null.

Array<object>
object
id

ID of an existing schedule to change. Without it, the schedule is matched by name to one of the group’s schedules, or created if none matches. A schedule of the group that no item matches is deleted.

integer

Example

88
name
string
<= 128 characters

Example

weekday-morning
cron_expression
string
<= 64 characters

Example

0 9 * * 1-5
timezone_name
string
<= 64 characters

Example

UTC
target_min_replicas
integer

Example

4
target_max_replicas
integer

Example

10
duration_seconds
integer
nullable

Example

28800
enabled
boolean

Example

true

The group after the change. When desired_replicas is sent, message carries the note on how long the new size holds and resize is present.

Media typeapplication/json
object
code
integer
message
string
data
object
id
integer
name

The group’s name.

string
vmpool_name

An identifier for the group, used when you contact support. It cannot be changed.

string
status
string
Allowed values: Creating Running Stopping Stopped Starting Failed Deleting
display_status

Cooldown while the group is Running, usage is not over the target, and fewer than scale_in_stabilization_seconds have passed since the last usage-based size change; otherwise status.

string
in_cooldown

true while the group is in that cooldown. The group will not remove VMs during it.

boolean
cooldown_seconds_remaining

Seconds left of that hold. null when not holding.

integer
nullable
stage

The launch step the group is at. null before a launch has begun.

string
nullable
stage_message
string
nullable
stage_percent

Launch progress, 0 to 100.

integer
nullable
stage_started_at
string
nullable
eta_seconds

Estimated seconds left of the launch.

integer
nullable
launch_started_at
string
nullable
became_ready_at
string
nullable
namespace

An identifier for the project in the region, used when you contact support.

string
pricing

The group’s rates for one VM, in the currency of its plan. null when the group has no plan.

object
currency
string
compute_hourly_per_vm

Compute price per VM per hour.

number
disk_rate_per_gb_month

Disk price per GB per month.

number
free_disk_gb

Disk size included in the compute price, in GB.

integer
billable_disk_gb

Disk size per VM that is charged, in GB.

integer
disk_monthly_per_vm
number
disk_hourly_per_vm
number
hours_per_month_basis

Hours in the month used for the monthly figure.

integer
hourly_per_vm

Compute plus disk, per VM per hour.

number
monthly_per_vm

Compute plus disk, per VM per month.

number
scaling_health

How the group’s usage-based scaling has behaved. Based on the group’s recent scale events.

object
window

The period the counts cover.

string
max_capacity_reached_count

Times in that period that usage-based scaling added VMs and the count reached Maximum VMs.

integer
oscillation_count

Times in that period that usage-based scaling reversed direction.

integer
recommendations

Hints on the group’s settings.

Array<object>
object
code
string
Allowed values: raise_maximum flapping unpaired_schedule
severity
string
Allowed values: warning info
facts
object
current_state
object
code

Why the group is or is not changing size now: not_running, schedule_only, at_max_capacity, condition_met_stabilizing, in_cooldown, at_min_capacity, below_target or active.

string
facts
object
ready_count

Number of VMs that are ready.

integer
nullable
booting_count

While the group is Creating, how many VMs are still starting. null otherwise.

integer
nullable
provisioning_phase

A coarse launch phase: validated, network_applied, created, launching or ready. null for other steps.

string
nullable
progress_steps

The launch checklist. Empty once the group is past launching, except for a Failed group, where it shows the step that failed.

Array<object>
object
key

Step identifier.

string
label
string
description

What the step does.

string
nullable
status
string
Allowed values: done active pending error
message

While the step runs, a live line; on the step that failed, the reason.

string
nullable
started_at
string
nullable
completed_at
string
nullable
duration_seconds
integer
nullable
is_delayed

true when the current launch step has run longer than usual.

boolean
delayed_message
string
nullable
failure_reason

Why the group is Failed. Read it only when status is Failed.

string
nullable
failure_kind

The cause of a failed launch: credit, quota, inventory, config or transient.

string
nullable
can_relaunch

true for a Creating or Failed group that has never been Running.

boolean
has_ever_reached_running_state
boolean
location

The region.

string
Allowed values: Delhi Chennai
min_replicas

Minimum VMs in force now. While a schedule or Scale Now holds the minimum higher, this is the held value.

integer
max_replicas

Maximum VMs in force now.

integer
base_min_replicas

The saved Minimum VMs.

integer
base_max_replicas

The saved Maximum VMs.

integer
active_window_ends_at

When the schedule hold now in force ends. null when none.

string
nullable
manual_override_min_replicas

The minimum a Scale Now hold sets. null when no hold is in force.

integer
nullable
manual_override_ends_at

When the Scale Now hold ends.

string
nullable
desired_replicas

The number of VMs the group is set to run.

integer
nullable
policy_type
string
Allowed values: elastic_cpu elastic_memory elastic_combined elastic_network scheduled
scale_mode
string
Allowed values: elastic scheduled both
cpu_threshold_percent
integer
nullable
memory_threshold_percent
integer
nullable
network_threshold_bytes_per_sec
integer
nullable
custom_parameter_name
string
nullable
custom_threshold_percent
number
nullable
cooldown_period

Same as scale_in_stabilization_seconds.

integer
watch_period

Number of watched periods before the group adds VMs.

integer
period_duration

Length of one watched period, in seconds.

integer
scale_in_stabilization_seconds

How long usage must stay below the target before VMs are removed, in seconds. At least 120.

integer
scale_out_stabilization_seconds

How long usage must stay above the target before VMs are added, in seconds.

integer
scale_out_cooldown_seconds

Same value as scale_out_stabilization_seconds, under its older name.

integer
public_ip_enabled

Every VM in a group gets a public IP address.

boolean
scale_up_operator
string
scale_down_operator
string
scale_down_threshold_percent
integer
nullable
thresholds_enforced
boolean
health_check_type
string
Allowed values: vm_status http tcp
health_check_protocol

http or https, for http checks.

string
nullable
health_check_port
integer
nullable
health_check_path
string
health_check_interval_seconds
integer
health_check_timeout_seconds
integer
health_check_unhealthy_threshold
integer
health_check_healthy_threshold
integer
startup_grace_period_seconds

Same value as health_check_grace_period_seconds.

integer
health_check_grace_period_seconds
integer
auto_replace_unhealthy
boolean
backup_snapshot_id

ID of the snapshot the group launches from. null for a group made from a VM until its snapshot exists.

integer
nullable
image_name
string
nullable
image_os

The operating system of the source image.

string
nullable
machine_size
string
nullable
sku_item_price_id

The plan the group’s VMs run on.

integer
nullable
current_cpu_percent

Average CPU use across the group’s VMs, as last measured.

number
nullable
current_memory_percent
number
nullable
source_vm_id

The VM the group was made from. null once that VM is deleted.

integer
nullable
source_vm_name
string
nullable
source_vm_slug_name

The source VM’s identifier, kept after the VM is deleted.

string
nullable
disk_size_gb

Disk per VM, in GB.

integer
nullable
active_node_count

Number of VMs now in the group.

integer
scheduled_policies
Array<object>

One schedule of the group.

object
id
integer
group_id
integer
name
string
<= 128 characters
cron_expression

When the schedule runs: minute, hour, day of month, month, day of week.

string
<= 64 characters
timezone_name

The time zone of cron_expression.

string
<= 64 characters
target_min_replicas

The Minimum VMs the schedule sets.

integer
target_max_replicas

The Maximum VMs the schedule sets.

integer
enabled
boolean
duration_seconds

How long the schedule holds its range, in seconds. null when it holds until another schedule changes it.

integer
nullable
window_ends_at

When the schedule’s hold ends. null when no hold is in force.

string
nullable
next_run_at

When the schedule next runs. null while it is disabled.

string
nullable
last_run_at

When the schedule last ran.

string
nullable
created_at
string
ssh_key_ids
Array<integer>
security_group_id
integer
nullable
created_at
string
created_by

ID of the user who created the group.

integer
nullable
scheduled_policy_results

One entry per schedule sent. A schedule that was refused does not fail the request.

Array<object>
object
input

The schedule as sent.

object
success
boolean
data

The stored schedule, as in scheduled_policies.

object
errors
string
nullable
resize

Whether the new VM count stays.

object
durable

true when the new size is kept until you change it; false when it is a hold that ends.

boolean
reverts_within_seconds
integer
nullable
reverts_at
string
nullable
reverts_to_min_replicas

The Minimum VMs the group returns to. Present only when durable is false.

integer
errors
object

Example

{
"code": 200,
"message": "Success",
"data": {
"id": 412,
"name": "example-group",
"vmpool_name": "example-group-ab12",
"status": "Creating",
"display_status": "Running",
"in_cooldown": false,
"cooldown_seconds_remaining": null,
"stage": "running",
"stage_message": "Ready",
"stage_percent": 100,
"stage_started_at": "2026-10-21T11:19:02+00:00",
"eta_seconds": 0,
"launch_started_at": "2026-10-21T11:17:29+00:00",
"became_ready_at": "2026-10-21T11:21:40+00:00",
"namespace": "project-example",
"pricing": {
"currency": "INR",
"compute_hourly_per_vm": 5.5,
"disk_rate_per_gb_month": 4,
"free_disk_gb": 30,
"billable_disk_gb": 20,
"disk_monthly_per_vm": 80,
"disk_hourly_per_vm": 0.11,
"hours_per_month_basis": 730,
"hourly_per_vm": 5.61,
"monthly_per_vm": 4174.5
},
"scaling_health": {
"window": "24h",
"max_capacity_reached_count": 0,
"oscillation_count": 0,
"recommendations": [
{
"code": "raise_maximum",
"severity": "warning",
"facts": {
"times_at_max": 3,
"window": "24h",
"current_max": 5
}
}
],
"current_state": {
"code": "below_target",
"facts": {
"metric": "cpu",
"current": 31,
"target": 60
}
}
},
"ready_count": 3,
"booting_count": null,
"provisioning_phase": "ready",
"progress_steps": [
{
"key": "creating_vmpool",
"label": "Creating scale group",
"description": "Creating the group that will hold your VMs.",
"status": "done",
"message": null,
"started_at": "2026-10-21T11:17:31+00:00",
"completed_at": "2026-10-21T11:17:51+00:00",
"duration_seconds": 20
}
],
"is_delayed": false,
"delayed_message": null,
"failure_reason": null,
"failure_kind": null,
"can_relaunch": false,
"has_ever_reached_running_state": true,
"location": "Delhi",
"min_replicas": 3,
"max_replicas": 10,
"base_min_replicas": 2,
"base_max_replicas": 10,
"active_window_ends_at": null,
"manual_override_min_replicas": null,
"manual_override_ends_at": null,
"desired_replicas": 3,
"policy_type": "elastic_cpu",
"scale_mode": "elastic",
"cpu_threshold_percent": 60,
"memory_threshold_percent": null,
"network_threshold_bytes_per_sec": null,
"custom_parameter_name": null,
"custom_threshold_percent": null,
"cooldown_period": 300,
"watch_period": 3,
"period_duration": 10,
"scale_in_stabilization_seconds": 300,
"scale_out_stabilization_seconds": 30,
"scale_out_cooldown_seconds": 30,
"public_ip_enabled": true,
"scale_up_operator": ">",
"scale_down_operator": "<",
"scale_down_threshold_percent": null,
"thresholds_enforced": false,
"health_check_type": "vm_status",
"health_check_protocol": null,
"health_check_port": null,
"health_check_path": "/",
"health_check_interval_seconds": 30,
"health_check_timeout_seconds": 5,
"health_check_unhealthy_threshold": 2,
"health_check_healthy_threshold": 1,
"startup_grace_period_seconds": 300,
"health_check_grace_period_seconds": 300,
"auto_replace_unhealthy": true,
"backup_snapshot_id": 212,
"image_name": "example-vm snapshot",
"image_os": "Ubuntu",
"machine_size": "4 vCPU · 8 GB RAM",
"sku_item_price_id": 1190,
"current_cpu_percent": 31.5,
"current_memory_percent": null,
"source_vm_id": 4984,
"source_vm_name": "example-vm",
"source_vm_slug_name": "example-vm-abc123",
"disk_size_gb": 50,
"active_node_count": 3,
"scheduled_policies": [
{
"id": 88,
"group_id": 412,
"name": "weekday-morning",
"cron_expression": "0 9 * * 1-5",
"timezone_name": "UTC",
"target_min_replicas": 4,
"target_max_replicas": 10,
"enabled": true,
"duration_seconds": 28800,
"window_ends_at": null,
"next_run_at": "2026-10-26T09:00:00+00:00",
"last_run_at": null,
"created_at": "2026-10-21T11:17:29+00:00"
}
],
"ssh_key_ids": [
17
],
"security_group_id": 45,
"created_at": "2026-10-21T11:17:29+00:00",
"created_by": 1,
"scheduled_policy_results": [
{
"input": {
"name": "weekday-morning"
},
"success": true,
"errors": null
}
],
"resize": {
"durable": false,
"reverts_within_seconds": 180,
"reverts_at": "2026-10-21T12:03:00+00:00",
"reverts_to_min_replicas": 2
}
},
"errors": {}
}

The group is in another status (as shown), or a field is outside its limit. The limits are those of Create Auto Scaling Group, except that max_replicas may equal min_replicas, and name may not be empty (“name must be a non-empty string.”). desired_replicas is optional here. errors is “Project ID is missing or invalid” when project_id is missing or not a number.

Media typeapplication/json
object
code
integer
message
string
data
object
errors
string

Example

{
"code": 400,
"message": "Bad Request",
"data": {},
"errors": "Only a Running, Stopped or Failed group can be edited. Current status: Creating."
}

The caller lacks the permission the call needs on the project, or the region is not allowed.

Media typeapplication/json
object
code
integer
message
string
data
object
errors
string

Example

{
"code": 403,
"message": "Forbidden",
"data": {},
"errors": "You don't have permission to access this service. Please verify your policy or project."
}

No Auto Scaling Group with that ID in the project and region.

Media typeapplication/json
object
code
integer
message
string
data
object
errors
string

Example

{
"code": 404,
"message": "Bad Request",
"data": {},
"errors": "Autoscale Group not found"
}

The new scaling settings could not be applied to the running group (data is a sentence that ends with the reason), or the settings were saved but the new VM count could not be applied (data says the settings were updated but the resize failed, with the reason). errors is {}.

Media typeapplication/json
object
code
integer
message
string
data
string
errors
object

Example

{
"code": 500,
"message": "Internal Server Error",
"data": "Failed to apply the new scaling settings to the running group: <reason>",
"errors": {}
}