@@ -156,3 +156,89 @@ type VirtualMachineCreateOptions struct {
156156 // vm id
157157 VMID int `json:"vmid,omitempty"`
158158}
159+
160+ type VirtualMachineConfig struct {
161+ // PVE Metadata
162+ Digest string `json:"digest"`
163+ Name string `json:"name,omitempty"`
164+ Description string `json:"description,omitempty"`
165+ Meta string `json:"meta,omitempty"`
166+ VMGenID string `json:"vmgenid,omitempty"`
167+ Hookscript string `json:"hookscript,omitempty"`
168+ Hotplug string `json:"hotplug,omitempty"`
169+ Template int `json:"template,omitempty"`
170+
171+ Tags string `json:"tags,omitempty"`
172+
173+ Protection int `json:"protection,omitempty"`
174+ Lock string `json:"lock,omitempty"`
175+
176+ // Boot configuration
177+ Boot string `json:"boot,omitempty"`
178+ OnBoot int `json:"onboot,omitempty"`
179+
180+ // Qemu general specs
181+ OSType string `json:"ostype,omitempty"`
182+ Machine string `json:"machine,omitempty"`
183+ Args string `json:"args,omitempty"`
184+
185+ // Qemu firmware specs
186+ Bios string `json:"bios,omitempty"`
187+ EFIDisk0 string `json:"efidisk0,omitempty"`
188+ SMBios1 string `json:"smbios1,omitempty"`
189+ Acpi int `json:"acpi,omitempty"`
190+
191+ // Qemu CPU specs
192+ Sockets int `json:"sockets,omitempty"`
193+ Cores int `json:"cores,omitempty"`
194+ CPU string `json:"cpu,omitempty"`
195+ CPULimit int `json:"cpulimit,omitempty"`
196+ CPUUnits int `json:"cpuunits,omitempty"`
197+ Vcpus int `json:"vcpus,omitempty"`
198+ Affinity string `json:"affinity,omitempty"`
199+
200+ // Qemu memory specs
201+ Numa int `json:"numa,omitempty"`
202+ Memory int `json:"memory,omitempty"`
203+ Hugepages string `json:"hugepages,omitempty"`
204+ Balloon int `json:"balloon,omitempty"`
205+
206+ // Other Qemu devices
207+ VGA string `json:"vga,omitempty"`
208+ SCSIHW string `json:"scsihw,omitempty"`
209+ TPMState0 string `json:"tpmstate0,omitempty"`
210+ Rng0 string `json:"rng0,omitempty"`
211+ Audio0 string `json:"audio0,omitempty"`
212+
213+ // Disk devices
214+ Ide
215+
216+ Scsi
217+
218+ // Sata
219+ // Virtio
220+ // Unused
221+
222+ // Network devices
223+ Net
224+
225+ // NUMA
226+ // Host PCI devices HostPci
227+
228+ // Serial devices
229+ Serial
230+
231+ // USB devices
232+ // Parallel devices
233+ // Cloud-init
234+ CIType string `json:"citype,omitempty"`
235+ CIUser string `json:"ciuser,omitempty"`
236+ CIPassword string `json:"cipassword,omitempty"`
237+ Nameserver string `json:"nameserver,omitempty"`
238+ Searchdomain string `json:"searchdomain,omitempty"`
239+ SSHKeys string `json:"sshkeys,omitempty"`
240+ CICustom string `json:"cicustom,omitempty"`
241+
242+ // Cloud-init interfaces
243+ // IPConfig
244+ }
0 commit comments