Skip to content
Docs

List Volumes

client.Compute.Volumes.List(ctx, query) (*Cursor[Volume], error)
GET/v1/compute/volumes

List all volumes

ParametersExpand Collapse
query VolumeListParams
ProjectID param.Field[string]

Project ID of resources to request

Cursor param.Field[string]Optional

Pagination cursor returned by a previous request

Limit param.Field[int64]Optional

Maximum number of items to return

maximum100
minimum10
ReturnsExpand Collapse
type Volume struct{…}

Volume details.

ID string

Unique identifier for the Volume.

CreatedAt Time

When the Volume was created.

formatdate-time

Volume kind.

One of the following:
const VolumeKindBoot VolumeKind = "boot"
const VolumeKindData VolumeKind = "data"
Name string

Name of the Volume.

ProjectID string

Project ID the Volume belongs to.

Region RegionName

Region the resource is in.

Size int64

Size of the Volume in GB.

Status of the resource.

One of the following:
const ResourceStatusPending ResourceStatus = "pending"
const ResourceStatusCreating ResourceStatus = "creating"
const ResourceStatusUpdating ResourceStatus = "updating"
const ResourceStatusReady ResourceStatus = "ready"
const ResourceStatusDeleting ResourceStatus = "deleting"
const ResourceStatusDeleted ResourceStatus = "deleted"
const ResourceStatusError ResourceStatus = "error"
Tags []string

Tags to attach to the Volume.

Type of the Volume.

One of the following:
const VolumeTypeNvme VolumeType = "nvme"
const VolumeTypeABS VolumeType = "abs"
UpdatedAt Time

When the Volume was updated.

formatdate-time
VMID string

ID of the VM the Volume is attached to.

VMName string

Name of the VM the Volume is attached to.

List Volumes

package main

import (
  "context"
  "fmt"

  "github.com/nirvana-labs/nirvana-go"
  "github.com/nirvana-labs/nirvana-go/compute"
  "github.com/nirvana-labs/nirvana-go/option"
)

func main() {
  client := nirvana.NewClient(
    option.WithAPIKey("My API Key"),
  )
  page, err := client.Compute.Volumes.List(context.TODO(), compute.VolumeListParams{
    ProjectID: "project_id",
  })
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", page)
}
{
  "items": [
    {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "created_at": "2025-01-01T00:00:00Z",
      "kind": "boot",
      "name": "my-volume",
      "project_id": "123e4567-e89b-12d3-a456-426614174000",
      "region": "us-sva-2",
      "size": 100,
      "status": "ready",
      "tags": [
        "production",
        "ethereum"
      ],
      "type": "abs",
      "updated_at": "2025-01-01T00:00:00Z",
      "vm_id": "123e4567-e89b-12d3-a456-426614174000",
      "vm_name": "my-vm"
    }
  ],
  "pagination": {
    "next_cursor": "RhwniMT4B74siYZcPF8TnCdGI1l9rpPvg",
    "previous_cursor": "ARhwnmi1hA7wEbHbMjdYQlOB_ZusP4fYvw",
    "total_count": 125
  }
}
Returns Examples
{
  "items": [
    {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "created_at": "2025-01-01T00:00:00Z",
      "kind": "boot",
      "name": "my-volume",
      "project_id": "123e4567-e89b-12d3-a456-426614174000",
      "region": "us-sva-2",
      "size": 100,
      "status": "ready",
      "tags": [
        "production",
        "ethereum"
      ],
      "type": "abs",
      "updated_at": "2025-01-01T00:00:00Z",
      "vm_id": "123e4567-e89b-12d3-a456-426614174000",
      "vm_name": "my-vm"
    }
  ],
  "pagination": {
    "next_cursor": "RhwniMT4B74siYZcPF8TnCdGI1l9rpPvg",
    "previous_cursor": "ARhwnmi1hA7wEbHbMjdYQlOB_ZusP4fYvw",
    "total_count": 125
  }
}