compute

package
v0.1.0-alpha.19 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 1, 2025 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

View Source
const RegionNameApMum1 = shared.RegionNameApMum1

This is an alias to an internal value.

View Source
const RegionNameApSin1 = shared.RegionNameApSin1

This is an alias to an internal value.

View Source
const RegionNameApTyo1 = shared.RegionNameApTyo1

This is an alias to an internal value.

View Source
const RegionNameEuAms1 = shared.RegionNameEuAms1

This is an alias to an internal value.

View Source
const RegionNameEuFrk1 = shared.RegionNameEuFrk1

This is an alias to an internal value.

View Source
const RegionNameEuLon1 = shared.RegionNameEuLon1

This is an alias to an internal value.

View Source
const RegionNameUsChi1 = shared.RegionNameUsChi1

This is an alias to an internal value.

View Source
const RegionNameUsSea1 = shared.RegionNameUsSea1

This is an alias to an internal value.

View Source
const RegionNameUsSva1 = shared.RegionNameUsSva1

This is an alias to an internal value.

View Source
const RegionNameUsWdc1 = shared.RegionNameUsWdc1

This is an alias to an internal value.

View Source
const ResourceStatusCreating = shared.ResourceStatusCreating

This is an alias to an internal value.

View Source
const ResourceStatusDeleted = shared.ResourceStatusDeleted

This is an alias to an internal value.

View Source
const ResourceStatusDeleting = shared.ResourceStatusDeleting

This is an alias to an internal value.

View Source
const ResourceStatusFailed = shared.ResourceStatusFailed

This is an alias to an internal value.

View Source
const ResourceStatusPending = shared.ResourceStatusPending

This is an alias to an internal value.

View Source
const ResourceStatusReady = shared.ResourceStatusReady

This is an alias to an internal value.

View Source
const ResourceStatusUpdating = shared.ResourceStatusUpdating

This is an alias to an internal value.

Variables

This section is empty.

Functions

This section is empty.

Types

type CPU

type CPU struct {
	Cores int64   `json:"cores,required"`
	JSON  cpuJSON `json:"-"`
}

CPU details.

func (*CPU) UnmarshalJSON

func (r *CPU) UnmarshalJSON(data []byte) (err error)

type CPUParam

type CPUParam struct {
	Cores param.Field[int64] `json:"cores,required"`
}

CPU details.

func (CPUParam) MarshalJSON

func (r CPUParam) MarshalJSON() (data []byte, err error)

type ComputeService

type ComputeService struct {
	Options []option.RequestOption
	VMs     *VMService
	Volumes *VolumeService
}

ComputeService contains methods and other services that help with interacting with the Nirvana Labs API.

Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewComputeService method instead.

func NewComputeService

func NewComputeService(opts ...option.RequestOption) (r *ComputeService)

NewComputeService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.

type Error

type Error = apierror.Error

type OSImage

type OSImage struct {
	CreatedAt   string      `json:"created_at,required"`
	DisplayName string      `json:"display_name,required"`
	Name        string      `json:"name,required"`
	JSON        osImageJSON `json:"-"`
}

func (*OSImage) UnmarshalJSON

func (r *OSImage) UnmarshalJSON(data []byte) (err error)

type Ram

type Ram struct {
	// RAM size
	Size int64   `json:"size,required"`
	JSON ramJSON `json:"-"`
}

RAM details.

func (*Ram) UnmarshalJSON

func (r *Ram) UnmarshalJSON(data []byte) (err error)

type RamParam

type RamParam struct {
	// RAM size
	Size param.Field[int64] `json:"size,required"`
}

RAM details.

func (RamParam) MarshalJSON

func (r RamParam) MarshalJSON() (data []byte, err error)

type RegionName

type RegionName = shared.RegionName

This is an alias to an internal type.

type ResourceStatus

type ResourceStatus = shared.ResourceStatus

This is an alias to an internal type.

type SSHKeyParam

type SSHKeyParam struct {
	PublicKey param.Field[string] `json:"public_key,required"`
}

SSH key details.

func (SSHKeyParam) MarshalJSON

func (r SSHKeyParam) MarshalJSON() (data []byte, err error)

type StorageType

type StorageType string

Storage type.

const (
	StorageTypeNvme StorageType = "nvme"
)

func (StorageType) IsKnown

func (r StorageType) IsKnown() bool

type VM

type VM struct {
	ID           string `json:"id,required"`
	BootVolumeID string `json:"boot_volume_id,required"`
	// CPU details.
	CPUConfig     CPU      `json:"cpu_config,required"`
	CreatedAt     string   `json:"created_at,required"`
	DataVolumeIDs []string `json:"data_volume_ids,required"`
	// RAM details.
	MemConfig Ram                   `json:"mem_config,required"`
	Name      string                `json:"name,required"`
	PrivateIP string                `json:"private_ip,required"`
	PublicIP  string                `json:"public_ip,required"`
	Region    shared.RegionName     `json:"region,required"`
	Status    shared.ResourceStatus `json:"status,required"`
	UpdatedAt string                `json:"updated_at,required"`
	VPCID     string                `json:"vpc_id,required"`
	JSON      vmJSON                `json:"-"`
}

VM details.

func (*VM) UnmarshalJSON

func (r *VM) UnmarshalJSON(data []byte) (err error)

type VMList

type VMList struct {
	Items []VM       `json:"items,required"`
	JSON  vmListJSON `json:"-"`
}

func (*VMList) UnmarshalJSON

func (r *VMList) UnmarshalJSON(data []byte) (err error)

type VMNewParams

type VMNewParams struct {
	// Boot volume create request.
	BootVolume param.Field[VMNewParamsBootVolume] `json:"boot_volume,required"`
	// CPU details.
	CPU             param.Field[CPUParam] `json:"cpu,required"`
	Name            param.Field[string]   `json:"name,required"`
	OSImageName     param.Field[string]   `json:"os_image_name,required"`
	PublicIPEnabled param.Field[bool]     `json:"public_ip_enabled,required"`
	// RAM details.
	Ram    param.Field[RamParam]          `json:"ram,required"`
	Region param.Field[shared.RegionName] `json:"region,required"`
	// SSH key details.
	SSHKey      param.Field[SSHKeyParam]             `json:"ssh_key,required"`
	DataVolumes param.Field[[]VMNewParamsDataVolume] `json:"data_volumes"`
	SubnetID    param.Field[string]                  `json:"subnet_id"`
}

func (VMNewParams) MarshalJSON

func (r VMNewParams) MarshalJSON() (data []byte, err error)

type VMNewParamsBootVolume

type VMNewParamsBootVolume struct {
	Size param.Field[int64] `json:"size,required"`
}

Boot volume create request.

func (VMNewParamsBootVolume) MarshalJSON

func (r VMNewParamsBootVolume) MarshalJSON() (data []byte, err error)

type VMNewParamsDataVolume

type VMNewParamsDataVolume struct {
	Size param.Field[int64] `json:"size,required"`
	// Storage type.
	Type param.Field[StorageType] `json:"type"`
}

VM data volume create request.

func (VMNewParamsDataVolume) MarshalJSON

func (r VMNewParamsDataVolume) MarshalJSON() (data []byte, err error)

type VMOSImageService

type VMOSImageService struct {
	Options []option.RequestOption
}

VMOSImageService contains methods and other services that help with interacting with the Nirvana Labs API.

Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewVMOSImageService method instead.

func NewVMOSImageService

func NewVMOSImageService(opts ...option.RequestOption) (r *VMOSImageService)

NewVMOSImageService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.

func (*VMOSImageService) List

func (r *VMOSImageService) List(ctx context.Context, opts ...option.RequestOption) (res *[]OSImage, err error)

List all OS Images

type VMService

type VMService struct {
	Options  []option.RequestOption
	OSImages *VMOSImageService
}

VMService contains methods and other services that help with interacting with the Nirvana Labs API.

Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewVMService method instead.

func NewVMService

func NewVMService(opts ...option.RequestOption) (r *VMService)

NewVMService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.

func (*VMService) Delete

func (r *VMService) Delete(ctx context.Context, vmID string, opts ...option.RequestOption) (res *operations.Operation, err error)

Delete a VM

func (*VMService) Get

func (r *VMService) Get(ctx context.Context, vmID string, opts ...option.RequestOption) (res *VM, err error)

Get details about a VM

func (*VMService) List

func (r *VMService) List(ctx context.Context, opts ...option.RequestOption) (res *VMList, err error)

List all VMs

func (*VMService) New

func (r *VMService) New(ctx context.Context, body VMNewParams, opts ...option.RequestOption) (res *operations.Operation, err error)

Create a VM

func (*VMService) Update

func (r *VMService) Update(ctx context.Context, vmID string, body VMUpdateParams, opts ...option.RequestOption) (res *operations.Operation, err error)

Update a VM

type VMUpdateParams

type VMUpdateParams struct {
	// CPU details.
	CPU param.Field[CPUParam] `json:"cpu"`
	// RAM details.
	Ram param.Field[RamParam] `json:"ram"`
}

func (VMUpdateParams) MarshalJSON

func (r VMUpdateParams) MarshalJSON() (data []byte, err error)

type Volume

type Volume struct {
	ID        string `json:"id,required"`
	CreatedAt string `json:"created_at,required"`
	// Volume kind.
	Kind VolumeKind `json:"kind,required"`
	Size int64      `json:"size,required"`
	// Storage type.
	Type      StorageType `json:"type,required"`
	UpdatedAt string      `json:"updated_at,required"`
	JSON      volumeJSON  `json:"-"`
}

Volume details.

func (*Volume) UnmarshalJSON

func (r *Volume) UnmarshalJSON(data []byte) (err error)

type VolumeKind

type VolumeKind string

Volume kind.

const (
	VolumeKindBoot VolumeKind = "boot"
	VolumeKindData VolumeKind = "data"
)

func (VolumeKind) IsKnown

func (r VolumeKind) IsKnown() bool

type VolumeListResponse

type VolumeListResponse struct {
	Items []Volume               `json:"items,required"`
	JSON  volumeListResponseJSON `json:"-"`
}

func (*VolumeListResponse) UnmarshalJSON

func (r *VolumeListResponse) UnmarshalJSON(data []byte) (err error)

type VolumeNewParams

type VolumeNewParams struct {
	Size param.Field[int64]  `json:"size,required"`
	VMID param.Field[string] `json:"vm_id,required"`
	// Storage type.
	Type param.Field[StorageType] `json:"type"`
}

func (VolumeNewParams) MarshalJSON

func (r VolumeNewParams) MarshalJSON() (data []byte, err error)

type VolumeService

type VolumeService struct {
	Options []option.RequestOption
}

VolumeService contains methods and other services that help with interacting with the Nirvana Labs API.

Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewVolumeService method instead.

func NewVolumeService

func NewVolumeService(opts ...option.RequestOption) (r *VolumeService)

NewVolumeService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.

func (*VolumeService) Delete

func (r *VolumeService) Delete(ctx context.Context, volumeID string, opts ...option.RequestOption) (res *operations.Operation, err error)

Delete a Volume. Boot or data volumes can be deleted.

func (*VolumeService) Get

func (r *VolumeService) Get(ctx context.Context, volumeID string, opts ...option.RequestOption) (res *Volume, err error)

Get a Volume.

func (*VolumeService) List

func (r *VolumeService) List(ctx context.Context, opts ...option.RequestOption) (res *VolumeListResponse, err error)

List all volumes

func (*VolumeService) New

Create a Volume. Only data volumes can be created.

func (*VolumeService) Update

func (r *VolumeService) Update(ctx context.Context, volumeID string, body VolumeUpdateParams, opts ...option.RequestOption) (res *operations.Operation, err error)

Update a Volume. Boot or data volumes can be updated.

type VolumeUpdateParams

type VolumeUpdateParams struct {
	Size param.Field[int64] `json:"size,required"`
}

func (VolumeUpdateParams) MarshalJSON

func (r VolumeUpdateParams) MarshalJSON() (data []byte, err error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL