Skip to content

Edit Load Balancer

PUT
/gateway/{gateway_id}/
curl --request PUT \
--url 'https://api.e2enetworks.com/myaccount/api/v1/gpu/gateway/{gateway_id}/?project_id=<PROJECT_ID>&location=<LOCATION>&apikey=<API_KEY>' \
--header 'Authorization: Bearer <API_TOKEN>' \
--header 'Content-Type: application/json' \
--data '{
"name": "example-lb",
"description": "Front end for the web tier",
"committed_instance_policy": null,
"next_sku_item_price_id": null,
"algorithm": "ROUND_ROBIN",
"health_check": true,
"health_check_config": {
"protocol": "HTTP",
"interval_seconds": 10,
"timeout_seconds": 3,
"unhealthy_threshold": 3,
"healthy_threshold": 2,
"path": "/healthz",
"expected_statuses": [
0
],
"consecutive_5xx_errors": 5,
"consecutive_gateway_errors": 5,
"base_ejection_time_seconds": 30,
"outlier_interval_seconds": 10,
"max_ejection_percent": 50,
"split_external_local_origin_errors": false
},
"listener_port": 443,
"frontend_protocols": [
"HTTP"
],
"backend_protocol": "HTTP",
"http_redirect": false,
"ssl_cert_id": "12",
"connection_timeout": 10,
"client_timeout": 60,
"server_timeout": 60,
"http_keep_alive_timeout": 60,
"websocket_timeout": 3600
}'

Changes settings of a Load Balancer. Send only the fields to change. The plan and the number of instances change with Resize Load Balancer instead; the capacity limits (rate_limit, connection_limit, bandwidth_mbps) follow the plan. Sending ssl_cert_id as null or an empty value detaches the certificate. For a Load Balancer on a committed plan you can change committed_instance_policy and next_sku_item_price_id. The Load Balancer needs the Update permission.

gateway_id
required
integer

Load Balancer 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

New name, up to 255 characters, unique in the project.

string

Example

example-lb
description

A description.

string
nullable

Example

Front end for the web tier
committed_instance_policy

For a Load Balancer on a committed plan: what happens when the term ends.

string
nullable

Example

null
next_sku_item_price_id

For a committed plan that continues or converts: the plan to move to. Required for those end-of-term choices. It must be the same plan in the same region, committed to continue or hourly to convert to hourly.

integer
nullable

Example

null
algorithm

How requests are spread over backends. Leave out to keep the current value. Other values are LEAST_REQUEST, LEAST_CONNECTION, RANDOM and SOURCE_IP_HASH.

string

Example

ROUND_ROBIN
health_check

Turn the health check on or off. Leave out to keep the current value.

boolean

Example

true
health_check_config

Health check settings. Every key is optional; a key you leave out takes its default.

object
protocol

How the check probes a backend. Default TCP.

string
Allowed values: TCP HTTP GRPC

Example

HTTP
interval_seconds

Seconds between checks. Default 10.

integer

Example

10
timeout_seconds

Seconds to wait for an answer. Default 3.

integer

Example

3
unhealthy_threshold

Failed checks in a row before a backend is taken out. Default 3.

integer

Example

3
healthy_threshold

Passing checks in a row before a backend is put back. Default 2.

integer

Example

2
path

The path an HTTP check requests. Default /.

string

Example

/healthz
expected_statuses

Status codes that count as healthy for an HTTP check. Default [200].

Array<integer>
consecutive_5xx_errors

Server errors in a row before a backend is taken out. Default 5.

integer

Example

5
consecutive_gateway_errors

Errors 502, 503 or 504 in a row before a backend is taken out. Default 5.

integer

Example

5
base_ejection_time_seconds

Seconds a backend stays out after it is taken out. Default 30.

integer

Example

30
outlier_interval_seconds

Seconds between scans for backends to take out. Default 10.

integer

Example

10
max_ejection_percent

Most backends, in percent, that can be out at once. Default 50.

integer

Example

50
split_external_local_origin_errors

Count connection errors apart from errors the backend returned. Default false.

boolean

Example

false
listener_port

The port the Load Balancer listens on, 1 to 65535.

integer
nullable

Example

443
frontend_protocols

Protocols to accept. Empty or left out means both. Applies to L7.

Array<string>
Allowed values: HTTP HTTPS
backend_protocol

How the Load Balancer talks to backends, up to 16 characters. GRPC makes routing rules without a backend group gRPC.

string
nullable

Example

HTTP
http_redirect

Redirect HTTP requests to HTTPS. Needs HTTP and HTTPS both on. Leave out to keep the current value.

boolean

Example

false
ssl_cert_id

ID of a certificate of the project to serve, as text or a number. It must not have expired.

string
nullable

Example

12
connection_timeout

Seconds to wait when connecting to a backend. Whole number of seconds, 0 or more.

integer
nullable

Example

10
client_timeout

Seconds a client connection may stay idle. Whole number of seconds, 0 or more.

integer
nullable

Example

60
server_timeout

Seconds a backend connection may stay idle. Whole number of seconds, 0 or more.

integer
nullable

Example

60
http_keep_alive_timeout

Seconds an idle HTTP connection is kept open. Whole number of seconds, 0 or more.

integer
nullable

Example

60
websocket_timeout

Seconds a WebSocket connection may stay open. Whole number of seconds, 0 or more.

integer
nullable

Example

3600

The Load Balancer as saved

Media typeapplication/json
object
code
integer
message
string
data
object
id
integer
name
string
description
string
nullable
environment
string
nullable
connection_limit
integer
nullable
rate_limit
integer
nullable
rate_limit_unit
string
nullable
max_concurrent_requests
integer
nullable
bandwidth_mbps
integer
nullable
lb_type
string
Allowed values: L4 L7
scheme
string
algorithm
string
vpc_id
integer
nullable
node_count
integer
sku_id
string
nullable
health_check
boolean
health_check_config

Health check settings. Every key is optional; a key you leave out takes its default.

object
protocol

How the check probes a backend. Default TCP.

string
Allowed values: TCP HTTP GRPC
interval_seconds

Seconds between checks. Default 10.

integer
timeout_seconds

Seconds to wait for an answer. Default 3.

integer
unhealthy_threshold

Failed checks in a row before a backend is taken out. Default 3.

integer
healthy_threshold

Passing checks in a row before a backend is put back. Default 2.

integer
path

The path an HTTP check requests. Default /.

string
expected_statuses

Status codes that count as healthy for an HTTP check. Default [200].

Array<integer>
consecutive_5xx_errors

Server errors in a row before a backend is taken out. Default 5.

integer
consecutive_gateway_errors

Errors 502, 503 or 504 in a row before a backend is taken out. Default 5.

integer
base_ejection_time_seconds

Seconds a backend stays out after it is taken out. Default 30.

integer
outlier_interval_seconds

Seconds between scans for backends to take out. Default 10.

integer
max_ejection_percent

Most backends, in percent, that can be out at once. Default 50.

integer
split_external_local_origin_errors

Count connection errors apart from errors the backend returned. Default false.

boolean
listener_port
integer
nullable
frontend_protocols
Array<string>
backend_protocol
string
nullable
http_redirect
boolean
ssl_cert_id

ID of the certificate bound to the Load Balancer, as text.

string
nullable
ipv6
boolean
security_group_id
string
nullable
connection_timeout

Seconds to wait when connecting to a backend.

integer
nullable
client_timeout

Seconds a client connection may stay idle.

integer
nullable
server_timeout

Seconds a backend connection may stay idle.

integer
nullable
http_keep_alive_timeout

Seconds an idle HTTP connection is kept open.

integer
nullable
websocket_timeout

Seconds a WebSocket connection may stay open.

integer
nullable
created_by

The user who created the Load Balancer.

object
id
integer
name
string
email
string
username
string
created_at
string
updated_at
string
errors
object

Example

{
"code": 200,
"message": "Success",
"data": {
"id": 12,
"name": "example-lb",
"description": "Front end for the web tier",
"environment": null,
"connection_limit": 10000,
"rate_limit": 1000,
"rate_limit_unit": "Second",
"max_concurrent_requests": null,
"bandwidth_mbps": null,
"lb_type": "L4",
"scheme": "internet-facing",
"algorithm": "ROUND_ROBIN",
"vpc_id": null,
"node_count": 1,
"sku_id": null,
"health_check": true,
"health_check_config": {
"protocol": "TCP",
"interval_seconds": 10,
"timeout_seconds": 3,
"unhealthy_threshold": 3,
"healthy_threshold": 2,
"path": "/healthz",
"consecutive_5xx_errors": 5,
"consecutive_gateway_errors": 5,
"base_ejection_time_seconds": 30,
"outlier_interval_seconds": 10,
"max_ejection_percent": 50,
"split_external_local_origin_errors": false
},
"listener_port": 443,
"backend_protocol": "HTTP",
"http_redirect": false,
"ssl_cert_id": null,
"ipv6": false,
"security_group_id": null,
"connection_timeout": 10,
"client_timeout": 60,
"server_timeout": 60,
"http_keep_alive_timeout": 60,
"websocket_timeout": 3600,
"created_by": {
"id": 1,
"name": "A User",
"email": "user@example.com",
"username": "auser"
},
"created_at": "2026-10-21T11:17:29Z",
"updated_at": "2026-10-21T11:17:29Z"
},
"errors": {}
}

A field is not valid (errors is keyed by field); the new name is already used or the save failed (“Failed to update load balancer. Please try again later.”); committed_instance_policy was sent for a Load Balancer on an hourly plan (“End-of-term options apply only to a load balancer on a committed plan.”); or HTTP was turned off while a free certificate for a custom domain is in use. errors then reads “Can’t turn off HTTP. Your Let’s Encrypt certificate for renews over port 80. Remove the custom domain or use your own certificate first.” under frontend_protocols. A missing or invalid project ID also gives 400 with errors “Project ID is missing or invalid”.

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

Example

{
"code": 400,
"message": "Bad Request",
"data": {},
"errors": "Failed to update load balancer. Please try again later."
}

No Load Balancer 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": "Gateway not found"
}