Go SDK
Block Storage
Volumes, snapshots, and backups
20 methods
ListBackups()
List backups
Parameters
limitinteger
- Maximum number of items to return
markerstring
- ID of the last item from the previous page (for pagination)
namestring
- Filter by name (exact match or prefix with *)
statusstring
- Filter by status
volume_idstring
- Filter by volume ID
Example
package mainimport ("context""fmt""github.com/bycoded/bycloud-go")func main() {client := bycloud.New(bycloud.WithToken("YOUR_ACCESS_TOKEN"))ctx := context.Background()result, err := client.BlockStorage.ListBackups(ctx)if err != nil {panic(err)}fmt.Println(result)}
CreateBackup()
Create backup
Parameters
volume_idstring
required- Volume to backup
namestring
descriptionstring
containerstring
- Backup container
incrementalboolean
- Create incremental backup
forceboolean
- Force backup even if volume is attached
snapshot_idstring
- Create backup from snapshot instead of volume
metadataobject
Example
package mainimport ("context""fmt""github.com/bycoded/bycloud-go")func main() {client := bycloud.New(bycloud.WithToken("YOUR_ACCESS_TOKEN"))ctx := context.Background()result, err := client.BlockStorage.CreateBackup(ctx, &bycloud.CreateBackupParams{Volume_id: "550e8400-e29b-41d4-a716-446655440000",})if err != nil {panic(err)}fmt.Println(result)}
GetBackup()
Get backup
Parameters
backup_idstring
required- Backup ID
Example
package mainimport ("context""fmt""github.com/bycoded/bycloud-go")func main() {client := bycloud.New(bycloud.WithToken("YOUR_ACCESS_TOKEN"))ctx := context.Background()result, err := client.BlockStorage.GetBackup(ctx, &bycloud.GetBackupParams{Backup_id: "550e8400-e29b-41d4-a716-446655440000",})if err != nil {panic(err)}fmt.Println(result)}
DeleteBackup()
Delete backup
Parameters
backup_idstring
required- Backup ID
Example
package mainimport ("context""fmt""github.com/bycoded/bycloud-go")func main() {client := bycloud.New(bycloud.WithToken("YOUR_ACCESS_TOKEN"))ctx := context.Background()result, err := client.BlockStorage.DeleteBackup(ctx, &bycloud.DeleteBackupParams{Backup_id: "550e8400-e29b-41d4-a716-446655440000",})if err != nil {panic(err)}fmt.Println(result)}
RestoreBackup()
Restore backup
Parameters
backup_idstring
required- Backup ID
volume_idstring
- Existing volume to restore to (creates new volume if omitted)
namestring
- Name for new volume (if not restoring to existing)
Example
package mainimport ("context""fmt""github.com/bycoded/bycloud-go")func main() {client := bycloud.New(bycloud.WithToken("YOUR_ACCESS_TOKEN"))ctx := context.Background()result, err := client.BlockStorage.RestoreBackup(ctx, &bycloud.RestoreBackupParams{Backup_id: "550e8400-e29b-41d4-a716-446655440000",})if err != nil {panic(err)}fmt.Println(result)}
ListSnapshots()
List snapshots
Parameters
limitinteger
- Maximum number of items to return
markerstring
- ID of the last item from the previous page (for pagination)
namestring
- Filter by name (exact match or prefix with *)
statusstring
- Filter by status
volume_idstring
- Filter by volume ID
Example
package mainimport ("context""fmt""github.com/bycoded/bycloud-go")func main() {client := bycloud.New(bycloud.WithToken("YOUR_ACCESS_TOKEN"))ctx := context.Background()result, err := client.BlockStorage.ListSnapshots(ctx)if err != nil {panic(err)}fmt.Println(result)}
CreateSnapshot()
Create snapshot
Parameters
volume_idstring
required- Volume to snapshot
namestring
descriptionstring
forceboolean
- Force snapshot even if volume is attached
metadataobject
Example
package mainimport ("context""fmt""github.com/bycoded/bycloud-go")func main() {client := bycloud.New(bycloud.WithToken("YOUR_ACCESS_TOKEN"))ctx := context.Background()result, err := client.BlockStorage.CreateSnapshot(ctx, &bycloud.CreateSnapshotParams{Volume_id: "550e8400-e29b-41d4-a716-446655440000",})if err != nil {panic(err)}fmt.Println(result)}
GetSnapshot()
Get snapshot
Parameters
snapshot_idstring
required- Snapshot ID
Example
package mainimport ("context""fmt""github.com/bycoded/bycloud-go")func main() {client := bycloud.New(bycloud.WithToken("YOUR_ACCESS_TOKEN"))ctx := context.Background()result, err := client.BlockStorage.GetSnapshot(ctx, &bycloud.GetSnapshotParams{Snapshot_id: "550e8400-e29b-41d4-a716-446655440000",})if err != nil {panic(err)}fmt.Println(result)}
UpdateSnapshot()
Update snapshot
Parameters
snapshot_idstring
required- Snapshot ID
namestring
descriptionstring
metadataobject
Example
package mainimport ("context""fmt""github.com/bycoded/bycloud-go")func main() {client := bycloud.New(bycloud.WithToken("YOUR_ACCESS_TOKEN"))ctx := context.Background()result, err := client.BlockStorage.UpdateSnapshot(ctx, &bycloud.UpdateSnapshotParams{Snapshot_id: "550e8400-e29b-41d4-a716-446655440000",})if err != nil {panic(err)}fmt.Println(result)}
DeleteSnapshot()
Delete snapshot
Parameters
snapshot_idstring
required- Snapshot ID
Example
package mainimport ("context""fmt""github.com/bycoded/bycloud-go")func main() {client := bycloud.New(bycloud.WithToken("YOUR_ACCESS_TOKEN"))ctx := context.Background()result, err := client.BlockStorage.DeleteSnapshot(ctx, &bycloud.DeleteSnapshotParams{Snapshot_id: "550e8400-e29b-41d4-a716-446655440000",})if err != nil {panic(err)}fmt.Println(result)}
ListVolumeTypes()
List volume types
Example
package mainimport ("context""fmt""github.com/bycoded/bycloud-go")func main() {client := bycloud.New(bycloud.WithToken("YOUR_ACCESS_TOKEN"))ctx := context.Background()result, err := client.BlockStorage.ListVolumeTypes(ctx)if err != nil {panic(err)}fmt.Println(result)}
GetVolumeType()
Get volume type
Parameters
volume_type_idstring
required- Volume Type ID
Example
package mainimport ("context""fmt""github.com/bycoded/bycloud-go")func main() {client := bycloud.New(bycloud.WithToken("YOUR_ACCESS_TOKEN"))ctx := context.Background()result, err := client.BlockStorage.GetVolumeType(ctx, &bycloud.GetVolumeTypeParams{Volume_type_id: "550e8400-e29b-41d4-a716-446655440000",})if err != nil {panic(err)}fmt.Println(result)}
ListVolumes()
List volumes
Parameters
limitinteger
- Maximum number of items to return
markerstring
- ID of the last item from the previous page (for pagination)
namestring
- Filter by name (exact match or prefix with *)
statusstring
- Filter by status
bootableboolean
- Filter by bootable status
Example
package mainimport ("context""fmt""github.com/bycoded/bycloud-go")func main() {client := bycloud.New(bycloud.WithToken("YOUR_ACCESS_TOKEN"))ctx := context.Background()result, err := client.BlockStorage.ListVolumes(ctx)if err != nil {panic(err)}fmt.Println(result)}
CreateVolume()
Create volume
Parameters
namestring
descriptionstring
sizeinteger
required- Size in GB
volume_typestring
- Volume type name or ID
snapshot_idstring
- Create volume from snapshot
source_volume_idstring
- Clone from existing volume
image_idstring
- Create volume from image
multiattachboolean
metadataobject
Example
package mainimport ("context""fmt""github.com/bycoded/bycloud-go")func main() {client := bycloud.New(bycloud.WithToken("YOUR_ACCESS_TOKEN"))ctx := context.Background()result, err := client.BlockStorage.CreateVolume(ctx, &bycloud.CreateVolumeParams{Size: 100,})if err != nil {panic(err)}fmt.Println(result)}
GetVolume()
Get volume
Parameters
volume_idstring
required- Volume ID
Example
package mainimport ("context""fmt""github.com/bycoded/bycloud-go")func main() {client := bycloud.New(bycloud.WithToken("YOUR_ACCESS_TOKEN"))ctx := context.Background()result, err := client.BlockStorage.GetVolume(ctx, &bycloud.GetVolumeParams{Volume_id: "550e8400-e29b-41d4-a716-446655440000",})if err != nil {panic(err)}fmt.Println(result)}
UpdateVolume()
Update volume
Parameters
volume_idstring
required- Volume ID
namestring
descriptionstring
metadataobject
Example
package mainimport ("context""fmt""github.com/bycoded/bycloud-go")func main() {client := bycloud.New(bycloud.WithToken("YOUR_ACCESS_TOKEN"))ctx := context.Background()result, err := client.BlockStorage.UpdateVolume(ctx, &bycloud.UpdateVolumeParams{Volume_id: "550e8400-e29b-41d4-a716-446655440000",})if err != nil {panic(err)}fmt.Println(result)}
DeleteVolume()
Delete volume
Parameters
volume_idstring
required- Volume ID
forceboolean
- Force delete even if volume is in use
Example
package mainimport ("context""fmt""github.com/bycoded/bycloud-go")func main() {client := bycloud.New(bycloud.WithToken("YOUR_ACCESS_TOKEN"))ctx := context.Background()result, err := client.BlockStorage.DeleteVolume(ctx, &bycloud.DeleteVolumeParams{Volume_id: "550e8400-e29b-41d4-a716-446655440000",})if err != nil {panic(err)}fmt.Println(result)}
AttachVolume()
Attach volume
Parameters
volume_idstring
required- Volume ID
instance_idstring
required- Instance to attach to
devicestring
- Device name (e.g., /dev/vdb). Auto-assigned if omitted.
Example
package mainimport ("context""fmt""github.com/bycoded/bycloud-go")func main() {client := bycloud.New(bycloud.WithToken("YOUR_ACCESS_TOKEN"))ctx := context.Background()result, err := client.BlockStorage.AttachVolume(ctx, &bycloud.AttachVolumeParams{Volume_id: "550e8400-e29b-41d4-a716-446655440000",Instance_id: "550e8400-e29b-41d4-a716-446655440000",})if err != nil {panic(err)}fmt.Println(result)}
DetachVolume()
Detach volume
Parameters
volume_idstring
required- Volume ID
instance_idstring
required- Instance to detach from
forceboolean
- Force detach even if instance is running
Example
package mainimport ("context""fmt""github.com/bycoded/bycloud-go")func main() {client := bycloud.New(bycloud.WithToken("YOUR_ACCESS_TOKEN"))ctx := context.Background()result, err := client.BlockStorage.DetachVolume(ctx, &bycloud.DetachVolumeParams{Volume_id: "550e8400-e29b-41d4-a716-446655440000",Instance_id: "550e8400-e29b-41d4-a716-446655440000",})if err != nil {panic(err)}fmt.Println(result)}
ExtendVolume()
Extend volume
Parameters
volume_idstring
required- Volume ID
new_sizeinteger
required- New size in GB (must be larger than current size)
Example
package mainimport ("context""fmt""github.com/bycoded/bycloud-go")func main() {client := bycloud.New(bycloud.WithToken("YOUR_ACCESS_TOKEN"))ctx := context.Background()result, err := client.BlockStorage.ExtendVolume(ctx, &bycloud.ExtendVolumeParams{Volume_id: "550e8400-e29b-41d4-a716-446655440000",New_size: 10,})if err != nil {panic(err)}fmt.Println(result)}