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
| Parameter | In | Type | Description |
|---|---|---|---|
project_id required | path | string | |
vpc_id | query | string (nullable) | |
limit | query | integer (nullable) | |
cursor | query | string (nullable) |
Responses
200OK (Page_LoadBalancerOut_)400Invalid request (ErrorOut)401Not authenticated (ErrorOut)403Access denied: the error names the action and the resource (ErrorOut)404Not found (also: the resource belongs to another organization) (ErrorOut)409Conflict or quota exceeded (ErrorOut)422Idempotency key reused for a different request (ErrorOut)429Rate limited (ErrorOut)
Fields of Page_LoadBalancerOut_
| Field | Type | Description |
|---|---|---|
items | array of LoadBalancerOut | |
next_cursor | string (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
| Parameter | In | Type | Description |
|---|---|---|---|
project_id required | path | string |
Request body (JSON, LoadBalancerIn)
| Field | Type | Description |
|---|---|---|
description | string | Default: "". |
listeners | array of ListenerIn | |
name required | string | |
public_ip_id | string (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_ids | array of string (nullable) | Defaults to the subnet VPC's default security group |
subnet_id | string (nullable) | Defaults to the default VPC's default subnet |
tags | object | |
target_groups | array of TargetGroupIn |
Responses
202Accepted (LoadBalancerOut)400Invalid request (ErrorOut)401Not authenticated (ErrorOut)403Access denied: the error names the action and the resource (ErrorOut)404Not found (also: the resource belongs to another organization) (ErrorOut)409Conflict or quota exceeded (ErrorOut)422Idempotency key reused for a different request (ErrorOut)429Rate limited (ErrorOut)
Fields of LoadBalancerOut
| Field | Type | Description |
|---|---|---|
address | string (nullable) | The load balancer's address inside its VPC (from 100.68.0.0/16) |
created_at | string (date-time) | |
description | string | |
id | string | |
listeners | array of ListenerOut | |
name | string | |
nodes | LoadBalancerNodesOut | |
project_id | string | |
public_address | string (nullable) | |
public_ip_id | string (nullable) | |
scheme | string | |
security_group_ids | array of string | |
state | string | |
status_message | string | |
subnet_id | string | |
tags | object | |
target_groups | array of TargetGroupOut | |
trn | string | |
updated_at | string (date-time) | |
vpc_id | string |
GET/api/v1/projects/{project_id}/load-balancers/{lb_id}
Get Load Balancer (getLoadBalancer)
IAM action: network:DescribeLoadBalancer
| Parameter | In | Type | Description |
|---|---|---|---|
project_id required | path | string | |
lb_id required | path | string |
Responses
200OK (LoadBalancerOut)400Invalid request (ErrorOut)401Not authenticated (ErrorOut)403Access denied: the error names the action and the resource (ErrorOut)404Not found (also: the resource belongs to another organization) (ErrorOut)409Conflict or quota exceeded (ErrorOut)422Idempotency key reused for a different request (ErrorOut)429Rate limited (ErrorOut)
Fields of LoadBalancerOut
| Field | Type | Description |
|---|---|---|
address | string (nullable) | The load balancer's address inside its VPC (from 100.68.0.0/16) |
created_at | string (date-time) | |
description | string | |
id | string | |
listeners | array of ListenerOut | |
name | string | |
nodes | LoadBalancerNodesOut | |
project_id | string | |
public_address | string (nullable) | |
public_ip_id | string (nullable) | |
scheme | string | |
security_group_ids | array of string | |
state | string | |
status_message | string | |
subnet_id | string | |
tags | object | |
target_groups | array of TargetGroupOut | |
trn | string | |
updated_at | string (date-time) | |
vpc_id | string |
PATCH/api/v1/projects/{project_id}/load-balancers/{lb_id}
Update Load Balancer (updateLoadBalancer)
IAM action: network:UpdateLoadBalancer
| Parameter | In | Type | Description |
|---|---|---|---|
project_id required | path | string | |
lb_id required | path | string |
Request body (JSON, TagsPatch)
| Field | Type | Description |
|---|---|---|
description | string (nullable) | |
tags | object (nullable) |
Responses
200OK (LoadBalancerOut)400Invalid request (ErrorOut)401Not authenticated (ErrorOut)403Access denied: the error names the action and the resource (ErrorOut)404Not found (also: the resource belongs to another organization) (ErrorOut)409Conflict or quota exceeded (ErrorOut)422Idempotency key reused for a different request (ErrorOut)429Rate limited (ErrorOut)
Fields of LoadBalancerOut
| Field | Type | Description |
|---|---|---|
address | string (nullable) | The load balancer's address inside its VPC (from 100.68.0.0/16) |
created_at | string (date-time) | |
description | string | |
id | string | |
listeners | array of ListenerOut | |
name | string | |
nodes | LoadBalancerNodesOut | |
project_id | string | |
public_address | string (nullable) | |
public_ip_id | string (nullable) | |
scheme | string | |
security_group_ids | array of string | |
state | string | |
status_message | string | |
subnet_id | string | |
tags | object | |
target_groups | array of TargetGroupOut | |
trn | string | |
updated_at | string (date-time) | |
vpc_id | string |
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
| Parameter | In | Type | Description |
|---|---|---|---|
project_id required | path | string | |
lb_id required | path | string |
Responses
202Accepted (LoadBalancerOut)400Invalid request (ErrorOut)401Not authenticated (ErrorOut)403Access denied: the error names the action and the resource (ErrorOut)404Not found (also: the resource belongs to another organization) (ErrorOut)409Conflict or quota exceeded (ErrorOut)422Idempotency key reused for a different request (ErrorOut)429Rate limited (ErrorOut)
Fields of LoadBalancerOut
| Field | Type | Description |
|---|---|---|
address | string (nullable) | The load balancer's address inside its VPC (from 100.68.0.0/16) |
created_at | string (date-time) | |
description | string | |
id | string | |
listeners | array of ListenerOut | |
name | string | |
nodes | LoadBalancerNodesOut | |
project_id | string | |
public_address | string (nullable) | |
public_ip_id | string (nullable) | |
scheme | string | |
security_group_ids | array of string | |
state | string | |
status_message | string | |
subnet_id | string | |
tags | object | |
target_groups | array of TargetGroupOut | |
trn | string | |
updated_at | string (date-time) | |
vpc_id | string |
POST/api/v1/projects/{project_id}/load-balancers/{lb_id}/listeners
Create Listener (createListener)
IAM action: network:CreateLoadBalancerListener
| Parameter | In | Type | Description |
|---|---|---|---|
project_id required | path | string | |
lb_id required | path | string |
Request body (JSON, ListenerIn)
| Field | Type | Description |
|---|---|---|
port required | integer | |
protocol | "tcp" | "http" | Default: "tcp". |
target_group_id | string (nullable) | |
target_group_name | string (nullable) | A target group of the same request (create) or of the load balancer |
Responses
202Accepted (LoadBalancerOut)400Invalid request (ErrorOut)401Not authenticated (ErrorOut)403Access denied: the error names the action and the resource (ErrorOut)404Not found (also: the resource belongs to another organization) (ErrorOut)409Conflict or quota exceeded (ErrorOut)422Idempotency key reused for a different request (ErrorOut)429Rate limited (ErrorOut)
Fields of LoadBalancerOut
| Field | Type | Description |
|---|---|---|
address | string (nullable) | The load balancer's address inside its VPC (from 100.68.0.0/16) |
created_at | string (date-time) | |
description | string | |
id | string | |
listeners | array of ListenerOut | |
name | string | |
nodes | LoadBalancerNodesOut | |
project_id | string | |
public_address | string (nullable) | |
public_ip_id | string (nullable) | |
scheme | string | |
security_group_ids | array of string | |
state | string | |
status_message | string | |
subnet_id | string | |
tags | object | |
target_groups | array of TargetGroupOut | |
trn | string | |
updated_at | string (date-time) | |
vpc_id | string |
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
| Parameter | In | Type | Description |
|---|---|---|---|
project_id required | path | string | |
lb_id required | path | string | |
listener_id required | path | string |
Request body (JSON, ListenerPatch)
| Field | Type | Description |
|---|---|---|
target_group_id required | string |
Responses
202Accepted (LoadBalancerOut)400Invalid request (ErrorOut)401Not authenticated (ErrorOut)403Access denied: the error names the action and the resource (ErrorOut)404Not found (also: the resource belongs to another organization) (ErrorOut)409Conflict or quota exceeded (ErrorOut)422Idempotency key reused for a different request (ErrorOut)429Rate limited (ErrorOut)
Fields of LoadBalancerOut
| Field | Type | Description |
|---|---|---|
address | string (nullable) | The load balancer's address inside its VPC (from 100.68.0.0/16) |
created_at | string (date-time) | |
description | string | |
id | string | |
listeners | array of ListenerOut | |
name | string | |
nodes | LoadBalancerNodesOut | |
project_id | string | |
public_address | string (nullable) | |
public_ip_id | string (nullable) | |
scheme | string | |
security_group_ids | array of string | |
state | string | |
status_message | string | |
subnet_id | string | |
tags | object | |
target_groups | array of TargetGroupOut | |
trn | string | |
updated_at | string (date-time) | |
vpc_id | string |
DELETE/api/v1/projects/{project_id}/load-balancers/{lb_id}/listeners/{listener_id}
Delete Listener (deleteListener)
IAM action: network:DeleteLoadBalancerListener
| Parameter | In | Type | Description |
|---|---|---|---|
project_id required | path | string | |
lb_id required | path | string | |
listener_id required | path | string |
Responses
202Accepted (LoadBalancerOut)400Invalid request (ErrorOut)401Not authenticated (ErrorOut)403Access denied: the error names the action and the resource (ErrorOut)404Not found (also: the resource belongs to another organization) (ErrorOut)409Conflict or quota exceeded (ErrorOut)422Idempotency key reused for a different request (ErrorOut)429Rate limited (ErrorOut)
Fields of LoadBalancerOut
| Field | Type | Description |
|---|---|---|
address | string (nullable) | The load balancer's address inside its VPC (from 100.68.0.0/16) |
created_at | string (date-time) | |
description | string | |
id | string | |
listeners | array of ListenerOut | |
name | string | |
nodes | LoadBalancerNodesOut | |
project_id | string | |
public_address | string (nullable) | |
public_ip_id | string (nullable) | |
scheme | string | |
security_group_ids | array of string | |
state | string | |
status_message | string | |
subnet_id | string | |
tags | object | |
target_groups | array of TargetGroupOut | |
trn | string | |
updated_at | string (date-time) | |
vpc_id | string |
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
| Parameter | In | Type | Description |
|---|---|---|---|
project_id required | path | string | |
lb_id required | path | string |
Request body (JSON, LoadBalancerSecurityGroupsIn)
| Field | Type | Description |
|---|---|---|
security_group_ids required | array of string |
Responses
202Accepted (LoadBalancerOut)400Invalid request (ErrorOut)401Not authenticated (ErrorOut)403Access denied: the error names the action and the resource (ErrorOut)404Not found (also: the resource belongs to another organization) (ErrorOut)409Conflict or quota exceeded (ErrorOut)422Idempotency key reused for a different request (ErrorOut)429Rate limited (ErrorOut)
Fields of LoadBalancerOut
| Field | Type | Description |
|---|---|---|
address | string (nullable) | The load balancer's address inside its VPC (from 100.68.0.0/16) |
created_at | string (date-time) | |
description | string | |
id | string | |
listeners | array of ListenerOut | |
name | string | |
nodes | LoadBalancerNodesOut | |
project_id | string | |
public_address | string (nullable) | |
public_ip_id | string (nullable) | |
scheme | string | |
security_group_ids | array of string | |
state | string | |
status_message | string | |
subnet_id | string | |
tags | object | |
target_groups | array of TargetGroupOut | |
trn | string | |
updated_at | string (date-time) | |
vpc_id | string |
POST/api/v1/projects/{project_id}/load-balancers/{lb_id}/target-groups
Create Target Group (createTargetGroup)
IAM action: network:CreateTargetGroup
| Parameter | In | Type | Description |
|---|---|---|---|
project_id required | path | string | |
lb_id required | path | string |
Request body (JSON, TargetGroupIn)
| Field | Type | Description |
|---|---|---|
algorithm | "round_robin" | "least_connections" | "source_ip" | Default: "round_robin". |
health_check | object | |
name required | string | |
port required | integer | |
protocol | "tcp" | "http" | Default: "tcp". |
proxy_protocol | boolean | TCP only: send a PROXY protocol v2 header to the targets Default: false. |
targets | array of TargetIn |
Responses
202Accepted (LoadBalancerOut)400Invalid request (ErrorOut)401Not authenticated (ErrorOut)403Access denied: the error names the action and the resource (ErrorOut)404Not found (also: the resource belongs to another organization) (ErrorOut)409Conflict or quota exceeded (ErrorOut)422Idempotency key reused for a different request (ErrorOut)429Rate limited (ErrorOut)
Fields of LoadBalancerOut
| Field | Type | Description |
|---|---|---|
address | string (nullable) | The load balancer's address inside its VPC (from 100.68.0.0/16) |
created_at | string (date-time) | |
description | string | |
id | string | |
listeners | array of ListenerOut | |
name | string | |
nodes | LoadBalancerNodesOut | |
project_id | string | |
public_address | string (nullable) | |
public_ip_id | string (nullable) | |
scheme | string | |
security_group_ids | array of string | |
state | string | |
status_message | string | |
subnet_id | string | |
tags | object | |
target_groups | array of TargetGroupOut | |
trn | string | |
updated_at | string (date-time) | |
vpc_id | string |
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
| Parameter | In | Type | Description |
|---|---|---|---|
project_id required | path | string | |
lb_id required | path | string | |
tg_id required | path | string |
Request body (JSON, TargetGroupPatch)
| Field | Type | Description |
|---|---|---|
algorithm | "round_robin" | "least_connections" | "source_ip" (nullable) | |
health_check | HealthCheckIn (nullable) | |
port | integer (nullable) | |
proxy_protocol | boolean (nullable) |
Responses
202Accepted (LoadBalancerOut)400Invalid request (ErrorOut)401Not authenticated (ErrorOut)403Access denied: the error names the action and the resource (ErrorOut)404Not found (also: the resource belongs to another organization) (ErrorOut)409Conflict or quota exceeded (ErrorOut)422Idempotency key reused for a different request (ErrorOut)429Rate limited (ErrorOut)
Fields of LoadBalancerOut
| Field | Type | Description |
|---|---|---|
address | string (nullable) | The load balancer's address inside its VPC (from 100.68.0.0/16) |
created_at | string (date-time) | |
description | string | |
id | string | |
listeners | array of ListenerOut | |
name | string | |
nodes | LoadBalancerNodesOut | |
project_id | string | |
public_address | string (nullable) | |
public_ip_id | string (nullable) | |
scheme | string | |
security_group_ids | array of string | |
state | string | |
status_message | string | |
subnet_id | string | |
tags | object | |
target_groups | array of TargetGroupOut | |
trn | string | |
updated_at | string (date-time) | |
vpc_id | string |
DELETE/api/v1/projects/{project_id}/load-balancers/{lb_id}/target-groups/{tg_id}
Delete Target Group (deleteTargetGroup)
IAM action: network:DeleteTargetGroup
| Parameter | In | Type | Description |
|---|---|---|---|
project_id required | path | string | |
lb_id required | path | string | |
tg_id required | path | string |
Responses
202Accepted (LoadBalancerOut)400Invalid request (ErrorOut)401Not authenticated (ErrorOut)403Access denied: the error names the action and the resource (ErrorOut)404Not found (also: the resource belongs to another organization) (ErrorOut)409Conflict or quota exceeded (ErrorOut)422Idempotency key reused for a different request (ErrorOut)429Rate limited (ErrorOut)
Fields of LoadBalancerOut
| Field | Type | Description |
|---|---|---|
address | string (nullable) | The load balancer's address inside its VPC (from 100.68.0.0/16) |
created_at | string (date-time) | |
description | string | |
id | string | |
listeners | array of ListenerOut | |
name | string | |
nodes | LoadBalancerNodesOut | |
project_id | string | |
public_address | string (nullable) | |
public_ip_id | string (nullable) | |
scheme | string | |
security_group_ids | array of string | |
state | string | |
status_message | string | |
subnet_id | string | |
tags | object | |
target_groups | array of TargetGroupOut | |
trn | string | |
updated_at | string (date-time) | |
vpc_id | string |
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
| Parameter | In | Type | Description |
|---|---|---|---|
project_id required | path | string | |
lb_id required | path | string | |
tg_id required | path | string |
Request body (JSON, TargetIn)
| Field | Type | Description |
|---|---|---|
port | integer (nullable) | Defaults to the group's port |
vm_id required | string |
Responses
202Accepted (LoadBalancerOut)400Invalid request (ErrorOut)401Not authenticated (ErrorOut)403Access denied: the error names the action and the resource (ErrorOut)404Not found (also: the resource belongs to another organization) (ErrorOut)409Conflict or quota exceeded (ErrorOut)422Idempotency key reused for a different request (ErrorOut)429Rate limited (ErrorOut)
Fields of LoadBalancerOut
| Field | Type | Description |
|---|---|---|
address | string (nullable) | The load balancer's address inside its VPC (from 100.68.0.0/16) |
created_at | string (date-time) | |
description | string | |
id | string | |
listeners | array of ListenerOut | |
name | string | |
nodes | LoadBalancerNodesOut | |
project_id | string | |
public_address | string (nullable) | |
public_ip_id | string (nullable) | |
scheme | string | |
security_group_ids | array of string | |
state | string | |
status_message | string | |
subnet_id | string | |
tags | object | |
target_groups | array of TargetGroupOut | |
trn | string | |
updated_at | string (date-time) | |
vpc_id | string |
DELETE/api/v1/projects/{project_id}/load-balancers/{lb_id}/target-groups/{tg_id}/targets/{target_id}
Deregister Target (deregisterTarget)
IAM action: network:DeregisterTargets
| Parameter | In | Type | Description |
|---|---|---|---|
project_id required | path | string | |
lb_id required | path | string | |
tg_id required | path | string | |
target_id required | path | string |
Responses
202Accepted (LoadBalancerOut)400Invalid request (ErrorOut)401Not authenticated (ErrorOut)403Access denied: the error names the action and the resource (ErrorOut)404Not found (also: the resource belongs to another organization) (ErrorOut)409Conflict or quota exceeded (ErrorOut)422Idempotency key reused for a different request (ErrorOut)429Rate limited (ErrorOut)
Fields of LoadBalancerOut
| Field | Type | Description |
|---|---|---|
address | string (nullable) | The load balancer's address inside its VPC (from 100.68.0.0/16) |
created_at | string (date-time) | |
description | string | |
id | string | |
listeners | array of ListenerOut | |
name | string | |
nodes | LoadBalancerNodesOut | |
project_id | string | |
public_address | string (nullable) | |
public_ip_id | string (nullable) | |
scheme | string | |
security_group_ids | array of string | |
state | string | |
status_message | string | |
subnet_id | string | |
tags | object | |
target_groups | array of TargetGroupOut | |
trn | string | |
updated_at | string (date-time) | |
vpc_id | string |