Skip to content

API: Load balancers

Generated from the API's OpenAPI schema. Paths are relative to https://cloud.tebibhost.com. Authentication, errors, pagination and idempotency are on the API overview.

GET/api/v1/projects/{project_id}/load-balancers

List Load Balancers (listLoadBalancers)

IAM action: network:DescribeLoadBalancer

ParameterInTypeDescription
project_id requiredpathstring
vpc_idquerystring (nullable)
limitqueryinteger (nullable)
cursorquerystring (nullable)

Responses

  • 200 OK (Page_LoadBalancerOut_)
  • 400 Invalid request (ErrorOut)
  • 401 Not authenticated (ErrorOut)
  • 403 Access denied: the error names the action and the resource (ErrorOut)
  • 404 Not found (also: the resource belongs to another organization) (ErrorOut)
  • 409 Conflict or quota exceeded (ErrorOut)
  • 422 Idempotency key reused for a different request (ErrorOut)
  • 429 Rate limited (ErrorOut)
Fields of Page_LoadBalancerOut_
FieldTypeDescription
itemsarray of LoadBalancerOut
next_cursorstring (nullable)

POST/api/v1/projects/{project_id}/load-balancers

Create Load Balancer (createLoadBalancer)

Create a load balancer, optionally with its target groups and listeners. A public one is reached through its VPC's NAT gateway, which must exist.

IAM action: network:CreateLoadBalancer

ParameterInTypeDescription
project_id requiredpathstring

Request body (JSON, LoadBalancerIn)

FieldTypeDescription
descriptionstring Default: "".
listenersarray of ListenerIn
name requiredstring
public_ip_idstring (nullable)public only: an allocated, unassociated public IP. Omitted: one is allocated and released with the load balancer
scheme"public" | "internal"public: a public IPv4 address; internal: the VPC address only Default: "public".
security_group_idsarray of string (nullable)Defaults to the subnet VPC's default security group
subnet_idstring (nullable)Defaults to the default VPC's default subnet
tagsobject
target_groupsarray of TargetGroupIn

Responses

  • 202 Accepted (LoadBalancerOut)
  • 400 Invalid request (ErrorOut)
  • 401 Not authenticated (ErrorOut)
  • 403 Access denied: the error names the action and the resource (ErrorOut)
  • 404 Not found (also: the resource belongs to another organization) (ErrorOut)
  • 409 Conflict or quota exceeded (ErrorOut)
  • 422 Idempotency key reused for a different request (ErrorOut)
  • 429 Rate limited (ErrorOut)
Fields of LoadBalancerOut
FieldTypeDescription
addressstring (nullable)The load balancer's address inside its VPC (from 100.68.0.0/16)
created_atstring (date-time)
descriptionstring
idstring
listenersarray of ListenerOut
namestring
nodesLoadBalancerNodesOut
project_idstring
public_addressstring (nullable)
public_ip_idstring (nullable)
schemestring
security_group_idsarray of string
statestring
status_messagestring
subnet_idstring
tagsobject
target_groupsarray of TargetGroupOut
trnstring
updated_atstring (date-time)
vpc_idstring

GET/api/v1/projects/{project_id}/load-balancers/{lb_id}

Get Load Balancer (getLoadBalancer)

IAM action: network:DescribeLoadBalancer

ParameterInTypeDescription
project_id requiredpathstring
lb_id requiredpathstring

Responses

  • 200 OK (LoadBalancerOut)
  • 400 Invalid request (ErrorOut)
  • 401 Not authenticated (ErrorOut)
  • 403 Access denied: the error names the action and the resource (ErrorOut)
  • 404 Not found (also: the resource belongs to another organization) (ErrorOut)
  • 409 Conflict or quota exceeded (ErrorOut)
  • 422 Idempotency key reused for a different request (ErrorOut)
  • 429 Rate limited (ErrorOut)
Fields of LoadBalancerOut
FieldTypeDescription
addressstring (nullable)The load balancer's address inside its VPC (from 100.68.0.0/16)
created_atstring (date-time)
descriptionstring
idstring
listenersarray of ListenerOut
namestring
nodesLoadBalancerNodesOut
project_idstring
public_addressstring (nullable)
public_ip_idstring (nullable)
schemestring
security_group_idsarray of string
statestring
status_messagestring
subnet_idstring
tagsobject
target_groupsarray of TargetGroupOut
trnstring
updated_atstring (date-time)
vpc_idstring

PATCH/api/v1/projects/{project_id}/load-balancers/{lb_id}

Update Load Balancer (updateLoadBalancer)

IAM action: network:UpdateLoadBalancer

ParameterInTypeDescription
project_id requiredpathstring
lb_id requiredpathstring

Request body (JSON, TagsPatch)

FieldTypeDescription
descriptionstring (nullable)
tagsobject (nullable)

Responses

  • 200 OK (LoadBalancerOut)
  • 400 Invalid request (ErrorOut)
  • 401 Not authenticated (ErrorOut)
  • 403 Access denied: the error names the action and the resource (ErrorOut)
  • 404 Not found (also: the resource belongs to another organization) (ErrorOut)
  • 409 Conflict or quota exceeded (ErrorOut)
  • 422 Idempotency key reused for a different request (ErrorOut)
  • 429 Rate limited (ErrorOut)
Fields of LoadBalancerOut
FieldTypeDescription
addressstring (nullable)The load balancer's address inside its VPC (from 100.68.0.0/16)
created_atstring (date-time)
descriptionstring
idstring
listenersarray of ListenerOut
namestring
nodesLoadBalancerNodesOut
project_idstring
public_addressstring (nullable)
public_ip_idstring (nullable)
schemestring
security_group_idsarray of string
statestring
status_messagestring
subnet_idstring
tagsobject
target_groupsarray of TargetGroupOut
trnstring
updated_atstring (date-time)
vpc_idstring

DELETE/api/v1/projects/{project_id}/load-balancers/{lb_id}

Delete Load Balancer (deleteLoadBalancer)

Delete the load balancer. A public IP it allocated is released; one given at create goes back to the project, unassociated.

IAM action: network:DeleteLoadBalancer

ParameterInTypeDescription
project_id requiredpathstring
lb_id requiredpathstring

Responses

  • 202 Accepted (LoadBalancerOut)
  • 400 Invalid request (ErrorOut)
  • 401 Not authenticated (ErrorOut)
  • 403 Access denied: the error names the action and the resource (ErrorOut)
  • 404 Not found (also: the resource belongs to another organization) (ErrorOut)
  • 409 Conflict or quota exceeded (ErrorOut)
  • 422 Idempotency key reused for a different request (ErrorOut)
  • 429 Rate limited (ErrorOut)
Fields of LoadBalancerOut
FieldTypeDescription
addressstring (nullable)The load balancer's address inside its VPC (from 100.68.0.0/16)
created_atstring (date-time)
descriptionstring
idstring
listenersarray of ListenerOut
namestring
nodesLoadBalancerNodesOut
project_idstring
public_addressstring (nullable)
public_ip_idstring (nullable)
schemestring
security_group_idsarray of string
statestring
status_messagestring
subnet_idstring
tagsobject
target_groupsarray of TargetGroupOut
trnstring
updated_atstring (date-time)
vpc_idstring

POST/api/v1/projects/{project_id}/load-balancers/{lb_id}/listeners

Create Listener (createListener)

IAM action: network:CreateLoadBalancerListener

ParameterInTypeDescription
project_id requiredpathstring
lb_id requiredpathstring

Request body (JSON, ListenerIn)

FieldTypeDescription
port requiredinteger
protocol"tcp" | "http" Default: "tcp".
target_group_idstring (nullable)
target_group_namestring (nullable)A target group of the same request (create) or of the load balancer

Responses

  • 202 Accepted (LoadBalancerOut)
  • 400 Invalid request (ErrorOut)
  • 401 Not authenticated (ErrorOut)
  • 403 Access denied: the error names the action and the resource (ErrorOut)
  • 404 Not found (also: the resource belongs to another organization) (ErrorOut)
  • 409 Conflict or quota exceeded (ErrorOut)
  • 422 Idempotency key reused for a different request (ErrorOut)
  • 429 Rate limited (ErrorOut)
Fields of LoadBalancerOut
FieldTypeDescription
addressstring (nullable)The load balancer's address inside its VPC (from 100.68.0.0/16)
created_atstring (date-time)
descriptionstring
idstring
listenersarray of ListenerOut
namestring
nodesLoadBalancerNodesOut
project_idstring
public_addressstring (nullable)
public_ip_idstring (nullable)
schemestring
security_group_idsarray of string
statestring
status_messagestring
subnet_idstring
tagsobject
target_groupsarray of TargetGroupOut
trnstring
updated_atstring (date-time)
vpc_idstring

PATCH/api/v1/projects/{project_id}/load-balancers/{lb_id}/listeners/{listener_id}

Update Listener (updateListener)

Point the listener at another target group (same protocol).

IAM action: network:UpdateLoadBalancerListener

ParameterInTypeDescription
project_id requiredpathstring
lb_id requiredpathstring
listener_id requiredpathstring

Request body (JSON, ListenerPatch)

FieldTypeDescription
target_group_id requiredstring

Responses

  • 202 Accepted (LoadBalancerOut)
  • 400 Invalid request (ErrorOut)
  • 401 Not authenticated (ErrorOut)
  • 403 Access denied: the error names the action and the resource (ErrorOut)
  • 404 Not found (also: the resource belongs to another organization) (ErrorOut)
  • 409 Conflict or quota exceeded (ErrorOut)
  • 422 Idempotency key reused for a different request (ErrorOut)
  • 429 Rate limited (ErrorOut)
Fields of LoadBalancerOut
FieldTypeDescription
addressstring (nullable)The load balancer's address inside its VPC (from 100.68.0.0/16)
created_atstring (date-time)
descriptionstring
idstring
listenersarray of ListenerOut
namestring
nodesLoadBalancerNodesOut
project_idstring
public_addressstring (nullable)
public_ip_idstring (nullable)
schemestring
security_group_idsarray of string
statestring
status_messagestring
subnet_idstring
tagsobject
target_groupsarray of TargetGroupOut
trnstring
updated_atstring (date-time)
vpc_idstring

DELETE/api/v1/projects/{project_id}/load-balancers/{lb_id}/listeners/{listener_id}

Delete Listener (deleteListener)

IAM action: network:DeleteLoadBalancerListener

ParameterInTypeDescription
project_id requiredpathstring
lb_id requiredpathstring
listener_id requiredpathstring

Responses

  • 202 Accepted (LoadBalancerOut)
  • 400 Invalid request (ErrorOut)
  • 401 Not authenticated (ErrorOut)
  • 403 Access denied: the error names the action and the resource (ErrorOut)
  • 404 Not found (also: the resource belongs to another organization) (ErrorOut)
  • 409 Conflict or quota exceeded (ErrorOut)
  • 422 Idempotency key reused for a different request (ErrorOut)
  • 429 Rate limited (ErrorOut)
Fields of LoadBalancerOut
FieldTypeDescription
addressstring (nullable)The load balancer's address inside its VPC (from 100.68.0.0/16)
created_atstring (date-time)
descriptionstring
idstring
listenersarray of ListenerOut
namestring
nodesLoadBalancerNodesOut
project_idstring
public_addressstring (nullable)
public_ip_idstring (nullable)
schemestring
security_group_idsarray of string
statestring
status_messagestring
subnet_idstring
tagsobject
target_groupsarray of TargetGroupOut
trnstring
updated_atstring (date-time)
vpc_idstring

PUT/api/v1/projects/{project_id}/load-balancers/{lb_id}/security-groups

Set Load Balancer Security Groups (setLoadBalancerSecurityGroups)

Replace the groups the load balancer's nodes are in (same VPC). Its nodes are replaced one at a time.

IAM action: network:SetLoadBalancerSecurityGroups

ParameterInTypeDescription
project_id requiredpathstring
lb_id requiredpathstring

Request body (JSON, LoadBalancerSecurityGroupsIn)

FieldTypeDescription
security_group_ids requiredarray of string

Responses

  • 202 Accepted (LoadBalancerOut)
  • 400 Invalid request (ErrorOut)
  • 401 Not authenticated (ErrorOut)
  • 403 Access denied: the error names the action and the resource (ErrorOut)
  • 404 Not found (also: the resource belongs to another organization) (ErrorOut)
  • 409 Conflict or quota exceeded (ErrorOut)
  • 422 Idempotency key reused for a different request (ErrorOut)
  • 429 Rate limited (ErrorOut)
Fields of LoadBalancerOut
FieldTypeDescription
addressstring (nullable)The load balancer's address inside its VPC (from 100.68.0.0/16)
created_atstring (date-time)
descriptionstring
idstring
listenersarray of ListenerOut
namestring
nodesLoadBalancerNodesOut
project_idstring
public_addressstring (nullable)
public_ip_idstring (nullable)
schemestring
security_group_idsarray of string
statestring
status_messagestring
subnet_idstring
tagsobject
target_groupsarray of TargetGroupOut
trnstring
updated_atstring (date-time)
vpc_idstring

POST/api/v1/projects/{project_id}/load-balancers/{lb_id}/target-groups

Create Target Group (createTargetGroup)

IAM action: network:CreateTargetGroup

ParameterInTypeDescription
project_id requiredpathstring
lb_id requiredpathstring

Request body (JSON, TargetGroupIn)

FieldTypeDescription
algorithm"round_robin" | "least_connections" | "source_ip" Default: "round_robin".
health_checkobject
name requiredstring
port requiredinteger
protocol"tcp" | "http" Default: "tcp".
proxy_protocolbooleanTCP only: send a PROXY protocol v2 header to the targets Default: false.
targetsarray of TargetIn

Responses

  • 202 Accepted (LoadBalancerOut)
  • 400 Invalid request (ErrorOut)
  • 401 Not authenticated (ErrorOut)
  • 403 Access denied: the error names the action and the resource (ErrorOut)
  • 404 Not found (also: the resource belongs to another organization) (ErrorOut)
  • 409 Conflict or quota exceeded (ErrorOut)
  • 422 Idempotency key reused for a different request (ErrorOut)
  • 429 Rate limited (ErrorOut)
Fields of LoadBalancerOut
FieldTypeDescription
addressstring (nullable)The load balancer's address inside its VPC (from 100.68.0.0/16)
created_atstring (date-time)
descriptionstring
idstring
listenersarray of ListenerOut
namestring
nodesLoadBalancerNodesOut
project_idstring
public_addressstring (nullable)
public_ip_idstring (nullable)
schemestring
security_group_idsarray of string
statestring
status_messagestring
subnet_idstring
tagsobject
target_groupsarray of TargetGroupOut
trnstring
updated_atstring (date-time)
vpc_idstring

PATCH/api/v1/projects/{project_id}/load-balancers/{lb_id}/target-groups/{tg_id}

Update Target Group (updateTargetGroup)

Change the algorithm, the default port, PROXY protocol or the health check.

IAM action: network:UpdateTargetGroup

ParameterInTypeDescription
project_id requiredpathstring
lb_id requiredpathstring
tg_id requiredpathstring

Request body (JSON, TargetGroupPatch)

FieldTypeDescription
algorithm"round_robin" | "least_connections" | "source_ip" (nullable)
health_checkHealthCheckIn (nullable)
portinteger (nullable)
proxy_protocolboolean (nullable)

Responses

  • 202 Accepted (LoadBalancerOut)
  • 400 Invalid request (ErrorOut)
  • 401 Not authenticated (ErrorOut)
  • 403 Access denied: the error names the action and the resource (ErrorOut)
  • 404 Not found (also: the resource belongs to another organization) (ErrorOut)
  • 409 Conflict or quota exceeded (ErrorOut)
  • 422 Idempotency key reused for a different request (ErrorOut)
  • 429 Rate limited (ErrorOut)
Fields of LoadBalancerOut
FieldTypeDescription
addressstring (nullable)The load balancer's address inside its VPC (from 100.68.0.0/16)
created_atstring (date-time)
descriptionstring
idstring
listenersarray of ListenerOut
namestring
nodesLoadBalancerNodesOut
project_idstring
public_addressstring (nullable)
public_ip_idstring (nullable)
schemestring
security_group_idsarray of string
statestring
status_messagestring
subnet_idstring
tagsobject
target_groupsarray of TargetGroupOut
trnstring
updated_atstring (date-time)
vpc_idstring

DELETE/api/v1/projects/{project_id}/load-balancers/{lb_id}/target-groups/{tg_id}

Delete Target Group (deleteTargetGroup)

IAM action: network:DeleteTargetGroup

ParameterInTypeDescription
project_id requiredpathstring
lb_id requiredpathstring
tg_id requiredpathstring

Responses

  • 202 Accepted (LoadBalancerOut)
  • 400 Invalid request (ErrorOut)
  • 401 Not authenticated (ErrorOut)
  • 403 Access denied: the error names the action and the resource (ErrorOut)
  • 404 Not found (also: the resource belongs to another organization) (ErrorOut)
  • 409 Conflict or quota exceeded (ErrorOut)
  • 422 Idempotency key reused for a different request (ErrorOut)
  • 429 Rate limited (ErrorOut)
Fields of LoadBalancerOut
FieldTypeDescription
addressstring (nullable)The load balancer's address inside its VPC (from 100.68.0.0/16)
created_atstring (date-time)
descriptionstring
idstring
listenersarray of ListenerOut
namestring
nodesLoadBalancerNodesOut
project_idstring
public_addressstring (nullable)
public_ip_idstring (nullable)
schemestring
security_group_idsarray of string
statestring
status_messagestring
subnet_idstring
tagsobject
target_groupsarray of TargetGroupOut
trnstring
updated_atstring (date-time)
vpc_idstring

POST/api/v1/projects/{project_id}/load-balancers/{lb_id}/target-groups/{tg_id}/targets

Register Target (registerTarget)

Add a VM of the load balancer's VPC to the target group.

IAM action: network:RegisterTargets

ParameterInTypeDescription
project_id requiredpathstring
lb_id requiredpathstring
tg_id requiredpathstring

Request body (JSON, TargetIn)

FieldTypeDescription
portinteger (nullable)Defaults to the group's port
vm_id requiredstring

Responses

  • 202 Accepted (LoadBalancerOut)
  • 400 Invalid request (ErrorOut)
  • 401 Not authenticated (ErrorOut)
  • 403 Access denied: the error names the action and the resource (ErrorOut)
  • 404 Not found (also: the resource belongs to another organization) (ErrorOut)
  • 409 Conflict or quota exceeded (ErrorOut)
  • 422 Idempotency key reused for a different request (ErrorOut)
  • 429 Rate limited (ErrorOut)
Fields of LoadBalancerOut
FieldTypeDescription
addressstring (nullable)The load balancer's address inside its VPC (from 100.68.0.0/16)
created_atstring (date-time)
descriptionstring
idstring
listenersarray of ListenerOut
namestring
nodesLoadBalancerNodesOut
project_idstring
public_addressstring (nullable)
public_ip_idstring (nullable)
schemestring
security_group_idsarray of string
statestring
status_messagestring
subnet_idstring
tagsobject
target_groupsarray of TargetGroupOut
trnstring
updated_atstring (date-time)
vpc_idstring

DELETE/api/v1/projects/{project_id}/load-balancers/{lb_id}/target-groups/{tg_id}/targets/{target_id}

Deregister Target (deregisterTarget)

IAM action: network:DeregisterTargets

ParameterInTypeDescription
project_id requiredpathstring
lb_id requiredpathstring
tg_id requiredpathstring
target_id requiredpathstring

Responses

  • 202 Accepted (LoadBalancerOut)
  • 400 Invalid request (ErrorOut)
  • 401 Not authenticated (ErrorOut)
  • 403 Access denied: the error names the action and the resource (ErrorOut)
  • 404 Not found (also: the resource belongs to another organization) (ErrorOut)
  • 409 Conflict or quota exceeded (ErrorOut)
  • 422 Idempotency key reused for a different request (ErrorOut)
  • 429 Rate limited (ErrorOut)
Fields of LoadBalancerOut
FieldTypeDescription
addressstring (nullable)The load balancer's address inside its VPC (from 100.68.0.0/16)
created_atstring (date-time)
descriptionstring
idstring
listenersarray of ListenerOut
namestring
nodesLoadBalancerNodesOut
project_idstring
public_addressstring (nullable)
public_ip_idstring (nullable)
schemestring
security_group_idsarray of string
statestring
status_messagestring
subnet_idstring
tagsobject
target_groupsarray of TargetGroupOut
trnstring
updated_atstring (date-time)
vpc_idstring