vms

package
v0.42.0 Latest Latest
Warning

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

Go to latest
Published: Dec 23, 2023 License: MPL-2.0 Imports: 19 Imported by: 8

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Client

type Client struct {
	api.Client
	VMID int
}

Client is an interface for accessing the Proxmox VM API.

func (*Client) CloneVM

func (c *Client) CloneVM(ctx context.Context, retries int, d *CloneRequestBody, timeout int) error

CloneVM clones a virtual machine.

func (*Client) CreateVM

func (c *Client) CreateVM(ctx context.Context, d *CreateRequestBody, timeout int) error

CreateVM creates a virtual machine.

func (*Client) CreateVMAsync

func (c *Client) CreateVMAsync(ctx context.Context, d *CreateRequestBody) (*string, error)

CreateVMAsync creates a virtual machine asynchronously.

func (*Client) DeleteVM

func (c *Client) DeleteVM(ctx context.Context) error

DeleteVM deletes a virtual machine.

func (*Client) ExpandPath

func (c *Client) ExpandPath(path string) string

ExpandPath expands a relative path to a full VM API path.

func (*Client) Firewall

func (c *Client) Firewall() firewall.API

Firewall returns a client for managing the VM firewall.

func (*Client) GetVM

func (c *Client) GetVM(ctx context.Context) (*GetResponseData, error)

GetVM retrieves a virtual machine.

func (*Client) GetVMNetworkInterfacesFromAgent

func (c *Client) GetVMNetworkInterfacesFromAgent(ctx context.Context) (*GetQEMUNetworkInterfacesResponseData, error)

GetVMNetworkInterfacesFromAgent retrieves the network interfaces reported by the QEMU agent.

func (*Client) GetVMStatus

func (c *Client) GetVMStatus(ctx context.Context) (*GetStatusResponseData, error)

GetVMStatus retrieves the status for a virtual machine.

func (*Client) ListVMs

func (c *Client) ListVMs(ctx context.Context) ([]*ListResponseData, error)

ListVMs retrieves a list of virtual machines.

func (*Client) MigrateVM

func (c *Client) MigrateVM(ctx context.Context, d *MigrateRequestBody, timeout int) error

MigrateVM migrates a virtual machine.

func (*Client) MigrateVMAsync

func (c *Client) MigrateVMAsync(ctx context.Context, d *MigrateRequestBody) (*string, error)

MigrateVMAsync migrates a virtual machine asynchronously.

func (*Client) MoveVMDisk

func (c *Client) MoveVMDisk(ctx context.Context, d *MoveDiskRequestBody, timeout int) error

MoveVMDisk moves a virtual machine disk.

func (*Client) MoveVMDiskAsync

func (c *Client) MoveVMDiskAsync(ctx context.Context, d *MoveDiskRequestBody) (*string, error)

MoveVMDiskAsync moves a virtual machine disk asynchronously.

func (*Client) RebootVM

func (c *Client) RebootVM(ctx context.Context, d *RebootRequestBody, timeout int) error

RebootVM reboots a virtual machine.

func (*Client) RebootVMAsync

func (c *Client) RebootVMAsync(ctx context.Context, d *RebootRequestBody) (*string, error)

RebootVMAsync reboots a virtual machine asynchronously.

func (*Client) ResizeVMDisk

func (c *Client) ResizeVMDisk(ctx context.Context, d *ResizeDiskRequestBody) error

ResizeVMDisk resizes a virtual machine disk.

func (*Client) ShutdownVM

func (c *Client) ShutdownVM(ctx context.Context, d *ShutdownRequestBody, timeout int) error

ShutdownVM shuts down a virtual machine.

func (*Client) ShutdownVMAsync

func (c *Client) ShutdownVMAsync(ctx context.Context, d *ShutdownRequestBody) (*string, error)

ShutdownVMAsync shuts down a virtual machine asynchronously.

func (*Client) StartVM

func (c *Client) StartVM(ctx context.Context, timeout int) ([]string, error)

StartVM starts a virtual machine. Returns the task log if the VM had warnings at startup, or fails to start.

func (*Client) StartVMAsync

func (c *Client) StartVMAsync(ctx context.Context) (*string, error)

StartVMAsync starts a virtual machine asynchronously.

func (*Client) StopVM

func (c *Client) StopVM(ctx context.Context, timeout int) error

StopVM stops a virtual machine.

func (*Client) StopVMAsync

func (c *Client) StopVMAsync(ctx context.Context) (*string, error)

StopVMAsync stops a virtual machine asynchronously.

func (*Client) Tasks

func (c *Client) Tasks() *tasks.Client

Tasks returns a client for managing VM tasks.

func (*Client) UpdateVM

func (c *Client) UpdateVM(ctx context.Context, d *UpdateRequestBody) error

UpdateVM updates a virtual machine.

func (*Client) UpdateVMAsync

func (c *Client) UpdateVMAsync(ctx context.Context, d *UpdateRequestBody) (*string, error)

UpdateVMAsync updates a virtual machine asynchronously.

func (*Client) WaitForNetworkInterfacesFromVMAgent

func (c *Client) WaitForNetworkInterfacesFromVMAgent(
	ctx context.Context,
	timeout int,
	delay int,
	waitForIP bool,
) (*GetQEMUNetworkInterfacesResponseData, error)

WaitForNetworkInterfacesFromVMAgent waits for a virtual machine's QEMU agent to publish the network interfaces.

func (*Client) WaitForNoNetworkInterfacesFromVMAgent

func (c *Client) WaitForNoNetworkInterfacesFromVMAgent(ctx context.Context, timeout int, delay int) error

WaitForNoNetworkInterfacesFromVMAgent waits for a virtual machine's QEMU agent to unpublish the network interfaces.

func (*Client) WaitForVMConfigUnlock

func (c *Client) WaitForVMConfigUnlock(ctx context.Context, timeout int, delay int, ignoreErrorResponse bool) error

WaitForVMConfigUnlock waits for a virtual machine configuration to become unlocked.

func (*Client) WaitForVMState

func (c *Client) WaitForVMState(ctx context.Context, state string, timeout int, delay int) error

WaitForVMState waits for a virtual machine to reach a specific state.

type CloneRequestBody

type CloneRequestBody struct {
	BandwidthLimit      *int              `json:"bwlimit,omitempty"     url:"bwlimit,omitempty"`
	Description         *string           `json:"description,omitempty" url:"description,omitempty"`
	FullCopy            *types.CustomBool `json:"full,omitempty"        url:"full,omitempty,int"`
	Name                *string           `json:"name,omitempty"        url:"name,omitempty"`
	PoolID              *string           `json:"pool,omitempty"        url:"pool,omitempty"`
	SnapshotName        *string           `json:"snapname,omitempty"    url:"snapname,omitempty"`
	TargetNodeName      *string           `json:"target,omitempty"      url:"target,omitempty"`
	TargetStorage       *string           `json:"storage,omitempty"     url:"storage,omitempty"`
	TargetStorageFormat *string           `json:"format,omitempty"      url:"format,omitempty"`
	VMIDNew             int               `json:"newid"                 url:"newid"`
}

CloneRequestBody contains the data for an virtual machine clone request.

type CreateRequestBody

type CreateRequestBody struct {
	ACPI                 *types.CustomBool              `json:"acpi,omitempty"               url:"acpi,omitempty,int"`
	Agent                *CustomAgent                   `json:"agent,omitempty"              url:"agent,omitempty"`
	AllowReboot          *types.CustomBool              `json:"reboot,omitempty"             url:"reboot,omitempty,int"`
	AudioDevices         CustomAudioDevices             `json:"audio,omitempty"              url:"audio,omitempty"`
	Autostart            *types.CustomBool              `json:"autostart,omitempty"          url:"autostart,omitempty,int"`
	BackupFile           *string                        `json:"archive,omitempty"            url:"archive,omitempty"`
	BandwidthLimit       *int                           `json:"bwlimit,omitempty"            url:"bwlimit,omitempty"`
	BIOS                 *string                        `json:"bios,omitempty"               url:"bios,omitempty"`
	Boot                 *CustomBoot                    `json:"boot,omitempty"               url:"boot,omitempty"`
	CDROM                *string                        `json:"cdrom,omitempty"              url:"cdrom,omitempty"`
	CloudInitConfig      *CustomCloudInitConfig         `json:"cloudinit,omitempty"          url:"cloudinit,omitempty"`
	CPUArchitecture      *string                        `json:"arch,omitempty"               url:"arch,omitempty"`
	CPUCores             *int                           `json:"cores,omitempty"              url:"cores,omitempty"`
	CPUEmulation         *CustomCPUEmulation            `json:"cpu,omitempty"                url:"cpu,omitempty"`
	CPULimit             *int                           `json:"cpulimit,omitempty"           url:"cpulimit,omitempty"`
	CPUSockets           *int                           `json:"sockets,omitempty"            url:"sockets,omitempty"`
	CPUUnits             *int                           `json:"cpuunits,omitempty"           url:"cpuunits,omitempty"`
	DedicatedMemory      *int                           `json:"memory,omitempty"             url:"memory,omitempty"`
	Delete               []string                       `json:"delete,omitempty"             url:"delete,omitempty,comma"`
	DeletionProtection   *types.CustomBool              `json:"protection,omitempty"         url:"force,omitempty,int"`
	Description          *string                        `json:"description,omitempty"        url:"description,omitempty"`
	EFIDisk              *CustomEFIDisk                 `json:"efidisk0,omitempty"           url:"efidisk0,omitempty"`
	FloatingMemory       *int                           `json:"balloon,omitempty"            url:"balloon,omitempty"`
	FloatingMemoryShares *int                           `json:"shares,omitempty"             url:"shares,omitempty"`
	Freeze               *types.CustomBool              `json:"freeze,omitempty"             url:"freeze,omitempty,int"`
	HookScript           *string                        `json:"hookscript,omitempty"         url:"hookscript,omitempty"`
	Hotplug              types.CustomCommaSeparatedList `json:"hotplug,omitempty"            url:"hotplug,omitempty,comma"`
	Hugepages            *string                        `json:"hugepages,omitempty"          url:"hugepages,omitempty"`
	IDEDevices           CustomStorageDevices           `json:"ide,omitempty"                url:",omitempty"`
	KeyboardLayout       *string                        `json:"keyboard,omitempty"           url:"keyboard,omitempty"`
	KVMArguments         *string                        `json:"args,omitempty"               url:"args,omitempty,space"`
	KVMEnabled           *types.CustomBool              `json:"kvm,omitempty"                url:"kvm,omitempty,int"`
	LocalTime            *types.CustomBool              `json:"localtime,omitempty"          url:"localtime,omitempty,int"`
	Lock                 *string                        `json:"lock,omitempty"               url:"lock,omitempty"`
	Machine              *string                        `json:"machine,omitempty"            url:"machine,omitempty"`
	MigrateDowntime      *float64                       `json:"migrate_downtime,omitempty"   url:"migrate_downtime,omitempty"`
	MigrateSpeed         *int                           `json:"migrate_speed,omitempty"      url:"migrate_speed,omitempty"`
	Name                 *string                        `json:"name,omitempty"               url:"name,omitempty"`
	NetworkDevices       CustomNetworkDevices           `json:"net,omitempty"                url:"net,omitempty"`
	NUMADevices          CustomNUMADevices              `json:"numa_devices,omitempty"       url:"numa,omitempty"`
	NUMAEnabled          *types.CustomBool              `json:"numa,omitempty"               url:"numa,omitempty,int"`
	OSType               *string                        `json:"ostype,omitempty"             url:"ostype,omitempty"`
	Overwrite            *types.CustomBool              `json:"force,omitempty"              url:"force,omitempty,int"`
	PCIDevices           CustomPCIDevices               `json:"hostpci,omitempty"            url:"hostpci,omitempty"`
	PoolID               *string                        `json:"pool,omitempty"               url:"pool,omitempty"`
	Revert               *string                        `json:"revert,omitempty"             url:"revert,omitempty"`
	SATADevices          CustomStorageDevices           `json:"sata,omitempty"               url:"sata,omitempty"`
	SCSIDevices          CustomStorageDevices           `json:"scsi,omitempty"               url:"scsi,omitempty"`
	SCSIHardware         *string                        `json:"scsihw,omitempty"             url:"scsihw,omitempty"`
	SerialDevices        CustomSerialDevices            `json:"serial,omitempty"             url:"serial,omitempty"`
	SharedMemory         *CustomSharedMemory            `json:"ivshmem,omitempty"            url:"ivshmem,omitempty"`
	SkipLock             *types.CustomBool              `json:"skiplock,omitempty"           url:"skiplock,omitempty,int"`
	SMBIOS               *CustomSMBIOS                  `json:"smbios1,omitempty"            url:"smbios1,omitempty"`
	SpiceEnhancements    *CustomSpiceEnhancements       `json:"spice_enhancements,omitempty" url:"spice_enhancements,omitempty"`
	StartDate            *string                        `json:"startdate,omitempty"          url:"startdate,omitempty"`
	StartOnBoot          *types.CustomBool              `json:"onboot,omitempty"             url:"onboot,omitempty,int"`
	StartupOrder         *CustomStartupOrder            `json:"startup,omitempty"            url:"startup,omitempty"`
	TabletDeviceEnabled  *types.CustomBool              `json:"tablet,omitempty"             url:"tablet,omitempty,int"`
	Tags                 *string                        `json:"tags,omitempty"               url:"tags,omitempty"`
	Template             *types.CustomBool              `json:"template,omitempty"           url:"template,omitempty,int"`
	TimeDriftFixEnabled  *types.CustomBool              `json:"tdf,omitempty"                url:"tdf,omitempty,int"`
	TPMState             *CustomTPMState                `json:"tpmstate0,omitempty"          url:"tpmstate0,omitempty"`
	USBDevices           CustomUSBDevices               `json:"usb,omitempty"                url:"usb,omitempty"`
	VGADevice            *CustomVGADevice               `json:"vga,omitempty"                url:"vga,omitempty"`
	VirtualCPUCount      *int                           `json:"vcpus,omitempty"              url:"vcpus,omitempty"`
	VirtualIODevices     CustomStorageDevices           `json:"virtio,omitempty"             url:"virtio,omitempty"`
	VMGenerationID       *string                        `json:"vmgenid,omitempty"            url:"vmgenid,omitempty"`
	VMID                 *int                           `json:"vmid,omitempty"               url:"vmid,omitempty"`
	VMStateDatastoreID   *string                        `json:"vmstatestorage,omitempty"     url:"vmstatestorage,omitempty"`
	WatchdogDevice       *CustomWatchdogDevice          `json:"watchdog,omitempty"           url:"watchdog,omitempty"`
}

CreateRequestBody contains the data for a virtual machine create request.

type CreateResponseBody

type CreateResponseBody struct {
	Data *string `json:"data,omitempty"`
}

CreateResponseBody contains the body from a create response.

type CustomAgent

type CustomAgent struct {
	Enabled         *types.CustomBool `json:"enabled,omitempty"   url:"enabled,int"`
	TrimClonedDisks *types.CustomBool `json:"fstrim_cloned_disks" url:"fstrim_cloned_disks,int"`
	Type            *string           `json:"type"                url:"type"`
}

CustomAgent handles QEMU agent parameters.

func (CustomAgent) EncodeValues

func (r CustomAgent) EncodeValues(key string, v *url.Values) error

EncodeValues converts a CustomAgent struct to a URL vlaue.

func (*CustomAgent) UnmarshalJSON

func (r *CustomAgent) UnmarshalJSON(b []byte) error

UnmarshalJSON converts a CustomAgent string to an object.

type CustomAudioDevice

type CustomAudioDevice struct {
	Device  string  `json:"device" url:"device"`
	Driver  *string `json:"driver" url:"driver"`
	Enabled bool    `json:"-"      url:"-"`
}

CustomAudioDevice handles QEMU audio parameters.

func (CustomAudioDevice) EncodeValues

func (r CustomAudioDevice) EncodeValues(key string, v *url.Values) error

EncodeValues converts a CustomAudioDevice struct to a URL vlaue.

func (*CustomAudioDevice) UnmarshalJSON

func (r *CustomAudioDevice) UnmarshalJSON(b []byte) error

UnmarshalJSON converts a CustomAgent string to an object.

type CustomAudioDevices

type CustomAudioDevices []CustomAudioDevice

CustomAudioDevices handles QEMU audio device parameters.

func (CustomAudioDevices) EncodeValues

func (r CustomAudioDevices) EncodeValues(key string, v *url.Values) error

EncodeValues converts a CustomAudioDevices array to multiple URL values.

type CustomBoot

type CustomBoot struct {
	Order *[]string `json:"order,omitempty" url:"order,omitempty,semicolon"`
}

CustomBoot handles QEMU boot parameters.

func (CustomBoot) EncodeValues

func (r CustomBoot) EncodeValues(key string, v *url.Values) error

EncodeValues converts a CustomBoot struct to multiple URL values.

func (*CustomBoot) UnmarshalJSON

func (r *CustomBoot) UnmarshalJSON(b []byte) error

UnmarshalJSON converts a CustomBoot string to an object.

type CustomCPUEmulation

type CustomCPUEmulation struct {
	Flags      *[]string         `json:"flags,omitempty"        url:"flags,omitempty,semicolon"`
	Hidden     *types.CustomBool `json:"hidden,omitempty"       url:"hidden,omitempty,int"`
	HVVendorID *string           `json:"hv-vendor-id,omitempty" url:"hv-vendor-id,omitempty"`
	Type       string            `json:"cputype,omitempty"      url:"cputype,omitempty"`
}

CustomCPUEmulation handles QEMU CPU emulation parameters.

func (CustomCPUEmulation) EncodeValues

func (r CustomCPUEmulation) EncodeValues(key string, v *url.Values) error

EncodeValues converts a CustomCPUEmulation struct to a URL vlaue.

func (*CustomCPUEmulation) UnmarshalJSON

func (r *CustomCPUEmulation) UnmarshalJSON(b []byte) error

UnmarshalJSON converts a CustomCPUEmulation string to an object.

type CustomCloudInitConfig

type CustomCloudInitConfig struct {
	Files        *CustomCloudInitFiles     `json:"cicustom,omitempty"     url:"cicustom,omitempty"`
	IPConfig     []CustomCloudInitIPConfig `json:"ipconfig,omitempty"     url:"ipconfig,omitempty,numbered"`
	Nameserver   *string                   `json:"nameserver,omitempty"   url:"nameserver,omitempty"`
	Password     *string                   `json:"cipassword,omitempty"   url:"cipassword,omitempty"`
	SearchDomain *string                   `json:"searchdomain,omitempty" url:"searchdomain,omitempty"`
	SSHKeys      *CustomCloudInitSSHKeys   `json:"sshkeys,omitempty"      url:"sshkeys,omitempty"`
	Type         *string                   `json:"citype,omitempty"       url:"citype,omitempty"`
	Username     *string                   `json:"ciuser,omitempty"       url:"ciuser,omitempty"`
}

CustomCloudInitConfig handles QEMU cloud-init parameters.

func (CustomCloudInitConfig) EncodeValues

func (r CustomCloudInitConfig) EncodeValues(_ string, v *url.Values) error

EncodeValues converts a CustomCloudInitConfig struct to multiple URL values.

type CustomCloudInitFiles

type CustomCloudInitFiles struct {
	MetaVolume    *string `json:"meta,omitempty"    url:"meta,omitempty"`
	NetworkVolume *string `json:"network,omitempty" url:"network,omitempty"`
	UserVolume    *string `json:"user,omitempty"    url:"user,omitempty"`
	VendorVolume  *string `json:"vendor,omitempty"  url:"vendor,omitempty"`
}

CustomCloudInitFiles handles QEMU cloud-init custom files parameters.

func (*CustomCloudInitFiles) UnmarshalJSON

func (r *CustomCloudInitFiles) UnmarshalJSON(b []byte) error

UnmarshalJSON converts a CustomCloudInitFiles string to an object.

type CustomCloudInitIPConfig

type CustomCloudInitIPConfig struct {
	GatewayIPv4 *string `json:"gw,omitempty"  url:"gw,omitempty"`
	GatewayIPv6 *string `json:"gw6,omitempty" url:"gw6,omitempty"`
	IPv4        *string `json:"ip,omitempty"  url:"ip,omitempty"`
	IPv6        *string `json:"ip6,omitempty" url:"ip6,omitempty"`
}

CustomCloudInitIPConfig handles QEMU cloud-init IP configuration parameters.

func (*CustomCloudInitIPConfig) UnmarshalJSON

func (r *CustomCloudInitIPConfig) UnmarshalJSON(b []byte) error

UnmarshalJSON converts a CustomCloudInitIPConfig string to an object.

type CustomCloudInitSSHKeys

type CustomCloudInitSSHKeys []string

CustomCloudInitSSHKeys handles QEMU cloud-init SSH keys parameters.

func (*CustomCloudInitSSHKeys) UnmarshalJSON

func (r *CustomCloudInitSSHKeys) UnmarshalJSON(b []byte) error

UnmarshalJSON converts a CustomCloudInitFiles string to an object.

type CustomEFIDisk

type CustomEFIDisk struct {
	FileVolume      string            `json:"file"                        url:"file"`
	Format          *string           `json:"format,omitempty"            url:"format,omitempty"`
	Type            *string           `json:"efitype,omitempty"           url:"efitype,omitempty"`
	PreEnrolledKeys *types.CustomBool `json:"pre-enrolled-keys,omitempty" url:"pre-enrolled-keys,omitempty,int"`
}

CustomEFIDisk handles QEMU EFI disk parameters.

func (CustomEFIDisk) EncodeValues

func (r CustomEFIDisk) EncodeValues(key string, v *url.Values) error

EncodeValues converts a CustomEFIDisk struct to a URL vlaue.

func (*CustomEFIDisk) UnmarshalJSON

func (r *CustomEFIDisk) UnmarshalJSON(b []byte) error

UnmarshalJSON converts a CustomEFIDisk string to an object.

type CustomNUMADevice

type CustomNUMADevice struct {
	CPUIDs        []string  `json:"cpus"                url:"cpus,semicolon"`
	HostNodeNames *[]string `json:"hostnodes,omitempty" url:"hostnodes,omitempty,semicolon"`
	Memory        *float64  `json:"memory,omitempty"    url:"memory,omitempty"`
	Policy        *string   `json:"policy,omitempty"    url:"policy,omitempty"`
}

CustomNUMADevice handles QEMU NUMA device parameters.

func (CustomNUMADevice) EncodeValues

func (r CustomNUMADevice) EncodeValues(key string, v *url.Values) error

EncodeValues converts a CustomNUMADevice struct to a URL vlaue.

type CustomNUMADevices

type CustomNUMADevices []CustomNUMADevice

CustomNUMADevices handles QEMU NUMA device parameters.

func (CustomNUMADevices) EncodeValues

func (r CustomNUMADevices) EncodeValues(key string, v *url.Values) error

EncodeValues converts a CustomNUMADevices array to multiple URL values.

type CustomNetworkDevice

type CustomNetworkDevice struct {
	Model      string            `json:"model"               url:"model"`
	Bridge     *string           `json:"bridge,omitempty"    url:"bridge,omitempty"`
	Enabled    bool              `json:"-"                   url:"-"`
	Firewall   *types.CustomBool `json:"firewall,omitempty"  url:"firewall,omitempty,int"`
	LinkDown   *types.CustomBool `json:"link_down,omitempty" url:"link_down,omitempty,int"`
	MACAddress *string           `json:"macaddr,omitempty"   url:"macaddr,omitempty"`
	Queues     *int              `json:"queues,omitempty"    url:"queues,omitempty"`
	RateLimit  *float64          `json:"rate,omitempty"      url:"rate,omitempty"`
	Tag        *int              `json:"tag,omitempty"       url:"tag,omitempty"`
	MTU        *int              `json:"mtu,omitempty"       url:"mtu,omitempty"`
	Trunks     []int             `json:"trunks,omitempty"    url:"trunks,omitempty"`
}

CustomNetworkDevice handles QEMU network device parameters.

func (CustomNetworkDevice) EncodeValues

func (r CustomNetworkDevice) EncodeValues(key string, v *url.Values) error

EncodeValues converts a CustomNetworkDevice struct to a URL vlaue.

func (*CustomNetworkDevice) UnmarshalJSON

func (r *CustomNetworkDevice) UnmarshalJSON(b []byte) error

UnmarshalJSON converts a CustomNetworkDevice string to an object.

type CustomNetworkDevices

type CustomNetworkDevices []CustomNetworkDevice

CustomNetworkDevices handles QEMU network device parameters.

func (CustomNetworkDevices) EncodeValues

func (r CustomNetworkDevices) EncodeValues(key string, v *url.Values) error

EncodeValues converts a CustomNetworkDevices array to multiple URL values.

type CustomPCIDevice

type CustomPCIDevice struct {
	DeviceIDs  *[]string         `json:"host,omitempty"    url:"host,omitempty,semicolon"`
	Mapping    *string           `json:"mapping,omitempty" url:"mapping,omitempty"`
	MDev       *string           `json:"mdev,omitempty"    url:"mdev,omitempty"`
	PCIExpress *types.CustomBool `json:"pcie,omitempty"    url:"pcie,omitempty,int"`
	ROMBAR     *types.CustomBool `json:"rombar,omitempty"  url:"rombar,omitempty,int"`
	ROMFile    *string           `json:"romfile,omitempty" url:"romfile,omitempty"`
	XVGA       *types.CustomBool `json:"x-vga,omitempty"   url:"x-vga,omitempty,int"`
}

CustomPCIDevice handles QEMU host PCI device mapping parameters.

func (CustomPCIDevice) EncodeValues

func (r CustomPCIDevice) EncodeValues(key string, v *url.Values) error

EncodeValues converts a CustomPCIDevice struct to a URL vlaue.

func (*CustomPCIDevice) UnmarshalJSON

func (r *CustomPCIDevice) UnmarshalJSON(b []byte) error

UnmarshalJSON converts a CustomPCIDevice string to an object.

type CustomPCIDevices

type CustomPCIDevices []CustomPCIDevice

CustomPCIDevices handles QEMU host PCI device mapping parameters.

func (CustomPCIDevices) EncodeValues

func (r CustomPCIDevices) EncodeValues(key string, v *url.Values) error

EncodeValues converts a CustomPCIDevices array to multiple URL values.

type CustomSMBIOS

type CustomSMBIOS struct {
	Base64       *types.CustomBool `json:"base64,omitempty"       url:"base64,omitempty,int"`
	Family       *string           `json:"family,omitempty"       url:"family,omitempty"`
	Manufacturer *string           `json:"manufacturer,omitempty" url:"manufacturer,omitempty"`
	Product      *string           `json:"product,omitempty"      url:"product,omitempty"`
	Serial       *string           `json:"serial,omitempty"       url:"serial,omitempty"`
	SKU          *string           `json:"sku,omitempty"          url:"sku,omitempty"`
	UUID         *string           `json:"uuid,omitempty"         url:"uuid,omitempty"`
	Version      *string           `json:"version,omitempty"      url:"version,omitempty"`
}

CustomSMBIOS handles QEMU SMBIOS parameters.

func (CustomSMBIOS) EncodeValues

func (r CustomSMBIOS) EncodeValues(key string, v *url.Values) error

EncodeValues converts a CustomSMBIOS struct to a URL vlaue.

func (*CustomSMBIOS) UnmarshalJSON

func (r *CustomSMBIOS) UnmarshalJSON(b []byte) error

UnmarshalJSON converts a CustomSMBIOS string to an object.

type CustomSerialDevices

type CustomSerialDevices []string

CustomSerialDevices handles QEMU serial device parameters.

func (CustomSerialDevices) EncodeValues

func (r CustomSerialDevices) EncodeValues(key string, v *url.Values) error

EncodeValues converts a CustomSerialDevices array to multiple URL values.

type CustomSharedMemory

type CustomSharedMemory struct {
	Name *string `json:"name,omitempty" url:"name,omitempty"`
	Size int     `json:"size"           url:"size"`
}

CustomSharedMemory handles QEMU Inter-VM shared memory parameters.

func (CustomSharedMemory) EncodeValues

func (r CustomSharedMemory) EncodeValues(key string, v *url.Values) error

EncodeValues converts a CustomSharedMemory struct to a URL vlaue.

func (*CustomSharedMemory) UnmarshalJSON

func (r *CustomSharedMemory) UnmarshalJSON(b []byte) error

UnmarshalJSON converts a CustomSharedMemory string to an object.

type CustomSpiceEnhancements

type CustomSpiceEnhancements struct {
	FolderSharing  *types.CustomBool `json:"foldersharing,omitempty"  url:"foldersharing,omitempty"`
	VideoStreaming *string           `json:"videostreaming,omitempty" url:"videostreaming,omitempty"`
}

CustomSpiceEnhancements handles QEMU spice enhancement parameters.

func (CustomSpiceEnhancements) EncodeValues

func (r CustomSpiceEnhancements) EncodeValues(key string, v *url.Values) error

EncodeValues converts a CustomSpiceEnhancements struct to a URL vlaue.

type CustomStartupOrder

type CustomStartupOrder struct {
	Down  *int `json:"down,omitempty"  url:"down,omitempty"`
	Order *int `json:"order,omitempty" url:"order,omitempty"`
	Up    *int `json:"up,omitempty"    url:"up,omitempty"`
}

CustomStartupOrder handles QEMU startup order parameters.

func (CustomStartupOrder) EncodeValues

func (r CustomStartupOrder) EncodeValues(key string, v *url.Values) error

EncodeValues converts a CustomStartupOrder struct to a URL vlaue.

func (*CustomStartupOrder) UnmarshalJSON added in v0.24.1

func (r *CustomStartupOrder) UnmarshalJSON(b []byte) error

UnmarshalJSON converts a CustomStartupOrder string to an object.

type CustomStorageDevice

type CustomStorageDevice struct {
	AIO                     *string           `json:"aio,omitempty"         url:"aio,omitempty"`
	BackupEnabled           *types.CustomBool `json:"backup,omitempty"      url:"backup,omitempty,int"`
	BurstableReadSpeedMbps  *int              `json:"mbps_rd_max,omitempty" url:"mbps_rd_max,omitempty"`
	Cache                   *string           `json:"cache,omitempty"       url:"cache,omitempty"`
	BurstableWriteSpeedMbps *int              `json:"mbps_wr_max,omitempty" url:"mbps_wr_max,omitempty"`
	Discard                 *string           `json:"discard,omitempty"     url:"discard,omitempty"`
	Enabled                 bool              `json:"-"                     url:"-"`
	FileVolume              string            `json:"file"                  url:"file"`
	Format                  *string           `json:"format,omitempty"      url:"format,omitempty"`
	IOThread                *types.CustomBool `json:"iothread,omitempty"    url:"iothread,omitempty,int"`
	SSD                     *types.CustomBool `json:"ssd,omitempty"         url:"ssd,omitempty,int"`
	MaxReadSpeedMbps        *int              `json:"mbps_rd,omitempty"     url:"mbps_rd,omitempty"`
	MaxWriteSpeedMbps       *int              `json:"mbps_wr,omitempty"     url:"mbps_wr,omitempty"`
	Media                   *string           `json:"media,omitempty"       url:"media,omitempty"`
	Size                    *types.DiskSize   `json:"size,omitempty"        url:"size,omitempty"`
	Interface               *string
	ID                      *string
	FileID                  *string
}

CustomStorageDevice handles QEMU SATA device parameters.

func (CustomStorageDevice) EncodeValues

func (d CustomStorageDevice) EncodeValues(key string, v *url.Values) error

EncodeValues converts a CustomStorageDevice struct to a URL vlaue.

func (CustomStorageDevice) IsCloudInitDrive added in v0.41.0

func (d CustomStorageDevice) IsCloudInitDrive(vmID int) bool

IsCloudInitDrive returns true, if CustomStorageDevice is a cloud-init drive.

func (CustomStorageDevice) IsOwnedBy added in v0.35.0

func (d CustomStorageDevice) IsOwnedBy(vmID int) bool

IsOwnedBy returns true, if CustomStorageDevice is owned by given VM. Not yet allocated volumes are not owned by any VM.

func (CustomStorageDevice) PathInDatastore added in v0.35.0

func (d CustomStorageDevice) PathInDatastore() *string

PathInDatastore returns path part of FileVolume or nil if it is not yet allocated.

func (*CustomStorageDevice) UnmarshalJSON

func (d *CustomStorageDevice) UnmarshalJSON(b []byte) error

UnmarshalJSON converts a CustomStorageDevice string to an object.

type CustomStorageDevices

type CustomStorageDevices map[string]CustomStorageDevice

CustomStorageDevices handles QEMU SATA device parameters.

func (CustomStorageDevices) EncodeValues

func (d CustomStorageDevices) EncodeValues(_ string, v *url.Values) error

EncodeValues converts a CustomStorageDevices array to multiple URL values.

type CustomTPMState added in v0.40.0

type CustomTPMState struct {
	FileVolume string  `json:"file"              url:"file"`
	Version    *string `json:"version,omitempty" url:"version,omitempty"`
}

CustomTPMState handles QEMU TPM state parameters.

func (CustomTPMState) EncodeValues added in v0.40.0

func (r CustomTPMState) EncodeValues(key string, v *url.Values) error

EncodeValues converts a CustomTPMState struct to a URL vlaue.

func (*CustomTPMState) UnmarshalJSON added in v0.40.0

func (r *CustomTPMState) UnmarshalJSON(b []byte) error

UnmarshalJSON converts a CustomTPMState string to an object.

type CustomUSBDevice

type CustomUSBDevice struct {
	HostDevice *string           `json:"host"              url:"host"`
	Mapping    *string           `json:"mapping,omitempty" url:"mapping,omitempty"`
	USB3       *types.CustomBool `json:"usb3,omitempty"    url:"usb3,omitempty,int"`
}

CustomUSBDevice handles QEMU USB device parameters.

func (CustomUSBDevice) EncodeValues

func (r CustomUSBDevice) EncodeValues(key string, v *url.Values) error

EncodeValues converts a CustomUSBDevice struct to a URL vlaue.

func (*CustomUSBDevice) UnmarshalJSON added in v0.37.0

func (r *CustomUSBDevice) UnmarshalJSON(b []byte) error

UnmarshalJSON converts a CustomUSBDevice string to an object.

type CustomUSBDevices

type CustomUSBDevices []CustomUSBDevice

CustomUSBDevices handles QEMU USB device parameters.

func (CustomUSBDevices) EncodeValues

func (r CustomUSBDevices) EncodeValues(key string, v *url.Values) error

EncodeValues converts a CustomUSBDevices array to multiple URL values.

type CustomVGADevice

type CustomVGADevice struct {
	Memory *int    `json:"memory,omitempty" url:"memory,omitempty"`
	Type   *string `json:"type,omitempty"   url:"type,omitempty"`
}

CustomVGADevice handles QEMU VGA device parameters.

func (CustomVGADevice) EncodeValues

func (r CustomVGADevice) EncodeValues(key string, v *url.Values) error

EncodeValues converts a CustomVGADevice struct to a URL vlaue.

func (*CustomVGADevice) UnmarshalJSON

func (r *CustomVGADevice) UnmarshalJSON(b []byte) error

UnmarshalJSON converts a CustomVGADevice string to an object.

type CustomVirtualIODevice

type CustomVirtualIODevice struct {
	AIO           *string           `json:"aio,omitempty"    url:"aio,omitempty"`
	BackupEnabled *types.CustomBool `json:"backup,omitempty" url:"backup,omitempty,int"`
	Enabled       bool              `json:"-"                url:"-"`
	FileVolume    string            `json:"file"             url:"file"`
}

CustomVirtualIODevice handles QEMU VirtIO device parameters.

func (CustomVirtualIODevice) EncodeValues

func (r CustomVirtualIODevice) EncodeValues(key string, v *url.Values) error

EncodeValues converts a CustomVirtualIODevice struct to a URL vlaue.

type CustomVirtualIODevices

type CustomVirtualIODevices []CustomVirtualIODevice

CustomVirtualIODevices handles QEMU VirtIO device parameters.

func (CustomVirtualIODevices) EncodeValues

func (r CustomVirtualIODevices) EncodeValues(key string, v *url.Values) error

EncodeValues converts a CustomVirtualIODevices array to multiple URL values.

type CustomWatchdogDevice

type CustomWatchdogDevice struct {
	Action *string `json:"action,omitempty" url:"action,omitempty"`
	Model  *string `json:"model"            url:"model"`
}

CustomWatchdogDevice handles QEMU watchdog device parameters.

func (CustomWatchdogDevice) EncodeValues

func (r CustomWatchdogDevice) EncodeValues(key string, v *url.Values) error

EncodeValues converts a CustomWatchdogDevice struct to a URL vlaue.

func (*CustomWatchdogDevice) UnmarshalJSON

func (r *CustomWatchdogDevice) UnmarshalJSON(b []byte) error

UnmarshalJSON converts a CustomWatchdogDevice string to an object.

type GetQEMUNetworkInterfacesResponseBody

type GetQEMUNetworkInterfacesResponseBody struct {
	Data *GetQEMUNetworkInterfacesResponseData `json:"data,omitempty"`
}

GetQEMUNetworkInterfacesResponseBody contains the body from a QEMU get network interfaces response.

type GetQEMUNetworkInterfacesResponseData

type GetQEMUNetworkInterfacesResponseData struct {
	Result *[]GetQEMUNetworkInterfacesResponseResult `json:"result,omitempty"`
}

GetQEMUNetworkInterfacesResponseData contains the data from a QEMU get network interfaces response.

type GetQEMUNetworkInterfacesResponseResult

type GetQEMUNetworkInterfacesResponseResult struct {
	MACAddress  string                                             `json:"hardware-address"`
	Name        string                                             `json:"name"`
	Statistics  *GetQEMUNetworkInterfacesResponseResultStatistics  `json:"statistics,omitempty"`
	IPAddresses *[]GetQEMUNetworkInterfacesResponseResultIPAddress `json:"ip-addresses,omitempty"`
}

GetQEMUNetworkInterfacesResponseResult contains the result from a QEMU get network interfaces response.

type GetQEMUNetworkInterfacesResponseResultIPAddress

type GetQEMUNetworkInterfacesResponseResultIPAddress struct {
	Address string `json:"ip-address"`
	Prefix  int    `json:"prefix"`
	Type    string `json:"ip-address-type"`
}

GetQEMUNetworkInterfacesResponseResultIPAddress contains the IP address from a QEMU get network interfaces response.

type GetQEMUNetworkInterfacesResponseResultStatistics

type GetQEMUNetworkInterfacesResponseResultStatistics struct {
	RXBytes   int `json:"rx-bytes"`
	RXDropped int `json:"rx-dropped"`
	RXErrors  int `json:"rx-errs"`
	RXPackets int `json:"rx-packets"`
	TXBytes   int `json:"tx-bytes"`
	TXDropped int `json:"tx-dropped"`
	TXErrors  int `json:"tx-errs"`
	TXPackets int `json:"tx-packets"`
}

GetQEMUNetworkInterfacesResponseResultStatistics contains the statistics from a QEMU get network interfaces response.

type GetResponseBody

type GetResponseBody struct {
	Data *GetResponseData `json:"data,omitempty"`
}

GetResponseBody contains the body from a virtual machine get response.

type GetResponseData

type GetResponseData struct {
	ACPI                 *types.CustomBool               `json:"acpi,omitempty"`
	Agent                *CustomAgent                    `json:"agent,omitempty"`
	AllowReboot          *types.CustomBool               `json:"reboot,omitempty"`
	AudioDevice          *CustomAudioDevice              `json:"audio0,omitempty"`
	Autostart            *types.CustomBool               `json:"autostart,omitempty"`
	BackupFile           *string                         `json:"archive,omitempty"`
	BandwidthLimit       *int                            `json:"bwlimit,omitempty"`
	BIOS                 *string                         `json:"bios,omitempty"`
	BootDisk             *string                         `json:"bootdisk,omitempty"`
	BootOrder            *string                         `json:"boot,omitempty"`
	CDROM                *string                         `json:"cdrom,omitempty"`
	CloudInitDNSDomain   *string                         `json:"searchdomain,omitempty"`
	CloudInitDNSServer   *string                         `json:"nameserver,omitempty"`
	CloudInitFiles       *CustomCloudInitFiles           `json:"cicustom,omitempty"`
	CloudInitPassword    *string                         `json:"cipassword,omitempty"`
	CloudInitSSHKeys     *CustomCloudInitSSHKeys         `json:"sshkeys,omitempty"`
	CloudInitType        *string                         `json:"citype,omitempty"`
	CloudInitUsername    *string                         `json:"ciuser,omitempty"`
	CPUArchitecture      *string                         `json:"arch,omitempty"`
	CPUCores             *int                            `json:"cores,omitempty"`
	CPUEmulation         *CustomCPUEmulation             `json:"cpu,omitempty"`
	CPULimit             *types.CustomInt                `json:"cpulimit,omitempty"`
	CPUSockets           *int                            `json:"sockets,omitempty"`
	CPUUnits             *int                            `json:"cpuunits,omitempty"`
	DedicatedMemory      *types.CustomInt64              `json:"memory,omitempty"`
	DeletionProtection   *types.CustomBool               `json:"protection,omitempty"`
	Description          *string                         `json:"description,omitempty"`
	EFIDisk              *CustomEFIDisk                  `json:"efidisk0,omitempty"`
	FloatingMemory       *types.CustomInt64              `json:"balloon,omitempty"`
	FloatingMemoryShares *int                            `json:"shares,omitempty"`
	Freeze               *types.CustomBool               `json:"freeze,omitempty"`
	HookScript           *string                         `json:"hookscript,omitempty"`
	Hotplug              *types.CustomCommaSeparatedList `json:"hotplug,omitempty"`
	Hugepages            *string                         `json:"hugepages,omitempty"`
	IDEDevice0           *CustomStorageDevice            `json:"ide0,omitempty"`
	IDEDevice1           *CustomStorageDevice            `json:"ide1,omitempty"`
	IDEDevice2           *CustomStorageDevice            `json:"ide2,omitempty"`
	IDEDevice3           *CustomStorageDevice            `json:"ide3,omitempty"`
	IPConfig0            *CustomCloudInitIPConfig        `json:"ipconfig0,omitempty"`
	IPConfig1            *CustomCloudInitIPConfig        `json:"ipconfig1,omitempty"`
	IPConfig2            *CustomCloudInitIPConfig        `json:"ipconfig2,omitempty"`
	IPConfig3            *CustomCloudInitIPConfig        `json:"ipconfig3,omitempty"`
	IPConfig4            *CustomCloudInitIPConfig        `json:"ipconfig4,omitempty"`
	IPConfig5            *CustomCloudInitIPConfig        `json:"ipconfig5,omitempty"`
	IPConfig6            *CustomCloudInitIPConfig        `json:"ipconfig6,omitempty"`
	IPConfig7            *CustomCloudInitIPConfig        `json:"ipconfig7,omitempty"`
	IPConfig8            *CustomCloudInitIPConfig        `json:"ipconfig8,omitempty"`
	IPConfig9            *CustomCloudInitIPConfig        `json:"ipconfig9,omitempty"`
	IPConfig10           *CustomCloudInitIPConfig        `json:"ipconfig10,omitempty"`
	IPConfig11           *CustomCloudInitIPConfig        `json:"ipconfig11,omitempty"`
	IPConfig12           *CustomCloudInitIPConfig        `json:"ipconfig12,omitempty"`
	IPConfig13           *CustomCloudInitIPConfig        `json:"ipconfig13,omitempty"`
	IPConfig14           *CustomCloudInitIPConfig        `json:"ipconfig14,omitempty"`
	IPConfig15           *CustomCloudInitIPConfig        `json:"ipconfig15,omitempty"`
	IPConfig16           *CustomCloudInitIPConfig        `json:"ipconfig16,omitempty"`
	IPConfig17           *CustomCloudInitIPConfig        `json:"ipconfig17,omitempty"`
	IPConfig18           *CustomCloudInitIPConfig        `json:"ipconfig18,omitempty"`
	IPConfig19           *CustomCloudInitIPConfig        `json:"ipconfig19,omitempty"`
	IPConfig20           *CustomCloudInitIPConfig        `json:"ipconfig20,omitempty"`
	IPConfig21           *CustomCloudInitIPConfig        `json:"ipconfig21,omitempty"`
	IPConfig22           *CustomCloudInitIPConfig        `json:"ipconfig22,omitempty"`
	IPConfig23           *CustomCloudInitIPConfig        `json:"ipconfig23,omitempty"`
	IPConfig24           *CustomCloudInitIPConfig        `json:"ipconfig24,omitempty"`
	IPConfig25           *CustomCloudInitIPConfig        `json:"ipconfig25,omitempty"`
	IPConfig26           *CustomCloudInitIPConfig        `json:"ipconfig26,omitempty"`
	IPConfig27           *CustomCloudInitIPConfig        `json:"ipconfig27,omitempty"`
	IPConfig28           *CustomCloudInitIPConfig        `json:"ipconfig28,omitempty"`
	IPConfig29           *CustomCloudInitIPConfig        `json:"ipconfig29,omitempty"`
	IPConfig30           *CustomCloudInitIPConfig        `json:"ipconfig30,omitempty"`
	IPConfig31           *CustomCloudInitIPConfig        `json:"ipconfig31,omitempty"`
	KeyboardLayout       *string                         `json:"keyboard,omitempty"`
	KVMArguments         *string                         `json:"args,omitempty"`
	KVMEnabled           *types.CustomBool               `json:"kvm,omitempty"`
	LocalTime            *types.CustomBool               `json:"localtime,omitempty"`
	Lock                 *string                         `json:"lock,omitempty"`
	Machine              *string                         `json:"machine,omitempty"`
	MigrateDowntime      *float64                        `json:"migrate_downtime,omitempty"`
	MigrateSpeed         *int                            `json:"migrate_speed,omitempty"`
	Name                 *string                         `json:"name,omitempty"`
	NetworkDevice0       *CustomNetworkDevice            `json:"net0,omitempty"`
	NetworkDevice1       *CustomNetworkDevice            `json:"net1,omitempty"`
	NetworkDevice2       *CustomNetworkDevice            `json:"net2,omitempty"`
	NetworkDevice3       *CustomNetworkDevice            `json:"net3,omitempty"`
	NetworkDevice4       *CustomNetworkDevice            `json:"net4,omitempty"`
	NetworkDevice5       *CustomNetworkDevice            `json:"net5,omitempty"`
	NetworkDevice6       *CustomNetworkDevice            `json:"net6,omitempty"`
	NetworkDevice7       *CustomNetworkDevice            `json:"net7,omitempty"`
	NetworkDevice8       *CustomNetworkDevice            `json:"net8,omitempty"`
	NetworkDevice9       *CustomNetworkDevice            `json:"net9,omitempty"`
	NetworkDevice10      *CustomNetworkDevice            `json:"net10,omitempty"`
	NetworkDevice11      *CustomNetworkDevice            `json:"net11,omitempty"`
	NetworkDevice12      *CustomNetworkDevice            `json:"net12,omitempty"`
	NetworkDevice13      *CustomNetworkDevice            `json:"net13,omitempty"`
	NetworkDevice14      *CustomNetworkDevice            `json:"net14,omitempty"`
	NetworkDevice15      *CustomNetworkDevice            `json:"net15,omitempty"`
	NetworkDevice16      *CustomNetworkDevice            `json:"net16,omitempty"`
	NetworkDevice17      *CustomNetworkDevice            `json:"net17,omitempty"`
	NetworkDevice18      *CustomNetworkDevice            `json:"net18,omitempty"`
	NetworkDevice19      *CustomNetworkDevice            `json:"net19,omitempty"`
	NetworkDevice20      *CustomNetworkDevice            `json:"net20,omitempty"`
	NetworkDevice21      *CustomNetworkDevice            `json:"net21,omitempty"`
	NetworkDevice22      *CustomNetworkDevice            `json:"net22,omitempty"`
	NetworkDevice23      *CustomNetworkDevice            `json:"net23,omitempty"`
	NetworkDevice24      *CustomNetworkDevice            `json:"net24,omitempty"`
	NetworkDevice25      *CustomNetworkDevice            `json:"net25,omitempty"`
	NetworkDevice26      *CustomNetworkDevice            `json:"net26,omitempty"`
	NetworkDevice27      *CustomNetworkDevice            `json:"net27,omitempty"`
	NetworkDevice28      *CustomNetworkDevice            `json:"net28,omitempty"`
	NetworkDevice29      *CustomNetworkDevice            `json:"net29,omitempty"`
	NetworkDevice30      *CustomNetworkDevice            `json:"net30,omitempty"`
	NetworkDevice31      *CustomNetworkDevice            `json:"net31,omitempty"`
	NUMADevices          *CustomNUMADevices              `json:"numa_devices,omitempty"`
	NUMAEnabled          *types.CustomBool               `json:"numa,omitempty"`
	OSType               *string                         `json:"ostype,omitempty"`
	Overwrite            *types.CustomBool               `json:"force,omitempty"`
	PCIDevice0           *CustomPCIDevice                `json:"hostpci0,omitempty"`
	PCIDevice1           *CustomPCIDevice                `json:"hostpci1,omitempty"`
	PCIDevice2           *CustomPCIDevice                `json:"hostpci2,omitempty"`
	PCIDevice3           *CustomPCIDevice                `json:"hostpci3,omitempty"`
	PoolID               *string                         `json:"pool,omitempty"               url:"pool,omitempty"`
	Revert               *string                         `json:"revert,omitempty"`
	SATADevice0          *CustomStorageDevice            `json:"sata0,omitempty"`
	SATADevice1          *CustomStorageDevice            `json:"sata1,omitempty"`
	SATADevice2          *CustomStorageDevice            `json:"sata2,omitempty"`
	SATADevice3          *CustomStorageDevice            `json:"sata3,omitempty"`
	SATADevice4          *CustomStorageDevice            `json:"sata4,omitempty"`
	SATADevice5          *CustomStorageDevice            `json:"sata5,omitempty"`
	SCSIDevice0          *CustomStorageDevice            `json:"scsi0,omitempty"`
	SCSIDevice1          *CustomStorageDevice            `json:"scsi1,omitempty"`
	SCSIDevice2          *CustomStorageDevice            `json:"scsi2,omitempty"`
	SCSIDevice3          *CustomStorageDevice            `json:"scsi3,omitempty"`
	SCSIDevice4          *CustomStorageDevice            `json:"scsi4,omitempty"`
	SCSIDevice5          *CustomStorageDevice            `json:"scsi5,omitempty"`
	SCSIDevice6          *CustomStorageDevice            `json:"scsi6,omitempty"`
	SCSIDevice7          *CustomStorageDevice            `json:"scsi7,omitempty"`
	SCSIDevice8          *CustomStorageDevice            `json:"scsi8,omitempty"`
	SCSIDevice9          *CustomStorageDevice            `json:"scsi9,omitempty"`
	SCSIDevice10         *CustomStorageDevice            `json:"scsi10,omitempty"`
	SCSIDevice11         *CustomStorageDevice            `json:"scsi11,omitempty"`
	SCSIDevice12         *CustomStorageDevice            `json:"scsi12,omitempty"`
	SCSIDevice13         *CustomStorageDevice            `json:"scsi13,omitempty"`
	SCSIHardware         *string                         `json:"scsihw,omitempty"`
	SerialDevice0        *string                         `json:"serial0,omitempty"`
	SerialDevice1        *string                         `json:"serial1,omitempty"`
	SerialDevice2        *string                         `json:"serial2,omitempty"`
	SerialDevice3        *string                         `json:"serial3,omitempty"`
	SharedMemory         *CustomSharedMemory             `json:"ivshmem,omitempty"`
	SkipLock             *types.CustomBool               `json:"skiplock,omitempty"`
	SMBIOS               *CustomSMBIOS                   `json:"smbios1,omitempty"`
	SpiceEnhancements    *CustomSpiceEnhancements        `json:"spice_enhancements,omitempty"`
	StartDate            *string                         `json:"startdate,omitempty"`
	StartOnBoot          *types.CustomBool               `json:"onboot,omitempty"`
	StartupOrder         *CustomStartupOrder             `json:"startup,omitempty"`
	TabletDeviceEnabled  *types.CustomBool               `json:"tablet,omitempty"`
	Tags                 *string                         `json:"tags,omitempty"`
	Template             *types.CustomBool               `json:"template,omitempty"`
	TimeDriftFixEnabled  *types.CustomBool               `json:"tdf,omitempty"`
	TPMState             *CustomTPMState                 `json:"tpmstate0,omitempty"`
	USBDevice0           *CustomUSBDevice                `json:"usb0,omitempty"`
	USBDevice1           *CustomUSBDevice                `json:"usb1,omitempty"`
	USBDevice2           *CustomUSBDevice                `json:"usb2,omitempty"`
	USBDevice3           *CustomUSBDevice                `json:"usb3,omitempty"`
	VGADevice            *CustomVGADevice                `json:"vga,omitempty"`
	VirtualCPUCount      *int                            `json:"vcpus,omitempty"`
	VirtualIODevice0     *CustomStorageDevice            `json:"virtio0,omitempty"`
	VirtualIODevice1     *CustomStorageDevice            `json:"virtio1,omitempty"`
	VirtualIODevice2     *CustomStorageDevice            `json:"virtio2,omitempty"`
	VirtualIODevice3     *CustomStorageDevice            `json:"virtio3,omitempty"`
	VirtualIODevice4     *CustomStorageDevice            `json:"virtio4,omitempty"`
	VirtualIODevice5     *CustomStorageDevice            `json:"virtio5,omitempty"`
	VirtualIODevice6     *CustomStorageDevice            `json:"virtio6,omitempty"`
	VirtualIODevice7     *CustomStorageDevice            `json:"virtio7,omitempty"`
	VirtualIODevice8     *CustomStorageDevice            `json:"virtio8,omitempty"`
	VirtualIODevice9     *CustomStorageDevice            `json:"virtio9,omitempty"`
	VirtualIODevice10    *CustomStorageDevice            `json:"virtio10,omitempty"`
	VirtualIODevice11    *CustomStorageDevice            `json:"virtio11,omitempty"`
	VirtualIODevice12    *CustomStorageDevice            `json:"virtio12,omitempty"`
	VirtualIODevice13    *CustomStorageDevice            `json:"virtio13,omitempty"`
	VirtualIODevice14    *CustomStorageDevice            `json:"virtio14,omitempty"`
	VirtualIODevice15    *CustomStorageDevice            `json:"virtio15,omitempty"`
	VMGenerationID       *string                         `json:"vmgenid,omitempty"`
	VMStateDatastoreID   *string                         `json:"vmstatestorage,omitempty"`
	WatchdogDevice       *CustomWatchdogDevice           `json:"watchdog,omitempty"`
}

GetResponseData contains the data from an virtual machine get response.

type GetStatusResponseBody

type GetStatusResponseBody struct {
	Data *GetStatusResponseData `json:"data,omitempty"`
}

GetStatusResponseBody contains the body from a VM get status response.

type GetStatusResponseData

type GetStatusResponseData struct {
	AgentEnabled     *types.CustomBool `json:"agent,omitempty"`
	CPUCount         *float64          `json:"cpus,omitempty"`
	Lock             *string           `json:"lock,omitempty"`
	MemoryAllocation *int64            `json:"maxmem,omitempty"`
	Name             *string           `json:"name,omitempty"`
	PID              *int              `json:"pid,omitempty"`
	QMPStatus        *string           `json:"qmpstatus,omitempty"`
	RootDiskSize     *int64            `json:"maxdisk,omitempty"`
	SpiceSupport     *types.CustomBool `json:"spice,omitempty"`
	Status           string            `json:"status,omitempty"`
	Tags             *string           `json:"tags,omitempty"`
	Uptime           *int              `json:"uptime,omitempty"`
	VMID             *int              `json:"vmid,omitempty"`
}

GetStatusResponseData contains the data from a VM get status response.

type ListResponseBody

type ListResponseBody struct {
	Data []*ListResponseData `json:"data,omitempty"`
}

ListResponseBody contains the body from a virtual machine list response.

type ListResponseData

type ListResponseData struct {
	Name *string `json:"name,omitempty"`
	Tags *string `json:"tags,omitempty"`
	VMID int     `json:"vmid,omitempty"`
}

ListResponseData contains the data from an virtual machine list response.

type MigrateRequestBody

type MigrateRequestBody struct {
	OnlineMigration *types.CustomBool `json:"online,omitempty"           url:"online,omitempty,int"`
	TargetNode      string            `json:"target"                     url:"target"`
	TargetStorage   *string           `json:"targetstorage,omitempty"    url:"targetstorage,omitempty"`
	WithLocalDisks  *types.CustomBool `json:"with-local-disks,omitempty" url:"with-local-disks,omitempty,int"`
}

MigrateRequestBody contains the body for a VM migration request.

type MigrateResponseBody

type MigrateResponseBody struct {
	Data *string `json:"data,omitempty"`
}

MigrateResponseBody contains the body from a VM migrate response.

type MoveDiskRequestBody

type MoveDiskRequestBody struct {
	BandwidthLimit      *int              `json:"bwlimit,omitempty" url:"bwlimit,omitempty"`
	DeleteOriginalDisk  *types.CustomBool `json:"delete,omitempty"  url:"delete,omitempty,int"`
	Digest              *string           `json:"digest,omitempty"  url:"digest,omitempty"`
	Disk                string            `json:"disk"              url:"disk"`
	TargetStorage       string            `json:"storage"           url:"storage"`
	TargetStorageFormat *string           `json:"format,omitempty"  url:"format,omitempty"`
}

MoveDiskRequestBody contains the body for a VM move disk request.

type MoveDiskResponseBody

type MoveDiskResponseBody struct {
	Data *string `json:"data,omitempty"`
}

MoveDiskResponseBody contains the body from a VM move disk response.

type RebootRequestBody

type RebootRequestBody struct {
	Timeout *int `json:"timeout,omitempty" url:"timeout,omitempty"`
}

RebootRequestBody contains the body for a VM reboot request.

type RebootResponseBody

type RebootResponseBody struct {
	Data *string `json:"data,omitempty"`
}

RebootResponseBody contains the body from a VM reboot response.

type ResizeDiskRequestBody

type ResizeDiskRequestBody struct {
	Digest   *string           `json:"digest,omitempty"   url:"digest,omitempty"`
	Disk     string            `json:"disk"               url:"disk"`
	Size     types.DiskSize    `json:"size"               url:"size"`
	SkipLock *types.CustomBool `json:"skiplock,omitempty" url:"skiplock,omitempty,int"`
}

ResizeDiskRequestBody contains the body for a VM resize disk request.

type ShutdownRequestBody

type ShutdownRequestBody struct {
	ForceStop  *types.CustomBool `json:"forceStop,omitempty"  url:"forceStop,omitempty,int"`
	KeepActive *types.CustomBool `json:"keepActive,omitempty" url:"keepActive,omitempty,int"`
	SkipLock   *types.CustomBool `json:"skipLock,omitempty"   url:"skipLock,omitempty,int"`
	Timeout    *int              `json:"timeout,omitempty"    url:"timeout,omitempty"`
}

ShutdownRequestBody contains the body for a VM shutdown request.

type ShutdownResponseBody

type ShutdownResponseBody struct {
	Data *string `json:"data,omitempty"`
}

ShutdownResponseBody contains the body from a VM shutdown response.

type StartResponseBody

type StartResponseBody struct {
	Data *string `json:"data,omitempty"`
}

StartResponseBody contains the body from a VM start response.

type StopResponseBody

type StopResponseBody struct {
	Data *string `json:"data,omitempty"`
}

StopResponseBody contains the body from a VM stop response.

type UpdateAsyncResponseBody

type UpdateAsyncResponseBody struct {
	Data *string `json:"data,omitempty"`
}

UpdateAsyncResponseBody contains the body from a VM async update response.

type UpdateRequestBody

type UpdateRequestBody CreateRequestBody

UpdateRequestBody contains the data for an virtual machine update request.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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