Skip to content
Get started

Create empty volume

client.Volumes.New(ctx, body) (*Volume, error)
post/volumes

Creates a new empty volume of the specified size.

ParametersExpand Collapse
body VolumeNewParams
Name param.Field[string]

Volume name

SizeGB param.Field[int64]

Size in gigabytes

ID param.Field[string]optional

Optional custom identifier (auto-generated if not provided)

ReturnsExpand Collapse
type Volume struct{…}
ID string

Unique identifier

CreatedAt Time

Creation timestamp (RFC3339)

formatdate-time
Name string

Volume name

SizeGB int64

Size in gigabytes

Attachments []VolumeAttachmentoptional

List of current attachments (empty if not attached)

InstanceID string

ID of the instance this volume is attached to

MountPath string

Mount path in the guest

Readonly bool

Whether the attachment is read-only

Create empty volume
package main

import (
  "context"
  "fmt"

  "github.com/kernel/hypeman-go"
  "github.com/kernel/hypeman-go/option"
)

func main() {
  client := hypeman.NewClient(
    option.WithAPIKey("My API Key"),
  )
  volume, err := client.Volumes.New(context.TODO(), hypeman.VolumeNewParams{
    Name: "my-data-volume",
    SizeGB: 10,
  })
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", volume.ID)
}
{
  "id": "vol-data-1",
  "created_at": "2025-01-15T09:00:00Z",
  "name": "my-data-volume",
  "size_gb": 10,
  "attachments": [
    {
      "instance_id": "inst-abc123",
      "mount_path": "/mnt/data",
      "readonly": false
    }
  ]
}
Returns Examples
{
  "id": "vol-data-1",
  "created_at": "2025-01-15T09:00:00Z",
  "name": "my-data-volume",
  "size_gb": 10,
  "attachments": [
    {
      "instance_id": "inst-abc123",
      "mount_path": "/mnt/data",
      "readonly": false
    }
  ]
}