Skip to main content

proxmox_api/generated/nodes/node/qemu/vmid/
move_disk.rs

1#[derive(Debug, Clone)]
2pub struct MoveDiskClient<T> {
3    client: T,
4    path: String,
5}
6impl<T> MoveDiskClient<T>
7where
8    T: crate::client::Client,
9{
10    pub fn new(client: T, parent_path: &str) -> Self {
11        Self {
12            client,
13            path: format!("{}{}", parent_path, "/move_disk"),
14        }
15    }
16}
17impl<T> MoveDiskClient<T>
18where
19    T: crate::client::Client,
20{
21    #[doc = "Move volume to different storage or to a different VM."]
22    #[doc = ""]
23    #[doc = "Permission check: perm(\"/vms/{vmid}\", [\"VM.Config.Disk\"])"]
24    #[doc = "You need 'VM.Config.Disk' permissions on /vms/{vmid}, and 'Datastore.AllocateSpace' permissions on the storage. To move a disk to another VM, you need the permissions on the target VM as well."]
25    pub async fn post(&self, params: PostParams) -> Result<String, T::Error> {
26        let path = self.path.to_string();
27        self.client.post(&path, &params).await
28    }
29}
30impl PostParams {
31    pub fn new(disk: Disk) -> Self {
32        Self {
33            disk,
34            bwlimit: ::std::default::Default::default(),
35            delete: ::std::default::Default::default(),
36            digest: ::std::default::Default::default(),
37            format: ::std::default::Default::default(),
38            storage: ::std::default::Default::default(),
39            target_digest: ::std::default::Default::default(),
40            target_disk: ::std::default::Default::default(),
41            target_vmid: ::std::default::Default::default(),
42            additional_properties: ::std::default::Default::default(),
43        }
44    }
45}
46#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize)]
47pub struct PostParams {
48    #[serde(
49        serialize_with = "crate::types::serialize_unsigned_int_optional",
50        deserialize_with = "crate::types::deserialize_unsigned_int_optional"
51    )]
52    #[serde(skip_serializing_if = "Option::is_none", default)]
53    #[doc = "Override I/O bandwidth limit (in KiB/s)."]
54    #[doc = ""]
55    pub bwlimit: Option<u64>,
56    #[serde(
57        serialize_with = "crate::types::serialize_bool_optional",
58        deserialize_with = "crate::types::deserialize_bool_optional"
59    )]
60    #[serde(skip_serializing_if = "Option::is_none", default)]
61    #[doc = "Delete the original disk after successful copy. By default the original disk is kept as unused disk."]
62    #[doc = ""]
63    pub delete: Option<bool>,
64    #[serde(skip_serializing_if = "Option::is_none", default)]
65    #[doc = "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications."]
66    #[doc = ""]
67    pub digest: Option<DigestStr>,
68    #[doc = "The disk you want to move."]
69    #[doc = ""]
70    pub disk: Disk,
71    #[serde(skip_serializing_if = "Option::is_none", default)]
72    #[doc = "Target Format."]
73    #[doc = ""]
74    pub format: Option<Format>,
75    #[serde(skip_serializing_if = "Option::is_none", default)]
76    #[doc = "Target storage."]
77    #[doc = ""]
78    pub storage: Option<String>,
79    #[serde(rename = "target-digest")]
80    #[serde(skip_serializing_if = "Option::is_none", default)]
81    #[doc = "Prevent changes if the current config file of the target VM has a different SHA1 digest. This can be used to detect concurrent modifications."]
82    #[doc = ""]
83    pub target_digest: Option<TargetDigestStr>,
84    #[serde(rename = "target-disk")]
85    #[serde(skip_serializing_if = "Option::is_none", default)]
86    #[doc = "The config key the disk will be moved to on the target VM (for example, ide0 or scsi1). Default is the source disk key."]
87    #[doc = ""]
88    pub target_disk: Option<TargetDisk>,
89    #[serde(rename = "target-vmid")]
90    #[serde(skip_serializing_if = "Option::is_none", default)]
91    #[doc = "The (unique) ID of the VM."]
92    #[doc = ""]
93    pub target_vmid: Option<TargetVmidInt>,
94    #[serde(
95        flatten,
96        default,
97        skip_serializing_if = "::std::collections::HashMap::is_empty"
98    )]
99    pub additional_properties: ::std::collections::HashMap<String, ::serde_json::Value>,
100}
101#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize, PartialEq)]
102#[doc = "The disk you want to move."]
103#[doc = ""]
104pub enum Disk {
105    #[serde(rename = "efidisk0")]
106    Efidisk0,
107    #[serde(rename = "ide0")]
108    Ide0,
109    #[serde(rename = "ide1")]
110    Ide1,
111    #[serde(rename = "ide2")]
112    Ide2,
113    #[serde(rename = "ide3")]
114    Ide3,
115    #[serde(rename = "sata0")]
116    Sata0,
117    #[serde(rename = "sata1")]
118    Sata1,
119    #[serde(rename = "sata2")]
120    Sata2,
121    #[serde(rename = "sata3")]
122    Sata3,
123    #[serde(rename = "sata4")]
124    Sata4,
125    #[serde(rename = "sata5")]
126    Sata5,
127    #[serde(rename = "scsi0")]
128    Scsi0,
129    #[serde(rename = "scsi1")]
130    Scsi1,
131    #[serde(rename = "scsi10")]
132    Scsi10,
133    #[serde(rename = "scsi11")]
134    Scsi11,
135    #[serde(rename = "scsi12")]
136    Scsi12,
137    #[serde(rename = "scsi13")]
138    Scsi13,
139    #[serde(rename = "scsi14")]
140    Scsi14,
141    #[serde(rename = "scsi15")]
142    Scsi15,
143    #[serde(rename = "scsi16")]
144    Scsi16,
145    #[serde(rename = "scsi17")]
146    Scsi17,
147    #[serde(rename = "scsi18")]
148    Scsi18,
149    #[serde(rename = "scsi19")]
150    Scsi19,
151    #[serde(rename = "scsi2")]
152    Scsi2,
153    #[serde(rename = "scsi20")]
154    Scsi20,
155    #[serde(rename = "scsi21")]
156    Scsi21,
157    #[serde(rename = "scsi22")]
158    Scsi22,
159    #[serde(rename = "scsi23")]
160    Scsi23,
161    #[serde(rename = "scsi24")]
162    Scsi24,
163    #[serde(rename = "scsi25")]
164    Scsi25,
165    #[serde(rename = "scsi26")]
166    Scsi26,
167    #[serde(rename = "scsi27")]
168    Scsi27,
169    #[serde(rename = "scsi28")]
170    Scsi28,
171    #[serde(rename = "scsi29")]
172    Scsi29,
173    #[serde(rename = "scsi3")]
174    Scsi3,
175    #[serde(rename = "scsi30")]
176    Scsi30,
177    #[serde(rename = "scsi4")]
178    Scsi4,
179    #[serde(rename = "scsi5")]
180    Scsi5,
181    #[serde(rename = "scsi6")]
182    Scsi6,
183    #[serde(rename = "scsi7")]
184    Scsi7,
185    #[serde(rename = "scsi8")]
186    Scsi8,
187    #[serde(rename = "scsi9")]
188    Scsi9,
189    #[serde(rename = "tpmstate0")]
190    Tpmstate0,
191    #[serde(rename = "unused0")]
192    Unused0,
193    #[serde(rename = "unused1")]
194    Unused1,
195    #[serde(rename = "unused10")]
196    Unused10,
197    #[serde(rename = "unused100")]
198    Unused100,
199    #[serde(rename = "unused101")]
200    Unused101,
201    #[serde(rename = "unused102")]
202    Unused102,
203    #[serde(rename = "unused103")]
204    Unused103,
205    #[serde(rename = "unused104")]
206    Unused104,
207    #[serde(rename = "unused105")]
208    Unused105,
209    #[serde(rename = "unused106")]
210    Unused106,
211    #[serde(rename = "unused107")]
212    Unused107,
213    #[serde(rename = "unused108")]
214    Unused108,
215    #[serde(rename = "unused109")]
216    Unused109,
217    #[serde(rename = "unused11")]
218    Unused11,
219    #[serde(rename = "unused110")]
220    Unused110,
221    #[serde(rename = "unused111")]
222    Unused111,
223    #[serde(rename = "unused112")]
224    Unused112,
225    #[serde(rename = "unused113")]
226    Unused113,
227    #[serde(rename = "unused114")]
228    Unused114,
229    #[serde(rename = "unused115")]
230    Unused115,
231    #[serde(rename = "unused116")]
232    Unused116,
233    #[serde(rename = "unused117")]
234    Unused117,
235    #[serde(rename = "unused118")]
236    Unused118,
237    #[serde(rename = "unused119")]
238    Unused119,
239    #[serde(rename = "unused12")]
240    Unused12,
241    #[serde(rename = "unused120")]
242    Unused120,
243    #[serde(rename = "unused121")]
244    Unused121,
245    #[serde(rename = "unused122")]
246    Unused122,
247    #[serde(rename = "unused123")]
248    Unused123,
249    #[serde(rename = "unused124")]
250    Unused124,
251    #[serde(rename = "unused125")]
252    Unused125,
253    #[serde(rename = "unused126")]
254    Unused126,
255    #[serde(rename = "unused127")]
256    Unused127,
257    #[serde(rename = "unused128")]
258    Unused128,
259    #[serde(rename = "unused129")]
260    Unused129,
261    #[serde(rename = "unused13")]
262    Unused13,
263    #[serde(rename = "unused130")]
264    Unused130,
265    #[serde(rename = "unused131")]
266    Unused131,
267    #[serde(rename = "unused132")]
268    Unused132,
269    #[serde(rename = "unused133")]
270    Unused133,
271    #[serde(rename = "unused134")]
272    Unused134,
273    #[serde(rename = "unused135")]
274    Unused135,
275    #[serde(rename = "unused136")]
276    Unused136,
277    #[serde(rename = "unused137")]
278    Unused137,
279    #[serde(rename = "unused138")]
280    Unused138,
281    #[serde(rename = "unused139")]
282    Unused139,
283    #[serde(rename = "unused14")]
284    Unused14,
285    #[serde(rename = "unused140")]
286    Unused140,
287    #[serde(rename = "unused141")]
288    Unused141,
289    #[serde(rename = "unused142")]
290    Unused142,
291    #[serde(rename = "unused143")]
292    Unused143,
293    #[serde(rename = "unused144")]
294    Unused144,
295    #[serde(rename = "unused145")]
296    Unused145,
297    #[serde(rename = "unused146")]
298    Unused146,
299    #[serde(rename = "unused147")]
300    Unused147,
301    #[serde(rename = "unused148")]
302    Unused148,
303    #[serde(rename = "unused149")]
304    Unused149,
305    #[serde(rename = "unused15")]
306    Unused15,
307    #[serde(rename = "unused150")]
308    Unused150,
309    #[serde(rename = "unused151")]
310    Unused151,
311    #[serde(rename = "unused152")]
312    Unused152,
313    #[serde(rename = "unused153")]
314    Unused153,
315    #[serde(rename = "unused154")]
316    Unused154,
317    #[serde(rename = "unused155")]
318    Unused155,
319    #[serde(rename = "unused156")]
320    Unused156,
321    #[serde(rename = "unused157")]
322    Unused157,
323    #[serde(rename = "unused158")]
324    Unused158,
325    #[serde(rename = "unused159")]
326    Unused159,
327    #[serde(rename = "unused16")]
328    Unused16,
329    #[serde(rename = "unused160")]
330    Unused160,
331    #[serde(rename = "unused161")]
332    Unused161,
333    #[serde(rename = "unused162")]
334    Unused162,
335    #[serde(rename = "unused163")]
336    Unused163,
337    #[serde(rename = "unused164")]
338    Unused164,
339    #[serde(rename = "unused165")]
340    Unused165,
341    #[serde(rename = "unused166")]
342    Unused166,
343    #[serde(rename = "unused167")]
344    Unused167,
345    #[serde(rename = "unused168")]
346    Unused168,
347    #[serde(rename = "unused169")]
348    Unused169,
349    #[serde(rename = "unused17")]
350    Unused17,
351    #[serde(rename = "unused170")]
352    Unused170,
353    #[serde(rename = "unused171")]
354    Unused171,
355    #[serde(rename = "unused172")]
356    Unused172,
357    #[serde(rename = "unused173")]
358    Unused173,
359    #[serde(rename = "unused174")]
360    Unused174,
361    #[serde(rename = "unused175")]
362    Unused175,
363    #[serde(rename = "unused176")]
364    Unused176,
365    #[serde(rename = "unused177")]
366    Unused177,
367    #[serde(rename = "unused178")]
368    Unused178,
369    #[serde(rename = "unused179")]
370    Unused179,
371    #[serde(rename = "unused18")]
372    Unused18,
373    #[serde(rename = "unused180")]
374    Unused180,
375    #[serde(rename = "unused181")]
376    Unused181,
377    #[serde(rename = "unused182")]
378    Unused182,
379    #[serde(rename = "unused183")]
380    Unused183,
381    #[serde(rename = "unused184")]
382    Unused184,
383    #[serde(rename = "unused185")]
384    Unused185,
385    #[serde(rename = "unused186")]
386    Unused186,
387    #[serde(rename = "unused187")]
388    Unused187,
389    #[serde(rename = "unused188")]
390    Unused188,
391    #[serde(rename = "unused189")]
392    Unused189,
393    #[serde(rename = "unused19")]
394    Unused19,
395    #[serde(rename = "unused190")]
396    Unused190,
397    #[serde(rename = "unused191")]
398    Unused191,
399    #[serde(rename = "unused192")]
400    Unused192,
401    #[serde(rename = "unused193")]
402    Unused193,
403    #[serde(rename = "unused194")]
404    Unused194,
405    #[serde(rename = "unused195")]
406    Unused195,
407    #[serde(rename = "unused196")]
408    Unused196,
409    #[serde(rename = "unused197")]
410    Unused197,
411    #[serde(rename = "unused198")]
412    Unused198,
413    #[serde(rename = "unused199")]
414    Unused199,
415    #[serde(rename = "unused2")]
416    Unused2,
417    #[serde(rename = "unused20")]
418    Unused20,
419    #[serde(rename = "unused200")]
420    Unused200,
421    #[serde(rename = "unused201")]
422    Unused201,
423    #[serde(rename = "unused202")]
424    Unused202,
425    #[serde(rename = "unused203")]
426    Unused203,
427    #[serde(rename = "unused204")]
428    Unused204,
429    #[serde(rename = "unused205")]
430    Unused205,
431    #[serde(rename = "unused206")]
432    Unused206,
433    #[serde(rename = "unused207")]
434    Unused207,
435    #[serde(rename = "unused208")]
436    Unused208,
437    #[serde(rename = "unused209")]
438    Unused209,
439    #[serde(rename = "unused21")]
440    Unused21,
441    #[serde(rename = "unused210")]
442    Unused210,
443    #[serde(rename = "unused211")]
444    Unused211,
445    #[serde(rename = "unused212")]
446    Unused212,
447    #[serde(rename = "unused213")]
448    Unused213,
449    #[serde(rename = "unused214")]
450    Unused214,
451    #[serde(rename = "unused215")]
452    Unused215,
453    #[serde(rename = "unused216")]
454    Unused216,
455    #[serde(rename = "unused217")]
456    Unused217,
457    #[serde(rename = "unused218")]
458    Unused218,
459    #[serde(rename = "unused219")]
460    Unused219,
461    #[serde(rename = "unused22")]
462    Unused22,
463    #[serde(rename = "unused220")]
464    Unused220,
465    #[serde(rename = "unused221")]
466    Unused221,
467    #[serde(rename = "unused222")]
468    Unused222,
469    #[serde(rename = "unused223")]
470    Unused223,
471    #[serde(rename = "unused224")]
472    Unused224,
473    #[serde(rename = "unused225")]
474    Unused225,
475    #[serde(rename = "unused226")]
476    Unused226,
477    #[serde(rename = "unused227")]
478    Unused227,
479    #[serde(rename = "unused228")]
480    Unused228,
481    #[serde(rename = "unused229")]
482    Unused229,
483    #[serde(rename = "unused23")]
484    Unused23,
485    #[serde(rename = "unused230")]
486    Unused230,
487    #[serde(rename = "unused231")]
488    Unused231,
489    #[serde(rename = "unused232")]
490    Unused232,
491    #[serde(rename = "unused233")]
492    Unused233,
493    #[serde(rename = "unused234")]
494    Unused234,
495    #[serde(rename = "unused235")]
496    Unused235,
497    #[serde(rename = "unused236")]
498    Unused236,
499    #[serde(rename = "unused237")]
500    Unused237,
501    #[serde(rename = "unused238")]
502    Unused238,
503    #[serde(rename = "unused239")]
504    Unused239,
505    #[serde(rename = "unused24")]
506    Unused24,
507    #[serde(rename = "unused240")]
508    Unused240,
509    #[serde(rename = "unused241")]
510    Unused241,
511    #[serde(rename = "unused242")]
512    Unused242,
513    #[serde(rename = "unused243")]
514    Unused243,
515    #[serde(rename = "unused244")]
516    Unused244,
517    #[serde(rename = "unused245")]
518    Unused245,
519    #[serde(rename = "unused246")]
520    Unused246,
521    #[serde(rename = "unused247")]
522    Unused247,
523    #[serde(rename = "unused248")]
524    Unused248,
525    #[serde(rename = "unused249")]
526    Unused249,
527    #[serde(rename = "unused25")]
528    Unused25,
529    #[serde(rename = "unused250")]
530    Unused250,
531    #[serde(rename = "unused251")]
532    Unused251,
533    #[serde(rename = "unused252")]
534    Unused252,
535    #[serde(rename = "unused253")]
536    Unused253,
537    #[serde(rename = "unused254")]
538    Unused254,
539    #[serde(rename = "unused255")]
540    Unused255,
541    #[serde(rename = "unused26")]
542    Unused26,
543    #[serde(rename = "unused27")]
544    Unused27,
545    #[serde(rename = "unused28")]
546    Unused28,
547    #[serde(rename = "unused29")]
548    Unused29,
549    #[serde(rename = "unused3")]
550    Unused3,
551    #[serde(rename = "unused30")]
552    Unused30,
553    #[serde(rename = "unused31")]
554    Unused31,
555    #[serde(rename = "unused32")]
556    Unused32,
557    #[serde(rename = "unused33")]
558    Unused33,
559    #[serde(rename = "unused34")]
560    Unused34,
561    #[serde(rename = "unused35")]
562    Unused35,
563    #[serde(rename = "unused36")]
564    Unused36,
565    #[serde(rename = "unused37")]
566    Unused37,
567    #[serde(rename = "unused38")]
568    Unused38,
569    #[serde(rename = "unused39")]
570    Unused39,
571    #[serde(rename = "unused4")]
572    Unused4,
573    #[serde(rename = "unused40")]
574    Unused40,
575    #[serde(rename = "unused41")]
576    Unused41,
577    #[serde(rename = "unused42")]
578    Unused42,
579    #[serde(rename = "unused43")]
580    Unused43,
581    #[serde(rename = "unused44")]
582    Unused44,
583    #[serde(rename = "unused45")]
584    Unused45,
585    #[serde(rename = "unused46")]
586    Unused46,
587    #[serde(rename = "unused47")]
588    Unused47,
589    #[serde(rename = "unused48")]
590    Unused48,
591    #[serde(rename = "unused49")]
592    Unused49,
593    #[serde(rename = "unused5")]
594    Unused5,
595    #[serde(rename = "unused50")]
596    Unused50,
597    #[serde(rename = "unused51")]
598    Unused51,
599    #[serde(rename = "unused52")]
600    Unused52,
601    #[serde(rename = "unused53")]
602    Unused53,
603    #[serde(rename = "unused54")]
604    Unused54,
605    #[serde(rename = "unused55")]
606    Unused55,
607    #[serde(rename = "unused56")]
608    Unused56,
609    #[serde(rename = "unused57")]
610    Unused57,
611    #[serde(rename = "unused58")]
612    Unused58,
613    #[serde(rename = "unused59")]
614    Unused59,
615    #[serde(rename = "unused6")]
616    Unused6,
617    #[serde(rename = "unused60")]
618    Unused60,
619    #[serde(rename = "unused61")]
620    Unused61,
621    #[serde(rename = "unused62")]
622    Unused62,
623    #[serde(rename = "unused63")]
624    Unused63,
625    #[serde(rename = "unused64")]
626    Unused64,
627    #[serde(rename = "unused65")]
628    Unused65,
629    #[serde(rename = "unused66")]
630    Unused66,
631    #[serde(rename = "unused67")]
632    Unused67,
633    #[serde(rename = "unused68")]
634    Unused68,
635    #[serde(rename = "unused69")]
636    Unused69,
637    #[serde(rename = "unused7")]
638    Unused7,
639    #[serde(rename = "unused70")]
640    Unused70,
641    #[serde(rename = "unused71")]
642    Unused71,
643    #[serde(rename = "unused72")]
644    Unused72,
645    #[serde(rename = "unused73")]
646    Unused73,
647    #[serde(rename = "unused74")]
648    Unused74,
649    #[serde(rename = "unused75")]
650    Unused75,
651    #[serde(rename = "unused76")]
652    Unused76,
653    #[serde(rename = "unused77")]
654    Unused77,
655    #[serde(rename = "unused78")]
656    Unused78,
657    #[serde(rename = "unused79")]
658    Unused79,
659    #[serde(rename = "unused8")]
660    Unused8,
661    #[serde(rename = "unused80")]
662    Unused80,
663    #[serde(rename = "unused81")]
664    Unused81,
665    #[serde(rename = "unused82")]
666    Unused82,
667    #[serde(rename = "unused83")]
668    Unused83,
669    #[serde(rename = "unused84")]
670    Unused84,
671    #[serde(rename = "unused85")]
672    Unused85,
673    #[serde(rename = "unused86")]
674    Unused86,
675    #[serde(rename = "unused87")]
676    Unused87,
677    #[serde(rename = "unused88")]
678    Unused88,
679    #[serde(rename = "unused89")]
680    Unused89,
681    #[serde(rename = "unused9")]
682    Unused9,
683    #[serde(rename = "unused90")]
684    Unused90,
685    #[serde(rename = "unused91")]
686    Unused91,
687    #[serde(rename = "unused92")]
688    Unused92,
689    #[serde(rename = "unused93")]
690    Unused93,
691    #[serde(rename = "unused94")]
692    Unused94,
693    #[serde(rename = "unused95")]
694    Unused95,
695    #[serde(rename = "unused96")]
696    Unused96,
697    #[serde(rename = "unused97")]
698    Unused97,
699    #[serde(rename = "unused98")]
700    Unused98,
701    #[serde(rename = "unused99")]
702    Unused99,
703    #[serde(rename = "virtio0")]
704    Virtio0,
705    #[serde(rename = "virtio1")]
706    Virtio1,
707    #[serde(rename = "virtio10")]
708    Virtio10,
709    #[serde(rename = "virtio11")]
710    Virtio11,
711    #[serde(rename = "virtio12")]
712    Virtio12,
713    #[serde(rename = "virtio13")]
714    Virtio13,
715    #[serde(rename = "virtio14")]
716    Virtio14,
717    #[serde(rename = "virtio15")]
718    Virtio15,
719    #[serde(rename = "virtio2")]
720    Virtio2,
721    #[serde(rename = "virtio3")]
722    Virtio3,
723    #[serde(rename = "virtio4")]
724    Virtio4,
725    #[serde(rename = "virtio5")]
726    Virtio5,
727    #[serde(rename = "virtio6")]
728    Virtio6,
729    #[serde(rename = "virtio7")]
730    Virtio7,
731    #[serde(rename = "virtio8")]
732    Virtio8,
733    #[serde(rename = "virtio9")]
734    Virtio9,
735}
736impl TryFrom<&str> for Disk {
737    type Error = String;
738    fn try_from(value: &str) -> Result<Self, <Self as TryFrom<&str>>::Error> {
739        match value {
740            "efidisk0" => Ok(Self::Efidisk0),
741            "ide0" => Ok(Self::Ide0),
742            "ide1" => Ok(Self::Ide1),
743            "ide2" => Ok(Self::Ide2),
744            "ide3" => Ok(Self::Ide3),
745            "sata0" => Ok(Self::Sata0),
746            "sata1" => Ok(Self::Sata1),
747            "sata2" => Ok(Self::Sata2),
748            "sata3" => Ok(Self::Sata3),
749            "sata4" => Ok(Self::Sata4),
750            "sata5" => Ok(Self::Sata5),
751            "scsi0" => Ok(Self::Scsi0),
752            "scsi1" => Ok(Self::Scsi1),
753            "scsi10" => Ok(Self::Scsi10),
754            "scsi11" => Ok(Self::Scsi11),
755            "scsi12" => Ok(Self::Scsi12),
756            "scsi13" => Ok(Self::Scsi13),
757            "scsi14" => Ok(Self::Scsi14),
758            "scsi15" => Ok(Self::Scsi15),
759            "scsi16" => Ok(Self::Scsi16),
760            "scsi17" => Ok(Self::Scsi17),
761            "scsi18" => Ok(Self::Scsi18),
762            "scsi19" => Ok(Self::Scsi19),
763            "scsi2" => Ok(Self::Scsi2),
764            "scsi20" => Ok(Self::Scsi20),
765            "scsi21" => Ok(Self::Scsi21),
766            "scsi22" => Ok(Self::Scsi22),
767            "scsi23" => Ok(Self::Scsi23),
768            "scsi24" => Ok(Self::Scsi24),
769            "scsi25" => Ok(Self::Scsi25),
770            "scsi26" => Ok(Self::Scsi26),
771            "scsi27" => Ok(Self::Scsi27),
772            "scsi28" => Ok(Self::Scsi28),
773            "scsi29" => Ok(Self::Scsi29),
774            "scsi3" => Ok(Self::Scsi3),
775            "scsi30" => Ok(Self::Scsi30),
776            "scsi4" => Ok(Self::Scsi4),
777            "scsi5" => Ok(Self::Scsi5),
778            "scsi6" => Ok(Self::Scsi6),
779            "scsi7" => Ok(Self::Scsi7),
780            "scsi8" => Ok(Self::Scsi8),
781            "scsi9" => Ok(Self::Scsi9),
782            "tpmstate0" => Ok(Self::Tpmstate0),
783            "unused0" => Ok(Self::Unused0),
784            "unused1" => Ok(Self::Unused1),
785            "unused10" => Ok(Self::Unused10),
786            "unused100" => Ok(Self::Unused100),
787            "unused101" => Ok(Self::Unused101),
788            "unused102" => Ok(Self::Unused102),
789            "unused103" => Ok(Self::Unused103),
790            "unused104" => Ok(Self::Unused104),
791            "unused105" => Ok(Self::Unused105),
792            "unused106" => Ok(Self::Unused106),
793            "unused107" => Ok(Self::Unused107),
794            "unused108" => Ok(Self::Unused108),
795            "unused109" => Ok(Self::Unused109),
796            "unused11" => Ok(Self::Unused11),
797            "unused110" => Ok(Self::Unused110),
798            "unused111" => Ok(Self::Unused111),
799            "unused112" => Ok(Self::Unused112),
800            "unused113" => Ok(Self::Unused113),
801            "unused114" => Ok(Self::Unused114),
802            "unused115" => Ok(Self::Unused115),
803            "unused116" => Ok(Self::Unused116),
804            "unused117" => Ok(Self::Unused117),
805            "unused118" => Ok(Self::Unused118),
806            "unused119" => Ok(Self::Unused119),
807            "unused12" => Ok(Self::Unused12),
808            "unused120" => Ok(Self::Unused120),
809            "unused121" => Ok(Self::Unused121),
810            "unused122" => Ok(Self::Unused122),
811            "unused123" => Ok(Self::Unused123),
812            "unused124" => Ok(Self::Unused124),
813            "unused125" => Ok(Self::Unused125),
814            "unused126" => Ok(Self::Unused126),
815            "unused127" => Ok(Self::Unused127),
816            "unused128" => Ok(Self::Unused128),
817            "unused129" => Ok(Self::Unused129),
818            "unused13" => Ok(Self::Unused13),
819            "unused130" => Ok(Self::Unused130),
820            "unused131" => Ok(Self::Unused131),
821            "unused132" => Ok(Self::Unused132),
822            "unused133" => Ok(Self::Unused133),
823            "unused134" => Ok(Self::Unused134),
824            "unused135" => Ok(Self::Unused135),
825            "unused136" => Ok(Self::Unused136),
826            "unused137" => Ok(Self::Unused137),
827            "unused138" => Ok(Self::Unused138),
828            "unused139" => Ok(Self::Unused139),
829            "unused14" => Ok(Self::Unused14),
830            "unused140" => Ok(Self::Unused140),
831            "unused141" => Ok(Self::Unused141),
832            "unused142" => Ok(Self::Unused142),
833            "unused143" => Ok(Self::Unused143),
834            "unused144" => Ok(Self::Unused144),
835            "unused145" => Ok(Self::Unused145),
836            "unused146" => Ok(Self::Unused146),
837            "unused147" => Ok(Self::Unused147),
838            "unused148" => Ok(Self::Unused148),
839            "unused149" => Ok(Self::Unused149),
840            "unused15" => Ok(Self::Unused15),
841            "unused150" => Ok(Self::Unused150),
842            "unused151" => Ok(Self::Unused151),
843            "unused152" => Ok(Self::Unused152),
844            "unused153" => Ok(Self::Unused153),
845            "unused154" => Ok(Self::Unused154),
846            "unused155" => Ok(Self::Unused155),
847            "unused156" => Ok(Self::Unused156),
848            "unused157" => Ok(Self::Unused157),
849            "unused158" => Ok(Self::Unused158),
850            "unused159" => Ok(Self::Unused159),
851            "unused16" => Ok(Self::Unused16),
852            "unused160" => Ok(Self::Unused160),
853            "unused161" => Ok(Self::Unused161),
854            "unused162" => Ok(Self::Unused162),
855            "unused163" => Ok(Self::Unused163),
856            "unused164" => Ok(Self::Unused164),
857            "unused165" => Ok(Self::Unused165),
858            "unused166" => Ok(Self::Unused166),
859            "unused167" => Ok(Self::Unused167),
860            "unused168" => Ok(Self::Unused168),
861            "unused169" => Ok(Self::Unused169),
862            "unused17" => Ok(Self::Unused17),
863            "unused170" => Ok(Self::Unused170),
864            "unused171" => Ok(Self::Unused171),
865            "unused172" => Ok(Self::Unused172),
866            "unused173" => Ok(Self::Unused173),
867            "unused174" => Ok(Self::Unused174),
868            "unused175" => Ok(Self::Unused175),
869            "unused176" => Ok(Self::Unused176),
870            "unused177" => Ok(Self::Unused177),
871            "unused178" => Ok(Self::Unused178),
872            "unused179" => Ok(Self::Unused179),
873            "unused18" => Ok(Self::Unused18),
874            "unused180" => Ok(Self::Unused180),
875            "unused181" => Ok(Self::Unused181),
876            "unused182" => Ok(Self::Unused182),
877            "unused183" => Ok(Self::Unused183),
878            "unused184" => Ok(Self::Unused184),
879            "unused185" => Ok(Self::Unused185),
880            "unused186" => Ok(Self::Unused186),
881            "unused187" => Ok(Self::Unused187),
882            "unused188" => Ok(Self::Unused188),
883            "unused189" => Ok(Self::Unused189),
884            "unused19" => Ok(Self::Unused19),
885            "unused190" => Ok(Self::Unused190),
886            "unused191" => Ok(Self::Unused191),
887            "unused192" => Ok(Self::Unused192),
888            "unused193" => Ok(Self::Unused193),
889            "unused194" => Ok(Self::Unused194),
890            "unused195" => Ok(Self::Unused195),
891            "unused196" => Ok(Self::Unused196),
892            "unused197" => Ok(Self::Unused197),
893            "unused198" => Ok(Self::Unused198),
894            "unused199" => Ok(Self::Unused199),
895            "unused2" => Ok(Self::Unused2),
896            "unused20" => Ok(Self::Unused20),
897            "unused200" => Ok(Self::Unused200),
898            "unused201" => Ok(Self::Unused201),
899            "unused202" => Ok(Self::Unused202),
900            "unused203" => Ok(Self::Unused203),
901            "unused204" => Ok(Self::Unused204),
902            "unused205" => Ok(Self::Unused205),
903            "unused206" => Ok(Self::Unused206),
904            "unused207" => Ok(Self::Unused207),
905            "unused208" => Ok(Self::Unused208),
906            "unused209" => Ok(Self::Unused209),
907            "unused21" => Ok(Self::Unused21),
908            "unused210" => Ok(Self::Unused210),
909            "unused211" => Ok(Self::Unused211),
910            "unused212" => Ok(Self::Unused212),
911            "unused213" => Ok(Self::Unused213),
912            "unused214" => Ok(Self::Unused214),
913            "unused215" => Ok(Self::Unused215),
914            "unused216" => Ok(Self::Unused216),
915            "unused217" => Ok(Self::Unused217),
916            "unused218" => Ok(Self::Unused218),
917            "unused219" => Ok(Self::Unused219),
918            "unused22" => Ok(Self::Unused22),
919            "unused220" => Ok(Self::Unused220),
920            "unused221" => Ok(Self::Unused221),
921            "unused222" => Ok(Self::Unused222),
922            "unused223" => Ok(Self::Unused223),
923            "unused224" => Ok(Self::Unused224),
924            "unused225" => Ok(Self::Unused225),
925            "unused226" => Ok(Self::Unused226),
926            "unused227" => Ok(Self::Unused227),
927            "unused228" => Ok(Self::Unused228),
928            "unused229" => Ok(Self::Unused229),
929            "unused23" => Ok(Self::Unused23),
930            "unused230" => Ok(Self::Unused230),
931            "unused231" => Ok(Self::Unused231),
932            "unused232" => Ok(Self::Unused232),
933            "unused233" => Ok(Self::Unused233),
934            "unused234" => Ok(Self::Unused234),
935            "unused235" => Ok(Self::Unused235),
936            "unused236" => Ok(Self::Unused236),
937            "unused237" => Ok(Self::Unused237),
938            "unused238" => Ok(Self::Unused238),
939            "unused239" => Ok(Self::Unused239),
940            "unused24" => Ok(Self::Unused24),
941            "unused240" => Ok(Self::Unused240),
942            "unused241" => Ok(Self::Unused241),
943            "unused242" => Ok(Self::Unused242),
944            "unused243" => Ok(Self::Unused243),
945            "unused244" => Ok(Self::Unused244),
946            "unused245" => Ok(Self::Unused245),
947            "unused246" => Ok(Self::Unused246),
948            "unused247" => Ok(Self::Unused247),
949            "unused248" => Ok(Self::Unused248),
950            "unused249" => Ok(Self::Unused249),
951            "unused25" => Ok(Self::Unused25),
952            "unused250" => Ok(Self::Unused250),
953            "unused251" => Ok(Self::Unused251),
954            "unused252" => Ok(Self::Unused252),
955            "unused253" => Ok(Self::Unused253),
956            "unused254" => Ok(Self::Unused254),
957            "unused255" => Ok(Self::Unused255),
958            "unused26" => Ok(Self::Unused26),
959            "unused27" => Ok(Self::Unused27),
960            "unused28" => Ok(Self::Unused28),
961            "unused29" => Ok(Self::Unused29),
962            "unused3" => Ok(Self::Unused3),
963            "unused30" => Ok(Self::Unused30),
964            "unused31" => Ok(Self::Unused31),
965            "unused32" => Ok(Self::Unused32),
966            "unused33" => Ok(Self::Unused33),
967            "unused34" => Ok(Self::Unused34),
968            "unused35" => Ok(Self::Unused35),
969            "unused36" => Ok(Self::Unused36),
970            "unused37" => Ok(Self::Unused37),
971            "unused38" => Ok(Self::Unused38),
972            "unused39" => Ok(Self::Unused39),
973            "unused4" => Ok(Self::Unused4),
974            "unused40" => Ok(Self::Unused40),
975            "unused41" => Ok(Self::Unused41),
976            "unused42" => Ok(Self::Unused42),
977            "unused43" => Ok(Self::Unused43),
978            "unused44" => Ok(Self::Unused44),
979            "unused45" => Ok(Self::Unused45),
980            "unused46" => Ok(Self::Unused46),
981            "unused47" => Ok(Self::Unused47),
982            "unused48" => Ok(Self::Unused48),
983            "unused49" => Ok(Self::Unused49),
984            "unused5" => Ok(Self::Unused5),
985            "unused50" => Ok(Self::Unused50),
986            "unused51" => Ok(Self::Unused51),
987            "unused52" => Ok(Self::Unused52),
988            "unused53" => Ok(Self::Unused53),
989            "unused54" => Ok(Self::Unused54),
990            "unused55" => Ok(Self::Unused55),
991            "unused56" => Ok(Self::Unused56),
992            "unused57" => Ok(Self::Unused57),
993            "unused58" => Ok(Self::Unused58),
994            "unused59" => Ok(Self::Unused59),
995            "unused6" => Ok(Self::Unused6),
996            "unused60" => Ok(Self::Unused60),
997            "unused61" => Ok(Self::Unused61),
998            "unused62" => Ok(Self::Unused62),
999            "unused63" => Ok(Self::Unused63),
1000            "unused64" => Ok(Self::Unused64),
1001            "unused65" => Ok(Self::Unused65),
1002            "unused66" => Ok(Self::Unused66),
1003            "unused67" => Ok(Self::Unused67),
1004            "unused68" => Ok(Self::Unused68),
1005            "unused69" => Ok(Self::Unused69),
1006            "unused7" => Ok(Self::Unused7),
1007            "unused70" => Ok(Self::Unused70),
1008            "unused71" => Ok(Self::Unused71),
1009            "unused72" => Ok(Self::Unused72),
1010            "unused73" => Ok(Self::Unused73),
1011            "unused74" => Ok(Self::Unused74),
1012            "unused75" => Ok(Self::Unused75),
1013            "unused76" => Ok(Self::Unused76),
1014            "unused77" => Ok(Self::Unused77),
1015            "unused78" => Ok(Self::Unused78),
1016            "unused79" => Ok(Self::Unused79),
1017            "unused8" => Ok(Self::Unused8),
1018            "unused80" => Ok(Self::Unused80),
1019            "unused81" => Ok(Self::Unused81),
1020            "unused82" => Ok(Self::Unused82),
1021            "unused83" => Ok(Self::Unused83),
1022            "unused84" => Ok(Self::Unused84),
1023            "unused85" => Ok(Self::Unused85),
1024            "unused86" => Ok(Self::Unused86),
1025            "unused87" => Ok(Self::Unused87),
1026            "unused88" => Ok(Self::Unused88),
1027            "unused89" => Ok(Self::Unused89),
1028            "unused9" => Ok(Self::Unused9),
1029            "unused90" => Ok(Self::Unused90),
1030            "unused91" => Ok(Self::Unused91),
1031            "unused92" => Ok(Self::Unused92),
1032            "unused93" => Ok(Self::Unused93),
1033            "unused94" => Ok(Self::Unused94),
1034            "unused95" => Ok(Self::Unused95),
1035            "unused96" => Ok(Self::Unused96),
1036            "unused97" => Ok(Self::Unused97),
1037            "unused98" => Ok(Self::Unused98),
1038            "unused99" => Ok(Self::Unused99),
1039            "virtio0" => Ok(Self::Virtio0),
1040            "virtio1" => Ok(Self::Virtio1),
1041            "virtio10" => Ok(Self::Virtio10),
1042            "virtio11" => Ok(Self::Virtio11),
1043            "virtio12" => Ok(Self::Virtio12),
1044            "virtio13" => Ok(Self::Virtio13),
1045            "virtio14" => Ok(Self::Virtio14),
1046            "virtio15" => Ok(Self::Virtio15),
1047            "virtio2" => Ok(Self::Virtio2),
1048            "virtio3" => Ok(Self::Virtio3),
1049            "virtio4" => Ok(Self::Virtio4),
1050            "virtio5" => Ok(Self::Virtio5),
1051            "virtio6" => Ok(Self::Virtio6),
1052            "virtio7" => Ok(Self::Virtio7),
1053            "virtio8" => Ok(Self::Virtio8),
1054            "virtio9" => Ok(Self::Virtio9),
1055            v => Err(format!("Unknown variant {v}")),
1056        }
1057    }
1058}
1059#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize, PartialEq)]
1060#[doc = "Target Format."]
1061#[doc = ""]
1062pub enum Format {
1063    #[serde(rename = "qcow2")]
1064    Qcow2,
1065    #[serde(rename = "raw")]
1066    Raw,
1067    #[serde(rename = "vmdk")]
1068    Vmdk,
1069}
1070impl TryFrom<&str> for Format {
1071    type Error = String;
1072    fn try_from(value: &str) -> Result<Self, <Self as TryFrom<&str>>::Error> {
1073        match value {
1074            "qcow2" => Ok(Self::Qcow2),
1075            "raw" => Ok(Self::Raw),
1076            "vmdk" => Ok(Self::Vmdk),
1077            v => Err(format!("Unknown variant {v}")),
1078        }
1079    }
1080}
1081#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize, PartialEq)]
1082#[doc = "The config key the disk will be moved to on the target VM (for example, ide0 or scsi1). Default is the source disk key."]
1083#[doc = ""]
1084pub enum TargetDisk {
1085    #[serde(rename = "efidisk0")]
1086    Efidisk0,
1087    #[serde(rename = "ide0")]
1088    Ide0,
1089    #[serde(rename = "ide1")]
1090    Ide1,
1091    #[serde(rename = "ide2")]
1092    Ide2,
1093    #[serde(rename = "ide3")]
1094    Ide3,
1095    #[serde(rename = "sata0")]
1096    Sata0,
1097    #[serde(rename = "sata1")]
1098    Sata1,
1099    #[serde(rename = "sata2")]
1100    Sata2,
1101    #[serde(rename = "sata3")]
1102    Sata3,
1103    #[serde(rename = "sata4")]
1104    Sata4,
1105    #[serde(rename = "sata5")]
1106    Sata5,
1107    #[serde(rename = "scsi0")]
1108    Scsi0,
1109    #[serde(rename = "scsi1")]
1110    Scsi1,
1111    #[serde(rename = "scsi10")]
1112    Scsi10,
1113    #[serde(rename = "scsi11")]
1114    Scsi11,
1115    #[serde(rename = "scsi12")]
1116    Scsi12,
1117    #[serde(rename = "scsi13")]
1118    Scsi13,
1119    #[serde(rename = "scsi14")]
1120    Scsi14,
1121    #[serde(rename = "scsi15")]
1122    Scsi15,
1123    #[serde(rename = "scsi16")]
1124    Scsi16,
1125    #[serde(rename = "scsi17")]
1126    Scsi17,
1127    #[serde(rename = "scsi18")]
1128    Scsi18,
1129    #[serde(rename = "scsi19")]
1130    Scsi19,
1131    #[serde(rename = "scsi2")]
1132    Scsi2,
1133    #[serde(rename = "scsi20")]
1134    Scsi20,
1135    #[serde(rename = "scsi21")]
1136    Scsi21,
1137    #[serde(rename = "scsi22")]
1138    Scsi22,
1139    #[serde(rename = "scsi23")]
1140    Scsi23,
1141    #[serde(rename = "scsi24")]
1142    Scsi24,
1143    #[serde(rename = "scsi25")]
1144    Scsi25,
1145    #[serde(rename = "scsi26")]
1146    Scsi26,
1147    #[serde(rename = "scsi27")]
1148    Scsi27,
1149    #[serde(rename = "scsi28")]
1150    Scsi28,
1151    #[serde(rename = "scsi29")]
1152    Scsi29,
1153    #[serde(rename = "scsi3")]
1154    Scsi3,
1155    #[serde(rename = "scsi30")]
1156    Scsi30,
1157    #[serde(rename = "scsi4")]
1158    Scsi4,
1159    #[serde(rename = "scsi5")]
1160    Scsi5,
1161    #[serde(rename = "scsi6")]
1162    Scsi6,
1163    #[serde(rename = "scsi7")]
1164    Scsi7,
1165    #[serde(rename = "scsi8")]
1166    Scsi8,
1167    #[serde(rename = "scsi9")]
1168    Scsi9,
1169    #[serde(rename = "tpmstate0")]
1170    Tpmstate0,
1171    #[serde(rename = "unused0")]
1172    Unused0,
1173    #[serde(rename = "unused1")]
1174    Unused1,
1175    #[serde(rename = "unused10")]
1176    Unused10,
1177    #[serde(rename = "unused100")]
1178    Unused100,
1179    #[serde(rename = "unused101")]
1180    Unused101,
1181    #[serde(rename = "unused102")]
1182    Unused102,
1183    #[serde(rename = "unused103")]
1184    Unused103,
1185    #[serde(rename = "unused104")]
1186    Unused104,
1187    #[serde(rename = "unused105")]
1188    Unused105,
1189    #[serde(rename = "unused106")]
1190    Unused106,
1191    #[serde(rename = "unused107")]
1192    Unused107,
1193    #[serde(rename = "unused108")]
1194    Unused108,
1195    #[serde(rename = "unused109")]
1196    Unused109,
1197    #[serde(rename = "unused11")]
1198    Unused11,
1199    #[serde(rename = "unused110")]
1200    Unused110,
1201    #[serde(rename = "unused111")]
1202    Unused111,
1203    #[serde(rename = "unused112")]
1204    Unused112,
1205    #[serde(rename = "unused113")]
1206    Unused113,
1207    #[serde(rename = "unused114")]
1208    Unused114,
1209    #[serde(rename = "unused115")]
1210    Unused115,
1211    #[serde(rename = "unused116")]
1212    Unused116,
1213    #[serde(rename = "unused117")]
1214    Unused117,
1215    #[serde(rename = "unused118")]
1216    Unused118,
1217    #[serde(rename = "unused119")]
1218    Unused119,
1219    #[serde(rename = "unused12")]
1220    Unused12,
1221    #[serde(rename = "unused120")]
1222    Unused120,
1223    #[serde(rename = "unused121")]
1224    Unused121,
1225    #[serde(rename = "unused122")]
1226    Unused122,
1227    #[serde(rename = "unused123")]
1228    Unused123,
1229    #[serde(rename = "unused124")]
1230    Unused124,
1231    #[serde(rename = "unused125")]
1232    Unused125,
1233    #[serde(rename = "unused126")]
1234    Unused126,
1235    #[serde(rename = "unused127")]
1236    Unused127,
1237    #[serde(rename = "unused128")]
1238    Unused128,
1239    #[serde(rename = "unused129")]
1240    Unused129,
1241    #[serde(rename = "unused13")]
1242    Unused13,
1243    #[serde(rename = "unused130")]
1244    Unused130,
1245    #[serde(rename = "unused131")]
1246    Unused131,
1247    #[serde(rename = "unused132")]
1248    Unused132,
1249    #[serde(rename = "unused133")]
1250    Unused133,
1251    #[serde(rename = "unused134")]
1252    Unused134,
1253    #[serde(rename = "unused135")]
1254    Unused135,
1255    #[serde(rename = "unused136")]
1256    Unused136,
1257    #[serde(rename = "unused137")]
1258    Unused137,
1259    #[serde(rename = "unused138")]
1260    Unused138,
1261    #[serde(rename = "unused139")]
1262    Unused139,
1263    #[serde(rename = "unused14")]
1264    Unused14,
1265    #[serde(rename = "unused140")]
1266    Unused140,
1267    #[serde(rename = "unused141")]
1268    Unused141,
1269    #[serde(rename = "unused142")]
1270    Unused142,
1271    #[serde(rename = "unused143")]
1272    Unused143,
1273    #[serde(rename = "unused144")]
1274    Unused144,
1275    #[serde(rename = "unused145")]
1276    Unused145,
1277    #[serde(rename = "unused146")]
1278    Unused146,
1279    #[serde(rename = "unused147")]
1280    Unused147,
1281    #[serde(rename = "unused148")]
1282    Unused148,
1283    #[serde(rename = "unused149")]
1284    Unused149,
1285    #[serde(rename = "unused15")]
1286    Unused15,
1287    #[serde(rename = "unused150")]
1288    Unused150,
1289    #[serde(rename = "unused151")]
1290    Unused151,
1291    #[serde(rename = "unused152")]
1292    Unused152,
1293    #[serde(rename = "unused153")]
1294    Unused153,
1295    #[serde(rename = "unused154")]
1296    Unused154,
1297    #[serde(rename = "unused155")]
1298    Unused155,
1299    #[serde(rename = "unused156")]
1300    Unused156,
1301    #[serde(rename = "unused157")]
1302    Unused157,
1303    #[serde(rename = "unused158")]
1304    Unused158,
1305    #[serde(rename = "unused159")]
1306    Unused159,
1307    #[serde(rename = "unused16")]
1308    Unused16,
1309    #[serde(rename = "unused160")]
1310    Unused160,
1311    #[serde(rename = "unused161")]
1312    Unused161,
1313    #[serde(rename = "unused162")]
1314    Unused162,
1315    #[serde(rename = "unused163")]
1316    Unused163,
1317    #[serde(rename = "unused164")]
1318    Unused164,
1319    #[serde(rename = "unused165")]
1320    Unused165,
1321    #[serde(rename = "unused166")]
1322    Unused166,
1323    #[serde(rename = "unused167")]
1324    Unused167,
1325    #[serde(rename = "unused168")]
1326    Unused168,
1327    #[serde(rename = "unused169")]
1328    Unused169,
1329    #[serde(rename = "unused17")]
1330    Unused17,
1331    #[serde(rename = "unused170")]
1332    Unused170,
1333    #[serde(rename = "unused171")]
1334    Unused171,
1335    #[serde(rename = "unused172")]
1336    Unused172,
1337    #[serde(rename = "unused173")]
1338    Unused173,
1339    #[serde(rename = "unused174")]
1340    Unused174,
1341    #[serde(rename = "unused175")]
1342    Unused175,
1343    #[serde(rename = "unused176")]
1344    Unused176,
1345    #[serde(rename = "unused177")]
1346    Unused177,
1347    #[serde(rename = "unused178")]
1348    Unused178,
1349    #[serde(rename = "unused179")]
1350    Unused179,
1351    #[serde(rename = "unused18")]
1352    Unused18,
1353    #[serde(rename = "unused180")]
1354    Unused180,
1355    #[serde(rename = "unused181")]
1356    Unused181,
1357    #[serde(rename = "unused182")]
1358    Unused182,
1359    #[serde(rename = "unused183")]
1360    Unused183,
1361    #[serde(rename = "unused184")]
1362    Unused184,
1363    #[serde(rename = "unused185")]
1364    Unused185,
1365    #[serde(rename = "unused186")]
1366    Unused186,
1367    #[serde(rename = "unused187")]
1368    Unused187,
1369    #[serde(rename = "unused188")]
1370    Unused188,
1371    #[serde(rename = "unused189")]
1372    Unused189,
1373    #[serde(rename = "unused19")]
1374    Unused19,
1375    #[serde(rename = "unused190")]
1376    Unused190,
1377    #[serde(rename = "unused191")]
1378    Unused191,
1379    #[serde(rename = "unused192")]
1380    Unused192,
1381    #[serde(rename = "unused193")]
1382    Unused193,
1383    #[serde(rename = "unused194")]
1384    Unused194,
1385    #[serde(rename = "unused195")]
1386    Unused195,
1387    #[serde(rename = "unused196")]
1388    Unused196,
1389    #[serde(rename = "unused197")]
1390    Unused197,
1391    #[serde(rename = "unused198")]
1392    Unused198,
1393    #[serde(rename = "unused199")]
1394    Unused199,
1395    #[serde(rename = "unused2")]
1396    Unused2,
1397    #[serde(rename = "unused20")]
1398    Unused20,
1399    #[serde(rename = "unused200")]
1400    Unused200,
1401    #[serde(rename = "unused201")]
1402    Unused201,
1403    #[serde(rename = "unused202")]
1404    Unused202,
1405    #[serde(rename = "unused203")]
1406    Unused203,
1407    #[serde(rename = "unused204")]
1408    Unused204,
1409    #[serde(rename = "unused205")]
1410    Unused205,
1411    #[serde(rename = "unused206")]
1412    Unused206,
1413    #[serde(rename = "unused207")]
1414    Unused207,
1415    #[serde(rename = "unused208")]
1416    Unused208,
1417    #[serde(rename = "unused209")]
1418    Unused209,
1419    #[serde(rename = "unused21")]
1420    Unused21,
1421    #[serde(rename = "unused210")]
1422    Unused210,
1423    #[serde(rename = "unused211")]
1424    Unused211,
1425    #[serde(rename = "unused212")]
1426    Unused212,
1427    #[serde(rename = "unused213")]
1428    Unused213,
1429    #[serde(rename = "unused214")]
1430    Unused214,
1431    #[serde(rename = "unused215")]
1432    Unused215,
1433    #[serde(rename = "unused216")]
1434    Unused216,
1435    #[serde(rename = "unused217")]
1436    Unused217,
1437    #[serde(rename = "unused218")]
1438    Unused218,
1439    #[serde(rename = "unused219")]
1440    Unused219,
1441    #[serde(rename = "unused22")]
1442    Unused22,
1443    #[serde(rename = "unused220")]
1444    Unused220,
1445    #[serde(rename = "unused221")]
1446    Unused221,
1447    #[serde(rename = "unused222")]
1448    Unused222,
1449    #[serde(rename = "unused223")]
1450    Unused223,
1451    #[serde(rename = "unused224")]
1452    Unused224,
1453    #[serde(rename = "unused225")]
1454    Unused225,
1455    #[serde(rename = "unused226")]
1456    Unused226,
1457    #[serde(rename = "unused227")]
1458    Unused227,
1459    #[serde(rename = "unused228")]
1460    Unused228,
1461    #[serde(rename = "unused229")]
1462    Unused229,
1463    #[serde(rename = "unused23")]
1464    Unused23,
1465    #[serde(rename = "unused230")]
1466    Unused230,
1467    #[serde(rename = "unused231")]
1468    Unused231,
1469    #[serde(rename = "unused232")]
1470    Unused232,
1471    #[serde(rename = "unused233")]
1472    Unused233,
1473    #[serde(rename = "unused234")]
1474    Unused234,
1475    #[serde(rename = "unused235")]
1476    Unused235,
1477    #[serde(rename = "unused236")]
1478    Unused236,
1479    #[serde(rename = "unused237")]
1480    Unused237,
1481    #[serde(rename = "unused238")]
1482    Unused238,
1483    #[serde(rename = "unused239")]
1484    Unused239,
1485    #[serde(rename = "unused24")]
1486    Unused24,
1487    #[serde(rename = "unused240")]
1488    Unused240,
1489    #[serde(rename = "unused241")]
1490    Unused241,
1491    #[serde(rename = "unused242")]
1492    Unused242,
1493    #[serde(rename = "unused243")]
1494    Unused243,
1495    #[serde(rename = "unused244")]
1496    Unused244,
1497    #[serde(rename = "unused245")]
1498    Unused245,
1499    #[serde(rename = "unused246")]
1500    Unused246,
1501    #[serde(rename = "unused247")]
1502    Unused247,
1503    #[serde(rename = "unused248")]
1504    Unused248,
1505    #[serde(rename = "unused249")]
1506    Unused249,
1507    #[serde(rename = "unused25")]
1508    Unused25,
1509    #[serde(rename = "unused250")]
1510    Unused250,
1511    #[serde(rename = "unused251")]
1512    Unused251,
1513    #[serde(rename = "unused252")]
1514    Unused252,
1515    #[serde(rename = "unused253")]
1516    Unused253,
1517    #[serde(rename = "unused254")]
1518    Unused254,
1519    #[serde(rename = "unused255")]
1520    Unused255,
1521    #[serde(rename = "unused26")]
1522    Unused26,
1523    #[serde(rename = "unused27")]
1524    Unused27,
1525    #[serde(rename = "unused28")]
1526    Unused28,
1527    #[serde(rename = "unused29")]
1528    Unused29,
1529    #[serde(rename = "unused3")]
1530    Unused3,
1531    #[serde(rename = "unused30")]
1532    Unused30,
1533    #[serde(rename = "unused31")]
1534    Unused31,
1535    #[serde(rename = "unused32")]
1536    Unused32,
1537    #[serde(rename = "unused33")]
1538    Unused33,
1539    #[serde(rename = "unused34")]
1540    Unused34,
1541    #[serde(rename = "unused35")]
1542    Unused35,
1543    #[serde(rename = "unused36")]
1544    Unused36,
1545    #[serde(rename = "unused37")]
1546    Unused37,
1547    #[serde(rename = "unused38")]
1548    Unused38,
1549    #[serde(rename = "unused39")]
1550    Unused39,
1551    #[serde(rename = "unused4")]
1552    Unused4,
1553    #[serde(rename = "unused40")]
1554    Unused40,
1555    #[serde(rename = "unused41")]
1556    Unused41,
1557    #[serde(rename = "unused42")]
1558    Unused42,
1559    #[serde(rename = "unused43")]
1560    Unused43,
1561    #[serde(rename = "unused44")]
1562    Unused44,
1563    #[serde(rename = "unused45")]
1564    Unused45,
1565    #[serde(rename = "unused46")]
1566    Unused46,
1567    #[serde(rename = "unused47")]
1568    Unused47,
1569    #[serde(rename = "unused48")]
1570    Unused48,
1571    #[serde(rename = "unused49")]
1572    Unused49,
1573    #[serde(rename = "unused5")]
1574    Unused5,
1575    #[serde(rename = "unused50")]
1576    Unused50,
1577    #[serde(rename = "unused51")]
1578    Unused51,
1579    #[serde(rename = "unused52")]
1580    Unused52,
1581    #[serde(rename = "unused53")]
1582    Unused53,
1583    #[serde(rename = "unused54")]
1584    Unused54,
1585    #[serde(rename = "unused55")]
1586    Unused55,
1587    #[serde(rename = "unused56")]
1588    Unused56,
1589    #[serde(rename = "unused57")]
1590    Unused57,
1591    #[serde(rename = "unused58")]
1592    Unused58,
1593    #[serde(rename = "unused59")]
1594    Unused59,
1595    #[serde(rename = "unused6")]
1596    Unused6,
1597    #[serde(rename = "unused60")]
1598    Unused60,
1599    #[serde(rename = "unused61")]
1600    Unused61,
1601    #[serde(rename = "unused62")]
1602    Unused62,
1603    #[serde(rename = "unused63")]
1604    Unused63,
1605    #[serde(rename = "unused64")]
1606    Unused64,
1607    #[serde(rename = "unused65")]
1608    Unused65,
1609    #[serde(rename = "unused66")]
1610    Unused66,
1611    #[serde(rename = "unused67")]
1612    Unused67,
1613    #[serde(rename = "unused68")]
1614    Unused68,
1615    #[serde(rename = "unused69")]
1616    Unused69,
1617    #[serde(rename = "unused7")]
1618    Unused7,
1619    #[serde(rename = "unused70")]
1620    Unused70,
1621    #[serde(rename = "unused71")]
1622    Unused71,
1623    #[serde(rename = "unused72")]
1624    Unused72,
1625    #[serde(rename = "unused73")]
1626    Unused73,
1627    #[serde(rename = "unused74")]
1628    Unused74,
1629    #[serde(rename = "unused75")]
1630    Unused75,
1631    #[serde(rename = "unused76")]
1632    Unused76,
1633    #[serde(rename = "unused77")]
1634    Unused77,
1635    #[serde(rename = "unused78")]
1636    Unused78,
1637    #[serde(rename = "unused79")]
1638    Unused79,
1639    #[serde(rename = "unused8")]
1640    Unused8,
1641    #[serde(rename = "unused80")]
1642    Unused80,
1643    #[serde(rename = "unused81")]
1644    Unused81,
1645    #[serde(rename = "unused82")]
1646    Unused82,
1647    #[serde(rename = "unused83")]
1648    Unused83,
1649    #[serde(rename = "unused84")]
1650    Unused84,
1651    #[serde(rename = "unused85")]
1652    Unused85,
1653    #[serde(rename = "unused86")]
1654    Unused86,
1655    #[serde(rename = "unused87")]
1656    Unused87,
1657    #[serde(rename = "unused88")]
1658    Unused88,
1659    #[serde(rename = "unused89")]
1660    Unused89,
1661    #[serde(rename = "unused9")]
1662    Unused9,
1663    #[serde(rename = "unused90")]
1664    Unused90,
1665    #[serde(rename = "unused91")]
1666    Unused91,
1667    #[serde(rename = "unused92")]
1668    Unused92,
1669    #[serde(rename = "unused93")]
1670    Unused93,
1671    #[serde(rename = "unused94")]
1672    Unused94,
1673    #[serde(rename = "unused95")]
1674    Unused95,
1675    #[serde(rename = "unused96")]
1676    Unused96,
1677    #[serde(rename = "unused97")]
1678    Unused97,
1679    #[serde(rename = "unused98")]
1680    Unused98,
1681    #[serde(rename = "unused99")]
1682    Unused99,
1683    #[serde(rename = "virtio0")]
1684    Virtio0,
1685    #[serde(rename = "virtio1")]
1686    Virtio1,
1687    #[serde(rename = "virtio10")]
1688    Virtio10,
1689    #[serde(rename = "virtio11")]
1690    Virtio11,
1691    #[serde(rename = "virtio12")]
1692    Virtio12,
1693    #[serde(rename = "virtio13")]
1694    Virtio13,
1695    #[serde(rename = "virtio14")]
1696    Virtio14,
1697    #[serde(rename = "virtio15")]
1698    Virtio15,
1699    #[serde(rename = "virtio2")]
1700    Virtio2,
1701    #[serde(rename = "virtio3")]
1702    Virtio3,
1703    #[serde(rename = "virtio4")]
1704    Virtio4,
1705    #[serde(rename = "virtio5")]
1706    Virtio5,
1707    #[serde(rename = "virtio6")]
1708    Virtio6,
1709    #[serde(rename = "virtio7")]
1710    Virtio7,
1711    #[serde(rename = "virtio8")]
1712    Virtio8,
1713    #[serde(rename = "virtio9")]
1714    Virtio9,
1715}
1716impl TryFrom<&str> for TargetDisk {
1717    type Error = String;
1718    fn try_from(value: &str) -> Result<Self, <Self as TryFrom<&str>>::Error> {
1719        match value {
1720            "efidisk0" => Ok(Self::Efidisk0),
1721            "ide0" => Ok(Self::Ide0),
1722            "ide1" => Ok(Self::Ide1),
1723            "ide2" => Ok(Self::Ide2),
1724            "ide3" => Ok(Self::Ide3),
1725            "sata0" => Ok(Self::Sata0),
1726            "sata1" => Ok(Self::Sata1),
1727            "sata2" => Ok(Self::Sata2),
1728            "sata3" => Ok(Self::Sata3),
1729            "sata4" => Ok(Self::Sata4),
1730            "sata5" => Ok(Self::Sata5),
1731            "scsi0" => Ok(Self::Scsi0),
1732            "scsi1" => Ok(Self::Scsi1),
1733            "scsi10" => Ok(Self::Scsi10),
1734            "scsi11" => Ok(Self::Scsi11),
1735            "scsi12" => Ok(Self::Scsi12),
1736            "scsi13" => Ok(Self::Scsi13),
1737            "scsi14" => Ok(Self::Scsi14),
1738            "scsi15" => Ok(Self::Scsi15),
1739            "scsi16" => Ok(Self::Scsi16),
1740            "scsi17" => Ok(Self::Scsi17),
1741            "scsi18" => Ok(Self::Scsi18),
1742            "scsi19" => Ok(Self::Scsi19),
1743            "scsi2" => Ok(Self::Scsi2),
1744            "scsi20" => Ok(Self::Scsi20),
1745            "scsi21" => Ok(Self::Scsi21),
1746            "scsi22" => Ok(Self::Scsi22),
1747            "scsi23" => Ok(Self::Scsi23),
1748            "scsi24" => Ok(Self::Scsi24),
1749            "scsi25" => Ok(Self::Scsi25),
1750            "scsi26" => Ok(Self::Scsi26),
1751            "scsi27" => Ok(Self::Scsi27),
1752            "scsi28" => Ok(Self::Scsi28),
1753            "scsi29" => Ok(Self::Scsi29),
1754            "scsi3" => Ok(Self::Scsi3),
1755            "scsi30" => Ok(Self::Scsi30),
1756            "scsi4" => Ok(Self::Scsi4),
1757            "scsi5" => Ok(Self::Scsi5),
1758            "scsi6" => Ok(Self::Scsi6),
1759            "scsi7" => Ok(Self::Scsi7),
1760            "scsi8" => Ok(Self::Scsi8),
1761            "scsi9" => Ok(Self::Scsi9),
1762            "tpmstate0" => Ok(Self::Tpmstate0),
1763            "unused0" => Ok(Self::Unused0),
1764            "unused1" => Ok(Self::Unused1),
1765            "unused10" => Ok(Self::Unused10),
1766            "unused100" => Ok(Self::Unused100),
1767            "unused101" => Ok(Self::Unused101),
1768            "unused102" => Ok(Self::Unused102),
1769            "unused103" => Ok(Self::Unused103),
1770            "unused104" => Ok(Self::Unused104),
1771            "unused105" => Ok(Self::Unused105),
1772            "unused106" => Ok(Self::Unused106),
1773            "unused107" => Ok(Self::Unused107),
1774            "unused108" => Ok(Self::Unused108),
1775            "unused109" => Ok(Self::Unused109),
1776            "unused11" => Ok(Self::Unused11),
1777            "unused110" => Ok(Self::Unused110),
1778            "unused111" => Ok(Self::Unused111),
1779            "unused112" => Ok(Self::Unused112),
1780            "unused113" => Ok(Self::Unused113),
1781            "unused114" => Ok(Self::Unused114),
1782            "unused115" => Ok(Self::Unused115),
1783            "unused116" => Ok(Self::Unused116),
1784            "unused117" => Ok(Self::Unused117),
1785            "unused118" => Ok(Self::Unused118),
1786            "unused119" => Ok(Self::Unused119),
1787            "unused12" => Ok(Self::Unused12),
1788            "unused120" => Ok(Self::Unused120),
1789            "unused121" => Ok(Self::Unused121),
1790            "unused122" => Ok(Self::Unused122),
1791            "unused123" => Ok(Self::Unused123),
1792            "unused124" => Ok(Self::Unused124),
1793            "unused125" => Ok(Self::Unused125),
1794            "unused126" => Ok(Self::Unused126),
1795            "unused127" => Ok(Self::Unused127),
1796            "unused128" => Ok(Self::Unused128),
1797            "unused129" => Ok(Self::Unused129),
1798            "unused13" => Ok(Self::Unused13),
1799            "unused130" => Ok(Self::Unused130),
1800            "unused131" => Ok(Self::Unused131),
1801            "unused132" => Ok(Self::Unused132),
1802            "unused133" => Ok(Self::Unused133),
1803            "unused134" => Ok(Self::Unused134),
1804            "unused135" => Ok(Self::Unused135),
1805            "unused136" => Ok(Self::Unused136),
1806            "unused137" => Ok(Self::Unused137),
1807            "unused138" => Ok(Self::Unused138),
1808            "unused139" => Ok(Self::Unused139),
1809            "unused14" => Ok(Self::Unused14),
1810            "unused140" => Ok(Self::Unused140),
1811            "unused141" => Ok(Self::Unused141),
1812            "unused142" => Ok(Self::Unused142),
1813            "unused143" => Ok(Self::Unused143),
1814            "unused144" => Ok(Self::Unused144),
1815            "unused145" => Ok(Self::Unused145),
1816            "unused146" => Ok(Self::Unused146),
1817            "unused147" => Ok(Self::Unused147),
1818            "unused148" => Ok(Self::Unused148),
1819            "unused149" => Ok(Self::Unused149),
1820            "unused15" => Ok(Self::Unused15),
1821            "unused150" => Ok(Self::Unused150),
1822            "unused151" => Ok(Self::Unused151),
1823            "unused152" => Ok(Self::Unused152),
1824            "unused153" => Ok(Self::Unused153),
1825            "unused154" => Ok(Self::Unused154),
1826            "unused155" => Ok(Self::Unused155),
1827            "unused156" => Ok(Self::Unused156),
1828            "unused157" => Ok(Self::Unused157),
1829            "unused158" => Ok(Self::Unused158),
1830            "unused159" => Ok(Self::Unused159),
1831            "unused16" => Ok(Self::Unused16),
1832            "unused160" => Ok(Self::Unused160),
1833            "unused161" => Ok(Self::Unused161),
1834            "unused162" => Ok(Self::Unused162),
1835            "unused163" => Ok(Self::Unused163),
1836            "unused164" => Ok(Self::Unused164),
1837            "unused165" => Ok(Self::Unused165),
1838            "unused166" => Ok(Self::Unused166),
1839            "unused167" => Ok(Self::Unused167),
1840            "unused168" => Ok(Self::Unused168),
1841            "unused169" => Ok(Self::Unused169),
1842            "unused17" => Ok(Self::Unused17),
1843            "unused170" => Ok(Self::Unused170),
1844            "unused171" => Ok(Self::Unused171),
1845            "unused172" => Ok(Self::Unused172),
1846            "unused173" => Ok(Self::Unused173),
1847            "unused174" => Ok(Self::Unused174),
1848            "unused175" => Ok(Self::Unused175),
1849            "unused176" => Ok(Self::Unused176),
1850            "unused177" => Ok(Self::Unused177),
1851            "unused178" => Ok(Self::Unused178),
1852            "unused179" => Ok(Self::Unused179),
1853            "unused18" => Ok(Self::Unused18),
1854            "unused180" => Ok(Self::Unused180),
1855            "unused181" => Ok(Self::Unused181),
1856            "unused182" => Ok(Self::Unused182),
1857            "unused183" => Ok(Self::Unused183),
1858            "unused184" => Ok(Self::Unused184),
1859            "unused185" => Ok(Self::Unused185),
1860            "unused186" => Ok(Self::Unused186),
1861            "unused187" => Ok(Self::Unused187),
1862            "unused188" => Ok(Self::Unused188),
1863            "unused189" => Ok(Self::Unused189),
1864            "unused19" => Ok(Self::Unused19),
1865            "unused190" => Ok(Self::Unused190),
1866            "unused191" => Ok(Self::Unused191),
1867            "unused192" => Ok(Self::Unused192),
1868            "unused193" => Ok(Self::Unused193),
1869            "unused194" => Ok(Self::Unused194),
1870            "unused195" => Ok(Self::Unused195),
1871            "unused196" => Ok(Self::Unused196),
1872            "unused197" => Ok(Self::Unused197),
1873            "unused198" => Ok(Self::Unused198),
1874            "unused199" => Ok(Self::Unused199),
1875            "unused2" => Ok(Self::Unused2),
1876            "unused20" => Ok(Self::Unused20),
1877            "unused200" => Ok(Self::Unused200),
1878            "unused201" => Ok(Self::Unused201),
1879            "unused202" => Ok(Self::Unused202),
1880            "unused203" => Ok(Self::Unused203),
1881            "unused204" => Ok(Self::Unused204),
1882            "unused205" => Ok(Self::Unused205),
1883            "unused206" => Ok(Self::Unused206),
1884            "unused207" => Ok(Self::Unused207),
1885            "unused208" => Ok(Self::Unused208),
1886            "unused209" => Ok(Self::Unused209),
1887            "unused21" => Ok(Self::Unused21),
1888            "unused210" => Ok(Self::Unused210),
1889            "unused211" => Ok(Self::Unused211),
1890            "unused212" => Ok(Self::Unused212),
1891            "unused213" => Ok(Self::Unused213),
1892            "unused214" => Ok(Self::Unused214),
1893            "unused215" => Ok(Self::Unused215),
1894            "unused216" => Ok(Self::Unused216),
1895            "unused217" => Ok(Self::Unused217),
1896            "unused218" => Ok(Self::Unused218),
1897            "unused219" => Ok(Self::Unused219),
1898            "unused22" => Ok(Self::Unused22),
1899            "unused220" => Ok(Self::Unused220),
1900            "unused221" => Ok(Self::Unused221),
1901            "unused222" => Ok(Self::Unused222),
1902            "unused223" => Ok(Self::Unused223),
1903            "unused224" => Ok(Self::Unused224),
1904            "unused225" => Ok(Self::Unused225),
1905            "unused226" => Ok(Self::Unused226),
1906            "unused227" => Ok(Self::Unused227),
1907            "unused228" => Ok(Self::Unused228),
1908            "unused229" => Ok(Self::Unused229),
1909            "unused23" => Ok(Self::Unused23),
1910            "unused230" => Ok(Self::Unused230),
1911            "unused231" => Ok(Self::Unused231),
1912            "unused232" => Ok(Self::Unused232),
1913            "unused233" => Ok(Self::Unused233),
1914            "unused234" => Ok(Self::Unused234),
1915            "unused235" => Ok(Self::Unused235),
1916            "unused236" => Ok(Self::Unused236),
1917            "unused237" => Ok(Self::Unused237),
1918            "unused238" => Ok(Self::Unused238),
1919            "unused239" => Ok(Self::Unused239),
1920            "unused24" => Ok(Self::Unused24),
1921            "unused240" => Ok(Self::Unused240),
1922            "unused241" => Ok(Self::Unused241),
1923            "unused242" => Ok(Self::Unused242),
1924            "unused243" => Ok(Self::Unused243),
1925            "unused244" => Ok(Self::Unused244),
1926            "unused245" => Ok(Self::Unused245),
1927            "unused246" => Ok(Self::Unused246),
1928            "unused247" => Ok(Self::Unused247),
1929            "unused248" => Ok(Self::Unused248),
1930            "unused249" => Ok(Self::Unused249),
1931            "unused25" => Ok(Self::Unused25),
1932            "unused250" => Ok(Self::Unused250),
1933            "unused251" => Ok(Self::Unused251),
1934            "unused252" => Ok(Self::Unused252),
1935            "unused253" => Ok(Self::Unused253),
1936            "unused254" => Ok(Self::Unused254),
1937            "unused255" => Ok(Self::Unused255),
1938            "unused26" => Ok(Self::Unused26),
1939            "unused27" => Ok(Self::Unused27),
1940            "unused28" => Ok(Self::Unused28),
1941            "unused29" => Ok(Self::Unused29),
1942            "unused3" => Ok(Self::Unused3),
1943            "unused30" => Ok(Self::Unused30),
1944            "unused31" => Ok(Self::Unused31),
1945            "unused32" => Ok(Self::Unused32),
1946            "unused33" => Ok(Self::Unused33),
1947            "unused34" => Ok(Self::Unused34),
1948            "unused35" => Ok(Self::Unused35),
1949            "unused36" => Ok(Self::Unused36),
1950            "unused37" => Ok(Self::Unused37),
1951            "unused38" => Ok(Self::Unused38),
1952            "unused39" => Ok(Self::Unused39),
1953            "unused4" => Ok(Self::Unused4),
1954            "unused40" => Ok(Self::Unused40),
1955            "unused41" => Ok(Self::Unused41),
1956            "unused42" => Ok(Self::Unused42),
1957            "unused43" => Ok(Self::Unused43),
1958            "unused44" => Ok(Self::Unused44),
1959            "unused45" => Ok(Self::Unused45),
1960            "unused46" => Ok(Self::Unused46),
1961            "unused47" => Ok(Self::Unused47),
1962            "unused48" => Ok(Self::Unused48),
1963            "unused49" => Ok(Self::Unused49),
1964            "unused5" => Ok(Self::Unused5),
1965            "unused50" => Ok(Self::Unused50),
1966            "unused51" => Ok(Self::Unused51),
1967            "unused52" => Ok(Self::Unused52),
1968            "unused53" => Ok(Self::Unused53),
1969            "unused54" => Ok(Self::Unused54),
1970            "unused55" => Ok(Self::Unused55),
1971            "unused56" => Ok(Self::Unused56),
1972            "unused57" => Ok(Self::Unused57),
1973            "unused58" => Ok(Self::Unused58),
1974            "unused59" => Ok(Self::Unused59),
1975            "unused6" => Ok(Self::Unused6),
1976            "unused60" => Ok(Self::Unused60),
1977            "unused61" => Ok(Self::Unused61),
1978            "unused62" => Ok(Self::Unused62),
1979            "unused63" => Ok(Self::Unused63),
1980            "unused64" => Ok(Self::Unused64),
1981            "unused65" => Ok(Self::Unused65),
1982            "unused66" => Ok(Self::Unused66),
1983            "unused67" => Ok(Self::Unused67),
1984            "unused68" => Ok(Self::Unused68),
1985            "unused69" => Ok(Self::Unused69),
1986            "unused7" => Ok(Self::Unused7),
1987            "unused70" => Ok(Self::Unused70),
1988            "unused71" => Ok(Self::Unused71),
1989            "unused72" => Ok(Self::Unused72),
1990            "unused73" => Ok(Self::Unused73),
1991            "unused74" => Ok(Self::Unused74),
1992            "unused75" => Ok(Self::Unused75),
1993            "unused76" => Ok(Self::Unused76),
1994            "unused77" => Ok(Self::Unused77),
1995            "unused78" => Ok(Self::Unused78),
1996            "unused79" => Ok(Self::Unused79),
1997            "unused8" => Ok(Self::Unused8),
1998            "unused80" => Ok(Self::Unused80),
1999            "unused81" => Ok(Self::Unused81),
2000            "unused82" => Ok(Self::Unused82),
2001            "unused83" => Ok(Self::Unused83),
2002            "unused84" => Ok(Self::Unused84),
2003            "unused85" => Ok(Self::Unused85),
2004            "unused86" => Ok(Self::Unused86),
2005            "unused87" => Ok(Self::Unused87),
2006            "unused88" => Ok(Self::Unused88),
2007            "unused89" => Ok(Self::Unused89),
2008            "unused9" => Ok(Self::Unused9),
2009            "unused90" => Ok(Self::Unused90),
2010            "unused91" => Ok(Self::Unused91),
2011            "unused92" => Ok(Self::Unused92),
2012            "unused93" => Ok(Self::Unused93),
2013            "unused94" => Ok(Self::Unused94),
2014            "unused95" => Ok(Self::Unused95),
2015            "unused96" => Ok(Self::Unused96),
2016            "unused97" => Ok(Self::Unused97),
2017            "unused98" => Ok(Self::Unused98),
2018            "unused99" => Ok(Self::Unused99),
2019            "virtio0" => Ok(Self::Virtio0),
2020            "virtio1" => Ok(Self::Virtio1),
2021            "virtio10" => Ok(Self::Virtio10),
2022            "virtio11" => Ok(Self::Virtio11),
2023            "virtio12" => Ok(Self::Virtio12),
2024            "virtio13" => Ok(Self::Virtio13),
2025            "virtio14" => Ok(Self::Virtio14),
2026            "virtio15" => Ok(Self::Virtio15),
2027            "virtio2" => Ok(Self::Virtio2),
2028            "virtio3" => Ok(Self::Virtio3),
2029            "virtio4" => Ok(Self::Virtio4),
2030            "virtio5" => Ok(Self::Virtio5),
2031            "virtio6" => Ok(Self::Virtio6),
2032            "virtio7" => Ok(Self::Virtio7),
2033            "virtio8" => Ok(Self::Virtio8),
2034            "virtio9" => Ok(Self::Virtio9),
2035            v => Err(format!("Unknown variant {v}")),
2036        }
2037    }
2038}
2039#[derive(Debug, Clone, Copy, PartialEq, PartialOrd)]
2040pub struct TargetVmidInt(i128);
2041impl crate::types::bounded_integer::BoundedInteger for TargetVmidInt {
2042    const MIN: Option<i128> = Some(100i128);
2043    const MAX: Option<i128> = Some(999999999i128);
2044    const DEFAULT: Option<i128> = None::<i128>;
2045    const TYPE_DESCRIPTION: &'static str = "an integer between 100 and 999999999";
2046    fn get(&self) -> i128 {
2047        self.0
2048    }
2049    fn new(value: i128) -> Result<Self, crate::types::bounded_integer::BoundedIntegerError> {
2050        Self::validate(value)?;
2051        Ok(Self(value))
2052    }
2053}
2054impl std::convert::TryFrom<i128> for TargetVmidInt {
2055    type Error = crate::types::bounded_integer::BoundedIntegerError;
2056    fn try_from(value: i128) -> Result<Self, Self::Error> {
2057        crate::types::bounded_integer::BoundedInteger::new(value)
2058    }
2059}
2060impl ::serde::Serialize for TargetVmidInt {
2061    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2062    where
2063        S: ::serde::Serializer,
2064    {
2065        crate::types::bounded_integer::serialize_bounded_integer(self, serializer)
2066    }
2067}
2068impl<'de> ::serde::Deserialize<'de> for TargetVmidInt {
2069    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2070    where
2071        D: ::serde::Deserializer<'de>,
2072    {
2073        crate::types::bounded_integer::deserialize_bounded_integer(deserializer)
2074    }
2075}
2076#[derive(Debug, Clone, PartialEq, PartialOrd)]
2077pub struct DigestStr {
2078    value: String,
2079}
2080impl crate::types::bounded_string::BoundedString for DigestStr {
2081    const MIN_LENGTH: Option<usize> = None::<usize>;
2082    const MAX_LENGTH: Option<usize> = Some(40usize);
2083    const DEFAULT: Option<&'static str> = None::<&'static str>;
2084    const PATTERN: Option<&'static str> = None::<&'static str>;
2085    const TYPE_DESCRIPTION: &'static str = "a string with length at most 40";
2086    fn get_value(&self) -> &str {
2087        &self.value
2088    }
2089    fn new(value: String) -> Result<Self, crate::types::bounded_string::BoundedStringError> {
2090        Self::validate(&value)?;
2091        Ok(Self { value })
2092    }
2093}
2094impl std::convert::TryFrom<String> for DigestStr {
2095    type Error = crate::types::bounded_string::BoundedStringError;
2096    fn try_from(value: String) -> Result<Self, Self::Error> {
2097        crate::types::bounded_string::BoundedString::new(value)
2098    }
2099}
2100impl ::serde::Serialize for DigestStr {
2101    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2102    where
2103        S: ::serde::Serializer,
2104    {
2105        crate::types::bounded_string::serialize_bounded_string(self, serializer)
2106    }
2107}
2108impl<'de> ::serde::Deserialize<'de> for DigestStr {
2109    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2110    where
2111        D: ::serde::Deserializer<'de>,
2112    {
2113        crate::types::bounded_string::deserialize_bounded_string(deserializer)
2114    }
2115}
2116#[derive(Debug, Clone, PartialEq, PartialOrd)]
2117pub struct TargetDigestStr {
2118    value: String,
2119}
2120impl crate::types::bounded_string::BoundedString for TargetDigestStr {
2121    const MIN_LENGTH: Option<usize> = None::<usize>;
2122    const MAX_LENGTH: Option<usize> = Some(40usize);
2123    const DEFAULT: Option<&'static str> = None::<&'static str>;
2124    const PATTERN: Option<&'static str> = None::<&'static str>;
2125    const TYPE_DESCRIPTION: &'static str = "a string with length at most 40";
2126    fn get_value(&self) -> &str {
2127        &self.value
2128    }
2129    fn new(value: String) -> Result<Self, crate::types::bounded_string::BoundedStringError> {
2130        Self::validate(&value)?;
2131        Ok(Self { value })
2132    }
2133}
2134impl std::convert::TryFrom<String> for TargetDigestStr {
2135    type Error = crate::types::bounded_string::BoundedStringError;
2136    fn try_from(value: String) -> Result<Self, Self::Error> {
2137        crate::types::bounded_string::BoundedString::new(value)
2138    }
2139}
2140impl ::serde::Serialize for TargetDigestStr {
2141    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2142    where
2143        S: ::serde::Serializer,
2144    {
2145        crate::types::bounded_string::serialize_bounded_string(self, serializer)
2146    }
2147}
2148impl<'de> ::serde::Deserialize<'de> for TargetDigestStr {
2149    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2150    where
2151        D: ::serde::Deserializer<'de>,
2152    {
2153        crate::types::bounded_string::deserialize_bounded_string(deserializer)
2154    }
2155}