curl --request PUT \ --url 'https://api.e2enetworks.com/myaccount/api/v1/appliances/load-balancers/{lb_id}/?project_id=<PROJECT_ID>&apikey=<API_KEY>&location=<LOCATION>' \ --header 'Authorization: Bearer <API_TOKEN>' \ --header 'Content-Type: application/json' \ --data '{ "lb_name": "new-name-1", "lb_type": "external", "lb_mode": "HTTP", "lb_port": "80", "plan_name": "E2E-LB-2", "node_list_type": "D", "backends": [ { "name": "backend-group-1", "balance": "source", "backend_mode": "http", "backend_ssl": false, "http_check": true, "check_url": "/", "domain_name": "localhost", "websocket_timeout": 60, "network_id": null, "scaler_id": null, "scaler_port": null, "servers": [ { "backend_name": "C3-8GB-853", "backend_ip": "10.2.3.4", "backend_port": 543 } ] } ], "tcp_backend": [], "acl_list": [ { "acl_name": "acl-1", "acl_condition": "path_beg -i", "acl_matching_path": "/api" } ], "acl_map": [ { "acl_name": "acl-1", "acl_backend": "backend-group-1", "acl_condition_state": true } ], "default_backend": "backend-group-1", "ssl_context": { "ssl_certificate_id": null, "redirect_to_https": false }, "connection_timeout": 61, "client_timeout": 61, "server_timeout": 61, "http_keep_alive_timeout": 61, "vpc_list": [ { "network_id": "12345", "vpc_name": "VPC-261", "ipv4_cidr": "10.1.2.3/23" } ], "security_group_id": 12345, "enable_bitninja": false, "is_ipv6_attached": false, "lb_reserve_ip": ""}'import requests
response = requests.put( "https://api.e2enetworks.com/myaccount/api/v1/appliances/load-balancers/{lb_id}/", params={"project_id": "<PROJECT_ID>", "apikey": "<API_KEY>", "location": "<LOCATION>"}, headers={"Authorization": "Bearer <API_TOKEN>"}, json={ "lb_name": "new-name-1", "lb_type": "external", "lb_mode": "HTTP", "lb_port": "80", "plan_name": "E2E-LB-2", "node_list_type": "D", "backends": [ { "name": "backend-group-1", "balance": "source", "backend_mode": "http", "backend_ssl": False, "http_check": True, "check_url": "/", "domain_name": "localhost", "websocket_timeout": 60, "network_id": None, "scaler_id": None, "scaler_port": None, "servers": [ { "backend_name": "C3-8GB-853", "backend_ip": "10.2.3.4", "backend_port": 543, }, ], }, ], "tcp_backend": [], "acl_list": [ { "acl_name": "acl-1", "acl_condition": "path_beg -i", "acl_matching_path": "/api", }, ], "acl_map": [ { "acl_name": "acl-1", "acl_backend": "backend-group-1", "acl_condition_state": True, }, ], "default_backend": "backend-group-1", "ssl_context": { "ssl_certificate_id": None, "redirect_to_https": False, }, "connection_timeout": 61, "client_timeout": 61, "server_timeout": 61, "http_keep_alive_timeout": 61, "vpc_list": [ { "network_id": "12345", "vpc_name": "VPC-261", "ipv4_cidr": "10.1.2.3/23", }, ], "security_group_id": 12345, "enable_bitninja": False, "is_ipv6_attached": False, "lb_reserve_ip": "", },)print(response.json())const url = new URL("https://api.e2enetworks.com/myaccount/api/v1/appliances/load-balancers/{lb_id}/");url.search = new URLSearchParams({ project_id: "<PROJECT_ID>", apikey: "<API_KEY>", location: "<LOCATION>" });
const response = await fetch(url, { method: "PUT", headers: { "Authorization": "Bearer <API_TOKEN>", "Content-Type": "application/json" }, body: JSON.stringify({ "lb_name": "new-name-1", "lb_type": "external", "lb_mode": "HTTP", "lb_port": "80", "plan_name": "E2E-LB-2", "node_list_type": "D", "backends": [ { "name": "backend-group-1", "balance": "source", "backend_mode": "http", "backend_ssl": false, "http_check": true, "check_url": "/", "domain_name": "localhost", "websocket_timeout": 60, "network_id": null, "scaler_id": null, "scaler_port": null, "servers": [ { "backend_name": "C3-8GB-853", "backend_ip": "10.2.3.4", "backend_port": 543 } ] } ], "tcp_backend": [], "acl_list": [ { "acl_name": "acl-1", "acl_condition": "path_beg -i", "acl_matching_path": "/api" } ], "acl_map": [ { "acl_name": "acl-1", "acl_backend": "backend-group-1", "acl_condition_state": true } ], "default_backend": "backend-group-1", "ssl_context": { "ssl_certificate_id": null, "redirect_to_https": false }, "connection_timeout": 61, "client_timeout": 61, "server_timeout": 61, "http_keep_alive_timeout": 61, "vpc_list": [ { "network_id": "12345", "vpc_name": "VPC-261", "ipv4_cidr": "10.1.2.3/23" } ], "security_group_id": 12345, "enable_bitninja": false, "is_ipv6_attached": false, "lb_reserve_ip": "" }),});console.log(await response.json());Updates the configuration of an existing load balancer. This is the endpoint used to add or change backends, backend servers, ACL routing rules (acl_list / acl_map), the TCP backend (tcp_backend), timeouts, SSL settings, and the plan.
The full configuration context must be re-sent on every update - the console reads the current context object (from List Load Balancers), mutates the arrays it needs to change, and PUTs the entire object back. Any field omitted is treated as cleared. Key rules enforced by the backend:
-
backendsandtcp_backendare mutually exclusive;tcp_backendmay contain at most one entry. -
acl_list/acl_mapmay only be used on an ALB (they cannot coexist withtcp_backend). -
default_backendmay only be set whenbackendsis non-empty. -
For an internal load balancer (
lb_type: internal)vpc_listis required andlb_reserve_ipmust be empty.
Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”The id of the load balancer, as returned by the List Load Balancers endpoint.
Example
12345Query Parameters
Section titled “Query Parameters”Identifier of the project to scope the request to. Required integer project ID.
Example
<PROJECT_ID>API key used to authenticate the update request
Example
<API_KEY>Region of the load balancer being updated.
Example
<LOCATION>Request Body
Section titled “Request Body”The complete load balancer configuration context. Read the current context from List Load Balancers, change the fields you need, and PUT the whole object back. Fields shared with create (plan, timeouts, ssl_context, vpc_list, backends/servers, security and encryption flags) behave identically; the fields below are the ones most relevant to updates.
object
Display name (changing it here renames the load balancer).
Example
new-name-1Network scheme. internal requires a non-empty vpc_list and forbids lb_reserve_ip.
Example
externalFrontend protocol (HTTP/HTTPS/BOTH for an ALB, TCP for an NLB).
Example
HTTPListening port (string).
Example
80Plan SKU. Changing it here is not how you upgrade - use Perform Load Balancer Action with type: upgrade_plan instead.
Example
E2E-LB-2Example
DALB backend groups (same item shape as create). Add, edit, or remove backends here. Empty for an NLB. Deleting a backend also prunes any acl_map entries that targeted it.
object
Example
backend-group-1Example
sourceExample
httpExample
falseExample
trueExample
/Example
localhostWebSocket idle timeout (1-100s); send null (not empty string) to disable.
Example
60Example
nullExample
nullExample
nullobject
Example
C3-8GB-853Example
10.2.3.4Example
543NLB TCP backend (same item shape as create). At most one entry. Mutually exclusive with backends.
Layer-7 ACL rule definitions (the match conditions). Only valid on an ALB - cannot coexist with tcp_backend. Each entry is paired 1:1 with an acl_map entry by acl_name.
object
Unique name for this ACL rule; referenced by the matching acl_map entry.
Example
acl-1HAProxy match condition. Built in the console from an ACL type (Path / Host / Query Parameter / HTTP Request / Source IP) and a comparison.
Example
path_beg -iThe value to match - a path, host, IP/CIDR, query-parameter value, or (for an HTTP-request ACL) a space-separated list of methods such as GET POST.
Example
/apiMaps named ACL rules (from acl_list) to the backend that should serve matching traffic. Only valid on an ALB.
object
Name of the ACL rule (must match an acl_list[].acl_name).
Example
acl-1Name of the backend group that serves traffic matching this ACL.
Example
backend-group-1When true (default) the rule routes to acl_backend on a match; false negates the condition.
Example
trueBackend that serves unmatched traffic. Must be empty if there are no backends.
Example
backend-group-1TLS configuration (ALB only).
object
Example
nullExample
falseExample
61Example
61Example
61Example
61VPC attachments (required for internal load balancers).
object
Example
12345Example
VPC-261Example
10.1.2.3/23Example
12345Example
falseExample
falseExample
Responses
Section titled “Responses”Successful response
object
object
object
Example
{ "code": 200, "data": { "appliance_id": 7972, "is_credit_sufficient": true }, "message": "Success"}