ByCloud Docs
GuidesCLIAPISDK

Go SDK

Networking

Networks, subnets, routers, floating IPs, and security groups

36 methods

GET

ListFloatingIPs()

List floating IPs

Parameters

limit

integer

- Maximum number of items to return

marker

string

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

status

string

- Filter by status

tags

string

- Filter by tags (comma-separated)

floating_network_id

string

- Filter by floating network ID

floating_ip_address

string

- Filter by floating IP address

port_id

string

- Filter by associated port 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.Networking.ListFloatingIPs(ctx)
if err != nil {
panic(err)
}
fmt.Println(result)
}
POST

CreateFloatingIP()

Create floating IP

Parameters

floating_network_id

string

required

- External network to allocate from

description

string

floating_ip_address

string

- Specific IP to allocate (if available)

subnet_id

string

- Subnet to allocate from

port_id

string

- Port to associate with

fixed_ip_address

string

- Fixed IP to associate with (if port has multiple IPs)

dns_domain

string

dns_name

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.Networking.CreateFloatingIP(ctx, &bycloud.CreateFloatingIPParams{
Floating_network_id: "550e8400-e29b-41d4-a716-446655440000",
})
if err != nil {
panic(err)
}
fmt.Println(result)
}
GET

GetFloatingIP()

Get floating IP

Parameters

floating_ip_id

string

required

- Floating IP 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.Networking.GetFloatingIP(ctx, &bycloud.GetFloatingIPParams{
Floating_ip_id: "550e8400-e29b-41d4-a716-446655440000",
})
if err != nil {
panic(err)
}
fmt.Println(result)
}
PATCH

UpdateFloatingIP()

Update floating IP

Parameters

floating_ip_id

string

required

- Floating IP ID

description

string

port_id

string

- Port to associate (null to disassociate)

fixed_ip_address

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.Networking.UpdateFloatingIP(ctx, &bycloud.UpdateFloatingIPParams{
Floating_ip_id: "550e8400-e29b-41d4-a716-446655440000",
})
if err != nil {
panic(err)
}
fmt.Println(result)
}
DELETE

DeleteFloatingIP()

Delete floating IP

Parameters

floating_ip_id

string

required

- Floating IP 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.Networking.DeleteFloatingIP(ctx, &bycloud.DeleteFloatingIPParams{
Floating_ip_id: "550e8400-e29b-41d4-a716-446655440000",
})
if err != nil {
panic(err)
}
fmt.Println(result)
}
GET

ListNetworks()

List networks

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 *)

status

string

- Filter by status

tags

string

- Filter by tags (comma-separated)

shared

boolean

- Filter by shared status

external

boolean

- Filter by external network 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.Networking.ListNetworks(ctx)
if err != nil {
panic(err)
}
fmt.Println(result)
}
POST

CreateNetwork()

Create network

Parameters

name

string

required
description

string

mtu

integer

port_security_enabled

boolean

dns_domain

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.Networking.CreateNetwork(ctx, &bycloud.CreateNetworkParams{
Name: "private-network",
})
if err != nil {
panic(err)
}
fmt.Println(result)
}
GET

GetNetwork()

Get network

Parameters

network_id

string

required

- Network 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.Networking.GetNetwork(ctx, &bycloud.GetNetworkParams{
Network_id: "550e8400-e29b-41d4-a716-446655440000",
})
if err != nil {
panic(err)
}
fmt.Println(result)
}
PATCH

UpdateNetwork()

Update network

Parameters

network_id

string

required

- Network ID

name

string

description

string

mtu

integer

port_security_enabled

boolean

dns_domain

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.Networking.UpdateNetwork(ctx, &bycloud.UpdateNetworkParams{
Network_id: "550e8400-e29b-41d4-a716-446655440000",
})
if err != nil {
panic(err)
}
fmt.Println(result)
}
DELETE

DeleteNetwork()

Delete network

Parameters

network_id

string

required

- Network 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.Networking.DeleteNetwork(ctx, &bycloud.DeleteNetworkParams{
Network_id: "550e8400-e29b-41d4-a716-446655440000",
})
if err != nil {
panic(err)
}
fmt.Println(result)
}
GET

ListPorts()

List ports

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 *)

status

string

- Filter by status

tags

string

- Filter by tags (comma-separated)

network_id

string

- Filter by network ID

device_id

string

- Filter by device ID (instance, router, etc.)

device_owner

string

- Filter by device owner

mac_address

string

- Filter by MAC address

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.Networking.ListPorts(ctx)
if err != nil {
panic(err)
}
fmt.Println(result)
}
POST

CreatePort()

Create port

Parameters

name

string

description

string

network_id

string

required
mac_address

string

- MAC address (auto-generated if omitted)

fixed_ips

array

security_groups

array

port_security_enabled

boolean

allowed_address_pairs

array

dns_name

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.Networking.CreatePort(ctx, &bycloud.CreatePortParams{
Network_id: "550e8400-e29b-41d4-a716-446655440000",
})
if err != nil {
panic(err)
}
fmt.Println(result)
}
GET

GetPort()

Get port

Parameters

port_id

string

required

- Port 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.Networking.GetPort(ctx, &bycloud.GetPortParams{
Port_id: "550e8400-e29b-41d4-a716-446655440000",
})
if err != nil {
panic(err)
}
fmt.Println(result)
}
PATCH

UpdatePort()

Update port

Parameters

port_id

string

required

- Port ID

name

string

description

string

fixed_ips

array

security_groups

array

port_security_enabled

boolean

allowed_address_pairs

array

dns_name

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.Networking.UpdatePort(ctx, &bycloud.UpdatePortParams{
Port_id: "550e8400-e29b-41d4-a716-446655440000",
})
if err != nil {
panic(err)
}
fmt.Println(result)
}
DELETE

DeletePort()

Delete port

Parameters

port_id

string

required

- Port 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.Networking.DeletePort(ctx, &bycloud.DeletePortParams{
Port_id: "550e8400-e29b-41d4-a716-446655440000",
})
if err != nil {
panic(err)
}
fmt.Println(result)
}
GET

ListRouters()

List routers

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 *)

status

string

- Filter by status

tags

string

- Filter by tags (comma-separated)

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.Networking.ListRouters(ctx)
if err != nil {
panic(err)
}
fmt.Println(result)
}
POST

CreateRouter()

Create router

Parameters

name

string

required
description

string

external_gateway_info

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.Networking.CreateRouter(ctx, &bycloud.CreateRouterParams{
Name: "main-router",
})
if err != nil {
panic(err)
}
fmt.Println(result)
}
GET

GetRouter()

Get router

Parameters

router_id

string

required

- Router 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.Networking.GetRouter(ctx, &bycloud.GetRouterParams{
Router_id: "550e8400-e29b-41d4-a716-446655440000",
})
if err != nil {
panic(err)
}
fmt.Println(result)
}
PATCH

UpdateRouter()

Update router

Parameters

router_id

string

required

- Router ID

name

string

description

string

external_gateway_info

object

routes

array

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.Networking.UpdateRouter(ctx, &bycloud.UpdateRouterParams{
Router_id: "550e8400-e29b-41d4-a716-446655440000",
})
if err != nil {
panic(err)
}
fmt.Println(result)
}
DELETE

DeleteRouter()

Delete router

Parameters

router_id

string

required

- Router 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.Networking.DeleteRouter(ctx, &bycloud.DeleteRouterParams{
Router_id: "550e8400-e29b-41d4-a716-446655440000",
})
if err != nil {
panic(err)
}
fmt.Println(result)
}
POST

AddRouterInterface()

Add router interface

Parameters

router_id

string

required

- Router ID

subnet_id

string

- Subnet to connect (mutually exclusive with port_id)

port_id

string

- Port to connect (mutually exclusive with subnet_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.Networking.AddRouterInterface(ctx, &bycloud.AddRouterInterfaceParams{
Router_id: "550e8400-e29b-41d4-a716-446655440000",
})
if err != nil {
panic(err)
}
fmt.Println(result)
}
POST

RemoveRouterInterface()

Remove router interface

Parameters

router_id

string

required

- Router ID

subnet_id

string

port_id

string

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.Networking.RemoveRouterInterface(ctx, &bycloud.RemoveRouterInterfaceParams{
Router_id: "550e8400-e29b-41d4-a716-446655440000",
})
if err != nil {
panic(err)
}
fmt.Println(result)
}
GET

ListSecurityGroupRules()

List security group rules

Parameters

limit

integer

- Maximum number of items to return

marker

string

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

security_group_id

string

- Filter by security group ID

direction

string

- Filter by direction

protocol

string

- Filter by protocol

ethertype

string

- Filter by ethertype

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.Networking.ListSecurityGroupRules(ctx)
if err != nil {
panic(err)
}
fmt.Println(result)
}
POST

CreateSecurityGroupRule()

Create security group rule

Parameters

security_group_id

string

required
direction

string

required
ethertype

string

protocol

string

port_range_min

integer

port_range_max

integer

remote_ip_prefix

string

remote_group_id

string

description

string

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.Networking.CreateSecurityGroupRule(ctx, &bycloud.CreateSecurityGroupRuleParams{
Security_group_id: "550e8400-e29b-41d4-a716-446655440000",
Direction: "ingress",
})
if err != nil {
panic(err)
}
fmt.Println(result)
}
GET

GetSecurityGroupRule()

Get security group rule

Parameters

security_group_rule_id

string

required

- Security Group Rule 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.Networking.GetSecurityGroupRule(ctx, &bycloud.GetSecurityGroupRuleParams{
Security_group_rule_id: "550e8400-e29b-41d4-a716-446655440000",
})
if err != nil {
panic(err)
}
fmt.Println(result)
}
DELETE

DeleteSecurityGroupRule()

Delete security group rule

Parameters

security_group_rule_id

string

required

- Security Group Rule 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.Networking.DeleteSecurityGroupRule(ctx, &bycloud.DeleteSecurityGroupRuleParams{
Security_group_rule_id: "550e8400-e29b-41d4-a716-446655440000",
})
if err != nil {
panic(err)
}
fmt.Println(result)
}
GET

ListSecurityGroups()

List security groups

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)

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.Networking.ListSecurityGroups(ctx)
if err != nil {
panic(err)
}
fmt.Println(result)
}
POST

CreateSecurityGroup()

Create security group

Parameters

name

string

required
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.Networking.CreateSecurityGroup(ctx, &bycloud.CreateSecurityGroupParams{
Name: "web-servers",
})
if err != nil {
panic(err)
}
fmt.Println(result)
}
GET

GetSecurityGroup()

Get security group

Parameters

security_group_id

string

required

- Security Group 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.Networking.GetSecurityGroup(ctx, &bycloud.GetSecurityGroupParams{
Security_group_id: "550e8400-e29b-41d4-a716-446655440000",
})
if err != nil {
panic(err)
}
fmt.Println(result)
}
PATCH

UpdateSecurityGroup()

Update security group

Parameters

security_group_id

string

required

- Security Group 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.Networking.UpdateSecurityGroup(ctx, &bycloud.UpdateSecurityGroupParams{
Security_group_id: "550e8400-e29b-41d4-a716-446655440000",
})
if err != nil {
panic(err)
}
fmt.Println(result)
}
DELETE

DeleteSecurityGroup()

Delete security group

Parameters

security_group_id

string

required

- Security Group 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.Networking.DeleteSecurityGroup(ctx, &bycloud.DeleteSecurityGroupParams{
Security_group_id: "550e8400-e29b-41d4-a716-446655440000",
})
if err != nil {
panic(err)
}
fmt.Println(result)
}
GET

ListSubnets()

List subnets

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)

network_id

string

- Filter by network ID

ip_version

integer

- Filter by IP version

cidr

string

- Filter by CIDR

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.Networking.ListSubnets(ctx)
if err != nil {
panic(err)
}
fmt.Println(result)
}
POST

CreateSubnet()

Create subnet

Parameters

name

string

description

string

network_id

string

required
ip_version

integer

required
cidr

string

required
gateway_ip

string

- Gateway IP (auto-assigned if omitted, null to disable)

dns_nameservers

array

allocation_pools

array

host_routes

array

enable_dhcp

boolean

ipv6_ra_mode

string

ipv6_address_mode

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.Networking.CreateSubnet(ctx, &bycloud.CreateSubnetParams{
Network_id: "550e8400-e29b-41d4-a716-446655440000",
Ip_version: 4,
Cidr: "192.168.1.0/24",
})
if err != nil {
panic(err)
}
fmt.Println(result)
}
GET

GetSubnet()

Get subnet

Parameters

subnet_id

string

required

- Subnet 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.Networking.GetSubnet(ctx, &bycloud.GetSubnetParams{
Subnet_id: "550e8400-e29b-41d4-a716-446655440000",
})
if err != nil {
panic(err)
}
fmt.Println(result)
}
PATCH

UpdateSubnet()

Update subnet

Parameters

subnet_id

string

required

- Subnet ID

name

string

description

string

gateway_ip

string

dns_nameservers

array

allocation_pools

array

host_routes

array

enable_dhcp

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.Networking.UpdateSubnet(ctx, &bycloud.UpdateSubnetParams{
Subnet_id: "550e8400-e29b-41d4-a716-446655440000",
})
if err != nil {
panic(err)
}
fmt.Println(result)
}
DELETE

DeleteSubnet()

Delete subnet

Parameters

subnet_id

string

required

- Subnet 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.Networking.DeleteSubnet(ctx, &bycloud.DeleteSubnetParams{
Subnet_id: "550e8400-e29b-41d4-a716-446655440000",
})
if err != nil {
panic(err)
}
fmt.Println(result)
}