compute

package
v0.1.0-alpha.14 Latest Latest
Warning

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

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

Documentation

Index

Constants

View Source
const RegionNameAmsterdam = shared.RegionNameAmsterdam

This is an alias to an internal value.

View Source
const RegionNameChicago = shared.RegionNameChicago

This is an alias to an internal value.

View Source
const RegionNameFrankfurt = shared.RegionNameFrankfurt

This is an alias to an internal value.

View Source
const RegionNameHongkong = shared.RegionNameHongkong

This is an alias to an internal value.

View Source
const RegionNameLondon = shared.RegionNameLondon

This is an alias to an internal value.

View Source
const RegionNameMumbai = shared.RegionNameMumbai

This is an alias to an internal value.

View Source
const RegionNameSaopaulo = shared.RegionNameSaopaulo

This is an alias to an internal value.

View Source
const RegionNameSeattle = shared.RegionNameSeattle

This is an alias to an internal value.

View Source
const RegionNameSiliconvalley = shared.RegionNameSiliconvalley

This is an alias to an internal value.

View Source
const RegionNameSingapore = shared.RegionNameSingapore

This is an alias to an internal value.

View Source
const RegionNameStockholm = shared.RegionNameStockholm

This is an alias to an internal value.

View Source
const RegionNameSydney = shared.RegionNameSydney

This is an alias to an internal value.

View Source
const RegionNameTokyo = shared.RegionNameTokyo

This is an alias to an internal value.

View Source
const RegionNameWashingtondc = shared.RegionNameWashingtondc

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"`
	// Volume details.
	BootVolume Volume `json:"boot_volume,required"`
	// CPU details.
	CPUConfig   CPU      `json:"cpu_config,required"`
	CreatedAt   string   `json:"created_at,required"`
	DataVolumes []Volume `json:"data_volumes,required"`
	// RAM details.
	MemConfig Ram                   `json:"mem_config,required"`
	Name      string                `json:"name,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"`
	NeedPublicIP param.Field[bool]     `json:"need_public_ip,required"`
	OSImageName  param.Field[string]   `json:"os_image_name,required"`
	Ports        param.Field[[]string] `json:"ports,required"`
	// RAM details.
	Ram           param.Field[RamParam]          `json:"ram,required"`
	Region        param.Field[shared.RegionName] `json:"region,required"`
	SourceAddress param.Field[string]            `json:"source_address,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 {
	// Boot volume create request.
	BootVolume param.Field[VMUpdateParamsBootVolume] `json:"boot_volume"`
	// CPU details.
	CPU         param.Field[CPUParam]                   `json:"cpu"`
	DataVolumes param.Field[[]VMUpdateParamsDataVolume] `json:"data_volumes"`
	// RAM details.
	Ram param.Field[RamParam] `json:"ram"`
}

func (VMUpdateParams) MarshalJSON

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

type VMUpdateParamsBootVolume

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

Boot volume create request.

func (VMUpdateParamsBootVolume) MarshalJSON

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

type VMUpdateParamsDataVolume

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

VM data volume create request.

func (VMUpdateParamsDataVolume) MarshalJSON

func (r VMUpdateParamsDataVolume) 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 VolumeDeleteParams

type VolumeDeleteParams struct {
	VMID param.Field[string] `json:"vm_id,required"`
}

func (VolumeDeleteParams) MarshalJSON

func (r VolumeDeleteParams) MarshalJSON() (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, body VolumeDeleteParams, 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"`
	VMID param.Field[string] `json:"vm_id,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