Skip to content
Docs

List VMs

client.Compute.VMs.List(ctx, query) (*Cursor[VM], error)
GET/v1/compute/vms

List all VMs

ParametersExpand Collapse
query VMListParams
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 VM struct{…}

VM details.

ID string

Unique identifier for the VM.

BootVolumeID string

ID of the boot volume attached to the VM.

CPUConfig CPUConfig

CPU configuration for the VM.

Vcpu int64

Number of virtual CPUs.

maximum192
minimum1
CreatedAt Time

When the VM was created.

formatdate-time
DataVolumeIDs []string

IDs of the data volumes attached to the VM.

MemoryConfig MemoryConfig

Memory configuration for the VM.

Size int64

Size of the memory in GB.

maximum768
minimum1
Name string

Name of the VM.

PrivateIP string

Private IP of the VM.

ProjectID string

Project ID the VM belongs to.

PublicIP string

Public IP of the VM.

PublicIPEnabled bool

Whether the public IP is enabled for the VM.

Region RegionName

Region the resource is in.

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"
SubnetID string

ID of the subnet the VM is in.

Tags []string

Tags to attach to the VM.

UpdatedAt Time

When the VM was updated.

formatdate-time
VPCID string

ID of the VPC the VM is in.

VPCName string

Name of the VPC the VM is in.

InstanceType stringOptional

Instance type name.

List VMs

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.VMs.List(context.TODO(), compute.VMListParams{
    ProjectID: "project_id",
  })
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", page)
}
{
  "items": [
    {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "boot_volume_id": "123e4567-e89b-12d3-a456-426614174000",
      "cpu_config": {
        "vcpu": 2
      },
      "created_at": "2025-01-01T00:00:00Z",
      "data_volume_ids": [
        "123e4567-e89b-12d3-a456-426614174001",
        "123e4567-e89b-12d3-a456-426614174002"
      ],
      "memory_config": {
        "size": 2
      },
      "name": "my-vm",
      "private_ip": "10.0.0.1",
      "project_id": "123e4567-e89b-12d3-a456-426614174000",
      "public_ip": "123.123.123.123",
      "public_ip_enabled": true,
      "region": "us-sva-2",
      "status": "ready",
      "subnet_id": "123e4567-e89b-12d3-a456-426614174000",
      "tags": [
        "production",
        "ethereum"
      ],
      "updated_at": "2025-01-01T00:00:00Z",
      "vpc_id": "123e4567-e89b-12d3-a456-426614174000",
      "vpc_name": "my-vpc",
      "instance_type": "n1-standard-8"
    }
  ],
  "pagination": {
    "next_cursor": "RhwniMT4B74siYZcPF8TnCdGI1l9rpPvg",
    "previous_cursor": "ARhwnmi1hA7wEbHbMjdYQlOB_ZusP4fYvw",
    "total_count": 125
  }
}
Returns Examples
{
  "items": [
    {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "boot_volume_id": "123e4567-e89b-12d3-a456-426614174000",
      "cpu_config": {
        "vcpu": 2
      },
      "created_at": "2025-01-01T00:00:00Z",
      "data_volume_ids": [
        "123e4567-e89b-12d3-a456-426614174001",
        "123e4567-e89b-12d3-a456-426614174002"
      ],
      "memory_config": {
        "size": 2
      },
      "name": "my-vm",
      "private_ip": "10.0.0.1",
      "project_id": "123e4567-e89b-12d3-a456-426614174000",
      "public_ip": "123.123.123.123",
      "public_ip_enabled": true,
      "region": "us-sva-2",
      "status": "ready",
      "subnet_id": "123e4567-e89b-12d3-a456-426614174000",
      "tags": [
        "production",
        "ethereum"
      ],
      "updated_at": "2025-01-01T00:00:00Z",
      "vpc_id": "123e4567-e89b-12d3-a456-426614174000",
      "vpc_name": "my-vpc",
      "instance_type": "n1-standard-8"
    }
  ],
  "pagination": {
    "next_cursor": "RhwniMT4B74siYZcPF8TnCdGI1l9rpPvg",
    "previous_cursor": "ARhwnmi1hA7wEbHbMjdYQlOB_ZusP4fYvw",
    "total_count": 125
  }
}