mirror of
https://github.com/bpg/terraform-provider-proxmox.git
synced 2025-07-01 11:02:59 +00:00
107 lines
6.1 KiB
Go
107 lines
6.1 KiB
Go
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
|
|
package proxmox
|
|
|
|
import (
|
|
"errors"
|
|
)
|
|
|
|
// VirtualEnvironmentVMCreateRequestBody contains the data for an virtual machine create request.
|
|
type VirtualEnvironmentVMCreateRequestBody struct {
|
|
ACPI *CustomBool `json:"acpi,omitempty" url:"acpi,omitempty,int"`
|
|
Agent *CustomAgent `json:"agent,omitempty" url:"agent,omitempty"`
|
|
AudioDevice *CustomAudioDevice `json:"audio0,omitempty" url:"audio0,omitempty"`
|
|
Autostart *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"`
|
|
BootDiskID *string `json:"bootdisk,omitempty" url:"bootdisk,omitempty"`
|
|
BootOrder *string `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"`
|
|
CPULimit *int `json:"cpulimit,omitempty" url:"cpulimit,omitempty"`
|
|
CPUUnits *int `json:"cpuunits,omitempty" url:"cpuunits,omitempty"`
|
|
DedicatedMemory *int `json:"memory,omitempty" url:"memory,omitempty"`
|
|
Description *string `json:"description,omitempty" url:"description,omitempty"`
|
|
EFIDisk *CustomEFIDisk `json:"efidisk0,omitempty" url:"efidisk0,omitempty"`
|
|
FloatingMemory *int `json:"balloon,omitempty" url:"balloon,omitempty"`
|
|
Freeze *CustomBool `json:"freeze,omitempty" url:"freeze,omitempty,int"`
|
|
HookScript *string `json:"hookscript,omitempty" url:"hookscript,omitempty"`
|
|
Hotplug []string `json:"hotplug,omitempty" url:"hotplug,omitempty,comma"`
|
|
Hugepages *string `json:"hugepages,omitempty" url:"hugepages,omitempty"`
|
|
IDEDevices CustomIDEDevices `json:"ide,omitempty" url:"ide,omitempty"`
|
|
KeyboardLayout *string `json:"keyboard,omitempty" url:"keyboard,omitempty"`
|
|
KVMArguments []string `json:"args,omitempty" url:"args,omitempty,space"`
|
|
KVMEnabled *CustomBool `json:"kvm,omitempty" url:"kvm,omitempty,int"`
|
|
LocalTime *CustomBool `json:"localtime,omitempty" url:"localtime,omitempty,int"`
|
|
Lock *string `json:"lock,omitempty" url:"lock,omitempty"`
|
|
MachineType *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"`
|
|
NodeName string `json:"node" url:"node"`
|
|
NUMADevices CustomNUMADevices `json:"numa_devices,omitempty" url:"numa,omitempty"`
|
|
NUMAEnabled *CustomBool `json:"numa,omitempty" url:"numa,omitempty,int"`
|
|
OSType *string `json:"ostype,omitempty" url:"ostype,omitempty"`
|
|
Overwrite *CustomBool `json:"force,omitempty" url:"force,omitempty,int"`
|
|
PCIDevices CustomPCIDevices `json:"hostpci,omitempty" url:"hostpci,omitempty"`
|
|
SharedMemory *CustomSharedMemory `json:"ivshmem,omitempty" url:"ivshmem,omitempty"`
|
|
StartOnBoot *CustomBool `json:"onboot,omitempty" url:"onboot,omitempty,int"`
|
|
VMID int `json:"vmid" url:"vmid"`
|
|
}
|
|
|
|
// VirtualEnvironmentVMGetResponseBody contains the body from an virtual machine get response.
|
|
type VirtualEnvironmentVMGetResponseBody struct {
|
|
Data *VirtualEnvironmentVMGetResponseData `json:"data,omitempty"`
|
|
}
|
|
|
|
// VirtualEnvironmentVMGetResponseData contains the data from an virtual machine get response.
|
|
type VirtualEnvironmentVMGetResponseData struct {
|
|
ACPI *CustomBool `json:"acpi,omitempty" url:"acpi,omitempty,int"`
|
|
}
|
|
|
|
// VirtualEnvironmentVMListResponseBody contains the body from an virtual machine list response.
|
|
type VirtualEnvironmentVMListResponseBody struct {
|
|
Data []*VirtualEnvironmentVMListResponseData `json:"data,omitempty"`
|
|
}
|
|
|
|
// VirtualEnvironmentVMListResponseData contains the data from an virtual machine list response.
|
|
type VirtualEnvironmentVMListResponseData struct {
|
|
ACPI *CustomBool `json:"acpi,omitempty" url:"acpi,omitempty,int"`
|
|
}
|
|
|
|
// VirtualEnvironmentVMUpdateRequestBody contains the data for an virtual machine update request.
|
|
type VirtualEnvironmentVMUpdateRequestBody struct {
|
|
ACPI *CustomBool `json:"acpi,omitempty" url:"acpi,omitempty,int"`
|
|
}
|
|
|
|
// CreateVM creates an virtual machine.
|
|
func (c *VirtualEnvironmentClient) CreateVM(d *VirtualEnvironmentVMCreateRequestBody) error {
|
|
return c.DoRequest(hmPOST, "nodes/%s/qemu", d, nil)
|
|
}
|
|
|
|
// DeleteVM deletes an virtual machine.
|
|
func (c *VirtualEnvironmentClient) DeleteVM(id string) error {
|
|
return errors.New("Not implemented")
|
|
}
|
|
|
|
// GetVM retrieves an virtual machine.
|
|
func (c *VirtualEnvironmentClient) GetVM(nodeName string, vmID int) (*VirtualEnvironmentVMGetResponseData, error) {
|
|
return nil, errors.New("Not implemented")
|
|
}
|
|
|
|
// ListVMs retrieves a list of virtual machines.
|
|
func (c *VirtualEnvironmentClient) ListVMs() ([]*VirtualEnvironmentVMListResponseData, error) {
|
|
return nil, errors.New("Not implemented")
|
|
}
|
|
|
|
// UpdateVM updates an virtual machine.
|
|
func (c *VirtualEnvironmentClient) UpdateVM(id string, d *VirtualEnvironmentVMUpdateRequestBody) error {
|
|
return errors.New("Not implemented")
|
|
}
|