Skip to content
Docs

Create Volume

client.Compute.Volumes.New(ctx, body) (*Operation, error)
POST/v1/compute/volumes

Create a Volume. Only data volumes can be created.

ParametersExpand Collapse
body VolumeNewParams
Name param.Field[string]

Name of the Volume.

ProjectID param.Field[string]

Project ID the Volume belongs to.

Region param.Field[RegionName]

Region the resource is in.

Size param.Field[int64]

Size of the Volume in GB.

Type param.Field[VolumeType]

Type of the Volume.

Tags param.Field[[]string]Optional

Tags to attach to the Volume.

VMID param.Field[string]Optional

ID of the VM the Volume is attached to.

ReturnsExpand Collapse
type Operation struct{…}

Operation details.

ID string

Unique identifier for the Operation.

CreatedAt Time

When the Operation was created.

formatdate-time

Structured details about what an operation is changing.

Map of changed field names to their from/to diffs. Keys depend on the parent operation’s kind+type.

From OperationFieldDiffFromUnion

Previous value.

One of the following:
string
float64
bool
type OperationFieldDiffFromArray []string
To OperationFieldDiffToUnion

New value.

One of the following:
string
float64
bool
type OperationFieldDiffToArray []string

Kind of Operation.

One of the following:
const OperationKindVM OperationKind = "vm"
const OperationKindVolume OperationKind = "volume"
const OperationKindVPC OperationKind = "vpc"
const OperationKindFirewallRule OperationKind = "firewall_rule"
const OperationKindNKSCluster OperationKind = "nks_cluster"
const OperationKindNKSNodePool OperationKind = "nks_node_pool"
ProjectID string

Project ID the Operation belongs to.

ResourceID string

ID of the resource that the Operation is acting on.

Status of the Operation.

One of the following:
const OperationStatusPending OperationStatus = "pending"
const OperationStatusRunning OperationStatus = "running"
const OperationStatusDone OperationStatus = "done"
const OperationStatusFailed OperationStatus = "failed"
const OperationStatusUnknown OperationStatus = "unknown"

Type of Operation.

One of the following:
const OperationTypeCreate OperationType = "create"
const OperationTypeUpdate OperationType = "update"
const OperationTypeDelete OperationType = "delete"
const OperationTypeRestart OperationType = "restart"
UpdatedAt Time

When the Operation was updated.

formatdate-time

Create Volume

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"
  "github.com/nirvana-labs/nirvana-go/shared"
)

func main() {
  client := nirvana.NewClient(
    option.WithAPIKey("My API Key"),
  )
  operation, err := client.Compute.Volumes.New(context.TODO(), compute.VolumeNewParams{
    Name: "my-data-volume",
    ProjectID: "123e4567-e89b-12d3-a456-426614174000",
    Region: shared.RegionNameUsSva2,
    Size: 100,
    Type: compute.VolumeTypeABS,
  })
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", operation.ID)
}
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "created_at": "2025-01-01T00:00:00Z",
  "details": {
    "changes": {
      "foo": {
        "from": "string",
        "to": "string"
      }
    }
  },
  "kind": "vm",
  "project_id": "123e4567-e89b-12d3-a456-426614174000",
  "resource_id": "123e4567-e89b-12d3-a456-426614174000",
  "status": "pending",
  "type": "create",
  "updated_at": "2025-01-01T00:00:00Z"
}
Returns Examples
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "created_at": "2025-01-01T00:00:00Z",
  "details": {
    "changes": {
      "foo": {
        "from": "string",
        "to": "string"
      }
    }
  },
  "kind": "vm",
  "project_id": "123e4567-e89b-12d3-a456-426614174000",
  "resource_id": "123e4567-e89b-12d3-a456-426614174000",
  "status": "pending",
  "type": "create",
  "updated_at": "2025-01-01T00:00:00Z"
}