Skip to main content

Update Load Balancer

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:

  • backends and tcp_backend are mutually exclusive; tcp_backend may contain at most one entry.

  • acl_list / acl_map may only be used on an ALB (they cannot coexist with tcp_backend).

  • default_backend may only be set when backends is non-empty.

  • For an internal load balancer (lb_type: internal) vpc_list is required and lb_reserve_ip must be empty.

PUT/api/v1/appliances/load-balancers/{lb_id}/

Path parameters

  • lb_idPathintegerrequired

    The id of the load balancer, as returned by the List Load Balancers endpoint.

    • required
    • must be a valid load balancer (appliance) ID
    example12345

Query parameters

  • project_idQueryintegerrequired

    Identifier of the project to scope the request to. Required integer project ID.

    • required
    • must be a valid integer project ID
    example{{project_id}}
  • apikeyQuerystringrequired

    API key used to authenticate the update request

    • required
    • non-empty string
    example{{api_key}}
  • locationQuerystringrequired

    Region of the load balancer being updated.

    • must be a non-empty string
    example{{location}}

Request body

application/json

object

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.

lb_namestringrequired

Display name (changing it here renames the load balancer).

examplenew-name-1
  • matches ^[A-Za-z0-9_-]+$
  • max length 64 characters
lb_typestringrequiredexternal | internal

Network scheme. internal requires a non-empty vpc_list and forbids lb_reserve_ip.

exampleexternal
lb_modestringrequired

Frontend protocol (HTTP/HTTPS/BOTH for an ALB, TCP for an NLB).

exampleHTTP
lb_portstringrequired

Listening port (string).

example80
  • integer 1-65535 (as a string)
  • ports 1-1023 and reserved ports 8080, 10050, 9101 rejected unless 80 or 443
plan_namestringrequired

Plan SKU. Changing it here is not how you upgrade - use Perform Load Balancer Action with type: upgrade_plan instead.

exampleE2E-LB-2
node_list_typestringrequiredD
exampleD
backendsarray

ALB 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.

tcp_backendarray

NLB TCP backend (same item shape as create). At most one entry. Mutually exclusive with backends.

acl_listarray

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.

acl_maparray

Maps named ACL rules (from acl_list) to the backend that should serve matching traffic. Only valid on an ALB.

default_backendstring

Backend that serves unmatched traffic. Must be empty if there are no backends.

examplebackend-group-1
ssl_contextobject

TLS configuration (ALB only).

connection_timeoutinteger
example61
  • minimum 60, maximum 10000
client_timeoutinteger
example61
  • minimum 60, maximum 10000
server_timeoutinteger
example61
  • minimum 60, maximum 10000
http_keep_alive_timeoutinteger
example61
  • minimum 60, maximum 10000
vpc_listarray

VPC attachments (required for internal load balancers).

security_group_idinteger
example12345
enable_bitninjaboolean
examplefalse
is_ipv6_attachedboolean
examplefalse
lb_reserve_ipstring
example

Responses

200Successful response
object
codeinteger
example200
dataobject
errorsobject
messagestring
exampleSuccess