ByCloud Docs
GuidesCLIAPISDK

Go SDK

Compute

Virtual machines, flavors, images, and keypairs

18 methods

GET

ListFlavors()

List flavors

Parameters

limit

integer

- Maximum number of items to return

marker

string

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

min_ram

integer

- Filter by minimum RAM (MB)

min_disk

integer

- Filter by minimum disk (GB)

min_vcpus

integer

- Filter by minimum vCPUs

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.Compute.ListFlavors(ctx)
if err != nil {
panic(err)
}
fmt.Println(result)
}
GET

GetFlavor()

Get flavor

Parameters

flavor_id

string

required

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

ListImages()

List images

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)

visibility

string

- Filter by visibility

os_distro

string

- Filter by OS distribution

os_version

string

- Filter by OS version

architecture

string

- Filter by architecture

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.Compute.ListImages(ctx)
if err != nil {
panic(err)
}
fmt.Println(result)
}
GET

GetImage()

Get image

Parameters

image_id

string

required

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

ListInstances()

List instances

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)

flavor_id

string

- Filter by flavor ID

image_id

string

- Filter by image 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.Compute.ListInstances(ctx)
if err != nil {
panic(err)
}
fmt.Println(result)
}
POST

CreateInstance()

Create instance

Parameters

name

string

required
description

string

flavor_id

string

required

- Flavor ID

image_id

string

- Image ID (required if not booting from volume)

key_names

array

- SSH keypair names to authorize on the instance

security_groups

array

- Security group names or IDs

networks

array

- Networks to attach

assign_public_ip

boolean

- Assign a public IP address to the instance

volumes

array

- Volume attachments for boot from volume

metadata

object

tags

array

user_data

string

- Base64-encoded user data (cloud-init)

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.Compute.CreateInstance(ctx, &bycloud.CreateInstanceParams{
Name: "web-server-01",
Flavor_id: "550e8400-e29b-41d4-a716-446655440000",
})
if err != nil {
panic(err)
}
fmt.Println(result)
}
GET

GetInstance()

Get instance

Parameters

instance_id

string

required

- Instance 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.Compute.GetInstance(ctx, &bycloud.GetInstanceParams{
Instance_id: "550e8400-e29b-41d4-a716-446655440000",
})
if err != nil {
panic(err)
}
fmt.Println(result)
}
PATCH

UpdateInstance()

Update instance

Parameters

instance_id

string

required

- Instance ID

name

string

description

string

metadata

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

DeleteInstance()

Delete instance

Parameters

instance_id

string

required

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

GetInstanceConsole()

Get instance console

Parameters

instance_id

string

required

- Instance ID

type

string

- Console 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.Compute.GetInstanceConsole(ctx, &bycloud.GetInstanceConsoleParams{
Instance_id: "550e8400-e29b-41d4-a716-446655440000",
})
if err != nil {
panic(err)
}
fmt.Println(result)
}
POST

RebootInstance()

Reboot instance

Parameters

instance_id

string

required

- Instance ID

type

string

- Reboot 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.Compute.RebootInstance(ctx, &bycloud.RebootInstanceParams{
Instance_id: "550e8400-e29b-41d4-a716-446655440000",
})
if err != nil {
panic(err)
}
fmt.Println(result)
}
POST

ResizeInstance()

Resize instance

Parameters

instance_id

string

required

- Instance ID

flavor_id

string

required

- New flavor 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.Compute.ResizeInstance(ctx, &bycloud.ResizeInstanceParams{
Instance_id: "550e8400-e29b-41d4-a716-446655440000",
Flavor_id: "550e8400-e29b-41d4-a716-446655440000",
})
if err != nil {
panic(err)
}
fmt.Println(result)
}
POST

StartInstance()

Start instance

Parameters

instance_id

string

required

- Instance 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.Compute.StartInstance(ctx, &bycloud.StartInstanceParams{
Instance_id: "550e8400-e29b-41d4-a716-446655440000",
})
if err != nil {
panic(err)
}
fmt.Println(result)
}
POST

StopInstance()

Stop instance

Parameters

instance_id

string

required

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

ListKeypairs()

List keypairs

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

CreateKeypair()

Create keypair

Parameters

name

string

required
public_key

string

- SSH public key (if not provided, a new keypair will be generated)

type

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.Compute.CreateKeypair(ctx, &bycloud.CreateKeypairParams{
Name: "my-keypair",
})
if err != nil {
panic(err)
}
fmt.Println(result)
}
GET

GetKeypair()

Get keypair

Parameters

keypair_name

string

required

- Keypair name

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.Compute.GetKeypair(ctx, &bycloud.GetKeypairParams{
Keypair_name: "example",
})
if err != nil {
panic(err)
}
fmt.Println(result)
}
DELETE

DeleteKeypair()

Delete keypair

Parameters

keypair_name

string

required

- Keypair name

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.Compute.DeleteKeypair(ctx, &bycloud.DeleteKeypairParams{
Keypair_name: "example",
})
if err != nil {
panic(err)
}
fmt.Println(result)
}