ByCloud Docs
GuidesCLIAPISDK

Go SDK

Load Balancers

Load balancers, listeners, pools, and health monitors

25 methods

GET

ListHealthMonitors()

List health monitors

Parameters

limit

integer

- Maximum number of items to return

marker

string

- ID of the last item from the previous page (for pagination)

name

string

- Filter by name (exact match or prefix with *)

tags

string

- Filter by tags (comma-separated)

pool_id

string

- Filter by pool ID

type

string

- Filter by health monitor type

Example

package main
import (
"context"
"fmt"
"github.com/bycoded/bycloud-go"
)
func main() {
client := bycloud.New(bycloud.WithToken("YOUR_ACCESS_TOKEN"))
ctx := context.Background()
result, err := client.LoadBalancers.ListHealthMonitors(ctx)
if err != nil {
panic(err)
}
fmt.Println(result)
}
POST

CreateHealthMonitor()

Create health monitor

Parameters

name

string

pool_id

string

required
type

string

required
delay

integer

required
timeout

integer

required
max_retries

integer

required
max_retries_down

integer

http_method

string

url_path

string

expected_codes

string

tags

array

Example

package main
import (
"context"
"fmt"
"github.com/bycoded/bycloud-go"
)
func main() {
client := bycloud.New(bycloud.WithToken("YOUR_ACCESS_TOKEN"))
ctx := context.Background()
result, err := client.LoadBalancers.CreateHealthMonitor(ctx, &bycloud.CreateHealthMonitorParams{
Pool_id: "550e8400-e29b-41d4-a716-446655440000",
Type: "HTTP",
Delay: 10,
Timeout: 10,
Max_retries: 10,
})
if err != nil {
panic(err)
}
fmt.Println(result)
}
GET

GetHealthMonitor()

Get health monitor

Parameters

health_monitor_id

string

required

- Health Monitor ID

Example

package main
import (
"context"
"fmt"
"github.com/bycoded/bycloud-go"
)
func main() {
client := bycloud.New(bycloud.WithToken("YOUR_ACCESS_TOKEN"))
ctx := context.Background()
result, err := client.LoadBalancers.GetHealthMonitor(ctx, &bycloud.GetHealthMonitorParams{
Health_monitor_id: "550e8400-e29b-41d4-a716-446655440000",
})
if err != nil {
panic(err)
}
fmt.Println(result)
}
PATCH

UpdateHealthMonitor()

Update health monitor

Parameters

health_monitor_id

string

required

- Health Monitor ID

name

string

delay

integer

timeout

integer

max_retries

integer

max_retries_down

integer

http_method

string

url_path

string

expected_codes

string

tags

array

Example

package main
import (
"context"
"fmt"
"github.com/bycoded/bycloud-go"
)
func main() {
client := bycloud.New(bycloud.WithToken("YOUR_ACCESS_TOKEN"))
ctx := context.Background()
result, err := client.LoadBalancers.UpdateHealthMonitor(ctx, &bycloud.UpdateHealthMonitorParams{
Health_monitor_id: "550e8400-e29b-41d4-a716-446655440000",
})
if err != nil {
panic(err)
}
fmt.Println(result)
}
DELETE

DeleteHealthMonitor()

Delete health monitor

Parameters

health_monitor_id

string

required

- Health Monitor ID

Example

package main
import (
"context"
"fmt"
"github.com/bycoded/bycloud-go"
)
func main() {
client := bycloud.New(bycloud.WithToken("YOUR_ACCESS_TOKEN"))
ctx := context.Background()
result, err := client.LoadBalancers.DeleteHealthMonitor(ctx, &bycloud.DeleteHealthMonitorParams{
Health_monitor_id: "550e8400-e29b-41d4-a716-446655440000",
})
if err != nil {
panic(err)
}
fmt.Println(result)
}
GET

ListListeners()

List listeners

Parameters

limit

integer

- Maximum number of items to return

marker

string

- ID of the last item from the previous page (for pagination)

name

string

- Filter by name (exact match or prefix with *)

tags

string

- Filter by tags (comma-separated)

load_balancer_id

string

- Filter by load balancer ID

protocol

string

- Filter by protocol

protocol_port

integer

- Filter by protocol port

Example

package main
import (
"context"
"fmt"
"github.com/bycoded/bycloud-go"
)
func main() {
client := bycloud.New(bycloud.WithToken("YOUR_ACCESS_TOKEN"))
ctx := context.Background()
result, err := client.LoadBalancers.ListListeners(ctx)
if err != nil {
panic(err)
}
fmt.Println(result)
}
POST

CreateListener()

Create listener

Parameters

name

string

description

string

load_balancer_id

string

required
protocol

string

required
protocol_port

integer

required
connection_limit

integer

default_pool_id

string

default_tls_container_ref

string

sni_container_refs

array

insert_headers

object

timeout_client_data

integer

timeout_member_connect

integer

timeout_member_data

integer

timeout_tcp_inspect

integer

tags

array

Example

package main
import (
"context"
"fmt"
"github.com/bycoded/bycloud-go"
)
func main() {
client := bycloud.New(bycloud.WithToken("YOUR_ACCESS_TOKEN"))
ctx := context.Background()
result, err := client.LoadBalancers.CreateListener(ctx, &bycloud.CreateListenerParams{
Load_balancer_id: "550e8400-e29b-41d4-a716-446655440000",
Protocol: "HTTP",
Protocol_port: 10,
})
if err != nil {
panic(err)
}
fmt.Println(result)
}
GET

GetListener()

Get listener

Parameters

listener_id

string

required

- Listener ID

Example

package main
import (
"context"
"fmt"
"github.com/bycoded/bycloud-go"
)
func main() {
client := bycloud.New(bycloud.WithToken("YOUR_ACCESS_TOKEN"))
ctx := context.Background()
result, err := client.LoadBalancers.GetListener(ctx, &bycloud.GetListenerParams{
Listener_id: "550e8400-e29b-41d4-a716-446655440000",
})
if err != nil {
panic(err)
}
fmt.Println(result)
}
PATCH

UpdateListener()

Update listener

Parameters

listener_id

string

required

- Listener ID

name

string

description

string

connection_limit

integer

default_pool_id

string

default_tls_container_ref

string

sni_container_refs

array

insert_headers

object

timeout_client_data

integer

timeout_member_connect

integer

timeout_member_data

integer

timeout_tcp_inspect

integer

tags

array

Example

package main
import (
"context"
"fmt"
"github.com/bycoded/bycloud-go"
)
func main() {
client := bycloud.New(bycloud.WithToken("YOUR_ACCESS_TOKEN"))
ctx := context.Background()
result, err := client.LoadBalancers.UpdateListener(ctx, &bycloud.UpdateListenerParams{
Listener_id: "550e8400-e29b-41d4-a716-446655440000",
})
if err != nil {
panic(err)
}
fmt.Println(result)
}
DELETE

DeleteListener()

Delete listener

Parameters

listener_id

string

required

- Listener ID

Example

package main
import (
"context"
"fmt"
"github.com/bycoded/bycloud-go"
)
func main() {
client := bycloud.New(bycloud.WithToken("YOUR_ACCESS_TOKEN"))
ctx := context.Background()
result, err := client.LoadBalancers.DeleteListener(ctx, &bycloud.DeleteListenerParams{
Listener_id: "550e8400-e29b-41d4-a716-446655440000",
})
if err != nil {
panic(err)
}
fmt.Println(result)
}
GET

ListLoadBalancers()

List load balancers

Parameters

limit

integer

- Maximum number of items to return

marker

string

- ID of the last item from the previous page (for pagination)

name

string

- Filter by name (exact match or prefix with *)

tags

string

- Filter by tags (comma-separated)

vip_subnet_id

string

- Filter by VIP subnet ID

vip_address

string

- Filter by VIP address

provisioning_status

string

- Filter by provisioning status

operating_status

string

- Filter by operating status

Example

package main
import (
"context"
"fmt"
"github.com/bycoded/bycloud-go"
)
func main() {
client := bycloud.New(bycloud.WithToken("YOUR_ACCESS_TOKEN"))
ctx := context.Background()
result, err := client.LoadBalancers.ListLoadBalancers(ctx)
if err != nil {
panic(err)
}
fmt.Println(result)
}
POST

CreateLoadBalancer()

Create load balancer

Parameters

name

string

required
description

string

vip_address

string

- VIP address (auto-assigned if omitted)

vip_subnet_id

string

required
vip_network_id

string

provider

string

flavor_id

string

tags

array

Example

package main
import (
"context"
"fmt"
"github.com/bycoded/bycloud-go"
)
func main() {
client := bycloud.New(bycloud.WithToken("YOUR_ACCESS_TOKEN"))
ctx := context.Background()
result, err := client.LoadBalancers.CreateLoadBalancer(ctx, &bycloud.CreateLoadBalancerParams{
Name: "web-lb",
Vip_subnet_id: "550e8400-e29b-41d4-a716-446655440000",
})
if err != nil {
panic(err)
}
fmt.Println(result)
}
GET

GetLoadBalancer()

Get load balancer

Parameters

load_balancer_id

string

required

- Load Balancer ID

Example

package main
import (
"context"
"fmt"
"github.com/bycoded/bycloud-go"
)
func main() {
client := bycloud.New(bycloud.WithToken("YOUR_ACCESS_TOKEN"))
ctx := context.Background()
result, err := client.LoadBalancers.GetLoadBalancer(ctx, &bycloud.GetLoadBalancerParams{
Load_balancer_id: "550e8400-e29b-41d4-a716-446655440000",
})
if err != nil {
panic(err)
}
fmt.Println(result)
}
PATCH

UpdateLoadBalancer()

Update load balancer

Parameters

load_balancer_id

string

required

- Load Balancer ID

name

string

description

string

tags

array

Example

package main
import (
"context"
"fmt"
"github.com/bycoded/bycloud-go"
)
func main() {
client := bycloud.New(bycloud.WithToken("YOUR_ACCESS_TOKEN"))
ctx := context.Background()
result, err := client.LoadBalancers.UpdateLoadBalancer(ctx, &bycloud.UpdateLoadBalancerParams{
Load_balancer_id: "550e8400-e29b-41d4-a716-446655440000",
})
if err != nil {
panic(err)
}
fmt.Println(result)
}
DELETE

DeleteLoadBalancer()

Delete load balancer

Parameters

load_balancer_id

string

required

- Load Balancer ID

cascade

boolean

- Delete all child resources (listeners, pools, etc.)

Example

package main
import (
"context"
"fmt"
"github.com/bycoded/bycloud-go"
)
func main() {
client := bycloud.New(bycloud.WithToken("YOUR_ACCESS_TOKEN"))
ctx := context.Background()
result, err := client.LoadBalancers.DeleteLoadBalancer(ctx, &bycloud.DeleteLoadBalancerParams{
Load_balancer_id: "550e8400-e29b-41d4-a716-446655440000",
})
if err != nil {
panic(err)
}
fmt.Println(result)
}
GET

ListPools()

List pools

Parameters

limit

integer

- Maximum number of items to return

marker

string

- ID of the last item from the previous page (for pagination)

name

string

- Filter by name (exact match or prefix with *)

tags

string

- Filter by tags (comma-separated)

load_balancer_id

string

- Filter by load balancer ID

protocol

string

- Filter by protocol

Example

package main
import (
"context"
"fmt"
"github.com/bycoded/bycloud-go"
)
func main() {
client := bycloud.New(bycloud.WithToken("YOUR_ACCESS_TOKEN"))
ctx := context.Background()
result, err := client.LoadBalancers.ListPools(ctx)
if err != nil {
panic(err)
}
fmt.Println(result)
}
POST

CreatePool()

Create pool

Parameters

name

string

description

string

load_balancer_id

string

required
listener_id

string

- Listener to attach (optional)

protocol

string

required
lb_algorithm

string

required
session_persistence

object

tags

array

Example

package main
import (
"context"
"fmt"
"github.com/bycoded/bycloud-go"
)
func main() {
client := bycloud.New(bycloud.WithToken("YOUR_ACCESS_TOKEN"))
ctx := context.Background()
result, err := client.LoadBalancers.CreatePool(ctx, &bycloud.CreatePoolParams{
Load_balancer_id: "550e8400-e29b-41d4-a716-446655440000",
Protocol: "HTTP",
Lb_algorithm: "ROUND_ROBIN",
})
if err != nil {
panic(err)
}
fmt.Println(result)
}
GET

GetPool()

Get pool

Parameters

pool_id

string

required

- Pool ID

Example

package main
import (
"context"
"fmt"
"github.com/bycoded/bycloud-go"
)
func main() {
client := bycloud.New(bycloud.WithToken("YOUR_ACCESS_TOKEN"))
ctx := context.Background()
result, err := client.LoadBalancers.GetPool(ctx, &bycloud.GetPoolParams{
Pool_id: "550e8400-e29b-41d4-a716-446655440000",
})
if err != nil {
panic(err)
}
fmt.Println(result)
}
PATCH

UpdatePool()

Update pool

Parameters

pool_id

string

required

- Pool ID

name

string

description

string

lb_algorithm

string

session_persistence

object

tags

array

Example

package main
import (
"context"
"fmt"
"github.com/bycoded/bycloud-go"
)
func main() {
client := bycloud.New(bycloud.WithToken("YOUR_ACCESS_TOKEN"))
ctx := context.Background()
result, err := client.LoadBalancers.UpdatePool(ctx, &bycloud.UpdatePoolParams{
Pool_id: "550e8400-e29b-41d4-a716-446655440000",
})
if err != nil {
panic(err)
}
fmt.Println(result)
}
DELETE

DeletePool()

Delete pool

Parameters

pool_id

string

required

- Pool ID

Example

package main
import (
"context"
"fmt"
"github.com/bycoded/bycloud-go"
)
func main() {
client := bycloud.New(bycloud.WithToken("YOUR_ACCESS_TOKEN"))
ctx := context.Background()
result, err := client.LoadBalancers.DeletePool(ctx, &bycloud.DeletePoolParams{
Pool_id: "550e8400-e29b-41d4-a716-446655440000",
})
if err != nil {
panic(err)
}
fmt.Println(result)
}
GET

ListPoolMembers()

List pool members

Parameters

pool_id

string

required

- Pool ID

limit

integer

- Maximum number of items to return

marker

string

- ID of the last item from the previous page (for pagination)

Example

package main
import (
"context"
"fmt"
"github.com/bycoded/bycloud-go"
)
func main() {
client := bycloud.New(bycloud.WithToken("YOUR_ACCESS_TOKEN"))
ctx := context.Background()
result, err := client.LoadBalancers.ListPoolMembers(ctx, &bycloud.ListPoolMembersParams{
Pool_id: "550e8400-e29b-41d4-a716-446655440000",
})
if err != nil {
panic(err)
}
fmt.Println(result)
}
POST

CreatePoolMember()

Create pool member

Parameters

pool_id

string

required

- Pool ID

name

string

address

string

required
protocol_port

integer

required
weight

integer

subnet_id

string

monitor_address

string

monitor_port

integer

backup

boolean

tags

array

Example

package main
import (
"context"
"fmt"
"github.com/bycoded/bycloud-go"
)
func main() {
client := bycloud.New(bycloud.WithToken("YOUR_ACCESS_TOKEN"))
ctx := context.Background()
result, err := client.LoadBalancers.CreatePoolMember(ctx, &bycloud.CreatePoolMemberParams{
Pool_id: "550e8400-e29b-41d4-a716-446655440000",
Address: "example-string",
Protocol_port: 10,
})
if err != nil {
panic(err)
}
fmt.Println(result)
}
GET

GetPoolMember()

Get pool member

Parameters

pool_id

string

required

- Pool ID

member_id

string

required

- Pool Member ID

Example

package main
import (
"context"
"fmt"
"github.com/bycoded/bycloud-go"
)
func main() {
client := bycloud.New(bycloud.WithToken("YOUR_ACCESS_TOKEN"))
ctx := context.Background()
result, err := client.LoadBalancers.GetPoolMember(ctx, &bycloud.GetPoolMemberParams{
Pool_id: "550e8400-e29b-41d4-a716-446655440000",
Member_id: "550e8400-e29b-41d4-a716-446655440000",
})
if err != nil {
panic(err)
}
fmt.Println(result)
}
PATCH

UpdatePoolMember()

Update pool member

Parameters

pool_id

string

required

- Pool ID

member_id

string

required

- Pool Member ID

name

string

weight

integer

monitor_address

string

monitor_port

integer

backup

boolean

tags

array

Example

package main
import (
"context"
"fmt"
"github.com/bycoded/bycloud-go"
)
func main() {
client := bycloud.New(bycloud.WithToken("YOUR_ACCESS_TOKEN"))
ctx := context.Background()
result, err := client.LoadBalancers.UpdatePoolMember(ctx, &bycloud.UpdatePoolMemberParams{
Pool_id: "550e8400-e29b-41d4-a716-446655440000",
Member_id: "550e8400-e29b-41d4-a716-446655440000",
})
if err != nil {
panic(err)
}
fmt.Println(result)
}
DELETE

DeletePoolMember()

Delete pool member

Parameters

pool_id

string

required

- Pool ID

member_id

string

required

- Pool Member ID

Example

package main
import (
"context"
"fmt"
"github.com/bycoded/bycloud-go"
)
func main() {
client := bycloud.New(bycloud.WithToken("YOUR_ACCESS_TOKEN"))
ctx := context.Background()
result, err := client.LoadBalancers.DeletePoolMember(ctx, &bycloud.DeletePoolMemberParams{
Pool_id: "550e8400-e29b-41d4-a716-446655440000",
Member_id: "550e8400-e29b-41d4-a716-446655440000",
})
if err != nil {
panic(err)
}
fmt.Println(result)
}