]> git.proxmox.com Git - pve-docs.git/blame - api-viewer/apidata.js
fix #5429: network: override device names: include Type=ether
[pve-docs.git] / api-viewer / apidata.js
CommitLineData
0695fdaf 1const apiSchema = [
56122987 2 {
56122987 3 "children" : [
5d9c884c
DM
4 {
5 "children" : [
6 {
7 "info" : {
8 "DELETE" : {
e9cd3bd4 9 "allowtoken" : 1,
5d9c884c
DM
10 "description" : "Mark replication job for removal.",
11 "method" : "DELETE",
12 "name" : "delete",
13 "parameters" : {
14 "additionalProperties" : 0,
15 "properties" : {
16 "force" : {
17 "default" : 0,
18 "description" : "Will remove the jobconfig entry, but will not cleanup.",
19 "optional" : 1,
20 "type" : "boolean",
21 "typetext" : "<boolean>"
22 },
23 "id" : {
24 "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
25 "format" : "pve-replication-job-id",
26 "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
27 "type" : "string"
28 },
29 "keep" : {
30 "default" : 0,
31 "description" : "Keep replicated data at target (do not remove).",
32 "optional" : 1,
33 "type" : "boolean",
34 "typetext" : "<boolean>"
35 }
36 }
37 },
38 "permissions" : {
39 "check" : [
40 "perm",
41 "/storage",
42 [
43 "Datastore.Allocate"
44 ]
45 ]
46 },
47 "protected" : 1,
48 "returns" : {
49 "type" : "null"
50 }
51 },
52 "GET" : {
e9cd3bd4 53 "allowtoken" : 1,
5d9c884c
DM
54 "description" : "Read replication job configuration.",
55 "method" : "GET",
56 "name" : "read",
57 "parameters" : {
58 "additionalProperties" : 0,
59 "properties" : {
60 "id" : {
61 "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
62 "format" : "pve-replication-job-id",
63 "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
64 "type" : "string"
65 }
66 }
67 },
68 "permissions" : {
69 "description" : "Requires the VM.Audit permission on /vms/<vmid>.",
70 "user" : "all"
71 },
72 "returns" : {
73 "type" : "object"
74 }
75 },
76 "PUT" : {
e9cd3bd4 77 "allowtoken" : 1,
5d9c884c
DM
78 "description" : "Update replication job configuration.",
79 "method" : "PUT",
80 "name" : "update",
81 "parameters" : {
82 "additionalProperties" : 0,
83 "properties" : {
84 "comment" : {
85 "description" : "Description.",
86 "maxLength" : 4096,
87 "optional" : 1,
88 "type" : "string",
89 "typetext" : "<string>"
90 },
91 "delete" : {
92 "description" : "A list of settings you want to delete.",
93 "format" : "pve-configid-list",
94 "maxLength" : 4096,
95 "optional" : 1,
96 "type" : "string",
97 "typetext" : "<string>"
98 },
99 "digest" : {
82551b2b
TL
100 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
101 "maxLength" : 64,
5d9c884c
DM
102 "optional" : 1,
103 "type" : "string",
104 "typetext" : "<string>"
105 },
106 "disable" : {
107 "description" : "Flag to disable/deactivate the entry.",
108 "optional" : 1,
109 "type" : "boolean",
110 "typetext" : "<boolean>"
111 },
112 "id" : {
113 "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
114 "format" : "pve-replication-job-id",
115 "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
116 "type" : "string"
117 },
118 "rate" : {
119 "description" : "Rate limit in mbps (megabytes per second) as floating point number.",
120 "minimum" : 1,
121 "optional" : 1,
122 "type" : "number",
123 "typetext" : "<number> (1 - N)"
124 },
125 "remove_job" : {
126 "description" : "Mark the replication job for removal. The job will remove all local replication snapshots. When set to 'full', it also tries to remove replicated volumes on the target. The job then removes itself from the configuration file.",
127 "enum" : [
128 "local",
129 "full"
130 ],
131 "optional" : 1,
132 "type" : "string"
133 },
134 "schedule" : {
135 "default" : "*/15",
c5aa7e14 136 "description" : "Storage replication schedule. The format is a subset of `systemd` calendar events.",
5d9c884c
DM
137 "format" : "pve-calendar-event",
138 "maxLength" : 128,
139 "optional" : 1,
140 "type" : "string",
141 "typetext" : "<string>"
a9a8e3d1
DM
142 },
143 "source" : {
d2656385 144 "description" : "For internal use, to detect if the guest was stolen.",
a9a8e3d1
DM
145 "format" : "pve-node",
146 "optional" : 1,
147 "type" : "string",
148 "typetext" : "<string>"
5d9c884c
DM
149 }
150 },
151 "type" : "object"
152 },
153 "permissions" : {
154 "check" : [
155 "perm",
156 "/storage",
157 [
158 "Datastore.Allocate"
159 ]
160 ]
161 },
162 "protected" : 1,
163 "returns" : {
164 "type" : "null"
165 }
166 }
167 },
168 "leaf" : 1,
169 "path" : "/cluster/replication/{id}",
170 "text" : "{id}"
171 }
172 ],
173 "info" : {
174 "GET" : {
e9cd3bd4 175 "allowtoken" : 1,
5d9c884c
DM
176 "description" : "List replication jobs.",
177 "method" : "GET",
178 "name" : "index",
179 "parameters" : {
180 "additionalProperties" : 0
181 },
182 "permissions" : {
c6d5bae8 183 "description" : "Will only return replication jobs for which the calling user has VM.Audit permission on /vms/<vmid>.",
5d9c884c
DM
184 "user" : "all"
185 },
186 "returns" : {
187 "items" : {
188 "properties" : {},
189 "type" : "object"
190 },
191 "links" : [
192 {
193 "href" : "{id}",
194 "rel" : "child"
195 }
196 ],
197 "type" : "array"
198 }
199 },
200 "POST" : {
e9cd3bd4 201 "allowtoken" : 1,
5d9c884c
DM
202 "description" : "Create a new replication job",
203 "method" : "POST",
204 "name" : "create",
205 "parameters" : {
206 "additionalProperties" : 0,
207 "properties" : {
208 "comment" : {
209 "description" : "Description.",
210 "maxLength" : 4096,
211 "optional" : 1,
212 "type" : "string",
213 "typetext" : "<string>"
214 },
215 "disable" : {
216 "description" : "Flag to disable/deactivate the entry.",
217 "optional" : 1,
218 "type" : "boolean",
219 "typetext" : "<boolean>"
220 },
221 "id" : {
222 "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
223 "format" : "pve-replication-job-id",
224 "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
225 "type" : "string"
226 },
227 "rate" : {
228 "description" : "Rate limit in mbps (megabytes per second) as floating point number.",
229 "minimum" : 1,
230 "optional" : 1,
231 "type" : "number",
232 "typetext" : "<number> (1 - N)"
233 },
234 "remove_job" : {
235 "description" : "Mark the replication job for removal. The job will remove all local replication snapshots. When set to 'full', it also tries to remove replicated volumes on the target. The job then removes itself from the configuration file.",
236 "enum" : [
237 "local",
238 "full"
239 ],
240 "optional" : 1,
241 "type" : "string"
242 },
243 "schedule" : {
244 "default" : "*/15",
c5aa7e14 245 "description" : "Storage replication schedule. The format is a subset of `systemd` calendar events.",
5d9c884c
DM
246 "format" : "pve-calendar-event",
247 "maxLength" : 128,
248 "optional" : 1,
249 "type" : "string",
250 "typetext" : "<string>"
251 },
a9a8e3d1 252 "source" : {
d2656385 253 "description" : "For internal use, to detect if the guest was stolen.",
a9a8e3d1
DM
254 "format" : "pve-node",
255 "optional" : 1,
256 "type" : "string",
257 "typetext" : "<string>"
258 },
5d9c884c
DM
259 "target" : {
260 "description" : "Target node.",
261 "format" : "pve-node",
262 "optional" : 0,
263 "type" : "string",
264 "typetext" : "<string>"
265 },
266 "type" : {
267 "description" : "Section type.",
268 "enum" : [
269 "local"
270 ],
82551b2b
TL
271 "type" : "string"
272 }
273 },
274 "type" : "object"
275 },
276 "permissions" : {
277 "check" : [
278 "perm",
279 "/storage",
280 [
281 "Datastore.Allocate"
282 ]
283 ]
284 },
285 "protected" : 1,
286 "returns" : {
287 "type" : "null"
288 }
289 }
290 },
291 "leaf" : 0,
292 "path" : "/cluster/replication",
293 "text" : "replication"
294 },
295 {
296 "children" : [
297 {
298 "children" : [
299 {
300 "info" : {
301 "DELETE" : {
302 "allowtoken" : 1,
303 "description" : "Remove Metric server.",
304 "method" : "DELETE",
305 "name" : "delete",
306 "parameters" : {
307 "additionalProperties" : 0,
308 "properties" : {
309 "id" : {
310 "format" : "pve-configid",
311 "type" : "string",
312 "typetext" : "<string>"
313 }
314 }
315 },
316 "permissions" : {
317 "check" : [
318 "perm",
319 "/",
320 [
321 "Sys.Modify"
322 ]
323 ]
324 },
325 "protected" : 1,
326 "returns" : {
327 "type" : "null"
328 }
329 },
330 "GET" : {
331 "allowtoken" : 1,
332 "description" : "Read metric server configuration.",
333 "method" : "GET",
334 "name" : "read",
335 "parameters" : {
336 "additionalProperties" : 0,
337 "properties" : {
338 "id" : {
339 "format" : "pve-configid",
340 "type" : "string",
341 "typetext" : "<string>"
342 }
343 }
344 },
345 "permissions" : {
346 "check" : [
347 "perm",
348 "/",
349 [
350 "Sys.Audit"
351 ]
352 ]
353 },
354 "returns" : {
355 "type" : "object"
356 }
357 },
358 "POST" : {
359 "allowtoken" : 1,
360 "description" : "Create a new external metric server config",
361 "method" : "POST",
362 "name" : "create",
363 "parameters" : {
364 "additionalProperties" : 0,
365 "properties" : {
366 "api-path-prefix" : {
367 "description" : "An API path prefix inserted between '<host>:<port>/' and '/api2/'. Can be useful if the InfluxDB service runs behind a reverse proxy.",
368 "optional" : 1,
369 "type" : "string",
370 "typetext" : "<string>"
371 },
372 "bucket" : {
373 "description" : "The InfluxDB bucket/db. Only necessary when using the http v2 api.",
374 "optional" : 1,
375 "type" : "string",
376 "typetext" : "<string>"
377 },
378 "disable" : {
379 "description" : "Flag to disable the plugin.",
380 "optional" : 1,
381 "type" : "boolean",
382 "typetext" : "<boolean>"
383 },
384 "id" : {
385 "description" : "The ID of the entry.",
386 "format" : "pve-configid",
387 "type" : "string",
388 "typetext" : "<string>"
389 },
390 "influxdbproto" : {
391 "default" : "udp",
392 "enum" : [
393 "udp",
394 "http",
395 "https"
396 ],
397 "optional" : 1,
398 "type" : "string"
399 },
400 "max-body-size" : {
401 "default" : 25000000,
402 "description" : "InfluxDB max-body-size in bytes. Requests are batched up to this size.",
403 "minimum" : 1,
404 "optional" : 1,
405 "type" : "integer",
406 "typetext" : "<integer> (1 - N)"
407 },
408 "mtu" : {
409 "default" : 1500,
410 "description" : "MTU for metrics transmission over UDP",
411 "maximum" : 65536,
412 "minimum" : 512,
413 "optional" : 1,
414 "type" : "integer",
415 "typetext" : "<integer> (512 - 65536)"
416 },
417 "organization" : {
418 "description" : "The InfluxDB organization. Only necessary when using the http v2 api. Has no meaning when using v2 compatibility api.",
419 "optional" : 1,
420 "type" : "string",
421 "typetext" : "<string>"
422 },
423 "path" : {
424 "description" : "root graphite path (ex: proxmox.mycluster.mykey)",
425 "format" : "graphite-path",
426 "optional" : 1,
427 "type" : "string",
428 "typetext" : "<string>"
429 },
430 "port" : {
431 "description" : "server network port",
432 "maximum" : 65536,
433 "minimum" : 1,
434 "type" : "integer",
435 "typetext" : "<integer> (1 - 65536)"
436 },
437 "proto" : {
438 "description" : "Protocol to send graphite data. TCP or UDP (default)",
439 "enum" : [
440 "udp",
441 "tcp"
442 ],
443 "optional" : 1,
444 "type" : "string"
445 },
446 "server" : {
447 "description" : "server dns name or IP address",
448 "format" : "address",
449 "type" : "string",
450 "typetext" : "<string>"
451 },
452 "timeout" : {
453 "default" : 1,
454 "description" : "graphite TCP socket timeout (default=1)",
455 "minimum" : 0,
456 "optional" : 1,
457 "type" : "integer",
458 "typetext" : "<integer> (0 - N)"
459 },
460 "token" : {
461 "description" : "The InfluxDB access token. Only necessary when using the http v2 api. If the v2 compatibility api is used, use 'user:password' instead.",
462 "optional" : 1,
463 "type" : "string",
464 "typetext" : "<string>"
465 },
466 "type" : {
467 "description" : "Plugin type.",
468 "enum" : [
469 "graphite",
470 "influxdb"
471 ],
472 "format" : "pve-configid",
473 "type" : "string"
474 },
475 "verify-certificate" : {
476 "default" : 1,
477 "description" : "Set to 0 to disable certificate verification for https endpoints.",
478 "optional" : 1,
479 "type" : "boolean",
480 "typetext" : "<boolean>"
481 }
482 },
483 "type" : "object"
484 },
485 "permissions" : {
486 "check" : [
487 "perm",
488 "/",
489 [
490 "Sys.Modify"
491 ]
492 ]
493 },
494 "protected" : 1,
495 "returns" : {
496 "type" : "null"
497 }
498 },
499 "PUT" : {
500 "allowtoken" : 1,
501 "description" : "Update metric server configuration.",
502 "method" : "PUT",
503 "name" : "update",
504 "parameters" : {
505 "additionalProperties" : 0,
506 "properties" : {
507 "api-path-prefix" : {
508 "description" : "An API path prefix inserted between '<host>:<port>/' and '/api2/'. Can be useful if the InfluxDB service runs behind a reverse proxy.",
509 "optional" : 1,
510 "type" : "string",
511 "typetext" : "<string>"
512 },
513 "bucket" : {
514 "description" : "The InfluxDB bucket/db. Only necessary when using the http v2 api.",
515 "optional" : 1,
516 "type" : "string",
517 "typetext" : "<string>"
518 },
519 "delete" : {
520 "description" : "A list of settings you want to delete.",
521 "format" : "pve-configid-list",
522 "maxLength" : 4096,
523 "optional" : 1,
524 "type" : "string",
525 "typetext" : "<string>"
526 },
527 "digest" : {
528 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
529 "maxLength" : 64,
530 "optional" : 1,
531 "type" : "string",
532 "typetext" : "<string>"
533 },
534 "disable" : {
535 "description" : "Flag to disable the plugin.",
536 "optional" : 1,
537 "type" : "boolean",
538 "typetext" : "<boolean>"
539 },
540 "id" : {
541 "description" : "The ID of the entry.",
542 "format" : "pve-configid",
543 "type" : "string",
544 "typetext" : "<string>"
545 },
546 "influxdbproto" : {
547 "default" : "udp",
548 "enum" : [
549 "udp",
550 "http",
551 "https"
552 ],
553 "optional" : 1,
554 "type" : "string"
555 },
556 "max-body-size" : {
557 "default" : 25000000,
558 "description" : "InfluxDB max-body-size in bytes. Requests are batched up to this size.",
559 "minimum" : 1,
560 "optional" : 1,
561 "type" : "integer",
562 "typetext" : "<integer> (1 - N)"
563 },
564 "mtu" : {
565 "default" : 1500,
566 "description" : "MTU for metrics transmission over UDP",
567 "maximum" : 65536,
568 "minimum" : 512,
569 "optional" : 1,
570 "type" : "integer",
571 "typetext" : "<integer> (512 - 65536)"
572 },
573 "organization" : {
574 "description" : "The InfluxDB organization. Only necessary when using the http v2 api. Has no meaning when using v2 compatibility api.",
575 "optional" : 1,
576 "type" : "string",
577 "typetext" : "<string>"
578 },
579 "path" : {
580 "description" : "root graphite path (ex: proxmox.mycluster.mykey)",
581 "format" : "graphite-path",
582 "optional" : 1,
583 "type" : "string",
584 "typetext" : "<string>"
585 },
586 "port" : {
587 "description" : "server network port",
588 "maximum" : 65536,
589 "minimum" : 1,
590 "type" : "integer",
591 "typetext" : "<integer> (1 - 65536)"
592 },
593 "proto" : {
594 "description" : "Protocol to send graphite data. TCP or UDP (default)",
595 "enum" : [
596 "udp",
597 "tcp"
598 ],
599 "optional" : 1,
600 "type" : "string"
601 },
602 "server" : {
603 "description" : "server dns name or IP address",
604 "format" : "address",
605 "type" : "string",
606 "typetext" : "<string>"
607 },
608 "timeout" : {
609 "default" : 1,
610 "description" : "graphite TCP socket timeout (default=1)",
611 "minimum" : 0,
612 "optional" : 1,
613 "type" : "integer",
614 "typetext" : "<integer> (0 - N)"
615 },
616 "token" : {
617 "description" : "The InfluxDB access token. Only necessary when using the http v2 api. If the v2 compatibility api is used, use 'user:password' instead.",
618 "optional" : 1,
619 "type" : "string",
620 "typetext" : "<string>"
621 },
622 "verify-certificate" : {
623 "default" : 1,
624 "description" : "Set to 0 to disable certificate verification for https endpoints.",
625 "optional" : 1,
626 "type" : "boolean",
627 "typetext" : "<boolean>"
628 }
629 },
630 "type" : "object"
631 },
632 "permissions" : {
633 "check" : [
634 "perm",
635 "/",
636 [
637 "Sys.Modify"
638 ]
639 ]
640 },
641 "protected" : 1,
642 "returns" : {
643 "type" : "null"
644 }
645 }
646 },
647 "leaf" : 1,
648 "path" : "/cluster/metrics/server/{id}",
649 "text" : "{id}"
650 }
651 ],
652 "info" : {
653 "GET" : {
654 "allowtoken" : 1,
655 "description" : "List configured metric servers.",
656 "method" : "GET",
657 "name" : "server_index",
658 "parameters" : {
659 "additionalProperties" : 0
660 },
661 "permissions" : {
662 "check" : [
663 "perm",
664 "/",
665 [
666 "Sys.Audit"
667 ]
668 ]
669 },
670 "returns" : {
671 "items" : {
672 "properties" : {
673 "disable" : {
674 "description" : "Flag to disable the plugin.",
675 "type" : "boolean"
676 },
677 "id" : {
678 "description" : "The ID of the entry.",
679 "type" : "string"
680 },
681 "port" : {
682 "description" : "Server network port",
683 "type" : "integer"
684 },
685 "server" : {
686 "description" : "Server dns name or IP address",
687 "type" : "string"
688 },
689 "type" : {
690 "description" : "Plugin type.",
691 "type" : "string"
692 }
693 },
694 "type" : "object"
695 },
696 "links" : [
697 {
698 "href" : "{id}",
699 "rel" : "child"
700 }
701 ],
702 "type" : "array"
703 }
704 }
705 },
706 "leaf" : 0,
707 "path" : "/cluster/metrics/server",
708 "text" : "server"
709 }
710 ],
711 "info" : {
712 "GET" : {
713 "allowtoken" : 1,
714 "description" : "Metrics index.",
715 "method" : "GET",
716 "name" : "index",
717 "parameters" : {
718 "additionalProperties" : 0
719 },
720 "permissions" : {
721 "user" : "all"
722 },
723 "returns" : {
724 "items" : {
725 "properties" : {},
726 "type" : "object"
727 },
728 "links" : [
729 {
730 "href" : "{name}",
731 "rel" : "child"
732 }
733 ],
734 "type" : "array"
735 }
736 }
737 },
738 "leaf" : 0,
739 "path" : "/cluster/metrics",
740 "text" : "metrics"
741 },
742 {
743 "children" : [
744 {
745 "children" : [
746 {
747 "children" : [
748 {
749 "info" : {
750 "DELETE" : {
751 "allowtoken" : 1,
752 "description" : "Remove sendmail endpoint",
753 "method" : "DELETE",
754 "name" : "delete_sendmail_endpoint",
755 "parameters" : {
756 "additionalProperties" : 0,
757 "properties" : {
758 "name" : {
759 "format" : "pve-configid",
760 "type" : "string",
761 "typetext" : "<string>"
762 }
763 }
764 },
765 "permissions" : {
766 "check" : [
767 "perm",
fa22697b 768 "/mapping/notifications",
82551b2b
TL
769 [
770 "Mapping.Modify"
771 ]
772 ]
773 },
774 "protected" : 1,
775 "returns" : {
776 "type" : "null"
777 }
778 },
779 "GET" : {
780 "allowtoken" : 1,
781 "description" : "Return a specific sendmail endpoint",
782 "method" : "GET",
783 "name" : "get_sendmail_endpoint",
784 "parameters" : {
785 "additionalProperties" : 0,
786 "properties" : {
787 "name" : {
788 "format" : "pve-configid",
789 "type" : "string",
790 "typetext" : "<string>"
791 }
792 }
793 },
794 "permissions" : {
795 "check" : [
796 "or",
797 [
798 "perm",
fa22697b 799 "/mapping/notifications",
82551b2b
TL
800 [
801 "Mapping.Modify"
802 ]
803 ],
804 [
805 "perm",
fa22697b 806 "/mapping/notifications",
82551b2b
TL
807 [
808 "Mapping.Audit"
809 ]
810 ]
811 ]
812 },
813 "protected" : 1,
814 "returns" : {
815 "properties" : {
816 "author" : {
817 "description" : "Author of the mail",
818 "optional" : 1,
819 "type" : "string"
820 },
821 "comment" : {
822 "description" : "Comment",
823 "optional" : 1,
824 "type" : "string"
825 },
826 "digest" : {
827 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
828 "maxLength" : 64,
829 "optional" : 1,
830 "type" : "string"
831 },
fa22697b
TL
832 "disable" : {
833 "default" : 0,
834 "description" : "Disable this target",
82551b2b 835 "optional" : 1,
fa22697b 836 "type" : "boolean"
82551b2b
TL
837 },
838 "from-address" : {
839 "description" : "`From` address for the mail",
840 "optional" : 1,
841 "type" : "string"
842 },
843 "mailto" : {
844 "description" : "List of email recipients",
845 "items" : {
846 "format" : "email-or-username",
847 "type" : "string"
848 },
849 "optional" : 1,
850 "type" : "array"
851 },
852 "mailto-user" : {
853 "description" : "List of users",
854 "items" : {
855 "format" : "pve-userid",
856 "type" : "string"
857 },
858 "optional" : 1,
859 "type" : "array"
860 },
861 "name" : {
862 "description" : "The name of the endpoint.",
863 "format" : "pve-configid",
864 "type" : "string"
865 }
866 },
867 "type" : "object"
868 }
869 },
870 "PUT" : {
871 "allowtoken" : 1,
872 "description" : "Update existing sendmail endpoint",
873 "method" : "PUT",
874 "name" : "update_sendmail_endpoint",
875 "parameters" : {
876 "additionalProperties" : 0,
877 "properties" : {
878 "author" : {
879 "description" : "Author of the mail",
880 "optional" : 1,
881 "type" : "string",
882 "typetext" : "<string>"
883 },
884 "comment" : {
885 "description" : "Comment",
886 "optional" : 1,
887 "type" : "string",
888 "typetext" : "<string>"
889 },
890 "delete" : {
891 "description" : "A list of settings you want to delete.",
892 "items" : {
893 "format" : "pve-configid",
894 "type" : "string"
895 },
896 "optional" : 1,
897 "type" : "array",
898 "typetext" : "<array>"
899 },
900 "digest" : {
901 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
902 "maxLength" : 64,
903 "optional" : 1,
904 "type" : "string",
905 "typetext" : "<string>"
906 },
fa22697b
TL
907 "disable" : {
908 "default" : 0,
909 "description" : "Disable this target",
82551b2b 910 "optional" : 1,
fa22697b
TL
911 "type" : "boolean",
912 "typetext" : "<boolean>"
82551b2b
TL
913 },
914 "from-address" : {
915 "description" : "`From` address for the mail",
916 "optional" : 1,
917 "type" : "string",
918 "typetext" : "<string>"
919 },
920 "mailto" : {
921 "description" : "List of email recipients",
922 "items" : {
923 "format" : "email-or-username",
924 "type" : "string"
925 },
926 "optional" : 1,
927 "type" : "array",
928 "typetext" : "<array>"
929 },
930 "mailto-user" : {
931 "description" : "List of users",
932 "items" : {
933 "format" : "pve-userid",
934 "type" : "string"
935 },
936 "optional" : 1,
937 "type" : "array",
938 "typetext" : "<array>"
939 },
940 "name" : {
941 "description" : "The name of the endpoint.",
942 "format" : "pve-configid",
943 "type" : "string",
944 "typetext" : "<string>"
945 }
946 }
947 },
948 "permissions" : {
949 "check" : [
950 "perm",
fa22697b 951 "/mapping/notifications",
82551b2b
TL
952 [
953 "Mapping.Modify"
954 ]
955 ]
956 },
957 "protected" : 1,
958 "returns" : {
959 "type" : "null"
960 }
961 }
962 },
963 "leaf" : 1,
964 "path" : "/cluster/notifications/endpoints/sendmail/{name}",
965 "text" : "{name}"
966 }
967 ],
968 "info" : {
969 "GET" : {
970 "allowtoken" : 1,
971 "description" : "Returns a list of all sendmail endpoints",
972 "method" : "GET",
973 "name" : "get_sendmail_endpoints",
974 "parameters" : {
975 "additionalProperties" : 0
976 },
977 "permissions" : {
fa22697b
TL
978 "check" : [
979 "or",
980 [
981 "perm",
982 "/mapping/notifications",
983 [
984 "Mapping.Modify"
985 ]
986 ],
987 [
988 "perm",
989 "/mapping/notifications",
990 [
991 "Mapping.Audit"
992 ]
993 ]
994 ]
82551b2b
TL
995 },
996 "protected" : 1,
997 "returns" : {
998 "items" : {
999 "properties" : {
1000 "author" : {
1001 "description" : "Author of the mail",
1002 "optional" : 1,
1003 "type" : "string"
1004 },
1005 "comment" : {
1006 "description" : "Comment",
1007 "optional" : 1,
1008 "type" : "string"
1009 },
fa22697b
TL
1010 "disable" : {
1011 "default" : 0,
1012 "description" : "Disable this target",
82551b2b 1013 "optional" : 1,
fa22697b 1014 "type" : "boolean"
82551b2b
TL
1015 },
1016 "from-address" : {
1017 "description" : "`From` address for the mail",
1018 "optional" : 1,
1019 "type" : "string"
1020 },
1021 "mailto" : {
1022 "description" : "List of email recipients",
1023 "items" : {
1024 "format" : "email-or-username",
1025 "type" : "string"
1026 },
1027 "optional" : 1,
1028 "type" : "array"
1029 },
1030 "mailto-user" : {
1031 "description" : "List of users",
1032 "items" : {
1033 "format" : "pve-userid",
1034 "type" : "string"
1035 },
1036 "optional" : 1,
1037 "type" : "array"
1038 },
1039 "name" : {
1040 "description" : "The name of the endpoint.",
1041 "format" : "pve-configid",
1042 "type" : "string"
fa22697b
TL
1043 },
1044 "origin" : {
1045 "description" : "Show if this entry was created by a user or was built-in",
1046 "enum" : [
1047 "user-created",
1048 "builtin",
1049 "modified-builtin"
1050 ],
1051 "type" : "string"
82551b2b
TL
1052 }
1053 },
1054 "type" : "object"
1055 },
1056 "links" : [
1057 {
1058 "href" : "{name}",
1059 "rel" : "child"
1060 }
1061 ],
1062 "type" : "array"
1063 }
1064 },
1065 "POST" : {
1066 "allowtoken" : 1,
1067 "description" : "Create a new sendmail endpoint",
1068 "method" : "POST",
1069 "name" : "create_sendmail_endpoint",
1070 "parameters" : {
1071 "additionalProperties" : 0,
1072 "properties" : {
1073 "author" : {
1074 "description" : "Author of the mail",
1075 "optional" : 1,
1076 "type" : "string",
1077 "typetext" : "<string>"
1078 },
1079 "comment" : {
1080 "description" : "Comment",
1081 "optional" : 1,
1082 "type" : "string",
1083 "typetext" : "<string>"
1084 },
fa22697b
TL
1085 "disable" : {
1086 "default" : 0,
1087 "description" : "Disable this target",
82551b2b 1088 "optional" : 1,
fa22697b
TL
1089 "type" : "boolean",
1090 "typetext" : "<boolean>"
82551b2b
TL
1091 },
1092 "from-address" : {
1093 "description" : "`From` address for the mail",
1094 "optional" : 1,
1095 "type" : "string",
1096 "typetext" : "<string>"
1097 },
1098 "mailto" : {
1099 "description" : "List of email recipients",
1100 "items" : {
1101 "format" : "email-or-username",
1102 "type" : "string"
1103 },
1104 "optional" : 1,
1105 "type" : "array",
1106 "typetext" : "<array>"
1107 },
1108 "mailto-user" : {
1109 "description" : "List of users",
1110 "items" : {
1111 "format" : "pve-userid",
1112 "type" : "string"
1113 },
1114 "optional" : 1,
1115 "type" : "array",
1116 "typetext" : "<array>"
1117 },
1118 "name" : {
1119 "description" : "The name of the endpoint.",
1120 "format" : "pve-configid",
1121 "type" : "string",
1122 "typetext" : "<string>"
1123 }
1124 }
1125 },
1126 "permissions" : {
1127 "check" : [
1128 "perm",
fa22697b 1129 "/mapping/notifications",
82551b2b
TL
1130 [
1131 "Mapping.Modify"
1132 ]
1133 ]
1134 },
1135 "protected" : 1,
1136 "returns" : {
1137 "type" : "null"
1138 }
1139 }
1140 },
1141 "leaf" : 0,
1142 "path" : "/cluster/notifications/endpoints/sendmail",
1143 "text" : "sendmail"
1144 },
1145 {
1146 "children" : [
1147 {
1148 "info" : {
1149 "DELETE" : {
1150 "allowtoken" : 1,
1151 "description" : "Remove gotify endpoint",
1152 "method" : "DELETE",
1153 "name" : "delete_gotify_endpoint",
1154 "parameters" : {
1155 "additionalProperties" : 0,
1156 "properties" : {
1157 "name" : {
1158 "format" : "pve-configid",
1159 "type" : "string",
1160 "typetext" : "<string>"
1161 }
1162 }
1163 },
1164 "permissions" : {
1165 "check" : [
1166 "perm",
fa22697b 1167 "/mapping/notifications",
82551b2b
TL
1168 [
1169 "Mapping.Modify"
1170 ]
1171 ]
1172 },
1173 "protected" : 1,
1174 "returns" : {
1175 "type" : "null"
1176 }
1177 },
1178 "GET" : {
1179 "allowtoken" : 1,
1180 "description" : "Return a specific gotify endpoint",
1181 "method" : "GET",
1182 "name" : "get_gotify_endpoint",
1183 "parameters" : {
1184 "additionalProperties" : 0,
1185 "properties" : {
1186 "name" : {
1187 "description" : "Name of the endpoint.",
1188 "format" : "pve-configid",
1189 "type" : "string",
1190 "typetext" : "<string>"
1191 }
1192 }
1193 },
1194 "permissions" : {
1195 "check" : [
1196 "or",
1197 [
1198 "perm",
fa22697b 1199 "/mapping/notifications",
82551b2b
TL
1200 [
1201 "Mapping.Modify"
1202 ]
1203 ],
1204 [
1205 "perm",
fa22697b 1206 "/mapping/notifications",
82551b2b
TL
1207 [
1208 "Mapping.Audit"
1209 ]
1210 ]
1211 ]
1212 },
1213 "protected" : 1,
1214 "returns" : {
1215 "properties" : {
1216 "comment" : {
1217 "description" : "Comment",
1218 "optional" : 1,
1219 "type" : "string"
1220 },
1221 "digest" : {
1222 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
1223 "maxLength" : 64,
1224 "optional" : 1,
1225 "type" : "string"
1226 },
fa22697b
TL
1227 "disable" : {
1228 "default" : 0,
1229 "description" : "Disable this target",
82551b2b 1230 "optional" : 1,
fa22697b 1231 "type" : "boolean"
82551b2b
TL
1232 },
1233 "name" : {
1234 "description" : "The name of the endpoint.",
1235 "format" : "pve-configid",
1236 "type" : "string"
1237 },
1238 "server" : {
1239 "description" : "Server URL",
1240 "type" : "string"
1241 }
1242 },
1243 "type" : "object"
1244 }
1245 },
1246 "PUT" : {
1247 "allowtoken" : 1,
1248 "description" : "Update existing gotify endpoint",
1249 "method" : "PUT",
1250 "name" : "update_gotify_endpoint",
1251 "parameters" : {
1252 "additionalProperties" : 0,
1253 "properties" : {
1254 "comment" : {
1255 "description" : "Comment",
1256 "optional" : 1,
1257 "type" : "string",
1258 "typetext" : "<string>"
1259 },
1260 "delete" : {
1261 "description" : "A list of settings you want to delete.",
1262 "items" : {
1263 "format" : "pve-configid",
1264 "type" : "string"
1265 },
1266 "optional" : 1,
1267 "type" : "array",
1268 "typetext" : "<array>"
1269 },
1270 "digest" : {
1271 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
1272 "maxLength" : 64,
1273 "optional" : 1,
1274 "type" : "string",
1275 "typetext" : "<string>"
1276 },
fa22697b
TL
1277 "disable" : {
1278 "default" : 0,
1279 "description" : "Disable this target",
82551b2b 1280 "optional" : 1,
fa22697b
TL
1281 "type" : "boolean",
1282 "typetext" : "<boolean>"
82551b2b
TL
1283 },
1284 "name" : {
1285 "description" : "The name of the endpoint.",
1286 "format" : "pve-configid",
1287 "type" : "string",
1288 "typetext" : "<string>"
1289 },
1290 "server" : {
1291 "description" : "Server URL",
1292 "optional" : 1,
1293 "type" : "string",
1294 "typetext" : "<string>"
1295 },
1296 "token" : {
1297 "description" : "Secret token",
1298 "optional" : 1,
1299 "type" : "string",
1300 "typetext" : "<string>"
1301 }
1302 }
1303 },
1304 "permissions" : {
1305 "check" : [
1306 "perm",
fa22697b 1307 "/mapping/notifications",
82551b2b
TL
1308 [
1309 "Mapping.Modify"
1310 ]
1311 ]
1312 },
1313 "protected" : 1,
1314 "returns" : {
1315 "type" : "null"
1316 }
1317 }
1318 },
1319 "leaf" : 1,
1320 "path" : "/cluster/notifications/endpoints/gotify/{name}",
1321 "text" : "{name}"
1322 }
1323 ],
1324 "info" : {
1325 "GET" : {
1326 "allowtoken" : 1,
1327 "description" : "Returns a list of all gotify endpoints",
1328 "method" : "GET",
1329 "name" : "get_gotify_endpoints",
1330 "parameters" : {
1331 "additionalProperties" : 0
1332 },
1333 "permissions" : {
fa22697b
TL
1334 "check" : [
1335 "perm",
1336 "/mapping/notifications",
1337 [
1338 "Mapping.Audit"
1339 ]
1340 ]
82551b2b
TL
1341 },
1342 "protected" : 1,
1343 "returns" : {
1344 "items" : {
1345 "properties" : {
1346 "comment" : {
1347 "description" : "Comment",
1348 "optional" : 1,
1349 "type" : "string"
1350 },
fa22697b
TL
1351 "disable" : {
1352 "default" : 0,
1353 "description" : "Disable this target",
82551b2b 1354 "optional" : 1,
fa22697b 1355 "type" : "boolean"
82551b2b
TL
1356 },
1357 "name" : {
1358 "description" : "The name of the endpoint.",
1359 "format" : "pve-configid",
1360 "type" : "string"
1361 },
fa22697b
TL
1362 "origin" : {
1363 "description" : "Show if this entry was created by a user or was built-in",
1364 "enum" : [
1365 "user-created",
1366 "builtin",
1367 "modified-builtin"
1368 ],
1369 "type" : "string"
1370 },
82551b2b
TL
1371 "server" : {
1372 "description" : "Server URL",
1373 "type" : "string"
1374 }
1375 },
1376 "type" : "object"
1377 },
1378 "links" : [
1379 {
1380 "href" : "{name}",
1381 "rel" : "child"
1382 }
1383 ],
1384 "type" : "array"
1385 }
1386 },
1387 "POST" : {
1388 "allowtoken" : 1,
1389 "description" : "Create a new gotify endpoint",
1390 "method" : "POST",
1391 "name" : "create_gotify_endpoint",
1392 "parameters" : {
1393 "additionalProperties" : 0,
1394 "properties" : {
1395 "comment" : {
1396 "description" : "Comment",
1397 "optional" : 1,
1398 "type" : "string",
1399 "typetext" : "<string>"
1400 },
fa22697b
TL
1401 "disable" : {
1402 "default" : 0,
1403 "description" : "Disable this target",
82551b2b 1404 "optional" : 1,
fa22697b
TL
1405 "type" : "boolean",
1406 "typetext" : "<boolean>"
82551b2b
TL
1407 },
1408 "name" : {
1409 "description" : "The name of the endpoint.",
1410 "format" : "pve-configid",
1411 "type" : "string",
1412 "typetext" : "<string>"
1413 },
1414 "server" : {
1415 "description" : "Server URL",
1416 "type" : "string",
1417 "typetext" : "<string>"
1418 },
1419 "token" : {
1420 "description" : "Secret token",
1421 "type" : "string",
1422 "typetext" : "<string>"
1423 }
1424 }
1425 },
1426 "permissions" : {
1427 "check" : [
1428 "perm",
fa22697b 1429 "/mapping/notifications",
82551b2b
TL
1430 [
1431 "Mapping.Modify"
1432 ]
1433 ]
1434 },
1435 "protected" : 1,
1436 "returns" : {
1437 "type" : "null"
1438 }
1439 }
1440 },
1441 "leaf" : 0,
1442 "path" : "/cluster/notifications/endpoints/gotify",
1443 "text" : "gotify"
fa22697b
TL
1444 },
1445 {
1446 "children" : [
1447 {
1448 "info" : {
1449 "DELETE" : {
1450 "allowtoken" : 1,
1451 "description" : "Remove smtp endpoint",
1452 "method" : "DELETE",
1453 "name" : "delete_smtp_endpoint",
1454 "parameters" : {
1455 "additionalProperties" : 0,
1456 "properties" : {
1457 "name" : {
1458 "format" : "pve-configid",
1459 "type" : "string",
1460 "typetext" : "<string>"
1461 }
1462 }
1463 },
1464 "permissions" : {
1465 "check" : [
1466 "perm",
1467 "/mapping/notifications",
1468 [
1469 "Mapping.Modify"
1470 ]
1471 ]
1472 },
1473 "protected" : 1,
1474 "returns" : {
1475 "type" : "null"
1476 }
1477 },
1478 "GET" : {
1479 "allowtoken" : 1,
1480 "description" : "Return a specific smtp endpoint",
1481 "method" : "GET",
1482 "name" : "get_smtp_endpoint",
1483 "parameters" : {
1484 "additionalProperties" : 0,
1485 "properties" : {
1486 "name" : {
1487 "format" : "pve-configid",
1488 "type" : "string",
1489 "typetext" : "<string>"
1490 }
1491 }
1492 },
1493 "permissions" : {
1494 "check" : [
1495 "or",
1496 [
1497 "perm",
1498 "/mapping/notifications",
1499 [
1500 "Mapping.Modify"
1501 ]
1502 ],
1503 [
1504 "perm",
1505 "/mapping/notifications",
1506 [
1507 "Mapping.Audit"
1508 ]
1509 ]
1510 ]
1511 },
1512 "protected" : 1,
1513 "returns" : {
1514 "properties" : {
1515 "author" : {
1516 "description" : "Author of the mail. Defaults to 'Proxmox VE'.",
1517 "optional" : 1,
1518 "type" : "string"
1519 },
1520 "comment" : {
1521 "description" : "Comment",
1522 "optional" : 1,
1523 "type" : "string"
1524 },
1525 "digest" : {
1526 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
1527 "maxLength" : 64,
1528 "optional" : 1,
1529 "type" : "string"
1530 },
1531 "disable" : {
1532 "default" : 0,
1533 "description" : "Disable this target",
1534 "optional" : 1,
1535 "type" : "boolean"
1536 },
1537 "from-address" : {
1538 "description" : "`From` address for the mail",
1539 "type" : "string"
1540 },
1541 "mailto" : {
1542 "description" : "List of email recipients",
1543 "items" : {
1544 "format" : "email-or-username",
1545 "type" : "string"
1546 },
1547 "optional" : 1,
1548 "type" : "array"
1549 },
1550 "mailto-user" : {
1551 "description" : "List of users",
1552 "items" : {
1553 "format" : "pve-userid",
1554 "type" : "string"
1555 },
1556 "optional" : 1,
1557 "type" : "array"
1558 },
1559 "mode" : {
1560 "default" : "tls",
1561 "description" : "Determine which encryption method shall be used for the connection.",
1562 "enum" : [
1563 "insecure",
1564 "starttls",
1565 "tls"
1566 ],
1567 "optional" : 1,
1568 "type" : "string"
1569 },
1570 "name" : {
1571 "description" : "The name of the endpoint.",
1572 "format" : "pve-configid",
1573 "type" : "string"
1574 },
1575 "port" : {
1576 "description" : "The port to be used. Defaults to 465 for TLS based connections, 587 for STARTTLS based connections and port 25 for insecure plain-text connections.",
1577 "optional" : 1,
1578 "type" : "integer"
1579 },
1580 "server" : {
1581 "description" : "The address of the SMTP server.",
1582 "type" : "string"
1583 },
1584 "username" : {
1585 "description" : "Username for SMTP authentication",
1586 "optional" : 1,
1587 "type" : "string"
1588 }
1589 },
1590 "type" : "object"
1591 }
1592 },
1593 "PUT" : {
1594 "allowtoken" : 1,
1595 "description" : "Update existing smtp endpoint",
1596 "method" : "PUT",
1597 "name" : "update_smtp_endpoint",
1598 "parameters" : {
1599 "additionalProperties" : 0,
1600 "properties" : {
1601 "author" : {
1602 "description" : "Author of the mail. Defaults to 'Proxmox VE'.",
1603 "optional" : 1,
1604 "type" : "string",
1605 "typetext" : "<string>"
1606 },
1607 "comment" : {
1608 "description" : "Comment",
1609 "optional" : 1,
1610 "type" : "string",
1611 "typetext" : "<string>"
1612 },
1613 "delete" : {
1614 "description" : "A list of settings you want to delete.",
1615 "items" : {
1616 "format" : "pve-configid",
1617 "type" : "string"
1618 },
1619 "optional" : 1,
1620 "type" : "array",
1621 "typetext" : "<array>"
1622 },
1623 "digest" : {
1624 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
1625 "maxLength" : 64,
1626 "optional" : 1,
1627 "type" : "string",
1628 "typetext" : "<string>"
1629 },
1630 "disable" : {
1631 "default" : 0,
1632 "description" : "Disable this target",
1633 "optional" : 1,
1634 "type" : "boolean",
1635 "typetext" : "<boolean>"
1636 },
1637 "from-address" : {
1638 "description" : "`From` address for the mail",
1639 "optional" : 1,
1640 "type" : "string",
1641 "typetext" : "<string>"
1642 },
1643 "mailto" : {
1644 "description" : "List of email recipients",
1645 "items" : {
1646 "format" : "email-or-username",
1647 "type" : "string"
1648 },
1649 "optional" : 1,
1650 "type" : "array",
1651 "typetext" : "<array>"
1652 },
1653 "mailto-user" : {
1654 "description" : "List of users",
1655 "items" : {
1656 "format" : "pve-userid",
1657 "type" : "string"
1658 },
1659 "optional" : 1,
1660 "type" : "array",
1661 "typetext" : "<array>"
1662 },
1663 "mode" : {
1664 "default" : "tls",
1665 "description" : "Determine which encryption method shall be used for the connection.",
1666 "enum" : [
1667 "insecure",
1668 "starttls",
1669 "tls"
1670 ],
1671 "optional" : 1,
1672 "type" : "string"
1673 },
1674 "name" : {
1675 "description" : "The name of the endpoint.",
1676 "format" : "pve-configid",
1677 "type" : "string",
1678 "typetext" : "<string>"
1679 },
1680 "password" : {
1681 "description" : "Password for SMTP authentication",
1682 "optional" : 1,
1683 "type" : "string",
1684 "typetext" : "<string>"
1685 },
1686 "port" : {
1687 "description" : "The port to be used. Defaults to 465 for TLS based connections, 587 for STARTTLS based connections and port 25 for insecure plain-text connections.",
1688 "optional" : 1,
1689 "type" : "integer",
1690 "typetext" : "<integer>"
1691 },
1692 "server" : {
1693 "description" : "The address of the SMTP server.",
1694 "optional" : 1,
1695 "type" : "string",
1696 "typetext" : "<string>"
1697 },
1698 "username" : {
1699 "description" : "Username for SMTP authentication",
1700 "optional" : 1,
1701 "type" : "string",
1702 "typetext" : "<string>"
1703 }
1704 }
1705 },
1706 "permissions" : {
1707 "check" : [
1708 "or",
1709 [
1710 "perm",
1711 "/mapping/notifications",
1712 [
1713 "Mapping.Modify"
1714 ]
1715 ]
1716 ]
1717 },
1718 "protected" : 1,
1719 "returns" : {
1720 "type" : "null"
1721 }
1722 }
1723 },
1724 "leaf" : 1,
1725 "path" : "/cluster/notifications/endpoints/smtp/{name}",
1726 "text" : "{name}"
1727 }
1728 ],
1729 "info" : {
1730 "GET" : {
1731 "allowtoken" : 1,
1732 "description" : "Returns a list of all smtp endpoints",
1733 "method" : "GET",
1734 "name" : "get_smtp_endpoints",
1735 "parameters" : {
1736 "additionalProperties" : 0
1737 },
1738 "permissions" : {
1739 "check" : [
1740 "or",
1741 [
1742 "perm",
1743 "/mapping/notifications",
1744 [
1745 "Mapping.Modify"
1746 ]
1747 ],
1748 [
1749 "perm",
1750 "/mapping/notifications",
1751 [
1752 "Mapping.Audit"
1753 ]
1754 ]
1755 ]
1756 },
1757 "protected" : 1,
1758 "returns" : {
1759 "items" : {
1760 "properties" : {
1761 "author" : {
1762 "description" : "Author of the mail. Defaults to 'Proxmox VE'.",
1763 "optional" : 1,
1764 "type" : "string"
1765 },
1766 "comment" : {
1767 "description" : "Comment",
1768 "optional" : 1,
1769 "type" : "string"
1770 },
1771 "disable" : {
1772 "default" : 0,
1773 "description" : "Disable this target",
1774 "optional" : 1,
1775 "type" : "boolean"
1776 },
1777 "from-address" : {
1778 "description" : "`From` address for the mail",
1779 "type" : "string"
1780 },
1781 "mailto" : {
1782 "description" : "List of email recipients",
1783 "items" : {
1784 "format" : "email-or-username",
1785 "type" : "string"
1786 },
1787 "optional" : 1,
1788 "type" : "array"
1789 },
1790 "mailto-user" : {
1791 "description" : "List of users",
1792 "items" : {
1793 "format" : "pve-userid",
1794 "type" : "string"
1795 },
1796 "optional" : 1,
1797 "type" : "array"
1798 },
1799 "mode" : {
1800 "default" : "tls",
1801 "description" : "Determine which encryption method shall be used for the connection.",
1802 "enum" : [
1803 "insecure",
1804 "starttls",
1805 "tls"
1806 ],
1807 "optional" : 1,
1808 "type" : "string"
1809 },
1810 "name" : {
1811 "description" : "The name of the endpoint.",
1812 "format" : "pve-configid",
1813 "type" : "string"
1814 },
1815 "origin" : {
1816 "description" : "Show if this entry was created by a user or was built-in",
1817 "enum" : [
1818 "user-created",
1819 "builtin",
1820 "modified-builtin"
1821 ],
1822 "type" : "string"
1823 },
1824 "port" : {
1825 "description" : "The port to be used. Defaults to 465 for TLS based connections, 587 for STARTTLS based connections and port 25 for insecure plain-text connections.",
1826 "optional" : 1,
1827 "type" : "integer"
1828 },
1829 "server" : {
1830 "description" : "The address of the SMTP server.",
1831 "type" : "string"
1832 },
1833 "username" : {
1834 "description" : "Username for SMTP authentication",
1835 "optional" : 1,
1836 "type" : "string"
1837 }
1838 },
1839 "type" : "object"
1840 },
1841 "links" : [
1842 {
1843 "href" : "{name}",
1844 "rel" : "child"
1845 }
1846 ],
1847 "type" : "array"
1848 }
1849 },
1850 "POST" : {
1851 "allowtoken" : 1,
1852 "description" : "Create a new smtp endpoint",
1853 "method" : "POST",
1854 "name" : "create_smtp_endpoint",
1855 "parameters" : {
1856 "additionalProperties" : 0,
1857 "properties" : {
1858 "author" : {
1859 "description" : "Author of the mail. Defaults to 'Proxmox VE'.",
1860 "optional" : 1,
1861 "type" : "string",
1862 "typetext" : "<string>"
1863 },
1864 "comment" : {
1865 "description" : "Comment",
1866 "optional" : 1,
1867 "type" : "string",
1868 "typetext" : "<string>"
1869 },
1870 "disable" : {
1871 "default" : 0,
1872 "description" : "Disable this target",
1873 "optional" : 1,
1874 "type" : "boolean",
1875 "typetext" : "<boolean>"
1876 },
1877 "from-address" : {
1878 "description" : "`From` address for the mail",
1879 "type" : "string",
1880 "typetext" : "<string>"
1881 },
1882 "mailto" : {
1883 "description" : "List of email recipients",
1884 "items" : {
1885 "format" : "email-or-username",
1886 "type" : "string"
1887 },
1888 "optional" : 1,
1889 "type" : "array",
1890 "typetext" : "<array>"
1891 },
1892 "mailto-user" : {
1893 "description" : "List of users",
1894 "items" : {
1895 "format" : "pve-userid",
1896 "type" : "string"
1897 },
1898 "optional" : 1,
1899 "type" : "array",
1900 "typetext" : "<array>"
1901 },
1902 "mode" : {
1903 "default" : "tls",
1904 "description" : "Determine which encryption method shall be used for the connection.",
1905 "enum" : [
1906 "insecure",
1907 "starttls",
1908 "tls"
1909 ],
1910 "optional" : 1,
1911 "type" : "string"
1912 },
1913 "name" : {
1914 "description" : "The name of the endpoint.",
1915 "format" : "pve-configid",
1916 "type" : "string",
1917 "typetext" : "<string>"
1918 },
1919 "password" : {
1920 "description" : "Password for SMTP authentication",
1921 "optional" : 1,
1922 "type" : "string",
1923 "typetext" : "<string>"
1924 },
1925 "port" : {
1926 "description" : "The port to be used. Defaults to 465 for TLS based connections, 587 for STARTTLS based connections and port 25 for insecure plain-text connections.",
1927 "optional" : 1,
1928 "type" : "integer",
1929 "typetext" : "<integer>"
1930 },
1931 "server" : {
1932 "description" : "The address of the SMTP server.",
1933 "type" : "string",
1934 "typetext" : "<string>"
1935 },
1936 "username" : {
1937 "description" : "Username for SMTP authentication",
1938 "optional" : 1,
1939 "type" : "string",
1940 "typetext" : "<string>"
1941 }
1942 }
1943 },
1944 "permissions" : {
1945 "check" : [
1946 "or",
1947 [
1948 "perm",
1949 "/mapping/notifications",
1950 [
1951 "Mapping.Modify"
1952 ]
1953 ]
1954 ]
1955 },
1956 "protected" : 1,
1957 "returns" : {
1958 "type" : "null"
1959 }
1960 }
1961 },
1962 "leaf" : 0,
1963 "path" : "/cluster/notifications/endpoints/smtp",
1964 "text" : "smtp"
82551b2b
TL
1965 }
1966 ],
1967 "info" : {
1968 "GET" : {
1969 "allowtoken" : 1,
1970 "description" : "Index for all available endpoint types.",
1971 "method" : "GET",
1972 "name" : "endpoints_index",
1973 "parameters" : {
1974 "additionalProperties" : 0
1975 },
1976 "permissions" : {
1977 "user" : "all"
1978 },
1979 "returns" : {
1980 "items" : {
1981 "properties" : {},
1982 "type" : "object"
1983 },
1984 "links" : [
1985 {
1986 "href" : "{name}",
1987 "rel" : "child"
1988 }
1989 ],
1990 "type" : "array"
1991 }
1992 }
1993 },
1994 "leaf" : 0,
1995 "path" : "/cluster/notifications/endpoints",
1996 "text" : "endpoints"
1997 },
1998 {
1999 "children" : [
2000 {
2001 "children" : [
2002 {
2003 "info" : {
2004 "POST" : {
2005 "allowtoken" : 1,
2006 "description" : "Send a test notification to a provided target.",
2007 "method" : "POST",
2008 "name" : "test_target",
2009 "parameters" : {
2010 "additionalProperties" : 0,
2011 "properties" : {
2012 "name" : {
2013 "description" : "Name of the target.",
2014 "format" : "pve-configid",
2015 "type" : "string",
2016 "typetext" : "<string>"
2017 }
2018 }
2019 },
2020 "permissions" : {
fa22697b
TL
2021 "check" : [
2022 "or",
2023 [
2024 "perm",
2025 "/mapping/notifications",
2026 [
2027 "Mapping.Modify"
2028 ]
2029 ],
2030 [
2031 "perm",
2032 "/mapping/notifications",
2033 [
2034 "Mapping.Audit"
2035 ]
2036 ],
2037 [
2038 "perm",
2039 "/mapping/notifications",
2040 [
2041 "Mapping.Use"
2042 ]
2043 ]
2044 ]
82551b2b
TL
2045 },
2046 "protected" : 1,
2047 "returns" : {
2048 "type" : "null"
2049 }
2050 }
2051 },
2052 "leaf" : 1,
2053 "path" : "/cluster/notifications/targets/{name}/test",
2054 "text" : "test"
2055 }
2056 ],
2057 "leaf" : 0,
2058 "path" : "/cluster/notifications/targets/{name}",
2059 "text" : "{name}"
2060 }
2061 ],
2062 "info" : {
2063 "GET" : {
2064 "allowtoken" : 1,
fa22697b 2065 "description" : "Returns a list of all entities that can be used as notification targets.",
82551b2b
TL
2066 "method" : "GET",
2067 "name" : "get_all_targets",
2068 "parameters" : {
2069 "additionalProperties" : 0
2070 },
2071 "permissions" : {
fa22697b
TL
2072 "check" : [
2073 "or",
2074 [
2075 "perm",
2076 "/mapping/notifications",
2077 [
2078 "Mapping.Modify"
2079 ]
2080 ],
2081 [
2082 "perm",
2083 "/mapping/notifications",
2084 [
2085 "Mapping.Audit"
2086 ]
2087 ],
2088 [
2089 "perm",
2090 "/mapping/notifications",
2091 [
2092 "Mapping.Use"
2093 ]
2094 ]
2095 ]
82551b2b
TL
2096 },
2097 "protected" : 1,
2098 "returns" : {
2099 "items" : {
2100 "properties" : {
2101 "comment" : {
2102 "description" : "Comment",
2103 "optional" : 1,
2104 "type" : "string"
2105 },
fa22697b
TL
2106 "disable" : {
2107 "default" : 0,
2108 "description" : "Show if this target is disabled",
2109 "optional" : 1,
2110 "type" : "boolean"
2111 },
82551b2b 2112 "name" : {
fa22697b 2113 "description" : "Name of the target.",
82551b2b
TL
2114 "format" : "pve-configid",
2115 "type" : "string"
2116 },
fa22697b
TL
2117 "origin" : {
2118 "description" : "Show if this entry was created by a user or was built-in",
2119 "enum" : [
2120 "user-created",
2121 "builtin",
2122 "modified-builtin"
2123 ],
2124 "type" : "string"
2125 },
82551b2b 2126 "type" : {
fa22697b 2127 "description" : "Type of the target.",
82551b2b
TL
2128 "enum" : [
2129 "sendmail",
907e4bc3
TL
2130 "gotify",
2131 "smtp"
82551b2b
TL
2132 ],
2133 "type" : "string"
2134 }
2135 },
2136 "type" : "object"
2137 },
2138 "links" : [
2139 {
2140 "href" : "{name}",
2141 "rel" : "child"
2142 }
2143 ],
2144 "type" : "array"
2145 }
2146 }
2147 },
2148 "leaf" : 0,
2149 "path" : "/cluster/notifications/targets",
2150 "text" : "targets"
2151 },
2152 {
2153 "children" : [
2154 {
2155 "info" : {
2156 "DELETE" : {
2157 "allowtoken" : 1,
fa22697b 2158 "description" : "Remove matcher",
82551b2b 2159 "method" : "DELETE",
fa22697b 2160 "name" : "delete_matcher",
82551b2b
TL
2161 "parameters" : {
2162 "additionalProperties" : 0,
2163 "properties" : {
2164 "name" : {
2165 "format" : "pve-configid",
2166 "type" : "string",
2167 "typetext" : "<string>"
2168 }
2169 }
2170 },
2171 "permissions" : {
2172 "check" : [
2173 "perm",
fa22697b 2174 "/mapping/notifications",
82551b2b
TL
2175 [
2176 "Mapping.Modify"
2177 ]
2178 ]
2179 },
2180 "protected" : 1,
2181 "returns" : {
2182 "type" : "null"
2183 }
2184 },
2185 "GET" : {
2186 "allowtoken" : 1,
fa22697b 2187 "description" : "Return a specific matcher",
82551b2b 2188 "method" : "GET",
fa22697b 2189 "name" : "get_matcher",
82551b2b
TL
2190 "parameters" : {
2191 "additionalProperties" : 0,
2192 "properties" : {
2193 "name" : {
2194 "format" : "pve-configid",
2195 "type" : "string",
2196 "typetext" : "<string>"
2197 }
2198 }
2199 },
2200 "permissions" : {
2201 "check" : [
2202 "or",
2203 [
2204 "perm",
fa22697b 2205 "/mapping/notifications",
82551b2b
TL
2206 [
2207 "Mapping.Modify"
2208 ]
2209 ],
2210 [
2211 "perm",
fa22697b 2212 "/mapping/notifications",
82551b2b
TL
2213 [
2214 "Mapping.Audit"
2215 ]
2216 ]
2217 ]
2218 },
2219 "protected" : 1,
2220 "returns" : {
2221 "properties" : {
2222 "comment" : {
2223 "description" : "Comment",
2224 "optional" : 1,
2225 "type" : "string"
2226 },
2227 "digest" : {
2228 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
2229 "maxLength" : 64,
2230 "optional" : 1,
2231 "type" : "string"
2232 },
fa22697b
TL
2233 "disable" : {
2234 "default" : 0,
2235 "description" : "Disable this matcher",
2236 "optional" : 1,
2237 "type" : "boolean"
2238 },
2239 "invert-match" : {
2240 "description" : "Invert match of the whole matcher",
2241 "optional" : 1,
2242 "type" : "boolean"
2243 },
2244 "match-calendar" : {
2245 "description" : "Match notification timestamp",
82551b2b 2246 "items" : {
82551b2b
TL
2247 "type" : "string"
2248 },
fa22697b 2249 "optional" : 1,
82551b2b
TL
2250 "type" : "array"
2251 },
fa22697b
TL
2252 "match-field" : {
2253 "description" : "Metadata fields to match (regex or exact match). Must be in the form (regex|exact):<field>=<value>",
2254 "items" : {
2255 "type" : "string"
2256 },
2257 "optional" : 1,
2258 "type" : "array"
2259 },
2260 "match-severity" : {
2261 "description" : "Notification severities to match",
2262 "items" : {
2263 "type" : "string"
2264 },
2265 "optional" : 1,
2266 "type" : "array"
2267 },
2268 "mode" : {
2269 "default" : "all",
2270 "description" : "Choose between 'all' and 'any' for when multiple properties are specified",
2271 "enum" : [
2272 "all",
2273 "any"
2274 ],
82551b2b
TL
2275 "optional" : 1,
2276 "type" : "string"
2277 },
2278 "name" : {
fa22697b 2279 "description" : "Name of the matcher.",
82551b2b
TL
2280 "format" : "pve-configid",
2281 "type" : "string"
fa22697b
TL
2282 },
2283 "target" : {
2284 "description" : "Targets to notify on match",
2285 "items" : {
2286 "format" : "pve-configid",
2287 "type" : "string"
2288 },
2289 "optional" : 1,
2290 "type" : "array"
82551b2b
TL
2291 }
2292 },
2293 "type" : "object"
2294 }
2295 },
2296 "PUT" : {
2297 "allowtoken" : 1,
fa22697b 2298 "description" : "Update existing matcher",
82551b2b 2299 "method" : "PUT",
fa22697b 2300 "name" : "update_matcher",
82551b2b
TL
2301 "parameters" : {
2302 "additionalProperties" : 0,
2303 "properties" : {
2304 "comment" : {
2305 "description" : "Comment",
2306 "optional" : 1,
2307 "type" : "string",
2308 "typetext" : "<string>"
2309 },
2310 "delete" : {
2311 "description" : "A list of settings you want to delete.",
2312 "items" : {
2313 "format" : "pve-configid",
2314 "type" : "string"
2315 },
2316 "optional" : 1,
2317 "type" : "array",
2318 "typetext" : "<array>"
2319 },
2320 "digest" : {
2321 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
2322 "maxLength" : 64,
2323 "optional" : 1,
2324 "type" : "string",
2325 "typetext" : "<string>"
2326 },
fa22697b
TL
2327 "disable" : {
2328 "default" : 0,
2329 "description" : "Disable this matcher",
2330 "optional" : 1,
2331 "type" : "boolean",
2332 "typetext" : "<boolean>"
2333 },
2334 "invert-match" : {
2335 "description" : "Invert match of the whole matcher",
2336 "optional" : 1,
2337 "type" : "boolean",
2338 "typetext" : "<boolean>"
2339 },
2340 "match-calendar" : {
2341 "description" : "Match notification timestamp",
82551b2b 2342 "items" : {
82551b2b
TL
2343 "type" : "string"
2344 },
2345 "optional" : 1,
2346 "type" : "array",
2347 "typetext" : "<array>"
2348 },
fa22697b
TL
2349 "match-field" : {
2350 "description" : "Metadata fields to match (regex or exact match). Must be in the form (regex|exact):<field>=<value>",
2351 "items" : {
2352 "type" : "string"
2353 },
82551b2b 2354 "optional" : 1,
fa22697b
TL
2355 "type" : "array",
2356 "typetext" : "<array>"
2357 },
2358 "match-severity" : {
2359 "description" : "Notification severities to match",
2360 "items" : {
2361 "type" : "string"
2362 },
2363 "optional" : 1,
2364 "type" : "array",
2365 "typetext" : "<array>"
2366 },
2367 "mode" : {
2368 "default" : "all",
2369 "description" : "Choose between 'all' and 'any' for when multiple properties are specified",
2370 "enum" : [
2371 "all",
2372 "any"
2373 ],
2374 "optional" : 1,
2375 "type" : "string"
82551b2b
TL
2376 },
2377 "name" : {
fa22697b 2378 "description" : "Name of the matcher.",
82551b2b
TL
2379 "format" : "pve-configid",
2380 "type" : "string",
2381 "typetext" : "<string>"
fa22697b
TL
2382 },
2383 "target" : {
2384 "description" : "Targets to notify on match",
2385 "items" : {
2386 "format" : "pve-configid",
2387 "type" : "string"
2388 },
2389 "optional" : 1,
2390 "type" : "array",
2391 "typetext" : "<array>"
82551b2b
TL
2392 }
2393 }
2394 },
2395 "permissions" : {
2396 "check" : [
2397 "perm",
fa22697b 2398 "/mapping/notifications",
82551b2b
TL
2399 [
2400 "Mapping.Modify"
2401 ]
2402 ]
2403 },
2404 "protected" : 1,
2405 "returns" : {
2406 "type" : "null"
2407 }
2408 }
2409 },
2410 "leaf" : 1,
fa22697b 2411 "path" : "/cluster/notifications/matchers/{name}",
82551b2b
TL
2412 "text" : "{name}"
2413 }
2414 ],
2415 "info" : {
2416 "GET" : {
2417 "allowtoken" : 1,
fa22697b 2418 "description" : "Returns a list of all matchers",
82551b2b 2419 "method" : "GET",
fa22697b 2420 "name" : "get_matchers",
82551b2b
TL
2421 "parameters" : {
2422 "additionalProperties" : 0
2423 },
2424 "permissions" : {
fa22697b
TL
2425 "check" : [
2426 "or",
2427 [
2428 "perm",
2429 "/mapping/notifications",
2430 [
2431 "Mapping.Modify"
2432 ]
2433 ],
2434 [
2435 "perm",
2436 "/mapping/notifications",
2437 [
2438 "Mapping.Audit"
2439 ]
2440 ],
2441 [
2442 "perm",
2443 "/mapping/notifications",
2444 [
2445 "Mapping.Use"
2446 ]
2447 ]
2448 ]
82551b2b
TL
2449 },
2450 "protected" : 1,
2451 "returns" : {
2452 "items" : {
2453 "properties" : {
2454 "comment" : {
2455 "description" : "Comment",
2456 "optional" : 1,
2457 "type" : "string"
2458 },
fa22697b
TL
2459 "disable" : {
2460 "default" : 0,
2461 "description" : "Disable this matcher",
2462 "optional" : 1,
2463 "type" : "boolean"
2464 },
2465 "invert-match" : {
2466 "description" : "Invert match of the whole matcher",
2467 "optional" : 1,
2468 "type" : "boolean"
2469 },
2470 "match-calendar" : {
2471 "description" : "Match notification timestamp",
82551b2b 2472 "items" : {
82551b2b
TL
2473 "type" : "string"
2474 },
fa22697b 2475 "optional" : 1,
82551b2b
TL
2476 "type" : "array"
2477 },
fa22697b
TL
2478 "match-field" : {
2479 "description" : "Metadata fields to match (regex or exact match). Must be in the form (regex|exact):<field>=<value>",
2480 "items" : {
2481 "type" : "string"
2482 },
2483 "optional" : 1,
2484 "type" : "array"
2485 },
2486 "match-severity" : {
2487 "description" : "Notification severities to match",
2488 "items" : {
2489 "type" : "string"
2490 },
2491 "optional" : 1,
2492 "type" : "array"
2493 },
2494 "mode" : {
2495 "default" : "all",
2496 "description" : "Choose between 'all' and 'any' for when multiple properties are specified",
2497 "enum" : [
2498 "all",
2499 "any"
2500 ],
82551b2b
TL
2501 "optional" : 1,
2502 "type" : "string"
2503 },
2504 "name" : {
fa22697b 2505 "description" : "Name of the matcher.",
82551b2b
TL
2506 "format" : "pve-configid",
2507 "type" : "string"
fa22697b
TL
2508 },
2509 "origin" : {
2510 "description" : "Show if this entry was created by a user or was built-in",
2511 "enum" : [
2512 "user-created",
2513 "builtin",
2514 "modified-builtin"
2515 ],
2516 "type" : "string"
2517 },
2518 "target" : {
2519 "description" : "Targets to notify on match",
2520 "items" : {
2521 "format" : "pve-configid",
2522 "type" : "string"
2523 },
2524 "optional" : 1,
2525 "type" : "array"
82551b2b
TL
2526 }
2527 },
2528 "type" : "object"
2529 },
2530 "links" : [
2531 {
2532 "href" : "{name}",
2533 "rel" : "child"
2534 }
2535 ],
2536 "type" : "array"
5d9c884c
DM
2537 }
2538 },
82551b2b
TL
2539 "POST" : {
2540 "allowtoken" : 1,
fa22697b 2541 "description" : "Create a new matcher",
82551b2b 2542 "method" : "POST",
fa22697b 2543 "name" : "create_matcher",
82551b2b
TL
2544 "parameters" : {
2545 "additionalProperties" : 0,
2546 "properties" : {
2547 "comment" : {
2548 "description" : "Comment",
2549 "optional" : 1,
2550 "type" : "string",
2551 "typetext" : "<string>"
2552 },
fa22697b
TL
2553 "disable" : {
2554 "default" : 0,
2555 "description" : "Disable this matcher",
2556 "optional" : 1,
2557 "type" : "boolean",
2558 "typetext" : "<boolean>"
2559 },
2560 "invert-match" : {
2561 "description" : "Invert match of the whole matcher",
2562 "optional" : 1,
2563 "type" : "boolean",
2564 "typetext" : "<boolean>"
2565 },
2566 "match-calendar" : {
2567 "description" : "Match notification timestamp",
82551b2b 2568 "items" : {
82551b2b
TL
2569 "type" : "string"
2570 },
fa22697b 2571 "optional" : 1,
82551b2b
TL
2572 "type" : "array",
2573 "typetext" : "<array>"
2574 },
fa22697b
TL
2575 "match-field" : {
2576 "description" : "Metadata fields to match (regex or exact match). Must be in the form (regex|exact):<field>=<value>",
2577 "items" : {
4772952b
TL
2578 "type" : "string"
2579 },
82551b2b 2580 "optional" : 1,
fa22697b
TL
2581 "type" : "array",
2582 "typetext" : "<array>"
82551b2b 2583 },
fa22697b
TL
2584 "match-severity" : {
2585 "description" : "Notification severities to match",
2586 "items" : {
2587 "type" : "string"
2588 },
82551b2b 2589 "optional" : 1,
fa22697b
TL
2590 "type" : "array",
2591 "typetext" : "<array>"
82551b2b
TL
2592 },
2593 "mode" : {
fa22697b
TL
2594 "default" : "all",
2595 "description" : "Choose between 'all' and 'any' for when multiple properties are specified",
82551b2b 2596 "enum" : [
fa22697b
TL
2597 "all",
2598 "any"
82551b2b
TL
2599 ],
2600 "optional" : 1,
2601 "type" : "string"
2602 },
2603 "name" : {
fa22697b 2604 "description" : "Name of the matcher.",
82551b2b
TL
2605 "format" : "pve-configid",
2606 "type" : "string",
2607 "typetext" : "<string>"
fa22697b
TL
2608 },
2609 "target" : {
2610 "description" : "Targets to notify on match",
2611 "items" : {
2612 "format" : "pve-configid",
2613 "type" : "string"
2614 },
2615 "optional" : 1,
2616 "type" : "array",
2617 "typetext" : "<array>"
82551b2b
TL
2618 }
2619 }
2620 },
2621 "permissions" : {
2622 "check" : [
2623 "perm",
fa22697b 2624 "/mapping/notifications",
82551b2b
TL
2625 [
2626 "Mapping.Modify"
2627 ]
2628 ]
2629 },
2630 "protected" : 1,
2631 "returns" : {
2632 "type" : "null"
2633 }
4772952b
TL
2634 }
2635 },
2636 "leaf" : 0,
fa22697b
TL
2637 "path" : "/cluster/notifications/matchers",
2638 "text" : "matchers"
4772952b
TL
2639 }
2640 ],
2641 "info" : {
2642 "GET" : {
2643 "allowtoken" : 1,
82551b2b 2644 "description" : "Index for notification-related API endpoints.",
4772952b
TL
2645 "method" : "GET",
2646 "name" : "index",
2647 "parameters" : {
2648 "additionalProperties" : 0
2649 },
2650 "permissions" : {
2651 "user" : "all"
2652 },
2653 "returns" : {
2654 "items" : {
2655 "properties" : {},
2656 "type" : "object"
2657 },
2658 "links" : [
2659 {
2660 "href" : "{name}",
2661 "rel" : "child"
2662 }
2663 ],
2664 "type" : "array"
2665 }
2666 }
2667 },
2668 "leaf" : 0,
82551b2b
TL
2669 "path" : "/cluster/notifications",
2670 "text" : "notifications"
4772952b 2671 },
32d876b5
DM
2672 {
2673 "children" : [
c5aa7e14
TL
2674 {
2675 "info" : {
2676 "GET" : {
2677 "allowtoken" : 1,
2678 "description" : "Return the version of the cluster join API available on this node.",
2679 "method" : "GET",
2680 "name" : "join_api_version",
2681 "parameters" : {
2682 "additionalProperties" : 0
2683 },
2684 "permissions" : {
2685 "check" : [
2686 "perm",
2687 "/",
2688 [
2689 "Sys.Audit"
2690 ]
2691 ]
2692 },
2693 "returns" : {
2694 "description" : "Cluster Join API version, currently 1",
2695 "minimum" : 0,
2696 "type" : "integer"
2697 }
2698 }
2699 },
2700 "leaf" : 1,
2701 "path" : "/cluster/config/apiversion",
2702 "text" : "apiversion"
2703 },
32d876b5 2704 {
27a7acb2
DM
2705 "children" : [
2706 {
2707 "info" : {
2708 "DELETE" : {
e9cd3bd4 2709 "allowtoken" : 1,
27a7acb2
DM
2710 "description" : "Removes a node from the cluster configuration.",
2711 "method" : "DELETE",
2712 "name" : "delnode",
2713 "parameters" : {
2714 "additionalProperties" : 0,
2715 "properties" : {
2716 "node" : {
2717 "description" : "The cluster node name.",
2718 "format" : "pve-node",
2719 "type" : "string",
2720 "typetext" : "<string>"
2721 }
2722 }
2723 },
2724 "protected" : 1,
2725 "returns" : {
2726 "type" : "null"
2727 }
2728 },
2729 "POST" : {
e9cd3bd4 2730 "allowtoken" : 1,
e2d681b3 2731 "description" : "Adds a node to the cluster configuration. This call is for internal use.",
27a7acb2
DM
2732 "method" : "POST",
2733 "name" : "addnode",
2734 "parameters" : {
2735 "additionalProperties" : 0,
2736 "properties" : {
c5aa7e14
TL
2737 "apiversion" : {
2738 "description" : "The JOIN_API_VERSION of the new node.",
2739 "optional" : 1,
2740 "type" : "integer",
2741 "typetext" : "<integer>"
2742 },
27a7acb2
DM
2743 "force" : {
2744 "description" : "Do not throw error if node already exists.",
2745 "optional" : 1,
2746 "type" : "boolean",
2747 "typetext" : "<boolean>"
2748 },
1e3f8156 2749 "link[n]" : {
c5aa7e14 2750 "description" : "Address and priority information of a single corosync link. (up to 8 links supported; link0..link7)",
1e3f8156
TL
2751 "format" : {
2752 "address" : {
2753 "default_key" : 1,
2754 "description" : "Hostname (or IP) of this corosync link address.",
2755 "format" : "address",
2756 "format_description" : "IP",
2757 "type" : "string"
2758 },
2759 "priority" : {
2760 "default" : 0,
c5aa7e14 2761 "description" : "The priority for the link when knet is used in 'passive' mode (default). Lower value means higher priority. Only valid for cluster create, ignored on node add.",
1e3f8156
TL
2762 "maximum" : 255,
2763 "minimum" : 0,
2764 "optional" : 1,
2765 "type" : "integer"
2766 }
2767 },
2768 "optional" : 1,
2769 "type" : "string",
2770 "typetext" : "[address=]<IP> [,priority=<integer>]"
2771 },
c5aa7e14
TL
2772 "new_node_ip" : {
2773 "description" : "IP Address of node to add. Used as fallback if no links are given.",
2774 "format" : "ip",
2775 "optional" : 1,
2776 "type" : "string",
2777 "typetext" : "<string>"
2778 },
27a7acb2
DM
2779 "node" : {
2780 "description" : "The cluster node name.",
2781 "format" : "pve-node",
2782 "type" : "string",
2783 "typetext" : "<string>"
2784 },
2785 "nodeid" : {
2786 "description" : "Node id for this node.",
2787 "minimum" : 1,
2788 "optional" : 1,
2789 "type" : "integer",
2790 "typetext" : "<integer> (1 - N)"
2791 },
27a7acb2
DM
2792 "votes" : {
2793 "description" : "Number of votes for this node",
2794 "minimum" : 0,
2795 "optional" : 1,
2796 "type" : "integer",
2797 "typetext" : "<integer> (0 - N)"
2798 }
2799 }
2800 },
2801 "protected" : 1,
2802 "returns" : {
2803 "properties" : {
2804 "corosync_authkey" : {
2805 "type" : "string"
2806 },
2807 "corosync_conf" : {
2808 "type" : "string"
c5aa7e14
TL
2809 },
2810 "warnings" : {
2811 "items" : {
2812 "type" : "string"
2813 },
2814 "type" : "array"
27a7acb2
DM
2815 }
2816 },
2817 "type" : "object"
2818 }
2819 }
2820 },
2821 "leaf" : 1,
2822 "path" : "/cluster/config/nodes/{node}",
2823 "text" : "{node}"
2824 }
2825 ],
32d876b5
DM
2826 "info" : {
2827 "GET" : {
e9cd3bd4 2828 "allowtoken" : 1,
32d876b5
DM
2829 "description" : "Corosync node list.",
2830 "method" : "GET",
2831 "name" : "nodes",
2832 "parameters" : {
2833 "additionalProperties" : 0
2834 },
5d9c884c
DM
2835 "permissions" : {
2836 "check" : [
2837 "perm",
2838 "/",
2839 [
2840 "Sys.Audit"
2841 ]
2842 ]
2843 },
32d876b5
DM
2844 "returns" : {
2845 "items" : {
2846 "properties" : {
2847 "node" : {
2848 "type" : "string"
2849 }
2850 },
2851 "type" : "object"
2852 },
2853 "links" : [
2854 {
2855 "href" : "{node}",
2856 "rel" : "child"
2857 }
2858 ],
2859 "type" : "array"
2860 }
2861 }
2862 },
27a7acb2 2863 "leaf" : 0,
32d876b5
DM
2864 "path" : "/cluster/config/nodes",
2865 "text" : "nodes"
2866 },
27a7acb2
DM
2867 {
2868 "info" : {
2869 "GET" : {
e9cd3bd4 2870 "allowtoken" : 1,
27a7acb2
DM
2871 "description" : "Get information needed to join this cluster over the connected node.",
2872 "method" : "GET",
2873 "name" : "join_info",
2874 "parameters" : {
2875 "additionalProperties" : 0,
2876 "properties" : {
2877 "node" : {
2878 "default" : "current connected node",
2879 "description" : "The node for which the joinee gets the nodeinfo. ",
2880 "format" : "pve-node",
2881 "optional" : 1,
2882 "type" : "string",
2883 "typetext" : "<string>"
2884 }
2885 }
2886 },
a9a8e3d1
DM
2887 "permissions" : {
2888 "check" : [
2889 "perm",
2890 "/",
2891 [
2892 "Sys.Audit"
2893 ]
2894 ]
2895 },
27a7acb2
DM
2896 "returns" : {
2897 "additionalProperties" : 0,
2898 "properties" : {
2899 "config_digest" : {
2900 "type" : "string"
2901 },
2902 "nodelist" : {
2903 "items" : {
2904 "additionalProperties" : 1,
2905 "properties" : {
2906 "name" : {
2907 "description" : "The cluster node name.",
2908 "format" : "pve-node",
2909 "type" : "string"
2910 },
2911 "nodeid" : {
2912 "description" : "Node id for this node.",
2913 "minimum" : 1,
2914 "optional" : 1,
2915 "type" : "integer"
2916 },
2917 "pve_addr" : {
2918 "format" : "ip",
2919 "type" : "string"
2920 },
2921 "pve_fp" : {
2922 "description" : "Certificate SHA 256 fingerprint.",
2923 "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
2924 "type" : "string"
2925 },
2926 "quorum_votes" : {
2927 "minimum" : 0,
2928 "type" : "integer"
2929 },
2930 "ring0_addr" : {
c5aa7e14 2931 "description" : "Address and priority information of a single corosync link. (up to 8 links supported; link0..link7)",
1e3f8156
TL
2932 "format" : {
2933 "address" : {
2934 "default_key" : 1,
2935 "description" : "Hostname (or IP) of this corosync link address.",
2936 "format" : "address",
2937 "format_description" : "IP",
2938 "type" : "string"
2939 },
2940 "priority" : {
2941 "default" : 0,
c5aa7e14 2942 "description" : "The priority for the link when knet is used in 'passive' mode (default). Lower value means higher priority. Only valid for cluster create, ignored on node add.",
1e3f8156
TL
2943 "maximum" : 255,
2944 "minimum" : 0,
2945 "optional" : 1,
2946 "type" : "integer"
2947 }
2948 },
27a7acb2
DM
2949 "optional" : 1,
2950 "type" : "string"
2951 }
2952 },
2953 "type" : "object"
2954 },
2955 "type" : "array"
2956 },
2957 "preferred_node" : {
2958 "description" : "The cluster node name.",
2959 "format" : "pve-node",
2960 "type" : "string"
2961 },
2962 "totem" : {
2963 "type" : "object"
2964 }
2965 },
2966 "type" : "object"
2967 }
2968 },
2969 "POST" : {
e9cd3bd4 2970 "allowtoken" : 1,
c5aa7e14 2971 "description" : "Joins this node into an existing cluster. If no links are given, default to IP resolved by node's hostname on single link (fallback fails for clusters with multiple links).",
27a7acb2
DM
2972 "method" : "POST",
2973 "name" : "join",
2974 "parameters" : {
2975 "additionalProperties" : 0,
2976 "properties" : {
2977 "fingerprint" : {
2978 "description" : "Certificate SHA 256 fingerprint.",
2979 "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
2980 "type" : "string"
2981 },
2982 "force" : {
2983 "description" : "Do not throw error if node already exists.",
2984 "optional" : 1,
2985 "type" : "boolean",
2986 "typetext" : "<boolean>"
2987 },
2988 "hostname" : {
2989 "description" : "Hostname (or IP) of an existing cluster member.",
2990 "type" : "string",
2991 "typetext" : "<string>"
2992 },
1e3f8156 2993 "link[n]" : {
c5aa7e14 2994 "description" : "Address and priority information of a single corosync link. (up to 8 links supported; link0..link7)",
1e3f8156
TL
2995 "format" : {
2996 "address" : {
2997 "default_key" : 1,
2998 "description" : "Hostname (or IP) of this corosync link address.",
2999 "format" : "address",
3000 "format_description" : "IP",
3001 "type" : "string"
3002 },
3003 "priority" : {
3004 "default" : 0,
c5aa7e14 3005 "description" : "The priority for the link when knet is used in 'passive' mode (default). Lower value means higher priority. Only valid for cluster create, ignored on node add.",
1e3f8156
TL
3006 "maximum" : 255,
3007 "minimum" : 0,
3008 "optional" : 1,
3009 "type" : "integer"
3010 }
3011 },
3012 "optional" : 1,
3013 "type" : "string",
3014 "typetext" : "[address=]<IP> [,priority=<integer>]"
3015 },
27a7acb2
DM
3016 "nodeid" : {
3017 "description" : "Node id for this node.",
3018 "minimum" : 1,
3019 "optional" : 1,
3020 "type" : "integer",
3021 "typetext" : "<integer> (1 - N)"
3022 },
3023 "password" : {
3024 "description" : "Superuser (root) password of peer node.",
3025 "maxLength" : 128,
3026 "type" : "string",
3027 "typetext" : "<string>"
3028 },
27a7acb2
DM
3029 "votes" : {
3030 "description" : "Number of votes for this node",
3031 "minimum" : 0,
3032 "optional" : 1,
3033 "type" : "integer",
3034 "typetext" : "<integer> (0 - N)"
3035 }
3036 }
3037 },
3038 "protected" : 1,
3039 "returns" : {
3040 "type" : "string"
3041 }
3042 }
3043 },
3044 "leaf" : 1,
3045 "path" : "/cluster/config/join",
3046 "text" : "join"
3047 },
32d876b5
DM
3048 {
3049 "info" : {
3050 "GET" : {
e9cd3bd4 3051 "allowtoken" : 1,
32d876b5
DM
3052 "description" : "Get corosync totem protocol settings.",
3053 "method" : "GET",
3054 "name" : "totem",
3055 "parameters" : {
3056 "additionalProperties" : 0
3057 },
5d9c884c
DM
3058 "permissions" : {
3059 "check" : [
3060 "perm",
3061 "/",
3062 [
3063 "Sys.Audit"
3064 ]
3065 ]
3066 },
32d876b5 3067 "returns" : {
32d876b5
DM
3068 "type" : "object"
3069 }
3070 }
3071 },
3072 "leaf" : 1,
3073 "path" : "/cluster/config/totem",
3074 "text" : "totem"
9226ccbc
TL
3075 },
3076 {
3077 "info" : {
3078 "GET" : {
e9cd3bd4 3079 "allowtoken" : 1,
9226ccbc
TL
3080 "description" : "Get QDevice status",
3081 "method" : "GET",
3082 "name" : "status",
3083 "parameters" : {
3084 "additionalProperties" : 0
3085 },
3086 "permissions" : {
3087 "check" : [
3088 "perm",
3089 "/",
3090 [
3091 "Sys.Audit"
3092 ]
3093 ]
3094 },
de786b48 3095 "protected" : 1,
9226ccbc
TL
3096 "returns" : {
3097 "type" : "object"
3098 }
3099 }
3100 },
3101 "leaf" : 1,
3102 "path" : "/cluster/config/qdevice",
3103 "text" : "qdevice"
32d876b5
DM
3104 }
3105 ],
3106 "info" : {
3107 "GET" : {
e9cd3bd4 3108 "allowtoken" : 1,
32d876b5
DM
3109 "description" : "Directory index.",
3110 "method" : "GET",
3111 "name" : "index",
3112 "parameters" : {
3113 "additionalProperties" : 0
3114 },
5d9c884c
DM
3115 "permissions" : {
3116 "check" : [
3117 "perm",
3118 "/",
3119 [
3120 "Sys.Audit"
3121 ]
3122 ]
3123 },
32d876b5
DM
3124 "returns" : {
3125 "items" : {
3126 "properties" : {},
3127 "type" : "object"
3128 },
3129 "links" : [
3130 {
3131 "href" : "{name}",
3132 "rel" : "child"
3133 }
3134 ],
3135 "type" : "array"
3136 }
27a7acb2
DM
3137 },
3138 "POST" : {
e9cd3bd4 3139 "allowtoken" : 1,
c5aa7e14 3140 "description" : "Generate new cluster configuration. If no links given, default to local IP address as link0.",
27a7acb2
DM
3141 "method" : "POST",
3142 "name" : "create",
3143 "parameters" : {
3144 "additionalProperties" : 0,
3145 "properties" : {
27a7acb2
DM
3146 "clustername" : {
3147 "description" : "The name of the cluster.",
3148 "format" : "pve-node",
3149 "maxLength" : 15,
3150 "type" : "string",
3151 "typetext" : "<string>"
3152 },
1e3f8156 3153 "link[n]" : {
c5aa7e14 3154 "description" : "Address and priority information of a single corosync link. (up to 8 links supported; link0..link7)",
1e3f8156
TL
3155 "format" : {
3156 "address" : {
3157 "default_key" : 1,
3158 "description" : "Hostname (or IP) of this corosync link address.",
3159 "format" : "address",
3160 "format_description" : "IP",
3161 "type" : "string"
3162 },
3163 "priority" : {
3164 "default" : 0,
c5aa7e14 3165 "description" : "The priority for the link when knet is used in 'passive' mode (default). Lower value means higher priority. Only valid for cluster create, ignored on node add.",
1e3f8156
TL
3166 "maximum" : 255,
3167 "minimum" : 0,
3168 "optional" : 1,
3169 "type" : "integer"
3170 }
3171 },
3172 "optional" : 1,
3173 "type" : "string",
3174 "typetext" : "[address=]<IP> [,priority=<integer>]"
3175 },
27a7acb2
DM
3176 "nodeid" : {
3177 "description" : "Node id for this node.",
3178 "minimum" : 1,
3179 "optional" : 1,
3180 "type" : "integer",
3181 "typetext" : "<integer> (1 - N)"
3182 },
27a7acb2
DM
3183 "votes" : {
3184 "description" : "Number of votes for this node.",
3185 "minimum" : 1,
3186 "optional" : 1,
3187 "type" : "integer",
3188 "typetext" : "<integer> (1 - N)"
3189 }
3190 }
3191 },
3192 "protected" : 1,
3193 "returns" : {
3194 "type" : "string"
3195 }
32d876b5
DM
3196 }
3197 },
3198 "leaf" : 0,
3199 "path" : "/cluster/config",
3200 "text" : "config"
3201 },
56122987 3202 {
56122987
DM
3203 "children" : [
3204 {
56122987
DM
3205 "children" : [
3206 {
44660702
DM
3207 "children" : [
3208 {
3209 "info" : {
3210 "DELETE" : {
e9cd3bd4 3211 "allowtoken" : 1,
44660702
DM
3212 "description" : "Delete rule.",
3213 "method" : "DELETE",
3214 "name" : "delete_rule",
3215 "parameters" : {
3216 "additionalProperties" : 0,
3217 "properties" : {
3218 "digest" : {
82551b2b
TL
3219 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
3220 "maxLength" : 64,
44660702 3221 "optional" : 1,
013dc89f
DM
3222 "type" : "string",
3223 "typetext" : "<string>"
44660702
DM
3224 },
3225 "group" : {
3226 "description" : "Security Group name.",
4bd7df8b 3227 "maxLength" : 18,
44660702
DM
3228 "minLength" : 2,
3229 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
3230 "type" : "string"
3231 },
3232 "pos" : {
3233 "description" : "Update rule at position <pos>.",
3234 "minimum" : 0,
3235 "optional" : 1,
4bd7df8b 3236 "type" : "integer",
013dc89f 3237 "typetext" : "<integer> (0 - N)"
44660702
DM
3238 }
3239 }
3240 },
3241 "permissions" : {
3242 "check" : [
3243 "perm",
3244 "/",
3245 [
3246 "Sys.Modify"
3247 ]
3248 ]
3249 },
3250 "protected" : 1,
3251 "proxyto" : null,
3252 "returns" : {
3253 "type" : "null"
7aacca6f
DM
3254 }
3255 },
44660702 3256 "GET" : {
e9cd3bd4 3257 "allowtoken" : 1,
44660702
DM
3258 "description" : "Get single rule data.",
3259 "method" : "GET",
3260 "name" : "get_rule",
3261 "parameters" : {
3262 "additionalProperties" : 0,
3263 "properties" : {
3264 "group" : {
3265 "description" : "Security Group name.",
4bd7df8b 3266 "maxLength" : 18,
44660702
DM
3267 "minLength" : 2,
3268 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
3269 "type" : "string"
3270 },
3271 "pos" : {
3272 "description" : "Update rule at position <pos>.",
3273 "minimum" : 0,
3274 "optional" : 1,
4bd7df8b 3275 "type" : "integer",
013dc89f 3276 "typetext" : "<integer> (0 - N)"
44660702 3277 }
7aacca6f 3278 }
56122987 3279 },
44660702
DM
3280 "permissions" : {
3281 "check" : [
3282 "perm",
3283 "/",
3284 [
3285 "Sys.Audit"
3286 ]
3287 ]
3288 },
3289 "proxyto" : null,
3290 "returns" : {
3291 "properties" : {
e2d681b3
TL
3292 "action" : {
3293 "type" : "string"
3294 },
3295 "comment" : {
3296 "optional" : 1,
3297 "type" : "string"
3298 },
3299 "dest" : {
3300 "optional" : 1,
3301 "type" : "string"
3302 },
3303 "dport" : {
3304 "optional" : 1,
3305 "type" : "string"
3306 },
3307 "enable" : {
3308 "optional" : 1,
3309 "type" : "integer"
3310 },
4772952b
TL
3311 "icmp-type" : {
3312 "optional" : 1,
3313 "type" : "string"
3314 },
e2d681b3
TL
3315 "iface" : {
3316 "optional" : 1,
3317 "type" : "string"
3318 },
3319 "ipversion" : {
3320 "optional" : 1,
3321 "type" : "integer"
3322 },
95895385
TL
3323 "log" : {
3324 "description" : "Log level for firewall rule",
3325 "enum" : [
3326 "emerg",
3327 "alert",
3328 "crit",
3329 "err",
3330 "warning",
3331 "notice",
3332 "info",
3333 "debug",
3334 "nolog"
3335 ],
3336 "optional" : 1,
3337 "type" : "string"
3338 },
e2d681b3
TL
3339 "macro" : {
3340 "optional" : 1,
5f26e15b 3341 "type" : "string"
e2d681b3 3342 },
44660702
DM
3343 "pos" : {
3344 "type" : "integer"
e2d681b3
TL
3345 },
3346 "proto" : {
3347 "optional" : 1,
3348 "type" : "string"
3349 },
3350 "source" : {
3351 "optional" : 1,
3352 "type" : "string"
3353 },
3354 "sport" : {
3355 "optional" : 1,
3356 "type" : "string"
3357 },
3358 "type" : {
3359 "type" : "string"
44660702
DM
3360 }
3361 },
3362 "type" : "object"
56122987 3363 }
44660702 3364 },
7aacca6f 3365 "PUT" : {
e9cd3bd4 3366 "allowtoken" : 1,
44660702
DM
3367 "description" : "Modify rule data.",
3368 "method" : "PUT",
3369 "name" : "update_rule",
7aacca6f
DM
3370 "parameters" : {
3371 "additionalProperties" : 0,
3372 "properties" : {
44660702
DM
3373 "action" : {
3374 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
7aacca6f 3375 "maxLength" : 20,
44660702 3376 "minLength" : 2,
7aacca6f 3377 "optional" : 1,
44660702 3378 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
7aacca6f
DM
3379 "type" : "string"
3380 },
44660702 3381 "comment" : {
e94f0d56 3382 "description" : "Descriptive comment.",
7aacca6f 3383 "optional" : 1,
013dc89f
DM
3384 "type" : "string",
3385 "typetext" : "<string>"
7aacca6f 3386 },
44660702
DM
3387 "delete" : {
3388 "description" : "A list of settings you want to delete.",
3389 "format" : "pve-configid-list",
7aacca6f 3390 "optional" : 1,
013dc89f
DM
3391 "type" : "string",
3392 "typetext" : "<string>"
7aacca6f 3393 },
44660702
DM
3394 "dest" : {
3395 "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
3396 "format" : "pve-fw-addr-spec",
0695fdaf 3397 "maxLength" : 512,
7aacca6f 3398 "optional" : 1,
013dc89f
DM
3399 "type" : "string",
3400 "typetext" : "<string>"
7aacca6f
DM
3401 },
3402 "digest" : {
82551b2b
TL
3403 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
3404 "maxLength" : 64,
7aacca6f 3405 "optional" : 1,
013dc89f
DM
3406 "type" : "string",
3407 "typetext" : "<string>"
7aacca6f 3408 },
44660702
DM
3409 "dport" : {
3410 "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
3411 "format" : "pve-fw-dport-spec",
7aacca6f 3412 "optional" : 1,
013dc89f
DM
3413 "type" : "string",
3414 "typetext" : "<string>"
7aacca6f 3415 },
44660702 3416 "enable" : {
e94f0d56 3417 "description" : "Flag to enable/disable a rule.",
44660702 3418 "minimum" : 0,
7aacca6f 3419 "optional" : 1,
4bd7df8b 3420 "type" : "integer",
013dc89f 3421 "typetext" : "<integer> (0 - N)"
7aacca6f 3422 },
44660702
DM
3423 "group" : {
3424 "description" : "Security Group name.",
4bd7df8b 3425 "maxLength" : 18,
44660702
DM
3426 "minLength" : 2,
3427 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
3428 "type" : "string"
3429 },
4772952b 3430 "icmp-type" : {
287a95cf 3431 "description" : "Specify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'.",
4772952b
TL
3432 "format" : "pve-fw-icmp-type-spec",
3433 "optional" : 1,
3434 "type" : "string",
3435 "typetext" : "<string>"
3436 },
44660702
DM
3437 "iface" : {
3438 "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
3439 "format" : "pve-iface",
3440 "maxLength" : 20,
3441 "minLength" : 2,
7aacca6f 3442 "optional" : 1,
013dc89f
DM
3443 "type" : "string",
3444 "typetext" : "<string>"
7aacca6f 3445 },
95895385
TL
3446 "log" : {
3447 "description" : "Log level for firewall rule.",
3448 "enum" : [
3449 "emerg",
3450 "alert",
3451 "crit",
3452 "err",
3453 "warning",
3454 "notice",
3455 "info",
3456 "debug",
3457 "nolog"
3458 ],
3459 "optional" : 1,
3460 "type" : "string"
3461 },
44660702 3462 "macro" : {
e94f0d56 3463 "description" : "Use predefined standard macro.",
44660702
DM
3464 "maxLength" : 128,
3465 "optional" : 1,
013dc89f
DM
3466 "type" : "string",
3467 "typetext" : "<string>"
7aacca6f
DM
3468 },
3469 "moveto" : {
3470 "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
44660702 3471 "minimum" : 0,
7aacca6f 3472 "optional" : 1,
4bd7df8b 3473 "type" : "integer",
013dc89f 3474 "typetext" : "<integer> (0 - N)"
7aacca6f 3475 },
44660702
DM
3476 "pos" : {
3477 "description" : "Update rule at position <pos>.",
3478 "minimum" : 0,
3479 "optional" : 1,
4bd7df8b 3480 "type" : "integer",
013dc89f 3481 "typetext" : "<integer> (0 - N)"
7aacca6f 3482 },
44660702
DM
3483 "proto" : {
3484 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
3485 "format" : "pve-fw-protocol-spec",
7aacca6f 3486 "optional" : 1,
013dc89f
DM
3487 "type" : "string",
3488 "typetext" : "<string>"
44660702
DM
3489 },
3490 "source" : {
3491 "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
3492 "format" : "pve-fw-addr-spec",
0695fdaf 3493 "maxLength" : 512,
44660702 3494 "optional" : 1,
013dc89f
DM
3495 "type" : "string",
3496 "typetext" : "<string>"
44660702
DM
3497 },
3498 "sport" : {
3499 "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
3500 "format" : "pve-fw-sport-spec",
3501 "optional" : 1,
013dc89f
DM
3502 "type" : "string",
3503 "typetext" : "<string>"
7aacca6f
DM
3504 },
3505 "type" : {
e94f0d56 3506 "description" : "Rule type.",
7aacca6f
DM
3507 "enum" : [
3508 "in",
3509 "out",
3510 "group"
3511 ],
3512 "optional" : 1,
3513 "type" : "string"
3514 }
3515 }
3516 },
7aacca6f
DM
3517 "permissions" : {
3518 "check" : [
3519 "perm",
3520 "/",
3521 [
3522 "Sys.Modify"
3523 ]
3524 ]
3525 },
44660702 3526 "protected" : 1,
7aacca6f
DM
3527 "proxyto" : null,
3528 "returns" : {
3529 "type" : "null"
3530 }
7aacca6f
DM
3531 }
3532 },
44660702 3533 "leaf" : 1,
7aacca6f 3534 "path" : "/cluster/firewall/groups/{group}/{pos}",
44660702 3535 "text" : "{pos}"
7aacca6f
DM
3536 }
3537 ],
44660702
DM
3538 "info" : {
3539 "DELETE" : {
e9cd3bd4 3540 "allowtoken" : 1,
44660702
DM
3541 "description" : "Delete security group.",
3542 "method" : "DELETE",
3543 "name" : "delete_security_group",
3544 "parameters" : {
3545 "additionalProperties" : 0,
3546 "properties" : {
3547 "group" : {
3548 "description" : "Security Group name.",
4bd7df8b 3549 "maxLength" : 18,
44660702
DM
3550 "minLength" : 2,
3551 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
3552 "type" : "string"
3553 }
56122987 3554 }
7aacca6f 3555 },
44660702
DM
3556 "permissions" : {
3557 "check" : [
3558 "perm",
3559 "/",
3560 [
3561 "Sys.Modify"
3562 ]
7aacca6f 3563 ]
56122987 3564 },
44660702
DM
3565 "protected" : 1,
3566 "returns" : {
3567 "type" : "null"
56122987 3568 }
7aacca6f 3569 },
7aacca6f 3570 "GET" : {
e9cd3bd4 3571 "allowtoken" : 1,
44660702 3572 "description" : "List rules.",
7aacca6f 3573 "method" : "GET",
44660702
DM
3574 "name" : "get_rules",
3575 "parameters" : {
3576 "additionalProperties" : 0,
7aacca6f 3577 "properties" : {
44660702
DM
3578 "group" : {
3579 "description" : "Security Group name.",
4bd7df8b 3580 "maxLength" : 18,
44660702
DM
3581 "minLength" : 2,
3582 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
3583 "type" : "string"
7aacca6f 3584 }
44660702 3585 }
7aacca6f
DM
3586 },
3587 "permissions" : {
3588 "check" : [
3589 "perm",
3590 "/",
3591 [
3592 "Sys.Audit"
3593 ]
3594 ]
3595 },
44660702
DM
3596 "proxyto" : null,
3597 "returns" : {
3598 "items" : {
3599 "properties" : {
3600 "pos" : {
3601 "type" : "integer"
3602 }
3603 },
3604 "type" : "object"
3605 },
3606 "links" : [
3607 {
3608 "href" : "{pos}",
3609 "rel" : "child"
3610 }
3611 ],
3612 "type" : "array"
3613 }
3614 },
3615 "POST" : {
e9cd3bd4 3616 "allowtoken" : 1,
44660702
DM
3617 "description" : "Create new rule.",
3618 "method" : "POST",
3619 "name" : "create_rule",
7aacca6f
DM
3620 "parameters" : {
3621 "additionalProperties" : 0,
3622 "properties" : {
44660702
DM
3623 "action" : {
3624 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
3625 "maxLength" : 20,
56122987 3626 "minLength" : 2,
44660702
DM
3627 "optional" : 0,
3628 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
7aacca6f 3629 "type" : "string"
56122987 3630 },
44660702 3631 "comment" : {
e94f0d56 3632 "description" : "Descriptive comment.",
56122987 3633 "optional" : 1,
013dc89f
DM
3634 "type" : "string",
3635 "typetext" : "<string>"
56122987 3636 },
44660702
DM
3637 "dest" : {
3638 "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
56122987 3639 "format" : "pve-fw-addr-spec",
0695fdaf 3640 "maxLength" : 512,
56122987 3641 "optional" : 1,
013dc89f
DM
3642 "type" : "string",
3643 "typetext" : "<string>"
56122987 3644 },
44660702 3645 "digest" : {
82551b2b
TL
3646 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
3647 "maxLength" : 64,
7aacca6f 3648 "optional" : 1,
013dc89f
DM
3649 "type" : "string",
3650 "typetext" : "<string>"
56122987 3651 },
44660702
DM
3652 "dport" : {
3653 "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
3654 "format" : "pve-fw-dport-spec",
56122987 3655 "optional" : 1,
013dc89f
DM
3656 "type" : "string",
3657 "typetext" : "<string>"
56122987 3658 },
7aacca6f 3659 "enable" : {
e94f0d56 3660 "description" : "Flag to enable/disable a rule.",
44660702 3661 "minimum" : 0,
7aacca6f 3662 "optional" : 1,
4bd7df8b 3663 "type" : "integer",
013dc89f 3664 "typetext" : "<integer> (0 - N)"
56122987 3665 },
44660702
DM
3666 "group" : {
3667 "description" : "Security Group name.",
4bd7df8b 3668 "maxLength" : 18,
44660702 3669 "minLength" : 2,
7aacca6f 3670 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702
DM
3671 "type" : "string"
3672 },
4772952b 3673 "icmp-type" : {
287a95cf 3674 "description" : "Specify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'.",
4772952b
TL
3675 "format" : "pve-fw-icmp-type-spec",
3676 "optional" : 1,
3677 "type" : "string",
3678 "typetext" : "<string>"
3679 },
44660702
DM
3680 "iface" : {
3681 "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
3682 "format" : "pve-iface",
3683 "maxLength" : 20,
7aacca6f 3684 "minLength" : 2,
44660702 3685 "optional" : 1,
013dc89f
DM
3686 "type" : "string",
3687 "typetext" : "<string>"
56122987 3688 },
95895385
TL
3689 "log" : {
3690 "description" : "Log level for firewall rule.",
3691 "enum" : [
3692 "emerg",
3693 "alert",
3694 "crit",
3695 "err",
3696 "warning",
3697 "notice",
3698 "info",
3699 "debug",
3700 "nolog"
3701 ],
3702 "optional" : 1,
3703 "type" : "string"
3704 },
7aacca6f 3705 "macro" : {
e94f0d56 3706 "description" : "Use predefined standard macro.",
44660702 3707 "maxLength" : 128,
7aacca6f 3708 "optional" : 1,
013dc89f
DM
3709 "type" : "string",
3710 "typetext" : "<string>"
7aacca6f
DM
3711 },
3712 "pos" : {
3713 "description" : "Update rule at position <pos>.",
44660702 3714 "minimum" : 0,
56122987 3715 "optional" : 1,
4bd7df8b 3716 "type" : "integer",
013dc89f 3717 "typetext" : "<integer> (0 - N)"
7aacca6f
DM
3718 },
3719 "proto" : {
3720 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
44660702 3721 "format" : "pve-fw-protocol-spec",
7aacca6f 3722 "optional" : 1,
013dc89f
DM
3723 "type" : "string",
3724 "typetext" : "<string>"
44660702
DM
3725 },
3726 "source" : {
3727 "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
3728 "format" : "pve-fw-addr-spec",
0695fdaf 3729 "maxLength" : 512,
44660702 3730 "optional" : 1,
013dc89f
DM
3731 "type" : "string",
3732 "typetext" : "<string>"
44660702
DM
3733 },
3734 "sport" : {
3735 "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
3736 "format" : "pve-fw-sport-spec",
3737 "optional" : 1,
013dc89f
DM
3738 "type" : "string",
3739 "typetext" : "<string>"
44660702
DM
3740 },
3741 "type" : {
e94f0d56 3742 "description" : "Rule type.",
44660702
DM
3743 "enum" : [
3744 "in",
3745 "out",
3746 "group"
3747 ],
3748 "optional" : 0,
3749 "type" : "string"
56122987 3750 }
44660702 3751 }
56122987 3752 },
56122987
DM
3753 "permissions" : {
3754 "check" : [
3755 "perm",
3756 "/",
3757 [
3758 "Sys.Modify"
3759 ]
3760 ]
3761 },
44660702
DM
3762 "protected" : 1,
3763 "proxyto" : null,
56122987
DM
3764 "returns" : {
3765 "type" : "null"
7aacca6f 3766 }
44660702
DM
3767 }
3768 },
3769 "leaf" : 0,
3770 "path" : "/cluster/firewall/groups/{group}",
3771 "text" : "{group}"
3772 }
3773 ],
3774 "info" : {
3775 "GET" : {
e9cd3bd4 3776 "allowtoken" : 1,
44660702
DM
3777 "description" : "List security groups.",
3778 "method" : "GET",
3779 "name" : "list_security_groups",
3780 "parameters" : {
3781 "additionalProperties" : 0
3782 },
3783 "permissions" : {
3784 "user" : "all"
3785 },
3786 "returns" : {
3787 "items" : {
3788 "properties" : {
3789 "comment" : {
3790 "optional" : 1,
3791 "type" : "string"
3792 },
3793 "digest" : {
82551b2b
TL
3794 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
3795 "maxLength" : 64,
44660702
DM
3796 "optional" : 0,
3797 "type" : "string"
3798 },
3799 "group" : {
3800 "description" : "Security Group name.",
4bd7df8b 3801 "maxLength" : 18,
44660702
DM
3802 "minLength" : 2,
3803 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
3804 "type" : "string"
3805 }
3806 },
3807 "type" : "object"
56122987 3808 },
44660702
DM
3809 "links" : [
3810 {
3811 "href" : "{group}",
3812 "rel" : "child"
3813 }
3814 ],
3815 "type" : "array"
3816 }
3817 },
3818 "POST" : {
e9cd3bd4 3819 "allowtoken" : 1,
44660702
DM
3820 "description" : "Create new security group.",
3821 "method" : "POST",
3822 "name" : "create_security_group",
3823 "parameters" : {
3824 "additionalProperties" : 0,
3825 "properties" : {
3826 "comment" : {
3827 "optional" : 1,
013dc89f
DM
3828 "type" : "string",
3829 "typetext" : "<string>"
44660702
DM
3830 },
3831 "digest" : {
82551b2b
TL
3832 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
3833 "maxLength" : 64,
44660702 3834 "optional" : 1,
013dc89f
DM
3835 "type" : "string",
3836 "typetext" : "<string>"
44660702
DM
3837 },
3838 "group" : {
3839 "description" : "Security Group name.",
4bd7df8b 3840 "maxLength" : 18,
44660702
DM
3841 "minLength" : 2,
3842 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
3843 "type" : "string"
3844 },
3845 "rename" : {
3846 "description" : "Rename/update an existing security group. You can set 'rename' to the same value as 'name' to update the 'comment' of an existing group.",
4bd7df8b 3847 "maxLength" : 18,
44660702
DM
3848 "minLength" : 2,
3849 "optional" : 1,
3850 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
3851 "type" : "string"
3852 }
3853 }
3854 },
3855 "permissions" : {
3856 "check" : [
3857 "perm",
3858 "/",
3859 [
3860 "Sys.Modify"
3861 ]
3862 ]
3863 },
3864 "protected" : 1,
3865 "returns" : {
3866 "type" : "null"
3867 }
3868 }
3869 },
3870 "leaf" : 0,
3871 "path" : "/cluster/firewall/groups",
3872 "text" : "groups"
3873 },
3874 {
3875 "children" : [
3876 {
3877 "info" : {
7aacca6f 3878 "DELETE" : {
e9cd3bd4 3879 "allowtoken" : 1,
44660702
DM
3880 "description" : "Delete rule.",
3881 "method" : "DELETE",
3882 "name" : "delete_rule",
3883 "parameters" : {
3884 "additionalProperties" : 0,
3885 "properties" : {
3886 "digest" : {
82551b2b
TL
3887 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
3888 "maxLength" : 64,
44660702 3889 "optional" : 1,
013dc89f
DM
3890 "type" : "string",
3891 "typetext" : "<string>"
44660702
DM
3892 },
3893 "pos" : {
3894 "description" : "Update rule at position <pos>.",
3895 "minimum" : 0,
3896 "optional" : 1,
4bd7df8b 3897 "type" : "integer",
013dc89f 3898 "typetext" : "<integer> (0 - N)"
44660702
DM
3899 }
3900 }
3901 },
56122987
DM
3902 "permissions" : {
3903 "check" : [
3904 "perm",
3905 "/",
3906 [
7aacca6f 3907 "Sys.Modify"
56122987
DM
3908 ]
3909 ]
3910 },
44660702 3911 "protected" : 1,
56122987
DM
3912 "proxyto" : null,
3913 "returns" : {
7aacca6f 3914 "type" : "null"
44660702
DM
3915 }
3916 },
3917 "GET" : {
e9cd3bd4 3918 "allowtoken" : 1,
44660702
DM
3919 "description" : "Get single rule data.",
3920 "method" : "GET",
3921 "name" : "get_rule",
56122987
DM
3922 "parameters" : {
3923 "additionalProperties" : 0,
3924 "properties" : {
3925 "pos" : {
7aacca6f 3926 "description" : "Update rule at position <pos>.",
44660702 3927 "minimum" : 0,
56122987 3928 "optional" : 1,
4bd7df8b 3929 "type" : "integer",
013dc89f 3930 "typetext" : "<integer> (0 - N)"
7aacca6f
DM
3931 }
3932 }
3933 },
7aacca6f
DM
3934 "permissions" : {
3935 "check" : [
3936 "perm",
3937 "/",
3938 [
3939 "Sys.Audit"
3940 ]
3941 ]
56122987 3942 },
44660702
DM
3943 "proxyto" : null,
3944 "returns" : {
7aacca6f 3945 "properties" : {
e2d681b3
TL
3946 "action" : {
3947 "type" : "string"
3948 },
3949 "comment" : {
3950 "optional" : 1,
3951 "type" : "string"
3952 },
3953 "dest" : {
3954 "optional" : 1,
3955 "type" : "string"
3956 },
3957 "dport" : {
3958 "optional" : 1,
3959 "type" : "string"
3960 },
3961 "enable" : {
3962 "optional" : 1,
3963 "type" : "integer"
3964 },
4772952b
TL
3965 "icmp-type" : {
3966 "optional" : 1,
3967 "type" : "string"
3968 },
e2d681b3
TL
3969 "iface" : {
3970 "optional" : 1,
3971 "type" : "string"
3972 },
3973 "ipversion" : {
3974 "optional" : 1,
3975 "type" : "integer"
3976 },
95895385
TL
3977 "log" : {
3978 "description" : "Log level for firewall rule",
3979 "enum" : [
3980 "emerg",
3981 "alert",
3982 "crit",
3983 "err",
3984 "warning",
3985 "notice",
3986 "info",
3987 "debug",
3988 "nolog"
3989 ],
3990 "optional" : 1,
3991 "type" : "string"
3992 },
e2d681b3
TL
3993 "macro" : {
3994 "optional" : 1,
5f26e15b 3995 "type" : "string"
e2d681b3 3996 },
44660702
DM
3997 "pos" : {
3998 "type" : "integer"
e2d681b3
TL
3999 },
4000 "proto" : {
4001 "optional" : 1,
4002 "type" : "string"
4003 },
4004 "source" : {
4005 "optional" : 1,
4006 "type" : "string"
4007 },
4008 "sport" : {
4009 "optional" : 1,
4010 "type" : "string"
4011 },
4012 "type" : {
4013 "type" : "string"
7aacca6f 4014 }
44660702
DM
4015 },
4016 "type" : "object"
4017 }
56122987 4018 },
44660702 4019 "PUT" : {
e9cd3bd4 4020 "allowtoken" : 1,
44660702
DM
4021 "description" : "Modify rule data.",
4022 "method" : "PUT",
4023 "name" : "update_rule",
7aacca6f
DM
4024 "parameters" : {
4025 "additionalProperties" : 0,
4026 "properties" : {
44660702
DM
4027 "action" : {
4028 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
4029 "maxLength" : 20,
4030 "minLength" : 2,
4031 "optional" : 1,
4032 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
4033 "type" : "string"
7aacca6f 4034 },
44660702 4035 "comment" : {
e94f0d56 4036 "description" : "Descriptive comment.",
44660702 4037 "optional" : 1,
013dc89f
DM
4038 "type" : "string",
4039 "typetext" : "<string>"
7aacca6f 4040 },
44660702
DM
4041 "delete" : {
4042 "description" : "A list of settings you want to delete.",
4043 "format" : "pve-configid-list",
4044 "optional" : 1,
013dc89f
DM
4045 "type" : "string",
4046 "typetext" : "<string>"
44660702
DM
4047 },
4048 "dest" : {
4049 "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
4050 "format" : "pve-fw-addr-spec",
0695fdaf 4051 "maxLength" : 512,
44660702 4052 "optional" : 1,
013dc89f
DM
4053 "type" : "string",
4054 "typetext" : "<string>"
44660702
DM
4055 },
4056 "digest" : {
82551b2b
TL
4057 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
4058 "maxLength" : 64,
44660702 4059 "optional" : 1,
013dc89f
DM
4060 "type" : "string",
4061 "typetext" : "<string>"
44660702
DM
4062 },
4063 "dport" : {
4064 "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
4065 "format" : "pve-fw-dport-spec",
4066 "optional" : 1,
013dc89f
DM
4067 "type" : "string",
4068 "typetext" : "<string>"
44660702
DM
4069 },
4070 "enable" : {
e94f0d56 4071 "description" : "Flag to enable/disable a rule.",
44660702
DM
4072 "minimum" : 0,
4073 "optional" : 1,
4bd7df8b 4074 "type" : "integer",
013dc89f 4075 "typetext" : "<integer> (0 - N)"
44660702 4076 },
4772952b 4077 "icmp-type" : {
287a95cf 4078 "description" : "Specify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'.",
4772952b
TL
4079 "format" : "pve-fw-icmp-type-spec",
4080 "optional" : 1,
4081 "type" : "string",
4082 "typetext" : "<string>"
4083 },
44660702
DM
4084 "iface" : {
4085 "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
4086 "format" : "pve-iface",
4087 "maxLength" : 20,
7aacca6f 4088 "minLength" : 2,
44660702 4089 "optional" : 1,
013dc89f
DM
4090 "type" : "string",
4091 "typetext" : "<string>"
7aacca6f 4092 },
95895385
TL
4093 "log" : {
4094 "description" : "Log level for firewall rule.",
4095 "enum" : [
4096 "emerg",
4097 "alert",
4098 "crit",
4099 "err",
4100 "warning",
4101 "notice",
4102 "info",
4103 "debug",
4104 "nolog"
4105 ],
4106 "optional" : 1,
4107 "type" : "string"
4108 },
44660702 4109 "macro" : {
e94f0d56 4110 "description" : "Use predefined standard macro.",
44660702
DM
4111 "maxLength" : 128,
4112 "optional" : 1,
013dc89f
DM
4113 "type" : "string",
4114 "typetext" : "<string>"
44660702
DM
4115 },
4116 "moveto" : {
4117 "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
4118 "minimum" : 0,
4119 "optional" : 1,
4bd7df8b 4120 "type" : "integer",
013dc89f 4121 "typetext" : "<integer> (0 - N)"
44660702
DM
4122 },
4123 "pos" : {
4124 "description" : "Update rule at position <pos>.",
4125 "minimum" : 0,
4126 "optional" : 1,
4bd7df8b 4127 "type" : "integer",
013dc89f 4128 "typetext" : "<integer> (0 - N)"
44660702
DM
4129 },
4130 "proto" : {
4131 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
4132 "format" : "pve-fw-protocol-spec",
4133 "optional" : 1,
013dc89f
DM
4134 "type" : "string",
4135 "typetext" : "<string>"
44660702
DM
4136 },
4137 "source" : {
4138 "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
4139 "format" : "pve-fw-addr-spec",
0695fdaf 4140 "maxLength" : 512,
44660702 4141 "optional" : 1,
013dc89f
DM
4142 "type" : "string",
4143 "typetext" : "<string>"
44660702
DM
4144 },
4145 "sport" : {
4146 "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
4147 "format" : "pve-fw-sport-spec",
4148 "optional" : 1,
013dc89f
DM
4149 "type" : "string",
4150 "typetext" : "<string>"
44660702
DM
4151 },
4152 "type" : {
e94f0d56 4153 "description" : "Rule type.",
44660702
DM
4154 "enum" : [
4155 "in",
4156 "out",
4157 "group"
4158 ],
4159 "optional" : 1,
4160 "type" : "string"
7aacca6f 4161 }
56122987
DM
4162 }
4163 },
7aacca6f
DM
4164 "permissions" : {
4165 "check" : [
4166 "perm",
4167 "/",
4168 [
4169 "Sys.Modify"
4170 ]
4171 ]
4172 },
44660702
DM
4173 "protected" : 1,
4174 "proxyto" : null,
4175 "returns" : {
4176 "type" : "null"
4177 }
7aacca6f 4178 }
56122987 4179 },
44660702
DM
4180 "leaf" : 1,
4181 "path" : "/cluster/firewall/rules/{pos}",
4182 "text" : "{pos}"
7aacca6f
DM
4183 }
4184 ],
7aacca6f 4185 "info" : {
44660702 4186 "GET" : {
e9cd3bd4 4187 "allowtoken" : 1,
44660702
DM
4188 "description" : "List rules.",
4189 "method" : "GET",
4190 "name" : "get_rules",
7aacca6f 4191 "parameters" : {
44660702 4192 "additionalProperties" : 0
7aacca6f
DM
4193 },
4194 "permissions" : {
4195 "check" : [
4196 "perm",
4197 "/",
4198 [
44660702 4199 "Sys.Audit"
7aacca6f
DM
4200 ]
4201 ]
4202 },
44660702 4203 "proxyto" : null,
7aacca6f 4204 "returns" : {
7aacca6f
DM
4205 "items" : {
4206 "properties" : {
44660702
DM
4207 "pos" : {
4208 "type" : "integer"
7aacca6f
DM
4209 }
4210 },
4211 "type" : "object"
56122987 4212 },
7aacca6f
DM
4213 "links" : [
4214 {
44660702 4215 "href" : "{pos}",
7aacca6f
DM
4216 "rel" : "child"
4217 }
44660702
DM
4218 ],
4219 "type" : "array"
7aacca6f 4220 }
44660702 4221 },
7aacca6f 4222 "POST" : {
e9cd3bd4 4223 "allowtoken" : 1,
44660702 4224 "description" : "Create new rule.",
7aacca6f 4225 "method" : "POST",
44660702 4226 "name" : "create_rule",
7aacca6f
DM
4227 "parameters" : {
4228 "additionalProperties" : 0,
4229 "properties" : {
44660702
DM
4230 "action" : {
4231 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
4232 "maxLength" : 20,
7aacca6f 4233 "minLength" : 2,
44660702
DM
4234 "optional" : 0,
4235 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
4236 "type" : "string"
7aacca6f
DM
4237 },
4238 "comment" : {
e94f0d56 4239 "description" : "Descriptive comment.",
7aacca6f 4240 "optional" : 1,
013dc89f
DM
4241 "type" : "string",
4242 "typetext" : "<string>"
44660702
DM
4243 },
4244 "dest" : {
4245 "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
4246 "format" : "pve-fw-addr-spec",
0695fdaf 4247 "maxLength" : 512,
44660702 4248 "optional" : 1,
013dc89f
DM
4249 "type" : "string",
4250 "typetext" : "<string>"
44660702
DM
4251 },
4252 "digest" : {
82551b2b
TL
4253 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
4254 "maxLength" : 64,
44660702 4255 "optional" : 1,
013dc89f
DM
4256 "type" : "string",
4257 "typetext" : "<string>"
44660702
DM
4258 },
4259 "dport" : {
4260 "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
4261 "format" : "pve-fw-dport-spec",
4262 "optional" : 1,
013dc89f
DM
4263 "type" : "string",
4264 "typetext" : "<string>"
44660702
DM
4265 },
4266 "enable" : {
e94f0d56 4267 "description" : "Flag to enable/disable a rule.",
44660702
DM
4268 "minimum" : 0,
4269 "optional" : 1,
4bd7df8b 4270 "type" : "integer",
013dc89f 4271 "typetext" : "<integer> (0 - N)"
44660702 4272 },
4772952b 4273 "icmp-type" : {
287a95cf 4274 "description" : "Specify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'.",
4772952b
TL
4275 "format" : "pve-fw-icmp-type-spec",
4276 "optional" : 1,
4277 "type" : "string",
4278 "typetext" : "<string>"
4279 },
44660702
DM
4280 "iface" : {
4281 "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
4282 "format" : "pve-iface",
4283 "maxLength" : 20,
4284 "minLength" : 2,
4285 "optional" : 1,
013dc89f
DM
4286 "type" : "string",
4287 "typetext" : "<string>"
44660702 4288 },
95895385
TL
4289 "log" : {
4290 "description" : "Log level for firewall rule.",
4291 "enum" : [
4292 "emerg",
4293 "alert",
4294 "crit",
4295 "err",
4296 "warning",
4297 "notice",
4298 "info",
4299 "debug",
4300 "nolog"
4301 ],
4302 "optional" : 1,
4303 "type" : "string"
4304 },
44660702 4305 "macro" : {
e94f0d56 4306 "description" : "Use predefined standard macro.",
44660702
DM
4307 "maxLength" : 128,
4308 "optional" : 1,
013dc89f
DM
4309 "type" : "string",
4310 "typetext" : "<string>"
44660702
DM
4311 },
4312 "pos" : {
4313 "description" : "Update rule at position <pos>.",
4314 "minimum" : 0,
4315 "optional" : 1,
4bd7df8b 4316 "type" : "integer",
013dc89f 4317 "typetext" : "<integer> (0 - N)"
44660702
DM
4318 },
4319 "proto" : {
4320 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
4321 "format" : "pve-fw-protocol-spec",
4322 "optional" : 1,
013dc89f
DM
4323 "type" : "string",
4324 "typetext" : "<string>"
44660702
DM
4325 },
4326 "source" : {
4327 "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
4328 "format" : "pve-fw-addr-spec",
0695fdaf 4329 "maxLength" : 512,
44660702 4330 "optional" : 1,
013dc89f
DM
4331 "type" : "string",
4332 "typetext" : "<string>"
44660702
DM
4333 },
4334 "sport" : {
4335 "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
4336 "format" : "pve-fw-sport-spec",
4337 "optional" : 1,
013dc89f
DM
4338 "type" : "string",
4339 "typetext" : "<string>"
44660702
DM
4340 },
4341 "type" : {
e94f0d56 4342 "description" : "Rule type.",
44660702
DM
4343 "enum" : [
4344 "in",
4345 "out",
4346 "group"
4347 ],
4348 "optional" : 0,
4349 "type" : "string"
7aacca6f
DM
4350 }
4351 }
4352 },
4353 "permissions" : {
4354 "check" : [
4355 "perm",
4356 "/",
4357 [
4358 "Sys.Modify"
4359 ]
4360 ]
4361 },
44660702
DM
4362 "protected" : 1,
4363 "proxyto" : null,
7aacca6f 4364 "returns" : {
44660702
DM
4365 "type" : "null"
4366 }
4367 }
4368 },
4369 "leaf" : 0,
4370 "path" : "/cluster/firewall/rules",
4371 "text" : "rules"
4372 },
4373 {
4374 "children" : [
4375 {
4376 "children" : [
4377 {
4378 "info" : {
4379 "DELETE" : {
e9cd3bd4 4380 "allowtoken" : 1,
44660702
DM
4381 "description" : "Remove IP or Network from IPSet.",
4382 "method" : "DELETE",
4383 "name" : "remove_ip",
4384 "parameters" : {
4385 "additionalProperties" : 0,
4386 "properties" : {
4387 "cidr" : {
4388 "description" : "Network/IP specification in CIDR format.",
4389 "format" : "IPorCIDRorAlias",
013dc89f
DM
4390 "type" : "string",
4391 "typetext" : "<string>"
44660702
DM
4392 },
4393 "digest" : {
82551b2b
TL
4394 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
4395 "maxLength" : 64,
44660702 4396 "optional" : 1,
013dc89f
DM
4397 "type" : "string",
4398 "typetext" : "<string>"
44660702
DM
4399 },
4400 "name" : {
4401 "description" : "IP set name.",
4402 "maxLength" : 64,
4403 "minLength" : 2,
4404 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
4405 "type" : "string"
4406 }
4407 }
4408 },
4409 "permissions" : {
4410 "check" : [
4411 "perm",
4412 "/",
4413 [
4414 "Sys.Modify"
4415 ]
4416 ]
4417 },
4418 "protected" : 1,
4419 "returns" : {
4420 "type" : "null"
4421 }
7aacca6f 4422 },
44660702 4423 "GET" : {
e9cd3bd4 4424 "allowtoken" : 1,
44660702
DM
4425 "description" : "Read IP or Network settings from IPSet.",
4426 "method" : "GET",
4427 "name" : "read_ip",
4428 "parameters" : {
4429 "additionalProperties" : 0,
4430 "properties" : {
4431 "cidr" : {
4432 "description" : "Network/IP specification in CIDR format.",
4433 "format" : "IPorCIDRorAlias",
013dc89f
DM
4434 "type" : "string",
4435 "typetext" : "<string>"
44660702
DM
4436 },
4437 "name" : {
4438 "description" : "IP set name.",
4439 "maxLength" : 64,
4440 "minLength" : 2,
4441 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
4442 "type" : "string"
4443 }
4444 }
4445 },
4446 "permissions" : {
4447 "check" : [
4448 "perm",
4449 "/",
4450 [
4451 "Sys.Audit"
4452 ]
4453 ]
4454 },
4455 "protected" : 1,
4456 "returns" : {
4457 "type" : "object"
4458 }
7aacca6f 4459 },
44660702 4460 "PUT" : {
e9cd3bd4 4461 "allowtoken" : 1,
44660702
DM
4462 "description" : "Update IP or Network settings",
4463 "method" : "PUT",
4464 "name" : "update_ip",
4465 "parameters" : {
4466 "additionalProperties" : 0,
4467 "properties" : {
4468 "cidr" : {
4469 "description" : "Network/IP specification in CIDR format.",
4470 "format" : "IPorCIDRorAlias",
013dc89f
DM
4471 "type" : "string",
4472 "typetext" : "<string>"
44660702
DM
4473 },
4474 "comment" : {
4475 "optional" : 1,
013dc89f
DM
4476 "type" : "string",
4477 "typetext" : "<string>"
44660702
DM
4478 },
4479 "digest" : {
82551b2b
TL
4480 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
4481 "maxLength" : 64,
44660702 4482 "optional" : 1,
013dc89f
DM
4483 "type" : "string",
4484 "typetext" : "<string>"
44660702
DM
4485 },
4486 "name" : {
4487 "description" : "IP set name.",
4488 "maxLength" : 64,
4489 "minLength" : 2,
4490 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
4491 "type" : "string"
4492 },
4493 "nomatch" : {
4494 "optional" : 1,
013dc89f
DM
4495 "type" : "boolean",
4496 "typetext" : "<boolean>"
44660702
DM
4497 }
4498 }
4499 },
4500 "permissions" : {
4501 "check" : [
4502 "perm",
4503 "/",
4504 [
4505 "Sys.Modify"
4506 ]
4507 ]
4508 },
4509 "protected" : 1,
4510 "returns" : {
4511 "type" : "null"
4512 }
7aacca6f
DM
4513 }
4514 },
44660702
DM
4515 "leaf" : 1,
4516 "path" : "/cluster/firewall/ipset/{name}/{cidr}",
4517 "text" : "{cidr}"
7aacca6f 4518 }
44660702 4519 ],
7aacca6f
DM
4520 "info" : {
4521 "DELETE" : {
e9cd3bd4 4522 "allowtoken" : 1,
44660702
DM
4523 "description" : "Delete IPSet",
4524 "method" : "DELETE",
4525 "name" : "delete_ipset",
56122987 4526 "parameters" : {
44660702 4527 "additionalProperties" : 0,
56122987 4528 "properties" : {
81a3384d
TL
4529 "force" : {
4530 "description" : "Delete all members of the IPSet, if there are any.",
4531 "optional" : 1,
4532 "type" : "boolean",
4533 "typetext" : "<boolean>"
4534 },
56122987 4535 "name" : {
44660702 4536 "description" : "IP set name.",
56122987 4537 "maxLength" : 64,
44660702 4538 "minLength" : 2,
56122987 4539 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702 4540 "type" : "string"
56122987 4541 }
44660702 4542 }
7aacca6f 4543 },
56122987
DM
4544 "permissions" : {
4545 "check" : [
4546 "perm",
4547 "/",
4548 [
4549 "Sys.Modify"
4550 ]
4551 ]
4552 },
7aacca6f
DM
4553 "protected" : 1,
4554 "returns" : {
4555 "type" : "null"
44660702 4556 }
7aacca6f 4557 },
44660702 4558 "GET" : {
e9cd3bd4 4559 "allowtoken" : 1,
44660702
DM
4560 "description" : "List IPSet content",
4561 "method" : "GET",
4562 "name" : "get_ipset",
56122987
DM
4563 "parameters" : {
4564 "additionalProperties" : 0,
4565 "properties" : {
7aacca6f 4566 "name" : {
44660702 4567 "description" : "IP set name.",
7aacca6f 4568 "maxLength" : 64,
7aacca6f 4569 "minLength" : 2,
44660702 4570 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
56122987 4571 "type" : "string"
56122987 4572 }
7aacca6f 4573 }
56122987 4574 },
56122987
DM
4575 "permissions" : {
4576 "check" : [
4577 "perm",
4578 "/",
4579 [
44660702 4580 "Sys.Audit"
56122987
DM
4581 ]
4582 ]
44660702
DM
4583 },
4584 "returns" : {
4585 "items" : {
4586 "properties" : {
4587 "cidr" : {
4588 "type" : "string"
4589 },
4590 "comment" : {
4591 "optional" : 1,
4592 "type" : "string"
4593 },
4594 "digest" : {
82551b2b
TL
4595 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
4596 "maxLength" : 64,
44660702
DM
4597 "optional" : 0,
4598 "type" : "string"
4599 },
4600 "nomatch" : {
4601 "optional" : 1,
4602 "type" : "boolean"
4603 }
4604 },
4605 "type" : "object"
4606 },
4607 "links" : [
4608 {
4609 "href" : "{cidr}",
4610 "rel" : "child"
4611 }
4612 ],
4613 "type" : "array"
7aacca6f
DM
4614 }
4615 },
44660702 4616 "POST" : {
e9cd3bd4 4617 "allowtoken" : 1,
44660702
DM
4618 "description" : "Add IP or Network to IPSet.",
4619 "method" : "POST",
4620 "name" : "create_ip",
56122987
DM
4621 "parameters" : {
4622 "additionalProperties" : 0,
4623 "properties" : {
44660702
DM
4624 "cidr" : {
4625 "description" : "Network/IP specification in CIDR format.",
4626 "format" : "IPorCIDRorAlias",
013dc89f
DM
4627 "type" : "string",
4628 "typetext" : "<string>"
44660702
DM
4629 },
4630 "comment" : {
4631 "optional" : 1,
013dc89f
DM
4632 "type" : "string",
4633 "typetext" : "<string>"
44660702
DM
4634 },
4635 "name" : {
4636 "description" : "IP set name.",
4637 "maxLength" : 64,
4638 "minLength" : 2,
4639 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
4640 "type" : "string"
4641 },
4642 "nomatch" : {
4643 "optional" : 1,
013dc89f
DM
4644 "type" : "boolean",
4645 "typetext" : "<boolean>"
56122987
DM
4646 }
4647 }
4648 },
56122987
DM
4649 "permissions" : {
4650 "check" : [
4651 "perm",
4652 "/",
4653 [
44660702 4654 "Sys.Modify"
56122987
DM
4655 ]
4656 ]
4657 },
44660702 4658 "protected" : 1,
56122987 4659 "returns" : {
44660702
DM
4660 "type" : "null"
4661 }
56122987
DM
4662 }
4663 },
44660702
DM
4664 "leaf" : 0,
4665 "path" : "/cluster/firewall/ipset/{name}",
4666 "text" : "{name}"
56122987
DM
4667 }
4668 ],
56122987 4669 "info" : {
44660702 4670 "GET" : {
e9cd3bd4 4671 "allowtoken" : 1,
44660702
DM
4672 "description" : "List IPSets",
4673 "method" : "GET",
4674 "name" : "ipset_index",
56122987 4675 "parameters" : {
7aacca6f 4676 "additionalProperties" : 0
56122987 4677 },
56122987
DM
4678 "permissions" : {
4679 "check" : [
4680 "perm",
4681 "/",
4682 [
7aacca6f 4683 "Sys.Audit"
56122987
DM
4684 ]
4685 ]
4686 },
56122987
DM
4687 "returns" : {
4688 "items" : {
4689 "properties" : {
44660702
DM
4690 "comment" : {
4691 "optional" : 1,
4692 "type" : "string"
56122987 4693 },
44660702 4694 "digest" : {
82551b2b
TL
4695 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
4696 "maxLength" : 64,
44660702
DM
4697 "optional" : 0,
4698 "type" : "string"
4699 },
4700 "name" : {
4701 "description" : "IP set name.",
4702 "maxLength" : 64,
4703 "minLength" : 2,
4704 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
7aacca6f 4705 "type" : "string"
56122987
DM
4706 }
4707 },
4708 "type" : "object"
44660702
DM
4709 },
4710 "links" : [
4711 {
4712 "href" : "{name}",
4713 "rel" : "child"
4714 }
4715 ],
4716 "type" : "array"
56122987 4717 }
44660702
DM
4718 },
4719 "POST" : {
e9cd3bd4 4720 "allowtoken" : 1,
44660702
DM
4721 "description" : "Create new IPSet",
4722 "method" : "POST",
4723 "name" : "create_ipset",
7aacca6f
DM
4724 "parameters" : {
4725 "additionalProperties" : 0,
4726 "properties" : {
44660702
DM
4727 "comment" : {
4728 "optional" : 1,
013dc89f
DM
4729 "type" : "string",
4730 "typetext" : "<string>"
44660702
DM
4731 },
4732 "digest" : {
82551b2b
TL
4733 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
4734 "maxLength" : 64,
44660702 4735 "optional" : 1,
013dc89f
DM
4736 "type" : "string",
4737 "typetext" : "<string>"
44660702
DM
4738 },
4739 "name" : {
4740 "description" : "IP set name.",
4741 "maxLength" : 64,
4742 "minLength" : 2,
4743 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
4744 "type" : "string"
4745 },
4746 "rename" : {
4747 "description" : "Rename an existing IPSet. You can set 'rename' to the same value as 'name' to update the 'comment' of an existing IPSet.",
4748 "maxLength" : 64,
4749 "minLength" : 2,
4750 "optional" : 1,
4751 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
4752 "type" : "string"
7aacca6f
DM
4753 }
4754 }
4755 },
56122987
DM
4756 "permissions" : {
4757 "check" : [
4758 "perm",
4759 "/",
4760 [
44660702 4761 "Sys.Modify"
56122987
DM
4762 ]
4763 ]
4764 },
44660702 4765 "protected" : 1,
56122987 4766 "returns" : {
44660702
DM
4767 "type" : "null"
4768 }
56122987 4769 }
7aacca6f 4770 },
44660702
DM
4771 "leaf" : 0,
4772 "path" : "/cluster/firewall/ipset",
4773 "text" : "ipset"
4774 },
56122987 4775 {
44660702
DM
4776 "children" : [
4777 {
4778 "info" : {
4779 "DELETE" : {
e9cd3bd4 4780 "allowtoken" : 1,
44660702
DM
4781 "description" : "Remove IP or Network alias.",
4782 "method" : "DELETE",
4783 "name" : "remove_alias",
4784 "parameters" : {
4785 "additionalProperties" : 0,
4786 "properties" : {
4787 "digest" : {
82551b2b
TL
4788 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
4789 "maxLength" : 64,
44660702 4790 "optional" : 1,
013dc89f
DM
4791 "type" : "string",
4792 "typetext" : "<string>"
44660702
DM
4793 },
4794 "name" : {
4795 "description" : "Alias name.",
4796 "maxLength" : 64,
4797 "minLength" : 2,
4798 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
4799 "type" : "string"
4800 }
4801 }
4802 },
4803 "permissions" : {
4804 "check" : [
4805 "perm",
4806 "/",
4807 [
4808 "Sys.Modify"
4809 ]
4810 ]
4811 },
4812 "protected" : 1,
4813 "returns" : {
4814 "type" : "null"
4815 }
4816 },
4817 "GET" : {
e9cd3bd4 4818 "allowtoken" : 1,
44660702
DM
4819 "description" : "Read alias.",
4820 "method" : "GET",
4821 "name" : "read_alias",
4822 "parameters" : {
4823 "additionalProperties" : 0,
4824 "properties" : {
4825 "name" : {
4826 "description" : "Alias name.",
4827 "maxLength" : 64,
4828 "minLength" : 2,
4829 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
4830 "type" : "string"
4831 }
4832 }
4833 },
4834 "permissions" : {
4835 "check" : [
4836 "perm",
4837 "/",
4838 [
4839 "Sys.Audit"
4840 ]
4841 ]
4842 },
4843 "returns" : {
4844 "type" : "object"
4845 }
4846 },
4847 "PUT" : {
e9cd3bd4 4848 "allowtoken" : 1,
44660702
DM
4849 "description" : "Update IP or Network alias.",
4850 "method" : "PUT",
4851 "name" : "update_alias",
4852 "parameters" : {
4853 "additionalProperties" : 0,
4854 "properties" : {
4855 "cidr" : {
4856 "description" : "Network/IP specification in CIDR format.",
4857 "format" : "IPorCIDR",
013dc89f
DM
4858 "type" : "string",
4859 "typetext" : "<string>"
44660702
DM
4860 },
4861 "comment" : {
4862 "optional" : 1,
013dc89f
DM
4863 "type" : "string",
4864 "typetext" : "<string>"
44660702
DM
4865 },
4866 "digest" : {
82551b2b
TL
4867 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
4868 "maxLength" : 64,
44660702 4869 "optional" : 1,
013dc89f
DM
4870 "type" : "string",
4871 "typetext" : "<string>"
44660702
DM
4872 },
4873 "name" : {
4874 "description" : "Alias name.",
4875 "maxLength" : 64,
4876 "minLength" : 2,
4877 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
4878 "type" : "string"
4879 },
4880 "rename" : {
4881 "description" : "Rename an existing alias.",
4882 "maxLength" : 64,
4883 "minLength" : 2,
4884 "optional" : 1,
4885 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
4886 "type" : "string"
4887 }
4888 }
4889 },
4890 "permissions" : {
4891 "check" : [
4892 "perm",
4893 "/",
4894 [
4895 "Sys.Modify"
4896 ]
4897 ]
4898 },
4899 "protected" : 1,
4900 "returns" : {
4901 "type" : "null"
4902 }
4903 }
4904 },
4905 "leaf" : 1,
4906 "path" : "/cluster/firewall/aliases/{name}",
4907 "text" : "{name}"
4908 }
4909 ],
4910 "info" : {
4911 "GET" : {
e9cd3bd4 4912 "allowtoken" : 1,
44660702
DM
4913 "description" : "List aliases",
4914 "method" : "GET",
4915 "name" : "get_aliases",
4916 "parameters" : {
4917 "additionalProperties" : 0
4918 },
4919 "permissions" : {
4920 "check" : [
4921 "perm",
4922 "/",
4923 [
4924 "Sys.Audit"
4925 ]
4926 ]
4927 },
4928 "returns" : {
4929 "items" : {
4930 "properties" : {
4931 "cidr" : {
4932 "type" : "string"
4933 },
4934 "comment" : {
4935 "optional" : 1,
4936 "type" : "string"
4937 },
4938 "digest" : {
82551b2b
TL
4939 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
4940 "maxLength" : 64,
44660702
DM
4941 "optional" : 0,
4942 "type" : "string"
4943 },
4944 "name" : {
4945 "type" : "string"
4946 }
4947 },
4948 "type" : "object"
4949 },
4950 "links" : [
4951 {
4952 "href" : "{name}",
4953 "rel" : "child"
4954 }
4955 ],
4956 "type" : "array"
4957 }
4958 },
4959 "POST" : {
e9cd3bd4 4960 "allowtoken" : 1,
44660702
DM
4961 "description" : "Create IP or Network Alias.",
4962 "method" : "POST",
4963 "name" : "create_alias",
56122987
DM
4964 "parameters" : {
4965 "additionalProperties" : 0,
4966 "properties" : {
44660702
DM
4967 "cidr" : {
4968 "description" : "Network/IP specification in CIDR format.",
4969 "format" : "IPorCIDR",
013dc89f
DM
4970 "type" : "string",
4971 "typetext" : "<string>"
44660702
DM
4972 },
4973 "comment" : {
4974 "optional" : 1,
013dc89f
DM
4975 "type" : "string",
4976 "typetext" : "<string>"
44660702
DM
4977 },
4978 "name" : {
4979 "description" : "Alias name.",
4980 "maxLength" : 64,
4981 "minLength" : 2,
4982 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
4983 "type" : "string"
56122987
DM
4984 }
4985 }
4986 },
56122987
DM
4987 "permissions" : {
4988 "check" : [
4989 "perm",
4990 "/",
4991 [
4992 "Sys.Modify"
4993 ]
4994 ]
4995 },
44660702 4996 "protected" : 1,
56122987
DM
4997 "returns" : {
4998 "type" : "null"
4999 }
44660702
DM
5000 }
5001 },
5002 "leaf" : 0,
5003 "path" : "/cluster/firewall/aliases",
5004 "text" : "aliases"
5005 },
5006 {
5007 "info" : {
5008 "GET" : {
e9cd3bd4 5009 "allowtoken" : 1,
44660702
DM
5010 "description" : "Get Firewall options.",
5011 "method" : "GET",
5012 "name" : "get_options",
5013 "parameters" : {
5014 "additionalProperties" : 0
7aacca6f 5015 },
56122987
DM
5016 "permissions" : {
5017 "check" : [
5018 "perm",
5019 "/",
5020 [
44660702 5021 "Sys.Audit"
56122987
DM
5022 ]
5023 ]
5024 },
44660702 5025 "returns" : {
56122987 5026 "properties" : {
5da3d723
TL
5027 "ebtables" : {
5028 "default" : 1,
5029 "description" : "Enable ebtables rules cluster wide.",
5030 "optional" : 1,
5031 "type" : "boolean"
5032 },
44660702
DM
5033 "enable" : {
5034 "description" : "Enable or disable the firewall cluster wide.",
5035 "minimum" : 0,
56122987 5036 "optional" : 1,
7aacca6f 5037 "type" : "integer"
56122987 5038 },
95895385
TL
5039 "log_ratelimit" : {
5040 "description" : "Log ratelimiting settings",
5041 "format" : {
5042 "burst" : {
5043 "default" : 5,
4772952b 5044 "description" : "Initial burst of packages which will always get logged before the rate is applied",
95895385
TL
5045 "minimum" : 0,
5046 "optional" : 1,
5047 "type" : "integer"
5048 },
5049 "enable" : {
5050 "default" : "1",
5051 "default_key" : 1,
5052 "description" : "Enable or disable log rate limiting",
5053 "type" : "boolean"
5054 },
5055 "rate" : {
5056 "default" : "1/second",
5057 "description" : "Frequency with which the burst bucket gets refilled",
5058 "format_description" : "rate",
5059 "optional" : 1,
5060 "pattern" : "[1-9][0-9]*\\/(second|minute|hour|day)",
5061 "type" : "string"
5062 }
5063 },
5064 "optional" : 1,
5065 "type" : "string"
5066 },
44660702
DM
5067 "policy_in" : {
5068 "description" : "Input policy.",
5069 "enum" : [
5070 "ACCEPT",
5071 "REJECT",
5072 "DROP"
5073 ],
56122987 5074 "optional" : 1,
44660702 5075 "type" : "string"
7aacca6f 5076 },
44660702
DM
5077 "policy_out" : {
5078 "description" : "Output policy.",
5079 "enum" : [
5080 "ACCEPT",
5081 "REJECT",
5082 "DROP"
5083 ],
7aacca6f 5084 "optional" : 1,
44660702
DM
5085 "type" : "string"
5086 }
5087 },
5088 "type" : "object"
5089 }
5090 },
5091 "PUT" : {
e9cd3bd4 5092 "allowtoken" : 1,
44660702
DM
5093 "description" : "Set Firewall options.",
5094 "method" : "PUT",
5095 "name" : "set_options",
5096 "parameters" : {
5097 "additionalProperties" : 0,
5098 "properties" : {
5099 "delete" : {
5100 "description" : "A list of settings you want to delete.",
5101 "format" : "pve-configid-list",
56122987 5102 "optional" : 1,
013dc89f
DM
5103 "type" : "string",
5104 "typetext" : "<string>"
56122987 5105 },
44660702 5106 "digest" : {
82551b2b
TL
5107 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
5108 "maxLength" : 64,
56122987 5109 "optional" : 1,
013dc89f
DM
5110 "type" : "string",
5111 "typetext" : "<string>"
56122987 5112 },
5da3d723
TL
5113 "ebtables" : {
5114 "default" : 1,
5115 "description" : "Enable ebtables rules cluster wide.",
5116 "optional" : 1,
5117 "type" : "boolean",
5118 "typetext" : "<boolean>"
5119 },
44660702
DM
5120 "enable" : {
5121 "description" : "Enable or disable the firewall cluster wide.",
7aacca6f 5122 "minimum" : 0,
56122987 5123 "optional" : 1,
4bd7df8b 5124 "type" : "integer",
013dc89f 5125 "typetext" : "<integer> (0 - N)"
56122987 5126 },
95895385
TL
5127 "log_ratelimit" : {
5128 "description" : "Log ratelimiting settings",
5129 "format" : {
5130 "burst" : {
5131 "default" : 5,
4772952b 5132 "description" : "Initial burst of packages which will always get logged before the rate is applied",
95895385
TL
5133 "minimum" : 0,
5134 "optional" : 1,
5135 "type" : "integer"
5136 },
5137 "enable" : {
5138 "default" : "1",
5139 "default_key" : 1,
5140 "description" : "Enable or disable log rate limiting",
5141 "type" : "boolean"
5142 },
5143 "rate" : {
5144 "default" : "1/second",
5145 "description" : "Frequency with which the burst bucket gets refilled",
5146 "format_description" : "rate",
5147 "optional" : 1,
5148 "pattern" : "[1-9][0-9]*\\/(second|minute|hour|day)",
5149 "type" : "string"
5150 }
5151 },
5152 "optional" : 1,
5153 "type" : "string",
5154 "typetext" : "[enable=]<1|0> [,burst=<integer>] [,rate=<rate>]"
5155 },
44660702
DM
5156 "policy_in" : {
5157 "description" : "Input policy.",
56122987 5158 "enum" : [
44660702
DM
5159 "ACCEPT",
5160 "REJECT",
5161 "DROP"
56122987 5162 ],
56122987 5163 "optional" : 1,
44660702 5164 "type" : "string"
56122987 5165 },
44660702
DM
5166 "policy_out" : {
5167 "description" : "Output policy.",
56122987 5168 "enum" : [
44660702
DM
5169 "ACCEPT",
5170 "REJECT",
5171 "DROP"
56122987 5172 ],
7aacca6f 5173 "optional" : 1,
44660702 5174 "type" : "string"
56122987 5175 }
44660702
DM
5176 }
5177 },
5178 "permissions" : {
5179 "check" : [
5180 "perm",
5181 "/",
5182 [
5183 "Sys.Modify"
5184 ]
5185 ]
7aacca6f
DM
5186 },
5187 "protected" : 1,
44660702
DM
5188 "returns" : {
5189 "type" : "null"
5190 }
5191 }
5192 },
5193 "leaf" : 1,
5194 "path" : "/cluster/firewall/options",
5195 "text" : "options"
5196 },
5197 {
5198 "info" : {
7aacca6f 5199 "GET" : {
e9cd3bd4 5200 "allowtoken" : 1,
44660702 5201 "description" : "List available macros",
7aacca6f 5202 "method" : "GET",
44660702
DM
5203 "name" : "get_macros",
5204 "parameters" : {
5205 "additionalProperties" : 0
7aacca6f 5206 },
44660702
DM
5207 "permissions" : {
5208 "user" : "all"
5209 },
5210 "returns" : {
5211 "items" : {
5212 "properties" : {
5213 "descr" : {
5214 "description" : "More verbose description (if available).",
5215 "type" : "string"
5216 },
5217 "macro" : {
5218 "description" : "Macro name.",
5219 "type" : "string"
5220 }
5221 },
5222 "type" : "object"
5223 },
5224 "type" : "array"
5225 }
5226 }
5227 },
5228 "leaf" : 1,
5229 "path" : "/cluster/firewall/macros",
5230 "text" : "macros"
5231 },
5232 {
5233 "info" : {
5234 "GET" : {
e9cd3bd4 5235 "allowtoken" : 1,
44660702
DM
5236 "description" : "Lists possible IPSet/Alias reference which are allowed in source/dest properties.",
5237 "method" : "GET",
5238 "name" : "refs",
7aacca6f 5239 "parameters" : {
44660702 5240 "additionalProperties" : 0,
7aacca6f 5241 "properties" : {
44660702
DM
5242 "type" : {
5243 "description" : "Only list references of specified type.",
5244 "enum" : [
5245 "alias",
5246 "ipset"
5247 ],
5248 "optional" : 1,
5249 "type" : "string"
7aacca6f 5250 }
44660702 5251 }
7aacca6f
DM
5252 },
5253 "permissions" : {
5254 "check" : [
5255 "perm",
5256 "/",
5257 [
5258 "Sys.Audit"
5259 ]
5260 ]
5261 },
44660702
DM
5262 "returns" : {
5263 "items" : {
5264 "properties" : {
5265 "comment" : {
5266 "optional" : 1,
5267 "type" : "string"
5268 },
5269 "name" : {
5270 "type" : "string"
5271 },
5272 "ref" : {
5273 "type" : "string"
5274 },
07b013aa
TL
5275 "scope" : {
5276 "type" : "string"
5277 },
44660702
DM
5278 "type" : {
5279 "enum" : [
5280 "alias",
5281 "ipset"
5282 ],
5283 "type" : "string"
5284 }
5285 },
5286 "type" : "object"
5287 },
5288 "type" : "array"
5289 }
56122987
DM
5290 }
5291 },
7aacca6f 5292 "leaf" : 1,
44660702
DM
5293 "path" : "/cluster/firewall/refs",
5294 "text" : "refs"
56122987
DM
5295 }
5296 ],
56122987 5297 "info" : {
44660702 5298 "GET" : {
e9cd3bd4 5299 "allowtoken" : 1,
44660702
DM
5300 "description" : "Directory index.",
5301 "method" : "GET",
5302 "name" : "index",
56122987 5303 "parameters" : {
56122987
DM
5304 "additionalProperties" : 0
5305 },
44660702
DM
5306 "permissions" : {
5307 "user" : "all"
5308 },
56122987 5309 "returns" : {
44660702
DM
5310 "items" : {
5311 "properties" : {},
5312 "type" : "object"
5313 },
7aacca6f
DM
5314 "links" : [
5315 {
44660702
DM
5316 "href" : "{name}",
5317 "rel" : "child"
7aacca6f
DM
5318 }
5319 ],
7aacca6f 5320 "type" : "array"
7aacca6f 5321 }
56122987
DM
5322 }
5323 },
44660702
DM
5324 "leaf" : 0,
5325 "path" : "/cluster/firewall",
5326 "text" : "firewall"
7aacca6f
DM
5327 },
5328 {
56122987
DM
5329 "children" : [
5330 {
04d22a9f
TL
5331 "children" : [
5332 {
5333 "info" : {
5334 "GET" : {
5335 "allowtoken" : 1,
5336 "description" : "Returns included guests and the backup status of their disks. Optimized to be used in ExtJS tree views.",
5337 "method" : "GET",
5338 "name" : "get_volume_backup_included",
5339 "parameters" : {
5340 "additionalProperties" : 0,
5341 "properties" : {
5342 "id" : {
5343 "description" : "The job ID.",
5344 "maxLength" : 50,
5345 "type" : "string",
5346 "typetext" : "<string>"
5347 }
5348 }
5349 },
5350 "permissions" : {
5351 "check" : [
5352 "perm",
5353 "/",
5354 [
5355 "Sys.Audit"
5356 ]
5357 ]
5358 },
5359 "protected" : 1,
5360 "returns" : {
5361 "description" : "Root node of the tree object. Children represent guests, grandchildren represent volumes of that guest.",
5362 "properties" : {
5363 "children" : {
5364 "items" : {
5365 "properties" : {
5366 "children" : {
5367 "description" : "The volumes of the guest with the information if they will be included in backups.",
5368 "items" : {
5369 "properties" : {
5370 "id" : {
5371 "description" : "Configuration key of the volume.",
5372 "type" : "string"
5373 },
5374 "included" : {
5375 "description" : "Whether the volume is included in the backup or not.",
5376 "type" : "boolean"
5377 },
5378 "name" : {
5379 "description" : "Name of the volume.",
5380 "type" : "string"
5381 },
5382 "reason" : {
5383 "description" : "The reason why the volume is included (or excluded).",
5384 "type" : "string"
5385 }
5386 },
5387 "type" : "object"
5388 },
5389 "optional" : 1,
5390 "type" : "array"
5391 },
5392 "id" : {
5393 "description" : "VMID of the guest.",
5394 "type" : "integer"
5395 },
5396 "name" : {
5397 "description" : "Name of the guest",
5398 "optional" : 1,
5399 "type" : "string"
5400 },
5401 "type" : {
5402 "description" : "Type of the guest, VM, CT or unknown for removed but not purged guests.",
5403 "enum" : [
5404 "qemu",
5405 "lxc",
5406 "unknown"
5407 ],
5408 "type" : "string"
5409 }
5410 },
5411 "type" : "object"
5412 },
5413 "type" : "array"
5414 }
5415 },
5416 "type" : "object"
5417 }
5418 }
5419 },
5420 "leaf" : 1,
5421 "path" : "/cluster/backup/{id}/included_volumes",
5422 "text" : "included_volumes"
5423 }
5424 ],
56122987 5425 "info" : {
44660702 5426 "DELETE" : {
e9cd3bd4 5427 "allowtoken" : 1,
44660702
DM
5428 "description" : "Delete vzdump backup job definition.",
5429 "method" : "DELETE",
5430 "name" : "delete_job",
5431 "parameters" : {
5432 "additionalProperties" : 0,
5433 "properties" : {
5434 "id" : {
5435 "description" : "The job ID.",
5436 "maxLength" : 50,
013dc89f
DM
5437 "type" : "string",
5438 "typetext" : "<string>"
44660702
DM
5439 }
5440 }
5441 },
5442 "permissions" : {
5443 "check" : [
5444 "perm",
5445 "/",
5446 [
5447 "Sys.Modify"
5448 ]
5449 ]
5450 },
5451 "protected" : 1,
56122987
DM
5452 "returns" : {
5453 "type" : "null"
44660702
DM
5454 }
5455 },
5456 "GET" : {
e9cd3bd4 5457 "allowtoken" : 1,
44660702
DM
5458 "description" : "Read vzdump backup job definition.",
5459 "method" : "GET",
5460 "name" : "read_job",
5461 "parameters" : {
5462 "additionalProperties" : 0,
5463 "properties" : {
5464 "id" : {
5465 "description" : "The job ID.",
5466 "maxLength" : 50,
013dc89f
DM
5467 "type" : "string",
5468 "typetext" : "<string>"
44660702
DM
5469 }
5470 }
56122987 5471 },
7aacca6f
DM
5472 "permissions" : {
5473 "check" : [
5474 "perm",
5475 "/",
5476 [
44660702 5477 "Sys.Audit"
7aacca6f
DM
5478 ]
5479 ]
5480 },
44660702
DM
5481 "returns" : {
5482 "type" : "object"
5483 }
5484 },
5485 "PUT" : {
e9cd3bd4 5486 "allowtoken" : 1,
44660702
DM
5487 "description" : "Update vzdump backup job definition.",
5488 "method" : "PUT",
5489 "name" : "update_job",
56122987 5490 "parameters" : {
44660702 5491 "additionalProperties" : 0,
56122987 5492 "properties" : {
44660702
DM
5493 "all" : {
5494 "default" : 0,
5495 "description" : "Backup all known guest systems on this host.",
7aacca6f 5496 "optional" : 1,
013dc89f
DM
5497 "type" : "boolean",
5498 "typetext" : "<boolean>"
7aacca6f 5499 },
44660702
DM
5500 "bwlimit" : {
5501 "default" : 0,
4a407cfd 5502 "description" : "Limit I/O bandwidth (in KiB/s).",
44660702
DM
5503 "minimum" : 0,
5504 "optional" : 1,
4bd7df8b 5505 "type" : "integer",
013dc89f 5506 "typetext" : "<integer> (0 - N)"
44660702 5507 },
5370fa8c
TL
5508 "comment" : {
5509 "description" : "Description for the Job.",
5510 "maxLength" : 512,
5511 "optional" : 1,
5512 "type" : "string",
5513 "typetext" : "<string>"
5514 },
44660702
DM
5515 "compress" : {
5516 "default" : "0",
5517 "description" : "Compress dump file.",
7aacca6f 5518 "enum" : [
44660702
DM
5519 "0",
5520 "1",
5521 "gzip",
c5aa7e14
TL
5522 "lzo",
5523 "zstd"
7aacca6f 5524 ],
44660702
DM
5525 "optional" : 1,
5526 "type" : "string"
7aacca6f 5527 },
44660702
DM
5528 "delete" : {
5529 "description" : "A list of settings you want to delete.",
5530 "format" : "pve-configid-list",
7aacca6f 5531 "optional" : 1,
013dc89f
DM
5532 "type" : "string",
5533 "typetext" : "<string>"
56122987 5534 },
44660702
DM
5535 "dow" : {
5536 "description" : "Day of week selection.",
5537 "format" : "pve-day-of-week-list",
7aacca6f 5538 "optional" : 1,
5370fa8c 5539 "requires" : "starttime",
013dc89f
DM
5540 "type" : "string",
5541 "typetext" : "<string>"
56122987 5542 },
44660702
DM
5543 "dumpdir" : {
5544 "description" : "Store resulting files to specified directory.",
56122987 5545 "optional" : 1,
013dc89f
DM
5546 "type" : "string",
5547 "typetext" : "<string>"
56122987 5548 },
44660702
DM
5549 "enabled" : {
5550 "default" : "1",
5551 "description" : "Enable or disable the job.",
5552 "optional" : 1,
013dc89f
DM
5553 "type" : "boolean",
5554 "typetext" : "<boolean>"
44660702
DM
5555 },
5556 "exclude" : {
5557 "description" : "Exclude specified guest systems (assumes --all)",
5558 "format" : "pve-vmid-list",
5559 "optional" : 1,
013dc89f
DM
5560 "type" : "string",
5561 "typetext" : "<string>"
44660702
DM
5562 },
5563 "exclude-path" : {
c6d5bae8 5564 "description" : "Exclude certain files/directories (shell globs). Paths starting with '/' are anchored to the container's root, other paths match relative to each subdirectory.",
4a407cfd
TL
5565 "items" : {
5566 "type" : "string"
5567 },
44660702 5568 "optional" : 1,
4a407cfd
TL
5569 "type" : "array",
5570 "typetext" : "<array>"
44660702 5571 },
907e4bc3
TL
5572 "fleecing" : {
5573 "description" : "Options for backup fleecing (VM only).",
5574 "format" : "backup-fleecing",
5575 "optional" : 1,
5576 "type" : "string",
5577 "typetext" : "[[enabled=]<1|0>] [,storage=<storage ID>]"
5578 },
44660702
DM
5579 "id" : {
5580 "description" : "The job ID.",
5581 "maxLength" : 50,
013dc89f
DM
5582 "type" : "string",
5583 "typetext" : "<string>"
44660702
DM
5584 },
5585 "ionice" : {
5586 "default" : 7,
159464a9 5587 "description" : "Set IO priority when using the BFQ scheduler. For snapshot and suspend mode backups of VMs, this only affects the compressor. A value of 8 means the idle priority is used, otherwise the best-effort priority is used with the specified value.",
44660702
DM
5588 "maximum" : 8,
5589 "minimum" : 0,
5590 "optional" : 1,
4bd7df8b 5591 "type" : "integer",
013dc89f 5592 "typetext" : "<integer> (0 - 8)"
44660702
DM
5593 },
5594 "lockwait" : {
5595 "default" : 180,
5596 "description" : "Maximal time to wait for the global lock (minutes).",
5597 "minimum" : 0,
5598 "optional" : 1,
4bd7df8b 5599 "type" : "integer",
013dc89f 5600 "typetext" : "<integer> (0 - N)"
44660702
DM
5601 },
5602 "mailnotification" : {
5603 "default" : "always",
c6d5bae8 5604 "description" : "Deprecated: use notification targets/matchers instead. Specify when to send a notification mail",
56122987 5605 "enum" : [
44660702
DM
5606 "always",
5607 "failure"
56122987 5608 ],
44660702
DM
5609 "optional" : 1,
5610 "type" : "string"
5611 },
5612 "mailto" : {
c6d5bae8 5613 "description" : "Deprecated: Use notification targets/matchers instead. Comma-separated list of email addresses or users that should receive email notifications.",
d2656385 5614 "format" : "email-or-username-list",
44660702 5615 "optional" : 1,
013dc89f
DM
5616 "type" : "string",
5617 "typetext" : "<string>"
44660702
DM
5618 },
5619 "maxfiles" : {
0695fdaf 5620 "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per guest system.",
44660702
DM
5621 "minimum" : 1,
5622 "optional" : 1,
4bd7df8b 5623 "type" : "integer",
013dc89f 5624 "typetext" : "<integer> (1 - N)"
44660702
DM
5625 },
5626 "mode" : {
5627 "default" : "snapshot",
5628 "description" : "Backup mode.",
5629 "enum" : [
5630 "snapshot",
5631 "suspend",
5632 "stop"
5633 ],
5634 "optional" : 1,
5635 "type" : "string"
5636 },
5637 "node" : {
5638 "description" : "Only run if executed on this node.",
5639 "format" : "pve-node",
5640 "optional" : 1,
013dc89f
DM
5641 "type" : "string",
5642 "typetext" : "<string>"
44660702 5643 },
7af2edf9 5644 "notes-template" : {
4e7f60c2
TL
5645 "description" : "Template string for generating notes for the backup(s). It can contain variables which will be replaced by their values. Currently supported are {{cluster}}, {{guestname}}, {{node}}, and {{vmid}}, but more might be added in the future. Needs to be a single line, newline and backslash need to be escaped as '\\n' and '\\\\' respectively.",
5646 "maxLength" : 1024,
7af2edf9
TL
5647 "optional" : 1,
5648 "requires" : "storage",
5649 "type" : "string",
5650 "typetext" : "<string>"
5651 },
c6d5bae8
TL
5652 "notification-mode" : {
5653 "default" : "auto",
5654 "description" : "Determine which notification system to use. If set to 'legacy-sendmail', vzdump will consider the mailto/mailnotification parameters and send emails to the specified address(es) via the 'sendmail' command. If set to 'notification-system', a notification will be sent via PVE's notification system, and the mailto and mailnotification will be ignored. If set to 'auto' (default setting), an email will be sent if mailto is set, and the notification system will be used if not.",
5655 "enum" : [
5656 "auto",
5657 "legacy-sendmail",
5658 "notification-system"
5659 ],
5660 "optional" : 1,
5661 "type" : "string"
5662 },
82551b2b
TL
5663 "notification-policy" : {
5664 "default" : "always",
c6d5bae8 5665 "description" : "Deprecated: Do not use",
82551b2b
TL
5666 "enum" : [
5667 "always",
5668 "failure",
5669 "never"
5670 ],
5671 "optional" : 1,
5672 "type" : "string"
5673 },
5674 "notification-target" : {
c6d5bae8 5675 "description" : "Deprecated: Do not use",
82551b2b
TL
5676 "format" : "pve-configid",
5677 "optional" : 1,
5678 "type" : "string",
5679 "typetext" : "<string>"
5680 },
4e7f60c2
TL
5681 "performance" : {
5682 "description" : "Other performance-related settings.",
5683 "format" : "backup-performance",
5684 "optional" : 1,
5685 "type" : "string",
82551b2b 5686 "typetext" : "[max-workers=<integer>] [,pbs-entries-max=<integer>]"
4e7f60c2 5687 },
44660702
DM
5688 "pigz" : {
5689 "default" : 0,
5690 "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count.",
5691 "optional" : 1,
013dc89f
DM
5692 "type" : "integer",
5693 "typetext" : "<integer>"
44660702 5694 },
9226ccbc
TL
5695 "pool" : {
5696 "description" : "Backup all known guest systems included in the specified pool.",
5697 "optional" : 1,
5698 "type" : "string",
5699 "typetext" : "<string>"
5700 },
7af2edf9
TL
5701 "protected" : {
5702 "description" : "If true, mark backup(s) as protected.",
5703 "optional" : 1,
5704 "requires" : "storage",
5705 "type" : "boolean",
5706 "typetext" : "<boolean>"
5707 },
739d4d64 5708 "prune-backups" : {
0695fdaf 5709 "default" : "keep-all=1",
739d4d64
TL
5710 "description" : "Use these retention options instead of those from the storage configuration.",
5711 "format" : "prune-backups",
5712 "optional" : 1,
5713 "type" : "string",
4772952b 5714 "typetext" : "[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
739d4d64 5715 },
44660702
DM
5716 "quiet" : {
5717 "default" : 0,
5718 "description" : "Be quiet.",
5719 "optional" : 1,
013dc89f
DM
5720 "type" : "boolean",
5721 "typetext" : "<boolean>"
44660702
DM
5722 },
5723 "remove" : {
5724 "default" : 1,
0695fdaf 5725 "description" : "Prune older backups according to 'prune-backups'.",
44660702 5726 "optional" : 1,
013dc89f
DM
5727 "type" : "boolean",
5728 "typetext" : "<boolean>"
44660702 5729 },
de786b48
TL
5730 "repeat-missed" : {
5731 "default" : 0,
5732 "description" : "If true, the job will be run as soon as possible if it was missed while the scheduler was not running.",
5733 "optional" : 1,
5734 "type" : "boolean",
5735 "typetext" : "<boolean>"
5736 },
5370fa8c
TL
5737 "schedule" : {
5738 "description" : "Backup schedule. The format is a subset of `systemd` calendar events.",
5739 "format" : "pve-calendar-event",
5740 "maxLength" : 128,
5741 "optional" : 1,
5742 "type" : "string",
5743 "typetext" : "<string>"
5744 },
44660702
DM
5745 "script" : {
5746 "description" : "Use specified hook script.",
5747 "optional" : 1,
013dc89f
DM
5748 "type" : "string",
5749 "typetext" : "<string>"
44660702 5750 },
44660702
DM
5751 "starttime" : {
5752 "description" : "Job Start time.",
5370fa8c 5753 "optional" : 1,
44660702 5754 "pattern" : "\\d{1,2}:\\d{1,2}",
56122987 5755 "type" : "string",
44660702 5756 "typetext" : "HH:MM"
7aacca6f 5757 },
44660702
DM
5758 "stdexcludes" : {
5759 "default" : 1,
5760 "description" : "Exclude temporary files and logs.",
5761 "optional" : 1,
013dc89f
DM
5762 "type" : "boolean",
5763 "typetext" : "<boolean>"
44660702
DM
5764 },
5765 "stop" : {
5766 "default" : 0,
1e3f8156 5767 "description" : "Stop running backup jobs on this host.",
44660702 5768 "optional" : 1,
013dc89f
DM
5769 "type" : "boolean",
5770 "typetext" : "<boolean>"
44660702
DM
5771 },
5772 "stopwait" : {
5773 "default" : 10,
5774 "description" : "Maximal time to wait until a guest system is stopped (minutes).",
5775 "minimum" : 0,
5776 "optional" : 1,
4bd7df8b 5777 "type" : "integer",
013dc89f 5778 "typetext" : "<integer> (0 - N)"
44660702
DM
5779 },
5780 "storage" : {
5781 "description" : "Store resulting file to this storage.",
5782 "format" : "pve-storage-id",
907e4bc3 5783 "format_description" : "storage ID",
44660702 5784 "optional" : 1,
013dc89f 5785 "type" : "string",
907e4bc3 5786 "typetext" : "<storage ID>"
56122987 5787 },
44660702
DM
5788 "tmpdir" : {
5789 "description" : "Store temporary files to specified directory.",
5790 "optional" : 1,
013dc89f
DM
5791 "type" : "string",
5792 "typetext" : "<string>"
44660702
DM
5793 },
5794 "vmid" : {
5795 "description" : "The ID of the guest system you want to backup.",
5796 "format" : "pve-vmid-list",
5797 "optional" : 1,
013dc89f
DM
5798 "type" : "string",
5799 "typetext" : "<string>"
c5aa7e14
TL
5800 },
5801 "zstd" : {
5802 "default" : 1,
c6d5bae8 5803 "description" : "Zstd threads. N=0 uses half of the available cores, if N is set to a value bigger than 0, N is used as thread count.",
c5aa7e14
TL
5804 "optional" : 1,
5805 "type" : "integer",
5806 "typetext" : "<integer>"
56122987 5807 }
44660702 5808 }
56122987
DM
5809 },
5810 "permissions" : {
5811 "check" : [
5812 "perm",
5813 "/",
5814 [
44660702 5815 "Sys.Modify"
56122987 5816 ]
04d22a9f
TL
5817 ],
5818 "description" : "The 'tmpdir', 'dumpdir' and 'script' parameters are additionally restricted to the 'root@pam' user."
56122987 5819 },
44660702
DM
5820 "protected" : 1,
5821 "returns" : {
5822 "type" : "null"
7aacca6f 5823 }
56122987
DM
5824 }
5825 },
04d22a9f 5826 "leaf" : 0,
44660702
DM
5827 "path" : "/cluster/backup/{id}",
5828 "text" : "{id}"
5829 }
5830 ],
5831 "info" : {
5832 "GET" : {
e9cd3bd4 5833 "allowtoken" : 1,
44660702
DM
5834 "description" : "List vzdump backup schedule.",
5835 "method" : "GET",
5836 "name" : "index",
5837 "parameters" : {
5838 "additionalProperties" : 0
5839 },
5840 "permissions" : {
5841 "check" : [
5842 "perm",
5843 "/",
5844 [
5845 "Sys.Audit"
5846 ]
5847 ]
5848 },
5849 "returns" : {
5850 "items" : {
5851 "properties" : {
5852 "id" : {
1c532546
TL
5853 "description" : "The job ID.",
5854 "maxLength" : 50,
44660702
DM
5855 "type" : "string"
5856 }
5857 },
5858 "type" : "object"
5859 },
5860 "links" : [
5861 {
5862 "href" : "{id}",
5863 "rel" : "child"
5864 }
5865 ],
5866 "type" : "array"
5867 }
5868 },
5869 "POST" : {
e9cd3bd4 5870 "allowtoken" : 1,
44660702
DM
5871 "description" : "Create new vzdump backup job.",
5872 "method" : "POST",
5873 "name" : "create_job",
5874 "parameters" : {
5875 "additionalProperties" : 0,
5876 "properties" : {
5877 "all" : {
5878 "default" : 0,
5879 "description" : "Backup all known guest systems on this host.",
5880 "optional" : 1,
013dc89f
DM
5881 "type" : "boolean",
5882 "typetext" : "<boolean>"
44660702
DM
5883 },
5884 "bwlimit" : {
5885 "default" : 0,
4a407cfd 5886 "description" : "Limit I/O bandwidth (in KiB/s).",
44660702
DM
5887 "minimum" : 0,
5888 "optional" : 1,
4bd7df8b 5889 "type" : "integer",
013dc89f 5890 "typetext" : "<integer> (0 - N)"
44660702 5891 },
5370fa8c
TL
5892 "comment" : {
5893 "description" : "Description for the Job.",
5894 "maxLength" : 512,
5895 "optional" : 1,
5896 "type" : "string",
5897 "typetext" : "<string>"
5898 },
44660702
DM
5899 "compress" : {
5900 "default" : "0",
5901 "description" : "Compress dump file.",
5902 "enum" : [
5903 "0",
5904 "1",
5905 "gzip",
c5aa7e14
TL
5906 "lzo",
5907 "zstd"
44660702
DM
5908 ],
5909 "optional" : 1,
5910 "type" : "string"
5911 },
5912 "dow" : {
5913 "default" : "mon,tue,wed,thu,fri,sat,sun",
5914 "description" : "Day of week selection.",
5915 "format" : "pve-day-of-week-list",
5916 "optional" : 1,
5370fa8c 5917 "requires" : "starttime",
013dc89f
DM
5918 "type" : "string",
5919 "typetext" : "<string>"
44660702
DM
5920 },
5921 "dumpdir" : {
5922 "description" : "Store resulting files to specified directory.",
5923 "optional" : 1,
013dc89f
DM
5924 "type" : "string",
5925 "typetext" : "<string>"
44660702
DM
5926 },
5927 "enabled" : {
5928 "default" : "1",
5929 "description" : "Enable or disable the job.",
5930 "optional" : 1,
013dc89f
DM
5931 "type" : "boolean",
5932 "typetext" : "<boolean>"
44660702
DM
5933 },
5934 "exclude" : {
5935 "description" : "Exclude specified guest systems (assumes --all)",
5936 "format" : "pve-vmid-list",
5937 "optional" : 1,
013dc89f
DM
5938 "type" : "string",
5939 "typetext" : "<string>"
44660702
DM
5940 },
5941 "exclude-path" : {
c6d5bae8 5942 "description" : "Exclude certain files/directories (shell globs). Paths starting with '/' are anchored to the container's root, other paths match relative to each subdirectory.",
4a407cfd
TL
5943 "items" : {
5944 "type" : "string"
5945 },
44660702 5946 "optional" : 1,
4a407cfd
TL
5947 "type" : "array",
5948 "typetext" : "<array>"
44660702 5949 },
907e4bc3
TL
5950 "fleecing" : {
5951 "description" : "Options for backup fleecing (VM only).",
5952 "format" : "backup-fleecing",
5953 "optional" : 1,
5954 "type" : "string",
5955 "typetext" : "[[enabled=]<1|0>] [,storage=<storage ID>]"
5956 },
5370fa8c
TL
5957 "id" : {
5958 "description" : "Job ID (will be autogenerated).",
5959 "format" : "pve-configid",
5960 "optional" : 1,
5961 "type" : "string",
5962 "typetext" : "<string>"
5963 },
44660702
DM
5964 "ionice" : {
5965 "default" : 7,
159464a9 5966 "description" : "Set IO priority when using the BFQ scheduler. For snapshot and suspend mode backups of VMs, this only affects the compressor. A value of 8 means the idle priority is used, otherwise the best-effort priority is used with the specified value.",
44660702
DM
5967 "maximum" : 8,
5968 "minimum" : 0,
5969 "optional" : 1,
4bd7df8b 5970 "type" : "integer",
013dc89f 5971 "typetext" : "<integer> (0 - 8)"
44660702
DM
5972 },
5973 "lockwait" : {
5974 "default" : 180,
5975 "description" : "Maximal time to wait for the global lock (minutes).",
5976 "minimum" : 0,
5977 "optional" : 1,
4bd7df8b 5978 "type" : "integer",
013dc89f 5979 "typetext" : "<integer> (0 - N)"
44660702
DM
5980 },
5981 "mailnotification" : {
5982 "default" : "always",
c6d5bae8 5983 "description" : "Deprecated: use notification targets/matchers instead. Specify when to send a notification mail",
44660702
DM
5984 "enum" : [
5985 "always",
5986 "failure"
5987 ],
5988 "optional" : 1,
5989 "type" : "string"
5990 },
5991 "mailto" : {
c6d5bae8 5992 "description" : "Deprecated: Use notification targets/matchers instead. Comma-separated list of email addresses or users that should receive email notifications.",
d2656385 5993 "format" : "email-or-username-list",
44660702 5994 "optional" : 1,
013dc89f
DM
5995 "type" : "string",
5996 "typetext" : "<string>"
44660702
DM
5997 },
5998 "maxfiles" : {
0695fdaf 5999 "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per guest system.",
44660702
DM
6000 "minimum" : 1,
6001 "optional" : 1,
4bd7df8b 6002 "type" : "integer",
013dc89f 6003 "typetext" : "<integer> (1 - N)"
44660702
DM
6004 },
6005 "mode" : {
6006 "default" : "snapshot",
6007 "description" : "Backup mode.",
6008 "enum" : [
6009 "snapshot",
6010 "suspend",
6011 "stop"
6012 ],
6013 "optional" : 1,
6014 "type" : "string"
6015 },
6016 "node" : {
6017 "description" : "Only run if executed on this node.",
6018 "format" : "pve-node",
6019 "optional" : 1,
013dc89f
DM
6020 "type" : "string",
6021 "typetext" : "<string>"
44660702 6022 },
7af2edf9 6023 "notes-template" : {
4e7f60c2
TL
6024 "description" : "Template string for generating notes for the backup(s). It can contain variables which will be replaced by their values. Currently supported are {{cluster}}, {{guestname}}, {{node}}, and {{vmid}}, but more might be added in the future. Needs to be a single line, newline and backslash need to be escaped as '\\n' and '\\\\' respectively.",
6025 "maxLength" : 1024,
7af2edf9
TL
6026 "optional" : 1,
6027 "requires" : "storage",
6028 "type" : "string",
6029 "typetext" : "<string>"
6030 },
c6d5bae8
TL
6031 "notification-mode" : {
6032 "default" : "auto",
6033 "description" : "Determine which notification system to use. If set to 'legacy-sendmail', vzdump will consider the mailto/mailnotification parameters and send emails to the specified address(es) via the 'sendmail' command. If set to 'notification-system', a notification will be sent via PVE's notification system, and the mailto and mailnotification will be ignored. If set to 'auto' (default setting), an email will be sent if mailto is set, and the notification system will be used if not.",
6034 "enum" : [
6035 "auto",
6036 "legacy-sendmail",
6037 "notification-system"
6038 ],
6039 "optional" : 1,
6040 "type" : "string"
6041 },
82551b2b
TL
6042 "notification-policy" : {
6043 "default" : "always",
c6d5bae8 6044 "description" : "Deprecated: Do not use",
82551b2b
TL
6045 "enum" : [
6046 "always",
6047 "failure",
6048 "never"
6049 ],
6050 "optional" : 1,
6051 "type" : "string"
6052 },
6053 "notification-target" : {
c6d5bae8 6054 "description" : "Deprecated: Do not use",
82551b2b
TL
6055 "format" : "pve-configid",
6056 "optional" : 1,
6057 "type" : "string",
6058 "typetext" : "<string>"
6059 },
4e7f60c2
TL
6060 "performance" : {
6061 "description" : "Other performance-related settings.",
6062 "format" : "backup-performance",
6063 "optional" : 1,
6064 "type" : "string",
82551b2b 6065 "typetext" : "[max-workers=<integer>] [,pbs-entries-max=<integer>]"
4e7f60c2 6066 },
44660702
DM
6067 "pigz" : {
6068 "default" : 0,
6069 "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count.",
6070 "optional" : 1,
013dc89f
DM
6071 "type" : "integer",
6072 "typetext" : "<integer>"
44660702 6073 },
9226ccbc
TL
6074 "pool" : {
6075 "description" : "Backup all known guest systems included in the specified pool.",
6076 "optional" : 1,
6077 "type" : "string",
6078 "typetext" : "<string>"
6079 },
7af2edf9
TL
6080 "protected" : {
6081 "description" : "If true, mark backup(s) as protected.",
6082 "optional" : 1,
6083 "requires" : "storage",
6084 "type" : "boolean",
6085 "typetext" : "<boolean>"
6086 },
739d4d64 6087 "prune-backups" : {
0695fdaf 6088 "default" : "keep-all=1",
739d4d64
TL
6089 "description" : "Use these retention options instead of those from the storage configuration.",
6090 "format" : "prune-backups",
6091 "optional" : 1,
6092 "type" : "string",
4772952b 6093 "typetext" : "[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
739d4d64 6094 },
44660702
DM
6095 "quiet" : {
6096 "default" : 0,
6097 "description" : "Be quiet.",
6098 "optional" : 1,
013dc89f
DM
6099 "type" : "boolean",
6100 "typetext" : "<boolean>"
44660702
DM
6101 },
6102 "remove" : {
6103 "default" : 1,
0695fdaf 6104 "description" : "Prune older backups according to 'prune-backups'.",
44660702 6105 "optional" : 1,
013dc89f
DM
6106 "type" : "boolean",
6107 "typetext" : "<boolean>"
44660702 6108 },
de786b48
TL
6109 "repeat-missed" : {
6110 "default" : 0,
6111 "description" : "If true, the job will be run as soon as possible if it was missed while the scheduler was not running.",
6112 "optional" : 1,
6113 "type" : "boolean",
6114 "typetext" : "<boolean>"
6115 },
5370fa8c
TL
6116 "schedule" : {
6117 "description" : "Backup schedule. The format is a subset of `systemd` calendar events.",
6118 "format" : "pve-calendar-event",
6119 "maxLength" : 128,
6120 "optional" : 1,
6121 "type" : "string",
6122 "typetext" : "<string>"
6123 },
44660702
DM
6124 "script" : {
6125 "description" : "Use specified hook script.",
6126 "optional" : 1,
013dc89f
DM
6127 "type" : "string",
6128 "typetext" : "<string>"
44660702 6129 },
44660702
DM
6130 "starttime" : {
6131 "description" : "Job Start time.",
5370fa8c 6132 "optional" : 1,
44660702
DM
6133 "pattern" : "\\d{1,2}:\\d{1,2}",
6134 "type" : "string",
6135 "typetext" : "HH:MM"
6136 },
6137 "stdexcludes" : {
6138 "default" : 1,
6139 "description" : "Exclude temporary files and logs.",
6140 "optional" : 1,
013dc89f
DM
6141 "type" : "boolean",
6142 "typetext" : "<boolean>"
44660702
DM
6143 },
6144 "stop" : {
6145 "default" : 0,
1e3f8156 6146 "description" : "Stop running backup jobs on this host.",
44660702 6147 "optional" : 1,
013dc89f
DM
6148 "type" : "boolean",
6149 "typetext" : "<boolean>"
44660702
DM
6150 },
6151 "stopwait" : {
6152 "default" : 10,
6153 "description" : "Maximal time to wait until a guest system is stopped (minutes).",
6154 "minimum" : 0,
6155 "optional" : 1,
4bd7df8b 6156 "type" : "integer",
013dc89f 6157 "typetext" : "<integer> (0 - N)"
44660702
DM
6158 },
6159 "storage" : {
6160 "description" : "Store resulting file to this storage.",
6161 "format" : "pve-storage-id",
907e4bc3 6162 "format_description" : "storage ID",
44660702 6163 "optional" : 1,
013dc89f 6164 "type" : "string",
907e4bc3 6165 "typetext" : "<storage ID>"
44660702
DM
6166 },
6167 "tmpdir" : {
6168 "description" : "Store temporary files to specified directory.",
6169 "optional" : 1,
013dc89f
DM
6170 "type" : "string",
6171 "typetext" : "<string>"
44660702
DM
6172 },
6173 "vmid" : {
6174 "description" : "The ID of the guest system you want to backup.",
6175 "format" : "pve-vmid-list",
6176 "optional" : 1,
013dc89f
DM
6177 "type" : "string",
6178 "typetext" : "<string>"
c5aa7e14
TL
6179 },
6180 "zstd" : {
6181 "default" : 1,
c6d5bae8 6182 "description" : "Zstd threads. N=0 uses half of the available cores, if N is set to a value bigger than 0, N is used as thread count.",
c5aa7e14
TL
6183 "optional" : 1,
6184 "type" : "integer",
6185 "typetext" : "<integer>"
44660702
DM
6186 }
6187 }
6188 },
6189 "permissions" : {
6190 "check" : [
6191 "perm",
6192 "/",
6193 [
6194 "Sys.Modify"
6195 ]
de0983cb
DM
6196 ],
6197 "description" : "The 'tmpdir', 'dumpdir' and 'script' parameters are additionally restricted to the 'root@pam' user."
44660702
DM
6198 },
6199 "protected" : 1,
6200 "returns" : {
6201 "type" : "null"
6202 }
6203 }
6204 },
6205 "leaf" : 0,
6206 "path" : "/cluster/backup",
6207 "text" : "backup"
6208 },
04d22a9f
TL
6209 {
6210 "children" : [
6211 {
6212 "info" : {
6213 "GET" : {
6214 "allowtoken" : 1,
6215 "description" : "Shows all guests which are not covered by any backup job.",
6216 "method" : "GET",
6217 "name" : "get_guests_not_in_backup",
6218 "parameters" : {
6219 "additionalProperties" : 0
6220 },
6221 "permissions" : {
6222 "check" : [
6223 "perm",
6224 "/",
6225 [
6226 "Sys.Audit"
6227 ]
6228 ]
6229 },
6230 "protected" : 1,
6231 "returns" : {
6232 "description" : "Contains the guest objects.",
6233 "items" : {
6234 "properties" : {
6235 "name" : {
6236 "description" : "Name of the guest",
6237 "optional" : 1,
6238 "type" : "string"
6239 },
6240 "type" : {
6241 "description" : "Type of the guest.",
6242 "enum" : [
6243 "qemu",
6244 "lxc"
6245 ],
6246 "type" : "string"
6247 },
6248 "vmid" : {
6249 "description" : "VMID of the guest.",
6250 "type" : "integer"
6251 }
6252 },
6253 "type" : "object"
6254 },
6255 "type" : "array"
6256 }
6257 }
6258 },
6259 "leaf" : 1,
34f3e481
TL
6260 "path" : "/cluster/backup-info/not-backed-up",
6261 "text" : "not-backed-up"
04d22a9f
TL
6262 }
6263 ],
6264 "info" : {
6265 "GET" : {
6266 "allowtoken" : 1,
34f3e481 6267 "description" : "Index for backup info related endpoints",
04d22a9f 6268 "method" : "GET",
34f3e481 6269 "name" : "index",
04d22a9f
TL
6270 "parameters" : {
6271 "additionalProperties" : 0
6272 },
04d22a9f 6273 "returns" : {
34f3e481
TL
6274 "description" : "Directory index.",
6275 "items" : {
6276 "properties" : {
6277 "subdir" : {
6278 "description" : "API sub-directory endpoint",
6279 "type" : "string"
6280 }
6281 },
6282 "type" : "object"
6283 },
6284 "links" : [
6285 {
6286 "href" : "{subdir}",
6287 "rel" : "child"
6288 }
6289 ],
6290 "type" : "array"
04d22a9f
TL
6291 }
6292 }
6293 },
6294 "leaf" : 0,
34f3e481
TL
6295 "path" : "/cluster/backup-info",
6296 "text" : "backup-info"
04d22a9f 6297 },
44660702
DM
6298 {
6299 "children" : [
6300 {
6301 "children" : [
6302 {
6303 "children" : [
56122987 6304 {
56122987
DM
6305 "info" : {
6306 "POST" : {
e9cd3bd4 6307 "allowtoken" : 1,
44660702
DM
6308 "description" : "Request resource migration (online) to another node.",
6309 "method" : "POST",
6310 "name" : "migrate",
56122987 6311 "parameters" : {
7aacca6f 6312 "additionalProperties" : 0,
56122987
DM
6313 "properties" : {
6314 "node" : {
95895385 6315 "description" : "Target node.",
44660702 6316 "format" : "pve-node",
013dc89f
DM
6317 "type" : "string",
6318 "typetext" : "<string>"
56122987
DM
6319 },
6320 "sid" : {
44660702 6321 "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
56122987 6322 "format" : "pve-ha-resource-or-vm-id",
7aacca6f 6323 "type" : "string",
44660702 6324 "typetext" : "<type>:<name>"
56122987 6325 }
7aacca6f 6326 }
56122987 6327 },
56122987
DM
6328 "permissions" : {
6329 "check" : [
6330 "perm",
6331 "/",
6332 [
6333 "Sys.Console"
6334 ]
6335 ]
6336 },
7aacca6f 6337 "protected" : 1,
7aacca6f
DM
6338 "returns" : {
6339 "type" : "null"
44660702 6340 }
56122987 6341 }
44660702
DM
6342 },
6343 "leaf" : 1,
6344 "path" : "/cluster/ha/resources/{sid}/migrate",
6345 "text" : "migrate"
6346 },
6347 {
6348 "info" : {
6349 "POST" : {
e9cd3bd4 6350 "allowtoken" : 1,
44660702
DM
6351 "description" : "Request resource relocatzion to another node. This stops the service on the old node, and restarts it on the target node.",
6352 "method" : "POST",
6353 "name" : "relocate",
6354 "parameters" : {
6355 "additionalProperties" : 0,
6356 "properties" : {
6357 "node" : {
95895385 6358 "description" : "Target node.",
44660702 6359 "format" : "pve-node",
013dc89f
DM
6360 "type" : "string",
6361 "typetext" : "<string>"
44660702
DM
6362 },
6363 "sid" : {
6364 "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
6365 "format" : "pve-ha-resource-or-vm-id",
6366 "type" : "string",
6367 "typetext" : "<type>:<name>"
6368 }
6369 }
6370 },
6371 "permissions" : {
6372 "check" : [
6373 "perm",
6374 "/",
6375 [
6376 "Sys.Console"
6377 ]
6378 ]
6379 },
6380 "protected" : 1,
6381 "returns" : {
6382 "type" : "null"
6383 }
6384 }
6385 },
6386 "leaf" : 1,
6387 "path" : "/cluster/ha/resources/{sid}/relocate",
6388 "text" : "relocate"
6389 }
6390 ],
6391 "info" : {
6392 "DELETE" : {
e9cd3bd4 6393 "allowtoken" : 1,
44660702
DM
6394 "description" : "Delete resource configuration.",
6395 "method" : "DELETE",
6396 "name" : "delete",
7aacca6f 6397 "parameters" : {
44660702 6398 "additionalProperties" : 0,
7aacca6f
DM
6399 "properties" : {
6400 "sid" : {
6401 "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
44660702 6402 "format" : "pve-ha-resource-or-vm-id",
7aacca6f 6403 "type" : "string",
44660702
DM
6404 "typetext" : "<type>:<name>"
6405 }
6406 }
6407 },
6408 "permissions" : {
6409 "check" : [
6410 "perm",
6411 "/",
6412 [
6413 "Sys.Console"
6414 ]
6415 ]
6416 },
6417 "protected" : 1,
6418 "returns" : {
6419 "type" : "null"
6420 }
6421 },
6422 "GET" : {
e9cd3bd4 6423 "allowtoken" : 1,
44660702
DM
6424 "description" : "Read resource configuration.",
6425 "method" : "GET",
6426 "name" : "read",
6427 "parameters" : {
6428 "additionalProperties" : 0,
6429 "properties" : {
6430 "sid" : {
6431 "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
7aacca6f 6432 "format" : "pve-ha-resource-or-vm-id",
44660702 6433 "type" : "string",
7aacca6f
DM
6434 "typetext" : "<type>:<name>"
6435 }
44660702 6436 }
7aacca6f
DM
6437 },
6438 "permissions" : {
6439 "check" : [
6440 "perm",
6441 "/",
6442 [
6443 "Sys.Audit"
6444 ]
6445 ]
6446 },
5f26e15b
TL
6447 "returns" : {
6448 "properties" : {
6449 "comment" : {
6450 "description" : "Description.",
6451 "optional" : 1,
6452 "type" : "string"
6453 },
6454 "digest" : {
6455 "description" : "Can be used to prevent concurrent modifications.",
6456 "type" : "string"
6457 },
6458 "group" : {
6459 "description" : "The HA group identifier.",
6460 "format" : "pve-configid",
6461 "optional" : 1,
6462 "type" : "string"
6463 },
6464 "max_relocate" : {
6465 "description" : "Maximal number of service relocate tries when a service failes to start.",
6466 "optional" : 1,
6467 "type" : "integer"
6468 },
6469 "max_restart" : {
6470 "description" : "Maximal number of tries to restart the service on a node after its start failed.",
6471 "optional" : 1,
6472 "type" : "integer"
6473 },
6474 "sid" : {
6475 "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
6476 "format" : "pve-ha-resource-or-vm-id",
6477 "type" : "string",
6478 "typetext" : "<type>:<name>"
6479 },
6480 "state" : {
6481 "description" : "Requested resource state.",
6482 "enum" : [
6483 "started",
6484 "stopped",
6485 "enabled",
6486 "disabled",
6487 "ignored"
6488 ],
6489 "optional" : 1,
6490 "type" : "string"
6491 },
6492 "type" : {
6493 "description" : "The type of the resources.",
6494 "type" : "string"
6495 }
6496 },
6497 "type" : "object"
6498 }
7aacca6f 6499 },
56122987 6500 "PUT" : {
e9cd3bd4 6501 "allowtoken" : 1,
44660702 6502 "description" : "Update resource configuration.",
7aacca6f 6503 "method" : "PUT",
44660702 6504 "name" : "update",
56122987
DM
6505 "parameters" : {
6506 "additionalProperties" : 0,
6507 "properties" : {
44660702
DM
6508 "comment" : {
6509 "description" : "Description.",
6510 "maxLength" : 4096,
56122987 6511 "optional" : 1,
013dc89f
DM
6512 "type" : "string",
6513 "typetext" : "<string>"
56122987 6514 },
7aacca6f
DM
6515 "delete" : {
6516 "description" : "A list of settings you want to delete.",
7aacca6f 6517 "format" : "pve-configid-list",
44660702
DM
6518 "maxLength" : 4096,
6519 "optional" : 1,
013dc89f
DM
6520 "type" : "string",
6521 "typetext" : "<string>"
56122987 6522 },
44660702 6523 "digest" : {
82551b2b
TL
6524 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
6525 "maxLength" : 64,
44660702 6526 "optional" : 1,
013dc89f
DM
6527 "type" : "string",
6528 "typetext" : "<string>"
56122987 6529 },
44660702
DM
6530 "group" : {
6531 "description" : "The HA group identifier.",
6532 "format" : "pve-configid",
7aacca6f 6533 "optional" : 1,
013dc89f
DM
6534 "type" : "string",
6535 "typetext" : "<string>"
56122987
DM
6536 },
6537 "max_relocate" : {
7aacca6f 6538 "default" : 1,
56122987 6539 "description" : "Maximal number of service relocate tries when a service failes to start.",
44660702
DM
6540 "minimum" : 0,
6541 "optional" : 1,
4bd7df8b 6542 "type" : "integer",
013dc89f 6543 "typetext" : "<integer> (0 - N)"
7aacca6f 6544 },
44660702
DM
6545 "max_restart" : {
6546 "default" : 1,
6547 "description" : "Maximal number of tries to restart the service on a node after its start failed.",
6548 "minimum" : 0,
7aacca6f 6549 "optional" : 1,
4bd7df8b 6550 "type" : "integer",
013dc89f 6551 "typetext" : "<integer> (0 - N)"
44660702
DM
6552 },
6553 "sid" : {
6554 "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
6555 "format" : "pve-ha-resource-or-vm-id",
6556 "type" : "string",
6557 "typetext" : "<type>:<name>"
7aacca6f
DM
6558 },
6559 "state" : {
f13c1238
DM
6560 "default" : "started",
6561 "description" : "Requested resource state.",
7aacca6f 6562 "enum" : [
f13c1238
DM
6563 "started",
6564 "stopped",
7aacca6f 6565 "enabled",
2489d6df
WB
6566 "disabled",
6567 "ignored"
7aacca6f 6568 ],
7aacca6f 6569 "optional" : 1,
f13c1238 6570 "type" : "string",
2489d6df 6571 "verbose_description" : "Requested resource state. The CRM reads this state and acts accordingly.\nPlease note that `enabled` is just an alias for `started`.\n\n`started`;;\n\nThe CRM tries to start the resource. Service state is\nset to `started` after successful start. On node failures, or when start\nfails, it tries to recover the resource. If everything fails, service\nstate it set to `error`.\n\n`stopped`;;\n\nThe CRM tries to keep the resource in `stopped` state, but it\nstill tries to relocate the resources on node failures.\n\n`disabled`;;\n\nThe CRM tries to put the resource in `stopped` state, but does not try\nto relocate the resources on node failures. The main purpose of this\nstate is error recovery, because it is the only way to move a resource out\nof the `error` state.\n\n`ignored`;;\n\nThe resource gets removed from the manager status and so the CRM and the LRM do\nnot touch the resource anymore. All {pve} API calls affecting this resource\nwill be executed, directly bypassing the HA stack. CRM commands will be thrown\naway while there source is in this state. The resource will not get relocated\non node failures.\n\n"
56122987 6572 }
44660702
DM
6573 },
6574 "type" : "object"
56122987 6575 },
56122987
DM
6576 "permissions" : {
6577 "check" : [
6578 "perm",
6579 "/",
6580 [
6581 "Sys.Console"
6582 ]
6583 ]
6584 },
7aacca6f 6585 "protected" : 1,
56122987
DM
6586 "returns" : {
6587 "type" : "null"
6588 }
6589 }
6590 },
44660702 6591 "leaf" : 0,
7aacca6f 6592 "path" : "/cluster/ha/resources/{sid}",
44660702 6593 "text" : "{sid}"
56122987
DM
6594 }
6595 ],
7aacca6f
DM
6596 "info" : {
6597 "GET" : {
e9cd3bd4 6598 "allowtoken" : 1,
44660702
DM
6599 "description" : "List HA resources.",
6600 "method" : "GET",
6601 "name" : "index",
7aacca6f 6602 "parameters" : {
44660702
DM
6603 "additionalProperties" : 0,
6604 "properties" : {
6605 "type" : {
6606 "description" : "Only list resources of specific type",
6607 "enum" : [
6608 "ct",
6609 "vm"
6610 ],
6611 "optional" : 1,
6612 "type" : "string"
6613 }
6614 }
7aacca6f 6615 },
7aacca6f
DM
6616 "permissions" : {
6617 "check" : [
6618 "perm",
6619 "/",
6620 [
6621 "Sys.Audit"
6622 ]
6623 ]
6624 },
7aacca6f 6625 "returns" : {
7aacca6f 6626 "items" : {
7aacca6f 6627 "properties" : {
44660702 6628 "sid" : {
7aacca6f
DM
6629 "type" : "string"
6630 }
44660702
DM
6631 },
6632 "type" : "object"
7aacca6f
DM
6633 },
6634 "links" : [
6635 {
44660702 6636 "href" : "{sid}",
7aacca6f
DM
6637 "rel" : "child"
6638 }
44660702
DM
6639 ],
6640 "type" : "array"
7aacca6f
DM
6641 }
6642 },
6643 "POST" : {
e9cd3bd4 6644 "allowtoken" : 1,
44660702 6645 "description" : "Create a new HA resource.",
7aacca6f 6646 "method" : "POST",
44660702 6647 "name" : "create",
7aacca6f 6648 "parameters" : {
44660702 6649 "additionalProperties" : 0,
7aacca6f
DM
6650 "properties" : {
6651 "comment" : {
7aacca6f 6652 "description" : "Description.",
44660702 6653 "maxLength" : 4096,
7aacca6f 6654 "optional" : 1,
013dc89f
DM
6655 "type" : "string",
6656 "typetext" : "<string>"
7aacca6f 6657 },
44660702
DM
6658 "group" : {
6659 "description" : "The HA group identifier.",
6660 "format" : "pve-configid",
7aacca6f 6661 "optional" : 1,
013dc89f
DM
6662 "type" : "string",
6663 "typetext" : "<string>"
7aacca6f 6664 },
44660702
DM
6665 "max_relocate" : {
6666 "default" : 1,
6667 "description" : "Maximal number of service relocate tries when a service failes to start.",
6668 "minimum" : 0,
7aacca6f 6669 "optional" : 1,
4bd7df8b 6670 "type" : "integer",
013dc89f 6671 "typetext" : "<integer> (0 - N)"
7aacca6f 6672 },
44660702
DM
6673 "max_restart" : {
6674 "default" : 1,
6675 "description" : "Maximal number of tries to restart the service on a node after its start failed.",
6676 "minimum" : 0,
6677 "optional" : 1,
4bd7df8b 6678 "type" : "integer",
013dc89f 6679 "typetext" : "<integer> (0 - N)"
44660702
DM
6680 },
6681 "sid" : {
6682 "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
6683 "format" : "pve-ha-resource-or-vm-id",
6684 "type" : "string",
6685 "typetext" : "<type>:<name>"
6686 },
6687 "state" : {
f13c1238
DM
6688 "default" : "started",
6689 "description" : "Requested resource state.",
7aacca6f 6690 "enum" : [
f13c1238
DM
6691 "started",
6692 "stopped",
44660702 6693 "enabled",
2489d6df
WB
6694 "disabled",
6695 "ignored"
7aacca6f 6696 ],
7aacca6f 6697 "optional" : 1,
f13c1238 6698 "type" : "string",
2489d6df 6699 "verbose_description" : "Requested resource state. The CRM reads this state and acts accordingly.\nPlease note that `enabled` is just an alias for `started`.\n\n`started`;;\n\nThe CRM tries to start the resource. Service state is\nset to `started` after successful start. On node failures, or when start\nfails, it tries to recover the resource. If everything fails, service\nstate it set to `error`.\n\n`stopped`;;\n\nThe CRM tries to keep the resource in `stopped` state, but it\nstill tries to relocate the resources on node failures.\n\n`disabled`;;\n\nThe CRM tries to put the resource in `stopped` state, but does not try\nto relocate the resources on node failures. The main purpose of this\nstate is error recovery, because it is the only way to move a resource out\nof the `error` state.\n\n`ignored`;;\n\nThe resource gets removed from the manager status and so the CRM and the LRM do\nnot touch the resource anymore. All {pve} API calls affecting this resource\nwill be executed, directly bypassing the HA stack. CRM commands will be thrown\naway while there source is in this state. The resource will not get relocated\non node failures.\n\n"
7aacca6f 6700 },
44660702
DM
6701 "type" : {
6702 "description" : "Resource type.",
6703 "enum" : [
6704 "ct",
6705 "vm"
6706 ],
6707 "optional" : 1,
6708 "type" : "string"
6709 }
7aacca6f 6710 },
44660702 6711 "type" : "object"
7aacca6f
DM
6712 },
6713 "permissions" : {
6714 "check" : [
6715 "perm",
6716 "/",
6717 [
6718 "Sys.Console"
6719 ]
6720 ]
6721 },
44660702
DM
6722 "protected" : 1,
6723 "returns" : {
6724 "type" : "null"
6725 }
7aacca6f
DM
6726 }
6727 },
44660702
DM
6728 "leaf" : 0,
6729 "path" : "/cluster/ha/resources",
6730 "text" : "resources"
6731 },
6732 {
56122987
DM
6733 "children" : [
6734 {
56122987 6735 "info" : {
44660702 6736 "DELETE" : {
e9cd3bd4 6737 "allowtoken" : 1,
44660702
DM
6738 "description" : "Delete ha group configuration.",
6739 "method" : "DELETE",
6740 "name" : "delete",
56122987 6741 "parameters" : {
7aacca6f 6742 "additionalProperties" : 0,
56122987 6743 "properties" : {
7aacca6f
DM
6744 "group" : {
6745 "description" : "The HA group identifier.",
44660702 6746 "format" : "pve-configid",
013dc89f
DM
6747 "type" : "string",
6748 "typetext" : "<string>"
56122987 6749 }
7aacca6f 6750 }
56122987 6751 },
56122987
DM
6752 "permissions" : {
6753 "check" : [
6754 "perm",
6755 "/",
6756 [
7aacca6f 6757 "Sys.Console"
56122987
DM
6758 ]
6759 ]
6760 },
44660702 6761 "protected" : 1,
7aacca6f
DM
6762 "returns" : {
6763 "type" : "null"
56122987
DM
6764 }
6765 },
44660702 6766 "GET" : {
e9cd3bd4 6767 "allowtoken" : 1,
44660702
DM
6768 "description" : "Read ha group configuration.",
6769 "method" : "GET",
6770 "name" : "read",
56122987 6771 "parameters" : {
44660702 6772 "additionalProperties" : 0,
56122987
DM
6773 "properties" : {
6774 "group" : {
6775 "description" : "The HA group identifier.",
44660702 6776 "format" : "pve-configid",
013dc89f
DM
6777 "type" : "string",
6778 "typetext" : "<string>"
56122987 6779 }
44660702 6780 }
56122987 6781 },
56122987
DM
6782 "permissions" : {
6783 "check" : [
6784 "perm",
6785 "/",
6786 [
44660702 6787 "Sys.Audit"
56122987
DM
6788 ]
6789 ]
6790 },
44660702 6791 "returns" : {}
7aacca6f 6792 },
44660702 6793 "PUT" : {
e9cd3bd4 6794 "allowtoken" : 1,
44660702
DM
6795 "description" : "Update ha group configuration.",
6796 "method" : "PUT",
6797 "name" : "update",
7aacca6f 6798 "parameters" : {
44660702 6799 "additionalProperties" : 0,
7aacca6f 6800 "properties" : {
44660702
DM
6801 "comment" : {
6802 "description" : "Description.",
6803 "maxLength" : 4096,
6804 "optional" : 1,
013dc89f
DM
6805 "type" : "string",
6806 "typetext" : "<string>"
44660702
DM
6807 },
6808 "delete" : {
6809 "description" : "A list of settings you want to delete.",
6810 "format" : "pve-configid-list",
6811 "maxLength" : 4096,
6812 "optional" : 1,
013dc89f
DM
6813 "type" : "string",
6814 "typetext" : "<string>"
44660702
DM
6815 },
6816 "digest" : {
82551b2b
TL
6817 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
6818 "maxLength" : 64,
44660702 6819 "optional" : 1,
013dc89f
DM
6820 "type" : "string",
6821 "typetext" : "<string>"
44660702 6822 },
7aacca6f
DM
6823 "group" : {
6824 "description" : "The HA group identifier.",
44660702 6825 "format" : "pve-configid",
013dc89f
DM
6826 "type" : "string",
6827 "typetext" : "<string>"
44660702
DM
6828 },
6829 "nodes" : {
f13c1238 6830 "description" : "List of cluster node names with optional priority.",
44660702
DM
6831 "format" : "pve-ha-group-node-list",
6832 "optional" : 1,
7aacca6f 6833 "type" : "string",
f13c1238
DM
6834 "typetext" : "<node>[:<pri>]{,<node>[:<pri>]}*",
6835 "verbose_description" : "List of cluster node members, where a priority can be given to each node. A resource bound to a group will run on the available nodes with the highest priority. If there are more nodes in the highest priority class, the services will get distributed to those nodes. The priorities have a relative meaning only."
44660702
DM
6836 },
6837 "nofailback" : {
6838 "default" : 0,
6839 "description" : "The CRM tries to run services on the node with the highest priority. If a node with higher priority comes online, the CRM migrates the service to that node. Enabling nofailback prevents that behavior.",
6840 "optional" : 1,
013dc89f
DM
6841 "type" : "boolean",
6842 "typetext" : "<boolean>"
44660702
DM
6843 },
6844 "restricted" : {
6845 "default" : 0,
c4808e75 6846 "description" : "Resources bound to restricted groups may only run on nodes defined by the group.",
44660702 6847 "optional" : 1,
013dc89f 6848 "type" : "boolean",
c4808e75
DM
6849 "typetext" : "<boolean>",
6850 "verbose_description" : "Resources bound to restricted groups may only run on nodes defined by the group. The resource will be placed in the stopped state if no group node member is online. Resources on unrestricted groups may run on any cluster node if all group members are offline, but they will migrate back as soon as a group member comes online. One can implement a 'preferred node' behavior using an unrestricted group with only one member."
7aacca6f
DM
6851 }
6852 },
44660702 6853 "type" : "object"
7aacca6f 6854 },
7aacca6f
DM
6855 "permissions" : {
6856 "check" : [
6857 "perm",
6858 "/",
6859 [
44660702 6860 "Sys.Console"
7aacca6f
DM
6861 ]
6862 ]
6863 },
44660702
DM
6864 "protected" : 1,
6865 "returns" : {
6866 "type" : "null"
6867 }
56122987
DM
6868 }
6869 },
6870 "leaf" : 1,
44660702
DM
6871 "path" : "/cluster/ha/groups/{group}",
6872 "text" : "{group}"
56122987 6873 }
44660702
DM
6874 ],
6875 "info" : {
6876 "GET" : {
e9cd3bd4 6877 "allowtoken" : 1,
44660702
DM
6878 "description" : "Get HA groups.",
6879 "method" : "GET",
6880 "name" : "index",
6881 "parameters" : {
6882 "additionalProperties" : 0
6883 },
6884 "permissions" : {
6885 "check" : [
6886 "perm",
6887 "/",
6888 [
6889 "Sys.Audit"
6890 ]
6891 ]
6892 },
6893 "returns" : {
6894 "items" : {
6895 "properties" : {
6896 "group" : {
6897 "type" : "string"
6898 }
6899 },
6900 "type" : "object"
6901 },
6902 "links" : [
6903 {
6904 "href" : "{group}",
6905 "rel" : "child"
6906 }
6907 ],
6908 "type" : "array"
6909 }
6910 },
6911 "POST" : {
e9cd3bd4 6912 "allowtoken" : 1,
44660702
DM
6913 "description" : "Create a new HA group.",
6914 "method" : "POST",
6915 "name" : "create",
6916 "parameters" : {
6917 "additionalProperties" : 0,
6918 "properties" : {
6919 "comment" : {
6920 "description" : "Description.",
6921 "maxLength" : 4096,
6922 "optional" : 1,
013dc89f
DM
6923 "type" : "string",
6924 "typetext" : "<string>"
44660702
DM
6925 },
6926 "group" : {
6927 "description" : "The HA group identifier.",
6928 "format" : "pve-configid",
013dc89f
DM
6929 "type" : "string",
6930 "typetext" : "<string>"
44660702
DM
6931 },
6932 "nodes" : {
f13c1238 6933 "description" : "List of cluster node names with optional priority.",
44660702
DM
6934 "format" : "pve-ha-group-node-list",
6935 "optional" : 0,
6936 "type" : "string",
f13c1238
DM
6937 "typetext" : "<node>[:<pri>]{,<node>[:<pri>]}*",
6938 "verbose_description" : "List of cluster node members, where a priority can be given to each node. A resource bound to a group will run on the available nodes with the highest priority. If there are more nodes in the highest priority class, the services will get distributed to those nodes. The priorities have a relative meaning only."
44660702
DM
6939 },
6940 "nofailback" : {
6941 "default" : 0,
6942 "description" : "The CRM tries to run services on the node with the highest priority. If a node with higher priority comes online, the CRM migrates the service to that node. Enabling nofailback prevents that behavior.",
6943 "optional" : 1,
013dc89f
DM
6944 "type" : "boolean",
6945 "typetext" : "<boolean>"
44660702
DM
6946 },
6947 "restricted" : {
6948 "default" : 0,
c4808e75 6949 "description" : "Resources bound to restricted groups may only run on nodes defined by the group.",
44660702 6950 "optional" : 1,
013dc89f 6951 "type" : "boolean",
c4808e75
DM
6952 "typetext" : "<boolean>",
6953 "verbose_description" : "Resources bound to restricted groups may only run on nodes defined by the group. The resource will be placed in the stopped state if no group node member is online. Resources on unrestricted groups may run on any cluster node if all group members are offline, but they will migrate back as soon as a group member comes online. One can implement a 'preferred node' behavior using an unrestricted group with only one member."
44660702
DM
6954 },
6955 "type" : {
6956 "description" : "Group type.",
6957 "enum" : [
6958 "group"
6959 ],
6960 "optional" : 1,
6961 "type" : "string"
6962 }
6963 },
6964 "type" : "object"
6965 },
6966 "permissions" : {
6967 "check" : [
6968 "perm",
6969 "/",
6970 [
6971 "Sys.Console"
6972 ]
6973 ]
6974 },
6975 "protected" : 1,
6976 "returns" : {
6977 "type" : "null"
6978 }
6979 }
6980 },
6981 "leaf" : 0,
6982 "path" : "/cluster/ha/groups",
6983 "text" : "groups"
7aacca6f
DM
6984 },
6985 {
7aacca6f
DM
6986 "children" : [
6987 {
6988 "info" : {
6989 "GET" : {
e9cd3bd4 6990 "allowtoken" : 1,
56122987 6991 "description" : "Get HA manger status.",
44660702 6992 "method" : "GET",
7aacca6f 6993 "name" : "status",
44660702
DM
6994 "parameters" : {
6995 "additionalProperties" : 0
6996 },
56122987
DM
6997 "permissions" : {
6998 "check" : [
6999 "perm",
7000 "/",
7001 [
7002 "Sys.Audit"
7003 ]
7004 ]
7aacca6f 7005 },
44660702 7006 "returns" : {
159464a9
TL
7007 "items" : {
7008 "properties" : {
7009 "crm_state" : {
7010 "description" : "For type 'service'. Service state as seen by the CRM.",
7011 "optional" : 1,
7012 "type" : "string"
7013 },
7014 "id" : {
7015 "description" : "Status entry ID (quorum, master, lrm:<node>, service:<sid>).",
7016 "type" : "string"
7017 },
7018 "max_relocate" : {
7019 "description" : "For type 'service'.",
7020 "optional" : 1,
7021 "type" : "integer"
7022 },
7023 "max_restart" : {
7024 "description" : "For type 'service'.",
7025 "optional" : 1,
7026 "type" : "integer"
7027 },
7028 "node" : {
7029 "description" : "Node associated to status entry.",
7030 "type" : "string"
7031 },
7032 "quorate" : {
7033 "description" : "For type 'quorum'. Whether the cluster is quorate or not.",
7034 "optional" : 1,
7035 "type" : "boolean"
7036 },
7037 "request_state" : {
7038 "description" : "For type 'service'. Requested service state.",
7039 "optional" : 1,
7040 "type" : "string"
7041 },
7042 "sid" : {
7043 "description" : "For type 'service'. Service ID.",
7044 "optional" : 1,
7045 "type" : "string"
7046 },
7047 "state" : {
7048 "description" : "For type 'service'. Verbose service state.",
7049 "optional" : 1,
7050 "type" : "string"
7051 },
7052 "status" : {
7053 "description" : "Status of the entry (value depends on type).",
7054 "type" : "string"
7055 },
7056 "timestamp" : {
7057 "description" : "For type 'lrm','master'. Timestamp of the status information.",
7058 "optional" : 1,
7059 "type" : "integer"
7060 },
7061 "type" : {
7062 "description" : "Type of status entry.",
7063 "enum" : [
7064 "quorum",
7065 "master",
7066 "lrm",
7067 "service"
7068 ]
7069 }
7070 },
7071 "type" : "object"
7072 },
44660702 7073 "type" : "array"
56122987
DM
7074 }
7075 }
7aacca6f 7076 },
7aacca6f 7077 "leaf" : 1,
44660702
DM
7078 "path" : "/cluster/ha/status/current",
7079 "text" : "current"
56122987
DM
7080 },
7081 {
7082 "info" : {
7083 "GET" : {
e9cd3bd4 7084 "allowtoken" : 1,
7aacca6f 7085 "description" : "Get full HA manger status, including LRM status.",
44660702
DM
7086 "method" : "GET",
7087 "name" : "manager_status",
7aacca6f
DM
7088 "parameters" : {
7089 "additionalProperties" : 0
7090 },
56122987
DM
7091 "permissions" : {
7092 "check" : [
7093 "perm",
7094 "/",
7095 [
7096 "Sys.Audit"
7097 ]
7098 ]
44660702
DM
7099 },
7100 "returns" : {
7101 "type" : "object"
7aacca6f 7102 }
56122987
DM
7103 }
7104 },
56122987 7105 "leaf" : 1,
44660702
DM
7106 "path" : "/cluster/ha/status/manager_status",
7107 "text" : "manager_status"
56122987
DM
7108 }
7109 ],
56122987
DM
7110 "info" : {
7111 "GET" : {
e9cd3bd4 7112 "allowtoken" : 1,
44660702 7113 "description" : "Directory index.",
7aacca6f 7114 "method" : "GET",
44660702
DM
7115 "name" : "index",
7116 "parameters" : {
7117 "additionalProperties" : 0
7118 },
7119 "permissions" : {
7120 "user" : "all"
7121 },
56122987 7122 "returns" : {
56122987
DM
7123 "items" : {
7124 "properties" : {},
7125 "type" : "object"
7126 },
7127 "links" : [
7128 {
44660702
DM
7129 "href" : "{name}",
7130 "rel" : "child"
56122987 7131 }
7aacca6f
DM
7132 ],
7133 "type" : "array"
44660702 7134 }
56122987 7135 }
7aacca6f 7136 },
44660702 7137 "leaf" : 0,
7aacca6f 7138 "path" : "/cluster/ha/status",
44660702 7139 "text" : "status"
56122987
DM
7140 }
7141 ],
56122987
DM
7142 "info" : {
7143 "GET" : {
e9cd3bd4 7144 "allowtoken" : 1,
7aacca6f 7145 "description" : "Directory index.",
44660702
DM
7146 "method" : "GET",
7147 "name" : "index",
7148 "parameters" : {
7149 "additionalProperties" : 0
7150 },
7aacca6f
DM
7151 "permissions" : {
7152 "check" : [
7153 "perm",
7154 "/",
7155 [
7156 "Sys.Audit"
7157 ]
7158 ]
7159 },
56122987 7160 "returns" : {
56122987 7161 "items" : {
7aacca6f
DM
7162 "properties" : {
7163 "id" : {
7164 "type" : "string"
7165 }
44660702
DM
7166 },
7167 "type" : "object"
7aacca6f
DM
7168 },
7169 "links" : [
7170 {
7171 "href" : "{id}",
7172 "rel" : "child"
7173 }
44660702
DM
7174 ],
7175 "type" : "array"
7aacca6f
DM
7176 }
7177 }
44660702
DM
7178 },
7179 "leaf" : 0,
7180 "path" : "/cluster/ha",
7181 "text" : "ha"
7aacca6f 7182 },
a9a8e3d1
DM
7183 {
7184 "children" : [
c5aa7e14
TL
7185 {
7186 "children" : [
7187 {
7188 "info" : {
7189 "DELETE" : {
7190 "allowtoken" : 1,
7191 "description" : "Delete ACME plugin configuration.",
7192 "method" : "DELETE",
7193 "name" : "delete_plugin",
7194 "parameters" : {
7195 "additionalProperties" : 0,
7196 "properties" : {
7197 "id" : {
7198 "description" : "Unique identifier for ACME plugin instance.",
7199 "format" : "pve-configid",
7200 "type" : "string",
7201 "typetext" : "<string>"
7202 }
7203 }
7204 },
7205 "permissions" : {
7206 "check" : [
7207 "perm",
7208 "/",
7209 [
7210 "Sys.Modify"
7211 ]
7212 ]
7213 },
7214 "protected" : 1,
7215 "returns" : {
7216 "type" : "null"
7217 }
7218 },
7219 "GET" : {
7220 "allowtoken" : 1,
7221 "description" : "Get ACME plugin configuration.",
7222 "method" : "GET",
7223 "name" : "get_plugin_config",
7224 "parameters" : {
7225 "additionalProperties" : 0,
7226 "properties" : {
7227 "id" : {
7228 "description" : "Unique identifier for ACME plugin instance.",
7229 "format" : "pve-configid",
7230 "type" : "string",
7231 "typetext" : "<string>"
7232 }
7233 }
7234 },
7235 "permissions" : {
7236 "check" : [
7237 "perm",
7238 "/",
7239 [
7240 "Sys.Modify"
7241 ]
7242 ]
7243 },
7244 "protected" : 1,
7245 "returns" : {
7246 "type" : "object"
7247 }
7248 },
7249 "PUT" : {
7250 "allowtoken" : 1,
7251 "description" : "Update ACME plugin configuration.",
7252 "method" : "PUT",
7253 "name" : "update_plugin",
7254 "parameters" : {
7255 "additionalProperties" : 0,
7256 "properties" : {
7257 "api" : {
7258 "description" : "API plugin name",
7259 "enum" : [
d2656385 7260 "1984hosting",
c5aa7e14
TL
7261 "acmedns",
7262 "acmeproxy",
7263 "active24",
7264 "ad",
7265 "ali",
d2656385 7266 "anx",
bd92b745 7267 "artfiles",
d2656385 7268 "arvan",
e7084ef7 7269 "aurora",
c5aa7e14
TL
7270 "autodns",
7271 "aws",
5370fa8c 7272 "azion",
c5aa7e14 7273 "azure",
bd92b745 7274 "bookmyname",
9d2e98ed 7275 "bunny",
c5aa7e14
TL
7276 "cf",
7277 "clouddns",
7278 "cloudns",
7279 "cn",
7280 "conoha",
7281 "constellix",
9d2e98ed
TL
7282 "cpanel",
7283 "curanet",
c5aa7e14
TL
7284 "cyon",
7285 "da",
7286 "ddnss",
7287 "desec",
ac70d7d1 7288 "df",
c5aa7e14 7289 "dgon",
bd92b745 7290 "dnsexit",
9d2e98ed 7291 "dnshome",
c5aa7e14 7292 "dnsimple",
9d2e98ed 7293 "dnsservices",
c5aa7e14
TL
7294 "do",
7295 "doapi",
7296 "domeneshop",
7297 "dp",
7298 "dpi",
7299 "dreamhost",
7300 "duckdns",
7301 "durabledns",
7302 "dyn",
7303 "dynu",
7304 "dynv6",
7305 "easydns",
d2656385 7306 "edgedns",
c5aa7e14
TL
7307 "euserv",
7308 "exoscale",
9d2e98ed 7309 "fornex",
c5aa7e14
TL
7310 "freedns",
7311 "gandi_livedns",
7312 "gcloud",
8dd66e12 7313 "gcore",
c5aa7e14 7314 "gd",
9d2e98ed 7315 "geoscaling",
8dd66e12 7316 "googledomains",
c5aa7e14 7317 "he",
d2656385 7318 "hetzner",
c5aa7e14
TL
7319 "hexonet",
7320 "hostingde",
d2656385 7321 "huaweicloud",
c5aa7e14 7322 "infoblox",
d2656385 7323 "infomaniak",
c5aa7e14
TL
7324 "internetbs",
7325 "inwx",
d2656385 7326 "ionos",
8dd66e12 7327 "ipv64",
c5aa7e14
TL
7328 "ispconfig",
7329 "jd",
d2656385
TL
7330 "joker",
7331 "kappernet",
c5aa7e14
TL
7332 "kas",
7333 "kinghost",
7334 "knot",
9d2e98ed 7335 "la",
c5aa7e14
TL
7336 "leaseweb",
7337 "lexicon",
7338 "linode",
7339 "linode_v4",
7340 "loopia",
7341 "lua",
7342 "maradns",
7343 "me",
7344 "miab",
7345 "misaka",
7346 "myapi",
7347 "mydevil",
7348 "mydnsjp",
9d2e98ed 7349 "mythic_beasts",
c5aa7e14
TL
7350 "namecheap",
7351 "namecom",
7352 "namesilo",
8dd66e12 7353 "nanelo",
c5aa7e14
TL
7354 "nederhost",
7355 "neodigit",
7356 "netcup",
d2656385 7357 "netlify",
c5aa7e14 7358 "nic",
d2656385
TL
7359 "njalla",
7360 "nm",
c5aa7e14
TL
7361 "nsd",
7362 "nsone",
7363 "nsupdate",
7364 "nw",
5370fa8c 7365 "oci",
c5aa7e14
TL
7366 "one",
7367 "online",
7368 "openprovider",
d2656385 7369 "openstack",
c5aa7e14
TL
7370 "opnsense",
7371 "ovh",
7372 "pdns",
7373 "pleskxml",
7374 "pointhq",
e7084ef7 7375 "porkbun",
d2656385 7376 "rackcorp",
c5aa7e14 7377 "rackspace",
9d2e98ed 7378 "rage4",
c5aa7e14
TL
7379 "rcode0",
7380 "regru",
d2656385 7381 "scaleway",
c5aa7e14
TL
7382 "schlundtech",
7383 "selectel",
9d2e98ed 7384 "selfhost",
c5aa7e14 7385 "servercow",
d2656385 7386 "simply",
c5aa7e14 7387 "tele3",
bd92b745 7388 "tencent",
d2656385 7389 "transip",
9d2e98ed 7390 "udr",
c5aa7e14
TL
7391 "ultra",
7392 "unoeuro",
7393 "variomedia",
5370fa8c 7394 "veesp",
9d2e98ed 7395 "vercel",
c5aa7e14
TL
7396 "vscale",
7397 "vultr",
e7084ef7 7398 "websupport",
d2656385 7399 "world4you",
c5aa7e14 7400 "yandex",
9d2e98ed 7401 "yc",
c5aa7e14
TL
7402 "zilore",
7403 "zone",
7404 "zonomi"
7405 ],
7406 "optional" : 1,
7407 "type" : "string"
7408 },
7409 "data" : {
7410 "description" : "DNS plugin data. (base64 encoded)",
7411 "optional" : 1,
7412 "type" : "string",
7413 "typetext" : "<string>"
7414 },
7415 "delete" : {
7416 "description" : "A list of settings you want to delete.",
7417 "format" : "pve-configid-list",
7418 "maxLength" : 4096,
7419 "optional" : 1,
7420 "type" : "string",
7421 "typetext" : "<string>"
7422 },
7423 "digest" : {
82551b2b
TL
7424 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
7425 "maxLength" : 64,
c5aa7e14
TL
7426 "optional" : 1,
7427 "type" : "string",
7428 "typetext" : "<string>"
7429 },
7430 "disable" : {
7431 "description" : "Flag to disable the config.",
7432 "optional" : 1,
7433 "type" : "boolean",
7434 "typetext" : "<boolean>"
7435 },
7436 "id" : {
7437 "description" : "ACME Plugin ID name",
7438 "format" : "pve-configid",
7439 "type" : "string",
7440 "typetext" : "<string>"
7441 },
7442 "nodes" : {
7443 "description" : "List of cluster node names.",
7444 "format" : "pve-node-list",
7445 "optional" : 1,
7446 "type" : "string",
7447 "typetext" : "<string>"
7448 },
7449 "validation-delay" : {
7450 "default" : 30,
7451 "description" : "Extra delay in seconds to wait before requesting validation. Allows to cope with a long TTL of DNS records.",
7452 "maximum" : 172800,
7453 "minimum" : 0,
7454 "optional" : 1,
7455 "type" : "integer",
7456 "typetext" : "<integer> (0 - 172800)"
7457 }
7458 },
7459 "type" : "object"
7460 },
7461 "permissions" : {
7462 "check" : [
7463 "perm",
7464 "/",
7465 [
7466 "Sys.Modify"
7467 ]
7468 ]
7469 },
7470 "protected" : 1,
7471 "returns" : {
7472 "type" : "null"
7473 }
7474 }
7475 },
7476 "leaf" : 1,
7477 "path" : "/cluster/acme/plugins/{id}",
7478 "text" : "{id}"
7479 }
7480 ],
7481 "info" : {
7482 "GET" : {
7483 "allowtoken" : 1,
7484 "description" : "ACME plugin index.",
7485 "method" : "GET",
7486 "name" : "index",
7487 "parameters" : {
7488 "additionalProperties" : 0,
7489 "properties" : {
7490 "type" : {
7491 "description" : "Only list ACME plugins of a specific type",
7492 "enum" : [
7493 "dns",
7494 "standalone"
7495 ],
7496 "optional" : 1,
7497 "type" : "string"
7498 }
7499 }
7500 },
7501 "permissions" : {
7502 "check" : [
7503 "perm",
7504 "/",
7505 [
7506 "Sys.Modify"
7507 ]
7508 ]
7509 },
7510 "protected" : 1,
7511 "returns" : {
7512 "items" : {
7513 "properties" : {
7514 "plugin" : {
7515 "description" : "Unique identifier for ACME plugin instance.",
7516 "format" : "pve-configid",
7517 "type" : "string"
7518 }
7519 },
7520 "type" : "object"
7521 },
7522 "links" : [
7523 {
7524 "href" : "{plugin}",
7525 "rel" : "child"
7526 }
7527 ],
7528 "type" : "array"
7529 }
7530 },
7531 "POST" : {
7532 "allowtoken" : 1,
7533 "description" : "Add ACME plugin configuration.",
7534 "method" : "POST",
7535 "name" : "add_plugin",
7536 "parameters" : {
7537 "additionalProperties" : 0,
7538 "properties" : {
7539 "api" : {
7540 "description" : "API plugin name",
7541 "enum" : [
d2656385 7542 "1984hosting",
c5aa7e14
TL
7543 "acmedns",
7544 "acmeproxy",
7545 "active24",
7546 "ad",
7547 "ali",
d2656385 7548 "anx",
bd92b745 7549 "artfiles",
d2656385 7550 "arvan",
e7084ef7 7551 "aurora",
c5aa7e14
TL
7552 "autodns",
7553 "aws",
5370fa8c 7554 "azion",
c5aa7e14 7555 "azure",
bd92b745 7556 "bookmyname",
9d2e98ed 7557 "bunny",
c5aa7e14
TL
7558 "cf",
7559 "clouddns",
7560 "cloudns",
7561 "cn",
7562 "conoha",
7563 "constellix",
9d2e98ed
TL
7564 "cpanel",
7565 "curanet",
c5aa7e14
TL
7566 "cyon",
7567 "da",
7568 "ddnss",
7569 "desec",
ac70d7d1 7570 "df",
c5aa7e14 7571 "dgon",
bd92b745 7572 "dnsexit",
9d2e98ed 7573 "dnshome",
c5aa7e14 7574 "dnsimple",
9d2e98ed 7575 "dnsservices",
c5aa7e14
TL
7576 "do",
7577 "doapi",
7578 "domeneshop",
7579 "dp",
7580 "dpi",
7581 "dreamhost",
7582 "duckdns",
7583 "durabledns",
7584 "dyn",
7585 "dynu",
7586 "dynv6",
7587 "easydns",
d2656385 7588 "edgedns",
c5aa7e14
TL
7589 "euserv",
7590 "exoscale",
9d2e98ed 7591 "fornex",
c5aa7e14
TL
7592 "freedns",
7593 "gandi_livedns",
7594 "gcloud",
8dd66e12 7595 "gcore",
c5aa7e14 7596 "gd",
9d2e98ed 7597 "geoscaling",
8dd66e12 7598 "googledomains",
c5aa7e14 7599 "he",
d2656385 7600 "hetzner",
c5aa7e14
TL
7601 "hexonet",
7602 "hostingde",
d2656385 7603 "huaweicloud",
c5aa7e14 7604 "infoblox",
d2656385 7605 "infomaniak",
c5aa7e14
TL
7606 "internetbs",
7607 "inwx",
d2656385 7608 "ionos",
8dd66e12 7609 "ipv64",
c5aa7e14
TL
7610 "ispconfig",
7611 "jd",
d2656385
TL
7612 "joker",
7613 "kappernet",
c5aa7e14
TL
7614 "kas",
7615 "kinghost",
7616 "knot",
9d2e98ed 7617 "la",
c5aa7e14
TL
7618 "leaseweb",
7619 "lexicon",
7620 "linode",
7621 "linode_v4",
7622 "loopia",
7623 "lua",
7624 "maradns",
7625 "me",
7626 "miab",
7627 "misaka",
7628 "myapi",
7629 "mydevil",
7630 "mydnsjp",
9d2e98ed 7631 "mythic_beasts",
c5aa7e14
TL
7632 "namecheap",
7633 "namecom",
7634 "namesilo",
8dd66e12 7635 "nanelo",
c5aa7e14
TL
7636 "nederhost",
7637 "neodigit",
7638 "netcup",
d2656385 7639 "netlify",
c5aa7e14 7640 "nic",
d2656385
TL
7641 "njalla",
7642 "nm",
c5aa7e14
TL
7643 "nsd",
7644 "nsone",
7645 "nsupdate",
7646 "nw",
5370fa8c 7647 "oci",
c5aa7e14
TL
7648 "one",
7649 "online",
7650 "openprovider",
d2656385 7651 "openstack",
c5aa7e14
TL
7652 "opnsense",
7653 "ovh",
7654 "pdns",
7655 "pleskxml",
7656 "pointhq",
e7084ef7 7657 "porkbun",
d2656385 7658 "rackcorp",
c5aa7e14 7659 "rackspace",
9d2e98ed 7660 "rage4",
c5aa7e14
TL
7661 "rcode0",
7662 "regru",
d2656385 7663 "scaleway",
c5aa7e14
TL
7664 "schlundtech",
7665 "selectel",
9d2e98ed 7666 "selfhost",
c5aa7e14 7667 "servercow",
d2656385 7668 "simply",
c5aa7e14 7669 "tele3",
bd92b745 7670 "tencent",
d2656385 7671 "transip",
9d2e98ed 7672 "udr",
c5aa7e14
TL
7673 "ultra",
7674 "unoeuro",
7675 "variomedia",
5370fa8c 7676 "veesp",
9d2e98ed 7677 "vercel",
c5aa7e14
TL
7678 "vscale",
7679 "vultr",
e7084ef7 7680 "websupport",
d2656385 7681 "world4you",
c5aa7e14 7682 "yandex",
9d2e98ed 7683 "yc",
c5aa7e14
TL
7684 "zilore",
7685 "zone",
7686 "zonomi"
7687 ],
7688 "optional" : 1,
7689 "type" : "string"
7690 },
7691 "data" : {
7692 "description" : "DNS plugin data. (base64 encoded)",
7693 "optional" : 1,
7694 "type" : "string",
7695 "typetext" : "<string>"
7696 },
7697 "disable" : {
7698 "description" : "Flag to disable the config.",
7699 "optional" : 1,
7700 "type" : "boolean",
7701 "typetext" : "<boolean>"
7702 },
7703 "id" : {
7704 "description" : "ACME Plugin ID name",
7705 "format" : "pve-configid",
7706 "type" : "string",
7707 "typetext" : "<string>"
7708 },
7709 "nodes" : {
7710 "description" : "List of cluster node names.",
7711 "format" : "pve-node-list",
7712 "optional" : 1,
7713 "type" : "string",
7714 "typetext" : "<string>"
7715 },
7716 "type" : {
7717 "description" : "ACME challenge type.",
7718 "enum" : [
7719 "dns",
7720 "standalone"
7721 ],
7722 "type" : "string"
7723 },
7724 "validation-delay" : {
7725 "default" : 30,
7726 "description" : "Extra delay in seconds to wait before requesting validation. Allows to cope with a long TTL of DNS records.",
7727 "maximum" : 172800,
7728 "minimum" : 0,
7729 "optional" : 1,
7730 "type" : "integer",
7731 "typetext" : "<integer> (0 - 172800)"
7732 }
7733 },
7734 "type" : "object"
7735 },
7736 "permissions" : {
7737 "check" : [
7738 "perm",
7739 "/",
7740 [
7741 "Sys.Modify"
7742 ]
7743 ]
7744 },
7745 "protected" : 1,
7746 "returns" : {
7747 "type" : "null"
7748 }
7749 }
7750 },
7751 "leaf" : 0,
7752 "path" : "/cluster/acme/plugins",
7753 "text" : "plugins"
7754 },
a9a8e3d1
DM
7755 {
7756 "children" : [
7757 {
7758 "info" : {
7759 "DELETE" : {
e9cd3bd4 7760 "allowtoken" : 1,
a9a8e3d1
DM
7761 "description" : "Deactivate existing ACME account at CA.",
7762 "method" : "DELETE",
7763 "name" : "deactivate_account",
7764 "parameters" : {
7765 "additionalProperties" : 0,
7766 "properties" : {
7767 "name" : {
7768 "default" : "default",
7769 "description" : "ACME account config file name.",
7770 "format" : "pve-configid",
7771 "format_description" : "name",
7772 "optional" : 1,
7773 "type" : "string",
7774 "typetext" : "<name>"
7775 }
7776 }
7777 },
7778 "protected" : 1,
7779 "returns" : {
7780 "type" : "string"
7781 }
7782 },
7783 "GET" : {
e9cd3bd4 7784 "allowtoken" : 1,
a9a8e3d1
DM
7785 "description" : "Return existing ACME account information.",
7786 "method" : "GET",
7787 "name" : "get_account",
7788 "parameters" : {
7789 "additionalProperties" : 0,
7790 "properties" : {
7791 "name" : {
7792 "default" : "default",
7793 "description" : "ACME account config file name.",
7794 "format" : "pve-configid",
7795 "format_description" : "name",
7796 "optional" : 1,
7797 "type" : "string",
7798 "typetext" : "<name>"
7799 }
7800 }
7801 },
7802 "protected" : 1,
7803 "returns" : {
7804 "additionalProperties" : 0,
7805 "properties" : {
7806 "account" : {
7807 "optional" : 1,
4d47f125 7808 "renderer" : "yaml",
a9a8e3d1
DM
7809 "type" : "object"
7810 },
7811 "directory" : {
7812 "description" : "URL of ACME CA directory endpoint.",
7813 "optional" : 1,
7814 "pattern" : "^https?://.*",
7815 "type" : "string"
7816 },
7817 "location" : {
7818 "optional" : 1,
7819 "type" : "string"
7820 },
7821 "tos" : {
7822 "optional" : 1,
7823 "type" : "string"
7824 }
7825 },
7826 "type" : "object"
7827 }
7828 },
7829 "PUT" : {
e9cd3bd4 7830 "allowtoken" : 1,
a9a8e3d1
DM
7831 "description" : "Update existing ACME account information with CA. Note: not specifying any new account information triggers a refresh.",
7832 "method" : "PUT",
7833 "name" : "update_account",
7834 "parameters" : {
7835 "additionalProperties" : 0,
7836 "properties" : {
7837 "contact" : {
7838 "description" : "Contact email addresses.",
7839 "format" : "email-list",
7840 "optional" : 1,
7841 "type" : "string",
7842 "typetext" : "<string>"
7843 },
7844 "name" : {
7845 "default" : "default",
7846 "description" : "ACME account config file name.",
7847 "format" : "pve-configid",
7848 "format_description" : "name",
7849 "optional" : 1,
7850 "type" : "string",
7851 "typetext" : "<name>"
7852 }
7853 }
7854 },
7855 "protected" : 1,
7856 "returns" : {
7857 "type" : "string"
7858 }
7859 }
7860 },
7861 "leaf" : 1,
7862 "path" : "/cluster/acme/account/{name}",
7863 "text" : "{name}"
7864 }
7865 ],
7866 "info" : {
7867 "GET" : {
e9cd3bd4 7868 "allowtoken" : 1,
a9a8e3d1
DM
7869 "description" : "ACMEAccount index.",
7870 "method" : "GET",
7871 "name" : "account_index",
7872 "parameters" : {
7873 "additionalProperties" : 0
7874 },
7875 "permissions" : {
7876 "user" : "all"
7877 },
7878 "protected" : 1,
7879 "returns" : {
7880 "items" : {
7881 "properties" : {},
7882 "type" : "object"
7883 },
7884 "links" : [
7885 {
7886 "href" : "{name}",
7887 "rel" : "child"
7888 }
7889 ],
7890 "type" : "array"
7891 }
7892 },
7893 "POST" : {
e9cd3bd4 7894 "allowtoken" : 1,
a9a8e3d1
DM
7895 "description" : "Register a new ACME account with CA.",
7896 "method" : "POST",
7897 "name" : "register_account",
7898 "parameters" : {
7899 "additionalProperties" : 0,
7900 "properties" : {
7901 "contact" : {
7902 "description" : "Contact email addresses.",
7903 "format" : "email-list",
7904 "type" : "string",
7905 "typetext" : "<string>"
7906 },
7907 "directory" : {
7908 "default" : "https://acme-v02.api.letsencrypt.org/directory",
7909 "description" : "URL of ACME CA directory endpoint.",
7910 "optional" : 1,
7911 "pattern" : "^https?://.*",
7912 "type" : "string"
7913 },
fa22697b
TL
7914 "eab-hmac-key" : {
7915 "description" : "HMAC key for External Account Binding.",
7916 "optional" : 1,
7917 "requires" : "eab-kid",
7918 "type" : "string",
7919 "typetext" : "<string>"
7920 },
7921 "eab-kid" : {
7922 "description" : "Key Identifier for External Account Binding.",
7923 "optional" : 1,
7924 "requires" : "eab-hmac-key",
7925 "type" : "string",
7926 "typetext" : "<string>"
7927 },
a9a8e3d1
DM
7928 "name" : {
7929 "default" : "default",
7930 "description" : "ACME account config file name.",
7931 "format" : "pve-configid",
7932 "format_description" : "name",
7933 "optional" : 1,
7934 "type" : "string",
7935 "typetext" : "<name>"
7936 },
7937 "tos_url" : {
7938 "description" : "URL of CA TermsOfService - setting this indicates agreement.",
7939 "optional" : 1,
7940 "type" : "string",
7941 "typetext" : "<string>"
7942 }
7943 }
7944 },
7945 "protected" : 1,
7946 "returns" : {
7947 "type" : "string"
7948 }
7949 }
7950 },
7951 "leaf" : 0,
7952 "path" : "/cluster/acme/account",
7953 "text" : "account"
7954 },
7955 {
7956 "info" : {
7957 "GET" : {
e9cd3bd4 7958 "allowtoken" : 1,
fa22697b 7959 "description" : "Retrieve ACME TermsOfService URL from CA. Deprecated, please use /cluster/acme/meta.",
a9a8e3d1
DM
7960 "method" : "GET",
7961 "name" : "get_tos",
7962 "parameters" : {
7963 "additionalProperties" : 0,
7964 "properties" : {
7965 "directory" : {
7966 "default" : "https://acme-v02.api.letsencrypt.org/directory",
7967 "description" : "URL of ACME CA directory endpoint.",
7968 "optional" : 1,
7969 "pattern" : "^https?://.*",
7970 "type" : "string"
7971 }
7972 }
7973 },
5da3d723
TL
7974 "permissions" : {
7975 "user" : "all"
7976 },
a9a8e3d1
DM
7977 "returns" : {
7978 "description" : "ACME TermsOfService URL.",
5c1699e5 7979 "optional" : 1,
a9a8e3d1
DM
7980 "type" : "string"
7981 }
7982 }
7983 },
7984 "leaf" : 1,
7985 "path" : "/cluster/acme/tos",
7986 "text" : "tos"
7987 },
fa22697b
TL
7988 {
7989 "info" : {
7990 "GET" : {
7991 "allowtoken" : 1,
7992 "description" : "Retrieve ACME Directory Meta Information",
7993 "method" : "GET",
7994 "name" : "get_meta",
7995 "parameters" : {
7996 "additionalProperties" : 0,
7997 "properties" : {
7998 "directory" : {
7999 "default" : "https://acme-v02.api.letsencrypt.org/directory",
8000 "description" : "URL of ACME CA directory endpoint.",
8001 "optional" : 1,
8002 "pattern" : "^https?://.*",
8003 "type" : "string"
8004 }
8005 }
8006 },
8007 "permissions" : {
8008 "check" : [
8009 "perm",
8010 "/nodes/{node}",
8011 [
8012 "Sys.Audit"
8013 ]
8014 ]
8015 },
8016 "returns" : {
8017 "additionalProperties" : 1,
8018 "properties" : {
8019 "caaIdentities" : {
8020 "description" : "Hostnames referring to the ACME servers.",
8021 "items" : {
8022 "type" : "string"
8023 },
8024 "optional" : 1,
8025 "type" : "array"
8026 },
8027 "externalAccountRequired" : {
8028 "description" : "EAB Required",
8029 "optional" : 1,
8030 "type" : "boolean"
8031 },
8032 "termsOfService" : {
8033 "description" : "ACME TermsOfService URL.",
8034 "optional" : 1,
8035 "type" : "string"
8036 },
8037 "website" : {
8038 "description" : "URL to more information about the ACME server.",
8039 "optional" : 1,
8040 "type" : "string"
8041 }
8042 },
8043 "type" : "object"
8044 }
8045 }
8046 },
8047 "leaf" : 1,
8048 "path" : "/cluster/acme/meta",
8049 "text" : "meta"
8050 },
a9a8e3d1
DM
8051 {
8052 "info" : {
8053 "GET" : {
e9cd3bd4 8054 "allowtoken" : 1,
a9a8e3d1
DM
8055 "description" : "Get named known ACME directory endpoints.",
8056 "method" : "GET",
8057 "name" : "get_directories",
8058 "parameters" : {
8059 "additionalProperties" : 0
8060 },
5da3d723
TL
8061 "permissions" : {
8062 "user" : "all"
8063 },
a9a8e3d1
DM
8064 "returns" : {
8065 "items" : {
8066 "additionalProperties" : 0,
8067 "properties" : {
8068 "name" : {
8069 "type" : "string"
8070 },
8071 "url" : {
8072 "description" : "URL of ACME CA directory endpoint.",
8073 "pattern" : "^https?://.*",
8074 "type" : "string"
8075 }
8076 },
8077 "type" : "object"
8078 },
8079 "type" : "array"
8080 }
8081 }
8082 },
8083 "leaf" : 1,
8084 "path" : "/cluster/acme/directories",
8085 "text" : "directories"
ac70d7d1
TL
8086 },
8087 {
8088 "info" : {
8089 "GET" : {
8090 "allowtoken" : 1,
8091 "description" : "Get schema of ACME challenge types.",
8092 "method" : "GET",
8093 "name" : "challengeschema",
8094 "parameters" : {
8095 "additionalProperties" : 0
8096 },
8097 "permissions" : {
8098 "user" : "all"
8099 },
8100 "returns" : {
8101 "items" : {
8102 "additionalProperties" : 0,
8103 "properties" : {
8104 "id" : {
8105 "type" : "string"
8106 },
8107 "name" : {
8108 "description" : "Human readable name, falls back to id",
8109 "type" : "string"
8110 },
8111 "schema" : {
8112 "type" : "object"
8113 },
8114 "type" : {
8115 "type" : "string"
8116 }
8117 },
8118 "type" : "object"
8119 },
8120 "type" : "array"
8121 }
8122 }
8123 },
8124 "leaf" : 1,
8125 "path" : "/cluster/acme/challenge-schema",
8126 "text" : "challenge-schema"
a9a8e3d1
DM
8127 }
8128 ],
8129 "info" : {
8130 "GET" : {
e9cd3bd4 8131 "allowtoken" : 1,
a9a8e3d1
DM
8132 "description" : "ACMEAccount index.",
8133 "method" : "GET",
8134 "name" : "index",
8135 "parameters" : {
8136 "additionalProperties" : 0
8137 },
8138 "permissions" : {
8139 "user" : "all"
8140 },
8141 "returns" : {
8142 "items" : {
8143 "properties" : {},
8144 "type" : "object"
8145 },
8146 "links" : [
8147 {
8148 "href" : "{name}",
8149 "rel" : "child"
8150 }
8151 ],
8152 "type" : "array"
8153 }
8154 }
8155 },
8156 "leaf" : 0,
8157 "path" : "/cluster/acme",
8158 "text" : "acme"
8159 },
1c532546
TL
8160 {
8161 "children" : [
8162 {
8163 "info" : {
8164 "GET" : {
e9cd3bd4 8165 "allowtoken" : 1,
1c532546
TL
8166 "description" : "Get ceph metadata.",
8167 "method" : "GET",
8168 "name" : "metadata",
8169 "parameters" : {
c5aa7e14
TL
8170 "additionalProperties" : 0,
8171 "properties" : {
8172 "scope" : {
8173 "default" : "all",
8174 "enum" : [
8175 "all",
8176 "versions"
8177 ],
8178 "optional" : 1,
8179 "type" : "string"
8180 }
8181 }
1c532546
TL
8182 },
8183 "permissions" : {
8184 "check" : [
8185 "perm",
8186 "/",
8187 [
8188 "Sys.Audit",
8189 "Datastore.Audit"
8190 ],
8191 "any",
8192 1
8193 ]
8194 },
8195 "protected" : 1,
8196 "returns" : {
9d2e98ed
TL
8197 "description" : "Items for each type of service containing objects for each instance.",
8198 "properties" : {
8199 "mds" : {
8200 "description" : "Metadata servers configured in the cluster and their properties.",
8201 "properties" : {
8202 "{id}" : {
8203 "description" : "Useful properties are listed, but not the full list.",
8204 "properties" : {
8205 "addr" : {
8206 "description" : "Bind addresses and ports.",
8207 "type" : "string"
8208 },
8209 "ceph_release" : {
8210 "description" : "Ceph release codename currently used.",
8211 "type" : "string"
8212 },
8213 "ceph_version" : {
8214 "description" : "Version info currently used by the service.",
8215 "type" : "string"
8216 },
8217 "ceph_version_short" : {
8218 "description" : "Short version (numerical) info currently used by the service.",
8219 "type" : "string"
8220 },
8221 "hostname" : {
8222 "description" : "Hostname on which the service is running.",
8223 "type" : "string"
8224 },
8225 "mem_swap_kb" : {
8226 "description" : "Memory of the service currently in swap.",
8227 "type" : "integer"
8228 },
8229 "mem_total_kb" : {
8230 "description" : "Memory consumption of the service.",
8231 "type" : "integer"
8232 },
8233 "name" : {
8234 "description" : "Name of the service instance.",
8235 "type" : "string"
8236 }
8237 },
8238 "type" : "object"
8239 }
8240 },
8241 "type" : "object"
8242 },
8243 "mgr" : {
8244 "description" : "Managers configured in the cluster and their properties.",
8245 "properties" : {
8246 "{id}" : {
8247 "description" : "Useful properties are listed, but not the full list.",
8248 "properties" : {
8249 "addr" : {
8250 "description" : "Bind address",
8251 "type" : "string"
8252 },
8253 "ceph_release" : {
8254 "description" : "Ceph release codename currently used.",
8255 "type" : "string"
8256 },
8257 "ceph_version" : {
8258 "description" : "Version info currently used by the service.",
8259 "type" : "string"
8260 },
8261 "ceph_version_short" : {
8262 "description" : "Short version (numerical) info currently used by the service.",
8263 "type" : "string"
8264 },
8265 "hostname" : {
8266 "description" : "Hostname on which the service is running.",
8267 "type" : "string"
8268 },
8269 "mem_swap_kb" : {
8270 "description" : "Memory of the service currently in swap.",
8271 "type" : "integer"
8272 },
8273 "mem_total_kb" : {
8274 "description" : "Memory consumption of the service.",
8275 "type" : "integer"
8276 },
8277 "name" : {
8278 "description" : "Name of the service instance.",
8279 "type" : "string"
8280 }
8281 },
8282 "type" : "object"
8283 }
8284 },
8285 "type" : "object"
8286 },
8287 "mon" : {
8288 "description" : "Monitors configured in the cluster and their properties.",
8289 "properties" : {
8290 "{id}" : {
8291 "description" : "Useful properties are listed, but not the full list.",
8292 "properties" : {
8293 "addrs" : {
8294 "description" : "Bind addresses and ports.",
8295 "type" : "string"
8296 },
8297 "ceph_release" : {
8298 "description" : "Ceph release codename currently used.",
8299 "type" : "string"
8300 },
8301 "ceph_version" : {
8302 "description" : "Version info currently used by the service.",
8303 "type" : "string"
8304 },
8305 "ceph_version_short" : {
8306 "description" : "Short version (numerical) info currently used by the service.",
8307 "type" : "string"
8308 },
8309 "hostname" : {
8310 "description" : "Hostname on which the service is running.",
8311 "type" : "string"
8312 },
8313 "mem_swap_kb" : {
8314 "description" : "Memory of the service currently in swap.",
8315 "type" : "integer"
8316 },
8317 "mem_total_kb" : {
8318 "description" : "Memory consumption of the service.",
8319 "type" : "integer"
8320 },
8321 "name" : {
8322 "description" : "Name of the service instance.",
8323 "type" : "string"
8324 }
8325 },
8326 "type" : "object"
8327 }
8328 },
8329 "type" : "object"
8330 },
8331 "node" : {
8332 "description" : "Ceph version installed on the nodes.",
8333 "properties" : {
8334 "{node}" : {
8335 "properties" : {
8336 "buildcommit" : {
8337 "description" : "GIT commit used for the build.",
8338 "type" : "string"
8339 },
8340 "version" : {
8341 "description" : "Version info.",
8342 "properties" : {
8343 "parts" : {
8344 "description" : "major, minor & patch",
8345 "type" : "array"
8346 },
8347 "str" : {
8348 "description" : "Version as single string.",
8349 "type" : "string"
8350 }
8351 },
8352 "type" : "object"
8353 }
8354 },
8355 "type" : "object"
8356 }
8357 },
8358 "type" : "object"
8359 },
8360 "osd" : {
8361 "description" : "OSDs configured in the cluster and their properties.",
8362 "properties" : {
8363 "{id}" : {
8364 "description" : "Useful properties are listed, but not the full list.",
8365 "properties" : {
8366 "back_addr" : {
8367 "description" : "Bind addresses and ports for backend inter OSD traffic.",
8368 "type" : "string"
8369 },
8370 "ceph_release" : {
8371 "description" : "Ceph release codename currently used.",
8372 "type" : "string"
8373 },
8374 "ceph_version" : {
8375 "description" : "Version info currently used by the service.",
8376 "type" : "string"
8377 },
8378 "ceph_version_short" : {
8379 "description" : "Short version (numerical) info currently used by the service.",
8380 "type" : "string"
8381 },
8382 "device_id" : {
8383 "description" : "Devices used by the OSD.",
8384 "type" : "string"
8385 },
8386 "front_addr" : {
8387 "description" : "Bind addresses and ports for frontend traffic to OSDs.",
8388 "type" : "string"
8389 },
8390 "hostname" : {
8391 "description" : "Hostname on which the service is running.",
8392 "type" : "string"
8393 },
8394 "id" : {
8395 "description" : "OSD ID.",
8396 "type" : "integer"
8397 },
8398 "mem_swap_kb" : {
8399 "description" : "Memory of the service currently in swap.",
8400 "type" : "integer"
8401 },
8402 "mem_total_kb" : {
8403 "description" : "Memory consumption of the service.",
8404 "type" : "integer"
8405 },
8406 "osd_data" : {
8407 "description" : "Path to the OSD data directory.",
8408 "type" : "string"
8409 },
8410 "osd_objectstore" : {
8411 "description" : "OSD objectstore type.",
8412 "type" : "string"
8413 }
8414 },
8415 "type" : "object"
8416 }
8417 },
8418 "type" : "array"
8419 }
8420 },
1c532546
TL
8421 "type" : "object"
8422 }
8423 }
8424 },
8425 "leaf" : 1,
8426 "path" : "/cluster/ceph/metadata",
8427 "text" : "metadata"
8428 },
8429 {
8430 "info" : {
8431 "GET" : {
e9cd3bd4 8432 "allowtoken" : 1,
1c532546
TL
8433 "description" : "Get ceph status.",
8434 "method" : "GET",
8435 "name" : "status",
8436 "parameters" : {
8437 "additionalProperties" : 0
8438 },
8439 "permissions" : {
8440 "check" : [
8441 "perm",
8442 "/",
8443 [
8444 "Sys.Audit",
8445 "Datastore.Audit"
8446 ],
8447 "any",
8448 1
8449 ]
8450 },
8451 "protected" : 1,
8452 "returns" : {
8453 "type" : "object"
8454 }
8455 }
8456 },
8457 "leaf" : 1,
8458 "path" : "/cluster/ceph/status",
8459 "text" : "status"
8460 },
8461 {
8462 "children" : [
8463 {
8464 "info" : {
8465 "GET" : {
e9cd3bd4 8466 "allowtoken" : 1,
1c532546
TL
8467 "description" : "Get the status of a specific ceph flag.",
8468 "method" : "GET",
8469 "name" : "get_flag",
8470 "parameters" : {
8471 "additionalProperties" : 0,
8472 "properties" : {
8473 "flag" : {
8474 "description" : "The name of the flag name to get.",
8475 "enum" : [
8476 "nobackfill",
8477 "nodeep-scrub",
8478 "nodown",
8479 "noin",
8480 "noout",
8481 "norebalance",
8482 "norecover",
8483 "noscrub",
8484 "notieragent",
8485 "noup",
8486 "pause"
8487 ],
8488 "type" : "string"
8489 }
8490 }
8491 },
8492 "permissions" : {
8493 "check" : [
8494 "perm",
8495 "/",
8496 [
8497 "Sys.Audit"
8498 ]
8499 ]
8500 },
8501 "protected" : 1,
8502 "returns" : {
8503 "type" : "boolean"
8504 }
8505 },
8506 "PUT" : {
e9cd3bd4 8507 "allowtoken" : 1,
1c532546
TL
8508 "description" : "Set or clear (unset) a specific ceph flag",
8509 "method" : "PUT",
8510 "name" : "update_flag",
8511 "parameters" : {
8512 "additionalProperties" : 0,
8513 "properties" : {
8514 "flag" : {
8515 "description" : "The ceph flag to update",
8516 "enum" : [
8517 "nobackfill",
8518 "nodeep-scrub",
8519 "nodown",
8520 "noin",
8521 "noout",
8522 "norebalance",
8523 "norecover",
8524 "noscrub",
8525 "notieragent",
8526 "noup",
8527 "pause"
8528 ],
8529 "type" : "string"
8530 },
8531 "value" : {
8532 "description" : "The new value of the flag",
8533 "type" : "boolean",
8534 "typetext" : "<boolean>"
8535 }
8536 }
8537 },
8538 "permissions" : {
8539 "check" : [
8540 "perm",
8541 "/",
8542 [
8543 "Sys.Modify"
8544 ]
8545 ]
8546 },
8547 "protected" : 1,
8548 "returns" : {
8549 "type" : "null"
8550 }
8551 }
8552 },
8553 "leaf" : 1,
8554 "path" : "/cluster/ceph/flags/{flag}",
8555 "text" : "{flag}"
8556 }
8557 ],
8558 "info" : {
8559 "GET" : {
e9cd3bd4 8560 "allowtoken" : 1,
1c532546
TL
8561 "description" : "get the status of all ceph flags",
8562 "method" : "GET",
8563 "name" : "get_all_flags",
8564 "parameters" : {
8565 "additionalProperties" : 0
8566 },
8567 "permissions" : {
8568 "check" : [
8569 "perm",
8570 "/",
8571 [
8572 "Sys.Audit"
8573 ]
8574 ]
8575 },
8576 "protected" : 1,
8577 "returns" : {
8578 "items" : {
8579 "additionalProperties" : 1,
8580 "properties" : {
9d2e98ed
TL
8581 "description" : {
8582 "description" : "Flag description.",
8583 "type" : "string"
8584 },
1c532546
TL
8585 "name" : {
8586 "description" : "Flag name.",
8587 "enum" : [
8588 "nobackfill",
8589 "nodeep-scrub",
8590 "nodown",
8591 "noin",
8592 "noout",
8593 "norebalance",
8594 "norecover",
8595 "noscrub",
8596 "notieragent",
8597 "noup",
8598 "pause"
8599 ],
8600 "type" : "string"
9d2e98ed
TL
8601 },
8602 "value" : {
8603 "description" : "Flag value.",
8604 "type" : "boolean"
1c532546
TL
8605 }
8606 },
8607 "type" : "object"
8608 },
8609 "links" : [
8610 {
8611 "href" : "{name}",
8612 "rel" : "child"
8613 }
8614 ],
8615 "type" : "array"
8616 }
8617 },
8618 "PUT" : {
e9cd3bd4 8619 "allowtoken" : 1,
1c532546
TL
8620 "description" : "Set/Unset multiple ceph flags at once.",
8621 "method" : "PUT",
8622 "name" : "set_flags",
8623 "parameters" : {
8624 "additionalProperties" : 0,
8625 "properties" : {
8626 "nobackfill" : {
8627 "description" : "Backfilling of PGs is suspended.",
8628 "optional" : 1,
8629 "type" : "boolean",
8630 "typetext" : "<boolean>"
8631 },
8632 "nodeep-scrub" : {
8633 "description" : "Deep Scrubbing is disabled.",
8634 "optional" : 1,
8635 "type" : "boolean",
8636 "typetext" : "<boolean>"
8637 },
8638 "nodown" : {
8639 "description" : "OSD failure reports are being ignored, such that the monitors will not mark OSDs down.",
8640 "optional" : 1,
8641 "type" : "boolean",
8642 "typetext" : "<boolean>"
8643 },
8644 "noin" : {
8645 "description" : "OSDs that were previously marked out will not be marked back in when they start.",
8646 "optional" : 1,
8647 "type" : "boolean",
8648 "typetext" : "<boolean>"
8649 },
8650 "noout" : {
8651 "description" : "OSDs will not automatically be marked out after the configured interval.",
8652 "optional" : 1,
8653 "type" : "boolean",
8654 "typetext" : "<boolean>"
8655 },
8656 "norebalance" : {
8657 "description" : "Rebalancing of PGs is suspended.",
8658 "optional" : 1,
8659 "type" : "boolean",
8660 "typetext" : "<boolean>"
8661 },
8662 "norecover" : {
8663 "description" : "Recovery of PGs is suspended.",
8664 "optional" : 1,
8665 "type" : "boolean",
8666 "typetext" : "<boolean>"
8667 },
8668 "noscrub" : {
8669 "description" : "Scrubbing is disabled.",
8670 "optional" : 1,
8671 "type" : "boolean",
8672 "typetext" : "<boolean>"
8673 },
8674 "notieragent" : {
8675 "description" : "Cache tiering activity is suspended.",
8676 "optional" : 1,
8677 "type" : "boolean",
8678 "typetext" : "<boolean>"
8679 },
8680 "noup" : {
8681 "description" : "OSDs are not allowed to start.",
8682 "optional" : 1,
8683 "type" : "boolean",
8684 "typetext" : "<boolean>"
8685 },
8686 "pause" : {
8687 "description" : "Pauses read and writes.",
8688 "optional" : 1,
8689 "type" : "boolean",
8690 "typetext" : "<boolean>"
8691 }
8692 }
8693 },
8694 "permissions" : {
8695 "check" : [
8696 "perm",
8697 "/",
8698 [
8699 "Sys.Modify"
8700 ]
8701 ]
8702 },
8703 "protected" : 1,
8704 "returns" : {
8705 "type" : "string"
8706 }
8707 }
8708 },
8709 "leaf" : 0,
8710 "path" : "/cluster/ceph/flags",
8711 "text" : "flags"
8712 }
8713 ],
8714 "info" : {
8715 "GET" : {
e9cd3bd4 8716 "allowtoken" : 1,
1c532546
TL
8717 "description" : "Cluster ceph index.",
8718 "method" : "GET",
8719 "name" : "cephindex",
8720 "parameters" : {
8721 "additionalProperties" : 0
8722 },
8723 "permissions" : {
8724 "user" : "all"
8725 },
8726 "returns" : {
8727 "items" : {
8728 "properties" : {},
8729 "type" : "object"
8730 },
8731 "links" : [
8732 {
8733 "href" : "{name}",
8734 "rel" : "child"
8735 }
8736 ],
8737 "type" : "array"
8738 }
8739 }
8740 },
8741 "leaf" : 0,
8742 "path" : "/cluster/ceph",
8743 "text" : "ceph"
8744 },
5370fa8c
TL
8745 {
8746 "children" : [
159464a9
TL
8747 {
8748 "children" : [
8749 {
8750 "info" : {
8751 "DELETE" : {
8752 "allowtoken" : 1,
8753 "description" : "Delete realm-sync job definition.",
8754 "method" : "DELETE",
8755 "name" : "delete_job",
8756 "parameters" : {
8757 "additionalProperties" : 0,
8758 "properties" : {
8759 "id" : {
8760 "format" : "pve-configid",
8761 "type" : "string",
8762 "typetext" : "<string>"
8763 }
8764 }
8765 },
8766 "permissions" : {
8767 "check" : [
8768 "perm",
8769 "/",
8770 [
8771 "Sys.Modify"
8772 ]
8773 ]
8774 },
8775 "protected" : 1,
8776 "returns" : {
8777 "type" : "null"
8778 }
8779 },
8780 "GET" : {
8781 "allowtoken" : 1,
8782 "description" : "Read realm-sync job definition.",
8783 "method" : "GET",
8784 "name" : "read_job",
8785 "parameters" : {
8786 "additionalProperties" : 0,
8787 "properties" : {
8788 "id" : {
8789 "format" : "pve-configid",
8790 "type" : "string",
8791 "typetext" : "<string>"
8792 }
8793 }
8794 },
8795 "permissions" : {
8796 "check" : [
8797 "perm",
8798 "/",
8799 [
8800 "Sys.Audit"
8801 ]
8802 ]
8803 },
8804 "returns" : {
8805 "type" : "object"
8806 }
8807 },
8808 "POST" : {
8809 "allowtoken" : 1,
8810 "description" : "Create new realm-sync job.",
8811 "method" : "POST",
8812 "name" : "create_job",
8813 "parameters" : {
8814 "additionalProperties" : 0,
8815 "properties" : {
8816 "comment" : {
8817 "description" : "Description for the Job.",
8818 "maxLength" : 512,
8819 "optional" : 1,
8820 "type" : "string",
8821 "typetext" : "<string>"
8822 },
8823 "enable-new" : {
8824 "default" : "1",
8825 "description" : "Enable newly synced users immediately.",
8826 "optional" : 1,
8827 "type" : "boolean",
8828 "typetext" : "<boolean>"
8829 },
8830 "enabled" : {
8831 "default" : 1,
8832 "description" : "Determines if the job is enabled.",
8833 "optional" : 1,
8834 "type" : "boolean",
8835 "typetext" : "<boolean>"
8836 },
8837 "id" : {
8838 "description" : "The ID of the job.",
8839 "format" : "pve-configid",
8840 "maxLength" : 64,
8841 "type" : "string",
8842 "typetext" : "<string>"
8843 },
8844 "realm" : {
8845 "description" : "Authentication domain ID",
8846 "format" : "pve-realm",
8847 "maxLength" : 32,
8848 "optional" : 1,
8849 "type" : "string",
8850 "typetext" : "<string>"
8851 },
8852 "remove-vanished" : {
8853 "default" : "none",
8854 "description" : "A semicolon-seperated list of things to remove when they or the user vanishes during a sync. The following values are possible: 'entry' removes the user/group when not returned from the sync. 'properties' removes the set properties on existing user/group that do not appear in the source (even custom ones). 'acl' removes acls when the user/group is not returned from the sync. Instead of a list it also can be 'none' (the default).",
8855 "optional" : 1,
8856 "pattern" : "(?:(?:(?:acl|properties|entry);)*(?:acl|properties|entry))|none",
8857 "type" : "string",
8858 "typetext" : "([acl];[properties];[entry])|none"
8859 },
8860 "schedule" : {
8861 "description" : "Backup schedule. The format is a subset of `systemd` calendar events.",
8862 "format" : "pve-calendar-event",
8863 "maxLength" : 128,
8864 "type" : "string",
8865 "typetext" : "<string>"
8866 },
8867 "scope" : {
8868 "description" : "Select what to sync.",
8869 "enum" : [
8870 "users",
8871 "groups",
8872 "both"
8873 ],
8874 "optional" : 1,
8875 "type" : "string"
8876 }
8877 },
8878 "type" : "object"
8879 },
8880 "permissions" : {
8881 "check" : [
8882 "and",
8883 [
8884 "perm",
8885 "/access/realm/{realm}",
8886 [
8887 "Realm.AllocateUser"
8888 ]
8889 ],
8890 [
8891 "perm",
8892 "/access/groups",
8893 [
8894 "User.Modify"
8895 ]
8896 ]
8897 ],
8898 "description" : "'Realm.AllocateUser' on '/access/realm/<realm>' and 'User.Modify' permissions to '/access/groups/'."
8899 },
8900 "protected" : 1,
8901 "returns" : {
8902 "type" : "null"
8903 }
8904 },
8905 "PUT" : {
8906 "allowtoken" : 1,
8907 "description" : "Update realm-sync job definition.",
8908 "method" : "PUT",
8909 "name" : "update_job",
8910 "parameters" : {
8911 "additionalProperties" : 0,
8912 "properties" : {
8913 "comment" : {
8914 "description" : "Description for the Job.",
8915 "maxLength" : 512,
8916 "optional" : 1,
8917 "type" : "string",
8918 "typetext" : "<string>"
8919 },
8920 "delete" : {
8921 "description" : "A list of settings you want to delete.",
8922 "format" : "pve-configid-list",
8923 "maxLength" : 4096,
8924 "optional" : 1,
8925 "type" : "string",
8926 "typetext" : "<string>"
8927 },
8928 "enable-new" : {
8929 "default" : "1",
8930 "description" : "Enable newly synced users immediately.",
8931 "optional" : 1,
8932 "type" : "boolean",
8933 "typetext" : "<boolean>"
8934 },
8935 "enabled" : {
8936 "default" : 1,
8937 "description" : "Determines if the job is enabled.",
8938 "optional" : 1,
8939 "type" : "boolean",
8940 "typetext" : "<boolean>"
8941 },
8942 "id" : {
8943 "description" : "The ID of the job.",
8944 "format" : "pve-configid",
8945 "maxLength" : 64,
8946 "type" : "string",
8947 "typetext" : "<string>"
8948 },
8949 "remove-vanished" : {
8950 "default" : "none",
8951 "description" : "A semicolon-seperated list of things to remove when they or the user vanishes during a sync. The following values are possible: 'entry' removes the user/group when not returned from the sync. 'properties' removes the set properties on existing user/group that do not appear in the source (even custom ones). 'acl' removes acls when the user/group is not returned from the sync. Instead of a list it also can be 'none' (the default).",
8952 "optional" : 1,
8953 "pattern" : "(?:(?:(?:acl|properties|entry);)*(?:acl|properties|entry))|none",
8954 "type" : "string",
8955 "typetext" : "([acl];[properties];[entry])|none"
8956 },
8957 "schedule" : {
8958 "description" : "Backup schedule. The format is a subset of `systemd` calendar events.",
8959 "format" : "pve-calendar-event",
8960 "maxLength" : 128,
8961 "type" : "string",
8962 "typetext" : "<string>"
8963 },
8964 "scope" : {
8965 "description" : "Select what to sync.",
8966 "enum" : [
8967 "users",
8968 "groups",
8969 "both"
8970 ],
8971 "optional" : 1,
8972 "type" : "string"
8973 }
8974 },
8975 "type" : "object"
8976 },
8977 "permissions" : {
8978 "check" : [
8979 "and",
8980 [
8981 "perm",
8982 "/access/realm/{realm}",
8983 [
8984 "Realm.AllocateUser"
8985 ]
8986 ],
8987 [
8988 "perm",
8989 "/access/groups",
8990 [
8991 "User.Modify"
8992 ]
8993 ]
8994 ],
8995 "description" : "'Realm.AllocateUser' on '/access/realm/<realm>' and 'User.Modify' permissions to '/access/groups/'."
8996 },
8997 "protected" : 1,
8998 "returns" : {
8999 "type" : "null"
9000 }
9001 }
9002 },
9003 "leaf" : 1,
9004 "path" : "/cluster/jobs/realm-sync/{id}",
9005 "text" : "{id}"
9006 }
9007 ],
9008 "info" : {
9009 "GET" : {
9010 "allowtoken" : 1,
9011 "description" : "List configured realm-sync-jobs.",
9012 "method" : "GET",
9013 "name" : "syncjob_index",
9014 "parameters" : {
9015 "additionalProperties" : 0
9016 },
9017 "permissions" : {
9018 "check" : [
9019 "perm",
9020 "/",
9021 [
9022 "Sys.Audit"
9023 ]
9024 ]
9025 },
9026 "returns" : {
9027 "items" : {
9028 "properties" : {
9029 "comment" : {
9030 "description" : "A comment for the job.",
9031 "optional" : 1,
9032 "type" : "string"
9033 },
9034 "enabled" : {
9035 "description" : "If the job is enabled or not.",
9036 "type" : "boolean"
9037 },
9038 "id" : {
9039 "description" : "The ID of the entry.",
9040 "type" : "string"
9041 },
9042 "last-run" : {
9043 "description" : "Last execution time of the job in seconds since the beginning of the UNIX epoch",
9044 "optional" : 1,
9045 "type" : "integer"
9046 },
9047 "next-run" : {
9048 "description" : "Next planned execution time of the job in seconds since the beginning of the UNIX epoch.",
9049 "optional" : 1,
9050 "type" : "integer"
9051 },
9052 "realm" : {
9053 "description" : "Authentication domain ID",
9054 "format" : "pve-realm",
9055 "maxLength" : 32,
9056 "type" : "string"
9057 },
9058 "remove-vanished" : {
9059 "default" : "none",
9060 "description" : "A semicolon-seperated list of things to remove when they or the user vanishes during a sync. The following values are possible: 'entry' removes the user/group when not returned from the sync. 'properties' removes the set properties on existing user/group that do not appear in the source (even custom ones). 'acl' removes acls when the user/group is not returned from the sync. Instead of a list it also can be 'none' (the default).",
9061 "optional" : "1",
9062 "pattern" : "(?:(?:(?:acl|properties|entry);)*(?:acl|properties|entry))|none",
9063 "type" : "string",
9064 "typetext" : "([acl];[properties];[entry])|none"
9065 },
9066 "schedule" : {
9067 "description" : "The configured sync schedule.",
9068 "type" : "string"
9069 },
9070 "scope" : {
9071 "description" : "Select what to sync.",
9072 "enum" : [
9073 "users",
9074 "groups",
9075 "both"
9076 ],
9077 "optional" : "1",
9078 "type" : "string"
9079 }
9080 },
9081 "type" : "object"
9082 },
9083 "links" : [
9084 {
9085 "href" : "{id}",
9086 "rel" : "child"
9087 }
9088 ],
9089 "type" : "array"
9090 }
9091 }
9092 },
9093 "leaf" : 0,
9094 "path" : "/cluster/jobs/realm-sync",
9095 "text" : "realm-sync"
9096 },
5370fa8c
TL
9097 {
9098 "info" : {
9099 "GET" : {
9100 "allowtoken" : 1,
9101 "description" : "Returns a list of future schedule runtimes.",
9102 "method" : "GET",
9103 "name" : "schedule-analyze",
9104 "parameters" : {
9105 "additionalProperties" : 0,
9106 "properties" : {
9107 "iterations" : {
9108 "default" : 10,
9109 "description" : "Number of event-iteration to simulate and return.",
9110 "maximum" : 100,
9111 "minimum" : 1,
9112 "optional" : 1,
9113 "type" : "integer",
9114 "typetext" : "<integer> (1 - 100)"
9115 },
9116 "schedule" : {
9117 "description" : "Job schedule. The format is a subset of `systemd` calendar events.",
9118 "format" : "pve-calendar-event",
9119 "maxLength" : 128,
9120 "type" : "string",
9121 "typetext" : "<string>"
9122 },
9123 "starttime" : {
9124 "description" : "UNIX timestamp to start the calculation from. Defaults to the current time.",
9125 "optional" : 1,
9126 "type" : "integer",
9127 "typetext" : "<integer>"
9128 }
9129 }
9130 },
9131 "permissions" : {
9132 "user" : "all"
9133 },
9134 "returns" : {
9135 "description" : "An array of the next <iterations> events since <starttime>.",
9136 "items" : {
9137 "properties" : {
9138 "timestamp" : {
9139 "description" : "UNIX timestamp for the run.",
9140 "type" : "integer"
9141 },
9142 "utc" : {
9143 "description" : "UTC timestamp for the run.",
9144 "type" : "string"
9145 }
9146 },
9147 "type" : "object"
9148 },
9149 "type" : "array"
9150 }
9151 }
9152 },
9153 "leaf" : 1,
9154 "path" : "/cluster/jobs/schedule-analyze",
9155 "text" : "schedule-analyze"
9156 }
9157 ],
9158 "info" : {
9159 "GET" : {
9160 "allowtoken" : 1,
9161 "description" : "Index for jobs related endpoints.",
9162 "method" : "GET",
9163 "name" : "index",
9164 "parameters" : {
9165 "additionalProperties" : 0
9166 },
9167 "permissions" : {
9168 "user" : "all"
9169 },
9170 "returns" : {
9171 "description" : "Directory index.",
9172 "items" : {
9173 "properties" : {
9174 "subdir" : {
9175 "description" : "API sub-directory endpoint",
9176 "type" : "string"
9177 }
9178 },
9179 "type" : "object"
9180 },
9181 "links" : [
9182 {
9183 "href" : "{subdir}",
9184 "rel" : "child"
9185 }
9186 ],
9187 "type" : "array"
9188 }
9189 }
9190 },
9191 "leaf" : 0,
9192 "path" : "/cluster/jobs",
9193 "text" : "jobs"
9194 },
499c9b7f
TL
9195 {
9196 "children" : [
9197 {
9198 "children" : [
9199 {
9200 "info" : {
9201 "DELETE" : {
9202 "allowtoken" : 1,
9203 "description" : "Remove Hardware Mapping.",
9204 "method" : "DELETE",
9205 "name" : "delete",
9206 "parameters" : {
9207 "additionalProperties" : 0,
9208 "properties" : {
9209 "id" : {
9210 "format" : "pve-configid",
9211 "type" : "string",
9212 "typetext" : "<string>"
9213 }
9214 }
9215 },
9216 "permissions" : {
9217 "check" : [
9218 "perm",
9219 "/mapping/pci",
9220 [
9221 "Mapping.Modify"
9222 ]
9223 ]
9224 },
9225 "protected" : 1,
9226 "returns" : {
9227 "type" : "null"
9228 }
9229 },
9230 "GET" : {
9231 "allowtoken" : 1,
9232 "description" : "Get PCI Mapping.",
9233 "method" : "GET",
9234 "name" : "get",
9235 "parameters" : {
9236 "additionalProperties" : 0,
9237 "properties" : {
9238 "id" : {
9239 "format" : "pve-configid",
9240 "type" : "string",
9241 "typetext" : "<string>"
9242 }
9243 }
9244 },
9245 "permissions" : {
9246 "check" : [
9247 "or",
9248 [
9249 "perm",
9250 "/mapping/pci/{id}",
9251 [
9252 "Mapping.Use"
9253 ]
9254 ],
9255 [
9256 "perm",
9257 "/mapping/pci/{id}",
9258 [
9259 "Mapping.Modify"
9260 ]
9261 ],
9262 [
9263 "perm",
9264 "/mapping/pci/{id}",
9265 [
9266 "Mapping.Audit"
9267 ]
9268 ]
9269 ]
9270 },
9271 "protected" : 1,
9272 "returns" : {
9273 "type" : "object"
9274 }
9275 },
9276 "PUT" : {
9277 "allowtoken" : 1,
9278 "description" : "Update a hardware mapping.",
9279 "method" : "PUT",
9280 "name" : "update",
9281 "parameters" : {
9282 "additionalProperties" : 0,
9283 "properties" : {
9284 "delete" : {
9285 "description" : "A list of settings you want to delete.",
9286 "format" : "pve-configid-list",
9287 "maxLength" : 4096,
9288 "optional" : 1,
9289 "type" : "string",
9290 "typetext" : "<string>"
9291 },
9292 "description" : {
9293 "description" : "Description of the logical PCI device.",
9294 "maxLength" : 4096,
9295 "optional" : 1,
9296 "type" : "string",
9297 "typetext" : "<string>"
9298 },
9299 "digest" : {
82551b2b
TL
9300 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
9301 "maxLength" : 64,
499c9b7f
TL
9302 "optional" : 1,
9303 "type" : "string",
9304 "typetext" : "<string>"
9305 },
9306 "id" : {
9307 "description" : "The ID of the logical PCI mapping.",
9308 "format" : "pve-configid",
9309 "type" : "string",
9310 "typetext" : "<string>"
9311 },
9312 "map" : {
9313 "description" : "A list of maps for the cluster nodes.",
9314 "items" : {
9315 "format" : {
9316 "description" : {
9317 "description" : "Description of the node specific device.",
9318 "maxLength" : 4096,
9319 "optional" : 1,
9320 "type" : "string"
9321 },
9322 "id" : {
9323 "description" : "The vendor and device ID that is expected. Used for detecting hardware changes",
9324 "pattern" : "(?^:^[0-9A-Fa-f]{4}:[0-9A-Fa-f]{4}$)",
9325 "type" : "string"
9326 },
9327 "iommugroup" : {
82551b2b 9328 "description" : "The IOMMU group in which the device is to be expected in. Used for detecting hardware changes.",
499c9b7f
TL
9329 "optional" : 1,
9330 "type" : "integer"
9331 },
9332 "node" : {
9333 "description" : "The cluster node name.",
9334 "format" : "pve-node",
9335 "type" : "string"
9336 },
9337 "path" : {
9338 "description" : "The path to the device. If the function is omitted, the whole device is mapped. In that case use the attributes of the first device. You can give multiple paths as a semicolon seperated list, the first available will then be chosen on guest start.",
9339 "pattern" : "(?:[a-f0-9]{4,}:[a-f0-9]{2}:[a-f0-9]{2}(?:.[a-f0-9])?;)*[a-f0-9]{4,}:[a-f0-9]{2}:[a-f0-9]{2}(?:.[a-f0-9])?",
9340 "type" : "string"
9341 },
9342 "subsystem-id" : {
9343 "description" : "The subsystem vendor and device ID that is expected. Used for detecting hardware changes.",
9344 "optional" : 1,
9345 "pattern" : "(?^:^[0-9A-Fa-f]{4}:[0-9A-Fa-f]{4}$)",
9346 "type" : "string"
9347 }
9348 },
9349 "type" : "string"
9350 },
9351 "optional" : 1,
9352 "type" : "array",
9353 "typetext" : "<array>"
9354 },
9355 "mdev" : {
907e4bc3
TL
9356 "default" : 0,
9357 "description" : "Marks the device(s) as being capable of providing mediated devices.",
499c9b7f
TL
9358 "optional" : 1,
9359 "type" : "boolean",
9360 "typetext" : "<boolean>"
9361 }
9362 },
9363 "type" : "object"
9364 },
9365 "permissions" : {
9366 "check" : [
9367 "perm",
9368 "/mapping/pci/{id}",
9369 [
9370 "Mapping.Modify"
9371 ]
9372 ]
9373 },
9374 "protected" : 1,
9375 "returns" : {
9376 "type" : "null"
9377 }
9378 }
9379 },
9380 "leaf" : 1,
9381 "path" : "/cluster/mapping/pci/{id}",
9382 "text" : "{id}"
9383 }
9384 ],
9385 "info" : {
9386 "GET" : {
9387 "allowtoken" : 1,
9388 "description" : "List PCI Hardware Mapping",
9389 "method" : "GET",
9390 "name" : "index",
9391 "parameters" : {
9392 "additionalProperties" : 0,
9393 "properties" : {
9394 "check-node" : {
9395 "description" : "If given, checks the configurations on the given node for correctness, and adds relevant diagnostics for the devices to the response.",
9396 "format" : "pve-node",
9397 "optional" : 1,
9398 "type" : "string",
9399 "typetext" : "<string>"
9400 }
9401 }
9402 },
9403 "permissions" : {
9404 "description" : "Only lists entries where you have 'Mapping.Modify', 'Mapping.Use' or 'Mapping.Audit' permissions on '/mapping/pci/<id>'.",
9405 "user" : "all"
9406 },
9407 "returns" : {
9408 "items" : {
9409 "properties" : {
9410 "checks" : {
9411 "description" : "A list of checks, only present if 'check_node' is set.",
9412 "items" : {
9413 "properties" : {
9414 "message" : {
9415 "description" : "The message of the error",
9416 "type" : "string"
9417 },
9418 "severity" : {
9419 "description" : "The severity of the error",
9420 "enum" : [
9421 "warning",
9422 "error"
9423 ],
9424 "type" : "string"
9425 }
9426 },
9427 "type" : "object"
9428 },
9429 "optional" : 1,
9430 "type" : "array"
9431 },
9432 "description" : {
9433 "description" : "A description of the logical mapping.",
9434 "type" : "string"
9435 },
9436 "id" : {
9437 "description" : "The logical ID of the mapping.",
9438 "type" : "string"
9439 },
9440 "map" : {
9441 "description" : "The entries of the mapping.",
9442 "items" : {
9443 "description" : "A mapping for a node.",
9444 "type" : "string"
9445 },
9446 "type" : "array"
9447 }
9448 },
9449 "type" : "object"
9450 },
9451 "links" : [
9452 {
9453 "href" : "{id}",
9454 "rel" : "child"
9455 }
9456 ],
9457 "type" : "array"
9458 }
9459 },
9460 "POST" : {
9461 "allowtoken" : 1,
9462 "description" : "Create a new hardware mapping.",
9463 "method" : "POST",
9464 "name" : "create",
9465 "parameters" : {
9466 "additionalProperties" : 0,
9467 "properties" : {
9468 "description" : {
9469 "description" : "Description of the logical PCI device.",
9470 "maxLength" : 4096,
9471 "optional" : 1,
9472 "type" : "string",
9473 "typetext" : "<string>"
9474 },
9475 "id" : {
9476 "description" : "The ID of the logical PCI mapping.",
9477 "format" : "pve-configid",
9478 "type" : "string",
9479 "typetext" : "<string>"
9480 },
9481 "map" : {
9482 "description" : "A list of maps for the cluster nodes.",
9483 "items" : {
9484 "format" : {
9485 "description" : {
9486 "description" : "Description of the node specific device.",
9487 "maxLength" : 4096,
9488 "optional" : 1,
9489 "type" : "string"
9490 },
9491 "id" : {
82551b2b
TL
9492 "description" : "The vendor and device ID that is expected. Used for detecting hardware changes",
9493 "pattern" : "(?^:^[0-9A-Fa-f]{4}:[0-9A-Fa-f]{4}$)",
9494 "type" : "string"
9495 },
9496 "iommugroup" : {
9497 "description" : "The IOMMU group in which the device is to be expected in. Used for detecting hardware changes.",
9498 "optional" : 1,
9499 "type" : "integer"
9500 },
9501 "node" : {
9502 "description" : "The cluster node name.",
9503 "format" : "pve-node",
9504 "type" : "string"
9505 },
9506 "path" : {
9507 "description" : "The path to the device. If the function is omitted, the whole device is mapped. In that case use the attributes of the first device. You can give multiple paths as a semicolon seperated list, the first available will then be chosen on guest start.",
9508 "pattern" : "(?:[a-f0-9]{4,}:[a-f0-9]{2}:[a-f0-9]{2}(?:.[a-f0-9])?;)*[a-f0-9]{4,}:[a-f0-9]{2}:[a-f0-9]{2}(?:.[a-f0-9])?",
9509 "type" : "string"
9510 },
9511 "subsystem-id" : {
9512 "description" : "The subsystem vendor and device ID that is expected. Used for detecting hardware changes.",
9513 "optional" : 1,
9514 "pattern" : "(?^:^[0-9A-Fa-f]{4}:[0-9A-Fa-f]{4}$)",
9515 "type" : "string"
9516 }
9517 },
9518 "type" : "string"
9519 },
9520 "optional" : 0,
9521 "type" : "array",
9522 "typetext" : "<array>"
9523 },
9524 "mdev" : {
907e4bc3
TL
9525 "default" : 0,
9526 "description" : "Marks the device(s) as being capable of providing mediated devices.",
82551b2b
TL
9527 "optional" : 1,
9528 "type" : "boolean",
9529 "typetext" : "<boolean>"
9530 }
9531 },
9532 "type" : "object"
9533 },
9534 "permissions" : {
9535 "check" : [
9536 "perm",
9537 "/mapping/pci",
9538 [
9539 "Mapping.Modify"
9540 ]
9541 ]
9542 },
9543 "protected" : 1,
9544 "returns" : {
9545 "type" : "null"
9546 }
9547 }
9548 },
9549 "leaf" : 0,
9550 "path" : "/cluster/mapping/pci",
9551 "text" : "pci"
9552 },
9553 {
9554 "children" : [
9555 {
9556 "info" : {
9557 "DELETE" : {
9558 "allowtoken" : 1,
9559 "description" : "Remove Hardware Mapping.",
9560 "method" : "DELETE",
9561 "name" : "delete",
9562 "parameters" : {
9563 "additionalProperties" : 0,
9564 "properties" : {
9565 "id" : {
9566 "format" : "pve-configid",
9567 "type" : "string",
9568 "typetext" : "<string>"
9569 }
9570 }
9571 },
9572 "permissions" : {
9573 "check" : [
9574 "perm",
9575 "/mapping/usb",
9576 [
9577 "Mapping.Modify"
9578 ]
9579 ]
9580 },
9581 "protected" : 1,
9582 "returns" : {
9583 "type" : "null"
9584 }
9585 },
9586 "GET" : {
9587 "allowtoken" : 1,
9588 "description" : "Get USB Mapping.",
9589 "method" : "GET",
9590 "name" : "get",
9591 "parameters" : {
9592 "additionalProperties" : 0,
9593 "properties" : {
9594 "id" : {
9595 "format" : "pve-configid",
9596 "type" : "string",
9597 "typetext" : "<string>"
9598 }
9599 }
9600 },
9601 "permissions" : {
9602 "check" : [
9603 "or",
9604 [
9605 "perm",
9606 "/mapping/usb/{id}",
9607 [
9608 "Mapping.Audit"
9609 ]
9610 ],
9611 [
9612 "perm",
9613 "/mapping/usb/{id}",
9614 [
9615 "Mapping.Use"
9616 ]
9617 ],
9618 [
9619 "perm",
9620 "/mapping/usb/{id}",
9621 [
9622 "Mapping.Modify"
9623 ]
9624 ]
9625 ]
9626 },
9627 "protected" : 1,
9628 "returns" : {
9629 "type" : "object"
9630 }
9631 },
9632 "PUT" : {
9633 "allowtoken" : 1,
9634 "description" : "Update a hardware mapping.",
9635 "method" : "PUT",
9636 "name" : "update",
9637 "parameters" : {
9638 "additionalProperties" : 0,
9639 "properties" : {
9640 "delete" : {
9641 "description" : "A list of settings you want to delete.",
9642 "format" : "pve-configid-list",
9643 "maxLength" : 4096,
9644 "optional" : 1,
9645 "type" : "string",
9646 "typetext" : "<string>"
9647 },
9648 "description" : {
9649 "description" : "Description of the logical USB device.",
9650 "maxLength" : 4096,
9651 "optional" : 1,
9652 "type" : "string",
9653 "typetext" : "<string>"
9654 },
9655 "digest" : {
9656 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
9657 "maxLength" : 64,
9658 "optional" : 1,
9659 "type" : "string",
9660 "typetext" : "<string>"
9661 },
9662 "id" : {
9663 "description" : "The ID of the logical USB mapping.",
9664 "format" : "pve-configid",
9665 "type" : "string",
9666 "typetext" : "<string>"
9667 },
9668 "map" : {
9669 "description" : "A list of maps for the cluster nodes.",
9670 "items" : {
9671 "format" : {
9672 "description" : {
9673 "description" : "Description of the node specific device.",
9674 "maxLength" : 4096,
9675 "optional" : 1,
9676 "type" : "string"
9677 },
9678 "id" : {
9679 "description" : "The vendor and device ID that is expected. If a USB path is given, it is only used for detecting hardware changes",
9680 "pattern" : "(?^:^[0-9A-Fa-f]{4}:[0-9A-Fa-f]{4}$)",
9681 "type" : "string"
9682 },
9683 "node" : {
9684 "description" : "The cluster node name.",
9685 "format" : "pve-node",
9686 "type" : "string"
9687 },
9688 "path" : {
9689 "description" : "The path to the usb device.",
9690 "optional" : 1,
9691 "pattern" : "(?^:^(\\d+)\\-(\\d+(\\.\\d+)*)$)",
9692 "type" : "string"
9693 }
9694 },
9695 "type" : "string"
9696 },
9697 "type" : "array",
9698 "typetext" : "<array>"
9699 }
9700 },
9701 "type" : "object"
9702 },
9703 "permissions" : {
9704 "check" : [
9705 "perm",
9706 "/mapping/usb/{id}",
9707 [
9708 "Mapping.Modify"
9709 ]
9710 ]
9711 },
9712 "protected" : 1,
9713 "returns" : {
9714 "type" : "null"
9715 }
9716 }
9717 },
9718 "leaf" : 1,
9719 "path" : "/cluster/mapping/usb/{id}",
9720 "text" : "{id}"
9721 }
9722 ],
9723 "info" : {
9724 "GET" : {
9725 "allowtoken" : 1,
9726 "description" : "List USB Hardware Mappings",
9727 "method" : "GET",
9728 "name" : "index",
9729 "parameters" : {
9730 "additionalProperties" : 0,
9731 "properties" : {
9732 "check-node" : {
9733 "description" : "If given, checks the configurations on the given node for correctness, and adds relevant errors to the devices.",
9734 "format" : "pve-node",
9735 "optional" : 1,
9736 "type" : "string",
9737 "typetext" : "<string>"
9738 }
9739 }
9740 },
9741 "permissions" : {
9742 "description" : "Only lists entries where you have 'Mapping.Modify', 'Mapping.Use' or 'Mapping.Audit' permissions on '/mapping/usb/<id>'.",
9743 "user" : "all"
9744 },
9745 "returns" : {
9746 "items" : {
9747 "properties" : {
9748 "description" : {
9749 "description" : "A description of the logical mapping.",
9750 "type" : "string"
9751 },
9752 "error" : {
9753 "description" : "A list of errors when 'check_node' is given.",
9754 "items" : {
9755 "properties" : {
9756 "message" : {
9757 "description" : "The message of the error",
9758 "type" : "string"
9759 },
9760 "severity" : {
9761 "description" : "The severity of the error",
9762 "type" : "string"
9763 }
9764 },
9765 "type" : "object"
9766 }
9767 },
9768 "id" : {
9769 "description" : "The logical ID of the mapping.",
9770 "type" : "string"
9771 },
9772 "map" : {
9773 "description" : "The entries of the mapping.",
9774 "items" : {
9775 "description" : "A mapping for a node.",
9776 "type" : "string"
9777 },
9778 "type" : "array"
9779 }
9780 },
9781 "type" : "object"
9782 },
9783 "links" : [
9784 {
9785 "href" : "{id}",
9786 "rel" : "child"
9787 }
9788 ],
9789 "type" : "array"
9790 }
9791 },
9792 "POST" : {
9793 "allowtoken" : 1,
9794 "description" : "Create a new hardware mapping.",
9795 "method" : "POST",
9796 "name" : "create",
9797 "parameters" : {
9798 "additionalProperties" : 0,
9799 "properties" : {
9800 "description" : {
9801 "description" : "Description of the logical USB device.",
9802 "maxLength" : 4096,
9803 "optional" : 1,
9804 "type" : "string",
9805 "typetext" : "<string>"
9806 },
9807 "id" : {
9808 "description" : "The ID of the logical USB mapping.",
9809 "format" : "pve-configid",
9810 "type" : "string",
9811 "typetext" : "<string>"
9812 },
9813 "map" : {
9814 "description" : "A list of maps for the cluster nodes.",
9815 "items" : {
9816 "format" : {
9817 "description" : {
9818 "description" : "Description of the node specific device.",
9819 "maxLength" : 4096,
9820 "optional" : 1,
9821 "type" : "string"
9822 },
9823 "id" : {
499c9b7f
TL
9824 "description" : "The vendor and device ID that is expected. If a USB path is given, it is only used for detecting hardware changes",
9825 "pattern" : "(?^:^[0-9A-Fa-f]{4}:[0-9A-Fa-f]{4}$)",
9826 "type" : "string"
9827 },
9828 "node" : {
9829 "description" : "The cluster node name.",
9830 "format" : "pve-node",
9831 "type" : "string"
9832 },
9833 "path" : {
9834 "description" : "The path to the usb device.",
9835 "optional" : 1,
9836 "pattern" : "(?^:^(\\d+)\\-(\\d+(\\.\\d+)*)$)",
9837 "type" : "string"
9838 }
9839 },
9840 "type" : "string"
9841 },
9842 "type" : "array",
9843 "typetext" : "<array>"
9844 }
9845 },
9846 "type" : "object"
9847 },
9848 "permissions" : {
9849 "check" : [
9850 "perm",
9851 "/mapping/usb",
9852 [
9853 "Mapping.Modify"
9854 ]
9855 ]
9856 },
9857 "protected" : 1,
9858 "returns" : {
9859 "type" : "null"
9860 }
9861 }
9862 },
9863 "leaf" : 0,
9864 "path" : "/cluster/mapping/usb",
9865 "text" : "usb"
9866 }
9867 ],
9868 "info" : {
9869 "GET" : {
9870 "allowtoken" : 1,
9871 "description" : "List resource types.",
9872 "method" : "GET",
9873 "name" : "index",
9874 "parameters" : {
9875 "additionalProperties" : 0
9876 },
9877 "permissions" : {
9878 "user" : "all"
9879 },
9880 "returns" : {
9881 "items" : {
9882 "type" : "object"
9883 },
9884 "links" : [
9885 {
9886 "href" : "{name}",
9887 "rel" : "child"
9888 }
9889 ],
9890 "type" : "array"
9891 }
9892 }
9893 },
9894 "leaf" : 0,
9895 "path" : "/cluster/mapping",
9896 "text" : "mapping"
9897 },
c5aa7e14
TL
9898 {
9899 "children" : [
9900 {
9901 "children" : [
9902 {
d2656385
TL
9903 "children" : [
9904 {
9905 "children" : [
9906 {
9907 "info" : {
9908 "DELETE" : {
9909 "allowtoken" : 1,
9910 "description" : "Delete sdn subnet object configuration.",
9911 "method" : "DELETE",
9912 "name" : "delete",
9913 "parameters" : {
9914 "additionalProperties" : 0,
9915 "properties" : {
9916 "subnet" : {
9917 "description" : "The SDN subnet object identifier.",
9918 "format" : "pve-sdn-subnet-id",
9919 "type" : "string",
9920 "typetext" : "<string>"
9921 },
9922 "vnet" : {
9923 "description" : "The SDN vnet object identifier.",
9924 "format" : "pve-sdn-vnet-id",
9925 "type" : "string",
9926 "typetext" : "<string>"
9927 }
9928 }
9929 },
9930 "permissions" : {
bd92b745
TL
9931 "description" : "Require 'SDN.Allocate' permission on '/sdn/zones/<zone>/<vnet>'",
9932 "user" : "all"
d2656385
TL
9933 },
9934 "protected" : 1,
9935 "returns" : {
9936 "type" : "null"
9937 }
9938 },
9939 "GET" : {
9940 "allowtoken" : 1,
9941 "description" : "Read sdn subnet configuration.",
9942 "method" : "GET",
9943 "name" : "read",
9944 "parameters" : {
9945 "additionalProperties" : 0,
9946 "properties" : {
9947 "pending" : {
9948 "description" : "Display pending config.",
9949 "optional" : 1,
9950 "type" : "boolean",
9951 "typetext" : "<boolean>"
9952 },
9953 "running" : {
9954 "description" : "Display running config.",
9955 "optional" : 1,
9956 "type" : "boolean",
9957 "typetext" : "<boolean>"
9958 },
9959 "subnet" : {
9960 "description" : "The SDN subnet object identifier.",
9961 "format" : "pve-sdn-subnet-id",
9962 "type" : "string",
9963 "typetext" : "<string>"
9964 },
9965 "vnet" : {
9966 "description" : "The SDN vnet object identifier.",
9967 "format" : "pve-sdn-vnet-id",
9968 "type" : "string",
9969 "typetext" : "<string>"
9970 }
9971 }
9972 },
9973 "permissions" : {
bd92b745
TL
9974 "description" : "Require 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/zones/<zone>/<vnet>'",
9975 "user" : "all"
d2656385
TL
9976 },
9977 "returns" : {
9978 "type" : "object"
9979 }
9980 },
9981 "PUT" : {
9982 "allowtoken" : 1,
9983 "description" : "Update sdn subnet object configuration.",
9984 "method" : "PUT",
9985 "name" : "update",
9986 "parameters" : {
9987 "additionalProperties" : 0,
9988 "properties" : {
9989 "delete" : {
9990 "description" : "A list of settings you want to delete.",
9991 "format" : "pve-configid-list",
9992 "maxLength" : 4096,
9993 "optional" : 1,
9994 "type" : "string",
9995 "typetext" : "<string>"
9996 },
fa22697b
TL
9997 "dhcp-dns-server" : {
9998 "description" : "IP address for the DNS server",
9999 "format" : "ip",
10000 "optional" : 1,
10001 "type" : "string",
10002 "typetext" : "<string>"
10003 },
10004 "dhcp-range" : {
10005 "description" : "A list of DHCP ranges for this subnet",
10006 "items" : {
10007 "format" : "pve-sdn-dhcp-range",
10008 "type" : "string"
10009 },
10010 "optional" : 1,
10011 "type" : "array",
10012 "typetext" : "<array>"
10013 },
d2656385 10014 "digest" : {
82551b2b
TL
10015 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
10016 "maxLength" : 64,
d2656385
TL
10017 "optional" : 1,
10018 "type" : "string",
10019 "typetext" : "<string>"
10020 },
10021 "dnszoneprefix" : {
10022 "description" : "dns domain zone prefix ex: 'adm' -> <hostname>.adm.mydomain.com",
10023 "format" : "dns-name",
10024 "optional" : 1,
10025 "type" : "string",
10026 "typetext" : "<string>"
10027 },
10028 "gateway" : {
10029 "description" : "Subnet Gateway: Will be assign on vnet for layer3 zones",
10030 "format" : "ip",
10031 "optional" : 1,
10032 "type" : "string",
10033 "typetext" : "<string>"
10034 },
10035 "snat" : {
10036 "description" : "enable masquerade for this subnet if pve-firewall",
10037 "optional" : 1,
10038 "type" : "boolean",
10039 "typetext" : "<boolean>"
10040 },
10041 "subnet" : {
10042 "description" : "The SDN subnet object identifier.",
10043 "format" : "pve-sdn-subnet-id",
10044 "type" : "string",
10045 "typetext" : "<string>"
10046 },
10047 "vnet" : {
10048 "description" : "associated vnet",
10049 "optional" : 1,
10050 "type" : "string",
10051 "typetext" : "<string>"
10052 }
10053 },
10054 "type" : "object"
10055 },
10056 "permissions" : {
bd92b745
TL
10057 "description" : "Require 'SDN.Allocate' permission on '/sdn/zones/<zone>/<vnet>'",
10058 "user" : "all"
d2656385
TL
10059 },
10060 "protected" : 1,
10061 "returns" : {
10062 "type" : "null"
10063 }
10064 }
10065 },
10066 "leaf" : 1,
10067 "path" : "/cluster/sdn/vnets/{vnet}/subnets/{subnet}",
10068 "text" : "{subnet}"
10069 }
10070 ],
10071 "info" : {
10072 "GET" : {
10073 "allowtoken" : 1,
10074 "description" : "SDN subnets index.",
10075 "method" : "GET",
10076 "name" : "index",
10077 "parameters" : {
10078 "additionalProperties" : 0,
10079 "properties" : {
10080 "pending" : {
10081 "description" : "Display pending config.",
10082 "optional" : 1,
10083 "type" : "boolean",
10084 "typetext" : "<boolean>"
10085 },
10086 "running" : {
10087 "description" : "Display running config.",
10088 "optional" : 1,
10089 "type" : "boolean",
10090 "typetext" : "<boolean>"
10091 },
10092 "vnet" : {
10093 "description" : "The SDN vnet object identifier.",
10094 "format" : "pve-sdn-vnet-id",
10095 "type" : "string",
10096 "typetext" : "<string>"
10097 }
10098 }
10099 },
10100 "permissions" : {
bd92b745 10101 "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/zones/<zone>/<vnet>'",
d2656385
TL
10102 "user" : "all"
10103 },
10104 "returns" : {
10105 "items" : {
10106 "properties" : {},
10107 "type" : "object"
10108 },
10109 "links" : [
10110 {
10111 "href" : "{subnet}",
10112 "rel" : "child"
10113 }
10114 ],
10115 "type" : "array"
10116 }
10117 },
10118 "POST" : {
10119 "allowtoken" : 1,
10120 "description" : "Create a new sdn subnet object.",
10121 "method" : "POST",
10122 "name" : "create",
10123 "parameters" : {
10124 "additionalProperties" : 0,
10125 "properties" : {
fa22697b
TL
10126 "dhcp-dns-server" : {
10127 "description" : "IP address for the DNS server",
10128 "format" : "ip",
10129 "optional" : 1,
10130 "type" : "string",
10131 "typetext" : "<string>"
10132 },
10133 "dhcp-range" : {
10134 "description" : "A list of DHCP ranges for this subnet",
10135 "items" : {
10136 "format" : "pve-sdn-dhcp-range",
10137 "type" : "string"
10138 },
10139 "optional" : 1,
10140 "type" : "array",
10141 "typetext" : "<array>"
10142 },
d2656385
TL
10143 "dnszoneprefix" : {
10144 "description" : "dns domain zone prefix ex: 'adm' -> <hostname>.adm.mydomain.com",
10145 "format" : "dns-name",
10146 "optional" : 1,
10147 "type" : "string",
10148 "typetext" : "<string>"
10149 },
10150 "gateway" : {
10151 "description" : "Subnet Gateway: Will be assign on vnet for layer3 zones",
10152 "format" : "ip",
10153 "optional" : 1,
10154 "type" : "string",
10155 "typetext" : "<string>"
10156 },
10157 "snat" : {
10158 "description" : "enable masquerade for this subnet if pve-firewall",
10159 "optional" : 1,
10160 "type" : "boolean",
10161 "typetext" : "<boolean>"
10162 },
10163 "subnet" : {
10164 "description" : "The SDN subnet object identifier.",
10165 "format" : "pve-sdn-subnet-id",
10166 "type" : "string",
10167 "typetext" : "<string>"
10168 },
10169 "type" : {
10170 "enum" : [
10171 "subnet"
10172 ],
10173 "type" : "string"
10174 },
10175 "vnet" : {
10176 "description" : "associated vnet",
10177 "optional" : 0,
10178 "type" : "string",
10179 "typetext" : "<string>"
10180 }
10181 },
10182 "type" : "object"
10183 },
10184 "permissions" : {
bd92b745
TL
10185 "description" : "Require 'SDN.Allocate' permission on '/sdn/zones/<zone>/<vnet>'",
10186 "user" : "all"
d2656385
TL
10187 },
10188 "protected" : 1,
10189 "returns" : {
10190 "type" : "null"
10191 }
10192 }
10193 },
10194 "leaf" : 0,
10195 "path" : "/cluster/sdn/vnets/{vnet}/subnets",
10196 "text" : "subnets"
fa22697b
TL
10197 },
10198 {
10199 "info" : {
10200 "DELETE" : {
10201 "allowtoken" : 1,
10202 "description" : "Delete IP Mappings in a VNet",
10203 "method" : "DELETE",
10204 "name" : "ipdelete",
10205 "parameters" : {
10206 "additionalProperties" : 0,
10207 "properties" : {
a5a80fe8
TL
10208 "ip" : {
10209 "description" : "The IP address to delete",
10210 "format" : "ip",
10211 "type" : "string",
10212 "typetext" : "<string>"
10213 },
fa22697b
TL
10214 "mac" : {
10215 "description" : "Unicast MAC address.",
10216 "format" : "mac-addr",
10217 "format_description" : "XX:XX:XX:XX:XX:XX",
10218 "optional" : 1,
10219 "type" : "string",
10220 "typetext" : "<XX:XX:XX:XX:XX:XX>",
10221 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
10222 },
10223 "vnet" : {
10224 "description" : "The SDN vnet object identifier.",
10225 "format" : "pve-sdn-vnet-id",
10226 "type" : "string",
10227 "typetext" : "<string>"
10228 },
10229 "zone" : {
10230 "description" : "The SDN zone object identifier.",
10231 "format" : "pve-sdn-zone-id",
10232 "type" : "string",
10233 "typetext" : "<string>"
10234 }
10235 }
10236 },
10237 "permissions" : {
10238 "check" : [
10239 "perm",
10240 "/sdn/zones/{zone}/{vnet}",
10241 [
10242 "SDN.Allocate"
10243 ]
10244 ]
10245 },
10246 "protected" : 1,
10247 "returns" : {
10248 "type" : "null"
10249 }
10250 },
10251 "POST" : {
10252 "allowtoken" : 1,
10253 "description" : "Create IP Mapping in a VNet",
10254 "method" : "POST",
10255 "name" : "ipcreate",
10256 "parameters" : {
10257 "additionalProperties" : 0,
10258 "properties" : {
10259 "ip" : {
10260 "description" : "The IP address to associate with the given MAC address",
10261 "format" : "ip",
10262 "type" : "string",
10263 "typetext" : "<string>"
10264 },
10265 "mac" : {
10266 "description" : "Unicast MAC address.",
10267 "format" : "mac-addr",
10268 "format_description" : "XX:XX:XX:XX:XX:XX",
10269 "optional" : 1,
10270 "type" : "string",
10271 "typetext" : "<XX:XX:XX:XX:XX:XX>",
10272 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
10273 },
10274 "vnet" : {
10275 "description" : "The SDN vnet object identifier.",
10276 "format" : "pve-sdn-vnet-id",
10277 "type" : "string",
10278 "typetext" : "<string>"
10279 },
10280 "zone" : {
10281 "description" : "The SDN zone object identifier.",
10282 "format" : "pve-sdn-zone-id",
10283 "type" : "string",
10284 "typetext" : "<string>"
10285 }
10286 }
10287 },
10288 "permissions" : {
10289 "check" : [
10290 "perm",
10291 "/sdn/zones/{zone}/{vnet}",
10292 [
10293 "SDN.Allocate"
10294 ]
10295 ]
10296 },
10297 "protected" : 1,
10298 "returns" : {
10299 "type" : "null"
10300 }
10301 },
10302 "PUT" : {
10303 "allowtoken" : 1,
10304 "description" : "Update IP Mapping in a VNet",
10305 "method" : "PUT",
10306 "name" : "ipupdate",
10307 "parameters" : {
10308 "additionalProperties" : 0,
10309 "properties" : {
10310 "ip" : {
10311 "description" : "The IP address to associate with the given MAC address",
10312 "format" : "ip",
10313 "type" : "string",
10314 "typetext" : "<string>"
10315 },
10316 "mac" : {
10317 "description" : "Unicast MAC address.",
10318 "format" : "mac-addr",
10319 "format_description" : "XX:XX:XX:XX:XX:XX",
10320 "optional" : 1,
10321 "type" : "string",
10322 "typetext" : "<XX:XX:XX:XX:XX:XX>",
10323 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
10324 },
10325 "vmid" : {
10326 "description" : "The (unique) ID of the VM.",
10327 "format" : "pve-vmid",
10328 "maximum" : 999999999,
10329 "minimum" : 100,
10330 "optional" : 1,
10331 "type" : "integer",
10332 "typetext" : "<integer> (100 - 999999999)"
10333 },
10334 "vnet" : {
10335 "description" : "The SDN vnet object identifier.",
10336 "format" : "pve-sdn-vnet-id",
10337 "type" : "string",
10338 "typetext" : "<string>"
10339 },
10340 "zone" : {
10341 "description" : "The SDN zone object identifier.",
10342 "format" : "pve-sdn-zone-id",
10343 "type" : "string",
10344 "typetext" : "<string>"
10345 }
10346 }
10347 },
10348 "permissions" : {
10349 "check" : [
10350 "perm",
10351 "/sdn/zones/{zone}/{vnet}",
10352 [
10353 "SDN.Allocate"
10354 ]
10355 ]
10356 },
10357 "protected" : 1,
10358 "returns" : {
10359 "type" : "null"
10360 }
10361 }
10362 },
10363 "leaf" : 1,
10364 "path" : "/cluster/sdn/vnets/{vnet}/ips",
10365 "text" : "ips"
d2656385
TL
10366 }
10367 ],
c5aa7e14
TL
10368 "info" : {
10369 "DELETE" : {
10370 "allowtoken" : 1,
10371 "description" : "Delete sdn vnet object configuration.",
10372 "method" : "DELETE",
10373 "name" : "delete",
10374 "parameters" : {
10375 "additionalProperties" : 0,
10376 "properties" : {
10377 "vnet" : {
10378 "description" : "The SDN vnet object identifier.",
10379 "format" : "pve-sdn-vnet-id",
10380 "type" : "string",
10381 "typetext" : "<string>"
10382 }
10383 }
10384 },
10385 "permissions" : {
bd92b745
TL
10386 "description" : "Require 'SDN.Allocate' permission on '/sdn/zones/<zone>/<vnet>'",
10387 "user" : "all"
c5aa7e14
TL
10388 },
10389 "protected" : 1,
10390 "returns" : {
10391 "type" : "null"
10392 }
10393 },
10394 "GET" : {
10395 "allowtoken" : 1,
10396 "description" : "Read sdn vnet configuration.",
10397 "method" : "GET",
10398 "name" : "read",
10399 "parameters" : {
10400 "additionalProperties" : 0,
10401 "properties" : {
d2656385
TL
10402 "pending" : {
10403 "description" : "Display pending config.",
10404 "optional" : 1,
10405 "type" : "boolean",
10406 "typetext" : "<boolean>"
10407 },
10408 "running" : {
10409 "description" : "Display running config.",
10410 "optional" : 1,
10411 "type" : "boolean",
10412 "typetext" : "<boolean>"
10413 },
c5aa7e14
TL
10414 "vnet" : {
10415 "description" : "The SDN vnet object identifier.",
10416 "format" : "pve-sdn-vnet-id",
10417 "type" : "string",
10418 "typetext" : "<string>"
10419 }
10420 }
10421 },
10422 "permissions" : {
bd92b745
TL
10423 "description" : "Require 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/zones/<zone>/<vnet>'",
10424 "user" : "all"
c5aa7e14
TL
10425 },
10426 "returns" : {
10427 "type" : "object"
10428 }
10429 },
10430 "PUT" : {
10431 "allowtoken" : 1,
10432 "description" : "Update sdn vnet object configuration.",
10433 "method" : "PUT",
10434 "name" : "update",
10435 "parameters" : {
10436 "additionalProperties" : 0,
10437 "properties" : {
10438 "alias" : {
10439 "description" : "alias name of the vnet",
5370fa8c 10440 "maxLength" : 256,
c5aa7e14 10441 "optional" : 1,
5370fa8c
TL
10442 "pattern" : "(?^i:[\\(\\)-_.\\w\\d\\s]{0,256})",
10443 "type" : "string"
c5aa7e14
TL
10444 },
10445 "delete" : {
10446 "description" : "A list of settings you want to delete.",
10447 "format" : "pve-configid-list",
10448 "maxLength" : 4096,
10449 "optional" : 1,
10450 "type" : "string",
10451 "typetext" : "<string>"
10452 },
10453 "digest" : {
82551b2b
TL
10454 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
10455 "maxLength" : 64,
c5aa7e14
TL
10456 "optional" : 1,
10457 "type" : "string",
10458 "typetext" : "<string>"
10459 },
c5aa7e14
TL
10460 "tag" : {
10461 "description" : "vlan or vxlan id",
10462 "optional" : 1,
10463 "type" : "integer",
10464 "typetext" : "<integer>"
10465 },
ac70d7d1
TL
10466 "vlanaware" : {
10467 "description" : "Allow vm VLANs to pass through this vnet.",
10468 "optional" : 1,
10469 "type" : "boolean",
10470 "typetext" : "<boolean>"
10471 },
c5aa7e14
TL
10472 "vnet" : {
10473 "description" : "The SDN vnet object identifier.",
10474 "format" : "pve-sdn-vnet-id",
10475 "type" : "string",
10476 "typetext" : "<string>"
10477 },
10478 "zone" : {
10479 "description" : "zone id",
10480 "optional" : 1,
10481 "type" : "string",
10482 "typetext" : "<string>"
10483 }
10484 },
10485 "type" : "object"
10486 },
10487 "permissions" : {
bd92b745
TL
10488 "description" : "Require 'SDN.Allocate' permission on '/sdn/zones/<zone>/<vnet>'",
10489 "user" : "all"
c5aa7e14
TL
10490 },
10491 "protected" : 1,
10492 "returns" : {
10493 "type" : "null"
10494 }
10495 }
10496 },
d2656385 10497 "leaf" : 0,
c5aa7e14
TL
10498 "path" : "/cluster/sdn/vnets/{vnet}",
10499 "text" : "{vnet}"
10500 }
10501 ],
10502 "info" : {
10503 "GET" : {
10504 "allowtoken" : 1,
10505 "description" : "SDN vnets index.",
10506 "method" : "GET",
10507 "name" : "index",
10508 "parameters" : {
d2656385
TL
10509 "additionalProperties" : 0,
10510 "properties" : {
10511 "pending" : {
10512 "description" : "Display pending config.",
10513 "optional" : 1,
10514 "type" : "boolean",
10515 "typetext" : "<boolean>"
10516 },
10517 "running" : {
10518 "description" : "Display running config.",
10519 "optional" : 1,
10520 "type" : "boolean",
10521 "typetext" : "<boolean>"
10522 }
10523 }
c5aa7e14
TL
10524 },
10525 "permissions" : {
bd92b745 10526 "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/zones/<zone>/<vnet>'",
c5aa7e14
TL
10527 "user" : "all"
10528 },
10529 "returns" : {
10530 "items" : {
10531 "properties" : {},
10532 "type" : "object"
10533 },
10534 "links" : [
10535 {
10536 "href" : "{vnet}",
10537 "rel" : "child"
10538 }
10539 ],
10540 "type" : "array"
10541 }
10542 },
10543 "POST" : {
10544 "allowtoken" : 1,
10545 "description" : "Create a new sdn vnet object.",
10546 "method" : "POST",
10547 "name" : "create",
10548 "parameters" : {
10549 "additionalProperties" : 0,
10550 "properties" : {
10551 "alias" : {
10552 "description" : "alias name of the vnet",
5370fa8c 10553 "maxLength" : 256,
c5aa7e14 10554 "optional" : 1,
5370fa8c
TL
10555 "pattern" : "(?^i:[\\(\\)-_.\\w\\d\\s]{0,256})",
10556 "type" : "string"
c5aa7e14 10557 },
c5aa7e14
TL
10558 "tag" : {
10559 "description" : "vlan or vxlan id",
ac70d7d1 10560 "optional" : 1,
c5aa7e14
TL
10561 "type" : "integer",
10562 "typetext" : "<integer>"
10563 },
10564 "type" : {
10565 "description" : "Type",
10566 "enum" : [
10567 "vnet"
10568 ],
10569 "optional" : 1,
10570 "type" : "string"
10571 },
ac70d7d1
TL
10572 "vlanaware" : {
10573 "description" : "Allow vm VLANs to pass through this vnet.",
10574 "optional" : 1,
10575 "type" : "boolean",
10576 "typetext" : "<boolean>"
10577 },
c5aa7e14
TL
10578 "vnet" : {
10579 "description" : "The SDN vnet object identifier.",
10580 "format" : "pve-sdn-vnet-id",
10581 "type" : "string",
10582 "typetext" : "<string>"
10583 },
10584 "zone" : {
10585 "description" : "zone id",
10586 "optional" : 0,
10587 "type" : "string",
10588 "typetext" : "<string>"
10589 }
10590 },
10591 "type" : "object"
10592 },
10593 "permissions" : {
10594 "check" : [
10595 "perm",
bd92b745 10596 "/sdn/zones/{zone}",
c5aa7e14
TL
10597 [
10598 "SDN.Allocate"
10599 ]
10600 ]
10601 },
10602 "protected" : 1,
10603 "returns" : {
10604 "type" : "null"
10605 }
10606 }
10607 },
10608 "leaf" : 0,
10609 "path" : "/cluster/sdn/vnets",
10610 "text" : "vnets"
10611 },
10612 {
10613 "children" : [
10614 {
10615 "info" : {
10616 "DELETE" : {
10617 "allowtoken" : 1,
10618 "description" : "Delete sdn zone object configuration.",
10619 "method" : "DELETE",
10620 "name" : "delete",
10621 "parameters" : {
10622 "additionalProperties" : 0,
10623 "properties" : {
10624 "zone" : {
10625 "description" : "The SDN zone object identifier.",
10626 "format" : "pve-sdn-zone-id",
10627 "type" : "string",
10628 "typetext" : "<string>"
10629 }
10630 }
10631 },
10632 "permissions" : {
10633 "check" : [
10634 "perm",
bd92b745 10635 "/sdn/zones/{zone}",
c5aa7e14
TL
10636 [
10637 "SDN.Allocate"
10638 ]
10639 ]
10640 },
10641 "protected" : 1,
10642 "returns" : {
10643 "type" : "null"
10644 }
10645 },
10646 "GET" : {
10647 "allowtoken" : 1,
10648 "description" : "Read sdn zone configuration.",
10649 "method" : "GET",
10650 "name" : "read",
10651 "parameters" : {
10652 "additionalProperties" : 0,
10653 "properties" : {
d2656385
TL
10654 "pending" : {
10655 "description" : "Display pending config.",
10656 "optional" : 1,
10657 "type" : "boolean",
10658 "typetext" : "<boolean>"
10659 },
10660 "running" : {
10661 "description" : "Display running config.",
10662 "optional" : 1,
10663 "type" : "boolean",
10664 "typetext" : "<boolean>"
10665 },
c5aa7e14
TL
10666 "zone" : {
10667 "description" : "The SDN zone object identifier.",
10668 "format" : "pve-sdn-zone-id",
10669 "type" : "string",
10670 "typetext" : "<string>"
10671 }
10672 }
10673 },
10674 "permissions" : {
10675 "check" : [
10676 "perm",
10677 "/sdn/zones/{zone}",
10678 [
10679 "SDN.Allocate"
10680 ]
10681 ]
10682 },
10683 "returns" : {
10684 "type" : "object"
10685 }
10686 },
10687 "PUT" : {
10688 "allowtoken" : 1,
10689 "description" : "Update sdn zone object configuration.",
10690 "method" : "PUT",
10691 "name" : "update",
10692 "parameters" : {
10693 "additionalProperties" : 0,
10694 "properties" : {
5370fa8c
TL
10695 "advertise-subnets" : {
10696 "description" : "Advertise evpn subnets if you have silent hosts",
10697 "optional" : 1,
10698 "type" : "boolean",
10699 "typetext" : "<boolean>"
10700 },
c5aa7e14
TL
10701 "bridge" : {
10702 "optional" : 1,
10703 "type" : "string",
10704 "typetext" : "<string>"
10705 },
7af2edf9
TL
10706 "bridge-disable-mac-learning" : {
10707 "description" : "Disable auto mac learning.",
10708 "optional" : 1,
10709 "type" : "boolean",
10710 "typetext" : "<boolean>"
10711 },
c5aa7e14
TL
10712 "controller" : {
10713 "description" : "Frr router name",
10714 "optional" : 1,
10715 "type" : "string",
10716 "typetext" : "<string>"
10717 },
10718 "delete" : {
10719 "description" : "A list of settings you want to delete.",
10720 "format" : "pve-configid-list",
10721 "maxLength" : 4096,
10722 "optional" : 1,
10723 "type" : "string",
10724 "typetext" : "<string>"
10725 },
fa22697b
TL
10726 "dhcp" : {
10727 "description" : "Type of the DHCP backend for this zone",
10728 "enum" : [
10729 "dnsmasq"
10730 ],
10731 "optional" : 1,
fa22697b
TL
10732 "type" : "string"
10733 },
c5aa7e14 10734 "digest" : {
82551b2b
TL
10735 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
10736 "maxLength" : 64,
c5aa7e14
TL
10737 "optional" : 1,
10738 "type" : "string",
10739 "typetext" : "<string>"
10740 },
5370fa8c
TL
10741 "disable-arp-nd-suppression" : {
10742 "description" : "Disable ipv4 arp && ipv6 neighbour discovery suppression",
10743 "optional" : 1,
10744 "type" : "boolean",
10745 "typetext" : "<boolean>"
10746 },
d2656385
TL
10747 "dns" : {
10748 "description" : "dns api server",
10749 "optional" : 1,
10750 "type" : "string",
10751 "typetext" : "<string>"
10752 },
10753 "dnszone" : {
10754 "description" : "dns domain zone ex: mydomain.com",
10755 "format" : "dns-name",
10756 "optional" : 1,
10757 "type" : "string",
10758 "typetext" : "<string>"
10759 },
c5aa7e14
TL
10760 "dp-id" : {
10761 "description" : "Faucet dataplane id",
10762 "optional" : 1,
10763 "type" : "integer",
10764 "typetext" : "<integer>"
10765 },
d2656385
TL
10766 "exitnodes" : {
10767 "description" : "List of cluster node names.",
10768 "format" : "pve-node-list",
10769 "optional" : 1,
10770 "type" : "string",
10771 "typetext" : "<string>"
10772 },
5370fa8c
TL
10773 "exitnodes-local-routing" : {
10774 "description" : "Allow exitnodes to connect to evpn guests",
10775 "optional" : 1,
10776 "type" : "boolean",
10777 "typetext" : "<boolean>"
10778 },
c30bb419
TL
10779 "exitnodes-primary" : {
10780 "description" : "Force traffic to this exitnode first.",
10781 "format" : "pve-node",
10782 "optional" : 1,
10783 "type" : "string",
10784 "typetext" : "<string>"
10785 },
d2656385
TL
10786 "ipam" : {
10787 "description" : "use a specific ipam",
e7084ef7 10788 "optional" : 1,
d2656385
TL
10789 "type" : "string",
10790 "typetext" : "<string>"
10791 },
10792 "mac" : {
10793 "description" : "Anycast logical router mac address",
10794 "format" : "mac-addr",
10795 "optional" : 1,
10796 "type" : "string",
10797 "typetext" : "<string>"
10798 },
c5aa7e14 10799 "mtu" : {
ac70d7d1 10800 "description" : "MTU",
c5aa7e14
TL
10801 "optional" : 1,
10802 "type" : "integer",
10803 "typetext" : "<integer>"
10804 },
10805 "nodes" : {
10806 "description" : "List of cluster node names.",
10807 "format" : "pve-node-list",
10808 "optional" : 1,
10809 "type" : "string",
10810 "typetext" : "<string>"
10811 },
10812 "peers" : {
10813 "description" : "peers address list.",
10814 "format" : "ip-list",
10815 "optional" : 1,
10816 "type" : "string",
10817 "typetext" : "<string>"
10818 },
d2656385
TL
10819 "reversedns" : {
10820 "description" : "reverse dns api server",
10821 "optional" : 1,
10822 "type" : "string",
10823 "typetext" : "<string>"
10824 },
c30bb419
TL
10825 "rt-import" : {
10826 "description" : "Route-Target import",
10827 "format" : "pve-sdn-bgp-rt-list",
10828 "optional" : 1,
10829 "type" : "string",
10830 "typetext" : "<string>"
10831 },
c5aa7e14 10832 "tag" : {
ac70d7d1
TL
10833 "description" : "Service-VLAN Tag",
10834 "minimum" : 0,
c5aa7e14
TL
10835 "optional" : 1,
10836 "type" : "integer",
ac70d7d1
TL
10837 "typetext" : "<integer> (0 - N)"
10838 },
10839 "vlan-protocol" : {
10840 "default" : "802.1q",
10841 "enum" : [
10842 "802.1q",
10843 "802.1ad"
10844 ],
10845 "optional" : 1,
10846 "type" : "string"
c5aa7e14
TL
10847 },
10848 "vrf-vxlan" : {
10849 "description" : "l3vni.",
10850 "optional" : 1,
10851 "type" : "integer",
10852 "typetext" : "<integer>"
10853 },
4a407cfd
TL
10854 "vxlan-port" : {
10855 "description" : "Vxlan tunnel udp port (default 4789).",
10856 "maximum" : 65536,
10857 "minimum" : 1,
10858 "optional" : 1,
10859 "type" : "integer",
10860 "typetext" : "<integer> (1 - 65536)"
10861 },
c5aa7e14
TL
10862 "zone" : {
10863 "description" : "The SDN zone object identifier.",
10864 "format" : "pve-sdn-zone-id",
10865 "type" : "string",
10866 "typetext" : "<string>"
10867 }
10868 },
10869 "type" : "object"
10870 },
10871 "permissions" : {
10872 "check" : [
10873 "perm",
bd92b745 10874 "/sdn/zones/{zone}",
c5aa7e14
TL
10875 [
10876 "SDN.Allocate"
10877 ]
10878 ]
10879 },
10880 "protected" : 1,
10881 "returns" : {
10882 "type" : "null"
10883 }
10884 }
10885 },
10886 "leaf" : 1,
10887 "path" : "/cluster/sdn/zones/{zone}",
10888 "text" : "{zone}"
10889 }
10890 ],
10891 "info" : {
10892 "GET" : {
10893 "allowtoken" : 1,
10894 "description" : "SDN zones index.",
10895 "method" : "GET",
10896 "name" : "index",
10897 "parameters" : {
10898 "additionalProperties" : 0,
10899 "properties" : {
d2656385
TL
10900 "pending" : {
10901 "description" : "Display pending config.",
10902 "optional" : 1,
10903 "type" : "boolean",
10904 "typetext" : "<boolean>"
10905 },
10906 "running" : {
10907 "description" : "Display running config.",
10908 "optional" : 1,
10909 "type" : "boolean",
10910 "typetext" : "<boolean>"
10911 },
c5aa7e14 10912 "type" : {
e7084ef7 10913 "description" : "Only list SDN zones of specific type",
c5aa7e14
TL
10914 "enum" : [
10915 "evpn",
10916 "faucet",
10917 "qinq",
ac70d7d1 10918 "simple",
c5aa7e14
TL
10919 "vlan",
10920 "vxlan"
10921 ],
10922 "optional" : 1,
10923 "type" : "string"
10924 }
10925 }
10926 },
10927 "permissions" : {
10928 "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/zones/<zone>'",
10929 "user" : "all"
10930 },
10931 "returns" : {
10932 "items" : {
10933 "properties" : {
fa22697b
TL
10934 "dhcp" : {
10935 "optional" : 1,
10936 "type" : "string"
10937 },
d2656385
TL
10938 "dns" : {
10939 "optional" : 1,
10940 "type" : "string"
10941 },
10942 "dnszone" : {
10943 "optional" : 1,
10944 "type" : "string"
10945 },
10946 "ipam" : {
10947 "optional" : 1,
10948 "type" : "string"
10949 },
10950 "mtu" : {
10951 "optional" : 1,
10952 "type" : "integer"
10953 },
10954 "nodes" : {
10955 "optional" : 1,
10956 "type" : "string"
10957 },
10958 "pending" : {
1ffb0cf5
TL
10959 "optional" : 1,
10960 "type" : "boolean"
d2656385
TL
10961 },
10962 "reversedns" : {
10963 "optional" : 1,
10964 "type" : "string"
10965 },
10966 "state" : {
10967 "optional" : 1,
10968 "type" : "string"
10969 },
c5aa7e14
TL
10970 "type" : {
10971 "type" : "string"
10972 },
10973 "zone" : {
10974 "type" : "string"
10975 }
10976 },
10977 "type" : "object"
10978 },
10979 "links" : [
10980 {
10981 "href" : "{zone}",
10982 "rel" : "child"
10983 }
10984 ],
10985 "type" : "array"
10986 }
10987 },
10988 "POST" : {
10989 "allowtoken" : 1,
10990 "description" : "Create a new sdn zone object.",
10991 "method" : "POST",
10992 "name" : "create",
10993 "parameters" : {
10994 "additionalProperties" : 0,
10995 "properties" : {
5370fa8c
TL
10996 "advertise-subnets" : {
10997 "description" : "Advertise evpn subnets if you have silent hosts",
10998 "optional" : 1,
10999 "type" : "boolean",
11000 "typetext" : "<boolean>"
11001 },
c5aa7e14
TL
11002 "bridge" : {
11003 "optional" : 1,
11004 "type" : "string",
11005 "typetext" : "<string>"
11006 },
7af2edf9
TL
11007 "bridge-disable-mac-learning" : {
11008 "description" : "Disable auto mac learning.",
11009 "optional" : 1,
11010 "type" : "boolean",
11011 "typetext" : "<boolean>"
11012 },
c5aa7e14
TL
11013 "controller" : {
11014 "description" : "Frr router name",
11015 "optional" : 1,
11016 "type" : "string",
11017 "typetext" : "<string>"
11018 },
fa22697b
TL
11019 "dhcp" : {
11020 "description" : "Type of the DHCP backend for this zone",
11021 "enum" : [
11022 "dnsmasq"
11023 ],
11024 "optional" : 1,
fa22697b
TL
11025 "type" : "string"
11026 },
5370fa8c
TL
11027 "disable-arp-nd-suppression" : {
11028 "description" : "Disable ipv4 arp && ipv6 neighbour discovery suppression",
11029 "optional" : 1,
11030 "type" : "boolean",
11031 "typetext" : "<boolean>"
11032 },
d2656385
TL
11033 "dns" : {
11034 "description" : "dns api server",
11035 "optional" : 1,
11036 "type" : "string",
11037 "typetext" : "<string>"
11038 },
11039 "dnszone" : {
11040 "description" : "dns domain zone ex: mydomain.com",
11041 "format" : "dns-name",
11042 "optional" : 1,
11043 "type" : "string",
11044 "typetext" : "<string>"
11045 },
c5aa7e14
TL
11046 "dp-id" : {
11047 "description" : "Faucet dataplane id",
11048 "optional" : 1,
11049 "type" : "integer",
11050 "typetext" : "<integer>"
11051 },
d2656385
TL
11052 "exitnodes" : {
11053 "description" : "List of cluster node names.",
11054 "format" : "pve-node-list",
11055 "optional" : 1,
11056 "type" : "string",
11057 "typetext" : "<string>"
11058 },
5370fa8c
TL
11059 "exitnodes-local-routing" : {
11060 "description" : "Allow exitnodes to connect to evpn guests",
11061 "optional" : 1,
11062 "type" : "boolean",
11063 "typetext" : "<boolean>"
11064 },
c30bb419
TL
11065 "exitnodes-primary" : {
11066 "description" : "Force traffic to this exitnode first.",
11067 "format" : "pve-node",
11068 "optional" : 1,
11069 "type" : "string",
11070 "typetext" : "<string>"
11071 },
d2656385
TL
11072 "ipam" : {
11073 "description" : "use a specific ipam",
e7084ef7 11074 "optional" : 1,
d2656385
TL
11075 "type" : "string",
11076 "typetext" : "<string>"
11077 },
11078 "mac" : {
11079 "description" : "Anycast logical router mac address",
11080 "format" : "mac-addr",
11081 "optional" : 1,
11082 "type" : "string",
11083 "typetext" : "<string>"
11084 },
c5aa7e14 11085 "mtu" : {
ac70d7d1 11086 "description" : "MTU",
c5aa7e14
TL
11087 "optional" : 1,
11088 "type" : "integer",
11089 "typetext" : "<integer>"
11090 },
11091 "nodes" : {
11092 "description" : "List of cluster node names.",
11093 "format" : "pve-node-list",
11094 "optional" : 1,
11095 "type" : "string",
11096 "typetext" : "<string>"
11097 },
11098 "peers" : {
11099 "description" : "peers address list.",
11100 "format" : "ip-list",
11101 "optional" : 1,
11102 "type" : "string",
11103 "typetext" : "<string>"
11104 },
d2656385
TL
11105 "reversedns" : {
11106 "description" : "reverse dns api server",
11107 "optional" : 1,
11108 "type" : "string",
11109 "typetext" : "<string>"
11110 },
c30bb419
TL
11111 "rt-import" : {
11112 "description" : "Route-Target import",
11113 "format" : "pve-sdn-bgp-rt-list",
11114 "optional" : 1,
11115 "type" : "string",
11116 "typetext" : "<string>"
11117 },
c5aa7e14 11118 "tag" : {
ac70d7d1
TL
11119 "description" : "Service-VLAN Tag",
11120 "minimum" : 0,
c5aa7e14
TL
11121 "optional" : 1,
11122 "type" : "integer",
ac70d7d1 11123 "typetext" : "<integer> (0 - N)"
c5aa7e14
TL
11124 },
11125 "type" : {
11126 "description" : "Plugin type.",
11127 "enum" : [
11128 "evpn",
11129 "faucet",
11130 "qinq",
ac70d7d1 11131 "simple",
c5aa7e14
TL
11132 "vlan",
11133 "vxlan"
11134 ],
11135 "format" : "pve-configid",
11136 "type" : "string"
11137 },
ac70d7d1
TL
11138 "vlan-protocol" : {
11139 "default" : "802.1q",
11140 "enum" : [
11141 "802.1q",
11142 "802.1ad"
11143 ],
11144 "optional" : 1,
11145 "type" : "string"
11146 },
c5aa7e14
TL
11147 "vrf-vxlan" : {
11148 "description" : "l3vni.",
11149 "optional" : 1,
11150 "type" : "integer",
11151 "typetext" : "<integer>"
11152 },
4a407cfd
TL
11153 "vxlan-port" : {
11154 "description" : "Vxlan tunnel udp port (default 4789).",
11155 "maximum" : 65536,
11156 "minimum" : 1,
11157 "optional" : 1,
11158 "type" : "integer",
11159 "typetext" : "<integer> (1 - 65536)"
11160 },
c5aa7e14
TL
11161 "zone" : {
11162 "description" : "The SDN zone object identifier.",
11163 "format" : "pve-sdn-zone-id",
11164 "type" : "string",
11165 "typetext" : "<string>"
11166 }
11167 },
11168 "type" : "object"
11169 },
11170 "permissions" : {
11171 "check" : [
11172 "perm",
11173 "/sdn/zones",
11174 [
11175 "SDN.Allocate"
11176 ]
11177 ]
11178 },
11179 "protected" : 1,
11180 "returns" : {
11181 "type" : "null"
11182 }
11183 }
11184 },
11185 "leaf" : 0,
11186 "path" : "/cluster/sdn/zones",
11187 "text" : "zones"
11188 },
11189 {
11190 "children" : [
11191 {
11192 "info" : {
11193 "DELETE" : {
11194 "allowtoken" : 1,
11195 "description" : "Delete sdn controller object configuration.",
11196 "method" : "DELETE",
11197 "name" : "delete",
11198 "parameters" : {
11199 "additionalProperties" : 0,
11200 "properties" : {
11201 "controller" : {
11202 "description" : "The SDN controller object identifier.",
11203 "format" : "pve-sdn-controller-id",
11204 "type" : "string",
11205 "typetext" : "<string>"
11206 }
11207 }
11208 },
11209 "permissions" : {
11210 "check" : [
11211 "perm",
11212 "/sdn/controllers",
11213 [
11214 "SDN.Allocate"
11215 ]
11216 ]
11217 },
11218 "protected" : 1,
11219 "returns" : {
11220 "type" : "null"
11221 }
11222 },
11223 "GET" : {
11224 "allowtoken" : 1,
11225 "description" : "Read sdn controller configuration.",
11226 "method" : "GET",
11227 "name" : "read",
11228 "parameters" : {
11229 "additionalProperties" : 0,
11230 "properties" : {
11231 "controller" : {
11232 "description" : "The SDN controller object identifier.",
11233 "format" : "pve-sdn-controller-id",
11234 "type" : "string",
11235 "typetext" : "<string>"
d2656385
TL
11236 },
11237 "pending" : {
11238 "description" : "Display pending config.",
11239 "optional" : 1,
11240 "type" : "boolean",
11241 "typetext" : "<boolean>"
11242 },
11243 "running" : {
11244 "description" : "Display running config.",
11245 "optional" : 1,
11246 "type" : "boolean",
11247 "typetext" : "<boolean>"
c5aa7e14
TL
11248 }
11249 }
11250 },
11251 "permissions" : {
11252 "check" : [
11253 "perm",
11254 "/sdn/controllers/{controller}",
11255 [
11256 "SDN.Allocate"
11257 ]
11258 ]
11259 },
11260 "returns" : {
11261 "type" : "object"
11262 }
11263 },
11264 "PUT" : {
11265 "allowtoken" : 1,
11266 "description" : "Update sdn controller object configuration.",
11267 "method" : "PUT",
11268 "name" : "update",
11269 "parameters" : {
11270 "additionalProperties" : 0,
11271 "properties" : {
11272 "asn" : {
11273 "description" : "autonomous system number",
c30bb419
TL
11274 "maximum" : 4294967296,
11275 "minimum" : 0,
c5aa7e14
TL
11276 "optional" : 1,
11277 "type" : "integer",
c30bb419
TL
11278 "typetext" : "<integer> (0 - 4294967296)"
11279 },
11280 "bgp-multipath-as-path-relax" : {
11281 "optional" : 1,
11282 "type" : "boolean",
11283 "typetext" : "<boolean>"
c5aa7e14
TL
11284 },
11285 "controller" : {
11286 "description" : "The SDN controller object identifier.",
11287 "format" : "pve-sdn-controller-id",
11288 "type" : "string",
11289 "typetext" : "<string>"
11290 },
11291 "delete" : {
11292 "description" : "A list of settings you want to delete.",
11293 "format" : "pve-configid-list",
11294 "maxLength" : 4096,
11295 "optional" : 1,
11296 "type" : "string",
11297 "typetext" : "<string>"
11298 },
11299 "digest" : {
82551b2b
TL
11300 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
11301 "maxLength" : 64,
c5aa7e14
TL
11302 "optional" : 1,
11303 "type" : "string",
11304 "typetext" : "<string>"
11305 },
d2656385
TL
11306 "ebgp" : {
11307 "description" : "Enable ebgp. (remote-as external)",
11308 "optional" : 1,
11309 "type" : "boolean",
11310 "typetext" : "<boolean>"
11311 },
11312 "ebgp-multihop" : {
11313 "optional" : 1,
11314 "type" : "integer",
11315 "typetext" : "<integer>"
11316 },
bd92b745
TL
11317 "isis-domain" : {
11318 "description" : "ISIS domain.",
11319 "optional" : 1,
11320 "type" : "string",
11321 "typetext" : "<string>"
11322 },
11323 "isis-ifaces" : {
11324 "description" : "ISIS interface.",
11325 "format" : "pve-iface-list",
11326 "optional" : 1,
11327 "type" : "string",
11328 "typetext" : "<string>"
11329 },
11330 "isis-net" : {
11331 "description" : "ISIS network entity title.",
1ffb0cf5 11332 "format" : "pve-sdn-isis-net",
bd92b745
TL
11333 "optional" : 1,
11334 "type" : "string",
11335 "typetext" : "<string>"
11336 },
d2656385
TL
11337 "loopback" : {
11338 "description" : "source loopback interface.",
c5aa7e14
TL
11339 "optional" : 1,
11340 "type" : "string",
11341 "typetext" : "<string>"
11342 },
d2656385
TL
11343 "node" : {
11344 "description" : "The cluster node name.",
11345 "format" : "pve-node",
c5aa7e14
TL
11346 "optional" : 1,
11347 "type" : "string",
11348 "typetext" : "<string>"
11349 },
11350 "peers" : {
11351 "description" : "peers address list.",
11352 "format" : "ip-list",
11353 "optional" : 1,
11354 "type" : "string",
11355 "typetext" : "<string>"
11356 }
11357 },
11358 "type" : "object"
11359 },
11360 "permissions" : {
11361 "check" : [
11362 "perm",
11363 "/sdn/controllers",
11364 [
11365 "SDN.Allocate"
11366 ]
11367 ]
11368 },
11369 "protected" : 1,
11370 "returns" : {
11371 "type" : "null"
11372 }
11373 }
11374 },
11375 "leaf" : 1,
11376 "path" : "/cluster/sdn/controllers/{controller}",
11377 "text" : "{controller}"
11378 }
11379 ],
11380 "info" : {
11381 "GET" : {
11382 "allowtoken" : 1,
11383 "description" : "SDN controllers index.",
11384 "method" : "GET",
11385 "name" : "index",
11386 "parameters" : {
11387 "additionalProperties" : 0,
11388 "properties" : {
d2656385
TL
11389 "pending" : {
11390 "description" : "Display pending config.",
11391 "optional" : 1,
11392 "type" : "boolean",
11393 "typetext" : "<boolean>"
11394 },
11395 "running" : {
11396 "description" : "Display running config.",
11397 "optional" : 1,
11398 "type" : "boolean",
11399 "typetext" : "<boolean>"
11400 },
c5aa7e14
TL
11401 "type" : {
11402 "description" : "Only list sdn controllers of specific type",
11403 "enum" : [
d2656385 11404 "bgp",
c5aa7e14 11405 "evpn",
bd92b745
TL
11406 "faucet",
11407 "isis"
c5aa7e14
TL
11408 ],
11409 "optional" : 1,
11410 "type" : "string"
11411 }
11412 }
11413 },
11414 "permissions" : {
11415 "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/controllers/<controller>'",
11416 "user" : "all"
11417 },
11418 "returns" : {
11419 "items" : {
11420 "properties" : {
11421 "controller" : {
11422 "type" : "string"
11423 },
d2656385 11424 "pending" : {
1ffb0cf5
TL
11425 "optional" : 1,
11426 "type" : "boolean"
d2656385
TL
11427 },
11428 "state" : {
11429 "optional" : 1,
11430 "type" : "string"
11431 },
c5aa7e14
TL
11432 "type" : {
11433 "type" : "string"
11434 }
11435 },
11436 "type" : "object"
11437 },
11438 "links" : [
11439 {
11440 "href" : "{controller}",
11441 "rel" : "child"
11442 }
11443 ],
11444 "type" : "array"
11445 }
11446 },
11447 "POST" : {
11448 "allowtoken" : 1,
11449 "description" : "Create a new sdn controller object.",
11450 "method" : "POST",
11451 "name" : "create",
11452 "parameters" : {
11453 "additionalProperties" : 0,
11454 "properties" : {
11455 "asn" : {
11456 "description" : "autonomous system number",
c30bb419
TL
11457 "maximum" : 4294967296,
11458 "minimum" : 0,
c5aa7e14
TL
11459 "optional" : 1,
11460 "type" : "integer",
c30bb419
TL
11461 "typetext" : "<integer> (0 - 4294967296)"
11462 },
11463 "bgp-multipath-as-path-relax" : {
11464 "optional" : 1,
11465 "type" : "boolean",
11466 "typetext" : "<boolean>"
c5aa7e14
TL
11467 },
11468 "controller" : {
11469 "description" : "The SDN controller object identifier.",
11470 "format" : "pve-sdn-controller-id",
11471 "type" : "string",
11472 "typetext" : "<string>"
11473 },
d2656385
TL
11474 "ebgp" : {
11475 "description" : "Enable ebgp. (remote-as external)",
11476 "optional" : 1,
11477 "type" : "boolean",
11478 "typetext" : "<boolean>"
11479 },
11480 "ebgp-multihop" : {
11481 "optional" : 1,
11482 "type" : "integer",
11483 "typetext" : "<integer>"
11484 },
bd92b745
TL
11485 "isis-domain" : {
11486 "description" : "ISIS domain.",
11487 "optional" : 1,
11488 "type" : "string",
11489 "typetext" : "<string>"
11490 },
11491 "isis-ifaces" : {
11492 "description" : "ISIS interface.",
11493 "format" : "pve-iface-list",
11494 "optional" : 1,
11495 "type" : "string",
11496 "typetext" : "<string>"
11497 },
11498 "isis-net" : {
11499 "description" : "ISIS network entity title.",
1ffb0cf5 11500 "format" : "pve-sdn-isis-net",
bd92b745
TL
11501 "optional" : 1,
11502 "type" : "string",
11503 "typetext" : "<string>"
11504 },
d2656385
TL
11505 "loopback" : {
11506 "description" : "source loopback interface.",
c5aa7e14
TL
11507 "optional" : 1,
11508 "type" : "string",
11509 "typetext" : "<string>"
11510 },
d2656385
TL
11511 "node" : {
11512 "description" : "The cluster node name.",
11513 "format" : "pve-node",
c5aa7e14
TL
11514 "optional" : 1,
11515 "type" : "string",
11516 "typetext" : "<string>"
11517 },
11518 "peers" : {
11519 "description" : "peers address list.",
11520 "format" : "ip-list",
11521 "optional" : 1,
11522 "type" : "string",
11523 "typetext" : "<string>"
11524 },
11525 "type" : {
11526 "description" : "Plugin type.",
11527 "enum" : [
d2656385 11528 "bgp",
c5aa7e14 11529 "evpn",
bd92b745
TL
11530 "faucet",
11531 "isis"
c5aa7e14
TL
11532 ],
11533 "format" : "pve-configid",
11534 "type" : "string"
11535 }
11536 },
11537 "type" : "object"
11538 },
11539 "permissions" : {
11540 "check" : [
11541 "perm",
11542 "/sdn/controllers",
11543 [
11544 "SDN.Allocate"
11545 ]
11546 ]
11547 },
11548 "protected" : 1,
11549 "returns" : {
11550 "type" : "null"
11551 }
11552 }
11553 },
11554 "leaf" : 0,
11555 "path" : "/cluster/sdn/controllers",
11556 "text" : "controllers"
d2656385
TL
11557 },
11558 {
11559 "children" : [
11560 {
fa22697b
TL
11561 "children" : [
11562 {
11563 "info" : {
11564 "GET" : {
11565 "allowtoken" : 1,
11566 "description" : "List PVE IPAM Entries",
11567 "method" : "GET",
11568 "name" : "ipamindex",
11569 "parameters" : {
11570 "additionalProperties" : 0,
11571 "properties" : {
11572 "ipam" : {
11573 "description" : "The SDN ipam object identifier.",
11574 "format" : "pve-sdn-ipam-id",
11575 "type" : "string",
11576 "typetext" : "<string>"
11577 }
11578 }
11579 },
11580 "permissions" : {
11581 "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/zones/<zone>/<vnet>'",
11582 "user" : "all"
11583 },
11584 "protected" : 1,
11585 "returns" : {
11586 "type" : "array"
11587 }
11588 }
11589 },
11590 "leaf" : 1,
11591 "path" : "/cluster/sdn/ipams/{ipam}/status",
11592 "text" : "status"
11593 }
11594 ],
d2656385
TL
11595 "info" : {
11596 "DELETE" : {
11597 "allowtoken" : 1,
11598 "description" : "Delete sdn ipam object configuration.",
11599 "method" : "DELETE",
11600 "name" : "delete",
11601 "parameters" : {
11602 "additionalProperties" : 0,
11603 "properties" : {
11604 "ipam" : {
11605 "description" : "The SDN ipam object identifier.",
11606 "format" : "pve-sdn-ipam-id",
11607 "type" : "string",
11608 "typetext" : "<string>"
11609 }
11610 }
11611 },
11612 "permissions" : {
11613 "check" : [
11614 "perm",
11615 "/sdn/ipams",
11616 [
11617 "SDN.Allocate"
11618 ]
11619 ]
11620 },
11621 "protected" : 1,
11622 "returns" : {
11623 "type" : "null"
11624 }
11625 },
11626 "GET" : {
11627 "allowtoken" : 1,
11628 "description" : "Read sdn ipam configuration.",
11629 "method" : "GET",
11630 "name" : "read",
11631 "parameters" : {
11632 "additionalProperties" : 0,
11633 "properties" : {
11634 "ipam" : {
11635 "description" : "The SDN ipam object identifier.",
11636 "format" : "pve-sdn-ipam-id",
11637 "type" : "string",
11638 "typetext" : "<string>"
11639 }
11640 }
11641 },
11642 "permissions" : {
11643 "check" : [
11644 "perm",
11645 "/sdn/ipams/{ipam}",
11646 [
11647 "SDN.Allocate"
11648 ]
11649 ]
11650 },
11651 "returns" : {
11652 "type" : "object"
11653 }
11654 },
11655 "PUT" : {
11656 "allowtoken" : 1,
11657 "description" : "Update sdn ipam object configuration.",
11658 "method" : "PUT",
11659 "name" : "update",
11660 "parameters" : {
11661 "additionalProperties" : 0,
11662 "properties" : {
11663 "delete" : {
11664 "description" : "A list of settings you want to delete.",
11665 "format" : "pve-configid-list",
11666 "maxLength" : 4096,
11667 "optional" : 1,
11668 "type" : "string",
11669 "typetext" : "<string>"
11670 },
11671 "digest" : {
82551b2b
TL
11672 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
11673 "maxLength" : 64,
d2656385
TL
11674 "optional" : 1,
11675 "type" : "string",
11676 "typetext" : "<string>"
11677 },
11678 "ipam" : {
11679 "description" : "The SDN ipam object identifier.",
11680 "format" : "pve-sdn-ipam-id",
11681 "type" : "string",
11682 "typetext" : "<string>"
11683 },
11684 "section" : {
11685 "optional" : 1,
11686 "type" : "integer",
11687 "typetext" : "<integer>"
11688 },
11689 "token" : {
11690 "optional" : 1,
11691 "type" : "string",
11692 "typetext" : "<string>"
11693 },
11694 "url" : {
11695 "optional" : 1,
11696 "type" : "string",
11697 "typetext" : "<string>"
11698 }
11699 },
11700 "type" : "object"
11701 },
11702 "permissions" : {
11703 "check" : [
11704 "perm",
11705 "/sdn/ipams",
11706 [
11707 "SDN.Allocate"
11708 ]
11709 ]
11710 },
11711 "protected" : 1,
11712 "returns" : {
11713 "type" : "null"
11714 }
c5aa7e14
TL
11715 }
11716 },
fa22697b 11717 "leaf" : 0,
d2656385
TL
11718 "path" : "/cluster/sdn/ipams/{ipam}",
11719 "text" : "{ipam}"
7aacca6f 11720 }
d2656385
TL
11721 ],
11722 "info" : {
11723 "GET" : {
11724 "allowtoken" : 1,
11725 "description" : "SDN ipams index.",
11726 "method" : "GET",
11727 "name" : "index",
11728 "parameters" : {
11729 "additionalProperties" : 0,
11730 "properties" : {
11731 "type" : {
11732 "description" : "Only list sdn ipams of specific type",
11733 "enum" : [
11734 "netbox",
11735 "phpipam",
11736 "pve"
11737 ],
11738 "optional" : 1,
11739 "type" : "string"
11740 }
11741 }
11742 },
11743 "permissions" : {
11744 "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/ipams/<ipam>'",
11745 "user" : "all"
11746 },
11747 "returns" : {
11748 "items" : {
11749 "properties" : {
11750 "ipam" : {
11751 "type" : "string"
11752 },
11753 "type" : {
11754 "type" : "string"
11755 }
11756 },
11757 "type" : "object"
11758 },
11759 "links" : [
11760 {
11761 "href" : "{ipam}",
11762 "rel" : "child"
11763 }
44660702 11764 ],
d2656385
TL
11765 "type" : "array"
11766 }
11767 },
11768 "POST" : {
11769 "allowtoken" : 1,
11770 "description" : "Create a new sdn ipam object.",
11771 "method" : "POST",
11772 "name" : "create",
11773 "parameters" : {
11774 "additionalProperties" : 0,
11775 "properties" : {
11776 "ipam" : {
11777 "description" : "The SDN ipam object identifier.",
11778 "format" : "pve-sdn-ipam-id",
11779 "type" : "string",
11780 "typetext" : "<string>"
11781 },
11782 "section" : {
11783 "optional" : 1,
11784 "type" : "integer",
11785 "typetext" : "<integer>"
11786 },
11787 "token" : {
11788 "optional" : 1,
11789 "type" : "string",
11790 "typetext" : "<string>"
11791 },
11792 "type" : {
11793 "description" : "Plugin type.",
11794 "enum" : [
11795 "netbox",
11796 "phpipam",
11797 "pve"
11798 ],
11799 "format" : "pve-configid",
11800 "type" : "string"
11801 },
11802 "url" : {
11803 "optional" : 1,
11804 "type" : "string",
11805 "typetext" : "<string>"
11806 }
11807 },
11808 "type" : "object"
11809 },
11810 "permissions" : {
11811 "check" : [
11812 "perm",
11813 "/sdn/ipams",
11814 [
11815 "SDN.Allocate"
11816 ]
11817 ]
11818 },
11819 "protected" : 1,
11820 "returns" : {
11821 "type" : "null"
56122987
DM
11822 }
11823 }
11824 },
d2656385
TL
11825 "leaf" : 0,
11826 "path" : "/cluster/sdn/ipams",
11827 "text" : "ipams"
11828 },
11829 {
11830 "children" : [
11831 {
11832 "info" : {
11833 "DELETE" : {
11834 "allowtoken" : 1,
11835 "description" : "Delete sdn dns object configuration.",
11836 "method" : "DELETE",
11837 "name" : "delete",
11838 "parameters" : {
11839 "additionalProperties" : 0,
11840 "properties" : {
11841 "dns" : {
11842 "description" : "The SDN dns object identifier.",
11843 "format" : "pve-sdn-dns-id",
11844 "type" : "string",
11845 "typetext" : "<string>"
11846 }
11847 }
11848 },
11849 "permissions" : {
11850 "check" : [
11851 "perm",
11852 "/sdn/dns",
11853 [
11854 "SDN.Allocate"
11855 ]
11856 ]
11857 },
11858 "protected" : 1,
11859 "returns" : {
11860 "type" : "null"
11861 }
11862 },
11863 "GET" : {
11864 "allowtoken" : 1,
11865 "description" : "Read sdn dns configuration.",
11866 "method" : "GET",
11867 "name" : "read",
11868 "parameters" : {
11869 "additionalProperties" : 0,
11870 "properties" : {
11871 "dns" : {
11872 "description" : "The SDN dns object identifier.",
11873 "format" : "pve-sdn-dns-id",
11874 "type" : "string",
11875 "typetext" : "<string>"
11876 }
11877 }
11878 },
11879 "permissions" : {
11880 "check" : [
11881 "perm",
11882 "/sdn/dns/{dns}",
11883 [
11884 "SDN.Allocate"
11885 ]
11886 ]
11887 },
11888 "returns" : {
11889 "type" : "object"
11890 }
11891 },
11892 "PUT" : {
11893 "allowtoken" : 1,
11894 "description" : "Update sdn dns object configuration.",
11895 "method" : "PUT",
11896 "name" : "update",
11897 "parameters" : {
11898 "additionalProperties" : 0,
11899 "properties" : {
11900 "delete" : {
11901 "description" : "A list of settings you want to delete.",
11902 "format" : "pve-configid-list",
11903 "maxLength" : 4096,
11904 "optional" : 1,
11905 "type" : "string",
11906 "typetext" : "<string>"
11907 },
11908 "digest" : {
82551b2b
TL
11909 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
11910 "maxLength" : 64,
d2656385
TL
11911 "optional" : 1,
11912 "type" : "string",
11913 "typetext" : "<string>"
11914 },
11915 "dns" : {
11916 "description" : "The SDN dns object identifier.",
11917 "format" : "pve-sdn-dns-id",
11918 "type" : "string",
11919 "typetext" : "<string>"
11920 },
11921 "key" : {
11922 "optional" : 1,
11923 "type" : "string",
11924 "typetext" : "<string>"
11925 },
11926 "reversemaskv6" : {
11927 "optional" : 1,
11928 "type" : "integer",
11929 "typetext" : "<integer>"
11930 },
11931 "ttl" : {
11932 "optional" : 1,
11933 "type" : "integer",
11934 "typetext" : "<integer>"
11935 },
11936 "url" : {
11937 "optional" : 1,
11938 "type" : "string",
11939 "typetext" : "<string>"
11940 }
11941 },
11942 "type" : "object"
11943 },
11944 "permissions" : {
11945 "check" : [
11946 "perm",
11947 "/sdn/dns",
11948 [
11949 "SDN.Allocate"
11950 ]
11951 ]
11952 },
11953 "protected" : 1,
11954 "returns" : {
11955 "type" : "null"
11956 }
11957 }
11958 },
11959 "leaf" : 1,
11960 "path" : "/cluster/sdn/dns/{dns}",
11961 "text" : "{dns}"
11962 }
11963 ],
11964 "info" : {
11965 "GET" : {
11966 "allowtoken" : 1,
11967 "description" : "SDN dns index.",
11968 "method" : "GET",
11969 "name" : "index",
11970 "parameters" : {
11971 "additionalProperties" : 0,
11972 "properties" : {
11973 "type" : {
11974 "description" : "Only list sdn dns of specific type",
11975 "enum" : [
11976 "powerdns"
11977 ],
11978 "optional" : 1,
11979 "type" : "string"
11980 }
11981 }
11982 },
11983 "permissions" : {
11984 "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/dns/<dns>'",
11985 "user" : "all"
11986 },
11987 "returns" : {
11988 "items" : {
11989 "properties" : {
11990 "dns" : {
11991 "type" : "string"
11992 },
11993 "type" : {
11994 "type" : "string"
11995 }
11996 },
11997 "type" : "object"
11998 },
11999 "links" : [
12000 {
12001 "href" : "{dns}",
12002 "rel" : "child"
12003 }
12004 ],
12005 "type" : "array"
12006 }
12007 },
12008 "POST" : {
12009 "allowtoken" : 1,
12010 "description" : "Create a new sdn dns object.",
12011 "method" : "POST",
12012 "name" : "create",
12013 "parameters" : {
12014 "additionalProperties" : 0,
12015 "properties" : {
12016 "dns" : {
12017 "description" : "The SDN dns object identifier.",
12018 "format" : "pve-sdn-dns-id",
12019 "type" : "string",
12020 "typetext" : "<string>"
12021 },
12022 "key" : {
12023 "optional" : 0,
12024 "type" : "string",
12025 "typetext" : "<string>"
12026 },
12027 "reversemaskv6" : {
12028 "optional" : 1,
12029 "type" : "integer",
12030 "typetext" : "<integer>"
12031 },
12032 "reversev6mask" : {
12033 "optional" : 1,
12034 "type" : "integer",
12035 "typetext" : "<integer>"
12036 },
12037 "ttl" : {
12038 "optional" : 1,
12039 "type" : "integer",
12040 "typetext" : "<integer>"
12041 },
12042 "type" : {
12043 "description" : "Plugin type.",
12044 "enum" : [
12045 "powerdns"
12046 ],
12047 "format" : "pve-configid",
12048 "type" : "string"
12049 },
12050 "url" : {
12051 "optional" : 0,
12052 "type" : "string",
12053 "typetext" : "<string>"
12054 }
12055 },
12056 "type" : "object"
12057 },
12058 "permissions" : {
12059 "check" : [
12060 "perm",
12061 "/sdn/dns",
12062 [
12063 "SDN.Allocate"
12064 ]
12065 ]
12066 },
12067 "protected" : 1,
12068 "returns" : {
12069 "type" : "null"
12070 }
12071 }
12072 },
12073 "leaf" : 0,
12074 "path" : "/cluster/sdn/dns",
12075 "text" : "dns"
12076 }
12077 ],
12078 "info" : {
12079 "GET" : {
12080 "allowtoken" : 1,
12081 "description" : "Directory index.",
12082 "method" : "GET",
12083 "name" : "index",
12084 "parameters" : {
12085 "additionalProperties" : 0
12086 },
12087 "permissions" : {
12088 "check" : [
12089 "perm",
bd92b745 12090 "/sdn",
d2656385
TL
12091 [
12092 "SDN.Audit"
12093 ]
12094 ]
12095 },
12096 "returns" : {
12097 "items" : {
12098 "properties" : {
12099 "id" : {
12100 "type" : "string"
12101 }
12102 },
12103 "type" : "object"
12104 },
12105 "links" : [
12106 {
12107 "href" : "{id}",
12108 "rel" : "child"
12109 }
12110 ],
12111 "type" : "array"
12112 }
12113 },
12114 "PUT" : {
12115 "allowtoken" : 1,
12116 "description" : "Apply sdn controller changes && reload.",
12117 "method" : "PUT",
12118 "name" : "reload",
12119 "parameters" : {
12120 "additionalProperties" : 0
12121 },
12122 "permissions" : {
12123 "check" : [
12124 "perm",
12125 "/sdn",
12126 [
12127 "SDN.Allocate"
12128 ]
12129 ]
12130 },
12131 "protected" : 1,
12132 "returns" : {
12133 "type" : "string"
12134 }
12135 }
12136 },
12137 "leaf" : 0,
12138 "path" : "/cluster/sdn",
12139 "text" : "sdn"
12140 },
12141 {
12142 "info" : {
12143 "GET" : {
12144 "allowtoken" : 1,
12145 "description" : "Read cluster log",
12146 "method" : "GET",
12147 "name" : "log",
12148 "parameters" : {
12149 "additionalProperties" : 0,
12150 "properties" : {
12151 "max" : {
12152 "description" : "Maximum number of entries.",
12153 "minimum" : 1,
12154 "optional" : 1,
12155 "type" : "integer",
12156 "typetext" : "<integer> (1 - N)"
12157 }
12158 }
12159 },
12160 "permissions" : {
12161 "user" : "all"
12162 },
12163 "returns" : {
12164 "items" : {
12165 "properties" : {},
12166 "type" : "object"
12167 },
12168 "type" : "array"
12169 }
12170 }
12171 },
12172 "leaf" : 1,
12173 "path" : "/cluster/log",
12174 "text" : "log"
12175 },
12176 {
12177 "info" : {
12178 "GET" : {
12179 "allowtoken" : 1,
12180 "description" : "Resources index (cluster wide).",
12181 "method" : "GET",
12182 "name" : "resources",
12183 "parameters" : {
12184 "additionalProperties" : 0,
12185 "properties" : {
12186 "type" : {
12187 "enum" : [
12188 "vm",
12189 "storage",
12190 "node",
12191 "sdn"
12192 ],
12193 "optional" : 1,
12194 "type" : "string"
12195 }
12196 }
12197 },
12198 "permissions" : {
12199 "user" : "all"
12200 },
12201 "returns" : {
12202 "items" : {
12203 "properties" : {
81a3384d
TL
12204 "cgroup-mode" : {
12205 "description" : "The cgroup mode the node operates under (when type == node).",
12206 "optional" : 1,
12207 "type" : "integer"
12208 },
d2656385
TL
12209 "content" : {
12210 "description" : "Allowed storage content types (when type == storage).",
12211 "format" : "pve-storage-content-list",
12212 "optional" : 1,
12213 "type" : "string"
12214 },
12215 "cpu" : {
12216 "description" : "CPU utilization (when type in node,qemu,lxc).",
4e7f60c2 12217 "minimum" : 0,
4d47f125
TL
12218 "optional" : 1,
12219 "renderer" : "fraction_as_percentage",
12220 "type" : "number"
12221 },
12222 "disk" : {
12223 "description" : "Used disk space in bytes (when type in storage), used root image spave for VMs (type in qemu,lxc).",
4e7f60c2 12224 "minimum" : 0,
4d47f125
TL
12225 "optional" : 1,
12226 "renderer" : "bytes",
4e7f60c2 12227 "type" : "integer"
4d47f125
TL
12228 },
12229 "hastate" : {
12230 "description" : "HA service status (for HA managed VMs).",
12231 "optional" : 1,
12232 "type" : "string"
12233 },
12234 "id" : {
287a95cf 12235 "description" : "Resource id.",
4d47f125
TL
12236 "type" : "string"
12237 },
12238 "level" : {
12239 "description" : "Support level (when type == node).",
12240 "optional" : 1,
12241 "type" : "string"
12242 },
12243 "maxcpu" : {
12244 "description" : "Number of available CPUs (when type in node,qemu,lxc).",
4e7f60c2 12245 "minimum" : 0,
4d47f125
TL
12246 "optional" : 1,
12247 "type" : "number"
12248 },
12249 "maxdisk" : {
12250 "description" : "Storage size in bytes (when type in storage), root image size for VMs (type in qemu,lxc).",
4e7f60c2 12251 "minimum" : 0,
4d47f125
TL
12252 "optional" : 1,
12253 "renderer" : "bytes",
12254 "type" : "integer"
12255 },
12256 "maxmem" : {
12257 "description" : "Number of available memory in bytes (when type in node,qemu,lxc).",
12258 "optional" : 1,
12259 "renderer" : "bytes",
12260 "type" : "integer"
12261 },
12262 "mem" : {
12263 "description" : "Used memory in bytes (when type in node,qemu,lxc).",
4e7f60c2 12264 "minimum" : 0,
4d47f125
TL
12265 "optional" : 1,
12266 "renderer" : "bytes",
4e7f60c2 12267 "type" : "integer"
4d47f125 12268 },
34f3e481
TL
12269 "name" : {
12270 "description" : "Name of the resource.",
12271 "optional" : 1,
12272 "type" : "string"
12273 },
4d47f125
TL
12274 "node" : {
12275 "description" : "The cluster node name (when type in node,storage,qemu,lxc).",
12276 "format" : "pve-node",
12277 "optional" : 1,
12278 "type" : "string"
12279 },
d2656385
TL
12280 "plugintype" : {
12281 "description" : "More specific type, if available.",
12282 "optional" : 1,
12283 "type" : "string"
12284 },
4d47f125
TL
12285 "pool" : {
12286 "description" : "The pool name (when type in pool,qemu,lxc).",
12287 "optional" : 1,
12288 "type" : "string"
12289 },
12290 "status" : {
12291 "description" : "Resource type dependent status.",
12292 "optional" : 1,
12293 "type" : "string"
12294 },
12295 "storage" : {
12296 "description" : "The storage identifier (when type == storage).",
12297 "format" : "pve-storage-id",
907e4bc3 12298 "format_description" : "storage ID",
4d47f125
TL
12299 "optional" : 1,
12300 "type" : "string"
12301 },
12302 "type" : {
12303 "description" : "Resource type.",
12304 "enum" : [
12305 "node",
12306 "storage",
12307 "pool",
12308 "qemu",
12309 "lxc",
1c532546
TL
12310 "openvz",
12311 "sdn"
4d47f125
TL
12312 ],
12313 "type" : "string"
12314 },
12315 "uptime" : {
12316 "description" : "Node uptime in seconds (when type in node,qemu,lxc).",
12317 "optional" : 1,
12318 "renderer" : "duration",
12319 "type" : "integer"
4e7f60c2
TL
12320 },
12321 "vmid" : {
12322 "description" : "The numerical vmid (when type in qemu,lxc).",
82551b2b
TL
12323 "format" : "pve-vmid",
12324 "maximum" : 999999999,
12325 "minimum" : 100,
4e7f60c2
TL
12326 "optional" : 1,
12327 "type" : "integer"
4d47f125
TL
12328 }
12329 },
44660702
DM
12330 "type" : "object"
12331 },
12332 "type" : "array"
12333 }
56122987
DM
12334 }
12335 },
7aacca6f 12336 "leaf" : 1,
44660702
DM
12337 "path" : "/cluster/resources",
12338 "text" : "resources"
56122987
DM
12339 },
12340 {
56122987
DM
12341 "info" : {
12342 "GET" : {
e9cd3bd4 12343 "allowtoken" : 1,
7aacca6f 12344 "description" : "List recent tasks (cluster wide).",
44660702 12345 "method" : "GET",
7aacca6f 12346 "name" : "tasks",
56122987
DM
12347 "parameters" : {
12348 "additionalProperties" : 0
12349 },
44660702
DM
12350 "permissions" : {
12351 "user" : "all"
12352 },
56122987
DM
12353 "returns" : {
12354 "items" : {
12355 "properties" : {
12356 "upid" : {
12357 "type" : "string"
12358 }
44660702
DM
12359 },
12360 "type" : "object"
12361 },
12362 "type" : "array"
7aacca6f 12363 }
56122987
DM
12364 }
12365 },
7aacca6f 12366 "leaf" : 1,
44660702
DM
12367 "path" : "/cluster/tasks",
12368 "text" : "tasks"
56122987
DM
12369 },
12370 {
56122987 12371 "info" : {
7aacca6f 12372 "GET" : {
e9cd3bd4 12373 "allowtoken" : 1,
81a3384d 12374 "description" : "Get datacenter options. Without 'Sys.Audit' on '/' not all options are returned.",
44660702
DM
12375 "method" : "GET",
12376 "name" : "get_options",
56122987 12377 "parameters" : {
7aacca6f
DM
12378 "additionalProperties" : 0
12379 },
12380 "permissions" : {
12381 "check" : [
12382 "perm",
12383 "/",
12384 [
12385 "Sys.Audit"
12386 ]
81a3384d
TL
12387 ],
12388 "user" : "all"
7aacca6f 12389 },
7aacca6f 12390 "returns" : {
44660702 12391 "type" : "object"
7aacca6f
DM
12392 }
12393 },
12394 "PUT" : {
e9cd3bd4 12395 "allowtoken" : 1,
44660702
DM
12396 "description" : "Set datacenter options.",
12397 "method" : "PUT",
7aacca6f
DM
12398 "name" : "set_options",
12399 "parameters" : {
12400 "additionalProperties" : 0,
12401 "properties" : {
27a7acb2 12402 "bwlimit" : {
4a407cfd 12403 "description" : "Set I/O bandwidth limit for various operations (in KiB/s).",
27a7acb2
DM
12404 "format" : {
12405 "clone" : {
95895385 12406 "description" : "bandwidth limit in KiB/s for cloning disks",
27a7acb2
DM
12407 "format_description" : "LIMIT",
12408 "minimum" : "0",
12409 "optional" : 1,
12410 "type" : "number"
12411 },
12412 "default" : {
95895385 12413 "description" : "default bandwidth limit in KiB/s",
27a7acb2
DM
12414 "format_description" : "LIMIT",
12415 "minimum" : "0",
12416 "optional" : 1,
12417 "type" : "number"
12418 },
12419 "migration" : {
95895385 12420 "description" : "bandwidth limit in KiB/s for migrating guests (including moving local disks)",
27a7acb2
DM
12421 "format_description" : "LIMIT",
12422 "minimum" : "0",
12423 "optional" : 1,
12424 "type" : "number"
12425 },
12426 "move" : {
95895385 12427 "description" : "bandwidth limit in KiB/s for moving disks",
27a7acb2
DM
12428 "format_description" : "LIMIT",
12429 "minimum" : "0",
12430 "optional" : 1,
12431 "type" : "number"
12432 },
12433 "restore" : {
95895385 12434 "description" : "bandwidth limit in KiB/s for restoring guests from backups",
27a7acb2
DM
12435 "format_description" : "LIMIT",
12436 "minimum" : "0",
12437 "optional" : 1,
12438 "type" : "number"
12439 }
12440 },
12441 "optional" : 1,
12442 "type" : "string",
12443 "typetext" : "[clone=<LIMIT>] [,default=<LIMIT>] [,migration=<LIMIT>] [,move=<LIMIT>] [,restore=<LIMIT>]"
12444 },
56122987 12445 "console" : {
a9a8e3d1 12446 "description" : "Select the default Console viewer. You can either use the builtin java applet (VNC; deprecated and maps to html5), an external virt-viewer comtatible application (SPICE), an HTML5 based vnc viewer (noVNC), or an HTML5 based console client (xtermjs). If the selected viewer is not available (e.g. SPICE not activated for the VM), the fallback is noVNC.",
56122987
DM
12447 "enum" : [
12448 "applet",
12449 "vv",
a9a8e3d1
DM
12450 "html5",
12451 "xtermjs"
44660702
DM
12452 ],
12453 "optional" : 1,
12454 "type" : "string"
56122987 12455 },
81a3384d
TL
12456 "crs" : {
12457 "description" : "Cluster resource scheduling settings.",
12458 "format" : {
12459 "ha" : {
12460 "default" : "basic",
12461 "description" : "Use this resource scheduler mode for HA.",
12462 "enum" : [
12463 "basic",
12464 "static"
12465 ],
9d2e98ed 12466 "optional" : 1,
81a3384d
TL
12467 "type" : "string",
12468 "verbose_description" : "Configures how the HA manager should select nodes to start or recover services. With 'basic', only the number of services is used, with 'static', static CPU and memory configuration of services is considered."
9d2e98ed
TL
12469 },
12470 "ha-rebalance-on-start" : {
12471 "default" : 0,
12472 "description" : "Set to use CRS for selecting a suited node when a HA services request-state changes from stop to start.",
12473 "optional" : 1,
12474 "type" : "boolean"
81a3384d
TL
12475 }
12476 },
12477 "optional" : 1,
12478 "type" : "string",
9d2e98ed 12479 "typetext" : "[ha=<basic|static>] [,ha-rebalance-on-start=<1|0>]"
81a3384d 12480 },
7aacca6f 12481 "delete" : {
7aacca6f 12482 "description" : "A list of settings you want to delete.",
44660702 12483 "format" : "pve-configid-list",
7aacca6f 12484 "optional" : 1,
013dc89f
DM
12485 "type" : "string",
12486 "typetext" : "<string>"
7aacca6f 12487 },
5370fa8c
TL
12488 "description" : {
12489 "description" : "Datacenter description. Shown in the web-interface datacenter notes panel. This is saved as comment inside the configuration file.",
12490 "maxLength" : 65536,
12491 "optional" : 1,
12492 "type" : "string",
12493 "typetext" : "<string>"
12494 },
44660702
DM
12495 "email_from" : {
12496 "description" : "Specify email address to send notification from (default is root@$hostname)",
12497 "format" : "email-opt",
7aacca6f 12498 "optional" : 1,
013dc89f
DM
12499 "type" : "string",
12500 "typetext" : "<string>"
44660702
DM
12501 },
12502 "fencing" : {
12503 "default" : "watchdog",
12504 "description" : "Set the fencing mode of the HA cluster. Hardware mode needs a valid configuration of fence devices in /etc/pve/ha/fence.cfg. With both all two modes are used.\n\nWARNING: 'hardware' and 'both' are EXPERIMENTAL & WIP",
7aacca6f 12505 "enum" : [
44660702
DM
12506 "watchdog",
12507 "hardware",
12508 "both"
7aacca6f 12509 ],
44660702
DM
12510 "optional" : 1,
12511 "type" : "string"
12512 },
5f26e15b
TL
12513 "ha" : {
12514 "description" : "Cluster wide HA settings.",
12515 "format" : {
12516 "shutdown_policy" : {
12517 "default" : "conditional",
5c1699e5 12518 "description" : "The policy for HA services on node shutdown. 'freeze' disables auto-recovery, 'failover' ensures recovery, 'conditional' recovers on poweroff and freezes on reboot. 'migrate' will migrate running services to other nodes, if possible. With 'freeze' or 'failover', HA Services will always get stopped first on shutdown.",
5f26e15b
TL
12519 "enum" : [
12520 "freeze",
12521 "failover",
5c1699e5
TL
12522 "conditional",
12523 "migrate"
5f26e15b
TL
12524 ],
12525 "type" : "string",
e9cd3bd4 12526 "verbose_description" : "Describes the policy for handling HA services on poweroff or reboot of a node. Freeze will always freeze services which are still located on the node on shutdown, those services won't be recovered by the HA manager. Failover will not mark the services as frozen and thus the services will get recovered to other nodes, if the shutdown node does not come up again quickly (< 1min). 'conditional' chooses automatically depending on the type of shutdown, i.e., on a reboot the service will be frozen but on a poweroff the service will stay as is, and thus get recovered after about 2 minutes. Migrate will try to move all running services to another node when a reboot or shutdown was triggered. The poweroff process will only continue once no running services are located on the node anymore. If the node comes up again, the service will be moved back to the previously powered-off node, at least if no other migration, reloaction or recovery took place."
5f26e15b
TL
12527 }
12528 },
12529 "optional" : 1,
12530 "type" : "string",
5c1699e5 12531 "typetext" : "shutdown_policy=<enum>"
5f26e15b 12532 },
44660702
DM
12533 "http_proxy" : {
12534 "description" : "Specify external http proxy which is used for downloads (example: 'http://username:password@host:port/')",
12535 "optional" : 1,
12536 "pattern" : "http://.*",
12537 "type" : "string"
7aacca6f 12538 },
56122987 12539 "keyboard" : {
44660702 12540 "description" : "Default keybord layout for vnc server.",
56122987 12541 "enum" : [
44660702
DM
12542 "de",
12543 "de-ch",
7aacca6f 12544 "da",
56122987 12545 "en-gb",
44660702
DM
12546 "en-us",
12547 "es",
12548 "fi",
12549 "fr",
12550 "fr-be",
12551 "fr-ca",
12552 "fr-ch",
12553 "hu",
7aacca6f 12554 "is",
44660702
DM
12555 "it",
12556 "ja",
12557 "lt",
56122987 12558 "mk",
7aacca6f 12559 "nl",
56122987 12560 "no",
44660702 12561 "pl",
7aacca6f 12562 "pt",
44660702
DM
12563 "pt-br",
12564 "sv",
12565 "sl",
12566 "tr"
56122987 12567 ],
56122987
DM
12568 "optional" : 1,
12569 "type" : "string"
12570 },
44660702
DM
12571 "language" : {
12572 "description" : "Default GUI language.",
12573 "enum" : [
fa22697b 12574 "ar",
4d47f125 12575 "ca",
1c532546
TL
12576 "da",
12577 "de",
44660702 12578 "en",
1c532546 12579 "es",
4d47f125 12580 "eu",
1c532546 12581 "fa",
4d47f125 12582 "fr",
fa22697b 12583 "hr",
1c532546 12584 "he",
4d47f125 12585 "it",
4d47f125 12586 "ja",
fa22697b
TL
12587 "ka",
12588 "kr",
4d47f125 12589 "nb",
fa22697b 12590 "nl",
4d47f125 12591 "nn",
4d47f125
TL
12592 "pl",
12593 "pt_BR",
12594 "ru",
12595 "sl",
12596 "sv",
1c532546 12597 "tr",
fa22697b 12598 "ukr",
1c532546
TL
12599 "zh_CN",
12600 "zh_TW"
44660702 12601 ],
56122987 12602 "optional" : 1,
44660702 12603 "type" : "string"
56122987 12604 },
4bd7df8b 12605 "mac_prefix" : {
fa22697b
TL
12606 "default" : "BC:24:11",
12607 "description" : "Prefix for the auto-generated MAC addresses of virtual guests. The default 'BC:24:11' is the OUI assigned by the IEEE to Proxmox Server Solutions GmbH for a 24-bit large MAC block. You're allowed to use this in local networks, i.e., those not directly reachable by the public (e.g., in a LAN or behind NAT).",
95895385 12608 "format" : "mac-prefix",
4bd7df8b 12609 "optional" : 1,
95895385 12610 "type" : "string",
fa22697b
TL
12611 "typetext" : "<string>",
12612 "verbose_description" : "Prefix for the auto-generated MAC addresses of virtual guests. The default `BC:24:11` is the Organizationally Unique Identifier (OUI) assigned by the IEEE to Proxmox Server Solutions GmbH for a MAC Address Block Large (MA-L). You're allowed to use this in local networks, i.e., those not directly reachable by the public (e.g., in a LAN or NAT/Masquerading).\n \nNote that when you run multiple cluster that (partially) share the networks of their virtual guests, it's highly recommended that you extend the default MAC prefix, or generate a custom (valid) one, to reduce the chance of MAC collisions. For example, add a separate extra hexadecimal to the Proxmox OUI for each cluster, like `BC:24:11:0` for the first, `BC:24:11:1` for the second, and so on.\n Alternatively, you can also separate the networks of the guests logically, e.g., by using VLANs.\n\nFor publicly accessible guests it's recommended that you get your own https://standards.ieee.org/products-programs/regauth/[OUI from the IEEE] registered or coordinate with your, or your hosting providers, network admins."
4bd7df8b 12613 },
44660702
DM
12614 "max_workers" : {
12615 "description" : "Defines how many workers (per node) are maximal started on actions like 'stopall VMs' or task from the ha-manager.",
12616 "minimum" : 1,
56122987 12617 "optional" : 1,
4bd7df8b 12618 "type" : "integer",
013dc89f 12619 "typetext" : "<integer> (1 - N)"
56122987 12620 },
de0983cb
DM
12621 "migration" : {
12622 "description" : "For cluster wide migration settings.",
12623 "format" : {
12624 "network" : {
12625 "description" : "CIDR of the (sub) network that is used for migration.",
12626 "format" : "CIDR",
12627 "format_description" : "CIDR",
12628 "optional" : 1,
12629 "type" : "string"
12630 },
12631 "type" : {
12632 "default" : "secure",
12633 "default_key" : 1,
12634 "description" : "Migration traffic is encrypted using an SSH tunnel by default. On secure, completely private networks this can be disabled to increase performance.",
12635 "enum" : [
12636 "secure",
12637 "insecure"
12638 ],
12639 "type" : "string"
12640 }
12641 },
12642 "optional" : 1,
12643 "type" : "string",
12644 "typetext" : "[type=]<secure|insecure> [,network=<CIDR>]"
12645 },
7aacca6f 12646 "migration_unsecure" : {
de0983cb 12647 "description" : "Migration is secure using SSH tunnel by default. For secure private networks you can disable it to speed up migration. Deprecated, use the 'migration' property instead!",
56122987 12648 "optional" : 1,
013dc89f
DM
12649 "type" : "boolean",
12650 "typetext" : "<boolean>"
95895385 12651 },
7af2edf9
TL
12652 "next-id" : {
12653 "description" : "Control the range for the free VMID auto-selection pool.",
12654 "format" : {
12655 "lower" : {
12656 "default" : 100,
12657 "description" : "Lower, inclusive boundary for free next-id API range.",
12658 "max" : 999999999,
12659 "min" : 100,
12660 "optional" : 1,
12661 "type" : "integer"
12662 },
12663 "upper" : {
12664 "default" : 1000000,
460359c5 12665 "description" : "Upper, exclusive boundary for free next-id API range.",
de786b48 12666 "max" : 1000000000,
7af2edf9
TL
12667 "min" : 100,
12668 "optional" : 1,
12669 "type" : "integer"
12670 }
12671 },
12672 "optional" : 1,
12673 "type" : "string",
12674 "typetext" : "[lower=<integer>] [,upper=<integer>]"
12675 },
9d2e98ed
TL
12676 "notify" : {
12677 "description" : "Cluster-wide notification settings.",
12678 "format" : {
82551b2b 12679 "fencing" : {
907e4bc3 12680 "description" : "UNUSED - Use datacenter notification settings instead.",
82551b2b
TL
12681 "enum" : [
12682 "always",
12683 "never"
12684 ],
12685 "optional" : 1,
907e4bc3 12686 "type" : "string"
82551b2b 12687 },
9d2e98ed
TL
12688 "package-updates" : {
12689 "default" : "auto",
907e4bc3 12690 "description" : "DEPRECATED: Use datacenter notification settings instead. Control when the daily update job should send out notifications.",
9d2e98ed
TL
12691 "enum" : [
12692 "auto",
12693 "always",
12694 "never"
12695 ],
82551b2b
TL
12696 "optional" : 1,
12697 "type" : "string",
907e4bc3 12698 "verbose_description" : "DEPRECATED: Use datacenter notification settings instead.\nControl how often the daily update job should send out notifications:\n* 'auto' daily for systems with a valid subscription, as those are assumed to be production-ready and thus should know about pending updates.\n* 'always' every update, if there are new pending updates.\n* 'never' never send a notification for new pending updates.\n"
82551b2b
TL
12699 },
12700 "replication" : {
907e4bc3 12701 "description" : "UNUSED - Use datacenter notification settings instead.",
82551b2b
TL
12702 "enum" : [
12703 "always",
12704 "never"
12705 ],
12706 "optional" : 1,
907e4bc3 12707 "type" : "string"
82551b2b
TL
12708 },
12709 "target-fencing" : {
907e4bc3 12710 "description" : "UNUSED - Use datacenter notification settings instead.",
82551b2b
TL
12711 "format_description" : "TARGET",
12712 "optional" : 1,
907e4bc3 12713 "type" : "string"
82551b2b
TL
12714 },
12715 "target-package-updates" : {
907e4bc3 12716 "description" : "UNUSED - Use datacenter notification settings instead.",
82551b2b
TL
12717 "format_description" : "TARGET",
12718 "optional" : 1,
907e4bc3 12719 "type" : "string"
82551b2b
TL
12720 },
12721 "target-replication" : {
907e4bc3 12722 "description" : "UNUSED - Use datacenter notification settings instead.",
82551b2b
TL
12723 "format_description" : "TARGET",
12724 "optional" : 1,
907e4bc3 12725 "type" : "string"
9d2e98ed
TL
12726 }
12727 },
12728 "optional" : 1,
12729 "type" : "string",
82551b2b 12730 "typetext" : "[fencing=<always|never>] [,package-updates=<auto|always|never>] [,replication=<always|never>] [,target-fencing=<TARGET>] [,target-package-updates=<TARGET>] [,target-replication=<TARGET>]"
9d2e98ed 12731 },
81a3384d
TL
12732 "registered-tags" : {
12733 "description" : "A list of tags that require a `Sys.Modify` on '/' to set and delete. Tags set here that are also in 'user-tag-access' also require `Sys.Modify`.",
12734 "optional" : 1,
12735 "pattern" : "(?:(?^i:[a-z0-9_][a-z0-9_\\-\\+\\.]*);)*(?^i:[a-z0-9_][a-z0-9_\\-\\+\\.]*)",
12736 "type" : "string",
12737 "typetext" : "<tag>[;<tag>...]"
12738 },
12739 "tag-style" : {
12740 "description" : "Tag style options.",
12741 "format" : {
e7e885f9
TL
12742 "case-sensitive" : {
12743 "default" : 0,
12744 "description" : "Controls if filtering for unique tags on update should check case-sensitive.",
12745 "optional" : 1,
12746 "type" : "boolean"
12747 },
81a3384d
TL
12748 "color-map" : {
12749 "description" : "Manual color mapping for tags (semicolon separated).",
12750 "optional" : 1,
12751 "pattern" : "(?:(?^i:[a-z0-9_][a-z0-9_\\-\\+\\.]*):[0-9a-fA-F]{6}(?::[0-9a-fA-F]{6})?)(?:;(?:(?^i:[a-z0-9_][a-z0-9_\\-\\+\\.]*):[0-9a-fA-F]{6}(?::[0-9a-fA-F]{6})?))*",
12752 "type" : "string",
12753 "typetext" : "<tag>:<hex-color>[:<hex-color-for-text>][;<tag>=...]"
12754 },
12755 "ordering" : {
12756 "default" : "alphabetical",
e7e885f9 12757 "description" : "Controls the sorting of the tags in the web-interface and the API update.",
81a3384d
TL
12758 "enum" : [
12759 "config",
12760 "alphabetical"
12761 ],
12762 "optional" : 1,
12763 "type" : "string"
12764 },
12765 "shape" : {
12766 "default" : "circle",
12767 "description" : "Tag shape for the web ui tree. 'full' draws the full tag. 'circle' draws only a circle with the background color. 'dense' only draws a small rectancle (useful when many tags are assigned to each guest).'none' disables showing the tags.",
12768 "enum" : [
12769 "full",
12770 "circle",
12771 "dense",
12772 "none"
12773 ],
12774 "optional" : 1,
12775 "type" : "string"
12776 }
12777 },
12778 "optional" : 1,
12779 "type" : "string",
e7e885f9 12780 "typetext" : "[case-sensitive=<1|0>] [,color-map=<tag>:<hex-color>[:<hex-color-for-text>][;<tag>=...]] [,ordering=<config|alphabetical>] [,shape=<enum>]"
81a3384d 12781 },
95895385
TL
12782 "u2f" : {
12783 "description" : "u2f",
12784 "format" : {
12785 "appid" : {
12786 "description" : "U2F AppId URL override. Defaults to the origin.",
12787 "format_description" : "APPID",
12788 "optional" : 1,
12789 "type" : "string"
12790 },
12791 "origin" : {
12792 "description" : "U2F Origin override. Mostly useful for single nodes with a single URL.",
12793 "format_description" : "URL",
12794 "optional" : 1,
12795 "type" : "string"
12796 }
12797 },
12798 "optional" : 1,
12799 "type" : "string",
12800 "typetext" : "[appid=<APPID>] [,origin=<URL>]"
5370fa8c 12801 },
81a3384d
TL
12802 "user-tag-access" : {
12803 "description" : "Privilege options for user-settable tags",
12804 "format" : {
12805 "user-allow" : {
12806 "default" : "free",
12807 "description" : "Controls tag usage for users without `Sys.Modify` on `/` by either allowing `none`, a `list`, already `existing` or anything (`free`).",
12808 "enum" : [
12809 "none",
12810 "list",
12811 "existing",
12812 "free"
12813 ],
12814 "optional" : 1,
12815 "type" : "string",
fa22697b 12816 "verbose_description" : "Controls which tags can be set or deleted on resources a user controls (such as guests). Users with the `Sys.Modify` privilege on `/` are alwaysunrestricted.\n* 'none' no tags are usable.\n* 'list' tags from 'user-allow-list' are usable.\n* 'existing' like list, but already existing tags of resources are also usable.\n* 'free' no tag restrictions.\n"
81a3384d
TL
12817 },
12818 "user-allow-list" : {
12819 "description" : "List of tags users are allowed to set and delete (semicolon separated) for 'user-allow' values 'list' and 'existing'.",
12820 "optional" : 1,
12821 "pattern" : "(?^i:[a-z0-9_][a-z0-9_\\-\\+\\.]*)(?:;(?^i:[a-z0-9_][a-z0-9_\\-\\+\\.]*))*",
12822 "type" : "string",
12823 "typetext" : "<tag>[;<tag>...]"
12824 }
12825 },
12826 "optional" : 1,
12827 "type" : "string",
12828 "typetext" : "[user-allow=<enum>] [,user-allow-list=<tag>[;<tag>...]]"
12829 },
5370fa8c
TL
12830 "webauthn" : {
12831 "description" : "webauthn configuration",
12832 "format" : {
81a3384d
TL
12833 "allow-subdomains" : {
12834 "default" : 1,
12835 "description" : "Whether to allow the origin to be a subdomain, rather than the exact URL.",
12836 "optional" : 1,
12837 "type" : "boolean"
12838 },
5370fa8c 12839 "id" : {
81a3384d 12840 "description" : "Relying party ID. Must be the domain name without protocol, port or location. Changing this *will* break existing credentials.",
5370fa8c
TL
12841 "format_description" : "DOMAINNAME",
12842 "optional" : 1,
12843 "type" : "string"
12844 },
12845 "origin" : {
12846 "description" : "Site origin. Must be a `https://` URL (or `http://localhost`). Should contain the address users type in their browsers to access the web interface. Changing this *may* break existing credentials.",
12847 "format_description" : "URL",
12848 "optional" : 1,
12849 "type" : "string"
12850 },
12851 "rp" : {
12852 "description" : "Relying party name. Any text identifier. Changing this *may* break existing credentials.",
12853 "format_description" : "RELYING_PARTY",
12854 "optional" : 1,
12855 "type" : "string"
12856 }
12857 },
12858 "optional" : 1,
12859 "type" : "string",
81a3384d 12860 "typetext" : "[allow-subdomains=<1|0>] [,id=<DOMAINNAME>] [,origin=<URL>] [,rp=<RELYING_PARTY>]"
56122987
DM
12861 }
12862 }
12863 },
44660702
DM
12864 "permissions" : {
12865 "check" : [
12866 "perm",
12867 "/",
12868 [
12869 "Sys.Modify"
12870 ]
12871 ]
12872 },
56122987 12873 "protected" : 1,
7aacca6f
DM
12874 "returns" : {
12875 "type" : "null"
44660702 12876 }
7aacca6f
DM
12877 }
12878 },
44660702
DM
12879 "leaf" : 1,
12880 "path" : "/cluster/options",
7aacca6f
DM
12881 "text" : "options"
12882 },
12883 {
7aacca6f 12884 "info" : {
56122987 12885 "GET" : {
e9cd3bd4 12886 "allowtoken" : 1,
1e3f8156 12887 "description" : "Get cluster status information.",
44660702
DM
12888 "method" : "GET",
12889 "name" : "get_status",
56122987
DM
12890 "parameters" : {
12891 "additionalProperties" : 0
12892 },
56122987
DM
12893 "permissions" : {
12894 "check" : [
12895 "perm",
12896 "/",
12897 [
12898 "Sys.Audit"
12899 ]
12900 ]
12901 },
7aacca6f 12902 "protected" : 1,
56122987 12903 "returns" : {
56122987 12904 "items" : {
56122987 12905 "properties" : {
e9cd3bd4
TL
12906 "id" : {
12907 "type" : "string"
12908 },
12909 "ip" : {
12910 "description" : "[node] IP of the resolved nodename.",
12911 "optional" : 1,
12912 "type" : "string"
12913 },
12914 "level" : {
12915 "description" : "[node] Proxmox VE Subscription level, indicates if eligible for enterprise support as well as access to the stable Proxmox VE Enterprise Repository.",
12916 "optional" : 1,
12917 "type" : "string"
12918 },
12919 "local" : {
12920 "description" : "[node] Indicates if this is the responding node.",
12921 "optional" : 1,
12922 "type" : "boolean"
12923 },
12924 "name" : {
12925 "type" : "string"
12926 },
12927 "nodeid" : {
12928 "description" : "[node] ID of the node from the corosync configuration.",
12929 "optional" : 1,
12930 "type" : "integer"
12931 },
12932 "nodes" : {
12933 "description" : "[cluster] Nodes count, including offline nodes.",
12934 "optional" : 1,
12935 "type" : "integer"
12936 },
12937 "online" : {
12938 "description" : "[node] Indicates if the node is online or offline.",
12939 "optional" : 1,
12940 "type" : "boolean"
12941 },
12942 "quorate" : {
12943 "description" : "[cluster] Indicates if there is a majority of nodes online to make decisions",
12944 "optional" : 1,
12945 "type" : "boolean"
12946 },
56122987 12947 "type" : {
e9cd3bd4
TL
12948 "description" : "Indicates the type, either cluster or node. The type defines the object properties e.g. quorate available for type cluster.",
12949 "enum" : [
12950 "cluster",
12951 "node"
12952 ],
56122987 12953 "type" : "string"
e9cd3bd4
TL
12954 },
12955 "version" : {
12956 "description" : "[cluster] Current version of the corosync configuration file.",
12957 "optional" : 1,
12958 "type" : "integer"
56122987 12959 }
44660702
DM
12960 },
12961 "type" : "object"
7aacca6f
DM
12962 },
12963 "type" : "array"
56122987
DM
12964 }
12965 }
12966 },
44660702 12967 "leaf" : 1,
7aacca6f 12968 "path" : "/cluster/status",
44660702 12969 "text" : "status"
56122987
DM
12970 },
12971 {
56122987
DM
12972 "info" : {
12973 "GET" : {
e9cd3bd4 12974 "allowtoken" : 1,
c30bb419 12975 "description" : "Get next free VMID. Pass a VMID to assert that its free (at time of check).",
44660702
DM
12976 "method" : "GET",
12977 "name" : "nextid",
56122987 12978 "parameters" : {
44660702 12979 "additionalProperties" : 0,
56122987
DM
12980 "properties" : {
12981 "vmid" : {
44660702 12982 "description" : "The (unique) ID of the VM.",
56122987 12983 "format" : "pve-vmid",
8dd66e12
TL
12984 "maximum" : 999999999,
12985 "minimum" : 100,
7aacca6f 12986 "optional" : 1,
4bd7df8b 12987 "type" : "integer",
8dd66e12 12988 "typetext" : "<integer> (100 - 999999999)"
56122987 12989 }
44660702 12990 }
56122987 12991 },
7aacca6f
DM
12992 "permissions" : {
12993 "user" : "all"
44660702
DM
12994 },
12995 "returns" : {
12996 "description" : "The next free VMID.",
12997 "type" : "integer"
7aacca6f 12998 }
56122987
DM
12999 }
13000 },
7aacca6f 13001 "leaf" : 1,
44660702
DM
13002 "path" : "/cluster/nextid",
13003 "text" : "nextid"
56122987
DM
13004 }
13005 ],
44660702
DM
13006 "info" : {
13007 "GET" : {
e9cd3bd4 13008 "allowtoken" : 1,
44660702
DM
13009 "description" : "Cluster index.",
13010 "method" : "GET",
13011 "name" : "index",
13012 "parameters" : {
13013 "additionalProperties" : 0
13014 },
13015 "permissions" : {
13016 "user" : "all"
13017 },
13018 "returns" : {
13019 "items" : {
13020 "properties" : {},
13021 "type" : "object"
13022 },
13023 "links" : [
13024 {
13025 "href" : "{name}",
13026 "rel" : "child"
13027 }
13028 ],
13029 "type" : "array"
13030 }
13031 }
13032 },
13033 "leaf" : 0,
13034 "path" : "/cluster",
7aacca6f 13035 "text" : "cluster"
56122987
DM
13036 },
13037 {
56122987
DM
13038 "children" : [
13039 {
7aacca6f
DM
13040 "children" : [
13041 {
13042 "children" : [
13043 {
56122987
DM
13044 "children" : [
13045 {
56122987
DM
13046 "children" : [
13047 {
13048 "children" : [
13049 {
56122987
DM
13050 "info" : {
13051 "DELETE" : {
e9cd3bd4 13052 "allowtoken" : 1,
44660702 13053 "description" : "Delete rule.",
7aacca6f 13054 "method" : "DELETE",
44660702 13055 "name" : "delete_rule",
56122987 13056 "parameters" : {
44660702 13057 "additionalProperties" : 0,
56122987 13058 "properties" : {
44660702 13059 "digest" : {
82551b2b
TL
13060 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
13061 "maxLength" : 64,
44660702 13062 "optional" : 1,
013dc89f
DM
13063 "type" : "string",
13064 "typetext" : "<string>"
44660702 13065 },
56122987 13066 "node" : {
7aacca6f 13067 "description" : "The cluster node name.",
44660702 13068 "format" : "pve-node",
013dc89f
DM
13069 "type" : "string",
13070 "typetext" : "<string>"
7aacca6f 13071 },
56122987 13072 "pos" : {
7aacca6f 13073 "description" : "Update rule at position <pos>.",
44660702 13074 "minimum" : 0,
56122987 13075 "optional" : 1,
4bd7df8b 13076 "type" : "integer",
013dc89f 13077 "typetext" : "<integer> (0 - N)"
44660702
DM
13078 },
13079 "vmid" : {
13080 "description" : "The (unique) ID of the VM.",
13081 "format" : "pve-vmid",
8dd66e12
TL
13082 "maximum" : 999999999,
13083 "minimum" : 100,
4bd7df8b 13084 "type" : "integer",
8dd66e12 13085 "typetext" : "<integer> (100 - 999999999)"
56122987 13086 }
44660702 13087 }
7aacca6f 13088 },
56122987
DM
13089 "permissions" : {
13090 "check" : [
13091 "perm",
13092 "/vms/{vmid}",
13093 [
13094 "VM.Config.Network"
13095 ]
13096 ]
13097 },
44660702
DM
13098 "protected" : 1,
13099 "proxyto" : null,
56122987
DM
13100 "returns" : {
13101 "type" : "null"
44660702
DM
13102 }
13103 },
13104 "GET" : {
e9cd3bd4 13105 "allowtoken" : 1,
44660702
DM
13106 "description" : "Get single rule data.",
13107 "method" : "GET",
13108 "name" : "get_rule",
13109 "parameters" : {
13110 "additionalProperties" : 0,
13111 "properties" : {
13112 "node" : {
13113 "description" : "The cluster node name.",
13114 "format" : "pve-node",
013dc89f
DM
13115 "type" : "string",
13116 "typetext" : "<string>"
44660702
DM
13117 },
13118 "pos" : {
13119 "description" : "Update rule at position <pos>.",
13120 "minimum" : 0,
13121 "optional" : 1,
4bd7df8b 13122 "type" : "integer",
013dc89f 13123 "typetext" : "<integer> (0 - N)"
44660702
DM
13124 },
13125 "vmid" : {
13126 "description" : "The (unique) ID of the VM.",
13127 "format" : "pve-vmid",
8dd66e12
TL
13128 "maximum" : 999999999,
13129 "minimum" : 100,
4bd7df8b 13130 "type" : "integer",
8dd66e12 13131 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
13132 }
13133 }
56122987 13134 },
56122987
DM
13135 "permissions" : {
13136 "check" : [
13137 "perm",
13138 "/vms/{vmid}",
13139 [
44660702 13140 "VM.Audit"
56122987
DM
13141 ]
13142 ]
13143 },
56122987 13144 "proxyto" : null,
44660702
DM
13145 "returns" : {
13146 "properties" : {
e2d681b3
TL
13147 "action" : {
13148 "type" : "string"
13149 },
13150 "comment" : {
13151 "optional" : 1,
13152 "type" : "string"
13153 },
13154 "dest" : {
13155 "optional" : 1,
13156 "type" : "string"
13157 },
13158 "dport" : {
13159 "optional" : 1,
13160 "type" : "string"
13161 },
13162 "enable" : {
13163 "optional" : 1,
13164 "type" : "integer"
13165 },
4772952b
TL
13166 "icmp-type" : {
13167 "optional" : 1,
13168 "type" : "string"
13169 },
e2d681b3
TL
13170 "iface" : {
13171 "optional" : 1,
13172 "type" : "string"
13173 },
13174 "ipversion" : {
13175 "optional" : 1,
13176 "type" : "integer"
13177 },
95895385
TL
13178 "log" : {
13179 "description" : "Log level for firewall rule",
13180 "enum" : [
13181 "emerg",
13182 "alert",
13183 "crit",
13184 "err",
13185 "warning",
13186 "notice",
13187 "info",
13188 "debug",
13189 "nolog"
13190 ],
13191 "optional" : 1,
13192 "type" : "string"
13193 },
e2d681b3
TL
13194 "macro" : {
13195 "optional" : 1,
5f26e15b 13196 "type" : "string"
e2d681b3 13197 },
44660702
DM
13198 "pos" : {
13199 "type" : "integer"
e2d681b3
TL
13200 },
13201 "proto" : {
13202 "optional" : 1,
13203 "type" : "string"
13204 },
13205 "source" : {
13206 "optional" : 1,
13207 "type" : "string"
13208 },
13209 "sport" : {
13210 "optional" : 1,
13211 "type" : "string"
13212 },
13213 "type" : {
13214 "type" : "string"
44660702
DM
13215 }
13216 },
13217 "type" : "object"
13218 }
13219 },
13220 "PUT" : {
e9cd3bd4 13221 "allowtoken" : 1,
7aacca6f
DM
13222 "description" : "Modify rule data.",
13223 "method" : "PUT",
44660702 13224 "name" : "update_rule",
56122987 13225 "parameters" : {
44660702 13226 "additionalProperties" : 0,
56122987 13227 "properties" : {
44660702
DM
13228 "action" : {
13229 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
13230 "maxLength" : 20,
13231 "minLength" : 2,
56122987 13232 "optional" : 1,
44660702 13233 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
7aacca6f
DM
13234 "type" : "string"
13235 },
7aacca6f 13236 "comment" : {
e94f0d56 13237 "description" : "Descriptive comment.",
7aacca6f 13238 "optional" : 1,
013dc89f
DM
13239 "type" : "string",
13240 "typetext" : "<string>"
7aacca6f
DM
13241 },
13242 "delete" : {
7aacca6f 13243 "description" : "A list of settings you want to delete.",
44660702
DM
13244 "format" : "pve-configid-list",
13245 "optional" : 1,
013dc89f
DM
13246 "type" : "string",
13247 "typetext" : "<string>"
7aacca6f
DM
13248 },
13249 "dest" : {
44660702 13250 "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
7aacca6f 13251 "format" : "pve-fw-addr-spec",
0695fdaf 13252 "maxLength" : 512,
56122987 13253 "optional" : 1,
013dc89f
DM
13254 "type" : "string",
13255 "typetext" : "<string>"
56122987 13256 },
7aacca6f 13257 "digest" : {
82551b2b
TL
13258 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
13259 "maxLength" : 64,
56122987 13260 "optional" : 1,
013dc89f
DM
13261 "type" : "string",
13262 "typetext" : "<string>"
44660702
DM
13263 },
13264 "dport" : {
13265 "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
13266 "format" : "pve-fw-dport-spec",
13267 "optional" : 1,
013dc89f
DM
13268 "type" : "string",
13269 "typetext" : "<string>"
56122987 13270 },
7aacca6f 13271 "enable" : {
e94f0d56 13272 "description" : "Flag to enable/disable a rule.",
44660702 13273 "minimum" : 0,
56122987 13274 "optional" : 1,
4bd7df8b 13275 "type" : "integer",
013dc89f 13276 "typetext" : "<integer> (0 - N)"
7aacca6f 13277 },
4772952b 13278 "icmp-type" : {
287a95cf 13279 "description" : "Specify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'.",
4772952b
TL
13280 "format" : "pve-fw-icmp-type-spec",
13281 "optional" : 1,
13282 "type" : "string",
13283 "typetext" : "<string>"
13284 },
44660702
DM
13285 "iface" : {
13286 "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
13287 "format" : "pve-iface",
13288 "maxLength" : 20,
7aacca6f 13289 "minLength" : 2,
56122987 13290 "optional" : 1,
013dc89f
DM
13291 "type" : "string",
13292 "typetext" : "<string>"
56122987 13293 },
95895385
TL
13294 "log" : {
13295 "description" : "Log level for firewall rule.",
13296 "enum" : [
13297 "emerg",
13298 "alert",
13299 "crit",
13300 "err",
13301 "warning",
13302 "notice",
13303 "info",
13304 "debug",
13305 "nolog"
13306 ],
13307 "optional" : 1,
13308 "type" : "string"
13309 },
44660702 13310 "macro" : {
e94f0d56 13311 "description" : "Use predefined standard macro.",
44660702 13312 "maxLength" : 128,
56122987 13313 "optional" : 1,
013dc89f
DM
13314 "type" : "string",
13315 "typetext" : "<string>"
56122987 13316 },
44660702
DM
13317 "moveto" : {
13318 "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
13319 "minimum" : 0,
56122987 13320 "optional" : 1,
4bd7df8b 13321 "type" : "integer",
013dc89f 13322 "typetext" : "<integer> (0 - N)"
56122987 13323 },
44660702
DM
13324 "node" : {
13325 "description" : "The cluster node name.",
13326 "format" : "pve-node",
013dc89f
DM
13327 "type" : "string",
13328 "typetext" : "<string>"
44660702
DM
13329 },
13330 "pos" : {
13331 "description" : "Update rule at position <pos>.",
13332 "minimum" : 0,
13333 "optional" : 1,
4bd7df8b 13334 "type" : "integer",
013dc89f 13335 "typetext" : "<integer> (0 - N)"
56122987 13336 },
44660702
DM
13337 "proto" : {
13338 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
13339 "format" : "pve-fw-protocol-spec",
13340 "optional" : 1,
013dc89f
DM
13341 "type" : "string",
13342 "typetext" : "<string>"
7aacca6f 13343 },
44660702
DM
13344 "source" : {
13345 "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
13346 "format" : "pve-fw-addr-spec",
0695fdaf 13347 "maxLength" : 512,
56122987 13348 "optional" : 1,
013dc89f
DM
13349 "type" : "string",
13350 "typetext" : "<string>"
56122987
DM
13351 },
13352 "sport" : {
13353 "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
44660702
DM
13354 "format" : "pve-fw-sport-spec",
13355 "optional" : 1,
013dc89f
DM
13356 "type" : "string",
13357 "typetext" : "<string>"
44660702
DM
13358 },
13359 "type" : {
e94f0d56 13360 "description" : "Rule type.",
44660702
DM
13361 "enum" : [
13362 "in",
13363 "out",
13364 "group"
13365 ],
56122987 13366 "optional" : 1,
56122987 13367 "type" : "string"
44660702
DM
13368 },
13369 "vmid" : {
13370 "description" : "The (unique) ID of the VM.",
13371 "format" : "pve-vmid",
8dd66e12
TL
13372 "maximum" : 999999999,
13373 "minimum" : 100,
4bd7df8b 13374 "type" : "integer",
8dd66e12 13375 "typetext" : "<integer> (100 - 999999999)"
56122987 13376 }
44660702 13377 }
56122987 13378 },
56122987
DM
13379 "permissions" : {
13380 "check" : [
13381 "perm",
13382 "/vms/{vmid}",
13383 [
44660702 13384 "VM.Config.Network"
56122987
DM
13385 ]
13386 ]
7aacca6f 13387 },
44660702 13388 "protected" : 1,
7aacca6f 13389 "proxyto" : null,
7aacca6f 13390 "returns" : {
44660702
DM
13391 "type" : "null"
13392 }
56122987 13393 }
7aacca6f 13394 },
44660702 13395 "leaf" : 1,
7aacca6f 13396 "path" : "/nodes/{node}/qemu/{vmid}/firewall/rules/{pos}",
44660702 13397 "text" : "{pos}"
56122987
DM
13398 }
13399 ],
56122987 13400 "info" : {
44660702 13401 "GET" : {
e9cd3bd4 13402 "allowtoken" : 1,
44660702
DM
13403 "description" : "List rules.",
13404 "method" : "GET",
13405 "name" : "get_rules",
13406 "parameters" : {
13407 "additionalProperties" : 0,
13408 "properties" : {
13409 "node" : {
13410 "description" : "The cluster node name.",
13411 "format" : "pve-node",
013dc89f
DM
13412 "type" : "string",
13413 "typetext" : "<string>"
44660702
DM
13414 },
13415 "vmid" : {
13416 "description" : "The (unique) ID of the VM.",
13417 "format" : "pve-vmid",
8dd66e12
TL
13418 "maximum" : 999999999,
13419 "minimum" : 100,
4bd7df8b 13420 "type" : "integer",
8dd66e12 13421 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
13422 }
13423 }
56122987 13424 },
56122987
DM
13425 "permissions" : {
13426 "check" : [
13427 "perm",
13428 "/vms/{vmid}",
13429 [
44660702 13430 "VM.Audit"
56122987
DM
13431 ]
13432 ]
7aacca6f 13433 },
44660702
DM
13434 "proxyto" : null,
13435 "returns" : {
13436 "items" : {
13437 "properties" : {
13438 "pos" : {
13439 "type" : "integer"
13440 }
13441 },
13442 "type" : "object"
13443 },
13444 "links" : [
13445 {
13446 "href" : "{pos}",
13447 "rel" : "child"
13448 }
13449 ],
13450 "type" : "array"
13451 }
13452 },
13453 "POST" : {
e9cd3bd4 13454 "allowtoken" : 1,
44660702 13455 "description" : "Create new rule.",
7aacca6f 13456 "method" : "POST",
44660702 13457 "name" : "create_rule",
56122987 13458 "parameters" : {
44660702 13459 "additionalProperties" : 0,
56122987 13460 "properties" : {
44660702
DM
13461 "action" : {
13462 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
13463 "maxLength" : 20,
13464 "minLength" : 2,
13465 "optional" : 0,
13466 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
13467 "type" : "string"
56122987 13468 },
44660702 13469 "comment" : {
e94f0d56 13470 "description" : "Descriptive comment.",
56122987 13471 "optional" : 1,
013dc89f
DM
13472 "type" : "string",
13473 "typetext" : "<string>"
56122987 13474 },
44660702
DM
13475 "dest" : {
13476 "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
13477 "format" : "pve-fw-addr-spec",
0695fdaf 13478 "maxLength" : 512,
44660702 13479 "optional" : 1,
013dc89f
DM
13480 "type" : "string",
13481 "typetext" : "<string>"
56122987 13482 },
44660702 13483 "digest" : {
82551b2b
TL
13484 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
13485 "maxLength" : 64,
56122987 13486 "optional" : 1,
013dc89f
DM
13487 "type" : "string",
13488 "typetext" : "<string>"
56122987 13489 },
7aacca6f
DM
13490 "dport" : {
13491 "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
44660702 13492 "format" : "pve-fw-dport-spec",
7aacca6f 13493 "optional" : 1,
013dc89f
DM
13494 "type" : "string",
13495 "typetext" : "<string>"
56122987
DM
13496 },
13497 "enable" : {
e94f0d56 13498 "description" : "Flag to enable/disable a rule.",
56122987 13499 "minimum" : 0,
44660702 13500 "optional" : 1,
4bd7df8b 13501 "type" : "integer",
013dc89f 13502 "typetext" : "<integer> (0 - N)"
56122987 13503 },
4772952b 13504 "icmp-type" : {
287a95cf 13505 "description" : "Specify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'.",
4772952b
TL
13506 "format" : "pve-fw-icmp-type-spec",
13507 "optional" : 1,
13508 "type" : "string",
13509 "typetext" : "<string>"
13510 },
44660702
DM
13511 "iface" : {
13512 "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
13513 "format" : "pve-iface",
13514 "maxLength" : 20,
7aacca6f 13515 "minLength" : 2,
44660702 13516 "optional" : 1,
013dc89f
DM
13517 "type" : "string",
13518 "typetext" : "<string>"
56122987 13519 },
95895385
TL
13520 "log" : {
13521 "description" : "Log level for firewall rule.",
13522 "enum" : [
13523 "emerg",
13524 "alert",
13525 "crit",
13526 "err",
13527 "warning",
13528 "notice",
13529 "info",
13530 "debug",
13531 "nolog"
13532 ],
13533 "optional" : 1,
13534 "type" : "string"
13535 },
44660702 13536 "macro" : {
e94f0d56 13537 "description" : "Use predefined standard macro.",
44660702 13538 "maxLength" : 128,
56122987 13539 "optional" : 1,
013dc89f
DM
13540 "type" : "string",
13541 "typetext" : "<string>"
7aacca6f 13542 },
44660702
DM
13543 "node" : {
13544 "description" : "The cluster node name.",
13545 "format" : "pve-node",
013dc89f
DM
13546 "type" : "string",
13547 "typetext" : "<string>"
44660702
DM
13548 },
13549 "pos" : {
13550 "description" : "Update rule at position <pos>.",
13551 "minimum" : 0,
13552 "optional" : 1,
4bd7df8b 13553 "type" : "integer",
013dc89f 13554 "typetext" : "<integer> (0 - N)"
44660702
DM
13555 },
13556 "proto" : {
13557 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
13558 "format" : "pve-fw-protocol-spec",
7aacca6f 13559 "optional" : 1,
013dc89f
DM
13560 "type" : "string",
13561 "typetext" : "<string>"
7aacca6f
DM
13562 },
13563 "source" : {
13564 "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
44660702 13565 "format" : "pve-fw-addr-spec",
0695fdaf 13566 "maxLength" : 512,
7aacca6f 13567 "optional" : 1,
013dc89f
DM
13568 "type" : "string",
13569 "typetext" : "<string>"
7aacca6f 13570 },
44660702
DM
13571 "sport" : {
13572 "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
13573 "format" : "pve-fw-sport-spec",
7aacca6f 13574 "optional" : 1,
013dc89f
DM
13575 "type" : "string",
13576 "typetext" : "<string>"
7aacca6f 13577 },
44660702 13578 "type" : {
e94f0d56 13579 "description" : "Rule type.",
44660702
DM
13580 "enum" : [
13581 "in",
13582 "out",
13583 "group"
13584 ],
13585 "optional" : 0,
13586 "type" : "string"
7aacca6f 13587 },
7aacca6f 13588 "vmid" : {
44660702 13589 "description" : "The (unique) ID of the VM.",
7aacca6f 13590 "format" : "pve-vmid",
8dd66e12
TL
13591 "maximum" : 999999999,
13592 "minimum" : 100,
4bd7df8b 13593 "type" : "integer",
8dd66e12 13594 "typetext" : "<integer> (100 - 999999999)"
7aacca6f
DM
13595 }
13596 }
13597 },
56122987
DM
13598 "permissions" : {
13599 "check" : [
13600 "perm",
13601 "/vms/{vmid}",
13602 [
44660702 13603 "VM.Config.Network"
56122987
DM
13604 ]
13605 ]
13606 },
44660702
DM
13607 "protected" : 1,
13608 "proxyto" : null,
56122987 13609 "returns" : {
44660702
DM
13610 "type" : "null"
13611 }
56122987
DM
13612 }
13613 },
44660702 13614 "leaf" : 0,
7aacca6f 13615 "path" : "/nodes/{node}/qemu/{vmid}/firewall/rules",
44660702 13616 "text" : "rules"
56122987
DM
13617 },
13618 {
13619 "children" : [
13620 {
56122987 13621 "info" : {
44660702 13622 "DELETE" : {
e9cd3bd4 13623 "allowtoken" : 1,
44660702
DM
13624 "description" : "Remove IP or Network alias.",
13625 "method" : "DELETE",
13626 "name" : "remove_alias",
56122987 13627 "parameters" : {
44660702 13628 "additionalProperties" : 0,
56122987 13629 "properties" : {
44660702 13630 "digest" : {
82551b2b
TL
13631 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
13632 "maxLength" : 64,
44660702 13633 "optional" : 1,
013dc89f
DM
13634 "type" : "string",
13635 "typetext" : "<string>"
56122987
DM
13636 },
13637 "name" : {
56122987 13638 "description" : "Alias name.",
44660702 13639 "maxLength" : 64,
7aacca6f 13640 "minLength" : 2,
44660702 13641 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
56122987
DM
13642 "type" : "string"
13643 },
7aacca6f 13644 "node" : {
44660702 13645 "description" : "The cluster node name.",
7aacca6f 13646 "format" : "pve-node",
013dc89f
DM
13647 "type" : "string",
13648 "typetext" : "<string>"
44660702
DM
13649 },
13650 "vmid" : {
13651 "description" : "The (unique) ID of the VM.",
13652 "format" : "pve-vmid",
8dd66e12
TL
13653 "maximum" : 999999999,
13654 "minimum" : 100,
4bd7df8b 13655 "type" : "integer",
8dd66e12 13656 "typetext" : "<integer> (100 - 999999999)"
56122987 13657 }
44660702 13658 }
56122987 13659 },
7aacca6f
DM
13660 "permissions" : {
13661 "check" : [
13662 "perm",
13663 "/vms/{vmid}",
13664 [
13665 "VM.Config.Network"
13666 ]
13667 ]
56122987 13668 },
44660702
DM
13669 "protected" : 1,
13670 "returns" : {
13671 "type" : "null"
13672 }
13673 },
13674 "GET" : {
e9cd3bd4 13675 "allowtoken" : 1,
44660702
DM
13676 "description" : "Read alias.",
13677 "method" : "GET",
13678 "name" : "read_alias",
56122987 13679 "parameters" : {
44660702 13680 "additionalProperties" : 0,
56122987 13681 "properties" : {
56122987 13682 "name" : {
7aacca6f 13683 "description" : "Alias name.",
44660702 13684 "maxLength" : 64,
56122987 13685 "minLength" : 2,
44660702 13686 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
56122987 13687 "type" : "string"
7aacca6f
DM
13688 },
13689 "node" : {
13690 "description" : "The cluster node name.",
44660702 13691 "format" : "pve-node",
013dc89f
DM
13692 "type" : "string",
13693 "typetext" : "<string>"
44660702
DM
13694 },
13695 "vmid" : {
13696 "description" : "The (unique) ID of the VM.",
13697 "format" : "pve-vmid",
8dd66e12
TL
13698 "maximum" : 999999999,
13699 "minimum" : 100,
4bd7df8b 13700 "type" : "integer",
8dd66e12 13701 "typetext" : "<integer> (100 - 999999999)"
56122987 13702 }
44660702 13703 }
56122987 13704 },
44660702
DM
13705 "permissions" : {
13706 "check" : [
13707 "perm",
13708 "/vms/{vmid}",
13709 [
13710 "VM.Audit"
13711 ]
13712 ]
56122987 13713 },
44660702
DM
13714 "returns" : {
13715 "type" : "object"
13716 }
7aacca6f 13717 },
44660702 13718 "PUT" : {
e9cd3bd4 13719 "allowtoken" : 1,
44660702
DM
13720 "description" : "Update IP or Network alias.",
13721 "method" : "PUT",
13722 "name" : "update_alias",
56122987
DM
13723 "parameters" : {
13724 "additionalProperties" : 0,
13725 "properties" : {
44660702
DM
13726 "cidr" : {
13727 "description" : "Network/IP specification in CIDR format.",
13728 "format" : "IPorCIDR",
013dc89f
DM
13729 "type" : "string",
13730 "typetext" : "<string>"
44660702
DM
13731 },
13732 "comment" : {
13733 "optional" : 1,
013dc89f
DM
13734 "type" : "string",
13735 "typetext" : "<string>"
56122987
DM
13736 },
13737 "digest" : {
82551b2b
TL
13738 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
13739 "maxLength" : 64,
56122987 13740 "optional" : 1,
013dc89f
DM
13741 "type" : "string",
13742 "typetext" : "<string>"
56122987 13743 },
7aacca6f 13744 "name" : {
44660702 13745 "description" : "Alias name.",
56122987
DM
13746 "maxLength" : 64,
13747 "minLength" : 2,
13748 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702 13749 "type" : "string"
7aacca6f
DM
13750 },
13751 "node" : {
7aacca6f 13752 "description" : "The cluster node name.",
44660702 13753 "format" : "pve-node",
013dc89f
DM
13754 "type" : "string",
13755 "typetext" : "<string>"
44660702
DM
13756 },
13757 "rename" : {
13758 "description" : "Rename an existing alias.",
13759 "maxLength" : 64,
13760 "minLength" : 2,
13761 "optional" : 1,
13762 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
13763 "type" : "string"
13764 },
13765 "vmid" : {
13766 "description" : "The (unique) ID of the VM.",
13767 "format" : "pve-vmid",
8dd66e12
TL
13768 "maximum" : 999999999,
13769 "minimum" : 100,
4bd7df8b 13770 "type" : "integer",
8dd66e12 13771 "typetext" : "<integer> (100 - 999999999)"
56122987
DM
13772 }
13773 }
13774 },
7aacca6f
DM
13775 "permissions" : {
13776 "check" : [
13777 "perm",
13778 "/vms/{vmid}",
13779 [
13780 "VM.Config.Network"
13781 ]
13782 ]
13783 },
13784 "protected" : 1,
7aacca6f
DM
13785 "returns" : {
13786 "type" : "null"
44660702 13787 }
56122987
DM
13788 }
13789 },
44660702 13790 "leaf" : 1,
7aacca6f 13791 "path" : "/nodes/{node}/qemu/{vmid}/firewall/aliases/{name}",
44660702 13792 "text" : "{name}"
56122987
DM
13793 }
13794 ],
13795 "info" : {
44660702 13796 "GET" : {
e9cd3bd4 13797 "allowtoken" : 1,
44660702
DM
13798 "description" : "List aliases",
13799 "method" : "GET",
13800 "name" : "get_aliases",
56122987 13801 "parameters" : {
44660702 13802 "additionalProperties" : 0,
56122987 13803 "properties" : {
7aacca6f 13804 "node" : {
7aacca6f 13805 "description" : "The cluster node name.",
44660702 13806 "format" : "pve-node",
013dc89f
DM
13807 "type" : "string",
13808 "typetext" : "<string>"
56122987 13809 },
44660702
DM
13810 "vmid" : {
13811 "description" : "The (unique) ID of the VM.",
13812 "format" : "pve-vmid",
8dd66e12
TL
13813 "maximum" : 999999999,
13814 "minimum" : 100,
4bd7df8b 13815 "type" : "integer",
8dd66e12 13816 "typetext" : "<integer> (100 - 999999999)"
56122987 13817 }
44660702 13818 }
56122987 13819 },
56122987
DM
13820 "permissions" : {
13821 "check" : [
13822 "perm",
13823 "/vms/{vmid}",
13824 [
44660702 13825 "VM.Audit"
56122987
DM
13826 ]
13827 ]
13828 },
56122987
DM
13829 "returns" : {
13830 "items" : {
13831 "properties" : {
44660702 13832 "cidr" : {
56122987
DM
13833 "type" : "string"
13834 },
44660702
DM
13835 "comment" : {
13836 "optional" : 1,
7aacca6f 13837 "type" : "string"
56122987
DM
13838 },
13839 "digest" : {
82551b2b
TL
13840 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
13841 "maxLength" : 64,
56122987
DM
13842 "optional" : 0,
13843 "type" : "string"
13844 },
44660702 13845 "name" : {
56122987
DM
13846 "type" : "string"
13847 }
44660702
DM
13848 },
13849 "type" : "object"
56122987 13850 },
56122987
DM
13851 "links" : [
13852 {
13853 "href" : "{name}",
13854 "rel" : "child"
13855 }
44660702
DM
13856 ],
13857 "type" : "array"
13858 }
13859 },
13860 "POST" : {
e9cd3bd4 13861 "allowtoken" : 1,
44660702
DM
13862 "description" : "Create IP or Network Alias.",
13863 "method" : "POST",
13864 "name" : "create_alias",
56122987 13865 "parameters" : {
7aacca6f 13866 "additionalProperties" : 0,
56122987 13867 "properties" : {
44660702
DM
13868 "cidr" : {
13869 "description" : "Network/IP specification in CIDR format.",
13870 "format" : "IPorCIDR",
013dc89f
DM
13871 "type" : "string",
13872 "typetext" : "<string>"
44660702
DM
13873 },
13874 "comment" : {
13875 "optional" : 1,
013dc89f
DM
13876 "type" : "string",
13877 "typetext" : "<string>"
44660702
DM
13878 },
13879 "name" : {
13880 "description" : "Alias name.",
13881 "maxLength" : 64,
13882 "minLength" : 2,
13883 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
13884 "type" : "string"
56122987
DM
13885 },
13886 "node" : {
7aacca6f 13887 "description" : "The cluster node name.",
44660702 13888 "format" : "pve-node",
013dc89f
DM
13889 "type" : "string",
13890 "typetext" : "<string>"
44660702
DM
13891 },
13892 "vmid" : {
13893 "description" : "The (unique) ID of the VM.",
13894 "format" : "pve-vmid",
8dd66e12
TL
13895 "maximum" : 999999999,
13896 "minimum" : 100,
4bd7df8b 13897 "type" : "integer",
8dd66e12 13898 "typetext" : "<integer> (100 - 999999999)"
56122987 13899 }
7aacca6f 13900 }
56122987 13901 },
44660702
DM
13902 "permissions" : {
13903 "check" : [
13904 "perm",
13905 "/vms/{vmid}",
13906 [
13907 "VM.Config.Network"
13908 ]
13909 ]
13910 },
13911 "protected" : 1,
13912 "returns" : {
13913 "type" : "null"
13914 }
56122987 13915 }
44660702
DM
13916 },
13917 "leaf" : 0,
13918 "path" : "/nodes/{node}/qemu/{vmid}/firewall/aliases",
13919 "text" : "aliases"
56122987
DM
13920 },
13921 {
56122987
DM
13922 "children" : [
13923 {
7aacca6f
DM
13924 "children" : [
13925 {
13926 "info" : {
13927 "DELETE" : {
e9cd3bd4 13928 "allowtoken" : 1,
44660702 13929 "description" : "Remove IP or Network from IPSet.",
7aacca6f 13930 "method" : "DELETE",
44660702 13931 "name" : "remove_ip",
7aacca6f 13932 "parameters" : {
44660702 13933 "additionalProperties" : 0,
7aacca6f 13934 "properties" : {
44660702
DM
13935 "cidr" : {
13936 "description" : "Network/IP specification in CIDR format.",
13937 "format" : "IPorCIDRorAlias",
013dc89f
DM
13938 "type" : "string",
13939 "typetext" : "<string>"
44660702
DM
13940 },
13941 "digest" : {
82551b2b
TL
13942 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
13943 "maxLength" : 64,
44660702 13944 "optional" : 1,
013dc89f
DM
13945 "type" : "string",
13946 "typetext" : "<string>"
44660702 13947 },
7aacca6f 13948 "name" : {
7aacca6f 13949 "description" : "IP set name.",
44660702
DM
13950 "maxLength" : 64,
13951 "minLength" : 2,
7aacca6f 13952 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702 13953 "type" : "string"
7aacca6f
DM
13954 },
13955 "node" : {
13956 "description" : "The cluster node name.",
44660702 13957 "format" : "pve-node",
013dc89f
DM
13958 "type" : "string",
13959 "typetext" : "<string>"
7aacca6f
DM
13960 },
13961 "vmid" : {
44660702 13962 "description" : "The (unique) ID of the VM.",
7aacca6f 13963 "format" : "pve-vmid",
8dd66e12
TL
13964 "maximum" : 999999999,
13965 "minimum" : 100,
4bd7df8b 13966 "type" : "integer",
8dd66e12 13967 "typetext" : "<integer> (100 - 999999999)"
7aacca6f 13968 }
44660702 13969 }
7aacca6f 13970 },
7aacca6f
DM
13971 "permissions" : {
13972 "check" : [
13973 "perm",
13974 "/vms/{vmid}",
13975 [
13976 "VM.Config.Network"
13977 ]
13978 ]
13979 },
13980 "protected" : 1,
44660702
DM
13981 "returns" : {
13982 "type" : "null"
13983 }
56122987 13984 },
44660702 13985 "GET" : {
e9cd3bd4 13986 "allowtoken" : 1,
44660702
DM
13987 "description" : "Read IP or Network settings from IPSet.",
13988 "method" : "GET",
13989 "name" : "read_ip",
7aacca6f 13990 "parameters" : {
44660702 13991 "additionalProperties" : 0,
7aacca6f 13992 "properties" : {
7aacca6f 13993 "cidr" : {
44660702 13994 "description" : "Network/IP specification in CIDR format.",
7aacca6f 13995 "format" : "IPorCIDRorAlias",
013dc89f
DM
13996 "type" : "string",
13997 "typetext" : "<string>"
7aacca6f
DM
13998 },
13999 "name" : {
7aacca6f 14000 "description" : "IP set name.",
44660702 14001 "maxLength" : 64,
7aacca6f 14002 "minLength" : 2,
44660702
DM
14003 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
14004 "type" : "string"
7aacca6f 14005 },
44660702
DM
14006 "node" : {
14007 "description" : "The cluster node name.",
14008 "format" : "pve-node",
013dc89f
DM
14009 "type" : "string",
14010 "typetext" : "<string>"
7aacca6f 14011 },
44660702
DM
14012 "vmid" : {
14013 "description" : "The (unique) ID of the VM.",
14014 "format" : "pve-vmid",
8dd66e12
TL
14015 "maximum" : 999999999,
14016 "minimum" : 100,
4bd7df8b 14017 "type" : "integer",
8dd66e12 14018 "typetext" : "<integer> (100 - 999999999)"
7aacca6f 14019 }
44660702 14020 }
7aacca6f 14021 },
44660702
DM
14022 "permissions" : {
14023 "check" : [
14024 "perm",
14025 "/vms/{vmid}",
14026 [
14027 "VM.Audit"
14028 ]
14029 ]
14030 },
14031 "protected" : 1,
7aacca6f 14032 "returns" : {
44660702 14033 "type" : "object"
7aacca6f 14034 }
56122987 14035 },
44660702 14036 "PUT" : {
e9cd3bd4 14037 "allowtoken" : 1,
44660702
DM
14038 "description" : "Update IP or Network settings",
14039 "method" : "PUT",
14040 "name" : "update_ip",
7aacca6f
DM
14041 "parameters" : {
14042 "additionalProperties" : 0,
14043 "properties" : {
44660702
DM
14044 "cidr" : {
14045 "description" : "Network/IP specification in CIDR format.",
14046 "format" : "IPorCIDRorAlias",
013dc89f
DM
14047 "type" : "string",
14048 "typetext" : "<string>"
44660702
DM
14049 },
14050 "comment" : {
14051 "optional" : 1,
013dc89f
DM
14052 "type" : "string",
14053 "typetext" : "<string>"
44660702
DM
14054 },
14055 "digest" : {
82551b2b
TL
14056 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
14057 "maxLength" : 64,
44660702 14058 "optional" : 1,
013dc89f
DM
14059 "type" : "string",
14060 "typetext" : "<string>"
44660702 14061 },
7aacca6f 14062 "name" : {
7aacca6f 14063 "description" : "IP set name.",
44660702 14064 "maxLength" : 64,
7aacca6f 14065 "minLength" : 2,
44660702
DM
14066 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
14067 "type" : "string"
7aacca6f
DM
14068 },
14069 "node" : {
7aacca6f 14070 "description" : "The cluster node name.",
44660702 14071 "format" : "pve-node",
013dc89f
DM
14072 "type" : "string",
14073 "typetext" : "<string>"
7aacca6f 14074 },
44660702
DM
14075 "nomatch" : {
14076 "optional" : 1,
013dc89f
DM
14077 "type" : "boolean",
14078 "typetext" : "<boolean>"
7aacca6f
DM
14079 },
14080 "vmid" : {
14081 "description" : "The (unique) ID of the VM.",
44660702 14082 "format" : "pve-vmid",
8dd66e12
TL
14083 "maximum" : 999999999,
14084 "minimum" : 100,
4bd7df8b 14085 "type" : "integer",
8dd66e12 14086 "typetext" : "<integer> (100 - 999999999)"
7aacca6f
DM
14087 }
14088 }
14089 },
14090 "permissions" : {
14091 "check" : [
14092 "perm",
14093 "/vms/{vmid}",
14094 [
44660702 14095 "VM.Config.Network"
7aacca6f
DM
14096 ]
14097 ]
14098 },
7aacca6f 14099 "protected" : 1,
7aacca6f 14100 "returns" : {
44660702 14101 "type" : "null"
7aacca6f 14102 }
56122987 14103 }
7aacca6f 14104 },
7aacca6f 14105 "leaf" : 1,
44660702
DM
14106 "path" : "/nodes/{node}/qemu/{vmid}/firewall/ipset/{name}/{cidr}",
14107 "text" : "{cidr}"
7aacca6f 14108 }
44660702
DM
14109 ],
14110 "info" : {
14111 "DELETE" : {
e9cd3bd4 14112 "allowtoken" : 1,
44660702
DM
14113 "description" : "Delete IPSet",
14114 "method" : "DELETE",
14115 "name" : "delete_ipset",
14116 "parameters" : {
14117 "additionalProperties" : 0,
14118 "properties" : {
81a3384d
TL
14119 "force" : {
14120 "description" : "Delete all members of the IPSet, if there are any.",
14121 "optional" : 1,
14122 "type" : "boolean",
14123 "typetext" : "<boolean>"
14124 },
44660702
DM
14125 "name" : {
14126 "description" : "IP set name.",
14127 "maxLength" : 64,
14128 "minLength" : 2,
14129 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
14130 "type" : "string"
14131 },
14132 "node" : {
14133 "description" : "The cluster node name.",
14134 "format" : "pve-node",
013dc89f
DM
14135 "type" : "string",
14136 "typetext" : "<string>"
44660702
DM
14137 },
14138 "vmid" : {
14139 "description" : "The (unique) ID of the VM.",
14140 "format" : "pve-vmid",
8dd66e12
TL
14141 "maximum" : 999999999,
14142 "minimum" : 100,
4bd7df8b 14143 "type" : "integer",
8dd66e12 14144 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
14145 }
14146 }
7aacca6f 14147 },
44660702
DM
14148 "permissions" : {
14149 "check" : [
14150 "perm",
14151 "/vms/{vmid}",
14152 [
14153 "VM.Config.Network"
14154 ]
14155 ]
7aacca6f 14156 },
44660702
DM
14157 "protected" : 1,
14158 "returns" : {
14159 "type" : "null"
14160 }
14161 },
14162 "GET" : {
e9cd3bd4 14163 "allowtoken" : 1,
44660702
DM
14164 "description" : "List IPSet content",
14165 "method" : "GET",
14166 "name" : "get_ipset",
14167 "parameters" : {
14168 "additionalProperties" : 0,
14169 "properties" : {
14170 "name" : {
14171 "description" : "IP set name.",
14172 "maxLength" : 64,
14173 "minLength" : 2,
14174 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
14175 "type" : "string"
14176 },
14177 "node" : {
14178 "description" : "The cluster node name.",
14179 "format" : "pve-node",
013dc89f
DM
14180 "type" : "string",
14181 "typetext" : "<string>"
44660702
DM
14182 },
14183 "vmid" : {
14184 "description" : "The (unique) ID of the VM.",
14185 "format" : "pve-vmid",
8dd66e12
TL
14186 "maximum" : 999999999,
14187 "minimum" : 100,
4bd7df8b 14188 "type" : "integer",
8dd66e12 14189 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
14190 }
14191 }
7aacca6f 14192 },
44660702
DM
14193 "permissions" : {
14194 "check" : [
14195 "perm",
14196 "/vms/{vmid}",
14197 [
14198 "VM.Audit"
14199 ]
14200 ]
7aacca6f 14201 },
44660702
DM
14202 "returns" : {
14203 "items" : {
14204 "properties" : {
14205 "cidr" : {
14206 "type" : "string"
14207 },
14208 "comment" : {
14209 "optional" : 1,
14210 "type" : "string"
14211 },
14212 "digest" : {
82551b2b
TL
14213 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
14214 "maxLength" : 64,
44660702
DM
14215 "optional" : 0,
14216 "type" : "string"
14217 },
14218 "nomatch" : {
14219 "optional" : 1,
14220 "type" : "boolean"
14221 }
14222 },
14223 "type" : "object"
14224 },
14225 "links" : [
14226 {
14227 "href" : "{cidr}",
14228 "rel" : "child"
14229 }
14230 ],
14231 "type" : "array"
56122987
DM
14232 }
14233 },
44660702 14234 "POST" : {
e9cd3bd4 14235 "allowtoken" : 1,
44660702
DM
14236 "description" : "Add IP or Network to IPSet.",
14237 "method" : "POST",
14238 "name" : "create_ip",
14239 "parameters" : {
14240 "additionalProperties" : 0,
14241 "properties" : {
14242 "cidr" : {
14243 "description" : "Network/IP specification in CIDR format.",
14244 "format" : "IPorCIDRorAlias",
013dc89f
DM
14245 "type" : "string",
14246 "typetext" : "<string>"
44660702
DM
14247 },
14248 "comment" : {
14249 "optional" : 1,
013dc89f
DM
14250 "type" : "string",
14251 "typetext" : "<string>"
44660702
DM
14252 },
14253 "name" : {
14254 "description" : "IP set name.",
14255 "maxLength" : 64,
14256 "minLength" : 2,
14257 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
14258 "type" : "string"
14259 },
14260 "node" : {
14261 "description" : "The cluster node name.",
14262 "format" : "pve-node",
013dc89f
DM
14263 "type" : "string",
14264 "typetext" : "<string>"
44660702
DM
14265 },
14266 "nomatch" : {
14267 "optional" : 1,
013dc89f
DM
14268 "type" : "boolean",
14269 "typetext" : "<boolean>"
44660702
DM
14270 },
14271 "vmid" : {
14272 "description" : "The (unique) ID of the VM.",
14273 "format" : "pve-vmid",
8dd66e12
TL
14274 "maximum" : 999999999,
14275 "minimum" : 100,
4bd7df8b 14276 "type" : "integer",
8dd66e12 14277 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
14278 }
14279 }
14280 },
14281 "permissions" : {
14282 "check" : [
14283 "perm",
14284 "/vms/{vmid}",
14285 [
14286 "VM.Config.Network"
14287 ]
14288 ]
14289 },
14290 "protected" : 1,
14291 "returns" : {
14292 "type" : "null"
14293 }
14294 }
14295 },
14296 "leaf" : 0,
14297 "path" : "/nodes/{node}/qemu/{vmid}/firewall/ipset/{name}",
14298 "text" : "{name}"
14299 }
14300 ],
14301 "info" : {
14302 "GET" : {
e9cd3bd4 14303 "allowtoken" : 1,
44660702
DM
14304 "description" : "List IPSets",
14305 "method" : "GET",
14306 "name" : "ipset_index",
14307 "parameters" : {
14308 "additionalProperties" : 0,
14309 "properties" : {
14310 "node" : {
14311 "description" : "The cluster node name.",
14312 "format" : "pve-node",
013dc89f
DM
14313 "type" : "string",
14314 "typetext" : "<string>"
44660702
DM
14315 },
14316 "vmid" : {
14317 "description" : "The (unique) ID of the VM.",
14318 "format" : "pve-vmid",
8dd66e12
TL
14319 "maximum" : 999999999,
14320 "minimum" : 100,
4bd7df8b 14321 "type" : "integer",
8dd66e12 14322 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
14323 }
14324 }
56122987
DM
14325 },
14326 "permissions" : {
14327 "check" : [
14328 "perm",
14329 "/vms/{vmid}",
14330 [
44660702 14331 "VM.Audit"
56122987
DM
14332 ]
14333 ]
14334 },
7aacca6f 14335 "returns" : {
7aacca6f
DM
14336 "items" : {
14337 "properties" : {
7aacca6f
DM
14338 "comment" : {
14339 "optional" : 1,
14340 "type" : "string"
14341 },
14342 "digest" : {
82551b2b
TL
14343 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
14344 "maxLength" : 64,
44660702
DM
14345 "optional" : 0,
14346 "type" : "string"
14347 },
14348 "name" : {
14349 "description" : "IP set name.",
14350 "maxLength" : 64,
14351 "minLength" : 2,
14352 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
14353 "type" : "string"
7aacca6f
DM
14354 }
14355 },
14356 "type" : "object"
14357 },
14358 "links" : [
14359 {
44660702
DM
14360 "href" : "{name}",
14361 "rel" : "child"
7aacca6f 14362 }
44660702
DM
14363 ],
14364 "type" : "array"
14365 }
14366 },
14367 "POST" : {
e9cd3bd4 14368 "allowtoken" : 1,
44660702
DM
14369 "description" : "Create new IPSet",
14370 "method" : "POST",
14371 "name" : "create_ipset",
56122987
DM
14372 "parameters" : {
14373 "additionalProperties" : 0,
14374 "properties" : {
44660702
DM
14375 "comment" : {
14376 "optional" : 1,
013dc89f
DM
14377 "type" : "string",
14378 "typetext" : "<string>"
56122987 14379 },
44660702 14380 "digest" : {
82551b2b
TL
14381 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
14382 "maxLength" : 64,
44660702 14383 "optional" : 1,
013dc89f
DM
14384 "type" : "string",
14385 "typetext" : "<string>"
44660702
DM
14386 },
14387 "name" : {
14388 "description" : "IP set name.",
14389 "maxLength" : 64,
14390 "minLength" : 2,
14391 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
14392 "type" : "string"
14393 },
14394 "node" : {
14395 "description" : "The cluster node name.",
14396 "format" : "pve-node",
013dc89f
DM
14397 "type" : "string",
14398 "typetext" : "<string>"
44660702
DM
14399 },
14400 "rename" : {
14401 "description" : "Rename an existing IPSet. You can set 'rename' to the same value as 'name' to update the 'comment' of an existing IPSet.",
14402 "maxLength" : 64,
14403 "minLength" : 2,
14404 "optional" : 1,
14405 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
14406 "type" : "string"
14407 },
14408 "vmid" : {
14409 "description" : "The (unique) ID of the VM.",
14410 "format" : "pve-vmid",
8dd66e12
TL
14411 "maximum" : 999999999,
14412 "minimum" : 100,
4bd7df8b 14413 "type" : "integer",
8dd66e12 14414 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
14415 }
14416 }
14417 },
7aacca6f
DM
14418 "permissions" : {
14419 "check" : [
14420 "perm",
14421 "/vms/{vmid}",
14422 [
14423 "VM.Config.Network"
14424 ]
14425 ]
14426 },
44660702 14427 "protected" : 1,
56122987 14428 "returns" : {
7aacca6f 14429 "type" : "null"
44660702
DM
14430 }
14431 }
14432 },
14433 "leaf" : 0,
14434 "path" : "/nodes/{node}/qemu/{vmid}/firewall/ipset",
14435 "text" : "ipset"
14436 },
14437 {
14438 "info" : {
14439 "GET" : {
e9cd3bd4 14440 "allowtoken" : 1,
44660702
DM
14441 "description" : "Get VM firewall options.",
14442 "method" : "GET",
14443 "name" : "get_options",
7aacca6f
DM
14444 "parameters" : {
14445 "additionalProperties" : 0,
56122987 14446 "properties" : {
7aacca6f
DM
14447 "node" : {
14448 "description" : "The cluster node name.",
44660702 14449 "format" : "pve-node",
013dc89f
DM
14450 "type" : "string",
14451 "typetext" : "<string>"
7aacca6f 14452 },
44660702
DM
14453 "vmid" : {
14454 "description" : "The (unique) ID of the VM.",
14455 "format" : "pve-vmid",
8dd66e12
TL
14456 "maximum" : 999999999,
14457 "minimum" : 100,
4bd7df8b 14458 "type" : "integer",
8dd66e12 14459 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
14460 }
14461 }
14462 },
14463 "permissions" : {
14464 "check" : [
14465 "perm",
14466 "/vms/{vmid}",
14467 [
14468 "VM.Audit"
14469 ]
14470 ]
14471 },
14472 "proxyto" : "node",
14473 "returns" : {
14474 "properties" : {
14475 "dhcp" : {
5c1699e5 14476 "default" : 0,
44660702 14477 "description" : "Enable DHCP.",
56122987 14478 "optional" : 1,
44660702 14479 "type" : "boolean"
56122987 14480 },
44660702 14481 "enable" : {
5c1699e5 14482 "default" : 0,
44660702 14483 "description" : "Enable/disable firewall rules.",
7aacca6f 14484 "optional" : 1,
44660702 14485 "type" : "boolean"
56122987 14486 },
44660702
DM
14487 "ipfilter" : {
14488 "description" : "Enable default IP filters. This is equivalent to adding an empty ipfilter-net<id> ipset for every interface. Such ipsets implicitly contain sane default restrictions such as restricting IPv6 link local addresses to the one derived from the interface's MAC address. For containers the configured IP addresses will be implicitly added.",
7aacca6f 14489 "optional" : 1,
44660702 14490 "type" : "boolean"
7aacca6f 14491 },
56122987 14492 "log_level_in" : {
7aacca6f 14493 "description" : "Log level for incoming traffic.",
56122987
DM
14494 "enum" : [
14495 "emerg",
14496 "alert",
14497 "crit",
14498 "err",
14499 "warning",
14500 "notice",
14501 "info",
14502 "debug",
14503 "nolog"
14504 ],
56122987
DM
14505 "optional" : 1,
14506 "type" : "string"
14507 },
44660702
DM
14508 "log_level_out" : {
14509 "description" : "Log level for outgoing traffic.",
14510 "enum" : [
14511 "emerg",
14512 "alert",
14513 "crit",
14514 "err",
14515 "warning",
14516 "notice",
14517 "info",
14518 "debug",
14519 "nolog"
14520 ],
14521 "optional" : 1,
14522 "type" : "string"
14523 },
14524 "macfilter" : {
de786b48 14525 "default" : 1,
44660702 14526 "description" : "Enable/disable MAC address filter.",
56122987 14527 "optional" : 1,
7aacca6f 14528 "type" : "boolean"
56122987
DM
14529 },
14530 "ndp" : {
5c1699e5
TL
14531 "default" : 0,
14532 "description" : "Enable NDP (Neighbor Discovery Protocol).",
56122987 14533 "optional" : 1,
44660702 14534 "type" : "boolean"
56122987
DM
14535 },
14536 "policy_in" : {
56122987
DM
14537 "description" : "Input policy.",
14538 "enum" : [
14539 "ACCEPT",
14540 "REJECT",
14541 "DROP"
44660702
DM
14542 ],
14543 "optional" : 1,
14544 "type" : "string"
56122987 14545 },
44660702
DM
14546 "policy_out" : {
14547 "description" : "Output policy.",
14548 "enum" : [
14549 "ACCEPT",
14550 "REJECT",
14551 "DROP"
14552 ],
14553 "optional" : 1,
14554 "type" : "string"
14555 },
14556 "radv" : {
14557 "description" : "Allow sending Router Advertisement.",
14558 "optional" : 1,
14559 "type" : "boolean"
14560 }
14561 },
14562 "type" : "object"
14563 }
14564 },
14565 "PUT" : {
e9cd3bd4 14566 "allowtoken" : 1,
44660702
DM
14567 "description" : "Set Firewall options.",
14568 "method" : "PUT",
14569 "name" : "set_options",
14570 "parameters" : {
14571 "additionalProperties" : 0,
14572 "properties" : {
14573 "delete" : {
14574 "description" : "A list of settings you want to delete.",
14575 "format" : "pve-configid-list",
14576 "optional" : 1,
013dc89f
DM
14577 "type" : "string",
14578 "typetext" : "<string>"
44660702
DM
14579 },
14580 "dhcp" : {
5c1699e5 14581 "default" : 0,
44660702 14582 "description" : "Enable DHCP.",
7aacca6f 14583 "optional" : 1,
013dc89f
DM
14584 "type" : "boolean",
14585 "typetext" : "<boolean>"
7aacca6f
DM
14586 },
14587 "digest" : {
82551b2b
TL
14588 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
14589 "maxLength" : 64,
7aacca6f 14590 "optional" : 1,
013dc89f
DM
14591 "type" : "string",
14592 "typetext" : "<string>"
7aacca6f
DM
14593 },
14594 "enable" : {
5c1699e5 14595 "default" : 0,
7aacca6f 14596 "description" : "Enable/disable firewall rules.",
56122987 14597 "optional" : 1,
013dc89f
DM
14598 "type" : "boolean",
14599 "typetext" : "<boolean>"
7aacca6f 14600 },
44660702
DM
14601 "ipfilter" : {
14602 "description" : "Enable default IP filters. This is equivalent to adding an empty ipfilter-net<id> ipset for every interface. Such ipsets implicitly contain sane default restrictions such as restricting IPv6 link local addresses to the one derived from the interface's MAC address. For containers the configured IP addresses will be implicitly added.",
14603 "optional" : 1,
013dc89f
DM
14604 "type" : "boolean",
14605 "typetext" : "<boolean>"
44660702
DM
14606 },
14607 "log_level_in" : {
14608 "description" : "Log level for incoming traffic.",
56122987
DM
14609 "enum" : [
14610 "emerg",
14611 "alert",
14612 "crit",
14613 "err",
14614 "warning",
14615 "notice",
14616 "info",
14617 "debug",
14618 "nolog"
7aacca6f 14619 ],
7aacca6f 14620 "optional" : 1,
44660702 14621 "type" : "string"
7aacca6f 14622 },
44660702
DM
14623 "log_level_out" : {
14624 "description" : "Log level for outgoing traffic.",
56122987
DM
14625 "enum" : [
14626 "emerg",
14627 "alert",
14628 "crit",
14629 "err",
14630 "warning",
14631 "notice",
14632 "info",
14633 "debug",
14634 "nolog"
14635 ],
56122987 14636 "optional" : 1,
44660702 14637 "type" : "string"
56122987
DM
14638 },
14639 "macfilter" : {
de786b48 14640 "default" : 1,
56122987 14641 "description" : "Enable/disable MAC address filter.",
7aacca6f 14642 "optional" : 1,
013dc89f
DM
14643 "type" : "boolean",
14644 "typetext" : "<boolean>"
56122987 14645 },
44660702 14646 "ndp" : {
5c1699e5
TL
14647 "default" : 0,
14648 "description" : "Enable NDP (Neighbor Discovery Protocol).",
44660702 14649 "optional" : 1,
013dc89f
DM
14650 "type" : "boolean",
14651 "typetext" : "<boolean>"
44660702
DM
14652 },
14653 "node" : {
14654 "description" : "The cluster node name.",
14655 "format" : "pve-node",
013dc89f
DM
14656 "type" : "string",
14657 "typetext" : "<string>"
44660702 14658 },
56122987 14659 "policy_in" : {
44660702 14660 "description" : "Input policy.",
56122987
DM
14661 "enum" : [
14662 "ACCEPT",
14663 "REJECT",
14664 "DROP"
7aacca6f 14665 ],
56122987 14666 "optional" : 1,
7aacca6f 14667 "type" : "string"
56122987 14668 },
44660702
DM
14669 "policy_out" : {
14670 "description" : "Output policy.",
14671 "enum" : [
14672 "ACCEPT",
14673 "REJECT",
14674 "DROP"
14675 ],
56122987 14676 "optional" : 1,
44660702 14677 "type" : "string"
56122987 14678 },
44660702
DM
14679 "radv" : {
14680 "description" : "Allow sending Router Advertisement.",
56122987 14681 "optional" : 1,
013dc89f
DM
14682 "type" : "boolean",
14683 "typetext" : "<boolean>"
7aacca6f
DM
14684 },
14685 "vmid" : {
14686 "description" : "The (unique) ID of the VM.",
44660702 14687 "format" : "pve-vmid",
8dd66e12
TL
14688 "maximum" : 999999999,
14689 "minimum" : 100,
4bd7df8b 14690 "type" : "integer",
8dd66e12 14691 "typetext" : "<integer> (100 - 999999999)"
56122987
DM
14692 }
14693 }
14694 },
56122987
DM
14695 "permissions" : {
14696 "check" : [
14697 "perm",
14698 "/vms/{vmid}",
14699 [
44660702 14700 "VM.Config.Network"
56122987
DM
14701 ]
14702 ]
7aacca6f 14703 },
44660702 14704 "protected" : 1,
7aacca6f 14705 "proxyto" : "node",
44660702
DM
14706 "returns" : {
14707 "type" : "null"
14708 }
56122987
DM
14709 }
14710 },
44660702 14711 "leaf" : 1,
7aacca6f 14712 "path" : "/nodes/{node}/qemu/{vmid}/firewall/options",
44660702 14713 "text" : "options"
56122987
DM
14714 },
14715 {
56122987
DM
14716 "info" : {
14717 "GET" : {
e9cd3bd4 14718 "allowtoken" : 1,
44660702
DM
14719 "description" : "Read firewall log",
14720 "method" : "GET",
14721 "name" : "log",
14722 "parameters" : {
14723 "additionalProperties" : 0,
14724 "properties" : {
14725 "limit" : {
14726 "minimum" : 0,
14727 "optional" : 1,
4bd7df8b 14728 "type" : "integer",
013dc89f 14729 "typetext" : "<integer> (0 - N)"
56122987 14730 },
44660702
DM
14731 "node" : {
14732 "description" : "The cluster node name.",
14733 "format" : "pve-node",
013dc89f
DM
14734 "type" : "string",
14735 "typetext" : "<string>"
44660702 14736 },
9d2e98ed
TL
14737 "since" : {
14738 "description" : "Display log since this UNIX epoch.",
14739 "minimum" : 0,
14740 "optional" : 1,
14741 "type" : "integer",
14742 "typetext" : "<integer> (0 - N)"
14743 },
44660702
DM
14744 "start" : {
14745 "minimum" : 0,
14746 "optional" : 1,
4bd7df8b 14747 "type" : "integer",
013dc89f 14748 "typetext" : "<integer> (0 - N)"
44660702 14749 },
9d2e98ed
TL
14750 "until" : {
14751 "description" : "Display log until this UNIX epoch.",
14752 "minimum" : 0,
14753 "optional" : 1,
14754 "type" : "integer",
14755 "typetext" : "<integer> (0 - N)"
14756 },
44660702
DM
14757 "vmid" : {
14758 "description" : "The (unique) ID of the VM.",
14759 "format" : "pve-vmid",
8dd66e12
TL
14760 "maximum" : 999999999,
14761 "minimum" : 100,
4bd7df8b 14762 "type" : "integer",
8dd66e12 14763 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
14764 }
14765 }
7aacca6f 14766 },
7aacca6f
DM
14767 "permissions" : {
14768 "check" : [
14769 "perm",
14770 "/vms/{vmid}",
14771 [
14772 "VM.Console"
14773 ]
14774 ]
56122987 14775 },
7aacca6f 14776 "protected" : 1,
44660702
DM
14777 "proxyto" : "node",
14778 "returns" : {
14779 "items" : {
14780 "properties" : {
14781 "n" : {
14782 "description" : "Line number",
14783 "type" : "integer"
14784 },
14785 "t" : {
14786 "description" : "Line text",
14787 "type" : "string"
14788 }
56122987 14789 },
44660702 14790 "type" : "object"
7aacca6f 14791 },
44660702 14792 "type" : "array"
7aacca6f
DM
14793 }
14794 }
14795 },
44660702 14796 "leaf" : 1,
7aacca6f 14797 "path" : "/nodes/{node}/qemu/{vmid}/firewall/log",
44660702 14798 "text" : "log"
7aacca6f
DM
14799 },
14800 {
7aacca6f
DM
14801 "info" : {
14802 "GET" : {
e9cd3bd4 14803 "allowtoken" : 1,
7aacca6f 14804 "description" : "Lists possible IPSet/Alias reference which are allowed in source/dest properties.",
44660702
DM
14805 "method" : "GET",
14806 "name" : "refs",
56122987 14807 "parameters" : {
44660702 14808 "additionalProperties" : 0,
56122987
DM
14809 "properties" : {
14810 "node" : {
7aacca6f 14811 "description" : "The cluster node name.",
44660702 14812 "format" : "pve-node",
013dc89f
DM
14813 "type" : "string",
14814 "typetext" : "<string>"
56122987
DM
14815 },
14816 "type" : {
56122987
DM
14817 "description" : "Only list references of specified type.",
14818 "enum" : [
14819 "alias",
14820 "ipset"
7aacca6f 14821 ],
44660702
DM
14822 "optional" : 1,
14823 "type" : "string"
14824 },
14825 "vmid" : {
14826 "description" : "The (unique) ID of the VM.",
14827 "format" : "pve-vmid",
8dd66e12
TL
14828 "maximum" : 999999999,
14829 "minimum" : 100,
4bd7df8b 14830 "type" : "integer",
8dd66e12 14831 "typetext" : "<integer> (100 - 999999999)"
56122987 14832 }
44660702
DM
14833 }
14834 },
14835 "permissions" : {
14836 "check" : [
14837 "perm",
14838 "/vms/{vmid}",
14839 [
14840 "VM.Audit"
14841 ]
14842 ]
56122987
DM
14843 },
14844 "returns" : {
56122987
DM
14845 "items" : {
14846 "properties" : {
44660702
DM
14847 "comment" : {
14848 "optional" : 1,
56122987
DM
14849 "type" : "string"
14850 },
14851 "name" : {
14852 "type" : "string"
14853 },
07b013aa
TL
14854 "ref" : {
14855 "type" : "string"
14856 },
14857 "scope" : {
14858 "type" : "string"
14859 },
44660702
DM
14860 "type" : {
14861 "enum" : [
14862 "alias",
14863 "ipset"
14864 ],
7aacca6f 14865 "type" : "string"
56122987
DM
14866 }
14867 },
14868 "type" : "object"
7aacca6f
DM
14869 },
14870 "type" : "array"
14871 }
56122987 14872 }
44660702
DM
14873 },
14874 "leaf" : 1,
14875 "path" : "/nodes/{node}/qemu/{vmid}/firewall/refs",
14876 "text" : "refs"
56122987
DM
14877 }
14878 ],
56122987
DM
14879 "info" : {
14880 "GET" : {
e9cd3bd4 14881 "allowtoken" : 1,
44660702 14882 "description" : "Directory index.",
56122987 14883 "method" : "GET",
44660702 14884 "name" : "index",
56122987 14885 "parameters" : {
44660702 14886 "additionalProperties" : 0,
56122987
DM
14887 "properties" : {
14888 "node" : {
14889 "description" : "The cluster node name.",
44660702 14890 "format" : "pve-node",
013dc89f
DM
14891 "type" : "string",
14892 "typetext" : "<string>"
56122987
DM
14893 },
14894 "vmid" : {
44660702 14895 "description" : "The (unique) ID of the VM.",
56122987 14896 "format" : "pve-vmid",
8dd66e12
TL
14897 "maximum" : 999999999,
14898 "minimum" : 100,
4bd7df8b 14899 "type" : "integer",
8dd66e12 14900 "typetext" : "<integer> (100 - 999999999)"
56122987 14901 }
44660702 14902 }
56122987 14903 },
56122987 14904 "permissions" : {
27a7acb2
DM
14905 "user" : "all"
14906 },
14907 "returns" : {
14908 "items" : {
14909 "properties" : {},
14910 "type" : "object"
14911 },
14912 "links" : [
14913 {
14914 "href" : "{name}",
14915 "rel" : "child"
14916 }
14917 ],
14918 "type" : "array"
14919 }
14920 }
14921 },
14922 "leaf" : 0,
14923 "path" : "/nodes/{node}/qemu/{vmid}/firewall",
14924 "text" : "firewall"
14925 },
14926 {
14927 "children" : [
14928 {
14929 "info" : {
14930 "POST" : {
e9cd3bd4 14931 "allowtoken" : 1,
27a7acb2
DM
14932 "description" : "Execute fsfreeze-freeze.",
14933 "method" : "POST",
14934 "name" : "fsfreeze-freeze",
14935 "parameters" : {
14936 "additionalProperties" : 0,
14937 "properties" : {
14938 "node" : {
14939 "description" : "The cluster node name.",
14940 "format" : "pve-node",
14941 "type" : "string",
14942 "typetext" : "<string>"
14943 },
14944 "vmid" : {
14945 "description" : "The (unique) ID of the VM.",
14946 "format" : "pve-vmid",
8dd66e12
TL
14947 "maximum" : 999999999,
14948 "minimum" : 100,
27a7acb2 14949 "type" : "integer",
8dd66e12 14950 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
14951 }
14952 }
14953 },
14954 "permissions" : {
14955 "check" : [
14956 "perm",
14957 "/vms/{vmid}",
14958 [
14959 "VM.Monitor"
14960 ]
14961 ]
14962 },
14963 "protected" : 1,
14964 "proxyto" : "node",
14965 "returns" : {
14966 "description" : "Returns an object with a single `result` property.",
14967 "type" : "object"
14968 }
14969 }
14970 },
14971 "leaf" : 1,
14972 "path" : "/nodes/{node}/qemu/{vmid}/agent/fsfreeze-freeze",
14973 "text" : "fsfreeze-freeze"
14974 },
14975 {
14976 "info" : {
14977 "POST" : {
e9cd3bd4 14978 "allowtoken" : 1,
27a7acb2
DM
14979 "description" : "Execute fsfreeze-status.",
14980 "method" : "POST",
14981 "name" : "fsfreeze-status",
14982 "parameters" : {
14983 "additionalProperties" : 0,
14984 "properties" : {
14985 "node" : {
14986 "description" : "The cluster node name.",
14987 "format" : "pve-node",
14988 "type" : "string",
14989 "typetext" : "<string>"
14990 },
14991 "vmid" : {
14992 "description" : "The (unique) ID of the VM.",
14993 "format" : "pve-vmid",
8dd66e12
TL
14994 "maximum" : 999999999,
14995 "minimum" : 100,
27a7acb2 14996 "type" : "integer",
8dd66e12 14997 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
14998 }
14999 }
15000 },
15001 "permissions" : {
15002 "check" : [
15003 "perm",
15004 "/vms/{vmid}",
15005 [
15006 "VM.Monitor"
15007 ]
15008 ]
15009 },
15010 "protected" : 1,
15011 "proxyto" : "node",
15012 "returns" : {
15013 "description" : "Returns an object with a single `result` property.",
15014 "type" : "object"
15015 }
15016 }
15017 },
15018 "leaf" : 1,
15019 "path" : "/nodes/{node}/qemu/{vmid}/agent/fsfreeze-status",
15020 "text" : "fsfreeze-status"
15021 },
15022 {
15023 "info" : {
15024 "POST" : {
e9cd3bd4 15025 "allowtoken" : 1,
27a7acb2
DM
15026 "description" : "Execute fsfreeze-thaw.",
15027 "method" : "POST",
15028 "name" : "fsfreeze-thaw",
15029 "parameters" : {
15030 "additionalProperties" : 0,
15031 "properties" : {
15032 "node" : {
15033 "description" : "The cluster node name.",
15034 "format" : "pve-node",
15035 "type" : "string",
15036 "typetext" : "<string>"
15037 },
15038 "vmid" : {
15039 "description" : "The (unique) ID of the VM.",
15040 "format" : "pve-vmid",
8dd66e12
TL
15041 "maximum" : 999999999,
15042 "minimum" : 100,
27a7acb2 15043 "type" : "integer",
8dd66e12 15044 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
15045 }
15046 }
15047 },
15048 "permissions" : {
15049 "check" : [
15050 "perm",
15051 "/vms/{vmid}",
15052 [
15053 "VM.Monitor"
15054 ]
15055 ]
15056 },
15057 "protected" : 1,
15058 "proxyto" : "node",
15059 "returns" : {
15060 "description" : "Returns an object with a single `result` property.",
15061 "type" : "object"
15062 }
15063 }
15064 },
15065 "leaf" : 1,
15066 "path" : "/nodes/{node}/qemu/{vmid}/agent/fsfreeze-thaw",
15067 "text" : "fsfreeze-thaw"
15068 },
15069 {
15070 "info" : {
15071 "POST" : {
e9cd3bd4 15072 "allowtoken" : 1,
27a7acb2
DM
15073 "description" : "Execute fstrim.",
15074 "method" : "POST",
15075 "name" : "fstrim",
15076 "parameters" : {
15077 "additionalProperties" : 0,
15078 "properties" : {
15079 "node" : {
15080 "description" : "The cluster node name.",
15081 "format" : "pve-node",
15082 "type" : "string",
15083 "typetext" : "<string>"
15084 },
15085 "vmid" : {
15086 "description" : "The (unique) ID of the VM.",
15087 "format" : "pve-vmid",
8dd66e12
TL
15088 "maximum" : 999999999,
15089 "minimum" : 100,
27a7acb2 15090 "type" : "integer",
8dd66e12 15091 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
15092 }
15093 }
15094 },
15095 "permissions" : {
15096 "check" : [
15097 "perm",
15098 "/vms/{vmid}",
15099 [
15100 "VM.Monitor"
15101 ]
15102 ]
15103 },
15104 "protected" : 1,
15105 "proxyto" : "node",
15106 "returns" : {
15107 "description" : "Returns an object with a single `result` property.",
15108 "type" : "object"
15109 }
15110 }
15111 },
15112 "leaf" : 1,
15113 "path" : "/nodes/{node}/qemu/{vmid}/agent/fstrim",
15114 "text" : "fstrim"
15115 },
15116 {
15117 "info" : {
15118 "GET" : {
e9cd3bd4 15119 "allowtoken" : 1,
27a7acb2
DM
15120 "description" : "Execute get-fsinfo.",
15121 "method" : "GET",
15122 "name" : "get-fsinfo",
15123 "parameters" : {
15124 "additionalProperties" : 0,
15125 "properties" : {
15126 "node" : {
15127 "description" : "The cluster node name.",
15128 "format" : "pve-node",
15129 "type" : "string",
15130 "typetext" : "<string>"
15131 },
15132 "vmid" : {
15133 "description" : "The (unique) ID of the VM.",
15134 "format" : "pve-vmid",
8dd66e12
TL
15135 "maximum" : 999999999,
15136 "minimum" : 100,
27a7acb2 15137 "type" : "integer",
8dd66e12 15138 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
15139 }
15140 }
15141 },
15142 "permissions" : {
15143 "check" : [
15144 "perm",
15145 "/vms/{vmid}",
15146 [
15147 "VM.Monitor"
15148 ]
15149 ]
15150 },
15151 "protected" : 1,
15152 "proxyto" : "node",
15153 "returns" : {
15154 "description" : "Returns an object with a single `result` property.",
15155 "type" : "object"
15156 }
15157 }
15158 },
15159 "leaf" : 1,
15160 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-fsinfo",
15161 "text" : "get-fsinfo"
15162 },
15163 {
15164 "info" : {
15165 "GET" : {
e9cd3bd4 15166 "allowtoken" : 1,
27a7acb2
DM
15167 "description" : "Execute get-host-name.",
15168 "method" : "GET",
15169 "name" : "get-host-name",
15170 "parameters" : {
15171 "additionalProperties" : 0,
15172 "properties" : {
15173 "node" : {
15174 "description" : "The cluster node name.",
15175 "format" : "pve-node",
15176 "type" : "string",
15177 "typetext" : "<string>"
15178 },
15179 "vmid" : {
15180 "description" : "The (unique) ID of the VM.",
15181 "format" : "pve-vmid",
8dd66e12
TL
15182 "maximum" : 999999999,
15183 "minimum" : 100,
27a7acb2 15184 "type" : "integer",
8dd66e12 15185 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
15186 }
15187 }
15188 },
15189 "permissions" : {
15190 "check" : [
15191 "perm",
15192 "/vms/{vmid}",
15193 [
15194 "VM.Monitor"
15195 ]
15196 ]
15197 },
15198 "protected" : 1,
15199 "proxyto" : "node",
15200 "returns" : {
15201 "description" : "Returns an object with a single `result` property.",
15202 "type" : "object"
15203 }
15204 }
15205 },
15206 "leaf" : 1,
15207 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-host-name",
15208 "text" : "get-host-name"
15209 },
15210 {
15211 "info" : {
15212 "GET" : {
e9cd3bd4 15213 "allowtoken" : 1,
27a7acb2
DM
15214 "description" : "Execute get-memory-block-info.",
15215 "method" : "GET",
15216 "name" : "get-memory-block-info",
15217 "parameters" : {
15218 "additionalProperties" : 0,
15219 "properties" : {
15220 "node" : {
15221 "description" : "The cluster node name.",
15222 "format" : "pve-node",
15223 "type" : "string",
15224 "typetext" : "<string>"
15225 },
15226 "vmid" : {
15227 "description" : "The (unique) ID of the VM.",
15228 "format" : "pve-vmid",
8dd66e12
TL
15229 "maximum" : 999999999,
15230 "minimum" : 100,
27a7acb2 15231 "type" : "integer",
8dd66e12 15232 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
15233 }
15234 }
15235 },
15236 "permissions" : {
15237 "check" : [
15238 "perm",
15239 "/vms/{vmid}",
15240 [
15241 "VM.Monitor"
15242 ]
15243 ]
15244 },
15245 "protected" : 1,
15246 "proxyto" : "node",
15247 "returns" : {
15248 "description" : "Returns an object with a single `result` property.",
15249 "type" : "object"
15250 }
15251 }
15252 },
15253 "leaf" : 1,
15254 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-memory-block-info",
15255 "text" : "get-memory-block-info"
15256 },
15257 {
15258 "info" : {
15259 "GET" : {
e9cd3bd4 15260 "allowtoken" : 1,
27a7acb2
DM
15261 "description" : "Execute get-memory-blocks.",
15262 "method" : "GET",
15263 "name" : "get-memory-blocks",
15264 "parameters" : {
15265 "additionalProperties" : 0,
15266 "properties" : {
15267 "node" : {
15268 "description" : "The cluster node name.",
15269 "format" : "pve-node",
15270 "type" : "string",
15271 "typetext" : "<string>"
15272 },
15273 "vmid" : {
15274 "description" : "The (unique) ID of the VM.",
15275 "format" : "pve-vmid",
8dd66e12
TL
15276 "maximum" : 999999999,
15277 "minimum" : 100,
27a7acb2 15278 "type" : "integer",
8dd66e12 15279 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
15280 }
15281 }
15282 },
15283 "permissions" : {
15284 "check" : [
15285 "perm",
15286 "/vms/{vmid}",
15287 [
15288 "VM.Monitor"
15289 ]
15290 ]
15291 },
15292 "protected" : 1,
15293 "proxyto" : "node",
15294 "returns" : {
15295 "description" : "Returns an object with a single `result` property.",
15296 "type" : "object"
15297 }
15298 }
15299 },
15300 "leaf" : 1,
15301 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-memory-blocks",
15302 "text" : "get-memory-blocks"
15303 },
15304 {
15305 "info" : {
15306 "GET" : {
e9cd3bd4 15307 "allowtoken" : 1,
27a7acb2
DM
15308 "description" : "Execute get-osinfo.",
15309 "method" : "GET",
15310 "name" : "get-osinfo",
15311 "parameters" : {
15312 "additionalProperties" : 0,
15313 "properties" : {
15314 "node" : {
15315 "description" : "The cluster node name.",
15316 "format" : "pve-node",
15317 "type" : "string",
15318 "typetext" : "<string>"
15319 },
15320 "vmid" : {
15321 "description" : "The (unique) ID of the VM.",
15322 "format" : "pve-vmid",
8dd66e12
TL
15323 "maximum" : 999999999,
15324 "minimum" : 100,
27a7acb2 15325 "type" : "integer",
8dd66e12 15326 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
15327 }
15328 }
15329 },
15330 "permissions" : {
15331 "check" : [
15332 "perm",
15333 "/vms/{vmid}",
15334 [
15335 "VM.Monitor"
15336 ]
15337 ]
15338 },
15339 "protected" : 1,
15340 "proxyto" : "node",
15341 "returns" : {
15342 "description" : "Returns an object with a single `result` property.",
15343 "type" : "object"
15344 }
15345 }
15346 },
15347 "leaf" : 1,
15348 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-osinfo",
15349 "text" : "get-osinfo"
15350 },
15351 {
15352 "info" : {
15353 "GET" : {
e9cd3bd4 15354 "allowtoken" : 1,
27a7acb2
DM
15355 "description" : "Execute get-time.",
15356 "method" : "GET",
15357 "name" : "get-time",
15358 "parameters" : {
15359 "additionalProperties" : 0,
15360 "properties" : {
15361 "node" : {
15362 "description" : "The cluster node name.",
15363 "format" : "pve-node",
15364 "type" : "string",
15365 "typetext" : "<string>"
15366 },
15367 "vmid" : {
15368 "description" : "The (unique) ID of the VM.",
15369 "format" : "pve-vmid",
8dd66e12
TL
15370 "maximum" : 999999999,
15371 "minimum" : 100,
27a7acb2 15372 "type" : "integer",
8dd66e12 15373 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
15374 }
15375 }
15376 },
15377 "permissions" : {
15378 "check" : [
15379 "perm",
15380 "/vms/{vmid}",
15381 [
15382 "VM.Monitor"
15383 ]
15384 ]
15385 },
15386 "protected" : 1,
15387 "proxyto" : "node",
15388 "returns" : {
15389 "description" : "Returns an object with a single `result` property.",
15390 "type" : "object"
15391 }
15392 }
15393 },
15394 "leaf" : 1,
15395 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-time",
15396 "text" : "get-time"
15397 },
15398 {
15399 "info" : {
15400 "GET" : {
e9cd3bd4 15401 "allowtoken" : 1,
27a7acb2
DM
15402 "description" : "Execute get-timezone.",
15403 "method" : "GET",
15404 "name" : "get-timezone",
15405 "parameters" : {
15406 "additionalProperties" : 0,
15407 "properties" : {
15408 "node" : {
15409 "description" : "The cluster node name.",
15410 "format" : "pve-node",
15411 "type" : "string",
15412 "typetext" : "<string>"
15413 },
15414 "vmid" : {
15415 "description" : "The (unique) ID of the VM.",
15416 "format" : "pve-vmid",
8dd66e12
TL
15417 "maximum" : 999999999,
15418 "minimum" : 100,
27a7acb2 15419 "type" : "integer",
8dd66e12 15420 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
15421 }
15422 }
15423 },
15424 "permissions" : {
15425 "check" : [
15426 "perm",
15427 "/vms/{vmid}",
15428 [
15429 "VM.Monitor"
15430 ]
15431 ]
15432 },
15433 "protected" : 1,
15434 "proxyto" : "node",
15435 "returns" : {
15436 "description" : "Returns an object with a single `result` property.",
15437 "type" : "object"
15438 }
15439 }
15440 },
15441 "leaf" : 1,
15442 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-timezone",
15443 "text" : "get-timezone"
15444 },
15445 {
15446 "info" : {
15447 "GET" : {
e9cd3bd4 15448 "allowtoken" : 1,
27a7acb2
DM
15449 "description" : "Execute get-users.",
15450 "method" : "GET",
15451 "name" : "get-users",
15452 "parameters" : {
15453 "additionalProperties" : 0,
15454 "properties" : {
15455 "node" : {
15456 "description" : "The cluster node name.",
15457 "format" : "pve-node",
15458 "type" : "string",
15459 "typetext" : "<string>"
15460 },
15461 "vmid" : {
15462 "description" : "The (unique) ID of the VM.",
15463 "format" : "pve-vmid",
8dd66e12
TL
15464 "maximum" : 999999999,
15465 "minimum" : 100,
27a7acb2 15466 "type" : "integer",
8dd66e12 15467 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
15468 }
15469 }
15470 },
15471 "permissions" : {
15472 "check" : [
15473 "perm",
15474 "/vms/{vmid}",
15475 [
15476 "VM.Monitor"
15477 ]
15478 ]
15479 },
15480 "protected" : 1,
15481 "proxyto" : "node",
15482 "returns" : {
15483 "description" : "Returns an object with a single `result` property.",
15484 "type" : "object"
15485 }
15486 }
15487 },
15488 "leaf" : 1,
15489 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-users",
15490 "text" : "get-users"
15491 },
15492 {
15493 "info" : {
15494 "GET" : {
e9cd3bd4 15495 "allowtoken" : 1,
27a7acb2
DM
15496 "description" : "Execute get-vcpus.",
15497 "method" : "GET",
15498 "name" : "get-vcpus",
15499 "parameters" : {
15500 "additionalProperties" : 0,
15501 "properties" : {
15502 "node" : {
15503 "description" : "The cluster node name.",
15504 "format" : "pve-node",
15505 "type" : "string",
15506 "typetext" : "<string>"
15507 },
15508 "vmid" : {
15509 "description" : "The (unique) ID of the VM.",
15510 "format" : "pve-vmid",
8dd66e12
TL
15511 "maximum" : 999999999,
15512 "minimum" : 100,
27a7acb2 15513 "type" : "integer",
8dd66e12 15514 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
15515 }
15516 }
15517 },
15518 "permissions" : {
15519 "check" : [
15520 "perm",
15521 "/vms/{vmid}",
15522 [
15523 "VM.Monitor"
15524 ]
15525 ]
15526 },
15527 "protected" : 1,
15528 "proxyto" : "node",
15529 "returns" : {
15530 "description" : "Returns an object with a single `result` property.",
15531 "type" : "object"
15532 }
15533 }
15534 },
15535 "leaf" : 1,
15536 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-vcpus",
15537 "text" : "get-vcpus"
15538 },
15539 {
15540 "info" : {
15541 "GET" : {
e9cd3bd4 15542 "allowtoken" : 1,
27a7acb2
DM
15543 "description" : "Execute info.",
15544 "method" : "GET",
15545 "name" : "info",
15546 "parameters" : {
15547 "additionalProperties" : 0,
15548 "properties" : {
15549 "node" : {
15550 "description" : "The cluster node name.",
15551 "format" : "pve-node",
15552 "type" : "string",
15553 "typetext" : "<string>"
15554 },
15555 "vmid" : {
15556 "description" : "The (unique) ID of the VM.",
15557 "format" : "pve-vmid",
8dd66e12
TL
15558 "maximum" : 999999999,
15559 "minimum" : 100,
27a7acb2 15560 "type" : "integer",
8dd66e12 15561 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
15562 }
15563 }
15564 },
15565 "permissions" : {
15566 "check" : [
15567 "perm",
15568 "/vms/{vmid}",
15569 [
15570 "VM.Monitor"
15571 ]
15572 ]
15573 },
15574 "protected" : 1,
15575 "proxyto" : "node",
15576 "returns" : {
15577 "description" : "Returns an object with a single `result` property.",
15578 "type" : "object"
15579 }
15580 }
15581 },
15582 "leaf" : 1,
15583 "path" : "/nodes/{node}/qemu/{vmid}/agent/info",
15584 "text" : "info"
15585 },
15586 {
15587 "info" : {
15588 "GET" : {
e9cd3bd4 15589 "allowtoken" : 1,
27a7acb2
DM
15590 "description" : "Execute network-get-interfaces.",
15591 "method" : "GET",
15592 "name" : "network-get-interfaces",
15593 "parameters" : {
15594 "additionalProperties" : 0,
15595 "properties" : {
15596 "node" : {
15597 "description" : "The cluster node name.",
15598 "format" : "pve-node",
15599 "type" : "string",
15600 "typetext" : "<string>"
15601 },
15602 "vmid" : {
15603 "description" : "The (unique) ID of the VM.",
15604 "format" : "pve-vmid",
8dd66e12
TL
15605 "maximum" : 999999999,
15606 "minimum" : 100,
27a7acb2 15607 "type" : "integer",
8dd66e12 15608 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
15609 }
15610 }
15611 },
15612 "permissions" : {
15613 "check" : [
15614 "perm",
15615 "/vms/{vmid}",
15616 [
15617 "VM.Monitor"
15618 ]
15619 ]
15620 },
15621 "protected" : 1,
15622 "proxyto" : "node",
15623 "returns" : {
15624 "description" : "Returns an object with a single `result` property.",
15625 "type" : "object"
15626 }
15627 }
15628 },
15629 "leaf" : 1,
15630 "path" : "/nodes/{node}/qemu/{vmid}/agent/network-get-interfaces",
15631 "text" : "network-get-interfaces"
15632 },
15633 {
15634 "info" : {
15635 "POST" : {
e9cd3bd4 15636 "allowtoken" : 1,
27a7acb2
DM
15637 "description" : "Execute ping.",
15638 "method" : "POST",
15639 "name" : "ping",
15640 "parameters" : {
15641 "additionalProperties" : 0,
15642 "properties" : {
15643 "node" : {
15644 "description" : "The cluster node name.",
15645 "format" : "pve-node",
15646 "type" : "string",
15647 "typetext" : "<string>"
15648 },
15649 "vmid" : {
15650 "description" : "The (unique) ID of the VM.",
15651 "format" : "pve-vmid",
8dd66e12
TL
15652 "maximum" : 999999999,
15653 "minimum" : 100,
27a7acb2 15654 "type" : "integer",
8dd66e12 15655 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
15656 }
15657 }
15658 },
15659 "permissions" : {
15660 "check" : [
15661 "perm",
15662 "/vms/{vmid}",
15663 [
15664 "VM.Monitor"
15665 ]
15666 ]
15667 },
15668 "protected" : 1,
15669 "proxyto" : "node",
15670 "returns" : {
15671 "description" : "Returns an object with a single `result` property.",
15672 "type" : "object"
15673 }
15674 }
15675 },
15676 "leaf" : 1,
15677 "path" : "/nodes/{node}/qemu/{vmid}/agent/ping",
15678 "text" : "ping"
15679 },
15680 {
15681 "info" : {
15682 "POST" : {
e9cd3bd4 15683 "allowtoken" : 1,
27a7acb2
DM
15684 "description" : "Execute shutdown.",
15685 "method" : "POST",
15686 "name" : "shutdown",
15687 "parameters" : {
15688 "additionalProperties" : 0,
15689 "properties" : {
15690 "node" : {
15691 "description" : "The cluster node name.",
15692 "format" : "pve-node",
15693 "type" : "string",
15694 "typetext" : "<string>"
15695 },
15696 "vmid" : {
15697 "description" : "The (unique) ID of the VM.",
15698 "format" : "pve-vmid",
8dd66e12
TL
15699 "maximum" : 999999999,
15700 "minimum" : 100,
27a7acb2 15701 "type" : "integer",
8dd66e12 15702 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
15703 }
15704 }
15705 },
15706 "permissions" : {
15707 "check" : [
15708 "perm",
15709 "/vms/{vmid}",
15710 [
15711 "VM.Monitor"
15712 ]
15713 ]
15714 },
15715 "protected" : 1,
15716 "proxyto" : "node",
15717 "returns" : {
15718 "description" : "Returns an object with a single `result` property.",
15719 "type" : "object"
15720 }
15721 }
15722 },
15723 "leaf" : 1,
15724 "path" : "/nodes/{node}/qemu/{vmid}/agent/shutdown",
15725 "text" : "shutdown"
15726 },
15727 {
15728 "info" : {
15729 "POST" : {
e9cd3bd4 15730 "allowtoken" : 1,
27a7acb2
DM
15731 "description" : "Execute suspend-disk.",
15732 "method" : "POST",
15733 "name" : "suspend-disk",
15734 "parameters" : {
15735 "additionalProperties" : 0,
15736 "properties" : {
15737 "node" : {
15738 "description" : "The cluster node name.",
15739 "format" : "pve-node",
15740 "type" : "string",
15741 "typetext" : "<string>"
15742 },
15743 "vmid" : {
15744 "description" : "The (unique) ID of the VM.",
15745 "format" : "pve-vmid",
8dd66e12
TL
15746 "maximum" : 999999999,
15747 "minimum" : 100,
27a7acb2 15748 "type" : "integer",
8dd66e12 15749 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
15750 }
15751 }
15752 },
15753 "permissions" : {
15754 "check" : [
15755 "perm",
15756 "/vms/{vmid}",
15757 [
15758 "VM.Monitor"
15759 ]
15760 ]
15761 },
15762 "protected" : 1,
15763 "proxyto" : "node",
15764 "returns" : {
15765 "description" : "Returns an object with a single `result` property.",
15766 "type" : "object"
15767 }
15768 }
15769 },
15770 "leaf" : 1,
15771 "path" : "/nodes/{node}/qemu/{vmid}/agent/suspend-disk",
15772 "text" : "suspend-disk"
15773 },
15774 {
15775 "info" : {
15776 "POST" : {
e9cd3bd4 15777 "allowtoken" : 1,
27a7acb2
DM
15778 "description" : "Execute suspend-hybrid.",
15779 "method" : "POST",
15780 "name" : "suspend-hybrid",
15781 "parameters" : {
15782 "additionalProperties" : 0,
15783 "properties" : {
15784 "node" : {
15785 "description" : "The cluster node name.",
15786 "format" : "pve-node",
15787 "type" : "string",
15788 "typetext" : "<string>"
15789 },
15790 "vmid" : {
15791 "description" : "The (unique) ID of the VM.",
15792 "format" : "pve-vmid",
8dd66e12
TL
15793 "maximum" : 999999999,
15794 "minimum" : 100,
27a7acb2 15795 "type" : "integer",
8dd66e12 15796 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
15797 }
15798 }
15799 },
15800 "permissions" : {
15801 "check" : [
15802 "perm",
15803 "/vms/{vmid}",
15804 [
15805 "VM.Monitor"
15806 ]
15807 ]
15808 },
15809 "protected" : 1,
15810 "proxyto" : "node",
15811 "returns" : {
15812 "description" : "Returns an object with a single `result` property.",
15813 "type" : "object"
15814 }
15815 }
15816 },
15817 "leaf" : 1,
15818 "path" : "/nodes/{node}/qemu/{vmid}/agent/suspend-hybrid",
15819 "text" : "suspend-hybrid"
15820 },
15821 {
15822 "info" : {
15823 "POST" : {
e9cd3bd4 15824 "allowtoken" : 1,
27a7acb2
DM
15825 "description" : "Execute suspend-ram.",
15826 "method" : "POST",
15827 "name" : "suspend-ram",
15828 "parameters" : {
15829 "additionalProperties" : 0,
15830 "properties" : {
15831 "node" : {
15832 "description" : "The cluster node name.",
15833 "format" : "pve-node",
15834 "type" : "string",
15835 "typetext" : "<string>"
15836 },
15837 "vmid" : {
15838 "description" : "The (unique) ID of the VM.",
15839 "format" : "pve-vmid",
8dd66e12
TL
15840 "maximum" : 999999999,
15841 "minimum" : 100,
27a7acb2 15842 "type" : "integer",
8dd66e12 15843 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
15844 }
15845 }
15846 },
15847 "permissions" : {
15848 "check" : [
15849 "perm",
15850 "/vms/{vmid}",
15851 [
15852 "VM.Monitor"
15853 ]
15854 ]
15855 },
15856 "protected" : 1,
15857 "proxyto" : "node",
15858 "returns" : {
15859 "description" : "Returns an object with a single `result` property.",
15860 "type" : "object"
15861 }
15862 }
15863 },
15864 "leaf" : 1,
15865 "path" : "/nodes/{node}/qemu/{vmid}/agent/suspend-ram",
15866 "text" : "suspend-ram"
4d47f125
TL
15867 },
15868 {
15869 "info" : {
15870 "POST" : {
e9cd3bd4 15871 "allowtoken" : 1,
4d47f125
TL
15872 "description" : "Sets the password for the given user to the given password",
15873 "method" : "POST",
15874 "name" : "set-user-password",
15875 "parameters" : {
15876 "additionalProperties" : 0,
15877 "properties" : {
15878 "crypted" : {
15879 "default" : 0,
15880 "description" : "set to 1 if the password has already been passed through crypt()",
15881 "optional" : 1,
15882 "type" : "boolean",
15883 "typetext" : "<boolean>"
15884 },
15885 "node" : {
15886 "description" : "The cluster node name.",
15887 "format" : "pve-node",
15888 "type" : "string",
15889 "typetext" : "<string>"
15890 },
15891 "password" : {
15892 "description" : "The new password.",
1c532546 15893 "maxLength" : 1024,
4d47f125
TL
15894 "minLength" : 5,
15895 "type" : "string",
15896 "typetext" : "<string>"
15897 },
15898 "username" : {
15899 "description" : "The user to set the password for.",
15900 "type" : "string",
15901 "typetext" : "<string>"
15902 },
15903 "vmid" : {
15904 "description" : "The (unique) ID of the VM.",
15905 "format" : "pve-vmid",
8dd66e12
TL
15906 "maximum" : 999999999,
15907 "minimum" : 100,
4d47f125 15908 "type" : "integer",
8dd66e12 15909 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
15910 }
15911 }
27a7acb2 15912 },
4d47f125
TL
15913 "permissions" : {
15914 "check" : [
15915 "perm",
15916 "/vms/{vmid}",
15917 [
15918 "VM.Monitor"
15919 ]
15920 ]
15921 },
15922 "protected" : 1,
15923 "proxyto" : "node",
15924 "returns" : {
15925 "description" : "Returns an object with a single `result` property.",
15926 "type" : "object"
27a7acb2
DM
15927 }
15928 }
15929 },
4d47f125
TL
15930 "leaf" : 1,
15931 "path" : "/nodes/{node}/qemu/{vmid}/agent/set-user-password",
15932 "text" : "set-user-password"
27a7acb2 15933 },
4d47f125
TL
15934 {
15935 "info" : {
15936 "POST" : {
e9cd3bd4 15937 "allowtoken" : 1,
4d47f125
TL
15938 "description" : "Executes the given command in the vm via the guest-agent and returns an object with the pid.",
15939 "method" : "POST",
15940 "name" : "exec",
15941 "parameters" : {
15942 "additionalProperties" : 0,
15943 "properties" : {
15944 "command" : {
4a407cfd
TL
15945 "description" : "The command as a list of program + arguments.",
15946 "items" : {
15947 "description" : "A single part of the program + arguments.",
15948 "format" : "string"
15949 },
15950 "type" : "array",
15951 "typetext" : "<array>"
c5aa7e14
TL
15952 },
15953 "input-data" : {
15954 "description" : "Data to pass as 'input-data' to the guest. Usually treated as STDIN to 'command'.",
15955 "maxLength" : 65536,
15956 "optional" : 1,
4d47f125
TL
15957 "type" : "string",
15958 "typetext" : "<string>"
15959 },
15960 "node" : {
15961 "description" : "The cluster node name.",
15962 "format" : "pve-node",
15963 "type" : "string",
15964 "typetext" : "<string>"
15965 },
15966 "vmid" : {
15967 "description" : "The (unique) ID of the VM.",
15968 "format" : "pve-vmid",
8dd66e12
TL
15969 "maximum" : 999999999,
15970 "minimum" : 100,
4d47f125 15971 "type" : "integer",
8dd66e12 15972 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
15973 }
15974 }
27a7acb2 15975 },
4d47f125
TL
15976 "permissions" : {
15977 "check" : [
15978 "perm",
15979 "/vms/{vmid}",
15980 [
15981 "VM.Monitor"
15982 ]
15983 ]
27a7acb2 15984 },
4d47f125
TL
15985 "protected" : 1,
15986 "proxyto" : "node",
15987 "returns" : {
15988 "properties" : {
15989 "pid" : {
15990 "description" : "The PID of the process started by the guest-agent.",
15991 "type" : "integer"
15992 }
15993 },
15994 "type" : "object"
27a7acb2
DM
15995 }
15996 }
15997 },
4d47f125
TL
15998 "leaf" : 1,
15999 "path" : "/nodes/{node}/qemu/{vmid}/agent/exec",
16000 "text" : "exec"
16001 },
16002 {
16003 "info" : {
16004 "GET" : {
e9cd3bd4 16005 "allowtoken" : 1,
4d47f125
TL
16006 "description" : "Gets the status of the given pid started by the guest-agent",
16007 "method" : "GET",
16008 "name" : "exec-status",
16009 "parameters" : {
16010 "additionalProperties" : 0,
16011 "properties" : {
16012 "node" : {
16013 "description" : "The cluster node name.",
16014 "format" : "pve-node",
16015 "type" : "string",
16016 "typetext" : "<string>"
16017 },
16018 "pid" : {
16019 "description" : "The PID to query",
16020 "type" : "integer",
16021 "typetext" : "<integer>"
16022 },
16023 "vmid" : {
16024 "description" : "The (unique) ID of the VM.",
16025 "format" : "pve-vmid",
8dd66e12
TL
16026 "maximum" : 999999999,
16027 "minimum" : 100,
4d47f125 16028 "type" : "integer",
8dd66e12 16029 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
16030 }
16031 }
56122987 16032 },
4d47f125
TL
16033 "permissions" : {
16034 "check" : [
16035 "perm",
16036 "/vms/{vmid}",
16037 [
16038 "VM.Monitor"
16039 ]
16040 ]
56122987 16041 },
4d47f125
TL
16042 "protected" : 1,
16043 "proxyto" : "node",
16044 "returns" : {
16045 "properties" : {
16046 "err-data" : {
16047 "description" : "stderr of the process",
16048 "optional" : 1,
16049 "type" : "string"
16050 },
16051 "err-truncated" : {
16052 "description" : "true if stderr was not fully captured",
16053 "optional" : 1,
16054 "type" : "boolean"
16055 },
16056 "exitcode" : {
16057 "description" : "process exit code if it was normally terminated.",
16058 "optional" : 1,
16059 "type" : "integer"
16060 },
16061 "exited" : {
16062 "description" : "Tells if the given command has exited yet.",
16063 "type" : "boolean"
16064 },
16065 "out-data" : {
16066 "description" : "stdout of the process",
16067 "optional" : 1,
16068 "type" : "string"
16069 },
16070 "out-truncated" : {
16071 "description" : "true if stdout was not fully captured",
16072 "optional" : 1,
16073 "type" : "boolean"
16074 },
16075 "signal" : {
16076 "description" : "signal number or exception code if the process was abnormally terminated.",
16077 "optional" : 1,
16078 "type" : "integer"
16079 }
16080 },
16081 "type" : "object"
56122987
DM
16082 }
16083 }
16084 },
4d47f125
TL
16085 "leaf" : 1,
16086 "path" : "/nodes/{node}/qemu/{vmid}/agent/exec-status",
16087 "text" : "exec-status"
16088 },
16089 {
16090 "info" : {
16091 "GET" : {
e9cd3bd4 16092 "allowtoken" : 1,
4d47f125
TL
16093 "description" : "Reads the given file via guest agent. Is limited to 16777216 bytes.",
16094 "method" : "GET",
16095 "name" : "file-read",
16096 "parameters" : {
16097 "additionalProperties" : 0,
16098 "properties" : {
16099 "file" : {
16100 "description" : "The path to the file",
16101 "type" : "string",
16102 "typetext" : "<string>"
16103 },
16104 "node" : {
16105 "description" : "The cluster node name.",
16106 "format" : "pve-node",
16107 "type" : "string",
16108 "typetext" : "<string>"
16109 },
16110 "vmid" : {
16111 "description" : "The (unique) ID of the VM.",
16112 "format" : "pve-vmid",
8dd66e12
TL
16113 "maximum" : 999999999,
16114 "minimum" : 100,
4d47f125 16115 "type" : "integer",
8dd66e12 16116 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
16117 }
16118 }
16119 },
16120 "permissions" : {
16121 "check" : [
16122 "perm",
16123 "/vms/{vmid}",
16124 [
16125 "VM.Monitor"
16126 ]
16127 ]
16128 },
16129 "protected" : 1,
16130 "proxyto" : "node",
16131 "returns" : {
16132 "description" : "Returns an object with a `content` property.",
16133 "properties" : {
16134 "content" : {
16135 "description" : "The content of the file, maximum 16777216",
16136 "type" : "string"
16137 },
16138 "truncated" : {
16139 "description" : "If set to 1, the output is truncated and not complete",
16140 "optional" : 1,
16141 "type" : "boolean"
16142 }
16143 },
16144 "type" : "object"
16145 }
16146 }
56122987 16147 },
4d47f125
TL
16148 "leaf" : 1,
16149 "path" : "/nodes/{node}/qemu/{vmid}/agent/file-read",
16150 "text" : "file-read"
16151 },
16152 {
16153 "info" : {
16154 "POST" : {
e9cd3bd4 16155 "allowtoken" : 1,
4d47f125
TL
16156 "description" : "Writes the given file via guest agent.",
16157 "method" : "POST",
16158 "name" : "file-write",
16159 "parameters" : {
16160 "additionalProperties" : 0,
16161 "properties" : {
16162 "content" : {
16163 "description" : "The content to write into the file.",
16164 "maxLength" : 61440,
16165 "type" : "string",
16166 "typetext" : "<string>"
16167 },
7af2edf9
TL
16168 "encode" : {
16169 "default" : 1,
16170 "description" : "If set, the content will be encoded as base64 (required by QEMU).Otherwise the content needs to be encoded beforehand - defaults to true.",
16171 "optional" : 1,
16172 "type" : "boolean",
16173 "typetext" : "<boolean>"
16174 },
4d47f125
TL
16175 "file" : {
16176 "description" : "The path to the file.",
16177 "type" : "string",
16178 "typetext" : "<string>"
16179 },
16180 "node" : {
16181 "description" : "The cluster node name.",
16182 "format" : "pve-node",
16183 "type" : "string",
16184 "typetext" : "<string>"
16185 },
16186 "vmid" : {
16187 "description" : "The (unique) ID of the VM.",
16188 "format" : "pve-vmid",
8dd66e12
TL
16189 "maximum" : 999999999,
16190 "minimum" : 100,
4d47f125 16191 "type" : "integer",
8dd66e12 16192 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
16193 }
16194 }
16195 },
16196 "permissions" : {
16197 "check" : [
16198 "perm",
16199 "/vms/{vmid}",
16200 [
16201 "VM.Monitor"
16202 ]
16203 ]
16204 },
16205 "protected" : 1,
16206 "proxyto" : "node",
16207 "returns" : {
16208 "type" : "null"
7aacca6f 16209 }
4d47f125
TL
16210 }
16211 },
16212 "leaf" : 1,
16213 "path" : "/nodes/{node}/qemu/{vmid}/agent/file-write",
16214 "text" : "file-write"
56122987 16215 }
4d47f125 16216 ],
7aacca6f 16217 "info" : {
56122987 16218 "GET" : {
e9cd3bd4 16219 "allowtoken" : 1,
9d2e98ed 16220 "description" : "QEMU Guest Agent command index.",
44660702 16221 "method" : "GET",
4d47f125 16222 "name" : "index",
56122987 16223 "parameters" : {
4d47f125 16224 "additionalProperties" : 1,
56122987
DM
16225 "properties" : {
16226 "node" : {
44660702 16227 "description" : "The cluster node name.",
56122987 16228 "format" : "pve-node",
013dc89f
DM
16229 "type" : "string",
16230 "typetext" : "<string>"
56122987 16231 },
7aacca6f 16232 "vmid" : {
7aacca6f
DM
16233 "description" : "The (unique) ID of the VM.",
16234 "format" : "pve-vmid",
8dd66e12
TL
16235 "maximum" : 999999999,
16236 "minimum" : 100,
4bd7df8b 16237 "type" : "integer",
8dd66e12 16238 "typetext" : "<integer> (100 - 999999999)"
56122987 16239 }
44660702 16240 }
56122987 16241 },
56122987 16242 "permissions" : {
4d47f125 16243 "user" : "all"
56122987 16244 },
4d47f125 16245 "proxyto" : "node",
7aacca6f 16246 "returns" : {
9d2e98ed 16247 "description" : "Returns the list of QEMU Guest Agent commands",
7aacca6f 16248 "items" : {
44660702
DM
16249 "properties" : {},
16250 "type" : "object"
16251 },
4d47f125
TL
16252 "links" : [
16253 {
16254 "href" : "{name}",
16255 "rel" : "child"
16256 }
16257 ],
44660702 16258 "type" : "array"
7aacca6f 16259 }
4d47f125
TL
16260 },
16261 "POST" : {
e9cd3bd4 16262 "allowtoken" : 1,
9d2e98ed 16263 "description" : "Execute QEMU Guest Agent commands.",
4d47f125
TL
16264 "method" : "POST",
16265 "name" : "agent",
44660702
DM
16266 "parameters" : {
16267 "additionalProperties" : 0,
16268 "properties" : {
4d47f125
TL
16269 "command" : {
16270 "description" : "The QGA command.",
16271 "enum" : [
16272 "fsfreeze-freeze",
16273 "fsfreeze-status",
16274 "fsfreeze-thaw",
16275 "fstrim",
16276 "get-fsinfo",
16277 "get-host-name",
16278 "get-memory-block-info",
16279 "get-memory-blocks",
16280 "get-osinfo",
16281 "get-time",
16282 "get-timezone",
16283 "get-users",
16284 "get-vcpus",
16285 "info",
16286 "network-get-interfaces",
16287 "ping",
16288 "shutdown",
16289 "suspend-disk",
16290 "suspend-hybrid",
16291 "suspend-ram"
16292 ],
16293 "type" : "string"
16294 },
16295 "node" : {
16296 "description" : "The cluster node name.",
16297 "format" : "pve-node",
16298 "type" : "string",
16299 "typetext" : "<string>"
16300 },
16301 "vmid" : {
16302 "description" : "The (unique) ID of the VM.",
16303 "format" : "pve-vmid",
8dd66e12
TL
16304 "maximum" : 999999999,
16305 "minimum" : 100,
4d47f125 16306 "type" : "integer",
8dd66e12 16307 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
16308 }
16309 }
16310 },
16311 "permissions" : {
16312 "check" : [
16313 "perm",
16314 "/vms/{vmid}",
16315 [
16316 "VM.Monitor"
16317 ]
16318 ]
16319 },
16320 "protected" : 1,
16321 "proxyto" : "node",
16322 "returns" : {
16323 "description" : "Returns an object with a single `result` property.",
16324 "type" : "object"
16325 }
16326 }
16327 },
16328 "leaf" : 0,
16329 "path" : "/nodes/{node}/qemu/{vmid}/agent",
16330 "text" : "agent"
16331 },
16332 {
16333 "info" : {
16334 "GET" : {
e9cd3bd4 16335 "allowtoken" : 1,
4d47f125
TL
16336 "description" : "Read VM RRD statistics (returns PNG)",
16337 "method" : "GET",
16338 "name" : "rrd",
16339 "parameters" : {
16340 "additionalProperties" : 0,
16341 "properties" : {
16342 "cf" : {
16343 "description" : "The RRD consolidation function",
16344 "enum" : [
16345 "AVERAGE",
16346 "MAX"
16347 ],
44660702 16348 "optional" : 1,
4d47f125
TL
16349 "type" : "string"
16350 },
16351 "ds" : {
16352 "description" : "The list of datasources you want to display.",
16353 "format" : "pve-configid-list",
16354 "type" : "string",
16355 "typetext" : "<string>"
44660702
DM
16356 },
16357 "node" : {
16358 "description" : "The cluster node name.",
16359 "format" : "pve-node",
013dc89f
DM
16360 "type" : "string",
16361 "typetext" : "<string>"
44660702 16362 },
4d47f125
TL
16363 "timeframe" : {
16364 "description" : "Specify the time frame you are interested in.",
16365 "enum" : [
16366 "hour",
16367 "day",
16368 "week",
16369 "month",
16370 "year"
16371 ],
16372 "type" : "string"
16373 },
44660702
DM
16374 "vmid" : {
16375 "description" : "The (unique) ID of the VM.",
16376 "format" : "pve-vmid",
8dd66e12
TL
16377 "maximum" : 999999999,
16378 "minimum" : 100,
4bd7df8b 16379 "type" : "integer",
8dd66e12 16380 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
16381 }
16382 }
7aacca6f 16383 },
56122987
DM
16384 "permissions" : {
16385 "check" : [
16386 "perm",
16387 "/vms/{vmid}",
16388 [
44660702
DM
16389 "VM.Audit"
16390 ]
56122987
DM
16391 ]
16392 },
4d47f125 16393 "protected" : 1,
44660702
DM
16394 "returns" : {
16395 "properties" : {
4d47f125 16396 "filename" : {
44660702
DM
16397 "type" : "string"
16398 }
16399 },
16400 "type" : "object"
16401 }
4d47f125
TL
16402 }
16403 },
16404 "leaf" : 1,
16405 "path" : "/nodes/{node}/qemu/{vmid}/rrd",
16406 "text" : "rrd"
16407 },
16408 {
16409 "info" : {
16410 "GET" : {
e9cd3bd4 16411 "allowtoken" : 1,
4d47f125
TL
16412 "description" : "Read VM RRD statistics",
16413 "method" : "GET",
16414 "name" : "rrddata",
16415 "parameters" : {
16416 "additionalProperties" : 0,
16417 "properties" : {
16418 "cf" : {
16419 "description" : "The RRD consolidation function",
16420 "enum" : [
16421 "AVERAGE",
16422 "MAX"
16423 ],
16424 "optional" : 1,
16425 "type" : "string"
16426 },
16427 "node" : {
16428 "description" : "The cluster node name.",
16429 "format" : "pve-node",
16430 "type" : "string",
16431 "typetext" : "<string>"
16432 },
16433 "timeframe" : {
16434 "description" : "Specify the time frame you are interested in.",
16435 "enum" : [
16436 "hour",
16437 "day",
16438 "week",
16439 "month",
16440 "year"
16441 ],
16442 "type" : "string"
16443 },
16444 "vmid" : {
16445 "description" : "The (unique) ID of the VM.",
16446 "format" : "pve-vmid",
8dd66e12
TL
16447 "maximum" : 999999999,
16448 "minimum" : 100,
4d47f125 16449 "type" : "integer",
8dd66e12 16450 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
16451 }
16452 }
16453 },
16454 "permissions" : {
16455 "check" : [
16456 "perm",
16457 "/vms/{vmid}",
16458 [
16459 "VM.Audit"
16460 ]
16461 ]
16462 },
16463 "protected" : 1,
16464 "returns" : {
16465 "items" : {
16466 "properties" : {},
16467 "type" : "object"
16468 },
16469 "type" : "array"
16470 }
16471 }
16472 },
16473 "leaf" : 1,
16474 "path" : "/nodes/{node}/qemu/{vmid}/rrddata",
16475 "text" : "rrddata"
16476 },
16477 {
16478 "info" : {
16479 "GET" : {
e9cd3bd4
TL
16480 "allowtoken" : 1,
16481 "description" : "Get the virtual machine configuration with pending configuration changes applied. Set the 'current' parameter to get the current configuration instead.",
4d47f125
TL
16482 "method" : "GET",
16483 "name" : "vm_config",
56122987 16484 "parameters" : {
44660702 16485 "additionalProperties" : 0,
4d47f125
TL
16486 "properties" : {
16487 "current" : {
16488 "default" : 0,
16489 "description" : "Get current values (instead of pending values).",
16490 "optional" : 1,
16491 "type" : "boolean",
16492 "typetext" : "<boolean>"
16493 },
16494 "node" : {
16495 "description" : "The cluster node name.",
16496 "format" : "pve-node",
16497 "type" : "string",
16498 "typetext" : "<string>"
16499 },
5f26e15b
TL
16500 "snapshot" : {
16501 "description" : "Fetch config values from given snapshot.",
16502 "format" : "pve-configid",
16503 "maxLength" : 40,
16504 "optional" : 1,
16505 "type" : "string",
16506 "typetext" : "<string>"
16507 },
4d47f125
TL
16508 "vmid" : {
16509 "description" : "The (unique) ID of the VM.",
16510 "format" : "pve-vmid",
8dd66e12
TL
16511 "maximum" : 999999999,
16512 "minimum" : 100,
4d47f125 16513 "type" : "integer",
8dd66e12 16514 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
16515 }
16516 }
16517 },
16518 "permissions" : {
16519 "check" : [
16520 "perm",
16521 "/vms/{vmid}",
16522 [
16523 "VM.Audit"
16524 ]
16525 ]
16526 },
16527 "proxyto" : "node",
16528 "returns" : {
e9cd3bd4 16529 "description" : "The VM configuration.",
56122987 16530 "properties" : {
44660702
DM
16531 "acpi" : {
16532 "default" : 1,
16533 "description" : "Enable/disable ACPI.",
16534 "optional" : 1,
4d47f125 16535 "type" : "boolean"
44660702 16536 },
4e7f60c2 16537 "affinity" : {
81a3384d 16538 "description" : "List of host cores used to execute guest processes, for example: 0,5,8-11",
4e7f60c2
TL
16539 "format" : "pve-cpuset",
16540 "optional" : 1,
16541 "type" : "string"
16542 },
44660702 16543 "agent" : {
9d2e98ed 16544 "description" : "Enable/disable communication with the QEMU Guest Agent and its properties.",
4d47f125
TL
16545 "format" : {
16546 "enabled" : {
16547 "default" : 0,
16548 "default_key" : 1,
9d2e98ed
TL
16549 "description" : "Enable/disable communication with a QEMU Guest Agent (QGA) running in the VM.",
16550 "type" : "boolean"
16551 },
16552 "freeze-fs-on-backup" : {
16553 "default" : 1,
16554 "description" : "Freeze/thaw guest filesystems on backup for consistency.",
16555 "optional" : 1,
4d47f125
TL
16556 "type" : "boolean"
16557 },
16558 "fstrim_cloned_disks" : {
16559 "default" : 0,
d2656385 16560 "description" : "Run fstrim after moving a disk or migrating the VM.",
4d47f125
TL
16561 "optional" : 1,
16562 "type" : "boolean"
5c1699e5
TL
16563 },
16564 "type" : {
16565 "default" : "virtio",
16566 "description" : "Select the agent type",
16567 "enum" : [
16568 "virtio",
16569 "isa"
16570 ],
16571 "optional" : 1,
16572 "type" : "string"
4d47f125
TL
16573 }
16574 },
7aacca6f 16575 "optional" : 1,
4d47f125 16576 "type" : "string"
7aacca6f 16577 },
e2d681b3
TL
16578 "arch" : {
16579 "description" : "Virtual processor architecture. Defaults to the host.",
16580 "enum" : [
16581 "x86_64",
16582 "aarch64"
16583 ],
16584 "optional" : 1,
16585 "type" : "string"
16586 },
44660702 16587 "args" : {
c2993fe5 16588 "description" : "Arbitrary arguments passed to kvm.",
44660702 16589 "optional" : 1,
c2993fe5 16590 "type" : "string",
159464a9 16591 "verbose_description" : "Arbitrary arguments passed to kvm, for example:\n\nargs: -no-reboot -smbios 'type=0,vendor=FOO'\n\nNOTE: this option is for experts only.\n"
7aacca6f 16592 },
1c532546
TL
16593 "audio0" : {
16594 "description" : "Configure a audio device, useful in combination with QXL/Spice.",
16595 "format" : {
16596 "device" : {
16597 "description" : "Configure an audio device.",
16598 "enum" : [
16599 "ich9-intel-hda",
16600 "intel-hda",
16601 "AC97"
16602 ],
16603 "type" : "string"
16604 },
16605 "driver" : {
16606 "default" : "spice",
16607 "description" : "Driver backend for the audio device.",
16608 "enum" : [
d2656385
TL
16609 "spice",
16610 "none"
1c532546
TL
16611 ],
16612 "optional" : 1,
16613 "type" : "string"
16614 }
16615 },
16616 "optional" : 1,
16617 "type" : "string"
16618 },
44660702
DM
16619 "autostart" : {
16620 "default" : 0,
16621 "description" : "Automatic restart after crash (currently ignored).",
56122987 16622 "optional" : 1,
4d47f125 16623 "type" : "boolean"
56122987 16624 },
4d47f125 16625 "balloon" : {
9d2e98ed 16626 "description" : "Amount of target RAM for the VM in MiB. Using zero disables the ballon driver.",
4d47f125 16627 "minimum" : 0,
7aacca6f 16628 "optional" : 1,
4d47f125 16629 "type" : "integer"
7aacca6f 16630 },
44660702
DM
16631 "bios" : {
16632 "default" : "seabios",
16633 "description" : "Select BIOS implementation.",
16634 "enum" : [
16635 "seabios",
16636 "ovmf"
16637 ],
56122987 16638 "optional" : 1,
44660702 16639 "type" : "string"
7aacca6f 16640 },
44660702 16641 "boot" : {
5370fa8c 16642 "description" : "Specify guest boot order. Use the 'order=' sub-property as usage with no key or 'legacy=' is deprecated.",
4772952b 16643 "format" : "pve-qm-boot",
44660702 16644 "optional" : 1,
44660702
DM
16645 "type" : "string"
16646 },
16647 "bootdisk" : {
4772952b 16648 "description" : "Enable booting from specified disk. Deprecated: Use 'boot: order=foo;bar' instead.",
44660702
DM
16649 "format" : "pve-qm-bootdisk",
16650 "optional" : 1,
16651 "pattern" : "(ide|sata|scsi|virtio)\\d+",
16652 "type" : "string"
16653 },
16654 "cdrom" : {
16655 "description" : "This is an alias for option -ide2",
de0983cb 16656 "format" : "pve-qm-ide",
44660702 16657 "optional" : 1,
7aacca6f 16658 "type" : "string",
013dc89f 16659 "typetext" : "<volume>"
44660702 16660 },
95895385
TL
16661 "cicustom" : {
16662 "description" : "cloud-init: Specify custom files to replace the automatically generated ones at start.",
16663 "format" : "pve-qm-cicustom",
16664 "optional" : 1,
16665 "type" : "string"
16666 },
27a7acb2
DM
16667 "cipassword" : {
16668 "description" : "cloud-init: Password to assign the user. Using this is generally not recommended. Use ssh keys instead. Also note that older cloud-init versions do not support hashed passwords.",
16669 "optional" : 1,
4d47f125 16670 "type" : "string"
27a7acb2
DM
16671 },
16672 "citype" : {
16673 "description" : "Specifies the cloud-init configuration format. The default depends on the configured operating system type (`ostype`. We use the `nocloud` format for Linux, and `configdrive2` for windows.",
16674 "enum" : [
16675 "configdrive2",
d2656385
TL
16676 "nocloud",
16677 "opennebula"
27a7acb2
DM
16678 ],
16679 "optional" : 1,
16680 "type" : "string"
16681 },
159464a9 16682 "ciupgrade" : {
c8eee6ff 16683 "default" : 1,
159464a9
TL
16684 "description" : "cloud-init: do an automatic package upgrade after the first boot.",
16685 "optional" : 1,
16686 "type" : "boolean"
16687 },
27a7acb2
DM
16688 "ciuser" : {
16689 "description" : "cloud-init: User name to change ssh keys and password for instead of the image's configured default user.",
16690 "optional" : 1,
4d47f125 16691 "type" : "string"
27a7acb2 16692 },
44660702
DM
16693 "cores" : {
16694 "default" : 1,
16695 "description" : "The number of cores per socket.",
16696 "minimum" : 1,
7aacca6f 16697 "optional" : 1,
4d47f125 16698 "type" : "integer"
7aacca6f 16699 },
44660702
DM
16700 "cpu" : {
16701 "description" : "Emulated CPU type.",
c5aa7e14 16702 "format" : "pve-vm-cpu-conf",
44660702 16703 "optional" : 1,
4d47f125 16704 "type" : "string"
44660702
DM
16705 },
16706 "cpulimit" : {
16707 "default" : 0,
c2993fe5 16708 "description" : "Limit of CPU usage.",
44660702
DM
16709 "maximum" : 128,
16710 "minimum" : 0,
16711 "optional" : 1,
c2993fe5
DM
16712 "type" : "number",
16713 "verbose_description" : "Limit of CPU usage.\n\nNOTE: If the computer has 2 CPUs, it has total of '2' CPU time. Value '0' indicates no CPU limit."
44660702
DM
16714 },
16715 "cpuunits" : {
5370fa8c
TL
16716 "default" : "cgroup v1: 1024, cgroup v2: 100",
16717 "description" : "CPU weight for a VM, will be clamped to [1, 10000] in cgroup v2.",
2489d6df 16718 "maximum" : 262144,
7af2edf9 16719 "minimum" : 1,
44660702 16720 "optional" : 1,
c2993fe5 16721 "type" : "integer",
2489d6df 16722 "verbose_description" : "CPU weight for a VM. Argument is used in the kernel fair scheduler. The larger the number is, the more CPU time this VM gets. Number is relative to weights of all the other running VMs."
44660702 16723 },
44660702 16724 "description" : {
8f4d9c87
TL
16725 "description" : "Description for the VM. Shown in the web-interface VM's summary. This is saved as comment inside the configuration file.",
16726 "maxLength" : 8192,
44660702 16727 "optional" : 1,
4d47f125 16728 "type" : "string"
44660702
DM
16729 },
16730 "digest" : {
4d47f125
TL
16731 "description" : "SHA1 digest of configuration file. This can be used to prevent concurrent modifications.",
16732 "type" : "string"
44660702 16733 },
4d47f125 16734 "efidisk0" : {
9d2e98ed 16735 "description" : "Configure a disk for storing EFI vars.",
4d47f125 16736 "format" : {
5370fa8c
TL
16737 "efitype" : {
16738 "default" : "2m",
bd92b745 16739 "description" : "Size and type of the OVMF EFI vars. '4m' is newer and recommended, and required for Secure Boot. For backwards compatibility, '2m' is used if not otherwise specified. Ignored for VMs with arch=aarch64 (ARM).",
5370fa8c
TL
16740 "enum" : [
16741 "2m",
16742 "4m"
16743 ],
16744 "optional" : 1,
16745 "type" : "string"
16746 },
4d47f125
TL
16747 "file" : {
16748 "default_key" : 1,
16749 "description" : "The drive's backing volume.",
16750 "format" : "pve-volume-id-or-qm-path",
16751 "format_description" : "volume",
16752 "type" : "string"
16753 },
16754 "format" : {
16755 "description" : "The drive's backing file's data format.",
16756 "enum" : [
16757 "raw",
16758 "cow",
16759 "qcow",
16760 "qed",
16761 "qcow2",
16762 "vmdk",
16763 "cloop"
16764 ],
16765 "optional" : 1,
16766 "type" : "string"
16767 },
5370fa8c
TL
16768 "pre-enrolled-keys" : {
16769 "default" : 0,
16770 "description" : "Use am EFI vars template with distribution-specific and Microsoft Standard keys enrolled, if used with 'efitype=4m'. Note that this will enable Secure Boot by default, though it can still be turned off from within the VM.",
16771 "optional" : 1,
16772 "type" : "boolean"
16773 },
4d47f125
TL
16774 "size" : {
16775 "description" : "Disk size. This is purely informational and has no effect.",
16776 "format" : "disk-size",
16777 "format_description" : "DiskSize",
16778 "optional" : 1,
16779 "type" : "string"
16780 },
16781 "volume" : {
16782 "alias" : "file"
16783 }
16784 },
44660702 16785 "optional" : 1,
4d47f125 16786 "type" : "string"
44660702
DM
16787 },
16788 "freeze" : {
16789 "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).",
16790 "optional" : 1,
4d47f125 16791 "type" : "boolean"
44660702 16792 },
5f26e15b
TL
16793 "hookscript" : {
16794 "description" : "Script that will be executed during various steps in the vms lifetime.",
16795 "format" : "pve-volume-id",
16796 "optional" : 1,
16797 "type" : "string"
16798 },
44660702 16799 "hostpci[n]" : {
c2993fe5 16800 "description" : "Map host PCI devices into guest.",
44660702
DM
16801 "format" : "pve-qm-hostpci",
16802 "optional" : 1,
57b78691 16803 "type" : "string",
bb4c8cf8 16804 "verbose_description" : "Map host PCI devices into guest.\n\nNOTE: This option allows direct access to host hardware. So it is no longer\npossible to migrate such machines - use with special care.\n\nCAUTION: Experimental! User reported problems with this option.\n"
44660702
DM
16805 },
16806 "hotplug" : {
16807 "default" : "network,disk,usb",
4e7f60c2 16808 "description" : "Selectively enable hotplug features. This is a comma separated list of hotplug features: 'network', 'disk', 'cpu', 'memory', 'usb' and 'cloudinit'. Use '0' to disable hotplug completely. Using '1' as value is an alias for the default `network,disk,usb`. USB hotplugging is possible for guests with machine version >= 7.1 and ostype l26 or windows > 7.",
44660702
DM
16809 "format" : "pve-hotplug-features",
16810 "optional" : 1,
4d47f125 16811 "type" : "string"
44660702 16812 },
4bd7df8b
DM
16813 "hugepages" : {
16814 "description" : "Enable/disable hugepages memory.",
16815 "enum" : [
16816 "any",
16817 "2",
16818 "1024"
16819 ],
16820 "optional" : 1,
16821 "type" : "string"
16822 },
44660702 16823 "ide[n]" : {
7af2edf9 16824 "description" : "Use volume as IDE hard disk or CD-ROM (n is 0 to 3).",
44660702
DM
16825 "format" : {
16826 "aio" : {
16827 "description" : "AIO type to use.",
16828 "enum" : [
16829 "native",
8f4d9c87
TL
16830 "threads",
16831 "io_uring"
56122987 16832 ],
56122987 16833 "optional" : 1,
44660702 16834 "type" : "string"
56122987 16835 },
44660702
DM
16836 "backup" : {
16837 "description" : "Whether the drive should be included when making backups.",
56122987 16838 "optional" : 1,
44660702 16839 "type" : "boolean"
56122987 16840 },
7aacca6f 16841 "bps" : {
de0983cb 16842 "description" : "Maximum r/w speed in bytes per second.",
44660702
DM
16843 "format_description" : "bps",
16844 "optional" : 1,
16845 "type" : "integer"
16846 },
de0983cb
DM
16847 "bps_max_length" : {
16848 "description" : "Maximum length of I/O bursts in seconds.",
16849 "format_description" : "seconds",
16850 "minimum" : 1,
16851 "optional" : 1,
16852 "type" : "integer"
16853 },
44660702 16854 "bps_rd" : {
de0983cb 16855 "description" : "Maximum read speed in bytes per second.",
44660702 16856 "format_description" : "bps",
56122987 16857 "optional" : 1,
44660702 16858 "type" : "integer"
56122987 16859 },
de0983cb 16860 "bps_rd_length" : {
5d9c884c
DM
16861 "alias" : "bps_rd_max_length"
16862 },
16863 "bps_rd_max_length" : {
de0983cb
DM
16864 "description" : "Maximum length of read I/O bursts in seconds.",
16865 "format_description" : "seconds",
16866 "minimum" : 1,
16867 "optional" : 1,
16868 "type" : "integer"
16869 },
44660702 16870 "bps_wr" : {
de0983cb 16871 "description" : "Maximum write speed in bytes per second.",
44660702
DM
16872 "format_description" : "bps",
16873 "optional" : 1,
16874 "type" : "integer"
16875 },
de0983cb 16876 "bps_wr_length" : {
5d9c884c
DM
16877 "alias" : "bps_wr_max_length"
16878 },
16879 "bps_wr_max_length" : {
de0983cb
DM
16880 "description" : "Maximum length of write I/O bursts in seconds.",
16881 "format_description" : "seconds",
16882 "minimum" : 1,
16883 "optional" : 1,
16884 "type" : "integer"
16885 },
44660702
DM
16886 "cache" : {
16887 "description" : "The drive's cache mode",
16888 "enum" : [
16889 "none",
16890 "writethrough",
16891 "writeback",
16892 "unsafe",
16893 "directsync"
16894 ],
44660702
DM
16895 "optional" : 1,
16896 "type" : "string"
16897 },
16898 "cyls" : {
16899 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
44660702
DM
16900 "optional" : 1,
16901 "type" : "integer"
16902 },
16903 "detect_zeroes" : {
16904 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
16905 "optional" : 1,
16906 "type" : "boolean"
16907 },
16908 "discard" : {
16909 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
16910 "enum" : [
16911 "ignore",
16912 "on"
16913 ],
56122987 16914 "optional" : 1,
44660702
DM
16915 "type" : "string"
16916 },
16917 "file" : {
16918 "default_key" : 1,
16919 "description" : "The drive's backing volume.",
16920 "format" : "pve-volume-id-or-qm-path",
16921 "format_description" : "volume",
16922 "type" : "string"
56122987 16923 },
7aacca6f 16924 "format" : {
7aacca6f 16925 "description" : "The drive's backing file's data format.",
56122987 16926 "enum" : [
7aacca6f
DM
16927 "raw",
16928 "cow",
16929 "qcow",
16930 "qed",
16931 "qcow2",
16932 "vmdk",
16933 "cloop"
56122987
DM
16934 ],
16935 "optional" : 1,
56122987
DM
16936 "type" : "string"
16937 },
44660702
DM
16938 "heads" : {
16939 "description" : "Force the drive's physical geometry to have a specific head count.",
44660702
DM
16940 "optional" : 1,
16941 "type" : "integer"
7aacca6f 16942 },
44660702 16943 "iops" : {
de0983cb 16944 "description" : "Maximum r/w I/O in operations per second.",
44660702 16945 "format_description" : "iops",
56122987 16946 "optional" : 1,
44660702 16947 "type" : "integer"
56122987 16948 },
44660702 16949 "iops_max" : {
de0983cb 16950 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 16951 "format_description" : "iops",
56122987 16952 "optional" : 1,
44660702 16953 "type" : "integer"
56122987 16954 },
de0983cb
DM
16955 "iops_max_length" : {
16956 "description" : "Maximum length of I/O bursts in seconds.",
16957 "format_description" : "seconds",
16958 "minimum" : 1,
16959 "optional" : 1,
16960 "type" : "integer"
16961 },
44660702 16962 "iops_rd" : {
de0983cb 16963 "description" : "Maximum read I/O in operations per second.",
44660702
DM
16964 "format_description" : "iops",
16965 "optional" : 1,
16966 "type" : "integer"
16967 },
de0983cb 16968 "iops_rd_length" : {
5d9c884c 16969 "alias" : "iops_rd_max_length"
de0983cb 16970 },
44660702 16971 "iops_rd_max" : {
de0983cb 16972 "description" : "Maximum unthrottled read I/O pool in operations per second.",
7aacca6f 16973 "format_description" : "iops",
44660702
DM
16974 "optional" : 1,
16975 "type" : "integer"
16976 },
5d9c884c
DM
16977 "iops_rd_max_length" : {
16978 "description" : "Maximum length of read I/O bursts in seconds.",
16979 "format_description" : "seconds",
16980 "minimum" : 1,
16981 "optional" : 1,
16982 "type" : "integer"
16983 },
44660702 16984 "iops_wr" : {
de0983cb 16985 "description" : "Maximum write I/O in operations per second.",
44660702 16986 "format_description" : "iops",
56122987 16987 "optional" : 1,
7aacca6f 16988 "type" : "integer"
56122987 16989 },
de0983cb 16990 "iops_wr_length" : {
5d9c884c 16991 "alias" : "iops_wr_max_length"
de0983cb 16992 },
44660702 16993 "iops_wr_max" : {
de0983cb 16994 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702 16995 "format_description" : "iops",
7aacca6f 16996 "optional" : 1,
44660702 16997 "type" : "integer"
56122987 16998 },
5d9c884c
DM
16999 "iops_wr_max_length" : {
17000 "description" : "Maximum length of write I/O bursts in seconds.",
17001 "format_description" : "seconds",
17002 "minimum" : 1,
17003 "optional" : 1,
17004 "type" : "integer"
17005 },
44660702 17006 "mbps" : {
de0983cb 17007 "description" : "Maximum r/w speed in megabytes per second.",
44660702
DM
17008 "format_description" : "mbps",
17009 "optional" : 1,
17010 "type" : "number"
17011 },
17012 "mbps_max" : {
de0983cb 17013 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702
DM
17014 "format_description" : "mbps",
17015 "optional" : 1,
17016 "type" : "number"
17017 },
17018 "mbps_rd" : {
de0983cb 17019 "description" : "Maximum read speed in megabytes per second.",
44660702
DM
17020 "format_description" : "mbps",
17021 "optional" : 1,
17022 "type" : "number"
17023 },
17024 "mbps_rd_max" : {
de0983cb 17025 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702
DM
17026 "format_description" : "mbps",
17027 "optional" : 1,
17028 "type" : "number"
17029 },
17030 "mbps_wr" : {
de0983cb 17031 "description" : "Maximum write speed in megabytes per second.",
44660702
DM
17032 "format_description" : "mbps",
17033 "optional" : 1,
17034 "type" : "number"
17035 },
17036 "mbps_wr_max" : {
de0983cb 17037 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702 17038 "format_description" : "mbps",
56122987 17039 "optional" : 1,
44660702 17040 "type" : "number"
56122987 17041 },
7aacca6f 17042 "media" : {
7aacca6f 17043 "default" : "disk",
7aacca6f
DM
17044 "description" : "The drive's media type.",
17045 "enum" : [
17046 "cdrom",
17047 "disk"
44660702 17048 ],
44660702
DM
17049 "optional" : 1,
17050 "type" : "string"
56122987 17051 },
44660702
DM
17052 "model" : {
17053 "description" : "The drive's reported model name, url-encoded, up to 40 bytes long.",
17054 "format" : "urlencoded",
17055 "format_description" : "model",
17056 "maxLength" : 120,
56122987 17057 "optional" : 1,
44660702 17058 "type" : "string"
56122987 17059 },
5d9c884c
DM
17060 "replicate" : {
17061 "default" : 1,
17062 "description" : "Whether the drive should considered for replication jobs.",
17063 "optional" : 1,
17064 "type" : "boolean"
17065 },
44660702
DM
17066 "rerror" : {
17067 "description" : "Read error action.",
17068 "enum" : [
17069 "ignore",
17070 "report",
17071 "stop"
17072 ],
56122987 17073 "optional" : 1,
44660702
DM
17074 "type" : "string"
17075 },
17076 "secs" : {
17077 "description" : "Force the drive's physical geometry to have a specific sector count.",
44660702
DM
17078 "optional" : 1,
17079 "type" : "integer"
17080 },
17081 "serial" : {
17082 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
17083 "format" : "urlencoded",
17084 "format_description" : "serial",
17085 "maxLength" : 60,
17086 "optional" : 1,
17087 "type" : "string"
17088 },
27a7acb2
DM
17089 "shared" : {
17090 "default" : 0,
17091 "description" : "Mark this locally-managed volume as available on all nodes",
17092 "optional" : 1,
17093 "type" : "boolean",
17094 "verbose_description" : "Mark this locally-managed volume as available on all nodes.\n\nWARNING: This option does not share the volume automatically, it assumes it is shared already!"
17095 },
44660702
DM
17096 "size" : {
17097 "description" : "Disk size. This is purely informational and has no effect.",
17098 "format" : "disk-size",
f004f5b9 17099 "format_description" : "DiskSize",
44660702
DM
17100 "optional" : 1,
17101 "type" : "string"
17102 },
17103 "snapshot" : {
27a7acb2 17104 "description" : "Controls qemu's snapshot mode feature. If activated, changes made to the disk are temporary and will be discarded when the VM is shutdown.",
44660702
DM
17105 "optional" : 1,
17106 "type" : "boolean"
17107 },
25203dc1
NC
17108 "ssd" : {
17109 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
17110 "optional" : 1,
17111 "type" : "boolean"
17112 },
44660702
DM
17113 "trans" : {
17114 "description" : "Force disk geometry bios translation mode.",
17115 "enum" : [
17116 "none",
17117 "lba",
17118 "auto"
17119 ],
44660702
DM
17120 "optional" : 1,
17121 "type" : "string"
17122 },
17123 "volume" : {
17124 "alias" : "file"
17125 },
17126 "werror" : {
17127 "description" : "Write error action.",
17128 "enum" : [
17129 "enospc",
17130 "ignore",
17131 "report",
17132 "stop"
17133 ],
44660702
DM
17134 "optional" : 1,
17135 "type" : "string"
95895385
TL
17136 },
17137 "wwn" : {
17138 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
17139 "format_description" : "wwn",
17140 "optional" : 1,
17141 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
17142 "type" : "string"
56122987
DM
17143 }
17144 },
44660702 17145 "optional" : 1,
4d47f125 17146 "type" : "string"
27a7acb2
DM
17147 },
17148 "ipconfig[n]" : {
d2656385 17149 "description" : "cloud-init: Specify IP addresses and gateways for the corresponding interface.\n\nIP addresses use CIDR notation, gateways are optional but need an IP of the same type specified.\n\nThe special string 'dhcp' can be used for IP addresses to use DHCP, in which case no explicit\ngateway should be provided.\nFor IPv6 the special string 'auto' can be used to use stateless autoconfiguration. This requires\ncloud-init 19.4 or newer.\n\nIf cloud-init is enabled and neither an IPv4 nor an IPv6 address is specified, it defaults to using\ndhcp on IPv4.\n",
27a7acb2
DM
17150 "format" : "pve-qm-ipconfig",
17151 "optional" : 1,
4d47f125 17152 "type" : "string"
56122987 17153 },
95895385
TL
17154 "ivshmem" : {
17155 "description" : "Inter-VM shared memory. Useful for direct communication between VMs, or to the host.",
17156 "format" : {
17157 "name" : {
17158 "description" : "The name of the file. Will be prefixed with 'pve-shm-'. Default is the VMID. Will be deleted when the VM is stopped.",
17159 "format_description" : "string",
17160 "optional" : 1,
17161 "pattern" : "[a-zA-Z0-9\\-]+",
17162 "type" : "string"
17163 },
17164 "size" : {
17165 "description" : "The size of the file in MB.",
17166 "minimum" : 1,
17167 "type" : "integer"
17168 }
17169 },
17170 "optional" : 1,
17171 "type" : "string"
17172 },
4772952b
TL
17173 "keephugepages" : {
17174 "default" : 0,
17175 "description" : "Use together with hugepages. If enabled, hugepages will not not be deleted after VM shutdown and can be used for subsequent starts.",
17176 "optional" : 1,
17177 "type" : "boolean"
17178 },
44660702 17179 "keyboard" : {
35a75dd3 17180 "default" : null,
7af2edf9 17181 "description" : "Keyboard layout for VNC server. This option is generally not required and is often better handled from within the guest OS.",
44660702
DM
17182 "enum" : [
17183 "de",
17184 "de-ch",
17185 "da",
17186 "en-gb",
17187 "en-us",
17188 "es",
17189 "fi",
17190 "fr",
17191 "fr-be",
17192 "fr-ca",
17193 "fr-ch",
17194 "hu",
17195 "is",
17196 "it",
17197 "ja",
17198 "lt",
17199 "mk",
17200 "nl",
17201 "no",
17202 "pl",
17203 "pt",
17204 "pt-br",
17205 "sv",
17206 "sl",
17207 "tr"
17208 ],
56122987 17209 "optional" : 1,
44660702
DM
17210 "type" : "string"
17211 },
17212 "kvm" : {
7aacca6f 17213 "default" : 1,
44660702
DM
17214 "description" : "Enable/disable KVM hardware virtualization.",
17215 "optional" : 1,
4d47f125 17216 "type" : "boolean"
56122987 17217 },
44660702 17218 "localtime" : {
5370fa8c 17219 "description" : "Set the real time clock (RTC) to local time. This is enabled by default if the `ostype` indicates a Microsoft Windows OS.",
56122987 17220 "optional" : 1,
4d47f125 17221 "type" : "boolean"
56122987 17222 },
44660702
DM
17223 "lock" : {
17224 "description" : "Lock/unlock the VM.",
17225 "enum" : [
44660702 17226 "backup",
5f26e15b
TL
17227 "clone",
17228 "create",
17229 "migrate",
17230 "rollback",
44660702 17231 "snapshot",
95895385
TL
17232 "snapshot-delete",
17233 "suspending",
17234 "suspended"
44660702 17235 ],
7aacca6f 17236 "optional" : 1,
44660702
DM
17237 "type" : "string"
17238 },
17239 "machine" : {
907e4bc3
TL
17240 "description" : "Specify the QEMU machine.",
17241 "format" : {
17242 "type" : {
17243 "default_key" : 1,
17244 "description" : "Specifies the QEMU machine type.",
17245 "format_description" : "machine type",
17246 "maxLength" : 40,
17247 "optional" : 1,
17248 "pattern" : "(pc|pc(-i440fx)?-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|q35|pc-q35-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|virt(?:-\\d+(\\.\\d+)+)?(\\+pve\\d+)?)",
17249 "type" : "string"
17250 },
17251 "viommu" : {
17252 "description" : "Enable and set guest vIOMMU variant (Intel vIOMMU needs q35 to be set as machine type).",
17253 "enum" : [
17254 "intel",
17255 "virtio"
17256 ],
17257 "optional" : 1,
17258 "type" : "string"
17259 }
17260 },
44660702 17261 "optional" : 1,
44660702
DM
17262 "type" : "string"
17263 },
17264 "memory" : {
bd92b745
TL
17265 "description" : "Memory properties.",
17266 "format" : {
17267 "current" : {
17268 "default" : 512,
17269 "default_key" : 1,
17270 "description" : "Current amount of online RAM for the VM in MiB. This is the maximum available memory when you use the balloon device.",
17271 "minimum" : 16,
17272 "type" : "integer"
17273 }
17274 },
44660702 17275 "optional" : 1,
bd92b745 17276 "type" : "string"
44660702
DM
17277 },
17278 "migrate_downtime" : {
17279 "default" : 0.1,
17280 "description" : "Set maximum tolerated downtime (in seconds) for migrations.",
17281 "minimum" : 0,
17282 "optional" : 1,
4d47f125 17283 "type" : "number"
44660702
DM
17284 },
17285 "migrate_speed" : {
17286 "default" : 0,
17287 "description" : "Set maximum speed (in MB/s) for migrations. Value 0 is no limit.",
17288 "minimum" : 0,
17289 "optional" : 1,
4d47f125 17290 "type" : "integer"
44660702
DM
17291 },
17292 "name" : {
17293 "description" : "Set a name for the VM. Only used on the configuration web interface.",
17294 "format" : "dns-name",
17295 "optional" : 1,
4d47f125 17296 "type" : "string"
44660702 17297 },
27a7acb2 17298 "nameserver" : {
de786b48 17299 "description" : "cloud-init: Sets DNS server IP address for a container. Create will automatically use the setting from the host if neither searchdomain nor nameserver are set.",
27a7acb2
DM
17300 "format" : "address-list",
17301 "optional" : 1,
4d47f125 17302 "type" : "string"
27a7acb2 17303 },
44660702 17304 "net[n]" : {
c2993fe5 17305 "description" : "Specify network devices.",
f004f5b9
DM
17306 "format" : {
17307 "bridge" : {
c2993fe5 17308 "description" : "Bridge to attach the network device to. The Proxmox VE standard bridge\nis called 'vmbr0'.\n\nIf you do not specify a bridge, we create a kvm user (NATed) network\ndevice, which provides DHCP and DNS services. The following addresses\nare used:\n\n 10.0.2.2 Gateway\n 10.0.2.3 DNS Server\n 10.0.2.4 SMB Server\n\nThe DHCP server assign addresses to the guest starting from 10.0.2.15.\n",
7af2edf9 17309 "format" : "pve-bridge-id",
f004f5b9
DM
17310 "format_description" : "bridge",
17311 "optional" : 1,
17312 "type" : "string"
17313 },
17314 "e1000" : {
17315 "alias" : "macaddr",
17316 "keyAlias" : "model"
17317 },
17318 "e1000-82540em" : {
17319 "alias" : "macaddr",
17320 "keyAlias" : "model"
17321 },
17322 "e1000-82544gc" : {
17323 "alias" : "macaddr",
17324 "keyAlias" : "model"
17325 },
17326 "e1000-82545em" : {
17327 "alias" : "macaddr",
17328 "keyAlias" : "model"
17329 },
5370fa8c
TL
17330 "e1000e" : {
17331 "alias" : "macaddr",
17332 "keyAlias" : "model"
17333 },
f004f5b9
DM
17334 "firewall" : {
17335 "description" : "Whether this interface should be protected by the firewall.",
17336 "optional" : 1,
17337 "type" : "boolean"
17338 },
17339 "i82551" : {
17340 "alias" : "macaddr",
17341 "keyAlias" : "model"
17342 },
17343 "i82557b" : {
17344 "alias" : "macaddr",
17345 "keyAlias" : "model"
17346 },
17347 "i82559er" : {
17348 "alias" : "macaddr",
17349 "keyAlias" : "model"
17350 },
17351 "link_down" : {
c2993fe5 17352 "description" : "Whether this interface should be disconnected (like pulling the plug).",
f004f5b9
DM
17353 "optional" : 1,
17354 "type" : "boolean"
17355 },
17356 "macaddr" : {
c2993fe5 17357 "description" : "MAC address. That address must be unique withing your network. This is automatically generated if not specified.",
95895385 17358 "format" : "mac-addr",
f004f5b9 17359 "format_description" : "XX:XX:XX:XX:XX:XX",
f004f5b9 17360 "optional" : 1,
95895385
TL
17361 "type" : "string",
17362 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
f004f5b9
DM
17363 },
17364 "model" : {
17365 "default_key" : 1,
c2993fe5 17366 "description" : "Network Card Model. The 'virtio' model provides the best performance with very low CPU overhead. If your guest does not support this driver, it is usually best to use 'e1000'.",
f004f5b9 17367 "enum" : [
f004f5b9 17368 "e1000",
5370fa8c
TL
17369 "e1000-82540em",
17370 "e1000-82544gc",
17371 "e1000-82545em",
17372 "e1000e",
f004f5b9
DM
17373 "i82551",
17374 "i82557b",
17375 "i82559er",
5370fa8c
TL
17376 "ne2k_isa",
17377 "ne2k_pci",
17378 "pcnet",
17379 "rtl8139",
17380 "virtio",
17381 "vmxnet3"
f004f5b9 17382 ],
f004f5b9
DM
17383 "type" : "string"
17384 },
ac70d7d1
TL
17385 "mtu" : {
17386 "description" : "Force MTU, for VirtIO only. Set to '1' to use the bridge MTU",
17387 "maximum" : 65520,
17388 "minimum" : 1,
17389 "optional" : 1,
17390 "type" : "integer"
17391 },
f004f5b9
DM
17392 "ne2k_isa" : {
17393 "alias" : "macaddr",
17394 "keyAlias" : "model"
17395 },
17396 "ne2k_pci" : {
17397 "alias" : "macaddr",
17398 "keyAlias" : "model"
17399 },
17400 "pcnet" : {
17401 "alias" : "macaddr",
17402 "keyAlias" : "model"
17403 },
17404 "queues" : {
17405 "description" : "Number of packet queues to be used on the device.",
81a3384d 17406 "maximum" : 64,
f004f5b9
DM
17407 "minimum" : 0,
17408 "optional" : 1,
17409 "type" : "integer"
17410 },
17411 "rate" : {
c2993fe5 17412 "description" : "Rate limit in mbps (megabytes per second) as floating point number.",
f004f5b9
DM
17413 "minimum" : 0,
17414 "optional" : 1,
17415 "type" : "number"
17416 },
17417 "rtl8139" : {
17418 "alias" : "macaddr",
17419 "keyAlias" : "model"
17420 },
17421 "tag" : {
17422 "description" : "VLAN tag to apply to packets on this interface.",
17423 "maximum" : 4094,
c2993fe5 17424 "minimum" : 1,
f004f5b9
DM
17425 "optional" : 1,
17426 "type" : "integer"
17427 },
17428 "trunks" : {
17429 "description" : "VLAN trunks to pass through this interface.",
17430 "format_description" : "vlanid[;vlanid...]",
17431 "optional" : 1,
17432 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
17433 "type" : "string"
17434 },
17435 "virtio" : {
17436 "alias" : "macaddr",
17437 "keyAlias" : "model"
17438 },
17439 "vmxnet3" : {
17440 "alias" : "macaddr",
17441 "keyAlias" : "model"
17442 }
17443 },
44660702 17444 "optional" : 1,
4d47f125 17445 "type" : "string"
44660702
DM
17446 },
17447 "numa" : {
17448 "default" : 0,
17449 "description" : "Enable/disable NUMA.",
17450 "optional" : 1,
4d47f125 17451 "type" : "boolean"
44660702
DM
17452 },
17453 "numa[n]" : {
c2993fe5 17454 "description" : "NUMA topology.",
56122987 17455 "format" : {
7aacca6f 17456 "cpus" : {
c2993fe5 17457 "description" : "CPUs accessing this NUMA node.",
44660702
DM
17458 "format_description" : "id[-id];...",
17459 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
17460 "type" : "string"
7aacca6f
DM
17461 },
17462 "hostnodes" : {
c2993fe5 17463 "description" : "Host NUMA nodes to use.",
44660702 17464 "format_description" : "id[-id];...",
7aacca6f 17465 "optional" : 1,
7aacca6f 17466 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
44660702 17467 "type" : "string"
7aacca6f 17468 },
44660702 17469 "memory" : {
c2993fe5 17470 "description" : "Amount of memory this NUMA node provides.",
7aacca6f 17471 "optional" : 1,
44660702
DM
17472 "type" : "number"
17473 },
17474 "policy" : {
c2993fe5 17475 "description" : "NUMA allocation policy.",
7aacca6f
DM
17476 "enum" : [
17477 "preferred",
17478 "bind",
17479 "interleave"
17480 ],
44660702
DM
17481 "optional" : 1,
17482 "type" : "string"
56122987 17483 }
44660702 17484 },
56122987 17485 "optional" : 1,
4d47f125 17486 "type" : "string"
56122987 17487 },
44660702 17488 "onboot" : {
7aacca6f 17489 "default" : 0,
44660702
DM
17490 "description" : "Specifies whether a VM will be started during system bootup.",
17491 "optional" : 1,
4d47f125 17492 "type" : "boolean"
7aacca6f
DM
17493 },
17494 "ostype" : {
c2993fe5 17495 "description" : "Specify guest operating system.",
7aacca6f
DM
17496 "enum" : [
17497 "other",
17498 "wxp",
17499 "w2k",
17500 "w2k3",
17501 "w2k8",
17502 "wvista",
17503 "win7",
17504 "win8",
32d876b5 17505 "win10",
5370fa8c 17506 "win11",
7aacca6f
DM
17507 "l24",
17508 "l26",
17509 "solaris"
17510 ],
7aacca6f 17511 "optional" : 1,
c2993fe5 17512 "type" : "string",
1ffb0cf5 17513 "verbose_description" : "Specify guest operating system. This is used to enable special\noptimization/features for specific operating systems:\n\n[horizontal]\nother;; unspecified OS\nwxp;; Microsoft Windows XP\nw2k;; Microsoft Windows 2000\nw2k3;; Microsoft Windows 2003\nw2k8;; Microsoft Windows 2008\nwvista;; Microsoft Windows Vista\nwin7;; Microsoft Windows 7\nwin8;; Microsoft Windows 8/2012/2012r2\nwin10;; Microsoft Windows 10/2016/2019\nwin11;; Microsoft Windows 11/2022/2025\nl24;; Linux 2.4 Kernel\nl26;; Linux 2.6 - 6.X Kernel\nsolaris;; Solaris/OpenSolaris/OpenIndiania kernel\n"
56122987 17514 },
44660702 17515 "parallel[n]" : {
c2993fe5 17516 "description" : "Map host parallel devices (n is 0 to 2).",
7aacca6f 17517 "optional" : 1,
44660702 17518 "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+",
c2993fe5 17519 "type" : "string",
4772952b 17520 "verbose_description" : "Map host parallel devices (n is 0 to 2).\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such\nmachines - use with special care.\n\nCAUTION: Experimental! User reported problems with this option.\n"
7aacca6f
DM
17521 },
17522 "protection" : {
17523 "default" : 0,
c2993fe5 17524 "description" : "Sets the protection flag of the VM. This will disable the remove VM and remove disk operations.",
7aacca6f 17525 "optional" : 1,
4d47f125 17526 "type" : "boolean"
7aacca6f 17527 },
44660702
DM
17528 "reboot" : {
17529 "default" : 1,
17530 "description" : "Allow reboot. If set to '0' the VM exit on reboot.",
7aacca6f 17531 "optional" : 1,
4d47f125 17532 "type" : "boolean"
44660702 17533 },
c5aa7e14
TL
17534 "rng0" : {
17535 "description" : "Configure a VirtIO-based Random Number Generator.",
17536 "format" : {
17537 "max_bytes" : {
17538 "default" : 1024,
5370fa8c 17539 "description" : "Maximum bytes of entropy allowed to get injected into the guest every 'period' milliseconds. Prefer a lower value when using '/dev/random' as source. Use `0` to disable limiting (potentially dangerous!).",
c5aa7e14
TL
17540 "optional" : 1,
17541 "type" : "integer"
17542 },
17543 "period" : {
17544 "default" : 1000,
17545 "description" : "Every 'period' milliseconds the entropy-injection quota is reset, allowing the guest to retrieve another 'max_bytes' of entropy.",
17546 "optional" : 1,
17547 "type" : "integer"
17548 },
17549 "source" : {
17550 "default_key" : 1,
5370fa8c 17551 "description" : "The file on the host to gather entropy from. In most cases '/dev/urandom' should be preferred over '/dev/random' to avoid entropy-starvation issues on the host. Using urandom does *not* decrease security in any meaningful way, as it's still seeded from real entropy, and the bytes provided will most likely be mixed with real entropy on the guest as well. '/dev/hwrng' can be used to pass through a hardware RNG from the host.",
c5aa7e14
TL
17552 "enum" : [
17553 "/dev/urandom",
17554 "/dev/random",
17555 "/dev/hwrng"
17556 ],
17557 "type" : "string"
17558 }
17559 },
17560 "optional" : 1,
17561 "type" : "string"
17562 },
44660702 17563 "sata[n]" : {
7af2edf9 17564 "description" : "Use volume as SATA hard disk or CD-ROM (n is 0 to 5).",
56122987 17565 "format" : {
44660702
DM
17566 "aio" : {
17567 "description" : "AIO type to use.",
7aacca6f 17568 "enum" : [
44660702 17569 "native",
8f4d9c87
TL
17570 "threads",
17571 "io_uring"
7aacca6f 17572 ],
44660702
DM
17573 "optional" : 1,
17574 "type" : "string"
7aacca6f 17575 },
44660702
DM
17576 "backup" : {
17577 "description" : "Whether the drive should be included when making backups.",
56122987 17578 "optional" : 1,
7aacca6f 17579 "type" : "boolean"
44660702
DM
17580 },
17581 "bps" : {
de0983cb 17582 "description" : "Maximum r/w speed in bytes per second.",
44660702 17583 "format_description" : "bps",
7aacca6f 17584 "optional" : 1,
44660702 17585 "type" : "integer"
56122987 17586 },
de0983cb
DM
17587 "bps_max_length" : {
17588 "description" : "Maximum length of I/O bursts in seconds.",
17589 "format_description" : "seconds",
17590 "minimum" : 1,
17591 "optional" : 1,
17592 "type" : "integer"
17593 },
44660702 17594 "bps_rd" : {
de0983cb 17595 "description" : "Maximum read speed in bytes per second.",
44660702 17596 "format_description" : "bps",
56122987 17597 "optional" : 1,
44660702 17598 "type" : "integer"
56122987 17599 },
de0983cb 17600 "bps_rd_length" : {
5d9c884c
DM
17601 "alias" : "bps_rd_max_length"
17602 },
17603 "bps_rd_max_length" : {
de0983cb
DM
17604 "description" : "Maximum length of read I/O bursts in seconds.",
17605 "format_description" : "seconds",
17606 "minimum" : 1,
17607 "optional" : 1,
17608 "type" : "integer"
17609 },
44660702 17610 "bps_wr" : {
de0983cb 17611 "description" : "Maximum write speed in bytes per second.",
44660702 17612 "format_description" : "bps",
56122987 17613 "optional" : 1,
44660702 17614 "type" : "integer"
56122987 17615 },
de0983cb 17616 "bps_wr_length" : {
5d9c884c
DM
17617 "alias" : "bps_wr_max_length"
17618 },
17619 "bps_wr_max_length" : {
de0983cb
DM
17620 "description" : "Maximum length of write I/O bursts in seconds.",
17621 "format_description" : "seconds",
17622 "minimum" : 1,
17623 "optional" : 1,
17624 "type" : "integer"
17625 },
56122987 17626 "cache" : {
44660702 17627 "description" : "The drive's cache mode",
56122987
DM
17628 "enum" : [
17629 "none",
17630 "writethrough",
17631 "writeback",
17632 "unsafe",
17633 "directsync"
17634 ],
56122987 17635 "optional" : 1,
44660702 17636 "type" : "string"
56122987 17637 },
44660702
DM
17638 "cyls" : {
17639 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
7aacca6f 17640 "optional" : 1,
44660702 17641 "type" : "integer"
7aacca6f
DM
17642 },
17643 "detect_zeroes" : {
17644 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
56122987 17645 "optional" : 1,
44660702 17646 "type" : "boolean"
56122987 17647 },
44660702
DM
17648 "discard" : {
17649 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
17650 "enum" : [
17651 "ignore",
17652 "on"
17653 ],
56122987 17654 "optional" : 1,
44660702 17655 "type" : "string"
7aacca6f 17656 },
44660702
DM
17657 "file" : {
17658 "default_key" : 1,
17659 "description" : "The drive's backing volume.",
17660 "format" : "pve-volume-id-or-qm-path",
17661 "format_description" : "volume",
17662 "type" : "string"
56122987 17663 },
7aacca6f 17664 "format" : {
44660702 17665 "description" : "The drive's backing file's data format.",
7aacca6f
DM
17666 "enum" : [
17667 "raw",
17668 "cow",
17669 "qcow",
17670 "qed",
17671 "qcow2",
17672 "vmdk",
17673 "cloop"
17674 ],
7aacca6f 17675 "optional" : 1,
44660702 17676 "type" : "string"
56122987 17677 },
7aacca6f 17678 "heads" : {
7aacca6f 17679 "description" : "Force the drive's physical geometry to have a specific head count.",
56122987 17680 "optional" : 1,
7aacca6f 17681 "type" : "integer"
56122987 17682 },
44660702 17683 "iops" : {
de0983cb 17684 "description" : "Maximum r/w I/O in operations per second.",
44660702 17685 "format_description" : "iops",
56122987 17686 "optional" : 1,
44660702 17687 "type" : "integer"
56122987 17688 },
44660702 17689 "iops_max" : {
de0983cb 17690 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 17691 "format_description" : "iops",
56122987 17692 "optional" : 1,
44660702 17693 "type" : "integer"
56122987 17694 },
de0983cb
DM
17695 "iops_max_length" : {
17696 "description" : "Maximum length of I/O bursts in seconds.",
17697 "format_description" : "seconds",
17698 "minimum" : 1,
17699 "optional" : 1,
17700 "type" : "integer"
17701 },
44660702 17702 "iops_rd" : {
de0983cb 17703 "description" : "Maximum read I/O in operations per second.",
44660702 17704 "format_description" : "iops",
7aacca6f 17705 "optional" : 1,
44660702 17706 "type" : "integer"
56122987 17707 },
de0983cb 17708 "iops_rd_length" : {
5d9c884c 17709 "alias" : "iops_rd_max_length"
de0983cb 17710 },
44660702 17711 "iops_rd_max" : {
de0983cb 17712 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702 17713 "format_description" : "iops",
56122987 17714 "optional" : 1,
44660702 17715 "type" : "integer"
7aacca6f 17716 },
5d9c884c
DM
17717 "iops_rd_max_length" : {
17718 "description" : "Maximum length of read I/O bursts in seconds.",
17719 "format_description" : "seconds",
17720 "minimum" : 1,
17721 "optional" : 1,
17722 "type" : "integer"
17723 },
44660702 17724 "iops_wr" : {
de0983cb 17725 "description" : "Maximum write I/O in operations per second.",
44660702 17726 "format_description" : "iops",
56122987 17727 "optional" : 1,
44660702 17728 "type" : "integer"
56122987 17729 },
de0983cb 17730 "iops_wr_length" : {
5d9c884c 17731 "alias" : "iops_wr_max_length"
de0983cb 17732 },
56122987 17733 "iops_wr_max" : {
de0983cb 17734 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702 17735 "format_description" : "iops",
56122987 17736 "optional" : 1,
44660702 17737 "type" : "integer"
56122987 17738 },
5d9c884c
DM
17739 "iops_wr_max_length" : {
17740 "description" : "Maximum length of write I/O bursts in seconds.",
17741 "format_description" : "seconds",
17742 "minimum" : 1,
17743 "optional" : 1,
17744 "type" : "integer"
17745 },
44660702 17746 "mbps" : {
de0983cb 17747 "description" : "Maximum r/w speed in megabytes per second.",
44660702 17748 "format_description" : "mbps",
56122987 17749 "optional" : 1,
44660702 17750 "type" : "number"
56122987 17751 },
44660702 17752 "mbps_max" : {
de0983cb 17753 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702
DM
17754 "format_description" : "mbps",
17755 "optional" : 1,
17756 "type" : "number"
56122987 17757 },
44660702 17758 "mbps_rd" : {
de0983cb 17759 "description" : "Maximum read speed in megabytes per second.",
44660702 17760 "format_description" : "mbps",
56122987 17761 "optional" : 1,
44660702 17762 "type" : "number"
56122987 17763 },
44660702 17764 "mbps_rd_max" : {
de0983cb 17765 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702 17766 "format_description" : "mbps",
56122987 17767 "optional" : 1,
44660702 17768 "type" : "number"
56122987 17769 },
44660702 17770 "mbps_wr" : {
de0983cb 17771 "description" : "Maximum write speed in megabytes per second.",
56122987 17772 "format_description" : "mbps",
44660702
DM
17773 "optional" : 1,
17774 "type" : "number"
56122987 17775 },
44660702 17776 "mbps_wr_max" : {
de0983cb 17777 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702
DM
17778 "format_description" : "mbps",
17779 "optional" : 1,
17780 "type" : "number"
7aacca6f 17781 },
44660702
DM
17782 "media" : {
17783 "default" : "disk",
17784 "description" : "The drive's media type.",
17785 "enum" : [
17786 "cdrom",
17787 "disk"
17788 ],
56122987 17789 "optional" : 1,
44660702
DM
17790 "type" : "string"
17791 },
5d9c884c
DM
17792 "replicate" : {
17793 "default" : 1,
17794 "description" : "Whether the drive should considered for replication jobs.",
17795 "optional" : 1,
17796 "type" : "boolean"
17797 },
44660702
DM
17798 "rerror" : {
17799 "description" : "Read error action.",
7aacca6f 17800 "enum" : [
44660702
DM
17801 "ignore",
17802 "report",
17803 "stop"
17804 ],
7aacca6f 17805 "optional" : 1,
44660702 17806 "type" : "string"
56122987 17807 },
44660702
DM
17808 "secs" : {
17809 "description" : "Force the drive's physical geometry to have a specific sector count.",
56122987 17810 "optional" : 1,
44660702 17811 "type" : "integer"
56122987 17812 },
44660702
DM
17813 "serial" : {
17814 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
17815 "format" : "urlencoded",
17816 "format_description" : "serial",
17817 "maxLength" : 60,
56122987 17818 "optional" : 1,
44660702 17819 "type" : "string"
56122987 17820 },
27a7acb2
DM
17821 "shared" : {
17822 "default" : 0,
17823 "description" : "Mark this locally-managed volume as available on all nodes",
17824 "optional" : 1,
17825 "type" : "boolean",
17826 "verbose_description" : "Mark this locally-managed volume as available on all nodes.\n\nWARNING: This option does not share the volume automatically, it assumes it is shared already!"
17827 },
44660702
DM
17828 "size" : {
17829 "description" : "Disk size. This is purely informational and has no effect.",
17830 "format" : "disk-size",
f004f5b9 17831 "format_description" : "DiskSize",
44660702
DM
17832 "optional" : 1,
17833 "type" : "string"
17834 },
17835 "snapshot" : {
27a7acb2 17836 "description" : "Controls qemu's snapshot mode feature. If activated, changes made to the disk are temporary and will be discarded when the VM is shutdown.",
56122987 17837 "optional" : 1,
44660702
DM
17838 "type" : "boolean"
17839 },
25203dc1
NC
17840 "ssd" : {
17841 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
17842 "optional" : 1,
17843 "type" : "boolean"
17844 },
44660702
DM
17845 "trans" : {
17846 "description" : "Force disk geometry bios translation mode.",
56122987 17847 "enum" : [
7aacca6f
DM
17848 "none",
17849 "lba",
17850 "auto"
56122987 17851 ],
44660702
DM
17852 "optional" : 1,
17853 "type" : "string"
56122987 17854 },
7aacca6f
DM
17855 "volume" : {
17856 "alias" : "file"
56122987 17857 },
44660702
DM
17858 "werror" : {
17859 "description" : "Write error action.",
17860 "enum" : [
17861 "enospc",
17862 "ignore",
17863 "report",
17864 "stop"
17865 ],
7aacca6f 17866 "optional" : 1,
44660702 17867 "type" : "string"
95895385
TL
17868 },
17869 "wwn" : {
17870 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
17871 "format_description" : "wwn",
17872 "optional" : 1,
17873 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
17874 "type" : "string"
44660702
DM
17875 }
17876 },
17877 "optional" : 1,
4d47f125 17878 "type" : "string"
44660702
DM
17879 },
17880 "scsi[n]" : {
7af2edf9 17881 "description" : "Use volume as SCSI hard disk or CD-ROM (n is 0 to 30).",
44660702 17882 "format" : {
56122987 17883 "aio" : {
56122987
DM
17884 "description" : "AIO type to use.",
17885 "enum" : [
17886 "native",
8f4d9c87
TL
17887 "threads",
17888 "io_uring"
56122987 17889 ],
7aacca6f 17890 "optional" : 1,
44660702 17891 "type" : "string"
56122987 17892 },
44660702
DM
17893 "backup" : {
17894 "description" : "Whether the drive should be included when making backups.",
56122987 17895 "optional" : 1,
44660702 17896 "type" : "boolean"
56122987 17897 },
44660702 17898 "bps" : {
de0983cb 17899 "description" : "Maximum r/w speed in bytes per second.",
44660702 17900 "format_description" : "bps",
56122987 17901 "optional" : 1,
44660702 17902 "type" : "integer"
56122987 17903 },
de0983cb
DM
17904 "bps_max_length" : {
17905 "description" : "Maximum length of I/O bursts in seconds.",
17906 "format_description" : "seconds",
17907 "minimum" : 1,
17908 "optional" : 1,
17909 "type" : "integer"
17910 },
44660702 17911 "bps_rd" : {
de0983cb 17912 "description" : "Maximum read speed in bytes per second.",
44660702 17913 "format_description" : "bps",
56122987 17914 "optional" : 1,
44660702 17915 "type" : "integer"
56122987 17916 },
de0983cb 17917 "bps_rd_length" : {
5d9c884c
DM
17918 "alias" : "bps_rd_max_length"
17919 },
17920 "bps_rd_max_length" : {
de0983cb
DM
17921 "description" : "Maximum length of read I/O bursts in seconds.",
17922 "format_description" : "seconds",
17923 "minimum" : 1,
17924 "optional" : 1,
17925 "type" : "integer"
17926 },
7aacca6f 17927 "bps_wr" : {
de0983cb 17928 "description" : "Maximum write speed in bytes per second.",
7aacca6f 17929 "format_description" : "bps",
56122987 17930 "optional" : 1,
44660702 17931 "type" : "integer"
56122987 17932 },
de0983cb 17933 "bps_wr_length" : {
5d9c884c
DM
17934 "alias" : "bps_wr_max_length"
17935 },
17936 "bps_wr_max_length" : {
de0983cb
DM
17937 "description" : "Maximum length of write I/O bursts in seconds.",
17938 "format_description" : "seconds",
17939 "minimum" : 1,
17940 "optional" : 1,
17941 "type" : "integer"
17942 },
44660702
DM
17943 "cache" : {
17944 "description" : "The drive's cache mode",
7aacca6f 17945 "enum" : [
44660702
DM
17946 "none",
17947 "writethrough",
17948 "writeback",
17949 "unsafe",
17950 "directsync"
7aacca6f 17951 ],
56122987 17952 "optional" : 1,
44660702 17953 "type" : "string"
56122987 17954 },
44660702
DM
17955 "cyls" : {
17956 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
7aacca6f 17957 "optional" : 1,
44660702 17958 "type" : "integer"
56122987 17959 },
44660702
DM
17960 "detect_zeroes" : {
17961 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
56122987 17962 "optional" : 1,
44660702 17963 "type" : "boolean"
56122987 17964 },
44660702
DM
17965 "discard" : {
17966 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
17967 "enum" : [
17968 "ignore",
17969 "on"
17970 ],
7aacca6f 17971 "optional" : 1,
44660702 17972 "type" : "string"
56122987 17973 },
44660702
DM
17974 "file" : {
17975 "default_key" : 1,
17976 "description" : "The drive's backing volume.",
17977 "format" : "pve-volume-id-or-qm-path",
17978 "format_description" : "volume",
17979 "type" : "string"
56122987 17980 },
7aacca6f 17981 "format" : {
44660702 17982 "description" : "The drive's backing file's data format.",
56122987 17983 "enum" : [
7aacca6f
DM
17984 "raw",
17985 "cow",
17986 "qcow",
17987 "qed",
17988 "qcow2",
17989 "vmdk",
17990 "cloop"
17991 ],
44660702
DM
17992 "optional" : 1,
17993 "type" : "string"
56122987 17994 },
44660702
DM
17995 "heads" : {
17996 "description" : "Force the drive's physical geometry to have a specific head count.",
56122987 17997 "optional" : 1,
7aacca6f 17998 "type" : "integer"
56122987 17999 },
44660702 18000 "iops" : {
de0983cb 18001 "description" : "Maximum r/w I/O in operations per second.",
7aacca6f 18002 "format_description" : "iops",
44660702
DM
18003 "optional" : 1,
18004 "type" : "integer"
7aacca6f 18005 },
44660702 18006 "iops_max" : {
de0983cb 18007 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 18008 "format_description" : "iops",
56122987 18009 "optional" : 1,
44660702 18010 "type" : "integer"
7aacca6f 18011 },
de0983cb
DM
18012 "iops_max_length" : {
18013 "description" : "Maximum length of I/O bursts in seconds.",
18014 "format_description" : "seconds",
18015 "minimum" : 1,
18016 "optional" : 1,
18017 "type" : "integer"
18018 },
44660702 18019 "iops_rd" : {
de0983cb 18020 "description" : "Maximum read I/O in operations per second.",
44660702 18021 "format_description" : "iops",
7aacca6f 18022 "optional" : 1,
44660702 18023 "type" : "integer"
56122987 18024 },
de0983cb 18025 "iops_rd_length" : {
5d9c884c 18026 "alias" : "iops_rd_max_length"
de0983cb 18027 },
44660702 18028 "iops_rd_max" : {
de0983cb 18029 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702
DM
18030 "format_description" : "iops",
18031 "optional" : 1,
18032 "type" : "integer"
18033 },
5d9c884c
DM
18034 "iops_rd_max_length" : {
18035 "description" : "Maximum length of read I/O bursts in seconds.",
18036 "format_description" : "seconds",
18037 "minimum" : 1,
18038 "optional" : 1,
18039 "type" : "integer"
18040 },
44660702 18041 "iops_wr" : {
de0983cb 18042 "description" : "Maximum write I/O in operations per second.",
44660702 18043 "format_description" : "iops",
56122987 18044 "optional" : 1,
44660702
DM
18045 "type" : "integer"
18046 },
de0983cb 18047 "iops_wr_length" : {
5d9c884c 18048 "alias" : "iops_wr_max_length"
de0983cb 18049 },
44660702 18050 "iops_wr_max" : {
de0983cb 18051 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702
DM
18052 "format_description" : "iops",
18053 "optional" : 1,
18054 "type" : "integer"
56122987 18055 },
5d9c884c
DM
18056 "iops_wr_max_length" : {
18057 "description" : "Maximum length of write I/O bursts in seconds.",
18058 "format_description" : "seconds",
18059 "minimum" : 1,
18060 "optional" : 1,
18061 "type" : "integer"
18062 },
7aacca6f 18063 "iothread" : {
7aacca6f 18064 "description" : "Whether to use iothreads for this drive",
56122987 18065 "optional" : 1,
56122987
DM
18066 "type" : "boolean"
18067 },
44660702 18068 "mbps" : {
de0983cb 18069 "description" : "Maximum r/w speed in megabytes per second.",
44660702
DM
18070 "format_description" : "mbps",
18071 "optional" : 1,
18072 "type" : "number"
18073 },
18074 "mbps_max" : {
de0983cb 18075 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702
DM
18076 "format_description" : "mbps",
18077 "optional" : 1,
18078 "type" : "number"
18079 },
18080 "mbps_rd" : {
de0983cb 18081 "description" : "Maximum read speed in megabytes per second.",
44660702
DM
18082 "format_description" : "mbps",
18083 "optional" : 1,
18084 "type" : "number"
18085 },
18086 "mbps_rd_max" : {
de0983cb 18087 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702
DM
18088 "format_description" : "mbps",
18089 "optional" : 1,
18090 "type" : "number"
18091 },
18092 "mbps_wr" : {
de0983cb 18093 "description" : "Maximum write speed in megabytes per second.",
44660702
DM
18094 "format_description" : "mbps",
18095 "optional" : 1,
18096 "type" : "number"
18097 },
18098 "mbps_wr_max" : {
de0983cb 18099 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702
DM
18100 "format_description" : "mbps",
18101 "optional" : 1,
18102 "type" : "number"
18103 },
7aacca6f 18104 "media" : {
44660702
DM
18105 "default" : "disk",
18106 "description" : "The drive's media type.",
7aacca6f
DM
18107 "enum" : [
18108 "cdrom",
18109 "disk"
18110 ],
56122987 18111 "optional" : 1,
44660702
DM
18112 "type" : "string"
18113 },
c6d5bae8
TL
18114 "product" : {
18115 "description" : "The drive's product name, up to 16 bytes long.",
18116 "format_description" : "product",
18117 "optional" : 1,
18118 "pattern" : "[A-Za-z0-9\\-_\\s]{,16}",
18119 "type" : "string"
18120 },
44660702
DM
18121 "queues" : {
18122 "description" : "Number of queues.",
44660702
DM
18123 "minimum" : 2,
18124 "optional" : 1,
18125 "type" : "integer"
18126 },
5d9c884c
DM
18127 "replicate" : {
18128 "default" : 1,
18129 "description" : "Whether the drive should considered for replication jobs.",
18130 "optional" : 1,
18131 "type" : "boolean"
18132 },
18133 "rerror" : {
18134 "description" : "Read error action.",
18135 "enum" : [
18136 "ignore",
18137 "report",
18138 "stop"
18139 ],
18140 "optional" : 1,
18141 "type" : "string"
18142 },
5370fa8c
TL
18143 "ro" : {
18144 "description" : "Whether the drive is read-only.",
18145 "optional" : 1,
18146 "type" : "boolean"
18147 },
52e44c50
FG
18148 "scsiblock" : {
18149 "default" : 0,
18150 "description" : "whether to use scsi-block for full passthrough of host block device\n\nWARNING: can lead to I/O errors in combination with low memory or high memory fragmentation on host",
18151 "optional" : 1,
18152 "type" : "boolean"
18153 },
44660702
DM
18154 "secs" : {
18155 "description" : "Force the drive's physical geometry to have a specific sector count.",
44660702
DM
18156 "optional" : 1,
18157 "type" : "integer"
18158 },
18159 "serial" : {
18160 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
18161 "format" : "urlencoded",
18162 "format_description" : "serial",
18163 "maxLength" : 60,
18164 "optional" : 1,
18165 "type" : "string"
18166 },
27a7acb2
DM
18167 "shared" : {
18168 "default" : 0,
18169 "description" : "Mark this locally-managed volume as available on all nodes",
18170 "optional" : 1,
18171 "type" : "boolean",
18172 "verbose_description" : "Mark this locally-managed volume as available on all nodes.\n\nWARNING: This option does not share the volume automatically, it assumes it is shared already!"
18173 },
44660702
DM
18174 "size" : {
18175 "description" : "Disk size. This is purely informational and has no effect.",
18176 "format" : "disk-size",
f004f5b9 18177 "format_description" : "DiskSize",
44660702
DM
18178 "optional" : 1,
18179 "type" : "string"
56122987 18180 },
7aacca6f 18181 "snapshot" : {
27a7acb2 18182 "description" : "Controls qemu's snapshot mode feature. If activated, changes made to the disk are temporary and will be discarded when the VM is shutdown.",
7aacca6f 18183 "optional" : 1,
44660702 18184 "type" : "boolean"
7aacca6f 18185 },
25203dc1
NC
18186 "ssd" : {
18187 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
18188 "optional" : 1,
18189 "type" : "boolean"
18190 },
44660702
DM
18191 "trans" : {
18192 "description" : "Force disk geometry bios translation mode.",
18193 "enum" : [
18194 "none",
18195 "lba",
18196 "auto"
18197 ],
44660702
DM
18198 "optional" : 1,
18199 "type" : "string"
18200 },
c6d5bae8
TL
18201 "vendor" : {
18202 "description" : "The drive's vendor name, up to 8 bytes long.",
18203 "format_description" : "vendor",
18204 "optional" : 1,
18205 "pattern" : "[A-Za-z0-9\\-_\\s]{,8}",
18206 "type" : "string"
18207 },
44660702
DM
18208 "volume" : {
18209 "alias" : "file"
18210 },
18211 "werror" : {
18212 "description" : "Write error action.",
18213 "enum" : [
18214 "enospc",
18215 "ignore",
18216 "report",
18217 "stop"
18218 ],
56122987 18219 "optional" : 1,
44660702 18220 "type" : "string"
95895385
TL
18221 },
18222 "wwn" : {
18223 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
18224 "format_description" : "wwn",
18225 "optional" : 1,
18226 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
18227 "type" : "string"
56122987 18228 }
44660702 18229 },
7aacca6f 18230 "optional" : 1,
4d47f125 18231 "type" : "string"
44660702
DM
18232 },
18233 "scsihw" : {
18234 "default" : "lsi",
c2993fe5 18235 "description" : "SCSI controller model",
7aacca6f 18236 "enum" : [
44660702
DM
18237 "lsi",
18238 "lsi53c810",
18239 "virtio-scsi-pci",
18240 "virtio-scsi-single",
18241 "megasas",
18242 "pvscsi"
7aacca6f 18243 ],
44660702
DM
18244 "optional" : 1,
18245 "type" : "string"
56122987 18246 },
27a7acb2 18247 "searchdomain" : {
de786b48 18248 "description" : "cloud-init: Sets DNS search domains for a container. Create will automatically use the setting from the host if neither searchdomain nor nameserver are set.",
27a7acb2 18249 "optional" : 1,
4d47f125 18250 "type" : "string"
27a7acb2 18251 },
44660702 18252 "serial[n]" : {
c2993fe5 18253 "description" : "Create a serial device inside the VM (n is 0 to 3)",
7aacca6f 18254 "optional" : 1,
44660702 18255 "pattern" : "(/dev/.+|socket)",
c2993fe5 18256 "type" : "string",
4772952b 18257 "verbose_description" : "Create a serial device inside the VM (n is 0 to 3), and pass through a\nhost serial device (i.e. /dev/ttyS0), or create a unix socket on the\nhost side (use 'qm terminal' to open a terminal connection).\n\nNOTE: If you pass through a host serial device, it is no longer possible to migrate such machines -\nuse with special care.\n\nCAUTION: Experimental! User reported problems with this option.\n"
7aacca6f 18258 },
44660702
DM
18259 "shares" : {
18260 "default" : 1000,
5da3d723 18261 "description" : "Amount of memory shares for auto-ballooning. The larger the number is, the more memory this VM gets. Number is relative to weights of all other running VMs. Using zero disables auto-ballooning. Auto-ballooning is done by pvestatd.",
44660702
DM
18262 "maximum" : 50000,
18263 "minimum" : 0,
56122987 18264 "optional" : 1,
4d47f125 18265 "type" : "integer"
56122987 18266 },
44660702
DM
18267 "smbios1" : {
18268 "description" : "Specify SMBIOS type 1 fields.",
18269 "format" : "pve-qm-smbios1",
1e3f8156 18270 "maxLength" : 512,
56122987 18271 "optional" : 1,
4d47f125 18272 "type" : "string"
56122987 18273 },
44660702
DM
18274 "smp" : {
18275 "default" : 1,
18276 "description" : "The number of CPUs. Please use option -sockets instead.",
7aacca6f 18277 "minimum" : 1,
7aacca6f 18278 "optional" : 1,
4d47f125 18279 "type" : "integer"
7aacca6f 18280 },
44660702
DM
18281 "sockets" : {
18282 "default" : 1,
18283 "description" : "The number of CPU sockets.",
18284 "minimum" : 1,
7aacca6f 18285 "optional" : 1,
4d47f125 18286 "type" : "integer"
56122987 18287 },
1c532546
TL
18288 "spice_enhancements" : {
18289 "description" : "Configure additional enhancements for SPICE.",
18290 "format" : {
18291 "foldersharing" : {
18292 "default" : "0",
18293 "description" : "Enable folder sharing via SPICE. Needs Spice-WebDAV daemon installed in the VM.",
18294 "optional" : 1,
18295 "type" : "boolean"
18296 },
18297 "videostreaming" : {
18298 "default" : "off",
18299 "description" : "Enable video streaming. Uses compression for detected video streams.",
18300 "enum" : [
18301 "off",
18302 "all",
18303 "filter"
18304 ],
18305 "optional" : 1,
18306 "type" : "string"
18307 }
18308 },
18309 "optional" : 1,
18310 "type" : "string"
18311 },
27a7acb2
DM
18312 "sshkeys" : {
18313 "description" : "cloud-init: Setup public SSH keys (one key per line, OpenSSH format).",
18314 "format" : "urlencoded",
18315 "optional" : 1,
4d47f125 18316 "type" : "string"
27a7acb2 18317 },
44660702
DM
18318 "startdate" : {
18319 "default" : "now",
4772952b 18320 "description" : "Set the initial date of the real time clock. Valid format for date are:'now' or '2006-06-17T16:01:21' or '2006-06-17'.",
7aacca6f 18321 "optional" : 1,
44660702 18322 "pattern" : "(now|\\d{4}-\\d{1,2}-\\d{1,2}(T\\d{1,2}:\\d{1,2}:\\d{1,2})?)",
7aacca6f 18323 "type" : "string",
44660702 18324 "typetext" : "(now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)"
56122987 18325 },
7aacca6f 18326 "startup" : {
7aacca6f 18327 "description" : "Startup and shutdown behavior. Order is a non-negative number defining the general startup order. Shutdown in done with reverse ordering. Additionally you can set the 'up' or 'down' delay in seconds, which specifies a delay to wait before the next VM is started or stopped.",
44660702 18328 "format" : "pve-startup-order",
56122987 18329 "optional" : 1,
44660702
DM
18330 "type" : "string",
18331 "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
56122987 18332 },
44660702 18333 "tablet" : {
7aacca6f 18334 "default" : 1,
c2993fe5 18335 "description" : "Enable/disable the USB tablet device.",
7aacca6f 18336 "optional" : 1,
c2993fe5 18337 "type" : "boolean",
4772952b 18338 "verbose_description" : "Enable/disable the USB tablet device. This device is usually needed to allow absolute mouse positioning with VNC. Else the mouse runs out of sync with normal VNC clients. If you're running lots of console-only guests on one host, you may consider disabling this to save some context switches. This is turned off by default if you use spice (`qm set <vmid> --vga qxl`)."
56122987 18339 },
5c1699e5
TL
18340 "tags" : {
18341 "description" : "Tags of the VM. This is only meta information.",
18342 "format" : "pve-tag-list",
18343 "optional" : 1,
18344 "type" : "string"
18345 },
44660702
DM
18346 "tdf" : {
18347 "default" : 0,
18348 "description" : "Enable/disable time drift fix.",
7aacca6f 18349 "optional" : 1,
4d47f125 18350 "type" : "boolean"
7aacca6f 18351 },
44660702
DM
18352 "template" : {
18353 "default" : 0,
18354 "description" : "Enable/disable Template.",
7aacca6f 18355 "optional" : 1,
4d47f125 18356 "type" : "boolean"
7aacca6f 18357 },
5370fa8c 18358 "tpmstate0" : {
7af2edf9 18359 "description" : "Configure a Disk for storing TPM state. The format is fixed to 'raw'.",
5370fa8c
TL
18360 "format" : {
18361 "file" : {
18362 "default_key" : 1,
18363 "description" : "The drive's backing volume.",
18364 "format" : "pve-volume-id-or-qm-path",
18365 "format_description" : "volume",
18366 "type" : "string"
18367 },
18368 "size" : {
18369 "description" : "Disk size. This is purely informational and has no effect.",
18370 "format" : "disk-size",
18371 "format_description" : "DiskSize",
18372 "optional" : 1,
18373 "type" : "string"
18374 },
18375 "version" : {
18376 "default" : "v2.0",
18377 "description" : "The TPM interface version. v2.0 is newer and should be preferred. Note that this cannot be changed later on.",
18378 "enum" : [
18379 "v1.2",
18380 "v2.0"
18381 ],
18382 "optional" : 1,
18383 "type" : "string"
18384 },
18385 "volume" : {
18386 "alias" : "file"
18387 }
18388 },
18389 "optional" : 1,
18390 "type" : "string"
18391 },
44660702 18392 "unused[n]" : {
c2993fe5 18393 "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
c5aa7e14
TL
18394 "format" : {
18395 "file" : {
18396 "default_key" : 1,
18397 "description" : "The drive's backing volume.",
18398 "format" : "pve-volume-id",
18399 "format_description" : "volume",
18400 "type" : "string"
18401 },
18402 "volume" : {
18403 "alias" : "file"
18404 }
18405 },
7aacca6f 18406 "optional" : 1,
4d47f125 18407 "type" : "string"
7aacca6f 18408 },
44660702 18409 "usb[n]" : {
4e7f60c2 18410 "description" : "Configure an USB device (n is 0 to 4, for machine version >= 7.1 and ostype l26 or windows > 7, n can be up to 14).",
44660702
DM
18411 "format" : {
18412 "host" : {
18413 "default_key" : 1,
499c9b7f 18414 "description" : "The Host USB device or port or the value 'spice'. HOSTUSBDEVICE syntax is:\n\n 'bus-port(.port)*' (decimal numbers) or\n 'vendor_id:product_id' (hexadeciaml numbers) or\n 'spice'\n\nYou can use the 'lsusb -t' command to list existing usb devices.\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such\nmachines - use with special care.\n\nThe value 'spice' can be used to add a usb redirection devices for spice.\n\nEither this or the 'mapping' key must be set.\n",
44660702 18415 "format_description" : "HOSTUSBDEVICE|spice",
499c9b7f
TL
18416 "optional" : 1,
18417 "pattern" : "(?^:(?:(?:(?^:(0x)?([0-9A-Fa-f]{4}):(0x)?([0-9A-Fa-f]{4})))|(?:(?^:(\\d+)\\-(\\d+(\\.\\d+)*)))|[Ss][Pp][Ii][Cc][Ee]))",
18418 "type" : "string"
18419 },
18420 "mapping" : {
18421 "description" : "The ID of a cluster wide mapping. Either this or the default-key 'host' must be set.",
18422 "format" : "pve-configid",
18423 "format_description" : "mapping-id",
18424 "optional" : 1,
44660702
DM
18425 "type" : "string"
18426 },
18427 "usb3" : {
c2993fe5 18428 "default" : 0,
4e7f60c2 18429 "description" : "Specifies whether if given host option is a USB3 device or port. For modern guests (machine version >= 7.1 and ostype l26 and windows > 7), this flag is irrelevant (all devices are plugged into a xhci controller).",
44660702
DM
18430 "optional" : 1,
18431 "type" : "boolean"
18432 }
18433 },
7aacca6f 18434 "optional" : 1,
4d47f125 18435 "type" : "string"
56122987 18436 },
44660702
DM
18437 "vcpus" : {
18438 "default" : 0,
18439 "description" : "Number of hotplugged vcpus.",
18440 "minimum" : 1,
56122987 18441 "optional" : 1,
4d47f125 18442 "type" : "integer"
56122987 18443 },
44660702 18444 "vga" : {
e2d681b3
TL
18445 "description" : "Configure the VGA hardware.",
18446 "format" : {
fa22697b 18447 "clipboard" : {
c6d5bae8 18448 "description" : "Enable a specific clipboard. If not set, depending on the display type the SPICE one will be added. Migration with VNC clipboard is not yet supported!",
fa22697b
TL
18449 "enum" : [
18450 "vnc"
18451 ],
18452 "optional" : 1,
18453 "type" : "string"
18454 },
e2d681b3
TL
18455 "memory" : {
18456 "description" : "Sets the VGA memory (in MiB). Has no effect with serial display.",
18457 "maximum" : 512,
18458 "minimum" : 4,
18459 "optional" : 1,
18460 "type" : "integer"
18461 },
18462 "type" : {
18463 "default" : "std",
18464 "default_key" : 1,
18465 "description" : "Select the VGA type.",
18466 "enum" : [
18467 "cirrus",
18468 "qxl",
18469 "qxl2",
18470 "qxl3",
18471 "qxl4",
5f26e15b 18472 "none",
e2d681b3
TL
18473 "serial0",
18474 "serial1",
18475 "serial2",
18476 "serial3",
18477 "std",
18478 "virtio",
7af2edf9 18479 "virtio-gl",
e2d681b3
TL
18480 "vmware"
18481 ],
18482 "optional" : 1,
18483 "type" : "string"
18484 }
18485 },
56122987 18486 "optional" : 1,
c2993fe5 18487 "type" : "string",
e2d681b3 18488 "verbose_description" : "Configure the VGA Hardware. If you want to use high resolution modes (>= 1280x1024x16) you may need to increase the vga memory option. Since QEMU 2.9 the default VGA display type is 'std' for all OS types besides some Windows versions (XP and older) which use 'cirrus'. The 'qxl' option enables the SPICE display server. For win* OS you can select how many independent displays you want, Linux guests can add displays them self.\nYou can also run without any graphic card, using a serial device as terminal."
56122987 18489 },
44660702 18490 "virtio[n]" : {
7af2edf9 18491 "description" : "Use volume as VIRTIO hard disk (n is 0 to 15).",
56122987 18492 "format" : {
44660702
DM
18493 "aio" : {
18494 "description" : "AIO type to use.",
56122987 18495 "enum" : [
44660702 18496 "native",
8f4d9c87
TL
18497 "threads",
18498 "io_uring"
56122987 18499 ],
56122987
DM
18500 "optional" : 1,
18501 "type" : "string"
18502 },
44660702
DM
18503 "backup" : {
18504 "description" : "Whether the drive should be included when making backups.",
44660702
DM
18505 "optional" : 1,
18506 "type" : "boolean"
7aacca6f 18507 },
44660702 18508 "bps" : {
de0983cb 18509 "description" : "Maximum r/w speed in bytes per second.",
44660702
DM
18510 "format_description" : "bps",
18511 "optional" : 1,
18512 "type" : "integer"
56122987 18513 },
de0983cb
DM
18514 "bps_max_length" : {
18515 "description" : "Maximum length of I/O bursts in seconds.",
18516 "format_description" : "seconds",
18517 "minimum" : 1,
18518 "optional" : 1,
18519 "type" : "integer"
18520 },
44660702 18521 "bps_rd" : {
de0983cb 18522 "description" : "Maximum read speed in bytes per second.",
44660702 18523 "format_description" : "bps",
56122987 18524 "optional" : 1,
44660702 18525 "type" : "integer"
56122987 18526 },
de0983cb 18527 "bps_rd_length" : {
5d9c884c
DM
18528 "alias" : "bps_rd_max_length"
18529 },
18530 "bps_rd_max_length" : {
de0983cb
DM
18531 "description" : "Maximum length of read I/O bursts in seconds.",
18532 "format_description" : "seconds",
18533 "minimum" : 1,
18534 "optional" : 1,
18535 "type" : "integer"
18536 },
44660702 18537 "bps_wr" : {
de0983cb 18538 "description" : "Maximum write speed in bytes per second.",
44660702 18539 "format_description" : "bps",
56122987 18540 "optional" : 1,
44660702
DM
18541 "type" : "integer"
18542 },
de0983cb 18543 "bps_wr_length" : {
5d9c884c
DM
18544 "alias" : "bps_wr_max_length"
18545 },
18546 "bps_wr_max_length" : {
de0983cb
DM
18547 "description" : "Maximum length of write I/O bursts in seconds.",
18548 "format_description" : "seconds",
18549 "minimum" : 1,
18550 "optional" : 1,
18551 "type" : "integer"
18552 },
44660702
DM
18553 "cache" : {
18554 "description" : "The drive's cache mode",
56122987 18555 "enum" : [
44660702
DM
18556 "none",
18557 "writethrough",
18558 "writeback",
18559 "unsafe",
18560 "directsync"
56122987 18561 ],
56122987 18562 "optional" : 1,
44660702 18563 "type" : "string"
56122987 18564 },
44660702
DM
18565 "cyls" : {
18566 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
56122987 18567 "optional" : 1,
44660702 18568 "type" : "integer"
7aacca6f 18569 },
44660702
DM
18570 "detect_zeroes" : {
18571 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
18572 "optional" : 1,
18573 "type" : "boolean"
7aacca6f 18574 },
44660702
DM
18575 "discard" : {
18576 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
18577 "enum" : [
18578 "ignore",
18579 "on"
18580 ],
56122987 18581 "optional" : 1,
44660702 18582 "type" : "string"
56122987
DM
18583 },
18584 "file" : {
7aacca6f 18585 "default_key" : 1,
44660702 18586 "description" : "The drive's backing volume.",
7aacca6f 18587 "format" : "pve-volume-id-or-qm-path",
44660702
DM
18588 "format_description" : "volume",
18589 "type" : "string"
7aacca6f
DM
18590 },
18591 "format" : {
7aacca6f
DM
18592 "description" : "The drive's backing file's data format.",
18593 "enum" : [
18594 "raw",
18595 "cow",
18596 "qcow",
18597 "qed",
18598 "qcow2",
18599 "vmdk",
18600 "cloop"
56122987
DM
18601 ],
18602 "optional" : 1,
56122987
DM
18603 "type" : "string"
18604 },
44660702
DM
18605 "heads" : {
18606 "description" : "Force the drive's physical geometry to have a specific head count.",
56122987 18607 "optional" : 1,
44660702 18608 "type" : "integer"
56122987 18609 },
44660702 18610 "iops" : {
de0983cb 18611 "description" : "Maximum r/w I/O in operations per second.",
7aacca6f 18612 "format_description" : "iops",
56122987 18613 "optional" : 1,
44660702 18614 "type" : "integer"
56122987 18615 },
44660702 18616 "iops_max" : {
de0983cb 18617 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 18618 "format_description" : "iops",
56122987 18619 "optional" : 1,
56122987
DM
18620 "type" : "integer"
18621 },
de0983cb
DM
18622 "iops_max_length" : {
18623 "description" : "Maximum length of I/O bursts in seconds.",
18624 "format_description" : "seconds",
18625 "minimum" : 1,
18626 "optional" : 1,
18627 "type" : "integer"
18628 },
44660702 18629 "iops_rd" : {
de0983cb 18630 "description" : "Maximum read I/O in operations per second.",
44660702 18631 "format_description" : "iops",
56122987 18632 "optional" : 1,
44660702 18633 "type" : "integer"
56122987 18634 },
de0983cb 18635 "iops_rd_length" : {
5d9c884c 18636 "alias" : "iops_rd_max_length"
de0983cb 18637 },
44660702 18638 "iops_rd_max" : {
de0983cb 18639 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702 18640 "format_description" : "iops",
7aacca6f 18641 "optional" : 1,
44660702 18642 "type" : "integer"
56122987 18643 },
5d9c884c
DM
18644 "iops_rd_max_length" : {
18645 "description" : "Maximum length of read I/O bursts in seconds.",
18646 "format_description" : "seconds",
18647 "minimum" : 1,
18648 "optional" : 1,
18649 "type" : "integer"
18650 },
44660702 18651 "iops_wr" : {
de0983cb 18652 "description" : "Maximum write I/O in operations per second.",
44660702 18653 "format_description" : "iops",
7aacca6f 18654 "optional" : 1,
44660702 18655 "type" : "integer"
56122987 18656 },
de0983cb 18657 "iops_wr_length" : {
5d9c884c 18658 "alias" : "iops_wr_max_length"
de0983cb 18659 },
44660702 18660 "iops_wr_max" : {
de0983cb 18661 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702 18662 "format_description" : "iops",
56122987
DM
18663 "optional" : 1,
18664 "type" : "integer"
18665 },
5d9c884c
DM
18666 "iops_wr_max_length" : {
18667 "description" : "Maximum length of write I/O bursts in seconds.",
18668 "format_description" : "seconds",
18669 "minimum" : 1,
18670 "optional" : 1,
18671 "type" : "integer"
18672 },
44660702
DM
18673 "iothread" : {
18674 "description" : "Whether to use iothreads for this drive",
44660702
DM
18675 "optional" : 1,
18676 "type" : "boolean"
18677 },
18678 "mbps" : {
de0983cb 18679 "description" : "Maximum r/w speed in megabytes per second.",
7aacca6f 18680 "format_description" : "mbps",
44660702
DM
18681 "optional" : 1,
18682 "type" : "number"
18683 },
18684 "mbps_max" : {
de0983cb 18685 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702
DM
18686 "format_description" : "mbps",
18687 "optional" : 1,
18688 "type" : "number"
7aacca6f 18689 },
44660702 18690 "mbps_rd" : {
de0983cb 18691 "description" : "Maximum read speed in megabytes per second.",
44660702 18692 "format_description" : "mbps",
56122987 18693 "optional" : 1,
44660702 18694 "type" : "number"
56122987 18695 },
44660702 18696 "mbps_rd_max" : {
de0983cb 18697 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702 18698 "format_description" : "mbps",
7aacca6f 18699 "optional" : 1,
44660702 18700 "type" : "number"
56122987 18701 },
44660702 18702 "mbps_wr" : {
de0983cb 18703 "description" : "Maximum write speed in megabytes per second.",
44660702 18704 "format_description" : "mbps",
56122987 18705 "optional" : 1,
44660702 18706 "type" : "number"
56122987 18707 },
44660702 18708 "mbps_wr_max" : {
de0983cb 18709 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702 18710 "format_description" : "mbps",
56122987 18711 "optional" : 1,
44660702 18712 "type" : "number"
56122987
DM
18713 },
18714 "media" : {
7aacca6f 18715 "default" : "disk",
44660702 18716 "description" : "The drive's media type.",
56122987
DM
18717 "enum" : [
18718 "cdrom",
18719 "disk"
18720 ],
44660702
DM
18721 "optional" : 1,
18722 "type" : "string"
56122987 18723 },
5d9c884c
DM
18724 "replicate" : {
18725 "default" : 1,
18726 "description" : "Whether the drive should considered for replication jobs.",
18727 "optional" : 1,
18728 "type" : "boolean"
18729 },
7aacca6f 18730 "rerror" : {
44660702 18731 "description" : "Read error action.",
56122987 18732 "enum" : [
7aacca6f
DM
18733 "ignore",
18734 "report",
18735 "stop"
56122987 18736 ],
56122987 18737 "optional" : 1,
44660702 18738 "type" : "string"
56122987 18739 },
5370fa8c
TL
18740 "ro" : {
18741 "description" : "Whether the drive is read-only.",
18742 "optional" : 1,
18743 "type" : "boolean"
18744 },
44660702
DM
18745 "secs" : {
18746 "description" : "Force the drive's physical geometry to have a specific sector count.",
44660702
DM
18747 "optional" : 1,
18748 "type" : "integer"
18749 },
18750 "serial" : {
18751 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
18752 "format" : "urlencoded",
18753 "format_description" : "serial",
18754 "maxLength" : 60,
56122987 18755 "optional" : 1,
7aacca6f 18756 "type" : "string"
56122987 18757 },
27a7acb2
DM
18758 "shared" : {
18759 "default" : 0,
18760 "description" : "Mark this locally-managed volume as available on all nodes",
18761 "optional" : 1,
18762 "type" : "boolean",
18763 "verbose_description" : "Mark this locally-managed volume as available on all nodes.\n\nWARNING: This option does not share the volume automatically, it assumes it is shared already!"
18764 },
44660702
DM
18765 "size" : {
18766 "description" : "Disk size. This is purely informational and has no effect.",
18767 "format" : "disk-size",
f004f5b9 18768 "format_description" : "DiskSize",
56122987 18769 "optional" : 1,
44660702 18770 "type" : "string"
56122987 18771 },
44660702 18772 "snapshot" : {
27a7acb2 18773 "description" : "Controls qemu's snapshot mode feature. If activated, changes made to the disk are temporary and will be discarded when the VM is shutdown.",
56122987 18774 "optional" : 1,
44660702 18775 "type" : "boolean"
56122987 18776 },
44660702
DM
18777 "trans" : {
18778 "description" : "Force disk geometry bios translation mode.",
18779 "enum" : [
18780 "none",
18781 "lba",
18782 "auto"
18783 ],
44660702
DM
18784 "optional" : 1,
18785 "type" : "string"
18786 },
18787 "volume" : {
18788 "alias" : "file"
18789 },
18790 "werror" : {
18791 "description" : "Write error action.",
18792 "enum" : [
18793 "enospc",
18794 "ignore",
18795 "report",
18796 "stop"
18797 ],
56122987 18798 "optional" : 1,
44660702 18799 "type" : "string"
56122987 18800 }
44660702 18801 },
56122987 18802 "optional" : 1,
4d47f125 18803 "type" : "string"
56122987 18804 },
4d47f125
TL
18805 "vmgenid" : {
18806 "default" : "1 (autogenerated)",
18807 "description" : "Set VM Generation ID. Use '1' to autogenerate on create or update, pass '0' to disable explicitly.",
18808 "format_description" : "UUID",
18809 "optional" : 1,
18810 "pattern" : "(?:[a-fA-F0-9]{8}(?:-[a-fA-F0-9]{4}){3}-[a-fA-F0-9]{12}|[01])",
18811 "type" : "string",
4772952b 18812 "verbose_description" : "The VM generation ID (vmgenid) device exposes a 128-bit integer value identifier to the guest OS. This allows to notify the guest operating system when the virtual machine is executed with a different configuration (e.g. snapshot execution or creation from a template). The guest operating system notices the change, and is then able to react as appropriate by marking its copies of distributed databases as dirty, re-initializing its random number generator, etc.\nNote that auto-creation only works when done through API/CLI create or update methods, but not when manually editing the config file."
56122987 18813 },
2489d6df
WB
18814 "vmstatestorage" : {
18815 "description" : "Default storage for VM state volumes/files.",
18816 "format" : "pve-storage-id",
907e4bc3 18817 "format_description" : "storage ID",
2489d6df 18818 "optional" : 1,
4d47f125 18819 "type" : "string"
2489d6df 18820 },
44660702 18821 "watchdog" : {
c2993fe5 18822 "description" : "Create a virtual hardware watchdog device.",
44660702 18823 "format" : "pve-qm-watchdog",
56122987 18824 "optional" : 1,
c2993fe5
DM
18825 "type" : "string",
18826 "verbose_description" : "Create a virtual hardware watchdog device. Once enabled (by a guest action), the watchdog must be periodically polled by an agent inside the guest or else the watchdog will reset the guest (or execute the respective action specified)"
56122987 18827 }
4d47f125
TL
18828 },
18829 "type" : "object"
44660702 18830 }
56122987 18831 },
4d47f125 18832 "POST" : {
e9cd3bd4 18833 "allowtoken" : 1,
4d47f125
TL
18834 "description" : "Set virtual machine options (asynchrounous API).",
18835 "method" : "POST",
18836 "name" : "update_vm_async",
56122987 18837 "parameters" : {
7aacca6f 18838 "additionalProperties" : 0,
56122987 18839 "properties" : {
44660702
DM
18840 "acpi" : {
18841 "default" : 1,
18842 "description" : "Enable/disable ACPI.",
7aacca6f 18843 "optional" : 1,
013dc89f
DM
18844 "type" : "boolean",
18845 "typetext" : "<boolean>"
7aacca6f 18846 },
4e7f60c2 18847 "affinity" : {
81a3384d 18848 "description" : "List of host cores used to execute guest processes, for example: 0,5,8-11",
4e7f60c2
TL
18849 "format" : "pve-cpuset",
18850 "optional" : 1,
18851 "type" : "string",
18852 "typetext" : "<string>"
18853 },
44660702 18854 "agent" : {
9d2e98ed 18855 "description" : "Enable/disable communication with the QEMU Guest Agent and its properties.",
4d47f125
TL
18856 "format" : {
18857 "enabled" : {
18858 "default" : 0,
18859 "default_key" : 1,
9d2e98ed
TL
18860 "description" : "Enable/disable communication with a QEMU Guest Agent (QGA) running in the VM.",
18861 "type" : "boolean"
18862 },
18863 "freeze-fs-on-backup" : {
18864 "default" : 1,
18865 "description" : "Freeze/thaw guest filesystems on backup for consistency.",
18866 "optional" : 1,
4d47f125
TL
18867 "type" : "boolean"
18868 },
18869 "fstrim_cloned_disks" : {
18870 "default" : 0,
d2656385 18871 "description" : "Run fstrim after moving a disk or migrating the VM.",
4d47f125
TL
18872 "optional" : 1,
18873 "type" : "boolean"
5c1699e5
TL
18874 },
18875 "type" : {
18876 "default" : "virtio",
18877 "description" : "Select the agent type",
18878 "enum" : [
18879 "virtio",
18880 "isa"
18881 ],
18882 "optional" : 1,
18883 "type" : "string"
4d47f125
TL
18884 }
18885 },
7aacca6f 18886 "optional" : 1,
4d47f125 18887 "type" : "string",
9d2e98ed 18888 "typetext" : "[enabled=]<1|0> [,freeze-fs-on-backup=<1|0>] [,fstrim_cloned_disks=<1|0>] [,type=<virtio|isa>]"
56122987 18889 },
e2d681b3
TL
18890 "arch" : {
18891 "description" : "Virtual processor architecture. Defaults to the host.",
18892 "enum" : [
18893 "x86_64",
18894 "aarch64"
18895 ],
18896 "optional" : 1,
18897 "type" : "string"
18898 },
44660702 18899 "args" : {
c2993fe5 18900 "description" : "Arbitrary arguments passed to kvm.",
7aacca6f 18901 "optional" : 1,
c2993fe5 18902 "type" : "string",
013dc89f 18903 "typetext" : "<string>",
159464a9 18904 "verbose_description" : "Arbitrary arguments passed to kvm, for example:\n\nargs: -no-reboot -smbios 'type=0,vendor=FOO'\n\nNOTE: this option is for experts only.\n"
7aacca6f 18905 },
1c532546
TL
18906 "audio0" : {
18907 "description" : "Configure a audio device, useful in combination with QXL/Spice.",
18908 "format" : {
18909 "device" : {
18910 "description" : "Configure an audio device.",
18911 "enum" : [
18912 "ich9-intel-hda",
18913 "intel-hda",
18914 "AC97"
18915 ],
18916 "type" : "string"
18917 },
18918 "driver" : {
18919 "default" : "spice",
18920 "description" : "Driver backend for the audio device.",
18921 "enum" : [
d2656385
TL
18922 "spice",
18923 "none"
1c532546
TL
18924 ],
18925 "optional" : 1,
18926 "type" : "string"
18927 }
18928 },
18929 "optional" : 1,
18930 "type" : "string",
d2656385 18931 "typetext" : "device=<ich9-intel-hda|intel-hda|AC97> [,driver=<spice|none>]"
1c532546 18932 },
44660702
DM
18933 "autostart" : {
18934 "default" : 0,
18935 "description" : "Automatic restart after crash (currently ignored).",
7aacca6f 18936 "optional" : 1,
013dc89f
DM
18937 "type" : "boolean",
18938 "typetext" : "<boolean>"
7aacca6f 18939 },
4d47f125
TL
18940 "background_delay" : {
18941 "description" : "Time to wait for the task to finish. We return 'null' if the task finish within that time.",
18942 "maximum" : 30,
18943 "minimum" : 1,
18944 "optional" : 1,
18945 "type" : "integer",
18946 "typetext" : "<integer> (1 - 30)"
18947 },
44660702 18948 "balloon" : {
9d2e98ed 18949 "description" : "Amount of target RAM for the VM in MiB. Using zero disables the ballon driver.",
44660702
DM
18950 "minimum" : 0,
18951 "optional" : 1,
4bd7df8b 18952 "type" : "integer",
013dc89f 18953 "typetext" : "<integer> (0 - N)"
44660702
DM
18954 },
18955 "bios" : {
18956 "default" : "seabios",
18957 "description" : "Select BIOS implementation.",
7aacca6f 18958 "enum" : [
44660702
DM
18959 "seabios",
18960 "ovmf"
7aacca6f 18961 ],
56122987 18962 "optional" : 1,
7aacca6f
DM
18963 "type" : "string"
18964 },
44660702 18965 "boot" : {
5370fa8c 18966 "description" : "Specify guest boot order. Use the 'order=' sub-property as usage with no key or 'legacy=' is deprecated.",
4772952b 18967 "format" : "pve-qm-boot",
7aacca6f 18968 "optional" : 1,
4772952b
TL
18969 "type" : "string",
18970 "typetext" : "[[legacy=]<[acdn]{1,4}>] [,order=<device[;device...]>]"
56122987 18971 },
44660702 18972 "bootdisk" : {
4772952b 18973 "description" : "Enable booting from specified disk. Deprecated: Use 'boot: order=foo;bar' instead.",
44660702
DM
18974 "format" : "pve-qm-bootdisk",
18975 "optional" : 1,
18976 "pattern" : "(ide|sata|scsi|virtio)\\d+",
18977 "type" : "string"
18978 },
18979 "cdrom" : {
18980 "description" : "This is an alias for option -ide2",
de0983cb 18981 "format" : "pve-qm-ide",
56122987 18982 "optional" : 1,
7aacca6f 18983 "type" : "string",
013dc89f 18984 "typetext" : "<volume>"
44660702 18985 },
95895385
TL
18986 "cicustom" : {
18987 "description" : "cloud-init: Specify custom files to replace the automatically generated ones at start.",
18988 "format" : "pve-qm-cicustom",
18989 "optional" : 1,
18990 "type" : "string",
5370fa8c 18991 "typetext" : "[meta=<volume>] [,network=<volume>] [,user=<volume>] [,vendor=<volume>]"
95895385 18992 },
27a7acb2
DM
18993 "cipassword" : {
18994 "description" : "cloud-init: Password to assign the user. Using this is generally not recommended. Use ssh keys instead. Also note that older cloud-init versions do not support hashed passwords.",
18995 "optional" : 1,
18996 "type" : "string",
18997 "typetext" : "<string>"
18998 },
18999 "citype" : {
19000 "description" : "Specifies the cloud-init configuration format. The default depends on the configured operating system type (`ostype`. We use the `nocloud` format for Linux, and `configdrive2` for windows.",
19001 "enum" : [
19002 "configdrive2",
d2656385
TL
19003 "nocloud",
19004 "opennebula"
27a7acb2
DM
19005 ],
19006 "optional" : 1,
19007 "type" : "string"
19008 },
159464a9 19009 "ciupgrade" : {
c8eee6ff 19010 "default" : 1,
159464a9
TL
19011 "description" : "cloud-init: do an automatic package upgrade after the first boot.",
19012 "optional" : 1,
19013 "type" : "boolean",
19014 "typetext" : "<boolean>"
19015 },
27a7acb2
DM
19016 "ciuser" : {
19017 "description" : "cloud-init: User name to change ssh keys and password for instead of the image's configured default user.",
19018 "optional" : 1,
19019 "type" : "string",
19020 "typetext" : "<string>"
19021 },
44660702
DM
19022 "cores" : {
19023 "default" : 1,
19024 "description" : "The number of cores per socket.",
19025 "minimum" : 1,
19026 "optional" : 1,
4bd7df8b 19027 "type" : "integer",
013dc89f 19028 "typetext" : "<integer> (1 - N)"
44660702
DM
19029 },
19030 "cpu" : {
19031 "description" : "Emulated CPU type.",
c5aa7e14 19032 "format" : "pve-vm-cpu-conf",
44660702 19033 "optional" : 1,
4bd7df8b 19034 "type" : "string",
04d22a9f 19035 "typetext" : "[[cputype=]<string>] [,flags=<+FLAG[;-FLAG...]>] [,hidden=<1|0>] [,hv-vendor-id=<vendor-id>] [,phys-bits=<8-64|host>] [,reported-model=<enum>]"
44660702
DM
19036 },
19037 "cpulimit" : {
19038 "default" : 0,
c2993fe5 19039 "description" : "Limit of CPU usage.",
44660702
DM
19040 "maximum" : 128,
19041 "minimum" : 0,
19042 "optional" : 1,
c2993fe5 19043 "type" : "number",
013dc89f 19044 "typetext" : "<number> (0 - 128)",
c2993fe5 19045 "verbose_description" : "Limit of CPU usage.\n\nNOTE: If the computer has 2 CPUs, it has total of '2' CPU time. Value '0' indicates no CPU limit."
44660702
DM
19046 },
19047 "cpuunits" : {
5370fa8c
TL
19048 "default" : "cgroup v1: 1024, cgroup v2: 100",
19049 "description" : "CPU weight for a VM, will be clamped to [1, 10000] in cgroup v2.",
2489d6df 19050 "maximum" : 262144,
7af2edf9 19051 "minimum" : 1,
44660702 19052 "optional" : 1,
c2993fe5 19053 "type" : "integer",
7af2edf9 19054 "typetext" : "<integer> (1 - 262144)",
2489d6df 19055 "verbose_description" : "CPU weight for a VM. Argument is used in the kernel fair scheduler. The larger the number is, the more CPU time this VM gets. Number is relative to weights of all the other running VMs."
44660702
DM
19056 },
19057 "delete" : {
19058 "description" : "A list of settings you want to delete.",
19059 "format" : "pve-configid-list",
19060 "optional" : 1,
013dc89f
DM
19061 "type" : "string",
19062 "typetext" : "<string>"
44660702
DM
19063 },
19064 "description" : {
8f4d9c87
TL
19065 "description" : "Description for the VM. Shown in the web-interface VM's summary. This is saved as comment inside the configuration file.",
19066 "maxLength" : 8192,
44660702 19067 "optional" : 1,
013dc89f
DM
19068 "type" : "string",
19069 "typetext" : "<string>"
44660702
DM
19070 },
19071 "digest" : {
19072 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
19073 "maxLength" : 40,
19074 "optional" : 1,
013dc89f
DM
19075 "type" : "string",
19076 "typetext" : "<string>"
44660702 19077 },
4d47f125 19078 "efidisk0" : {
9d2e98ed 19079 "description" : "Configure a disk for storing EFI vars. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Note that SIZE_IN_GiB is ignored here and that the default EFI vars are copied to the volume instead. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
4d47f125 19080 "format" : {
5370fa8c
TL
19081 "efitype" : {
19082 "default" : "2m",
bd92b745 19083 "description" : "Size and type of the OVMF EFI vars. '4m' is newer and recommended, and required for Secure Boot. For backwards compatibility, '2m' is used if not otherwise specified. Ignored for VMs with arch=aarch64 (ARM).",
5370fa8c
TL
19084 "enum" : [
19085 "2m",
19086 "4m"
19087 ],
19088 "optional" : 1,
19089 "type" : "string"
19090 },
4d47f125
TL
19091 "file" : {
19092 "default_key" : 1,
19093 "description" : "The drive's backing volume.",
19094 "format" : "pve-volume-id-or-qm-path",
19095 "format_description" : "volume",
19096 "type" : "string"
19097 },
19098 "format" : {
19099 "description" : "The drive's backing file's data format.",
19100 "enum" : [
19101 "raw",
19102 "cow",
19103 "qcow",
19104 "qed",
19105 "qcow2",
19106 "vmdk",
19107 "cloop"
19108 ],
19109 "optional" : 1,
19110 "type" : "string"
19111 },
7af2edf9
TL
19112 "import-from" : {
19113 "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
19114 "format" : "pve-volume-id-or-absolute-path",
19115 "format_description" : "source volume",
19116 "optional" : 1,
19117 "type" : "string"
19118 },
5370fa8c
TL
19119 "pre-enrolled-keys" : {
19120 "default" : 0,
19121 "description" : "Use am EFI vars template with distribution-specific and Microsoft Standard keys enrolled, if used with 'efitype=4m'. Note that this will enable Secure Boot by default, though it can still be turned off from within the VM.",
19122 "optional" : 1,
19123 "type" : "boolean"
19124 },
4d47f125
TL
19125 "size" : {
19126 "description" : "Disk size. This is purely informational and has no effect.",
19127 "format" : "disk-size",
19128 "format_description" : "DiskSize",
19129 "optional" : 1,
19130 "type" : "string"
19131 },
19132 "volume" : {
19133 "alias" : "file"
19134 }
19135 },
19136 "optional" : 1,
19137 "type" : "string",
7af2edf9 19138 "typetext" : "[file=]<volume> [,efitype=<2m|4m>] [,format=<enum>] [,import-from=<source volume>] [,pre-enrolled-keys=<1|0>] [,size=<DiskSize>]"
4d47f125 19139 },
44660702
DM
19140 "force" : {
19141 "description" : "Force physical removal. Without this, we simple remove the disk from the config file and create an additional configuration entry called 'unused[n]', which contains the volume ID. Unlink of unused[n] always cause physical removal.",
19142 "optional" : 1,
19143 "requires" : "delete",
013dc89f
DM
19144 "type" : "boolean",
19145 "typetext" : "<boolean>"
44660702
DM
19146 },
19147 "freeze" : {
19148 "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).",
19149 "optional" : 1,
013dc89f
DM
19150 "type" : "boolean",
19151 "typetext" : "<boolean>"
44660702 19152 },
5f26e15b
TL
19153 "hookscript" : {
19154 "description" : "Script that will be executed during various steps in the vms lifetime.",
19155 "format" : "pve-volume-id",
19156 "optional" : 1,
19157 "type" : "string",
19158 "typetext" : "<string>"
19159 },
44660702 19160 "hostpci[n]" : {
c2993fe5 19161 "description" : "Map host PCI devices into guest.",
44660702
DM
19162 "format" : "pve-qm-hostpci",
19163 "optional" : 1,
57b78691 19164 "type" : "string",
499c9b7f 19165 "typetext" : "[[host=]<HOSTPCIID[;HOSTPCIID2...]>] [,device-id=<hex id>] [,legacy-igd=<1|0>] [,mapping=<mapping-id>] [,mdev=<string>] [,pcie=<1|0>] [,rombar=<1|0>] [,romfile=<string>] [,sub-device-id=<hex id>] [,sub-vendor-id=<hex id>] [,vendor-id=<hex id>] [,x-vga=<1|0>]",
bb4c8cf8 19166 "verbose_description" : "Map host PCI devices into guest.\n\nNOTE: This option allows direct access to host hardware. So it is no longer\npossible to migrate such machines - use with special care.\n\nCAUTION: Experimental! User reported problems with this option.\n"
56122987 19167 },
7aacca6f 19168 "hotplug" : {
7aacca6f 19169 "default" : "network,disk,usb",
4e7f60c2 19170 "description" : "Selectively enable hotplug features. This is a comma separated list of hotplug features: 'network', 'disk', 'cpu', 'memory', 'usb' and 'cloudinit'. Use '0' to disable hotplug completely. Using '1' as value is an alias for the default `network,disk,usb`. USB hotplugging is possible for guests with machine version >= 7.1 and ostype l26 or windows > 7.",
44660702 19171 "format" : "pve-hotplug-features",
56122987 19172 "optional" : 1,
013dc89f
DM
19173 "type" : "string",
19174 "typetext" : "<string>"
56122987 19175 },
4bd7df8b
DM
19176 "hugepages" : {
19177 "description" : "Enable/disable hugepages memory.",
19178 "enum" : [
19179 "any",
19180 "2",
19181 "1024"
19182 ],
19183 "optional" : 1,
19184 "type" : "string"
19185 },
56122987 19186 "ide[n]" : {
7af2edf9 19187 "description" : "Use volume as IDE hard disk or CD-ROM (n is 0 to 3). Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
56122987 19188 "format" : {
44660702
DM
19189 "aio" : {
19190 "description" : "AIO type to use.",
19191 "enum" : [
19192 "native",
8f4d9c87
TL
19193 "threads",
19194 "io_uring"
44660702 19195 ],
56122987 19196 "optional" : 1,
44660702 19197 "type" : "string"
56122987 19198 },
44660702
DM
19199 "backup" : {
19200 "description" : "Whether the drive should be included when making backups.",
44660702
DM
19201 "optional" : 1,
19202 "type" : "boolean"
19203 },
19204 "bps" : {
de0983cb 19205 "description" : "Maximum r/w speed in bytes per second.",
44660702 19206 "format_description" : "bps",
56122987 19207 "optional" : 1,
44660702 19208 "type" : "integer"
56122987 19209 },
de0983cb
DM
19210 "bps_max_length" : {
19211 "description" : "Maximum length of I/O bursts in seconds.",
19212 "format_description" : "seconds",
19213 "minimum" : 1,
19214 "optional" : 1,
19215 "type" : "integer"
19216 },
44660702 19217 "bps_rd" : {
de0983cb 19218 "description" : "Maximum read speed in bytes per second.",
44660702 19219 "format_description" : "bps",
56122987 19220 "optional" : 1,
44660702 19221 "type" : "integer"
56122987 19222 },
de0983cb 19223 "bps_rd_length" : {
5d9c884c
DM
19224 "alias" : "bps_rd_max_length"
19225 },
19226 "bps_rd_max_length" : {
de0983cb
DM
19227 "description" : "Maximum length of read I/O bursts in seconds.",
19228 "format_description" : "seconds",
19229 "minimum" : 1,
19230 "optional" : 1,
19231 "type" : "integer"
19232 },
7aacca6f 19233 "bps_wr" : {
de0983cb 19234 "description" : "Maximum write speed in bytes per second.",
44660702
DM
19235 "format_description" : "bps",
19236 "optional" : 1,
19237 "type" : "integer"
7aacca6f 19238 },
de0983cb 19239 "bps_wr_length" : {
5d9c884c
DM
19240 "alias" : "bps_wr_max_length"
19241 },
19242 "bps_wr_max_length" : {
de0983cb
DM
19243 "description" : "Maximum length of write I/O bursts in seconds.",
19244 "format_description" : "seconds",
19245 "minimum" : 1,
19246 "optional" : 1,
19247 "type" : "integer"
19248 },
44660702
DM
19249 "cache" : {
19250 "description" : "The drive's cache mode",
19251 "enum" : [
19252 "none",
19253 "writethrough",
19254 "writeback",
19255 "unsafe",
19256 "directsync"
19257 ],
56122987 19258 "optional" : 1,
44660702
DM
19259 "type" : "string"
19260 },
19261 "cyls" : {
19262 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
44660702
DM
19263 "optional" : 1,
19264 "type" : "integer"
19265 },
19266 "detect_zeroes" : {
19267 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
19268 "optional" : 1,
19269 "type" : "boolean"
56122987 19270 },
7aacca6f 19271 "discard" : {
7aacca6f 19272 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
56122987 19273 "enum" : [
7aacca6f
DM
19274 "ignore",
19275 "on"
56122987
DM
19276 ],
19277 "optional" : 1,
44660702 19278 "type" : "string"
7aacca6f 19279 },
44660702
DM
19280 "file" : {
19281 "default_key" : 1,
19282 "description" : "The drive's backing volume.",
19283 "format" : "pve-volume-id-or-qm-path",
19284 "format_description" : "volume",
19285 "type" : "string"
7aacca6f
DM
19286 },
19287 "format" : {
44660702 19288 "description" : "The drive's backing file's data format.",
7aacca6f
DM
19289 "enum" : [
19290 "raw",
19291 "cow",
19292 "qcow",
19293 "qed",
19294 "qcow2",
19295 "vmdk",
19296 "cloop"
19297 ],
7aacca6f 19298 "optional" : 1,
44660702 19299 "type" : "string"
56122987 19300 },
7aacca6f 19301 "heads" : {
44660702 19302 "description" : "Force the drive's physical geometry to have a specific head count.",
56122987 19303 "optional" : 1,
44660702 19304 "type" : "integer"
7aacca6f 19305 },
7af2edf9
TL
19306 "import-from" : {
19307 "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
19308 "format" : "pve-volume-id-or-absolute-path",
19309 "format_description" : "source volume",
19310 "optional" : 1,
19311 "type" : "string"
19312 },
44660702 19313 "iops" : {
de0983cb 19314 "description" : "Maximum r/w I/O in operations per second.",
44660702 19315 "format_description" : "iops",
7aacca6f 19316 "optional" : 1,
44660702 19317 "type" : "integer"
56122987 19318 },
44660702 19319 "iops_max" : {
de0983cb 19320 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 19321 "format_description" : "iops",
56122987 19322 "optional" : 1,
44660702 19323 "type" : "integer"
56122987 19324 },
de0983cb
DM
19325 "iops_max_length" : {
19326 "description" : "Maximum length of I/O bursts in seconds.",
19327 "format_description" : "seconds",
19328 "minimum" : 1,
19329 "optional" : 1,
19330 "type" : "integer"
19331 },
44660702 19332 "iops_rd" : {
de0983cb 19333 "description" : "Maximum read I/O in operations per second.",
44660702 19334 "format_description" : "iops",
56122987 19335 "optional" : 1,
44660702 19336 "type" : "integer"
7aacca6f 19337 },
de0983cb 19338 "iops_rd_length" : {
5d9c884c 19339 "alias" : "iops_rd_max_length"
de0983cb 19340 },
44660702 19341 "iops_rd_max" : {
de0983cb 19342 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702 19343 "format_description" : "iops",
7aacca6f 19344 "optional" : 1,
44660702 19345 "type" : "integer"
7aacca6f 19346 },
5d9c884c
DM
19347 "iops_rd_max_length" : {
19348 "description" : "Maximum length of read I/O bursts in seconds.",
19349 "format_description" : "seconds",
19350 "minimum" : 1,
19351 "optional" : 1,
19352 "type" : "integer"
19353 },
44660702 19354 "iops_wr" : {
de0983cb 19355 "description" : "Maximum write I/O in operations per second.",
44660702 19356 "format_description" : "iops",
7aacca6f 19357 "optional" : 1,
44660702 19358 "type" : "integer"
56122987 19359 },
de0983cb 19360 "iops_wr_length" : {
5d9c884c 19361 "alias" : "iops_wr_max_length"
de0983cb 19362 },
44660702 19363 "iops_wr_max" : {
de0983cb 19364 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702 19365 "format_description" : "iops",
7aacca6f 19366 "optional" : 1,
44660702 19367 "type" : "integer"
7aacca6f 19368 },
5d9c884c
DM
19369 "iops_wr_max_length" : {
19370 "description" : "Maximum length of write I/O bursts in seconds.",
19371 "format_description" : "seconds",
19372 "minimum" : 1,
19373 "optional" : 1,
19374 "type" : "integer"
19375 },
7aacca6f 19376 "mbps" : {
de0983cb 19377 "description" : "Maximum r/w speed in megabytes per second.",
7aacca6f 19378 "format_description" : "mbps",
7aacca6f 19379 "optional" : 1,
44660702 19380 "type" : "number"
7aacca6f 19381 },
44660702 19382 "mbps_max" : {
de0983cb 19383 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702 19384 "format_description" : "mbps",
7aacca6f 19385 "optional" : 1,
44660702 19386 "type" : "number"
7aacca6f 19387 },
44660702 19388 "mbps_rd" : {
de0983cb 19389 "description" : "Maximum read speed in megabytes per second.",
44660702 19390 "format_description" : "mbps",
7aacca6f 19391 "optional" : 1,
44660702 19392 "type" : "number"
7aacca6f 19393 },
44660702 19394 "mbps_rd_max" : {
de0983cb 19395 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702
DM
19396 "format_description" : "mbps",
19397 "optional" : 1,
19398 "type" : "number"
7aacca6f 19399 },
44660702 19400 "mbps_wr" : {
de0983cb 19401 "description" : "Maximum write speed in megabytes per second.",
44660702 19402 "format_description" : "mbps",
7aacca6f 19403 "optional" : 1,
44660702
DM
19404 "type" : "number"
19405 },
19406 "mbps_wr_max" : {
de0983cb 19407 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702
DM
19408 "format_description" : "mbps",
19409 "optional" : 1,
19410 "type" : "number"
19411 },
19412 "media" : {
19413 "default" : "disk",
19414 "description" : "The drive's media type.",
56122987 19415 "enum" : [
44660702
DM
19416 "cdrom",
19417 "disk"
56122987 19418 ],
44660702
DM
19419 "optional" : 1,
19420 "type" : "string"
56122987 19421 },
7aacca6f 19422 "model" : {
44660702 19423 "description" : "The drive's reported model name, url-encoded, up to 40 bytes long.",
56122987 19424 "format" : "urlencoded",
7aacca6f 19425 "format_description" : "model",
44660702 19426 "maxLength" : 120,
56122987 19427 "optional" : 1,
44660702 19428 "type" : "string"
56122987 19429 },
5d9c884c
DM
19430 "replicate" : {
19431 "default" : 1,
19432 "description" : "Whether the drive should considered for replication jobs.",
19433 "optional" : 1,
19434 "type" : "boolean"
19435 },
44660702
DM
19436 "rerror" : {
19437 "description" : "Read error action.",
19438 "enum" : [
19439 "ignore",
19440 "report",
19441 "stop"
19442 ],
56122987 19443 "optional" : 1,
44660702 19444 "type" : "string"
56122987 19445 },
44660702
DM
19446 "secs" : {
19447 "description" : "Force the drive's physical geometry to have a specific sector count.",
44660702
DM
19448 "optional" : 1,
19449 "type" : "integer"
56122987 19450 },
44660702
DM
19451 "serial" : {
19452 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
19453 "format" : "urlencoded",
19454 "format_description" : "serial",
19455 "maxLength" : 60,
56122987 19456 "optional" : 1,
44660702 19457 "type" : "string"
56122987 19458 },
27a7acb2
DM
19459 "shared" : {
19460 "default" : 0,
19461 "description" : "Mark this locally-managed volume as available on all nodes",
19462 "optional" : 1,
19463 "type" : "boolean",
19464 "verbose_description" : "Mark this locally-managed volume as available on all nodes.\n\nWARNING: This option does not share the volume automatically, it assumes it is shared already!"
19465 },
44660702
DM
19466 "size" : {
19467 "description" : "Disk size. This is purely informational and has no effect.",
19468 "format" : "disk-size",
f004f5b9 19469 "format_description" : "DiskSize",
56122987 19470 "optional" : 1,
44660702 19471 "type" : "string"
56122987 19472 },
44660702 19473 "snapshot" : {
27a7acb2 19474 "description" : "Controls qemu's snapshot mode feature. If activated, changes made to the disk are temporary and will be discarded when the VM is shutdown.",
56122987 19475 "optional" : 1,
44660702 19476 "type" : "boolean"
56122987 19477 },
25203dc1
NC
19478 "ssd" : {
19479 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
19480 "optional" : 1,
19481 "type" : "boolean"
19482 },
44660702
DM
19483 "trans" : {
19484 "description" : "Force disk geometry bios translation mode.",
19485 "enum" : [
19486 "none",
19487 "lba",
19488 "auto"
19489 ],
56122987 19490 "optional" : 1,
44660702
DM
19491 "type" : "string"
19492 },
19493 "volume" : {
19494 "alias" : "file"
56122987 19495 },
7aacca6f 19496 "werror" : {
44660702 19497 "description" : "Write error action.",
7aacca6f
DM
19498 "enum" : [
19499 "enospc",
19500 "ignore",
19501 "report",
19502 "stop"
19503 ],
56122987 19504 "optional" : 1,
44660702 19505 "type" : "string"
95895385
TL
19506 },
19507 "wwn" : {
19508 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
19509 "format_description" : "wwn",
19510 "optional" : 1,
19511 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
19512 "type" : "string"
7aacca6f 19513 }
44660702
DM
19514 },
19515 "optional" : 1,
4bd7df8b 19516 "type" : "string",
7af2edf9 19517 "typetext" : "[file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<source volume>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,model=<model>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>]"
27a7acb2
DM
19518 },
19519 "ipconfig[n]" : {
d2656385 19520 "description" : "cloud-init: Specify IP addresses and gateways for the corresponding interface.\n\nIP addresses use CIDR notation, gateways are optional but need an IP of the same type specified.\n\nThe special string 'dhcp' can be used for IP addresses to use DHCP, in which case no explicit\ngateway should be provided.\nFor IPv6 the special string 'auto' can be used to use stateless autoconfiguration. This requires\ncloud-init 19.4 or newer.\n\nIf cloud-init is enabled and neither an IPv4 nor an IPv6 address is specified, it defaults to using\ndhcp on IPv4.\n",
27a7acb2
DM
19521 "format" : "pve-qm-ipconfig",
19522 "optional" : 1,
19523 "type" : "string",
19524 "typetext" : "[gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,ip=<IPv4Format/CIDR>] [,ip6=<IPv6Format/CIDR>]"
7aacca6f 19525 },
95895385
TL
19526 "ivshmem" : {
19527 "description" : "Inter-VM shared memory. Useful for direct communication between VMs, or to the host.",
19528 "format" : {
19529 "name" : {
19530 "description" : "The name of the file. Will be prefixed with 'pve-shm-'. Default is the VMID. Will be deleted when the VM is stopped.",
19531 "format_description" : "string",
19532 "optional" : 1,
19533 "pattern" : "[a-zA-Z0-9\\-]+",
19534 "type" : "string"
19535 },
19536 "size" : {
19537 "description" : "The size of the file in MB.",
19538 "minimum" : 1,
19539 "type" : "integer"
19540 }
19541 },
19542 "optional" : 1,
19543 "type" : "string",
19544 "typetext" : "size=<integer> [,name=<string>]"
19545 },
4772952b
TL
19546 "keephugepages" : {
19547 "default" : 0,
19548 "description" : "Use together with hugepages. If enabled, hugepages will not not be deleted after VM shutdown and can be used for subsequent starts.",
19549 "optional" : 1,
19550 "type" : "boolean",
19551 "typetext" : "<boolean>"
19552 },
44660702 19553 "keyboard" : {
35a75dd3 19554 "default" : null,
7af2edf9 19555 "description" : "Keyboard layout for VNC server. This option is generally not required and is often better handled from within the guest OS.",
44660702
DM
19556 "enum" : [
19557 "de",
19558 "de-ch",
19559 "da",
19560 "en-gb",
19561 "en-us",
19562 "es",
19563 "fi",
19564 "fr",
19565 "fr-be",
19566 "fr-ca",
19567 "fr-ch",
19568 "hu",
19569 "is",
19570 "it",
19571 "ja",
19572 "lt",
19573 "mk",
19574 "nl",
19575 "no",
19576 "pl",
19577 "pt",
19578 "pt-br",
19579 "sv",
19580 "sl",
19581 "tr"
19582 ],
7aacca6f 19583 "optional" : 1,
44660702 19584 "type" : "string"
7aacca6f 19585 },
44660702 19586 "kvm" : {
7aacca6f 19587 "default" : 1,
44660702 19588 "description" : "Enable/disable KVM hardware virtualization.",
7aacca6f 19589 "optional" : 1,
013dc89f
DM
19590 "type" : "boolean",
19591 "typetext" : "<boolean>"
7aacca6f 19592 },
44660702 19593 "localtime" : {
5370fa8c 19594 "description" : "Set the real time clock (RTC) to local time. This is enabled by default if the `ostype` indicates a Microsoft Windows OS.",
7aacca6f 19595 "optional" : 1,
013dc89f
DM
19596 "type" : "boolean",
19597 "typetext" : "<boolean>"
7aacca6f 19598 },
44660702
DM
19599 "lock" : {
19600 "description" : "Lock/unlock the VM.",
19601 "enum" : [
44660702 19602 "backup",
5f26e15b
TL
19603 "clone",
19604 "create",
19605 "migrate",
19606 "rollback",
44660702 19607 "snapshot",
95895385
TL
19608 "snapshot-delete",
19609 "suspending",
19610 "suspended"
44660702 19611 ],
7aacca6f 19612 "optional" : 1,
44660702 19613 "type" : "string"
7aacca6f 19614 },
44660702 19615 "machine" : {
907e4bc3
TL
19616 "description" : "Specify the QEMU machine.",
19617 "format" : {
19618 "type" : {
19619 "default_key" : 1,
19620 "description" : "Specifies the QEMU machine type.",
19621 "format_description" : "machine type",
19622 "maxLength" : 40,
19623 "optional" : 1,
19624 "pattern" : "(pc|pc(-i440fx)?-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|q35|pc-q35-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|virt(?:-\\d+(\\.\\d+)+)?(\\+pve\\d+)?)",
19625 "type" : "string"
19626 },
19627 "viommu" : {
19628 "description" : "Enable and set guest vIOMMU variant (Intel vIOMMU needs q35 to be set as machine type).",
19629 "enum" : [
19630 "intel",
19631 "virtio"
19632 ],
19633 "optional" : 1,
19634 "type" : "string"
19635 }
19636 },
7aacca6f 19637 "optional" : 1,
907e4bc3
TL
19638 "type" : "string",
19639 "typetext" : "[[type=]<machine type>] [,viommu=<intel|virtio>]"
7aacca6f 19640 },
44660702 19641 "memory" : {
bd92b745
TL
19642 "description" : "Memory properties.",
19643 "format" : {
19644 "current" : {
19645 "default" : 512,
19646 "default_key" : 1,
19647 "description" : "Current amount of online RAM for the VM in MiB. This is the maximum available memory when you use the balloon device.",
19648 "minimum" : 16,
19649 "type" : "integer"
19650 }
19651 },
7aacca6f 19652 "optional" : 1,
bd92b745
TL
19653 "type" : "string",
19654 "typetext" : "[current=]<integer>"
7aacca6f 19655 },
44660702
DM
19656 "migrate_downtime" : {
19657 "default" : 0.1,
19658 "description" : "Set maximum tolerated downtime (in seconds) for migrations.",
19659 "minimum" : 0,
7aacca6f 19660 "optional" : 1,
4bd7df8b 19661 "type" : "number",
013dc89f 19662 "typetext" : "<number> (0 - N)"
7aacca6f 19663 },
44660702 19664 "migrate_speed" : {
7aacca6f 19665 "default" : 0,
44660702
DM
19666 "description" : "Set maximum speed (in MB/s) for migrations. Value 0 is no limit.",
19667 "minimum" : 0,
19668 "optional" : 1,
4bd7df8b 19669 "type" : "integer",
013dc89f 19670 "typetext" : "<integer> (0 - N)"
7aacca6f 19671 },
44660702
DM
19672 "name" : {
19673 "description" : "Set a name for the VM. Only used on the configuration web interface.",
19674 "format" : "dns-name",
7aacca6f 19675 "optional" : 1,
013dc89f
DM
19676 "type" : "string",
19677 "typetext" : "<string>"
7aacca6f 19678 },
27a7acb2 19679 "nameserver" : {
de786b48 19680 "description" : "cloud-init: Sets DNS server IP address for a container. Create will automatically use the setting from the host if neither searchdomain nor nameserver are set.",
27a7acb2
DM
19681 "format" : "address-list",
19682 "optional" : 1,
19683 "type" : "string",
19684 "typetext" : "<string>"
19685 },
44660702 19686 "net[n]" : {
c2993fe5 19687 "description" : "Specify network devices.",
f004f5b9
DM
19688 "format" : {
19689 "bridge" : {
c2993fe5 19690 "description" : "Bridge to attach the network device to. The Proxmox VE standard bridge\nis called 'vmbr0'.\n\nIf you do not specify a bridge, we create a kvm user (NATed) network\ndevice, which provides DHCP and DNS services. The following addresses\nare used:\n\n 10.0.2.2 Gateway\n 10.0.2.3 DNS Server\n 10.0.2.4 SMB Server\n\nThe DHCP server assign addresses to the guest starting from 10.0.2.15.\n",
7af2edf9 19691 "format" : "pve-bridge-id",
f004f5b9
DM
19692 "format_description" : "bridge",
19693 "optional" : 1,
19694 "type" : "string"
19695 },
19696 "e1000" : {
19697 "alias" : "macaddr",
19698 "keyAlias" : "model"
19699 },
19700 "e1000-82540em" : {
19701 "alias" : "macaddr",
19702 "keyAlias" : "model"
19703 },
19704 "e1000-82544gc" : {
19705 "alias" : "macaddr",
19706 "keyAlias" : "model"
19707 },
19708 "e1000-82545em" : {
19709 "alias" : "macaddr",
19710 "keyAlias" : "model"
19711 },
5370fa8c
TL
19712 "e1000e" : {
19713 "alias" : "macaddr",
19714 "keyAlias" : "model"
19715 },
f004f5b9
DM
19716 "firewall" : {
19717 "description" : "Whether this interface should be protected by the firewall.",
19718 "optional" : 1,
19719 "type" : "boolean"
19720 },
19721 "i82551" : {
19722 "alias" : "macaddr",
19723 "keyAlias" : "model"
19724 },
19725 "i82557b" : {
19726 "alias" : "macaddr",
19727 "keyAlias" : "model"
19728 },
19729 "i82559er" : {
19730 "alias" : "macaddr",
19731 "keyAlias" : "model"
19732 },
19733 "link_down" : {
c2993fe5 19734 "description" : "Whether this interface should be disconnected (like pulling the plug).",
f004f5b9
DM
19735 "optional" : 1,
19736 "type" : "boolean"
19737 },
19738 "macaddr" : {
c2993fe5 19739 "description" : "MAC address. That address must be unique withing your network. This is automatically generated if not specified.",
95895385 19740 "format" : "mac-addr",
f004f5b9 19741 "format_description" : "XX:XX:XX:XX:XX:XX",
f004f5b9 19742 "optional" : 1,
95895385
TL
19743 "type" : "string",
19744 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
f004f5b9
DM
19745 },
19746 "model" : {
19747 "default_key" : 1,
c2993fe5 19748 "description" : "Network Card Model. The 'virtio' model provides the best performance with very low CPU overhead. If your guest does not support this driver, it is usually best to use 'e1000'.",
f004f5b9 19749 "enum" : [
f004f5b9 19750 "e1000",
5370fa8c
TL
19751 "e1000-82540em",
19752 "e1000-82544gc",
19753 "e1000-82545em",
19754 "e1000e",
f004f5b9
DM
19755 "i82551",
19756 "i82557b",
19757 "i82559er",
5370fa8c
TL
19758 "ne2k_isa",
19759 "ne2k_pci",
19760 "pcnet",
19761 "rtl8139",
19762 "virtio",
19763 "vmxnet3"
f004f5b9 19764 ],
f004f5b9
DM
19765 "type" : "string"
19766 },
ac70d7d1
TL
19767 "mtu" : {
19768 "description" : "Force MTU, for VirtIO only. Set to '1' to use the bridge MTU",
19769 "maximum" : 65520,
19770 "minimum" : 1,
19771 "optional" : 1,
19772 "type" : "integer"
19773 },
f004f5b9
DM
19774 "ne2k_isa" : {
19775 "alias" : "macaddr",
19776 "keyAlias" : "model"
19777 },
19778 "ne2k_pci" : {
19779 "alias" : "macaddr",
19780 "keyAlias" : "model"
19781 },
19782 "pcnet" : {
19783 "alias" : "macaddr",
19784 "keyAlias" : "model"
19785 },
19786 "queues" : {
19787 "description" : "Number of packet queues to be used on the device.",
81a3384d 19788 "maximum" : 64,
f004f5b9
DM
19789 "minimum" : 0,
19790 "optional" : 1,
19791 "type" : "integer"
19792 },
19793 "rate" : {
c2993fe5 19794 "description" : "Rate limit in mbps (megabytes per second) as floating point number.",
f004f5b9
DM
19795 "minimum" : 0,
19796 "optional" : 1,
19797 "type" : "number"
19798 },
19799 "rtl8139" : {
19800 "alias" : "macaddr",
19801 "keyAlias" : "model"
19802 },
19803 "tag" : {
19804 "description" : "VLAN tag to apply to packets on this interface.",
19805 "maximum" : 4094,
c2993fe5 19806 "minimum" : 1,
f004f5b9
DM
19807 "optional" : 1,
19808 "type" : "integer"
19809 },
19810 "trunks" : {
19811 "description" : "VLAN trunks to pass through this interface.",
19812 "format_description" : "vlanid[;vlanid...]",
19813 "optional" : 1,
19814 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
19815 "type" : "string"
19816 },
19817 "virtio" : {
19818 "alias" : "macaddr",
19819 "keyAlias" : "model"
19820 },
19821 "vmxnet3" : {
19822 "alias" : "macaddr",
19823 "keyAlias" : "model"
19824 }
19825 },
7aacca6f 19826 "optional" : 1,
4bd7df8b 19827 "type" : "string",
ac70d7d1 19828 "typetext" : "[model=]<enum> [,bridge=<bridge>] [,firewall=<1|0>] [,link_down=<1|0>] [,macaddr=<XX:XX:XX:XX:XX:XX>] [,mtu=<integer>] [,queues=<integer>] [,rate=<number>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>] [,<model>=<macaddr>]"
7aacca6f 19829 },
44660702
DM
19830 "node" : {
19831 "description" : "The cluster node name.",
19832 "format" : "pve-node",
013dc89f
DM
19833 "type" : "string",
19834 "typetext" : "<string>"
44660702
DM
19835 },
19836 "numa" : {
19837 "default" : 0,
19838 "description" : "Enable/disable NUMA.",
7aacca6f 19839 "optional" : 1,
013dc89f
DM
19840 "type" : "boolean",
19841 "typetext" : "<boolean>"
7aacca6f 19842 },
44660702 19843 "numa[n]" : {
c2993fe5 19844 "description" : "NUMA topology.",
44660702
DM
19845 "format" : {
19846 "cpus" : {
c2993fe5 19847 "description" : "CPUs accessing this NUMA node.",
44660702
DM
19848 "format_description" : "id[-id];...",
19849 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
19850 "type" : "string"
19851 },
19852 "hostnodes" : {
c2993fe5 19853 "description" : "Host NUMA nodes to use.",
44660702
DM
19854 "format_description" : "id[-id];...",
19855 "optional" : 1,
19856 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
19857 "type" : "string"
19858 },
19859 "memory" : {
c2993fe5 19860 "description" : "Amount of memory this NUMA node provides.",
44660702
DM
19861 "optional" : 1,
19862 "type" : "number"
19863 },
19864 "policy" : {
c2993fe5 19865 "description" : "NUMA allocation policy.",
44660702
DM
19866 "enum" : [
19867 "preferred",
19868 "bind",
19869 "interleave"
19870 ],
44660702
DM
19871 "optional" : 1,
19872 "type" : "string"
19873 }
19874 },
7aacca6f 19875 "optional" : 1,
4bd7df8b
DM
19876 "type" : "string",
19877 "typetext" : "cpus=<id[-id];...> [,hostnodes=<id[-id];...>] [,memory=<number>] [,policy=<preferred|bind|interleave>]"
7aacca6f 19878 },
44660702
DM
19879 "onboot" : {
19880 "default" : 0,
19881 "description" : "Specifies whether a VM will be started during system bootup.",
7aacca6f 19882 "optional" : 1,
013dc89f
DM
19883 "type" : "boolean",
19884 "typetext" : "<boolean>"
7aacca6f 19885 },
44660702 19886 "ostype" : {
c2993fe5 19887 "description" : "Specify guest operating system.",
44660702
DM
19888 "enum" : [
19889 "other",
19890 "wxp",
19891 "w2k",
19892 "w2k3",
19893 "w2k8",
19894 "wvista",
19895 "win7",
19896 "win8",
32d876b5 19897 "win10",
5370fa8c 19898 "win11",
44660702
DM
19899 "l24",
19900 "l26",
19901 "solaris"
19902 ],
7aacca6f 19903 "optional" : 1,
c2993fe5 19904 "type" : "string",
1ffb0cf5 19905 "verbose_description" : "Specify guest operating system. This is used to enable special\noptimization/features for specific operating systems:\n\n[horizontal]\nother;; unspecified OS\nwxp;; Microsoft Windows XP\nw2k;; Microsoft Windows 2000\nw2k3;; Microsoft Windows 2003\nw2k8;; Microsoft Windows 2008\nwvista;; Microsoft Windows Vista\nwin7;; Microsoft Windows 7\nwin8;; Microsoft Windows 8/2012/2012r2\nwin10;; Microsoft Windows 10/2016/2019\nwin11;; Microsoft Windows 11/2022/2025\nl24;; Linux 2.4 Kernel\nl26;; Linux 2.6 - 6.X Kernel\nsolaris;; Solaris/OpenSolaris/OpenIndiania kernel\n"
7aacca6f 19906 },
44660702 19907 "parallel[n]" : {
c2993fe5 19908 "description" : "Map host parallel devices (n is 0 to 2).",
7aacca6f 19909 "optional" : 1,
44660702 19910 "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+",
c2993fe5 19911 "type" : "string",
4772952b 19912 "verbose_description" : "Map host parallel devices (n is 0 to 2).\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such\nmachines - use with special care.\n\nCAUTION: Experimental! User reported problems with this option.\n"
7aacca6f 19913 },
44660702
DM
19914 "protection" : {
19915 "default" : 0,
c2993fe5 19916 "description" : "Sets the protection flag of the VM. This will disable the remove VM and remove disk operations.",
7aacca6f 19917 "optional" : 1,
013dc89f
DM
19918 "type" : "boolean",
19919 "typetext" : "<boolean>"
7aacca6f 19920 },
44660702
DM
19921 "reboot" : {
19922 "default" : 1,
19923 "description" : "Allow reboot. If set to '0' the VM exit on reboot.",
7aacca6f 19924 "optional" : 1,
013dc89f
DM
19925 "type" : "boolean",
19926 "typetext" : "<boolean>"
7aacca6f 19927 },
44660702
DM
19928 "revert" : {
19929 "description" : "Revert a pending change.",
19930 "format" : "pve-configid-list",
7aacca6f 19931 "optional" : 1,
013dc89f
DM
19932 "type" : "string",
19933 "typetext" : "<string>"
7aacca6f 19934 },
c5aa7e14
TL
19935 "rng0" : {
19936 "description" : "Configure a VirtIO-based Random Number Generator.",
19937 "format" : {
19938 "max_bytes" : {
19939 "default" : 1024,
5370fa8c 19940 "description" : "Maximum bytes of entropy allowed to get injected into the guest every 'period' milliseconds. Prefer a lower value when using '/dev/random' as source. Use `0` to disable limiting (potentially dangerous!).",
c5aa7e14
TL
19941 "optional" : 1,
19942 "type" : "integer"
19943 },
19944 "period" : {
19945 "default" : 1000,
19946 "description" : "Every 'period' milliseconds the entropy-injection quota is reset, allowing the guest to retrieve another 'max_bytes' of entropy.",
19947 "optional" : 1,
19948 "type" : "integer"
19949 },
19950 "source" : {
19951 "default_key" : 1,
5370fa8c 19952 "description" : "The file on the host to gather entropy from. In most cases '/dev/urandom' should be preferred over '/dev/random' to avoid entropy-starvation issues on the host. Using urandom does *not* decrease security in any meaningful way, as it's still seeded from real entropy, and the bytes provided will most likely be mixed with real entropy on the guest as well. '/dev/hwrng' can be used to pass through a hardware RNG from the host.",
c5aa7e14
TL
19953 "enum" : [
19954 "/dev/urandom",
19955 "/dev/random",
19956 "/dev/hwrng"
19957 ],
19958 "type" : "string"
19959 }
19960 },
19961 "optional" : 1,
19962 "type" : "string",
19963 "typetext" : "[source=]</dev/urandom|/dev/random|/dev/hwrng> [,max_bytes=<integer>] [,period=<integer>]"
19964 },
44660702 19965 "sata[n]" : {
7af2edf9 19966 "description" : "Use volume as SATA hard disk or CD-ROM (n is 0 to 5). Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
7aacca6f 19967 "format" : {
44660702
DM
19968 "aio" : {
19969 "description" : "AIO type to use.",
19970 "enum" : [
19971 "native",
8f4d9c87
TL
19972 "threads",
19973 "io_uring"
44660702 19974 ],
44660702
DM
19975 "optional" : 1,
19976 "type" : "string"
19977 },
19978 "backup" : {
19979 "description" : "Whether the drive should be included when making backups.",
44660702
DM
19980 "optional" : 1,
19981 "type" : "boolean"
19982 },
19983 "bps" : {
de0983cb 19984 "description" : "Maximum r/w speed in bytes per second.",
7aacca6f 19985 "format_description" : "bps",
7aacca6f
DM
19986 "optional" : 1,
19987 "type" : "integer"
56122987 19988 },
de0983cb
DM
19989 "bps_max_length" : {
19990 "description" : "Maximum length of I/O bursts in seconds.",
19991 "format_description" : "seconds",
19992 "minimum" : 1,
19993 "optional" : 1,
19994 "type" : "integer"
19995 },
44660702 19996 "bps_rd" : {
de0983cb 19997 "description" : "Maximum read speed in bytes per second.",
44660702 19998 "format_description" : "bps",
7aacca6f 19999 "optional" : 1,
44660702 20000 "type" : "integer"
7aacca6f 20001 },
de0983cb 20002 "bps_rd_length" : {
5d9c884c
DM
20003 "alias" : "bps_rd_max_length"
20004 },
20005 "bps_rd_max_length" : {
de0983cb
DM
20006 "description" : "Maximum length of read I/O bursts in seconds.",
20007 "format_description" : "seconds",
20008 "minimum" : 1,
20009 "optional" : 1,
20010 "type" : "integer"
20011 },
44660702 20012 "bps_wr" : {
de0983cb 20013 "description" : "Maximum write speed in bytes per second.",
44660702 20014 "format_description" : "bps",
7aacca6f 20015 "optional" : 1,
44660702 20016 "type" : "integer"
7aacca6f 20017 },
de0983cb 20018 "bps_wr_length" : {
5d9c884c
DM
20019 "alias" : "bps_wr_max_length"
20020 },
20021 "bps_wr_max_length" : {
de0983cb
DM
20022 "description" : "Maximum length of write I/O bursts in seconds.",
20023 "format_description" : "seconds",
20024 "minimum" : 1,
20025 "optional" : 1,
20026 "type" : "integer"
20027 },
44660702
DM
20028 "cache" : {
20029 "description" : "The drive's cache mode",
20030 "enum" : [
20031 "none",
20032 "writethrough",
20033 "writeback",
20034 "unsafe",
20035 "directsync"
20036 ],
7aacca6f 20037 "optional" : 1,
44660702 20038 "type" : "string"
7aacca6f 20039 },
44660702
DM
20040 "cyls" : {
20041 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
7aacca6f 20042 "optional" : 1,
44660702 20043 "type" : "integer"
7aacca6f 20044 },
44660702
DM
20045 "detect_zeroes" : {
20046 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
7aacca6f 20047 "optional" : 1,
44660702 20048 "type" : "boolean"
7aacca6f 20049 },
44660702
DM
20050 "discard" : {
20051 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
20052 "enum" : [
20053 "ignore",
20054 "on"
20055 ],
7aacca6f 20056 "optional" : 1,
44660702
DM
20057 "type" : "string"
20058 },
20059 "file" : {
20060 "default_key" : 1,
20061 "description" : "The drive's backing volume.",
20062 "format" : "pve-volume-id-or-qm-path",
20063 "format_description" : "volume",
20064 "type" : "string"
7aacca6f
DM
20065 },
20066 "format" : {
7aacca6f 20067 "description" : "The drive's backing file's data format.",
56122987
DM
20068 "enum" : [
20069 "raw",
20070 "cow",
20071 "qcow",
20072 "qed",
20073 "qcow2",
20074 "vmdk",
20075 "cloop"
20076 ],
20077 "optional" : 1,
7aacca6f 20078 "type" : "string"
56122987 20079 },
7aacca6f 20080 "heads" : {
7aacca6f 20081 "description" : "Force the drive's physical geometry to have a specific head count.",
44660702
DM
20082 "optional" : 1,
20083 "type" : "integer"
56122987 20084 },
7af2edf9
TL
20085 "import-from" : {
20086 "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
20087 "format" : "pve-volume-id-or-absolute-path",
20088 "format_description" : "source volume",
20089 "optional" : 1,
20090 "type" : "string"
20091 },
44660702 20092 "iops" : {
de0983cb 20093 "description" : "Maximum r/w I/O in operations per second.",
44660702 20094 "format_description" : "iops",
56122987 20095 "optional" : 1,
44660702 20096 "type" : "integer"
7aacca6f 20097 },
44660702 20098 "iops_max" : {
de0983cb 20099 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 20100 "format_description" : "iops",
7aacca6f 20101 "optional" : 1,
44660702 20102 "type" : "integer"
56122987 20103 },
de0983cb
DM
20104 "iops_max_length" : {
20105 "description" : "Maximum length of I/O bursts in seconds.",
20106 "format_description" : "seconds",
20107 "minimum" : 1,
20108 "optional" : 1,
20109 "type" : "integer"
20110 },
44660702 20111 "iops_rd" : {
de0983cb 20112 "description" : "Maximum read I/O in operations per second.",
44660702 20113 "format_description" : "iops",
56122987 20114 "optional" : 1,
44660702 20115 "type" : "integer"
7aacca6f 20116 },
de0983cb 20117 "iops_rd_length" : {
5d9c884c 20118 "alias" : "iops_rd_max_length"
de0983cb 20119 },
44660702 20120 "iops_rd_max" : {
de0983cb 20121 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702 20122 "format_description" : "iops",
56122987 20123 "optional" : 1,
44660702 20124 "type" : "integer"
56122987 20125 },
5d9c884c
DM
20126 "iops_rd_max_length" : {
20127 "description" : "Maximum length of read I/O bursts in seconds.",
20128 "format_description" : "seconds",
20129 "minimum" : 1,
20130 "optional" : 1,
20131 "type" : "integer"
20132 },
44660702 20133 "iops_wr" : {
de0983cb 20134 "description" : "Maximum write I/O in operations per second.",
44660702
DM
20135 "format_description" : "iops",
20136 "optional" : 1,
20137 "type" : "integer"
56122987 20138 },
de0983cb 20139 "iops_wr_length" : {
5d9c884c 20140 "alias" : "iops_wr_max_length"
de0983cb 20141 },
44660702 20142 "iops_wr_max" : {
de0983cb 20143 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702
DM
20144 "format_description" : "iops",
20145 "optional" : 1,
20146 "type" : "integer"
20147 },
5d9c884c
DM
20148 "iops_wr_max_length" : {
20149 "description" : "Maximum length of write I/O bursts in seconds.",
20150 "format_description" : "seconds",
20151 "minimum" : 1,
20152 "optional" : 1,
20153 "type" : "integer"
20154 },
44660702 20155 "mbps" : {
de0983cb 20156 "description" : "Maximum r/w speed in megabytes per second.",
44660702
DM
20157 "format_description" : "mbps",
20158 "optional" : 1,
20159 "type" : "number"
20160 },
20161 "mbps_max" : {
de0983cb 20162 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702
DM
20163 "format_description" : "mbps",
20164 "optional" : 1,
20165 "type" : "number"
20166 },
20167 "mbps_rd" : {
de0983cb 20168 "description" : "Maximum read speed in megabytes per second.",
44660702
DM
20169 "format_description" : "mbps",
20170 "optional" : 1,
20171 "type" : "number"
20172 },
20173 "mbps_rd_max" : {
de0983cb 20174 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702
DM
20175 "format_description" : "mbps",
20176 "optional" : 1,
20177 "type" : "number"
20178 },
20179 "mbps_wr" : {
de0983cb 20180 "description" : "Maximum write speed in megabytes per second.",
44660702
DM
20181 "format_description" : "mbps",
20182 "optional" : 1,
20183 "type" : "number"
20184 },
20185 "mbps_wr_max" : {
de0983cb 20186 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702
DM
20187 "format_description" : "mbps",
20188 "optional" : 1,
20189 "type" : "number"
20190 },
20191 "media" : {
20192 "default" : "disk",
20193 "description" : "The drive's media type.",
20194 "enum" : [
20195 "cdrom",
20196 "disk"
20197 ],
56122987 20198 "optional" : 1,
44660702
DM
20199 "type" : "string"
20200 },
5d9c884c
DM
20201 "replicate" : {
20202 "default" : 1,
20203 "description" : "Whether the drive should considered for replication jobs.",
20204 "optional" : 1,
20205 "type" : "boolean"
20206 },
44660702 20207 "rerror" : {
7aacca6f
DM
20208 "description" : "Read error action.",
20209 "enum" : [
20210 "ignore",
20211 "report",
20212 "stop"
44660702 20213 ],
56122987 20214 "optional" : 1,
44660702 20215 "type" : "string"
56122987 20216 },
7aacca6f 20217 "secs" : {
44660702 20218 "description" : "Force the drive's physical geometry to have a specific sector count.",
56122987 20219 "optional" : 1,
44660702 20220 "type" : "integer"
56122987 20221 },
44660702
DM
20222 "serial" : {
20223 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
20224 "format" : "urlencoded",
20225 "format_description" : "serial",
20226 "maxLength" : 60,
56122987 20227 "optional" : 1,
44660702 20228 "type" : "string"
56122987 20229 },
27a7acb2
DM
20230 "shared" : {
20231 "default" : 0,
20232 "description" : "Mark this locally-managed volume as available on all nodes",
20233 "optional" : 1,
20234 "type" : "boolean",
20235 "verbose_description" : "Mark this locally-managed volume as available on all nodes.\n\nWARNING: This option does not share the volume automatically, it assumes it is shared already!"
20236 },
44660702
DM
20237 "size" : {
20238 "description" : "Disk size. This is purely informational and has no effect.",
20239 "format" : "disk-size",
f004f5b9 20240 "format_description" : "DiskSize",
56122987 20241 "optional" : 1,
44660702 20242 "type" : "string"
56122987
DM
20243 },
20244 "snapshot" : {
27a7acb2 20245 "description" : "Controls qemu's snapshot mode feature. If activated, changes made to the disk are temporary and will be discarded when the VM is shutdown.",
56122987 20246 "optional" : 1,
44660702 20247 "type" : "boolean"
56122987 20248 },
25203dc1
NC
20249 "ssd" : {
20250 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
20251 "optional" : 1,
20252 "type" : "boolean"
20253 },
56122987 20254 "trans" : {
7aacca6f 20255 "description" : "Force disk geometry bios translation mode.",
56122987
DM
20256 "enum" : [
20257 "none",
20258 "lba",
20259 "auto"
20260 ],
20261 "optional" : 1,
44660702 20262 "type" : "string"
56122987 20263 },
44660702
DM
20264 "volume" : {
20265 "alias" : "file"
56122987 20266 },
7aacca6f 20267 "werror" : {
44660702 20268 "description" : "Write error action.",
56122987 20269 "enum" : [
7aacca6f 20270 "enospc",
56122987 20271 "ignore",
7aacca6f
DM
20272 "report",
20273 "stop"
20274 ],
7aacca6f 20275 "optional" : 1,
44660702 20276 "type" : "string"
95895385
TL
20277 },
20278 "wwn" : {
20279 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
20280 "format_description" : "wwn",
20281 "optional" : 1,
20282 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
20283 "type" : "string"
44660702
DM
20284 }
20285 },
20286 "optional" : 1,
4bd7df8b 20287 "type" : "string",
7af2edf9 20288 "typetext" : "[file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<source volume>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>]"
44660702
DM
20289 },
20290 "scsi[n]" : {
7af2edf9 20291 "description" : "Use volume as SCSI hard disk or CD-ROM (n is 0 to 30). Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
44660702
DM
20292 "format" : {
20293 "aio" : {
7aacca6f 20294 "description" : "AIO type to use.",
56122987
DM
20295 "enum" : [
20296 "native",
8f4d9c87
TL
20297 "threads",
20298 "io_uring"
44660702 20299 ],
56122987 20300 "optional" : 1,
44660702 20301 "type" : "string"
56122987 20302 },
7aacca6f 20303 "backup" : {
7aacca6f 20304 "description" : "Whether the drive should be included when making backups.",
7aacca6f 20305 "optional" : 1,
44660702 20306 "type" : "boolean"
56122987 20307 },
44660702 20308 "bps" : {
de0983cb 20309 "description" : "Maximum r/w speed in bytes per second.",
44660702 20310 "format_description" : "bps",
7aacca6f 20311 "optional" : 1,
44660702 20312 "type" : "integer"
7aacca6f 20313 },
de0983cb
DM
20314 "bps_max_length" : {
20315 "description" : "Maximum length of I/O bursts in seconds.",
20316 "format_description" : "seconds",
20317 "minimum" : 1,
20318 "optional" : 1,
20319 "type" : "integer"
20320 },
44660702 20321 "bps_rd" : {
de0983cb 20322 "description" : "Maximum read speed in bytes per second.",
44660702 20323 "format_description" : "bps",
56122987 20324 "optional" : 1,
44660702 20325 "type" : "integer"
56122987 20326 },
de0983cb 20327 "bps_rd_length" : {
5d9c884c
DM
20328 "alias" : "bps_rd_max_length"
20329 },
20330 "bps_rd_max_length" : {
de0983cb
DM
20331 "description" : "Maximum length of read I/O bursts in seconds.",
20332 "format_description" : "seconds",
20333 "minimum" : 1,
20334 "optional" : 1,
20335 "type" : "integer"
20336 },
44660702 20337 "bps_wr" : {
de0983cb 20338 "description" : "Maximum write speed in bytes per second.",
44660702 20339 "format_description" : "bps",
56122987 20340 "optional" : 1,
44660702 20341 "type" : "integer"
56122987 20342 },
de0983cb 20343 "bps_wr_length" : {
5d9c884c
DM
20344 "alias" : "bps_wr_max_length"
20345 },
20346 "bps_wr_max_length" : {
de0983cb
DM
20347 "description" : "Maximum length of write I/O bursts in seconds.",
20348 "format_description" : "seconds",
20349 "minimum" : 1,
20350 "optional" : 1,
20351 "type" : "integer"
20352 },
44660702
DM
20353 "cache" : {
20354 "description" : "The drive's cache mode",
20355 "enum" : [
20356 "none",
20357 "writethrough",
20358 "writeback",
20359 "unsafe",
20360 "directsync"
20361 ],
56122987 20362 "optional" : 1,
44660702
DM
20363 "type" : "string"
20364 },
20365 "cyls" : {
20366 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
44660702
DM
20367 "optional" : 1,
20368 "type" : "integer"
20369 },
20370 "detect_zeroes" : {
20371 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
20372 "optional" : 1,
20373 "type" : "boolean"
20374 },
20375 "discard" : {
20376 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
20377 "enum" : [
20378 "ignore",
20379 "on"
20380 ],
44660702
DM
20381 "optional" : 1,
20382 "type" : "string"
20383 },
20384 "file" : {
20385 "default_key" : 1,
20386 "description" : "The drive's backing volume.",
20387 "format" : "pve-volume-id-or-qm-path",
20388 "format_description" : "volume",
20389 "type" : "string"
56122987 20390 },
7aacca6f 20391 "format" : {
44660702 20392 "description" : "The drive's backing file's data format.",
7aacca6f
DM
20393 "enum" : [
20394 "raw",
20395 "cow",
20396 "qcow",
20397 "qed",
20398 "qcow2",
20399 "vmdk",
20400 "cloop"
20401 ],
56122987 20402 "optional" : 1,
44660702 20403 "type" : "string"
56122987 20404 },
44660702
DM
20405 "heads" : {
20406 "description" : "Force the drive's physical geometry to have a specific head count.",
56122987 20407 "optional" : 1,
44660702 20408 "type" : "integer"
56122987 20409 },
7af2edf9
TL
20410 "import-from" : {
20411 "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
20412 "format" : "pve-volume-id-or-absolute-path",
20413 "format_description" : "source volume",
20414 "optional" : 1,
20415 "type" : "string"
20416 },
44660702 20417 "iops" : {
de0983cb 20418 "description" : "Maximum r/w I/O in operations per second.",
44660702 20419 "format_description" : "iops",
7aacca6f 20420 "optional" : 1,
44660702 20421 "type" : "integer"
56122987 20422 },
44660702 20423 "iops_max" : {
de0983cb 20424 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
7aacca6f 20425 "format_description" : "iops",
7aacca6f 20426 "optional" : 1,
44660702 20427 "type" : "integer"
56122987 20428 },
de0983cb
DM
20429 "iops_max_length" : {
20430 "description" : "Maximum length of I/O bursts in seconds.",
20431 "format_description" : "seconds",
20432 "minimum" : 1,
20433 "optional" : 1,
20434 "type" : "integer"
20435 },
44660702 20436 "iops_rd" : {
de0983cb 20437 "description" : "Maximum read I/O in operations per second.",
44660702 20438 "format_description" : "iops",
56122987 20439 "optional" : 1,
44660702 20440 "type" : "integer"
56122987 20441 },
de0983cb 20442 "iops_rd_length" : {
5d9c884c 20443 "alias" : "iops_rd_max_length"
de0983cb 20444 },
44660702 20445 "iops_rd_max" : {
de0983cb 20446 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702 20447 "format_description" : "iops",
56122987 20448 "optional" : 1,
44660702 20449 "type" : "integer"
56122987 20450 },
5d9c884c
DM
20451 "iops_rd_max_length" : {
20452 "description" : "Maximum length of read I/O bursts in seconds.",
20453 "format_description" : "seconds",
20454 "minimum" : 1,
20455 "optional" : 1,
20456 "type" : "integer"
20457 },
44660702 20458 "iops_wr" : {
de0983cb 20459 "description" : "Maximum write I/O in operations per second.",
44660702 20460 "format_description" : "iops",
56122987 20461 "optional" : 1,
44660702 20462 "type" : "integer"
56122987 20463 },
de0983cb 20464 "iops_wr_length" : {
5d9c884c 20465 "alias" : "iops_wr_max_length"
de0983cb 20466 },
44660702 20467 "iops_wr_max" : {
de0983cb 20468 "description" : "Maximum unthrottled write I/O pool in operations per second.",
7aacca6f 20469 "format_description" : "iops",
44660702
DM
20470 "optional" : 1,
20471 "type" : "integer"
7aacca6f 20472 },
5d9c884c
DM
20473 "iops_wr_max_length" : {
20474 "description" : "Maximum length of write I/O bursts in seconds.",
20475 "format_description" : "seconds",
20476 "minimum" : 1,
20477 "optional" : 1,
20478 "type" : "integer"
20479 },
7aacca6f 20480 "iothread" : {
44660702 20481 "description" : "Whether to use iothreads for this drive",
56122987 20482 "optional" : 1,
44660702 20483 "type" : "boolean"
56122987 20484 },
44660702 20485 "mbps" : {
de0983cb 20486 "description" : "Maximum r/w speed in megabytes per second.",
44660702 20487 "format_description" : "mbps",
56122987 20488 "optional" : 1,
44660702 20489 "type" : "number"
56122987 20490 },
44660702 20491 "mbps_max" : {
de0983cb 20492 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702 20493 "format_description" : "mbps",
56122987 20494 "optional" : 1,
44660702 20495 "type" : "number"
56122987 20496 },
44660702 20497 "mbps_rd" : {
de0983cb 20498 "description" : "Maximum read speed in megabytes per second.",
44660702 20499 "format_description" : "mbps",
7aacca6f 20500 "optional" : 1,
44660702 20501 "type" : "number"
56122987 20502 },
44660702 20503 "mbps_rd_max" : {
de0983cb 20504 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702 20505 "format_description" : "mbps",
7aacca6f 20506 "optional" : 1,
44660702 20507 "type" : "number"
7aacca6f 20508 },
44660702 20509 "mbps_wr" : {
de0983cb 20510 "description" : "Maximum write speed in megabytes per second.",
44660702 20511 "format_description" : "mbps",
56122987 20512 "optional" : 1,
44660702 20513 "type" : "number"
56122987 20514 },
44660702 20515 "mbps_wr_max" : {
de0983cb 20516 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702 20517 "format_description" : "mbps",
56122987 20518 "optional" : 1,
44660702
DM
20519 "type" : "number"
20520 },
20521 "media" : {
20522 "default" : "disk",
20523 "description" : "The drive's media type.",
7aacca6f 20524 "enum" : [
44660702
DM
20525 "cdrom",
20526 "disk"
7aacca6f 20527 ],
56122987 20528 "optional" : 1,
44660702 20529 "type" : "string"
56122987 20530 },
c6d5bae8
TL
20531 "product" : {
20532 "description" : "The drive's product name, up to 16 bytes long.",
20533 "format_description" : "product",
20534 "optional" : 1,
20535 "pattern" : "[A-Za-z0-9\\-_\\s]{,16}",
20536 "type" : "string"
20537 },
7aacca6f 20538 "queues" : {
44660702 20539 "description" : "Number of queues.",
7aacca6f 20540 "minimum" : 2,
7aacca6f
DM
20541 "optional" : 1,
20542 "type" : "integer"
56122987 20543 },
5d9c884c
DM
20544 "replicate" : {
20545 "default" : 1,
20546 "description" : "Whether the drive should considered for replication jobs.",
20547 "optional" : 1,
20548 "type" : "boolean"
20549 },
20550 "rerror" : {
20551 "description" : "Read error action.",
20552 "enum" : [
20553 "ignore",
20554 "report",
20555 "stop"
20556 ],
20557 "optional" : 1,
20558 "type" : "string"
20559 },
5370fa8c
TL
20560 "ro" : {
20561 "description" : "Whether the drive is read-only.",
20562 "optional" : 1,
20563 "type" : "boolean"
20564 },
52e44c50
FG
20565 "scsiblock" : {
20566 "default" : 0,
20567 "description" : "whether to use scsi-block for full passthrough of host block device\n\nWARNING: can lead to I/O errors in combination with low memory or high memory fragmentation on host",
20568 "optional" : 1,
20569 "type" : "boolean"
20570 },
44660702
DM
20571 "secs" : {
20572 "description" : "Force the drive's physical geometry to have a specific sector count.",
56122987 20573 "optional" : 1,
44660702 20574 "type" : "integer"
56122987 20575 },
44660702
DM
20576 "serial" : {
20577 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
20578 "format" : "urlencoded",
20579 "format_description" : "serial",
20580 "maxLength" : 60,
56122987 20581 "optional" : 1,
44660702 20582 "type" : "string"
56122987 20583 },
27a7acb2
DM
20584 "shared" : {
20585 "default" : 0,
20586 "description" : "Mark this locally-managed volume as available on all nodes",
20587 "optional" : 1,
20588 "type" : "boolean",
20589 "verbose_description" : "Mark this locally-managed volume as available on all nodes.\n\nWARNING: This option does not share the volume automatically, it assumes it is shared already!"
20590 },
44660702
DM
20591 "size" : {
20592 "description" : "Disk size. This is purely informational and has no effect.",
20593 "format" : "disk-size",
f004f5b9 20594 "format_description" : "DiskSize",
44660702
DM
20595 "optional" : 1,
20596 "type" : "string"
20597 },
20598 "snapshot" : {
27a7acb2 20599 "description" : "Controls qemu's snapshot mode feature. If activated, changes made to the disk are temporary and will be discarded when the VM is shutdown.",
56122987 20600 "optional" : 1,
44660702
DM
20601 "type" : "boolean"
20602 },
25203dc1
NC
20603 "ssd" : {
20604 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
20605 "optional" : 1,
20606 "type" : "boolean"
20607 },
44660702
DM
20608 "trans" : {
20609 "description" : "Force disk geometry bios translation mode.",
56122987 20610 "enum" : [
44660702
DM
20611 "none",
20612 "lba",
20613 "auto"
56122987 20614 ],
44660702
DM
20615 "optional" : 1,
20616 "type" : "string"
20617 },
c6d5bae8
TL
20618 "vendor" : {
20619 "description" : "The drive's vendor name, up to 8 bytes long.",
20620 "format_description" : "vendor",
20621 "optional" : 1,
20622 "pattern" : "[A-Za-z0-9\\-_\\s]{,8}",
20623 "type" : "string"
20624 },
44660702
DM
20625 "volume" : {
20626 "alias" : "file"
56122987 20627 },
7aacca6f 20628 "werror" : {
7aacca6f
DM
20629 "description" : "Write error action.",
20630 "enum" : [
20631 "enospc",
20632 "ignore",
20633 "report",
20634 "stop"
44660702 20635 ],
56122987 20636 "optional" : 1,
7aacca6f 20637 "type" : "string"
95895385
TL
20638 },
20639 "wwn" : {
20640 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
20641 "format_description" : "wwn",
20642 "optional" : 1,
20643 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
20644 "type" : "string"
56122987 20645 }
44660702 20646 },
56122987 20647 "optional" : 1,
4bd7df8b 20648 "type" : "string",
c6d5bae8 20649 "typetext" : "[file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<source volume>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,product=<product>] [,queues=<integer>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,ro=<1|0>] [,scsiblock=<1|0>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,vendor=<vendor>] [,werror=<enum>] [,wwn=<wwn>]"
56122987
DM
20650 },
20651 "scsihw" : {
44660702 20652 "default" : "lsi",
c2993fe5 20653 "description" : "SCSI controller model",
56122987
DM
20654 "enum" : [
20655 "lsi",
20656 "lsi53c810",
20657 "virtio-scsi-pci",
20658 "virtio-scsi-single",
20659 "megasas",
20660 "pvscsi"
20661 ],
20662 "optional" : 1,
56122987
DM
20663 "type" : "string"
20664 },
27a7acb2 20665 "searchdomain" : {
de786b48 20666 "description" : "cloud-init: Sets DNS search domains for a container. Create will automatically use the setting from the host if neither searchdomain nor nameserver are set.",
27a7acb2
DM
20667 "optional" : 1,
20668 "type" : "string",
20669 "typetext" : "<string>"
20670 },
44660702 20671 "serial[n]" : {
c2993fe5 20672 "description" : "Create a serial device inside the VM (n is 0 to 3)",
56122987 20673 "optional" : 1,
44660702 20674 "pattern" : "(/dev/.+|socket)",
c2993fe5 20675 "type" : "string",
4772952b 20676 "verbose_description" : "Create a serial device inside the VM (n is 0 to 3), and pass through a\nhost serial device (i.e. /dev/ttyS0), or create a unix socket on the\nhost side (use 'qm terminal' to open a terminal connection).\n\nNOTE: If you pass through a host serial device, it is no longer possible to migrate such machines -\nuse with special care.\n\nCAUTION: Experimental! User reported problems with this option.\n"
56122987 20677 },
44660702
DM
20678 "shares" : {
20679 "default" : 1000,
5da3d723 20680 "description" : "Amount of memory shares for auto-ballooning. The larger the number is, the more memory this VM gets. Number is relative to weights of all other running VMs. Using zero disables auto-ballooning. Auto-ballooning is done by pvestatd.",
44660702
DM
20681 "maximum" : 50000,
20682 "minimum" : 0,
7aacca6f 20683 "optional" : 1,
4bd7df8b 20684 "type" : "integer",
013dc89f 20685 "typetext" : "<integer> (0 - 50000)"
56122987 20686 },
7aacca6f
DM
20687 "skiplock" : {
20688 "description" : "Ignore locks - only root is allowed to use this option.",
44660702 20689 "optional" : 1,
013dc89f
DM
20690 "type" : "boolean",
20691 "typetext" : "<boolean>"
56122987 20692 },
44660702
DM
20693 "smbios1" : {
20694 "description" : "Specify SMBIOS type 1 fields.",
20695 "format" : "pve-qm-smbios1",
1e3f8156 20696 "maxLength" : 512,
56122987 20697 "optional" : 1,
4bd7df8b 20698 "type" : "string",
1e3f8156 20699 "typetext" : "[base64=<1|0>] [,family=<Base64 encoded string>] [,manufacturer=<Base64 encoded string>] [,product=<Base64 encoded string>] [,serial=<Base64 encoded string>] [,sku=<Base64 encoded string>] [,uuid=<UUID>] [,version=<Base64 encoded string>]"
56122987 20700 },
44660702
DM
20701 "smp" : {
20702 "default" : 1,
20703 "description" : "The number of CPUs. Please use option -sockets instead.",
20704 "minimum" : 1,
56122987 20705 "optional" : 1,
4bd7df8b 20706 "type" : "integer",
013dc89f 20707 "typetext" : "<integer> (1 - N)"
56122987 20708 },
44660702
DM
20709 "sockets" : {
20710 "default" : 1,
20711 "description" : "The number of CPU sockets.",
20712 "minimum" : 1,
56122987 20713 "optional" : 1,
4bd7df8b 20714 "type" : "integer",
013dc89f 20715 "typetext" : "<integer> (1 - N)"
56122987 20716 },
1c532546
TL
20717 "spice_enhancements" : {
20718 "description" : "Configure additional enhancements for SPICE.",
20719 "format" : {
20720 "foldersharing" : {
20721 "default" : "0",
20722 "description" : "Enable folder sharing via SPICE. Needs Spice-WebDAV daemon installed in the VM.",
20723 "optional" : 1,
20724 "type" : "boolean"
20725 },
20726 "videostreaming" : {
20727 "default" : "off",
20728 "description" : "Enable video streaming. Uses compression for detected video streams.",
20729 "enum" : [
20730 "off",
20731 "all",
20732 "filter"
20733 ],
20734 "optional" : 1,
20735 "type" : "string"
20736 }
20737 },
20738 "optional" : 1,
20739 "type" : "string",
20740 "typetext" : "[foldersharing=<1|0>] [,videostreaming=<off|all|filter>]"
20741 },
27a7acb2
DM
20742 "sshkeys" : {
20743 "description" : "cloud-init: Setup public SSH keys (one key per line, OpenSSH format).",
20744 "format" : "urlencoded",
20745 "optional" : 1,
20746 "type" : "string",
20747 "typetext" : "<string>"
20748 },
44660702
DM
20749 "startdate" : {
20750 "default" : "now",
4772952b 20751 "description" : "Set the initial date of the real time clock. Valid format for date are:'now' or '2006-06-17T16:01:21' or '2006-06-17'.",
44660702
DM
20752 "optional" : 1,
20753 "pattern" : "(now|\\d{4}-\\d{1,2}-\\d{1,2}(T\\d{1,2}:\\d{1,2}:\\d{1,2})?)",
7aacca6f 20754 "type" : "string",
44660702
DM
20755 "typetext" : "(now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)"
20756 },
20757 "startup" : {
20758 "description" : "Startup and shutdown behavior. Order is a non-negative number defining the general startup order. Shutdown in done with reverse ordering. Additionally you can set the 'up' or 'down' delay in seconds, which specifies a delay to wait before the next VM is started or stopped.",
20759 "format" : "pve-startup-order",
7aacca6f 20760 "optional" : 1,
44660702
DM
20761 "type" : "string",
20762 "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
7aacca6f 20763 },
44660702
DM
20764 "tablet" : {
20765 "default" : 1,
c2993fe5 20766 "description" : "Enable/disable the USB tablet device.",
7aacca6f 20767 "optional" : 1,
c2993fe5 20768 "type" : "boolean",
013dc89f 20769 "typetext" : "<boolean>",
4772952b 20770 "verbose_description" : "Enable/disable the USB tablet device. This device is usually needed to allow absolute mouse positioning with VNC. Else the mouse runs out of sync with normal VNC clients. If you're running lots of console-only guests on one host, you may consider disabling this to save some context switches. This is turned off by default if you use spice (`qm set <vmid> --vga qxl`)."
7aacca6f 20771 },
5c1699e5
TL
20772 "tags" : {
20773 "description" : "Tags of the VM. This is only meta information.",
20774 "format" : "pve-tag-list",
20775 "optional" : 1,
20776 "type" : "string",
20777 "typetext" : "<string>"
20778 },
44660702
DM
20779 "tdf" : {
20780 "default" : 0,
20781 "description" : "Enable/disable time drift fix.",
7aacca6f 20782 "optional" : 1,
013dc89f
DM
20783 "type" : "boolean",
20784 "typetext" : "<boolean>"
7aacca6f 20785 },
44660702
DM
20786 "template" : {
20787 "default" : 0,
20788 "description" : "Enable/disable Template.",
7aacca6f 20789 "optional" : 1,
013dc89f
DM
20790 "type" : "boolean",
20791 "typetext" : "<boolean>"
7aacca6f 20792 },
5370fa8c 20793 "tpmstate0" : {
7af2edf9 20794 "description" : "Configure a Disk for storing TPM state. The format is fixed to 'raw'. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Note that SIZE_IN_GiB is ignored here and 4 MiB will be used instead. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
5370fa8c
TL
20795 "format" : {
20796 "file" : {
20797 "default_key" : 1,
20798 "description" : "The drive's backing volume.",
20799 "format" : "pve-volume-id-or-qm-path",
20800 "format_description" : "volume",
20801 "type" : "string"
20802 },
7af2edf9
TL
20803 "import-from" : {
20804 "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
20805 "format" : "pve-volume-id-or-absolute-path",
20806 "format_description" : "source volume",
20807 "optional" : 1,
20808 "type" : "string"
20809 },
5370fa8c
TL
20810 "size" : {
20811 "description" : "Disk size. This is purely informational and has no effect.",
20812 "format" : "disk-size",
20813 "format_description" : "DiskSize",
20814 "optional" : 1,
20815 "type" : "string"
20816 },
20817 "version" : {
20818 "default" : "v2.0",
20819 "description" : "The TPM interface version. v2.0 is newer and should be preferred. Note that this cannot be changed later on.",
20820 "enum" : [
20821 "v1.2",
20822 "v2.0"
20823 ],
20824 "optional" : 1,
20825 "type" : "string"
20826 },
20827 "volume" : {
20828 "alias" : "file"
20829 }
20830 },
20831 "optional" : 1,
20832 "type" : "string",
7af2edf9 20833 "typetext" : "[file=]<volume> [,import-from=<source volume>] [,size=<DiskSize>] [,version=<v1.2|v2.0>]"
5370fa8c 20834 },
44660702 20835 "unused[n]" : {
c2993fe5 20836 "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
c5aa7e14
TL
20837 "format" : {
20838 "file" : {
20839 "default_key" : 1,
20840 "description" : "The drive's backing volume.",
20841 "format" : "pve-volume-id",
20842 "format_description" : "volume",
20843 "type" : "string"
20844 },
20845 "volume" : {
20846 "alias" : "file"
20847 }
20848 },
7aacca6f 20849 "optional" : 1,
013dc89f 20850 "type" : "string",
c5aa7e14 20851 "typetext" : "[file=]<volume>"
7aacca6f 20852 },
44660702 20853 "usb[n]" : {
4e7f60c2 20854 "description" : "Configure an USB device (n is 0 to 4, for machine version >= 7.1 and ostype l26 or windows > 7, n can be up to 14).",
56122987 20855 "format" : {
44660702
DM
20856 "host" : {
20857 "default_key" : 1,
499c9b7f 20858 "description" : "The Host USB device or port or the value 'spice'. HOSTUSBDEVICE syntax is:\n\n 'bus-port(.port)*' (decimal numbers) or\n 'vendor_id:product_id' (hexadeciaml numbers) or\n 'spice'\n\nYou can use the 'lsusb -t' command to list existing usb devices.\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such\nmachines - use with special care.\n\nThe value 'spice' can be used to add a usb redirection devices for spice.\n\nEither this or the 'mapping' key must be set.\n",
44660702 20859 "format_description" : "HOSTUSBDEVICE|spice",
499c9b7f
TL
20860 "optional" : 1,
20861 "pattern" : "(?^:(?:(?:(?^:(0x)?([0-9A-Fa-f]{4}):(0x)?([0-9A-Fa-f]{4})))|(?:(?^:(\\d+)\\-(\\d+(\\.\\d+)*)))|[Ss][Pp][Ii][Cc][Ee]))",
20862 "type" : "string"
20863 },
20864 "mapping" : {
20865 "description" : "The ID of a cluster wide mapping. Either this or the default-key 'host' must be set.",
20866 "format" : "pve-configid",
20867 "format_description" : "mapping-id",
20868 "optional" : 1,
44660702 20869 "type" : "string"
7aacca6f 20870 },
44660702 20871 "usb3" : {
c2993fe5 20872 "default" : 0,
4e7f60c2 20873 "description" : "Specifies whether if given host option is a USB3 device or port. For modern guests (machine version >= 7.1 and ostype l26 and windows > 7), this flag is irrelevant (all devices are plugged into a xhci controller).",
7aacca6f 20874 "optional" : 1,
44660702 20875 "type" : "boolean"
7aacca6f 20876 }
44660702 20877 },
7aacca6f 20878 "optional" : 1,
4bd7df8b 20879 "type" : "string",
499c9b7f 20880 "typetext" : "[[host=]<HOSTUSBDEVICE|spice>] [,mapping=<mapping-id>] [,usb3=<1|0>]"
7aacca6f 20881 },
44660702 20882 "vcpus" : {
7aacca6f 20883 "default" : 0,
44660702
DM
20884 "description" : "Number of hotplugged vcpus.",
20885 "minimum" : 1,
7aacca6f 20886 "optional" : 1,
4bd7df8b 20887 "type" : "integer",
013dc89f 20888 "typetext" : "<integer> (1 - N)"
7aacca6f 20889 },
44660702 20890 "vga" : {
e2d681b3
TL
20891 "description" : "Configure the VGA hardware.",
20892 "format" : {
fa22697b 20893 "clipboard" : {
c6d5bae8 20894 "description" : "Enable a specific clipboard. If not set, depending on the display type the SPICE one will be added. Migration with VNC clipboard is not yet supported!",
fa22697b
TL
20895 "enum" : [
20896 "vnc"
20897 ],
20898 "optional" : 1,
20899 "type" : "string"
20900 },
e2d681b3
TL
20901 "memory" : {
20902 "description" : "Sets the VGA memory (in MiB). Has no effect with serial display.",
20903 "maximum" : 512,
20904 "minimum" : 4,
20905 "optional" : 1,
20906 "type" : "integer"
20907 },
20908 "type" : {
20909 "default" : "std",
20910 "default_key" : 1,
20911 "description" : "Select the VGA type.",
20912 "enum" : [
20913 "cirrus",
20914 "qxl",
20915 "qxl2",
20916 "qxl3",
20917 "qxl4",
5f26e15b 20918 "none",
e2d681b3
TL
20919 "serial0",
20920 "serial1",
20921 "serial2",
20922 "serial3",
20923 "std",
20924 "virtio",
7af2edf9 20925 "virtio-gl",
e2d681b3
TL
20926 "vmware"
20927 ],
20928 "optional" : 1,
20929 "type" : "string"
20930 }
20931 },
7aacca6f 20932 "optional" : 1,
c2993fe5 20933 "type" : "string",
fa22697b 20934 "typetext" : "[[type=]<enum>] [,clipboard=<vnc>] [,memory=<integer>]",
e2d681b3 20935 "verbose_description" : "Configure the VGA Hardware. If you want to use high resolution modes (>= 1280x1024x16) you may need to increase the vga memory option. Since QEMU 2.9 the default VGA display type is 'std' for all OS types besides some Windows versions (XP and older) which use 'cirrus'. The 'qxl' option enables the SPICE display server. For win* OS you can select how many independent displays you want, Linux guests can add displays them self.\nYou can also run without any graphic card, using a serial device as terminal."
7aacca6f 20936 },
44660702 20937 "virtio[n]" : {
7af2edf9 20938 "description" : "Use volume as VIRTIO hard disk (n is 0 to 15). Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
7aacca6f 20939 "format" : {
7aacca6f 20940 "aio" : {
7aacca6f 20941 "description" : "AIO type to use.",
56122987 20942 "enum" : [
7aacca6f 20943 "native",
8f4d9c87
TL
20944 "threads",
20945 "io_uring"
7aacca6f 20946 ],
44660702
DM
20947 "optional" : 1,
20948 "type" : "string"
56122987 20949 },
44660702
DM
20950 "backup" : {
20951 "description" : "Whether the drive should be included when making backups.",
56122987 20952 "optional" : 1,
44660702 20953 "type" : "boolean"
7aacca6f 20954 },
44660702 20955 "bps" : {
de0983cb 20956 "description" : "Maximum r/w speed in bytes per second.",
44660702 20957 "format_description" : "bps",
7aacca6f 20958 "optional" : 1,
44660702 20959 "type" : "integer"
56122987 20960 },
de0983cb
DM
20961 "bps_max_length" : {
20962 "description" : "Maximum length of I/O bursts in seconds.",
20963 "format_description" : "seconds",
20964 "minimum" : 1,
20965 "optional" : 1,
20966 "type" : "integer"
20967 },
56122987 20968 "bps_rd" : {
de0983cb 20969 "description" : "Maximum read speed in bytes per second.",
44660702 20970 "format_description" : "bps",
56122987 20971 "optional" : 1,
7aacca6f 20972 "type" : "integer"
56122987 20973 },
de0983cb 20974 "bps_rd_length" : {
5d9c884c
DM
20975 "alias" : "bps_rd_max_length"
20976 },
20977 "bps_rd_max_length" : {
de0983cb
DM
20978 "description" : "Maximum length of read I/O bursts in seconds.",
20979 "format_description" : "seconds",
20980 "minimum" : 1,
20981 "optional" : 1,
20982 "type" : "integer"
20983 },
44660702 20984 "bps_wr" : {
de0983cb 20985 "description" : "Maximum write speed in bytes per second.",
44660702 20986 "format_description" : "bps",
56122987 20987 "optional" : 1,
7aacca6f 20988 "type" : "integer"
56122987 20989 },
de0983cb 20990 "bps_wr_length" : {
5d9c884c
DM
20991 "alias" : "bps_wr_max_length"
20992 },
20993 "bps_wr_max_length" : {
de0983cb
DM
20994 "description" : "Maximum length of write I/O bursts in seconds.",
20995 "format_description" : "seconds",
20996 "minimum" : 1,
20997 "optional" : 1,
20998 "type" : "integer"
20999 },
7aacca6f 21000 "cache" : {
44660702 21001 "description" : "The drive's cache mode",
7aacca6f
DM
21002 "enum" : [
21003 "none",
21004 "writethrough",
21005 "writeback",
21006 "unsafe",
21007 "directsync"
21008 ],
56122987 21009 "optional" : 1,
44660702 21010 "type" : "string"
7aacca6f 21011 },
44660702
DM
21012 "cyls" : {
21013 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
44660702
DM
21014 "optional" : 1,
21015 "type" : "integer"
21016 },
21017 "detect_zeroes" : {
21018 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
21019 "optional" : 1,
21020 "type" : "boolean"
21021 },
21022 "discard" : {
21023 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
56122987 21024 "enum" : [
44660702
DM
21025 "ignore",
21026 "on"
56122987
DM
21027 ],
21028 "optional" : 1,
44660702 21029 "type" : "string"
56122987 21030 },
44660702
DM
21031 "file" : {
21032 "default_key" : 1,
21033 "description" : "The drive's backing volume.",
21034 "format" : "pve-volume-id-or-qm-path",
21035 "format_description" : "volume",
21036 "type" : "string"
21037 },
21038 "format" : {
21039 "description" : "The drive's backing file's data format.",
21040 "enum" : [
21041 "raw",
21042 "cow",
21043 "qcow",
21044 "qed",
21045 "qcow2",
21046 "vmdk",
21047 "cloop"
21048 ],
56122987 21049 "optional" : 1,
44660702 21050 "type" : "string"
56122987 21051 },
44660702
DM
21052 "heads" : {
21053 "description" : "Force the drive's physical geometry to have a specific head count.",
44660702
DM
21054 "optional" : 1,
21055 "type" : "integer"
21056 },
7af2edf9
TL
21057 "import-from" : {
21058 "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
21059 "format" : "pve-volume-id-or-absolute-path",
21060 "format_description" : "source volume",
21061 "optional" : 1,
21062 "type" : "string"
21063 },
44660702 21064 "iops" : {
de0983cb 21065 "description" : "Maximum r/w I/O in operations per second.",
44660702 21066 "format_description" : "iops",
56122987 21067 "optional" : 1,
44660702
DM
21068 "type" : "integer"
21069 },
21070 "iops_max" : {
de0983cb 21071 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702
DM
21072 "format_description" : "iops",
21073 "optional" : 1,
21074 "type" : "integer"
56122987 21075 },
de0983cb
DM
21076 "iops_max_length" : {
21077 "description" : "Maximum length of I/O bursts in seconds.",
21078 "format_description" : "seconds",
21079 "minimum" : 1,
21080 "optional" : 1,
21081 "type" : "integer"
21082 },
7aacca6f 21083 "iops_rd" : {
de0983cb 21084 "description" : "Maximum read I/O in operations per second.",
7aacca6f 21085 "format_description" : "iops",
7aacca6f 21086 "optional" : 1,
44660702 21087 "type" : "integer"
56122987 21088 },
de0983cb 21089 "iops_rd_length" : {
5d9c884c 21090 "alias" : "iops_rd_max_length"
de0983cb 21091 },
44660702 21092 "iops_rd_max" : {
de0983cb 21093 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702
DM
21094 "format_description" : "iops",
21095 "optional" : 1,
21096 "type" : "integer"
21097 },
5d9c884c
DM
21098 "iops_rd_max_length" : {
21099 "description" : "Maximum length of read I/O bursts in seconds.",
21100 "format_description" : "seconds",
21101 "minimum" : 1,
21102 "optional" : 1,
21103 "type" : "integer"
21104 },
44660702 21105 "iops_wr" : {
de0983cb 21106 "description" : "Maximum write I/O in operations per second.",
44660702
DM
21107 "format_description" : "iops",
21108 "optional" : 1,
21109 "type" : "integer"
21110 },
de0983cb 21111 "iops_wr_length" : {
5d9c884c 21112 "alias" : "iops_wr_max_length"
de0983cb 21113 },
44660702 21114 "iops_wr_max" : {
de0983cb 21115 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702
DM
21116 "format_description" : "iops",
21117 "optional" : 1,
21118 "type" : "integer"
21119 },
5d9c884c
DM
21120 "iops_wr_max_length" : {
21121 "description" : "Maximum length of write I/O bursts in seconds.",
21122 "format_description" : "seconds",
21123 "minimum" : 1,
21124 "optional" : 1,
21125 "type" : "integer"
21126 },
44660702
DM
21127 "iothread" : {
21128 "description" : "Whether to use iothreads for this drive",
44660702
DM
21129 "optional" : 1,
21130 "type" : "boolean"
21131 },
21132 "mbps" : {
de0983cb 21133 "description" : "Maximum r/w speed in megabytes per second.",
44660702 21134 "format_description" : "mbps",
7aacca6f 21135 "optional" : 1,
44660702 21136 "type" : "number"
7aacca6f
DM
21137 },
21138 "mbps_max" : {
de0983cb 21139 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702 21140 "format_description" : "mbps",
56122987 21141 "optional" : 1,
44660702 21142 "type" : "number"
56122987 21143 },
44660702 21144 "mbps_rd" : {
de0983cb 21145 "description" : "Maximum read speed in megabytes per second.",
44660702 21146 "format_description" : "mbps",
56122987 21147 "optional" : 1,
44660702 21148 "type" : "number"
56122987 21149 },
44660702 21150 "mbps_rd_max" : {
de0983cb 21151 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702
DM
21152 "format_description" : "mbps",
21153 "optional" : 1,
21154 "type" : "number"
21155 },
21156 "mbps_wr" : {
de0983cb 21157 "description" : "Maximum write speed in megabytes per second.",
44660702
DM
21158 "format_description" : "mbps",
21159 "optional" : 1,
21160 "type" : "number"
21161 },
21162 "mbps_wr_max" : {
de0983cb 21163 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702
DM
21164 "format_description" : "mbps",
21165 "optional" : 1,
21166 "type" : "number"
21167 },
21168 "media" : {
21169 "default" : "disk",
21170 "description" : "The drive's media type.",
56122987 21171 "enum" : [
44660702
DM
21172 "cdrom",
21173 "disk"
56122987
DM
21174 ],
21175 "optional" : 1,
44660702 21176 "type" : "string"
56122987 21177 },
5d9c884c
DM
21178 "replicate" : {
21179 "default" : 1,
21180 "description" : "Whether the drive should considered for replication jobs.",
21181 "optional" : 1,
21182 "type" : "boolean"
21183 },
44660702
DM
21184 "rerror" : {
21185 "description" : "Read error action.",
21186 "enum" : [
21187 "ignore",
21188 "report",
21189 "stop"
21190 ],
56122987 21191 "optional" : 1,
44660702 21192 "type" : "string"
56122987 21193 },
5370fa8c
TL
21194 "ro" : {
21195 "description" : "Whether the drive is read-only.",
21196 "optional" : 1,
21197 "type" : "boolean"
21198 },
44660702
DM
21199 "secs" : {
21200 "description" : "Force the drive's physical geometry to have a specific sector count.",
56122987 21201 "optional" : 1,
44660702 21202 "type" : "integer"
56122987 21203 },
7aacca6f
DM
21204 "serial" : {
21205 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
7aacca6f 21206 "format" : "urlencoded",
44660702 21207 "format_description" : "serial",
7aacca6f 21208 "maxLength" : 60,
44660702
DM
21209 "optional" : 1,
21210 "type" : "string"
56122987 21211 },
27a7acb2
DM
21212 "shared" : {
21213 "default" : 0,
21214 "description" : "Mark this locally-managed volume as available on all nodes",
21215 "optional" : 1,
21216 "type" : "boolean",
21217 "verbose_description" : "Mark this locally-managed volume as available on all nodes.\n\nWARNING: This option does not share the volume automatically, it assumes it is shared already!"
21218 },
44660702
DM
21219 "size" : {
21220 "description" : "Disk size. This is purely informational and has no effect.",
21221 "format" : "disk-size",
f004f5b9 21222 "format_description" : "DiskSize",
44660702
DM
21223 "optional" : 1,
21224 "type" : "string"
56122987 21225 },
44660702 21226 "snapshot" : {
27a7acb2 21227 "description" : "Controls qemu's snapshot mode feature. If activated, changes made to the disk are temporary and will be discarded when the VM is shutdown.",
56122987 21228 "optional" : 1,
44660702 21229 "type" : "boolean"
56122987 21230 },
44660702
DM
21231 "trans" : {
21232 "description" : "Force disk geometry bios translation mode.",
21233 "enum" : [
21234 "none",
21235 "lba",
21236 "auto"
21237 ],
7aacca6f 21238 "optional" : 1,
44660702 21239 "type" : "string"
7aacca6f 21240 },
44660702
DM
21241 "volume" : {
21242 "alias" : "file"
21243 },
21244 "werror" : {
21245 "description" : "Write error action.",
21246 "enum" : [
21247 "enospc",
21248 "ignore",
21249 "report",
21250 "stop"
21251 ],
7aacca6f 21252 "optional" : 1,
44660702 21253 "type" : "string"
56122987
DM
21254 }
21255 },
7aacca6f 21256 "optional" : 1,
4bd7df8b 21257 "type" : "string",
7af2edf9 21258 "typetext" : "[file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<source volume>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,ro=<1|0>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]"
7aacca6f 21259 },
4d47f125
TL
21260 "vmgenid" : {
21261 "default" : "1 (autogenerated)",
21262 "description" : "Set VM Generation ID. Use '1' to autogenerate on create or update, pass '0' to disable explicitly.",
21263 "format_description" : "UUID",
21264 "optional" : 1,
21265 "pattern" : "(?:[a-fA-F0-9]{8}(?:-[a-fA-F0-9]{4}){3}-[a-fA-F0-9]{12}|[01])",
21266 "type" : "string",
4772952b 21267 "verbose_description" : "The VM generation ID (vmgenid) device exposes a 128-bit integer value identifier to the guest OS. This allows to notify the guest operating system when the virtual machine is executed with a different configuration (e.g. snapshot execution or creation from a template). The guest operating system notices the change, and is then able to react as appropriate by marking its copies of distributed databases as dirty, re-initializing its random number generator, etc.\nNote that auto-creation only works when done through API/CLI create or update methods, but not when manually editing the config file."
4d47f125 21268 },
44660702
DM
21269 "vmid" : {
21270 "description" : "The (unique) ID of the VM.",
21271 "format" : "pve-vmid",
8dd66e12
TL
21272 "maximum" : 999999999,
21273 "minimum" : 100,
4bd7df8b 21274 "type" : "integer",
8dd66e12 21275 "typetext" : "<integer> (100 - 999999999)"
56122987 21276 },
2489d6df
WB
21277 "vmstatestorage" : {
21278 "description" : "Default storage for VM state volumes/files.",
21279 "format" : "pve-storage-id",
907e4bc3 21280 "format_description" : "storage ID",
2489d6df
WB
21281 "optional" : 1,
21282 "type" : "string",
907e4bc3 21283 "typetext" : "<storage ID>"
2489d6df 21284 },
44660702 21285 "watchdog" : {
c2993fe5 21286 "description" : "Create a virtual hardware watchdog device.",
44660702 21287 "format" : "pve-qm-watchdog",
56122987 21288 "optional" : 1,
c2993fe5 21289 "type" : "string",
013dc89f 21290 "typetext" : "[[model=]<i6300esb|ib700>] [,action=<enum>]",
c2993fe5 21291 "verbose_description" : "Create a virtual hardware watchdog device. Once enabled (by a guest action), the watchdog must be periodically polled by an agent inside the guest or else the watchdog will reset the guest (or execute the respective action specified)"
56122987 21292 }
7aacca6f 21293 }
56122987 21294 },
56122987
DM
21295 "permissions" : {
21296 "check" : [
21297 "perm",
21298 "/vms/{vmid}",
21299 [
21300 "VM.Config.Disk",
21301 "VM.Config.CDROM",
21302 "VM.Config.CPU",
21303 "VM.Config.Memory",
21304 "VM.Config.Network",
21305 "VM.Config.HWType",
ac70d7d1
TL
21306 "VM.Config.Options",
21307 "VM.Config.Cloudinit"
56122987
DM
21308 ],
21309 "any",
21310 1
21311 ]
21312 },
44660702 21313 "protected" : 1,
7aacca6f 21314 "proxyto" : "node",
56122987 21315 "returns" : {
4d47f125
TL
21316 "optional" : 1,
21317 "type" : "string"
7aacca6f 21318 }
4d47f125
TL
21319 },
21320 "PUT" : {
e9cd3bd4 21321 "allowtoken" : 1,
4d47f125
TL
21322 "description" : "Set virtual machine options (synchrounous API) - You should consider using the POST method instead for any actions involving hotplug or storage allocation.",
21323 "method" : "PUT",
21324 "name" : "update_vm",
7aacca6f 21325 "parameters" : {
44660702 21326 "additionalProperties" : 0,
7aacca6f 21327 "properties" : {
4d47f125
TL
21328 "acpi" : {
21329 "default" : 1,
21330 "description" : "Enable/disable ACPI.",
21331 "optional" : 1,
21332 "type" : "boolean",
21333 "typetext" : "<boolean>"
7aacca6f 21334 },
4e7f60c2 21335 "affinity" : {
81a3384d 21336 "description" : "List of host cores used to execute guest processes, for example: 0,5,8-11",
4e7f60c2
TL
21337 "format" : "pve-cpuset",
21338 "optional" : 1,
21339 "type" : "string",
21340 "typetext" : "<string>"
21341 },
4d47f125 21342 "agent" : {
9d2e98ed 21343 "description" : "Enable/disable communication with the QEMU Guest Agent and its properties.",
4d47f125
TL
21344 "format" : {
21345 "enabled" : {
21346 "default" : 0,
21347 "default_key" : 1,
9d2e98ed
TL
21348 "description" : "Enable/disable communication with a QEMU Guest Agent (QGA) running in the VM.",
21349 "type" : "boolean"
21350 },
21351 "freeze-fs-on-backup" : {
21352 "default" : 1,
21353 "description" : "Freeze/thaw guest filesystems on backup for consistency.",
21354 "optional" : 1,
4d47f125
TL
21355 "type" : "boolean"
21356 },
21357 "fstrim_cloned_disks" : {
21358 "default" : 0,
d2656385 21359 "description" : "Run fstrim after moving a disk or migrating the VM.",
4d47f125
TL
21360 "optional" : 1,
21361 "type" : "boolean"
5c1699e5
TL
21362 },
21363 "type" : {
21364 "default" : "virtio",
21365 "description" : "Select the agent type",
21366 "enum" : [
21367 "virtio",
21368 "isa"
21369 ],
21370 "optional" : 1,
21371 "type" : "string"
4d47f125 21372 }
44660702 21373 },
4d47f125
TL
21374 "optional" : 1,
21375 "type" : "string",
9d2e98ed 21376 "typetext" : "[enabled=]<1|0> [,freeze-fs-on-backup=<1|0>] [,fstrim_cloned_disks=<1|0>] [,type=<virtio|isa>]"
44660702 21377 },
e2d681b3
TL
21378 "arch" : {
21379 "description" : "Virtual processor architecture. Defaults to the host.",
21380 "enum" : [
21381 "x86_64",
21382 "aarch64"
21383 ],
21384 "optional" : 1,
21385 "type" : "string"
21386 },
4d47f125
TL
21387 "args" : {
21388 "description" : "Arbitrary arguments passed to kvm.",
21389 "optional" : 1,
21390 "type" : "string",
21391 "typetext" : "<string>",
159464a9 21392 "verbose_description" : "Arbitrary arguments passed to kvm, for example:\n\nargs: -no-reboot -smbios 'type=0,vendor=FOO'\n\nNOTE: this option is for experts only.\n"
4d47f125 21393 },
1c532546
TL
21394 "audio0" : {
21395 "description" : "Configure a audio device, useful in combination with QXL/Spice.",
21396 "format" : {
21397 "device" : {
21398 "description" : "Configure an audio device.",
21399 "enum" : [
21400 "ich9-intel-hda",
21401 "intel-hda",
21402 "AC97"
21403 ],
21404 "type" : "string"
21405 },
21406 "driver" : {
21407 "default" : "spice",
21408 "description" : "Driver backend for the audio device.",
21409 "enum" : [
d2656385
TL
21410 "spice",
21411 "none"
1c532546
TL
21412 ],
21413 "optional" : 1,
21414 "type" : "string"
21415 }
21416 },
21417 "optional" : 1,
21418 "type" : "string",
d2656385 21419 "typetext" : "device=<ich9-intel-hda|intel-hda|AC97> [,driver=<spice|none>]"
1c532546 21420 },
4d47f125
TL
21421 "autostart" : {
21422 "default" : 0,
21423 "description" : "Automatic restart after crash (currently ignored).",
7aacca6f 21424 "optional" : 1,
013dc89f
DM
21425 "type" : "boolean",
21426 "typetext" : "<boolean>"
7aacca6f 21427 },
4d47f125 21428 "balloon" : {
9d2e98ed 21429 "description" : "Amount of target RAM for the VM in MiB. Using zero disables the ballon driver.",
4d47f125
TL
21430 "minimum" : 0,
21431 "optional" : 1,
21432 "type" : "integer",
21433 "typetext" : "<integer> (0 - N)"
21434 },
21435 "bios" : {
21436 "default" : "seabios",
21437 "description" : "Select BIOS implementation.",
21438 "enum" : [
21439 "seabios",
21440 "ovmf"
21441 ],
21442 "optional" : 1,
21443 "type" : "string"
21444 },
21445 "boot" : {
5370fa8c 21446 "description" : "Specify guest boot order. Use the 'order=' sub-property as usage with no key or 'legacy=' is deprecated.",
4772952b 21447 "format" : "pve-qm-boot",
4d47f125 21448 "optional" : 1,
4772952b
TL
21449 "type" : "string",
21450 "typetext" : "[[legacy=]<[acdn]{1,4}>] [,order=<device[;device...]>]"
4d47f125
TL
21451 },
21452 "bootdisk" : {
4772952b 21453 "description" : "Enable booting from specified disk. Deprecated: Use 'boot: order=foo;bar' instead.",
4d47f125
TL
21454 "format" : "pve-qm-bootdisk",
21455 "optional" : 1,
21456 "pattern" : "(ide|sata|scsi|virtio)\\d+",
21457 "type" : "string"
21458 },
21459 "cdrom" : {
21460 "description" : "This is an alias for option -ide2",
21461 "format" : "pve-qm-ide",
21462 "optional" : 1,
21463 "type" : "string",
21464 "typetext" : "<volume>"
21465 },
95895385
TL
21466 "cicustom" : {
21467 "description" : "cloud-init: Specify custom files to replace the automatically generated ones at start.",
21468 "format" : "pve-qm-cicustom",
21469 "optional" : 1,
21470 "type" : "string",
5370fa8c 21471 "typetext" : "[meta=<volume>] [,network=<volume>] [,user=<volume>] [,vendor=<volume>]"
95895385 21472 },
4d47f125
TL
21473 "cipassword" : {
21474 "description" : "cloud-init: Password to assign the user. Using this is generally not recommended. Use ssh keys instead. Also note that older cloud-init versions do not support hashed passwords.",
21475 "optional" : 1,
013dc89f
DM
21476 "type" : "string",
21477 "typetext" : "<string>"
44660702 21478 },
4d47f125
TL
21479 "citype" : {
21480 "description" : "Specifies the cloud-init configuration format. The default depends on the configured operating system type (`ostype`. We use the `nocloud` format for Linux, and `configdrive2` for windows.",
21481 "enum" : [
21482 "configdrive2",
d2656385
TL
21483 "nocloud",
21484 "opennebula"
4d47f125
TL
21485 ],
21486 "optional" : 1,
21487 "type" : "string"
21488 },
159464a9 21489 "ciupgrade" : {
c8eee6ff 21490 "default" : 1,
159464a9
TL
21491 "description" : "cloud-init: do an automatic package upgrade after the first boot.",
21492 "optional" : 1,
21493 "type" : "boolean",
21494 "typetext" : "<boolean>"
21495 },
4d47f125
TL
21496 "ciuser" : {
21497 "description" : "cloud-init: User name to change ssh keys and password for instead of the image's configured default user.",
21498 "optional" : 1,
013dc89f
DM
21499 "type" : "string",
21500 "typetext" : "<string>"
56122987 21501 },
4d47f125
TL
21502 "cores" : {
21503 "default" : 1,
21504 "description" : "The number of cores per socket.",
7aacca6f 21505 "minimum" : 1,
4d47f125 21506 "optional" : 1,
4bd7df8b 21507 "type" : "integer",
013dc89f 21508 "typetext" : "<integer> (1 - N)"
4d47f125
TL
21509 },
21510 "cpu" : {
21511 "description" : "Emulated CPU type.",
c5aa7e14 21512 "format" : "pve-vm-cpu-conf",
4d47f125 21513 "optional" : 1,
013dc89f 21514 "type" : "string",
04d22a9f 21515 "typetext" : "[[cputype=]<string>] [,flags=<+FLAG[;-FLAG...]>] [,hidden=<1|0>] [,hv-vendor-id=<vendor-id>] [,phys-bits=<8-64|host>] [,reported-model=<enum>]"
44660702 21516 },
4d47f125
TL
21517 "cpulimit" : {
21518 "default" : 0,
21519 "description" : "Limit of CPU usage.",
21520 "maximum" : 128,
21521 "minimum" : 0,
21522 "optional" : 1,
21523 "type" : "number",
21524 "typetext" : "<number> (0 - 128)",
21525 "verbose_description" : "Limit of CPU usage.\n\nNOTE: If the computer has 2 CPUs, it has total of '2' CPU time. Value '0' indicates no CPU limit."
21526 },
21527 "cpuunits" : {
5370fa8c
TL
21528 "default" : "cgroup v1: 1024, cgroup v2: 100",
21529 "description" : "CPU weight for a VM, will be clamped to [1, 10000] in cgroup v2.",
4d47f125 21530 "maximum" : 262144,
7af2edf9 21531 "minimum" : 1,
4d47f125 21532 "optional" : 1,
4bd7df8b 21533 "type" : "integer",
7af2edf9 21534 "typetext" : "<integer> (1 - 262144)",
4d47f125 21535 "verbose_description" : "CPU weight for a VM. Argument is used in the kernel fair scheduler. The larger the number is, the more CPU time this VM gets. Number is relative to weights of all the other running VMs."
7aacca6f 21536 },
4d47f125
TL
21537 "delete" : {
21538 "description" : "A list of settings you want to delete.",
21539 "format" : "pve-configid-list",
21540 "optional" : 1,
21541 "type" : "string",
21542 "typetext" : "<string>"
21543 },
21544 "description" : {
8f4d9c87
TL
21545 "description" : "Description for the VM. Shown in the web-interface VM's summary. This is saved as comment inside the configuration file.",
21546 "maxLength" : 8192,
4d47f125
TL
21547 "optional" : 1,
21548 "type" : "string",
21549 "typetext" : "<string>"
21550 },
21551 "digest" : {
21552 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
21553 "maxLength" : 40,
44660702 21554 "optional" : 1,
4d47f125
TL
21555 "type" : "string",
21556 "typetext" : "<string>"
21557 },
21558 "efidisk0" : {
9d2e98ed 21559 "description" : "Configure a disk for storing EFI vars. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Note that SIZE_IN_GiB is ignored here and that the default EFI vars are copied to the volume instead. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
4d47f125 21560 "format" : {
5370fa8c
TL
21561 "efitype" : {
21562 "default" : "2m",
bd92b745 21563 "description" : "Size and type of the OVMF EFI vars. '4m' is newer and recommended, and required for Secure Boot. For backwards compatibility, '2m' is used if not otherwise specified. Ignored for VMs with arch=aarch64 (ARM).",
5370fa8c
TL
21564 "enum" : [
21565 "2m",
21566 "4m"
21567 ],
21568 "optional" : 1,
21569 "type" : "string"
21570 },
4d47f125
TL
21571 "file" : {
21572 "default_key" : 1,
21573 "description" : "The drive's backing volume.",
21574 "format" : "pve-volume-id-or-qm-path",
21575 "format_description" : "volume",
21576 "type" : "string"
21577 },
21578 "format" : {
21579 "description" : "The drive's backing file's data format.",
21580 "enum" : [
21581 "raw",
21582 "cow",
21583 "qcow",
21584 "qed",
21585 "qcow2",
21586 "vmdk",
21587 "cloop"
21588 ],
21589 "optional" : 1,
21590 "type" : "string"
21591 },
7af2edf9
TL
21592 "import-from" : {
21593 "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
21594 "format" : "pve-volume-id-or-absolute-path",
21595 "format_description" : "source volume",
21596 "optional" : 1,
21597 "type" : "string"
21598 },
5370fa8c
TL
21599 "pre-enrolled-keys" : {
21600 "default" : 0,
21601 "description" : "Use am EFI vars template with distribution-specific and Microsoft Standard keys enrolled, if used with 'efitype=4m'. Note that this will enable Secure Boot by default, though it can still be turned off from within the VM.",
21602 "optional" : 1,
21603 "type" : "boolean"
21604 },
4d47f125
TL
21605 "size" : {
21606 "description" : "Disk size. This is purely informational and has no effect.",
21607 "format" : "disk-size",
21608 "format_description" : "DiskSize",
21609 "optional" : 1,
21610 "type" : "string"
21611 },
21612 "volume" : {
21613 "alias" : "file"
21614 }
21615 },
21616 "optional" : 1,
21617 "type" : "string",
7af2edf9 21618 "typetext" : "[file=]<volume> [,efitype=<2m|4m>] [,format=<enum>] [,import-from=<source volume>] [,pre-enrolled-keys=<1|0>] [,size=<DiskSize>]"
4d47f125
TL
21619 },
21620 "force" : {
21621 "description" : "Force physical removal. Without this, we simple remove the disk from the config file and create an additional configuration entry called 'unused[n]', which contains the volume ID. Unlink of unused[n] always cause physical removal.",
21622 "optional" : 1,
21623 "requires" : "delete",
013dc89f
DM
21624 "type" : "boolean",
21625 "typetext" : "<boolean>"
56122987 21626 },
4d47f125
TL
21627 "freeze" : {
21628 "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).",
21629 "optional" : 1,
21630 "type" : "boolean",
21631 "typetext" : "<boolean>"
7aacca6f 21632 },
5f26e15b
TL
21633 "hookscript" : {
21634 "description" : "Script that will be executed during various steps in the vms lifetime.",
21635 "format" : "pve-volume-id",
21636 "optional" : 1,
21637 "type" : "string",
21638 "typetext" : "<string>"
21639 },
4d47f125
TL
21640 "hostpci[n]" : {
21641 "description" : "Map host PCI devices into guest.",
21642 "format" : "pve-qm-hostpci",
21643 "optional" : 1,
21644 "type" : "string",
499c9b7f 21645 "typetext" : "[[host=]<HOSTPCIID[;HOSTPCIID2...]>] [,device-id=<hex id>] [,legacy-igd=<1|0>] [,mapping=<mapping-id>] [,mdev=<string>] [,pcie=<1|0>] [,rombar=<1|0>] [,romfile=<string>] [,sub-device-id=<hex id>] [,sub-vendor-id=<hex id>] [,vendor-id=<hex id>] [,x-vga=<1|0>]",
bb4c8cf8 21646 "verbose_description" : "Map host PCI devices into guest.\n\nNOTE: This option allows direct access to host hardware. So it is no longer\npossible to migrate such machines - use with special care.\n\nCAUTION: Experimental! User reported problems with this option.\n"
44660702 21647 },
4d47f125
TL
21648 "hotplug" : {
21649 "default" : "network,disk,usb",
4e7f60c2 21650 "description" : "Selectively enable hotplug features. This is a comma separated list of hotplug features: 'network', 'disk', 'cpu', 'memory', 'usb' and 'cloudinit'. Use '0' to disable hotplug completely. Using '1' as value is an alias for the default `network,disk,usb`. USB hotplugging is possible for guests with machine version >= 7.1 and ostype l26 or windows > 7.",
4d47f125
TL
21651 "format" : "pve-hotplug-features",
21652 "optional" : 1,
35a75dd3
DM
21653 "type" : "string",
21654 "typetext" : "<string>"
21655 },
4d47f125
TL
21656 "hugepages" : {
21657 "description" : "Enable/disable hugepages memory.",
35a75dd3 21658 "enum" : [
4d47f125
TL
21659 "any",
21660 "2",
21661 "1024"
35a75dd3
DM
21662 ],
21663 "optional" : 1,
21664 "type" : "string"
21665 },
4d47f125 21666 "ide[n]" : {
7af2edf9 21667 "description" : "Use volume as IDE hard disk or CD-ROM (n is 0 to 3). Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
4d47f125
TL
21668 "format" : {
21669 "aio" : {
21670 "description" : "AIO type to use.",
21671 "enum" : [
21672 "native",
8f4d9c87
TL
21673 "threads",
21674 "io_uring"
4d47f125 21675 ],
44660702 21676 "optional" : 1,
44660702
DM
21677 "type" : "string"
21678 },
4d47f125
TL
21679 "backup" : {
21680 "description" : "Whether the drive should be included when making backups.",
56122987 21681 "optional" : 1,
4d47f125 21682 "type" : "boolean"
56122987 21683 },
4d47f125
TL
21684 "bps" : {
21685 "description" : "Maximum r/w speed in bytes per second.",
21686 "format_description" : "bps",
de0983cb 21687 "optional" : 1,
4d47f125 21688 "type" : "integer"
de0983cb 21689 },
4d47f125
TL
21690 "bps_max_length" : {
21691 "description" : "Maximum length of I/O bursts in seconds.",
21692 "format_description" : "seconds",
21693 "minimum" : 1,
de0983cb 21694 "optional" : 1,
4d47f125 21695 "type" : "integer"
7aacca6f 21696 },
4d47f125
TL
21697 "bps_rd" : {
21698 "description" : "Maximum read speed in bytes per second.",
21699 "format_description" : "bps",
7aacca6f 21700 "optional" : 1,
4d47f125 21701 "type" : "integer"
56122987 21702 },
4d47f125
TL
21703 "bps_rd_length" : {
21704 "alias" : "bps_rd_max_length"
21705 },
21706 "bps_rd_max_length" : {
21707 "description" : "Maximum length of read I/O bursts in seconds.",
21708 "format_description" : "seconds",
21709 "minimum" : 1,
56122987 21710 "optional" : 1,
4d47f125 21711 "type" : "integer"
56122987 21712 },
4d47f125
TL
21713 "bps_wr" : {
21714 "description" : "Maximum write speed in bytes per second.",
21715 "format_description" : "bps",
52e44c50 21716 "optional" : 1,
4d47f125 21717 "type" : "integer"
52e44c50 21718 },
4d47f125
TL
21719 "bps_wr_length" : {
21720 "alias" : "bps_wr_max_length"
21721 },
21722 "bps_wr_max_length" : {
21723 "description" : "Maximum length of write I/O bursts in seconds.",
21724 "format_description" : "seconds",
44660702 21725 "minimum" : 1,
56122987 21726 "optional" : 1,
4d47f125 21727 "type" : "integer"
56122987 21728 },
4d47f125
TL
21729 "cache" : {
21730 "description" : "The drive's cache mode",
21731 "enum" : [
21732 "none",
21733 "writethrough",
21734 "writeback",
21735 "unsafe",
21736 "directsync"
21737 ],
7aacca6f 21738 "optional" : 1,
4d47f125 21739 "type" : "string"
7aacca6f 21740 },
4d47f125
TL
21741 "cyls" : {
21742 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
21743 "optional" : 1,
21744 "type" : "integer"
56122987 21745 },
4d47f125
TL
21746 "detect_zeroes" : {
21747 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
56122987 21748 "optional" : 1,
4d47f125 21749 "type" : "boolean"
56122987 21750 },
4d47f125
TL
21751 "discard" : {
21752 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
21753 "enum" : [
21754 "ignore",
21755 "on"
21756 ],
56122987 21757 "optional" : 1,
4d47f125 21758 "type" : "string"
7aacca6f 21759 },
4d47f125
TL
21760 "file" : {
21761 "default_key" : 1,
21762 "description" : "The drive's backing volume.",
21763 "format" : "pve-volume-id-or-qm-path",
21764 "format_description" : "volume",
21765 "type" : "string"
56122987 21766 },
4d47f125
TL
21767 "format" : {
21768 "description" : "The drive's backing file's data format.",
21769 "enum" : [
21770 "raw",
21771 "cow",
21772 "qcow",
21773 "qed",
21774 "qcow2",
21775 "vmdk",
21776 "cloop"
21777 ],
7aacca6f 21778 "optional" : 1,
4d47f125 21779 "type" : "string"
7aacca6f 21780 },
4d47f125
TL
21781 "heads" : {
21782 "description" : "Force the drive's physical geometry to have a specific head count.",
7aacca6f 21783 "optional" : 1,
4d47f125 21784 "type" : "integer"
56122987 21785 },
7af2edf9
TL
21786 "import-from" : {
21787 "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
21788 "format" : "pve-volume-id-or-absolute-path",
21789 "format_description" : "source volume",
21790 "optional" : 1,
21791 "type" : "string"
21792 },
4d47f125
TL
21793 "iops" : {
21794 "description" : "Maximum r/w I/O in operations per second.",
21795 "format_description" : "iops",
44660702 21796 "optional" : 1,
4d47f125 21797 "type" : "integer"
44660702 21798 },
4d47f125
TL
21799 "iops_max" : {
21800 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
21801 "format_description" : "iops",
44660702 21802 "optional" : 1,
4d47f125 21803 "type" : "integer"
56122987 21804 },
4d47f125
TL
21805 "iops_max_length" : {
21806 "description" : "Maximum length of I/O bursts in seconds.",
21807 "format_description" : "seconds",
21808 "minimum" : 1,
7aacca6f 21809 "optional" : 1,
4d47f125 21810 "type" : "integer"
7aacca6f 21811 },
4d47f125
TL
21812 "iops_rd" : {
21813 "description" : "Maximum read I/O in operations per second.",
21814 "format_description" : "iops",
21815 "optional" : 1,
21816 "type" : "integer"
21817 },
21818 "iops_rd_length" : {
21819 "alias" : "iops_rd_max_length"
21820 },
21821 "iops_rd_max" : {
21822 "description" : "Maximum unthrottled read I/O pool in operations per second.",
21823 "format_description" : "iops",
21824 "optional" : 1,
21825 "type" : "integer"
21826 },
21827 "iops_rd_max_length" : {
21828 "description" : "Maximum length of read I/O bursts in seconds.",
21829 "format_description" : "seconds",
44660702 21830 "minimum" : 1,
4d47f125
TL
21831 "optional" : 1,
21832 "type" : "integer"
7aacca6f 21833 },
4d47f125
TL
21834 "iops_wr" : {
21835 "description" : "Maximum write I/O in operations per second.",
21836 "format_description" : "iops",
44660702 21837 "optional" : 1,
4d47f125 21838 "type" : "integer"
44660702 21839 },
4d47f125
TL
21840 "iops_wr_length" : {
21841 "alias" : "iops_wr_max_length"
21842 },
21843 "iops_wr_max" : {
21844 "description" : "Maximum unthrottled write I/O pool in operations per second.",
21845 "format_description" : "iops",
21846 "optional" : 1,
21847 "type" : "integer"
21848 },
21849 "iops_wr_max_length" : {
21850 "description" : "Maximum length of write I/O bursts in seconds.",
21851 "format_description" : "seconds",
44660702 21852 "minimum" : 1,
44660702 21853 "optional" : 1,
4d47f125 21854 "type" : "integer"
44660702 21855 },
4d47f125
TL
21856 "mbps" : {
21857 "description" : "Maximum r/w speed in megabytes per second.",
21858 "format_description" : "mbps",
21859 "optional" : 1,
21860 "type" : "number"
56122987 21861 },
4d47f125
TL
21862 "mbps_max" : {
21863 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
21864 "format_description" : "mbps",
21865 "optional" : 1,
21866 "type" : "number"
21867 },
21868 "mbps_rd" : {
21869 "description" : "Maximum read speed in megabytes per second.",
21870 "format_description" : "mbps",
21871 "optional" : 1,
21872 "type" : "number"
21873 },
21874 "mbps_rd_max" : {
21875 "description" : "Maximum unthrottled read pool in megabytes per second.",
21876 "format_description" : "mbps",
21877 "optional" : 1,
21878 "type" : "number"
21879 },
21880 "mbps_wr" : {
21881 "description" : "Maximum write speed in megabytes per second.",
21882 "format_description" : "mbps",
21883 "optional" : 1,
21884 "type" : "number"
21885 },
21886 "mbps_wr_max" : {
21887 "description" : "Maximum unthrottled write pool in megabytes per second.",
21888 "format_description" : "mbps",
21889 "optional" : 1,
21890 "type" : "number"
21891 },
21892 "media" : {
21893 "default" : "disk",
21894 "description" : "The drive's media type.",
21895 "enum" : [
21896 "cdrom",
21897 "disk"
21898 ],
21899 "optional" : 1,
21900 "type" : "string"
21901 },
21902 "model" : {
21903 "description" : "The drive's reported model name, url-encoded, up to 40 bytes long.",
21904 "format" : "urlencoded",
21905 "format_description" : "model",
21906 "maxLength" : 120,
21907 "optional" : 1,
21908 "type" : "string"
21909 },
21910 "replicate" : {
21911 "default" : 1,
21912 "description" : "Whether the drive should considered for replication jobs.",
21913 "optional" : 1,
21914 "type" : "boolean"
21915 },
21916 "rerror" : {
21917 "description" : "Read error action.",
21918 "enum" : [
21919 "ignore",
21920 "report",
21921 "stop"
21922 ],
21923 "optional" : 1,
21924 "type" : "string"
21925 },
21926 "secs" : {
21927 "description" : "Force the drive's physical geometry to have a specific sector count.",
21928 "optional" : 1,
21929 "type" : "integer"
21930 },
21931 "serial" : {
21932 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
21933 "format" : "urlencoded",
21934 "format_description" : "serial",
21935 "maxLength" : 60,
21936 "optional" : 1,
21937 "type" : "string"
21938 },
21939 "shared" : {
21940 "default" : 0,
21941 "description" : "Mark this locally-managed volume as available on all nodes",
44660702 21942 "optional" : 1,
013dc89f 21943 "type" : "boolean",
4d47f125 21944 "verbose_description" : "Mark this locally-managed volume as available on all nodes.\n\nWARNING: This option does not share the volume automatically, it assumes it is shared already!"
56122987 21945 },
4d47f125
TL
21946 "size" : {
21947 "description" : "Disk size. This is purely informational and has no effect.",
21948 "format" : "disk-size",
21949 "format_description" : "DiskSize",
21950 "optional" : 1,
21951 "type" : "string"
21952 },
21953 "snapshot" : {
21954 "description" : "Controls qemu's snapshot mode feature. If activated, changes made to the disk are temporary and will be discarded when the VM is shutdown.",
21955 "optional" : 1,
21956 "type" : "boolean"
21957 },
25203dc1
NC
21958 "ssd" : {
21959 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
21960 "optional" : 1,
21961 "type" : "boolean"
21962 },
4d47f125
TL
21963 "trans" : {
21964 "description" : "Force disk geometry bios translation mode.",
21965 "enum" : [
21966 "none",
21967 "lba",
21968 "auto"
21969 ],
21970 "optional" : 1,
21971 "type" : "string"
21972 },
21973 "volume" : {
21974 "alias" : "file"
21975 },
21976 "werror" : {
21977 "description" : "Write error action.",
21978 "enum" : [
21979 "enospc",
21980 "ignore",
21981 "report",
21982 "stop"
21983 ],
21984 "optional" : 1,
21985 "type" : "string"
95895385
TL
21986 },
21987 "wwn" : {
21988 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
21989 "format_description" : "wwn",
21990 "optional" : 1,
21991 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
21992 "type" : "string"
4d47f125
TL
21993 }
21994 },
21995 "optional" : 1,
013dc89f 21996 "type" : "string",
7af2edf9 21997 "typetext" : "[file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<source volume>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,model=<model>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>]"
44660702 21998 },
4d47f125 21999 "ipconfig[n]" : {
d2656385 22000 "description" : "cloud-init: Specify IP addresses and gateways for the corresponding interface.\n\nIP addresses use CIDR notation, gateways are optional but need an IP of the same type specified.\n\nThe special string 'dhcp' can be used for IP addresses to use DHCP, in which case no explicit\ngateway should be provided.\nFor IPv6 the special string 'auto' can be used to use stateless autoconfiguration. This requires\ncloud-init 19.4 or newer.\n\nIf cloud-init is enabled and neither an IPv4 nor an IPv6 address is specified, it defaults to using\ndhcp on IPv4.\n",
4d47f125
TL
22001 "format" : "pve-qm-ipconfig",
22002 "optional" : 1,
013dc89f 22003 "type" : "string",
4d47f125 22004 "typetext" : "[gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,ip=<IPv4Format/CIDR>] [,ip6=<IPv6Format/CIDR>]"
44660702 22005 },
95895385
TL
22006 "ivshmem" : {
22007 "description" : "Inter-VM shared memory. Useful for direct communication between VMs, or to the host.",
22008 "format" : {
22009 "name" : {
22010 "description" : "The name of the file. Will be prefixed with 'pve-shm-'. Default is the VMID. Will be deleted when the VM is stopped.",
22011 "format_description" : "string",
22012 "optional" : 1,
22013 "pattern" : "[a-zA-Z0-9\\-]+",
22014 "type" : "string"
22015 },
22016 "size" : {
22017 "description" : "The size of the file in MB.",
22018 "minimum" : 1,
22019 "type" : "integer"
22020 }
22021 },
22022 "optional" : 1,
22023 "type" : "string",
22024 "typetext" : "size=<integer> [,name=<string>]"
22025 },
4772952b
TL
22026 "keephugepages" : {
22027 "default" : 0,
22028 "description" : "Use together with hugepages. If enabled, hugepages will not not be deleted after VM shutdown and can be used for subsequent starts.",
22029 "optional" : 1,
22030 "type" : "boolean",
22031 "typetext" : "<boolean>"
22032 },
4d47f125
TL
22033 "keyboard" : {
22034 "default" : null,
7af2edf9 22035 "description" : "Keyboard layout for VNC server. This option is generally not required and is often better handled from within the guest OS.",
4d47f125
TL
22036 "enum" : [
22037 "de",
22038 "de-ch",
22039 "da",
22040 "en-gb",
22041 "en-us",
22042 "es",
22043 "fi",
22044 "fr",
22045 "fr-be",
22046 "fr-ca",
22047 "fr-ch",
22048 "hu",
22049 "is",
22050 "it",
22051 "ja",
22052 "lt",
22053 "mk",
22054 "nl",
22055 "no",
22056 "pl",
22057 "pt",
22058 "pt-br",
22059 "sv",
22060 "sl",
22061 "tr"
22062 ],
22063 "optional" : 1,
22064 "type" : "string"
44660702 22065 },
4d47f125
TL
22066 "kvm" : {
22067 "default" : 1,
22068 "description" : "Enable/disable KVM hardware virtualization.",
44660702 22069 "optional" : 1,
013dc89f
DM
22070 "type" : "boolean",
22071 "typetext" : "<boolean>"
7aacca6f 22072 },
4d47f125 22073 "localtime" : {
5370fa8c 22074 "description" : "Set the real time clock (RTC) to local time. This is enabled by default if the `ostype` indicates a Microsoft Windows OS.",
4d47f125
TL
22075 "optional" : 1,
22076 "type" : "boolean",
22077 "typetext" : "<boolean>"
22078 },
22079 "lock" : {
22080 "description" : "Lock/unlock the VM.",
56122987 22081 "enum" : [
4d47f125 22082 "backup",
5f26e15b
TL
22083 "clone",
22084 "create",
22085 "migrate",
22086 "rollback",
56122987 22087 "snapshot",
95895385
TL
22088 "snapshot-delete",
22089 "suspending",
22090 "suspended"
56122987 22091 ],
4d47f125 22092 "optional" : 1,
44660702
DM
22093 "type" : "string"
22094 },
4d47f125 22095 "machine" : {
907e4bc3
TL
22096 "description" : "Specify the QEMU machine.",
22097 "format" : {
22098 "type" : {
22099 "default_key" : 1,
22100 "description" : "Specifies the QEMU machine type.",
22101 "format_description" : "machine type",
22102 "maxLength" : 40,
22103 "optional" : 1,
22104 "pattern" : "(pc|pc(-i440fx)?-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|q35|pc-q35-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|virt(?:-\\d+(\\.\\d+)+)?(\\+pve\\d+)?)",
22105 "type" : "string"
22106 },
22107 "viommu" : {
22108 "description" : "Enable and set guest vIOMMU variant (Intel vIOMMU needs q35 to be set as machine type).",
22109 "enum" : [
22110 "intel",
22111 "virtio"
22112 ],
22113 "optional" : 1,
22114 "type" : "string"
22115 }
22116 },
4d47f125 22117 "optional" : 1,
907e4bc3
TL
22118 "type" : "string",
22119 "typetext" : "[[type=]<machine type>] [,viommu=<intel|virtio>]"
4d47f125
TL
22120 },
22121 "memory" : {
bd92b745
TL
22122 "description" : "Memory properties.",
22123 "format" : {
22124 "current" : {
22125 "default" : 512,
22126 "default_key" : 1,
22127 "description" : "Current amount of online RAM for the VM in MiB. This is the maximum available memory when you use the balloon device.",
22128 "minimum" : 16,
22129 "type" : "integer"
22130 }
22131 },
4d47f125 22132 "optional" : 1,
bd92b745
TL
22133 "type" : "string",
22134 "typetext" : "[current=]<integer>"
4d47f125
TL
22135 },
22136 "migrate_downtime" : {
22137 "default" : 0.1,
22138 "description" : "Set maximum tolerated downtime (in seconds) for migrations.",
22139 "minimum" : 0,
22140 "optional" : 1,
22141 "type" : "number",
22142 "typetext" : "<number> (0 - N)"
22143 },
22144 "migrate_speed" : {
22145 "default" : 0,
22146 "description" : "Set maximum speed (in MB/s) for migrations. Value 0 is no limit.",
22147 "minimum" : 0,
22148 "optional" : 1,
22149 "type" : "integer",
22150 "typetext" : "<integer> (0 - N)"
22151 },
22152 "name" : {
22153 "description" : "Set a name for the VM. Only used on the configuration web interface.",
22154 "format" : "dns-name",
22155 "optional" : 1,
013dc89f
DM
22156 "type" : "string",
22157 "typetext" : "<string>"
56122987 22158 },
4d47f125 22159 "nameserver" : {
de786b48 22160 "description" : "cloud-init: Sets DNS server IP address for a container. Create will automatically use the setting from the host if neither searchdomain nor nameserver are set.",
4d47f125 22161 "format" : "address-list",
7aacca6f 22162 "optional" : 1,
013dc89f
DM
22163 "type" : "string",
22164 "typetext" : "<string>"
7aacca6f 22165 },
4d47f125
TL
22166 "net[n]" : {
22167 "description" : "Specify network devices.",
22168 "format" : {
22169 "bridge" : {
22170 "description" : "Bridge to attach the network device to. The Proxmox VE standard bridge\nis called 'vmbr0'.\n\nIf you do not specify a bridge, we create a kvm user (NATed) network\ndevice, which provides DHCP and DNS services. The following addresses\nare used:\n\n 10.0.2.2 Gateway\n 10.0.2.3 DNS Server\n 10.0.2.4 SMB Server\n\nThe DHCP server assign addresses to the guest starting from 10.0.2.15.\n",
7af2edf9 22171 "format" : "pve-bridge-id",
4d47f125
TL
22172 "format_description" : "bridge",
22173 "optional" : 1,
22174 "type" : "string"
22175 },
22176 "e1000" : {
22177 "alias" : "macaddr",
22178 "keyAlias" : "model"
22179 },
22180 "e1000-82540em" : {
22181 "alias" : "macaddr",
22182 "keyAlias" : "model"
22183 },
22184 "e1000-82544gc" : {
22185 "alias" : "macaddr",
22186 "keyAlias" : "model"
22187 },
22188 "e1000-82545em" : {
22189 "alias" : "macaddr",
22190 "keyAlias" : "model"
22191 },
5370fa8c
TL
22192 "e1000e" : {
22193 "alias" : "macaddr",
22194 "keyAlias" : "model"
22195 },
4d47f125
TL
22196 "firewall" : {
22197 "description" : "Whether this interface should be protected by the firewall.",
22198 "optional" : 1,
22199 "type" : "boolean"
22200 },
22201 "i82551" : {
22202 "alias" : "macaddr",
22203 "keyAlias" : "model"
22204 },
22205 "i82557b" : {
22206 "alias" : "macaddr",
22207 "keyAlias" : "model"
22208 },
22209 "i82559er" : {
22210 "alias" : "macaddr",
22211 "keyAlias" : "model"
22212 },
22213 "link_down" : {
22214 "description" : "Whether this interface should be disconnected (like pulling the plug).",
22215 "optional" : 1,
22216 "type" : "boolean"
22217 },
22218 "macaddr" : {
22219 "description" : "MAC address. That address must be unique withing your network. This is automatically generated if not specified.",
95895385 22220 "format" : "mac-addr",
4d47f125
TL
22221 "format_description" : "XX:XX:XX:XX:XX:XX",
22222 "optional" : 1,
95895385
TL
22223 "type" : "string",
22224 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
4d47f125
TL
22225 },
22226 "model" : {
22227 "default_key" : 1,
22228 "description" : "Network Card Model. The 'virtio' model provides the best performance with very low CPU overhead. If your guest does not support this driver, it is usually best to use 'e1000'.",
22229 "enum" : [
4d47f125 22230 "e1000",
5370fa8c
TL
22231 "e1000-82540em",
22232 "e1000-82544gc",
22233 "e1000-82545em",
22234 "e1000e",
4d47f125
TL
22235 "i82551",
22236 "i82557b",
22237 "i82559er",
5370fa8c
TL
22238 "ne2k_isa",
22239 "ne2k_pci",
22240 "pcnet",
22241 "rtl8139",
22242 "virtio",
22243 "vmxnet3"
4d47f125
TL
22244 ],
22245 "type" : "string"
22246 },
ac70d7d1
TL
22247 "mtu" : {
22248 "description" : "Force MTU, for VirtIO only. Set to '1' to use the bridge MTU",
22249 "maximum" : 65520,
22250 "minimum" : 1,
22251 "optional" : 1,
22252 "type" : "integer"
22253 },
4d47f125
TL
22254 "ne2k_isa" : {
22255 "alias" : "macaddr",
22256 "keyAlias" : "model"
22257 },
22258 "ne2k_pci" : {
22259 "alias" : "macaddr",
22260 "keyAlias" : "model"
22261 },
22262 "pcnet" : {
22263 "alias" : "macaddr",
22264 "keyAlias" : "model"
22265 },
22266 "queues" : {
22267 "description" : "Number of packet queues to be used on the device.",
81a3384d 22268 "maximum" : 64,
4d47f125
TL
22269 "minimum" : 0,
22270 "optional" : 1,
22271 "type" : "integer"
22272 },
22273 "rate" : {
22274 "description" : "Rate limit in mbps (megabytes per second) as floating point number.",
22275 "minimum" : 0,
22276 "optional" : 1,
22277 "type" : "number"
22278 },
22279 "rtl8139" : {
22280 "alias" : "macaddr",
22281 "keyAlias" : "model"
22282 },
22283 "tag" : {
22284 "description" : "VLAN tag to apply to packets on this interface.",
22285 "maximum" : 4094,
22286 "minimum" : 1,
22287 "optional" : 1,
22288 "type" : "integer"
22289 },
22290 "trunks" : {
22291 "description" : "VLAN trunks to pass through this interface.",
22292 "format_description" : "vlanid[;vlanid...]",
22293 "optional" : 1,
22294 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
22295 "type" : "string"
22296 },
22297 "virtio" : {
22298 "alias" : "macaddr",
22299 "keyAlias" : "model"
22300 },
22301 "vmxnet3" : {
22302 "alias" : "macaddr",
22303 "keyAlias" : "model"
22304 }
44660702 22305 },
44660702 22306 "optional" : 1,
013dc89f 22307 "type" : "string",
ac70d7d1 22308 "typetext" : "[model=]<enum> [,bridge=<bridge>] [,firewall=<1|0>] [,link_down=<1|0>] [,macaddr=<XX:XX:XX:XX:XX:XX>] [,mtu=<integer>] [,queues=<integer>] [,rate=<number>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>] [,<model>=<macaddr>]"
44660702
DM
22309 },
22310 "node" : {
22311 "description" : "The cluster node name.",
22312 "format" : "pve-node",
013dc89f
DM
22313 "type" : "string",
22314 "typetext" : "<string>"
7aacca6f 22315 },
4d47f125
TL
22316 "numa" : {
22317 "default" : 0,
22318 "description" : "Enable/disable NUMA.",
56122987 22319 "optional" : 1,
4d47f125
TL
22320 "type" : "boolean",
22321 "typetext" : "<boolean>"
56122987 22322 },
4d47f125
TL
22323 "numa[n]" : {
22324 "description" : "NUMA topology.",
22325 "format" : {
22326 "cpus" : {
22327 "description" : "CPUs accessing this NUMA node.",
22328 "format_description" : "id[-id];...",
22329 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
22330 "type" : "string"
22331 },
22332 "hostnodes" : {
22333 "description" : "Host NUMA nodes to use.",
22334 "format_description" : "id[-id];...",
22335 "optional" : 1,
22336 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
22337 "type" : "string"
22338 },
22339 "memory" : {
22340 "description" : "Amount of memory this NUMA node provides.",
22341 "optional" : 1,
22342 "type" : "number"
22343 },
22344 "policy" : {
22345 "description" : "NUMA allocation policy.",
22346 "enum" : [
22347 "preferred",
22348 "bind",
22349 "interleave"
22350 ],
22351 "optional" : 1,
22352 "type" : "string"
22353 }
22354 },
7aacca6f 22355 "optional" : 1,
013dc89f 22356 "type" : "string",
4d47f125 22357 "typetext" : "cpus=<id[-id];...> [,hostnodes=<id[-id];...>] [,memory=<number>] [,policy=<preferred|bind|interleave>]"
56122987 22358 },
4d47f125 22359 "onboot" : {
44660702 22360 "default" : 0,
4d47f125 22361 "description" : "Specifies whether a VM will be started during system bootup.",
7aacca6f 22362 "optional" : 1,
013dc89f
DM
22363 "type" : "boolean",
22364 "typetext" : "<boolean>"
56122987 22365 },
4d47f125
TL
22366 "ostype" : {
22367 "description" : "Specify guest operating system.",
7aacca6f 22368 "enum" : [
4d47f125
TL
22369 "other",
22370 "wxp",
22371 "w2k",
22372 "w2k3",
22373 "w2k8",
22374 "wvista",
22375 "win7",
22376 "win8",
22377 "win10",
5370fa8c 22378 "win11",
4d47f125
TL
22379 "l24",
22380 "l26",
22381 "solaris"
7aacca6f
DM
22382 ],
22383 "optional" : 1,
013dc89f 22384 "type" : "string",
1ffb0cf5 22385 "verbose_description" : "Specify guest operating system. This is used to enable special\noptimization/features for specific operating systems:\n\n[horizontal]\nother;; unspecified OS\nwxp;; Microsoft Windows XP\nw2k;; Microsoft Windows 2000\nw2k3;; Microsoft Windows 2003\nw2k8;; Microsoft Windows 2008\nwvista;; Microsoft Windows Vista\nwin7;; Microsoft Windows 7\nwin8;; Microsoft Windows 8/2012/2012r2\nwin10;; Microsoft Windows 10/2016/2019\nwin11;; Microsoft Windows 11/2022/2025\nl24;; Linux 2.4 Kernel\nl26;; Linux 2.6 - 6.X Kernel\nsolaris;; Solaris/OpenSolaris/OpenIndiania kernel\n"
44660702 22386 },
4d47f125
TL
22387 "parallel[n]" : {
22388 "description" : "Map host parallel devices (n is 0 to 2).",
22389 "optional" : 1,
22390 "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+",
013dc89f 22391 "type" : "string",
4772952b 22392 "verbose_description" : "Map host parallel devices (n is 0 to 2).\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such\nmachines - use with special care.\n\nCAUTION: Experimental! User reported problems with this option.\n"
44660702 22393 },
4d47f125
TL
22394 "protection" : {
22395 "default" : 0,
22396 "description" : "Sets the protection flag of the VM. This will disable the remove VM and remove disk operations.",
44660702 22397 "optional" : 1,
013dc89f
DM
22398 "type" : "boolean",
22399 "typetext" : "<boolean>"
44660702 22400 },
4d47f125
TL
22401 "reboot" : {
22402 "default" : 1,
22403 "description" : "Allow reboot. If set to '0' the VM exit on reboot.",
56122987 22404 "optional" : 1,
013dc89f
DM
22405 "type" : "boolean",
22406 "typetext" : "<boolean>"
56122987 22407 },
4d47f125
TL
22408 "revert" : {
22409 "description" : "Revert a pending change.",
22410 "format" : "pve-configid-list",
22411 "optional" : 1,
013dc89f
DM
22412 "type" : "string",
22413 "typetext" : "<string>"
56122987 22414 },
c5aa7e14
TL
22415 "rng0" : {
22416 "description" : "Configure a VirtIO-based Random Number Generator.",
22417 "format" : {
22418 "max_bytes" : {
22419 "default" : 1024,
5370fa8c 22420 "description" : "Maximum bytes of entropy allowed to get injected into the guest every 'period' milliseconds. Prefer a lower value when using '/dev/random' as source. Use `0` to disable limiting (potentially dangerous!).",
c5aa7e14
TL
22421 "optional" : 1,
22422 "type" : "integer"
22423 },
22424 "period" : {
22425 "default" : 1000,
22426 "description" : "Every 'period' milliseconds the entropy-injection quota is reset, allowing the guest to retrieve another 'max_bytes' of entropy.",
22427 "optional" : 1,
22428 "type" : "integer"
22429 },
22430 "source" : {
22431 "default_key" : 1,
5370fa8c 22432 "description" : "The file on the host to gather entropy from. In most cases '/dev/urandom' should be preferred over '/dev/random' to avoid entropy-starvation issues on the host. Using urandom does *not* decrease security in any meaningful way, as it's still seeded from real entropy, and the bytes provided will most likely be mixed with real entropy on the guest as well. '/dev/hwrng' can be used to pass through a hardware RNG from the host.",
c5aa7e14
TL
22433 "enum" : [
22434 "/dev/urandom",
22435 "/dev/random",
22436 "/dev/hwrng"
22437 ],
22438 "type" : "string"
22439 }
22440 },
22441 "optional" : 1,
22442 "type" : "string",
22443 "typetext" : "[source=]</dev/urandom|/dev/random|/dev/hwrng> [,max_bytes=<integer>] [,period=<integer>]"
22444 },
4d47f125 22445 "sata[n]" : {
7af2edf9 22446 "description" : "Use volume as SATA hard disk or CD-ROM (n is 0 to 5). Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
4d47f125
TL
22447 "format" : {
22448 "aio" : {
22449 "description" : "AIO type to use.",
22450 "enum" : [
22451 "native",
8f4d9c87
TL
22452 "threads",
22453 "io_uring"
4d47f125
TL
22454 ],
22455 "optional" : 1,
22456 "type" : "string"
22457 },
22458 "backup" : {
22459 "description" : "Whether the drive should be included when making backups.",
22460 "optional" : 1,
22461 "type" : "boolean"
22462 },
22463 "bps" : {
22464 "description" : "Maximum r/w speed in bytes per second.",
22465 "format_description" : "bps",
22466 "optional" : 1,
22467 "type" : "integer"
22468 },
22469 "bps_max_length" : {
22470 "description" : "Maximum length of I/O bursts in seconds.",
22471 "format_description" : "seconds",
22472 "minimum" : 1,
22473 "optional" : 1,
22474 "type" : "integer"
22475 },
22476 "bps_rd" : {
22477 "description" : "Maximum read speed in bytes per second.",
22478 "format_description" : "bps",
22479 "optional" : 1,
22480 "type" : "integer"
22481 },
22482 "bps_rd_length" : {
22483 "alias" : "bps_rd_max_length"
22484 },
22485 "bps_rd_max_length" : {
22486 "description" : "Maximum length of read I/O bursts in seconds.",
22487 "format_description" : "seconds",
22488 "minimum" : 1,
22489 "optional" : 1,
22490 "type" : "integer"
22491 },
22492 "bps_wr" : {
22493 "description" : "Maximum write speed in bytes per second.",
22494 "format_description" : "bps",
22495 "optional" : 1,
22496 "type" : "integer"
22497 },
22498 "bps_wr_length" : {
22499 "alias" : "bps_wr_max_length"
22500 },
22501 "bps_wr_max_length" : {
22502 "description" : "Maximum length of write I/O bursts in seconds.",
22503 "format_description" : "seconds",
22504 "minimum" : 1,
22505 "optional" : 1,
22506 "type" : "integer"
22507 },
22508 "cache" : {
22509 "description" : "The drive's cache mode",
22510 "enum" : [
22511 "none",
22512 "writethrough",
22513 "writeback",
22514 "unsafe",
22515 "directsync"
22516 ],
22517 "optional" : 1,
22518 "type" : "string"
22519 },
22520 "cyls" : {
22521 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
22522 "optional" : 1,
22523 "type" : "integer"
22524 },
22525 "detect_zeroes" : {
22526 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
22527 "optional" : 1,
22528 "type" : "boolean"
22529 },
22530 "discard" : {
22531 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
22532 "enum" : [
22533 "ignore",
22534 "on"
22535 ],
22536 "optional" : 1,
22537 "type" : "string"
22538 },
22539 "file" : {
22540 "default_key" : 1,
22541 "description" : "The drive's backing volume.",
22542 "format" : "pve-volume-id-or-qm-path",
22543 "format_description" : "volume",
22544 "type" : "string"
22545 },
22546 "format" : {
22547 "description" : "The drive's backing file's data format.",
22548 "enum" : [
22549 "raw",
22550 "cow",
22551 "qcow",
22552 "qed",
22553 "qcow2",
22554 "vmdk",
22555 "cloop"
22556 ],
22557 "optional" : 1,
22558 "type" : "string"
22559 },
22560 "heads" : {
22561 "description" : "Force the drive's physical geometry to have a specific head count.",
22562 "optional" : 1,
22563 "type" : "integer"
22564 },
7af2edf9
TL
22565 "import-from" : {
22566 "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
22567 "format" : "pve-volume-id-or-absolute-path",
22568 "format_description" : "source volume",
22569 "optional" : 1,
22570 "type" : "string"
22571 },
4d47f125
TL
22572 "iops" : {
22573 "description" : "Maximum r/w I/O in operations per second.",
22574 "format_description" : "iops",
22575 "optional" : 1,
22576 "type" : "integer"
22577 },
22578 "iops_max" : {
22579 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
22580 "format_description" : "iops",
22581 "optional" : 1,
22582 "type" : "integer"
22583 },
22584 "iops_max_length" : {
22585 "description" : "Maximum length of I/O bursts in seconds.",
22586 "format_description" : "seconds",
22587 "minimum" : 1,
22588 "optional" : 1,
22589 "type" : "integer"
22590 },
22591 "iops_rd" : {
22592 "description" : "Maximum read I/O in operations per second.",
22593 "format_description" : "iops",
22594 "optional" : 1,
22595 "type" : "integer"
22596 },
22597 "iops_rd_length" : {
22598 "alias" : "iops_rd_max_length"
22599 },
22600 "iops_rd_max" : {
22601 "description" : "Maximum unthrottled read I/O pool in operations per second.",
22602 "format_description" : "iops",
22603 "optional" : 1,
22604 "type" : "integer"
22605 },
22606 "iops_rd_max_length" : {
22607 "description" : "Maximum length of read I/O bursts in seconds.",
22608 "format_description" : "seconds",
22609 "minimum" : 1,
22610 "optional" : 1,
22611 "type" : "integer"
22612 },
22613 "iops_wr" : {
22614 "description" : "Maximum write I/O in operations per second.",
22615 "format_description" : "iops",
22616 "optional" : 1,
22617 "type" : "integer"
22618 },
22619 "iops_wr_length" : {
22620 "alias" : "iops_wr_max_length"
22621 },
22622 "iops_wr_max" : {
22623 "description" : "Maximum unthrottled write I/O pool in operations per second.",
22624 "format_description" : "iops",
22625 "optional" : 1,
22626 "type" : "integer"
22627 },
22628 "iops_wr_max_length" : {
22629 "description" : "Maximum length of write I/O bursts in seconds.",
22630 "format_description" : "seconds",
22631 "minimum" : 1,
22632 "optional" : 1,
22633 "type" : "integer"
22634 },
22635 "mbps" : {
22636 "description" : "Maximum r/w speed in megabytes per second.",
22637 "format_description" : "mbps",
22638 "optional" : 1,
22639 "type" : "number"
22640 },
22641 "mbps_max" : {
22642 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
22643 "format_description" : "mbps",
22644 "optional" : 1,
22645 "type" : "number"
22646 },
22647 "mbps_rd" : {
22648 "description" : "Maximum read speed in megabytes per second.",
22649 "format_description" : "mbps",
22650 "optional" : 1,
22651 "type" : "number"
22652 },
22653 "mbps_rd_max" : {
22654 "description" : "Maximum unthrottled read pool in megabytes per second.",
22655 "format_description" : "mbps",
22656 "optional" : 1,
22657 "type" : "number"
22658 },
22659 "mbps_wr" : {
22660 "description" : "Maximum write speed in megabytes per second.",
22661 "format_description" : "mbps",
22662 "optional" : 1,
22663 "type" : "number"
22664 },
22665 "mbps_wr_max" : {
22666 "description" : "Maximum unthrottled write pool in megabytes per second.",
22667 "format_description" : "mbps",
22668 "optional" : 1,
22669 "type" : "number"
22670 },
22671 "media" : {
22672 "default" : "disk",
22673 "description" : "The drive's media type.",
22674 "enum" : [
22675 "cdrom",
22676 "disk"
22677 ],
22678 "optional" : 1,
22679 "type" : "string"
22680 },
22681 "replicate" : {
22682 "default" : 1,
22683 "description" : "Whether the drive should considered for replication jobs.",
22684 "optional" : 1,
22685 "type" : "boolean"
22686 },
22687 "rerror" : {
22688 "description" : "Read error action.",
22689 "enum" : [
22690 "ignore",
22691 "report",
22692 "stop"
22693 ],
22694 "optional" : 1,
22695 "type" : "string"
22696 },
22697 "secs" : {
22698 "description" : "Force the drive's physical geometry to have a specific sector count.",
22699 "optional" : 1,
22700 "type" : "integer"
22701 },
22702 "serial" : {
22703 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
22704 "format" : "urlencoded",
22705 "format_description" : "serial",
22706 "maxLength" : 60,
22707 "optional" : 1,
22708 "type" : "string"
22709 },
22710 "shared" : {
22711 "default" : 0,
22712 "description" : "Mark this locally-managed volume as available on all nodes",
22713 "optional" : 1,
22714 "type" : "boolean",
22715 "verbose_description" : "Mark this locally-managed volume as available on all nodes.\n\nWARNING: This option does not share the volume automatically, it assumes it is shared already!"
22716 },
22717 "size" : {
22718 "description" : "Disk size. This is purely informational and has no effect.",
22719 "format" : "disk-size",
22720 "format_description" : "DiskSize",
22721 "optional" : 1,
22722 "type" : "string"
22723 },
22724 "snapshot" : {
22725 "description" : "Controls qemu's snapshot mode feature. If activated, changes made to the disk are temporary and will be discarded when the VM is shutdown.",
22726 "optional" : 1,
22727 "type" : "boolean"
22728 },
25203dc1
NC
22729 "ssd" : {
22730 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
22731 "optional" : 1,
22732 "type" : "boolean"
22733 },
4d47f125
TL
22734 "trans" : {
22735 "description" : "Force disk geometry bios translation mode.",
22736 "enum" : [
22737 "none",
22738 "lba",
22739 "auto"
22740 ],
22741 "optional" : 1,
22742 "type" : "string"
22743 },
22744 "volume" : {
22745 "alias" : "file"
22746 },
22747 "werror" : {
22748 "description" : "Write error action.",
22749 "enum" : [
22750 "enospc",
22751 "ignore",
22752 "report",
22753 "stop"
22754 ],
22755 "optional" : 1,
22756 "type" : "string"
95895385
TL
22757 },
22758 "wwn" : {
22759 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
22760 "format_description" : "wwn",
22761 "optional" : 1,
22762 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
22763 "type" : "string"
4d47f125
TL
22764 }
22765 },
22766 "optional" : 1,
22767 "type" : "string",
7af2edf9 22768 "typetext" : "[file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<source volume>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>]"
4d47f125
TL
22769 },
22770 "scsi[n]" : {
7af2edf9 22771 "description" : "Use volume as SCSI hard disk or CD-ROM (n is 0 to 30). Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
4d47f125
TL
22772 "format" : {
22773 "aio" : {
22774 "description" : "AIO type to use.",
22775 "enum" : [
22776 "native",
8f4d9c87
TL
22777 "threads",
22778 "io_uring"
4d47f125
TL
22779 ],
22780 "optional" : 1,
22781 "type" : "string"
22782 },
22783 "backup" : {
22784 "description" : "Whether the drive should be included when making backups.",
22785 "optional" : 1,
22786 "type" : "boolean"
22787 },
22788 "bps" : {
22789 "description" : "Maximum r/w speed in bytes per second.",
22790 "format_description" : "bps",
22791 "optional" : 1,
22792 "type" : "integer"
22793 },
22794 "bps_max_length" : {
22795 "description" : "Maximum length of I/O bursts in seconds.",
22796 "format_description" : "seconds",
22797 "minimum" : 1,
22798 "optional" : 1,
22799 "type" : "integer"
22800 },
22801 "bps_rd" : {
22802 "description" : "Maximum read speed in bytes per second.",
22803 "format_description" : "bps",
22804 "optional" : 1,
22805 "type" : "integer"
22806 },
22807 "bps_rd_length" : {
22808 "alias" : "bps_rd_max_length"
22809 },
22810 "bps_rd_max_length" : {
22811 "description" : "Maximum length of read I/O bursts in seconds.",
22812 "format_description" : "seconds",
22813 "minimum" : 1,
22814 "optional" : 1,
22815 "type" : "integer"
22816 },
22817 "bps_wr" : {
22818 "description" : "Maximum write speed in bytes per second.",
22819 "format_description" : "bps",
22820 "optional" : 1,
22821 "type" : "integer"
22822 },
22823 "bps_wr_length" : {
22824 "alias" : "bps_wr_max_length"
22825 },
22826 "bps_wr_max_length" : {
22827 "description" : "Maximum length of write I/O bursts in seconds.",
22828 "format_description" : "seconds",
22829 "minimum" : 1,
22830 "optional" : 1,
22831 "type" : "integer"
22832 },
22833 "cache" : {
22834 "description" : "The drive's cache mode",
22835 "enum" : [
22836 "none",
22837 "writethrough",
22838 "writeback",
22839 "unsafe",
22840 "directsync"
22841 ],
22842 "optional" : 1,
22843 "type" : "string"
22844 },
22845 "cyls" : {
22846 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
22847 "optional" : 1,
22848 "type" : "integer"
22849 },
22850 "detect_zeroes" : {
22851 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
22852 "optional" : 1,
22853 "type" : "boolean"
22854 },
22855 "discard" : {
22856 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
22857 "enum" : [
22858 "ignore",
22859 "on"
22860 ],
22861 "optional" : 1,
22862 "type" : "string"
22863 },
22864 "file" : {
22865 "default_key" : 1,
22866 "description" : "The drive's backing volume.",
22867 "format" : "pve-volume-id-or-qm-path",
22868 "format_description" : "volume",
22869 "type" : "string"
22870 },
22871 "format" : {
22872 "description" : "The drive's backing file's data format.",
22873 "enum" : [
22874 "raw",
22875 "cow",
22876 "qcow",
22877 "qed",
22878 "qcow2",
22879 "vmdk",
22880 "cloop"
22881 ],
22882 "optional" : 1,
22883 "type" : "string"
22884 },
22885 "heads" : {
22886 "description" : "Force the drive's physical geometry to have a specific head count.",
22887 "optional" : 1,
22888 "type" : "integer"
22889 },
7af2edf9
TL
22890 "import-from" : {
22891 "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
22892 "format" : "pve-volume-id-or-absolute-path",
22893 "format_description" : "source volume",
22894 "optional" : 1,
22895 "type" : "string"
22896 },
4d47f125
TL
22897 "iops" : {
22898 "description" : "Maximum r/w I/O in operations per second.",
22899 "format_description" : "iops",
22900 "optional" : 1,
22901 "type" : "integer"
22902 },
22903 "iops_max" : {
22904 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
22905 "format_description" : "iops",
22906 "optional" : 1,
22907 "type" : "integer"
22908 },
22909 "iops_max_length" : {
22910 "description" : "Maximum length of I/O bursts in seconds.",
22911 "format_description" : "seconds",
22912 "minimum" : 1,
22913 "optional" : 1,
22914 "type" : "integer"
22915 },
22916 "iops_rd" : {
22917 "description" : "Maximum read I/O in operations per second.",
22918 "format_description" : "iops",
22919 "optional" : 1,
22920 "type" : "integer"
22921 },
22922 "iops_rd_length" : {
22923 "alias" : "iops_rd_max_length"
22924 },
22925 "iops_rd_max" : {
22926 "description" : "Maximum unthrottled read I/O pool in operations per second.",
22927 "format_description" : "iops",
22928 "optional" : 1,
22929 "type" : "integer"
22930 },
22931 "iops_rd_max_length" : {
22932 "description" : "Maximum length of read I/O bursts in seconds.",
22933 "format_description" : "seconds",
22934 "minimum" : 1,
22935 "optional" : 1,
22936 "type" : "integer"
22937 },
22938 "iops_wr" : {
22939 "description" : "Maximum write I/O in operations per second.",
22940 "format_description" : "iops",
22941 "optional" : 1,
22942 "type" : "integer"
22943 },
22944 "iops_wr_length" : {
22945 "alias" : "iops_wr_max_length"
22946 },
22947 "iops_wr_max" : {
22948 "description" : "Maximum unthrottled write I/O pool in operations per second.",
22949 "format_description" : "iops",
22950 "optional" : 1,
22951 "type" : "integer"
22952 },
22953 "iops_wr_max_length" : {
22954 "description" : "Maximum length of write I/O bursts in seconds.",
22955 "format_description" : "seconds",
22956 "minimum" : 1,
22957 "optional" : 1,
22958 "type" : "integer"
22959 },
22960 "iothread" : {
22961 "description" : "Whether to use iothreads for this drive",
22962 "optional" : 1,
22963 "type" : "boolean"
22964 },
22965 "mbps" : {
22966 "description" : "Maximum r/w speed in megabytes per second.",
22967 "format_description" : "mbps",
22968 "optional" : 1,
22969 "type" : "number"
22970 },
22971 "mbps_max" : {
22972 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
22973 "format_description" : "mbps",
22974 "optional" : 1,
22975 "type" : "number"
22976 },
22977 "mbps_rd" : {
22978 "description" : "Maximum read speed in megabytes per second.",
22979 "format_description" : "mbps",
22980 "optional" : 1,
22981 "type" : "number"
22982 },
22983 "mbps_rd_max" : {
22984 "description" : "Maximum unthrottled read pool in megabytes per second.",
22985 "format_description" : "mbps",
22986 "optional" : 1,
22987 "type" : "number"
22988 },
22989 "mbps_wr" : {
22990 "description" : "Maximum write speed in megabytes per second.",
22991 "format_description" : "mbps",
22992 "optional" : 1,
22993 "type" : "number"
22994 },
22995 "mbps_wr_max" : {
22996 "description" : "Maximum unthrottled write pool in megabytes per second.",
22997 "format_description" : "mbps",
22998 "optional" : 1,
22999 "type" : "number"
23000 },
23001 "media" : {
23002 "default" : "disk",
23003 "description" : "The drive's media type.",
23004 "enum" : [
23005 "cdrom",
23006 "disk"
23007 ],
23008 "optional" : 1,
23009 "type" : "string"
23010 },
c6d5bae8
TL
23011 "product" : {
23012 "description" : "The drive's product name, up to 16 bytes long.",
23013 "format_description" : "product",
23014 "optional" : 1,
23015 "pattern" : "[A-Za-z0-9\\-_\\s]{,16}",
23016 "type" : "string"
23017 },
4d47f125
TL
23018 "queues" : {
23019 "description" : "Number of queues.",
23020 "minimum" : 2,
23021 "optional" : 1,
23022 "type" : "integer"
23023 },
23024 "replicate" : {
23025 "default" : 1,
23026 "description" : "Whether the drive should considered for replication jobs.",
23027 "optional" : 1,
23028 "type" : "boolean"
23029 },
23030 "rerror" : {
23031 "description" : "Read error action.",
23032 "enum" : [
23033 "ignore",
23034 "report",
23035 "stop"
23036 ],
23037 "optional" : 1,
23038 "type" : "string"
23039 },
5370fa8c
TL
23040 "ro" : {
23041 "description" : "Whether the drive is read-only.",
23042 "optional" : 1,
23043 "type" : "boolean"
23044 },
4d47f125
TL
23045 "scsiblock" : {
23046 "default" : 0,
23047 "description" : "whether to use scsi-block for full passthrough of host block device\n\nWARNING: can lead to I/O errors in combination with low memory or high memory fragmentation on host",
23048 "optional" : 1,
23049 "type" : "boolean"
23050 },
23051 "secs" : {
23052 "description" : "Force the drive's physical geometry to have a specific sector count.",
23053 "optional" : 1,
23054 "type" : "integer"
23055 },
23056 "serial" : {
23057 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
23058 "format" : "urlencoded",
23059 "format_description" : "serial",
23060 "maxLength" : 60,
23061 "optional" : 1,
23062 "type" : "string"
23063 },
23064 "shared" : {
23065 "default" : 0,
23066 "description" : "Mark this locally-managed volume as available on all nodes",
23067 "optional" : 1,
23068 "type" : "boolean",
23069 "verbose_description" : "Mark this locally-managed volume as available on all nodes.\n\nWARNING: This option does not share the volume automatically, it assumes it is shared already!"
23070 },
23071 "size" : {
23072 "description" : "Disk size. This is purely informational and has no effect.",
23073 "format" : "disk-size",
23074 "format_description" : "DiskSize",
23075 "optional" : 1,
23076 "type" : "string"
23077 },
23078 "snapshot" : {
23079 "description" : "Controls qemu's snapshot mode feature. If activated, changes made to the disk are temporary and will be discarded when the VM is shutdown.",
23080 "optional" : 1,
23081 "type" : "boolean"
23082 },
25203dc1
NC
23083 "ssd" : {
23084 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
23085 "optional" : 1,
23086 "type" : "boolean"
23087 },
4d47f125
TL
23088 "trans" : {
23089 "description" : "Force disk geometry bios translation mode.",
23090 "enum" : [
23091 "none",
23092 "lba",
23093 "auto"
23094 ],
23095 "optional" : 1,
23096 "type" : "string"
23097 },
c6d5bae8
TL
23098 "vendor" : {
23099 "description" : "The drive's vendor name, up to 8 bytes long.",
23100 "format_description" : "vendor",
23101 "optional" : 1,
23102 "pattern" : "[A-Za-z0-9\\-_\\s]{,8}",
23103 "type" : "string"
23104 },
4d47f125
TL
23105 "volume" : {
23106 "alias" : "file"
23107 },
23108 "werror" : {
23109 "description" : "Write error action.",
23110 "enum" : [
23111 "enospc",
23112 "ignore",
23113 "report",
23114 "stop"
23115 ],
23116 "optional" : 1,
23117 "type" : "string"
95895385
TL
23118 },
23119 "wwn" : {
23120 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
23121 "format_description" : "wwn",
23122 "optional" : 1,
23123 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
23124 "type" : "string"
4d47f125
TL
23125 }
23126 },
23127 "optional" : 1,
23128 "type" : "string",
c6d5bae8 23129 "typetext" : "[file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<source volume>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,product=<product>] [,queues=<integer>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,ro=<1|0>] [,scsiblock=<1|0>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,vendor=<vendor>] [,werror=<enum>] [,wwn=<wwn>]"
4d47f125
TL
23130 },
23131 "scsihw" : {
23132 "default" : "lsi",
23133 "description" : "SCSI controller model",
23134 "enum" : [
23135 "lsi",
23136 "lsi53c810",
23137 "virtio-scsi-pci",
23138 "virtio-scsi-single",
23139 "megasas",
23140 "pvscsi"
23141 ],
23142 "optional" : 1,
23143 "type" : "string"
23144 },
23145 "searchdomain" : {
de786b48 23146 "description" : "cloud-init: Sets DNS search domains for a container. Create will automatically use the setting from the host if neither searchdomain nor nameserver are set.",
4d47f125
TL
23147 "optional" : 1,
23148 "type" : "string",
23149 "typetext" : "<string>"
23150 },
23151 "serial[n]" : {
23152 "description" : "Create a serial device inside the VM (n is 0 to 3)",
23153 "optional" : 1,
23154 "pattern" : "(/dev/.+|socket)",
23155 "type" : "string",
4772952b 23156 "verbose_description" : "Create a serial device inside the VM (n is 0 to 3), and pass through a\nhost serial device (i.e. /dev/ttyS0), or create a unix socket on the\nhost side (use 'qm terminal' to open a terminal connection).\n\nNOTE: If you pass through a host serial device, it is no longer possible to migrate such machines -\nuse with special care.\n\nCAUTION: Experimental! User reported problems with this option.\n"
4d47f125
TL
23157 },
23158 "shares" : {
23159 "default" : 1000,
23160 "description" : "Amount of memory shares for auto-ballooning. The larger the number is, the more memory this VM gets. Number is relative to weights of all other running VMs. Using zero disables auto-ballooning. Auto-ballooning is done by pvestatd.",
23161 "maximum" : 50000,
23162 "minimum" : 0,
23163 "optional" : 1,
23164 "type" : "integer",
23165 "typetext" : "<integer> (0 - 50000)"
23166 },
23167 "skiplock" : {
23168 "description" : "Ignore locks - only root is allowed to use this option.",
23169 "optional" : 1,
23170 "type" : "boolean",
23171 "typetext" : "<boolean>"
23172 },
23173 "smbios1" : {
23174 "description" : "Specify SMBIOS type 1 fields.",
23175 "format" : "pve-qm-smbios1",
1e3f8156 23176 "maxLength" : 512,
4d47f125
TL
23177 "optional" : 1,
23178 "type" : "string",
1e3f8156 23179 "typetext" : "[base64=<1|0>] [,family=<Base64 encoded string>] [,manufacturer=<Base64 encoded string>] [,product=<Base64 encoded string>] [,serial=<Base64 encoded string>] [,sku=<Base64 encoded string>] [,uuid=<UUID>] [,version=<Base64 encoded string>]"
4d47f125
TL
23180 },
23181 "smp" : {
23182 "default" : 1,
23183 "description" : "The number of CPUs. Please use option -sockets instead.",
23184 "minimum" : 1,
23185 "optional" : 1,
23186 "type" : "integer",
23187 "typetext" : "<integer> (1 - N)"
23188 },
23189 "sockets" : {
23190 "default" : 1,
23191 "description" : "The number of CPU sockets.",
23192 "minimum" : 1,
23193 "optional" : 1,
23194 "type" : "integer",
23195 "typetext" : "<integer> (1 - N)"
23196 },
1c532546
TL
23197 "spice_enhancements" : {
23198 "description" : "Configure additional enhancements for SPICE.",
23199 "format" : {
23200 "foldersharing" : {
23201 "default" : "0",
23202 "description" : "Enable folder sharing via SPICE. Needs Spice-WebDAV daemon installed in the VM.",
23203 "optional" : 1,
23204 "type" : "boolean"
23205 },
23206 "videostreaming" : {
23207 "default" : "off",
23208 "description" : "Enable video streaming. Uses compression for detected video streams.",
23209 "enum" : [
23210 "off",
23211 "all",
23212 "filter"
23213 ],
23214 "optional" : 1,
23215 "type" : "string"
23216 }
23217 },
23218 "optional" : 1,
23219 "type" : "string",
23220 "typetext" : "[foldersharing=<1|0>] [,videostreaming=<off|all|filter>]"
23221 },
4d47f125
TL
23222 "sshkeys" : {
23223 "description" : "cloud-init: Setup public SSH keys (one key per line, OpenSSH format).",
23224 "format" : "urlencoded",
23225 "optional" : 1,
23226 "type" : "string",
23227 "typetext" : "<string>"
23228 },
23229 "startdate" : {
23230 "default" : "now",
4772952b 23231 "description" : "Set the initial date of the real time clock. Valid format for date are:'now' or '2006-06-17T16:01:21' or '2006-06-17'.",
4d47f125
TL
23232 "optional" : 1,
23233 "pattern" : "(now|\\d{4}-\\d{1,2}-\\d{1,2}(T\\d{1,2}:\\d{1,2}:\\d{1,2})?)",
23234 "type" : "string",
23235 "typetext" : "(now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)"
23236 },
23237 "startup" : {
23238 "description" : "Startup and shutdown behavior. Order is a non-negative number defining the general startup order. Shutdown in done with reverse ordering. Additionally you can set the 'up' or 'down' delay in seconds, which specifies a delay to wait before the next VM is started or stopped.",
23239 "format" : "pve-startup-order",
23240 "optional" : 1,
23241 "type" : "string",
23242 "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
23243 },
23244 "tablet" : {
23245 "default" : 1,
23246 "description" : "Enable/disable the USB tablet device.",
23247 "optional" : 1,
23248 "type" : "boolean",
23249 "typetext" : "<boolean>",
4772952b 23250 "verbose_description" : "Enable/disable the USB tablet device. This device is usually needed to allow absolute mouse positioning with VNC. Else the mouse runs out of sync with normal VNC clients. If you're running lots of console-only guests on one host, you may consider disabling this to save some context switches. This is turned off by default if you use spice (`qm set <vmid> --vga qxl`)."
4d47f125 23251 },
5c1699e5
TL
23252 "tags" : {
23253 "description" : "Tags of the VM. This is only meta information.",
23254 "format" : "pve-tag-list",
23255 "optional" : 1,
23256 "type" : "string",
23257 "typetext" : "<string>"
23258 },
4d47f125
TL
23259 "tdf" : {
23260 "default" : 0,
23261 "description" : "Enable/disable time drift fix.",
23262 "optional" : 1,
23263 "type" : "boolean",
23264 "typetext" : "<boolean>"
23265 },
23266 "template" : {
23267 "default" : 0,
23268 "description" : "Enable/disable Template.",
23269 "optional" : 1,
23270 "type" : "boolean",
23271 "typetext" : "<boolean>"
23272 },
5370fa8c 23273 "tpmstate0" : {
7af2edf9 23274 "description" : "Configure a Disk for storing TPM state. The format is fixed to 'raw'. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Note that SIZE_IN_GiB is ignored here and 4 MiB will be used instead. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
5370fa8c
TL
23275 "format" : {
23276 "file" : {
23277 "default_key" : 1,
23278 "description" : "The drive's backing volume.",
23279 "format" : "pve-volume-id-or-qm-path",
23280 "format_description" : "volume",
23281 "type" : "string"
23282 },
7af2edf9
TL
23283 "import-from" : {
23284 "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
23285 "format" : "pve-volume-id-or-absolute-path",
23286 "format_description" : "source volume",
23287 "optional" : 1,
23288 "type" : "string"
23289 },
5370fa8c
TL
23290 "size" : {
23291 "description" : "Disk size. This is purely informational and has no effect.",
23292 "format" : "disk-size",
23293 "format_description" : "DiskSize",
23294 "optional" : 1,
23295 "type" : "string"
23296 },
23297 "version" : {
23298 "default" : "v2.0",
23299 "description" : "The TPM interface version. v2.0 is newer and should be preferred. Note that this cannot be changed later on.",
23300 "enum" : [
23301 "v1.2",
23302 "v2.0"
23303 ],
23304 "optional" : 1,
23305 "type" : "string"
23306 },
23307 "volume" : {
23308 "alias" : "file"
23309 }
23310 },
23311 "optional" : 1,
23312 "type" : "string",
7af2edf9 23313 "typetext" : "[file=]<volume> [,import-from=<source volume>] [,size=<DiskSize>] [,version=<v1.2|v2.0>]"
5370fa8c 23314 },
4d47f125
TL
23315 "unused[n]" : {
23316 "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
c5aa7e14
TL
23317 "format" : {
23318 "file" : {
23319 "default_key" : 1,
23320 "description" : "The drive's backing volume.",
23321 "format" : "pve-volume-id",
23322 "format_description" : "volume",
23323 "type" : "string"
23324 },
23325 "volume" : {
23326 "alias" : "file"
23327 }
23328 },
4d47f125
TL
23329 "optional" : 1,
23330 "type" : "string",
c5aa7e14 23331 "typetext" : "[file=]<volume>"
4d47f125
TL
23332 },
23333 "usb[n]" : {
4e7f60c2 23334 "description" : "Configure an USB device (n is 0 to 4, for machine version >= 7.1 and ostype l26 or windows > 7, n can be up to 14).",
4d47f125
TL
23335 "format" : {
23336 "host" : {
23337 "default_key" : 1,
499c9b7f 23338 "description" : "The Host USB device or port or the value 'spice'. HOSTUSBDEVICE syntax is:\n\n 'bus-port(.port)*' (decimal numbers) or\n 'vendor_id:product_id' (hexadeciaml numbers) or\n 'spice'\n\nYou can use the 'lsusb -t' command to list existing usb devices.\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such\nmachines - use with special care.\n\nThe value 'spice' can be used to add a usb redirection devices for spice.\n\nEither this or the 'mapping' key must be set.\n",
4d47f125 23339 "format_description" : "HOSTUSBDEVICE|spice",
499c9b7f
TL
23340 "optional" : 1,
23341 "pattern" : "(?^:(?:(?:(?^:(0x)?([0-9A-Fa-f]{4}):(0x)?([0-9A-Fa-f]{4})))|(?:(?^:(\\d+)\\-(\\d+(\\.\\d+)*)))|[Ss][Pp][Ii][Cc][Ee]))",
23342 "type" : "string"
23343 },
23344 "mapping" : {
23345 "description" : "The ID of a cluster wide mapping. Either this or the default-key 'host' must be set.",
23346 "format" : "pve-configid",
23347 "format_description" : "mapping-id",
23348 "optional" : 1,
4d47f125
TL
23349 "type" : "string"
23350 },
23351 "usb3" : {
23352 "default" : 0,
4e7f60c2 23353 "description" : "Specifies whether if given host option is a USB3 device or port. For modern guests (machine version >= 7.1 and ostype l26 and windows > 7), this flag is irrelevant (all devices are plugged into a xhci controller).",
4d47f125
TL
23354 "optional" : 1,
23355 "type" : "boolean"
23356 }
23357 },
23358 "optional" : 1,
23359 "type" : "string",
499c9b7f 23360 "typetext" : "[[host=]<HOSTUSBDEVICE|spice>] [,mapping=<mapping-id>] [,usb3=<1|0>]"
4d47f125
TL
23361 },
23362 "vcpus" : {
23363 "default" : 0,
23364 "description" : "Number of hotplugged vcpus.",
23365 "minimum" : 1,
23366 "optional" : 1,
23367 "type" : "integer",
23368 "typetext" : "<integer> (1 - N)"
23369 },
23370 "vga" : {
e2d681b3
TL
23371 "description" : "Configure the VGA hardware.",
23372 "format" : {
fa22697b 23373 "clipboard" : {
c6d5bae8 23374 "description" : "Enable a specific clipboard. If not set, depending on the display type the SPICE one will be added. Migration with VNC clipboard is not yet supported!",
fa22697b
TL
23375 "enum" : [
23376 "vnc"
23377 ],
23378 "optional" : 1,
23379 "type" : "string"
23380 },
e2d681b3
TL
23381 "memory" : {
23382 "description" : "Sets the VGA memory (in MiB). Has no effect with serial display.",
23383 "maximum" : 512,
23384 "minimum" : 4,
23385 "optional" : 1,
23386 "type" : "integer"
23387 },
23388 "type" : {
23389 "default" : "std",
23390 "default_key" : 1,
23391 "description" : "Select the VGA type.",
23392 "enum" : [
23393 "cirrus",
23394 "qxl",
23395 "qxl2",
23396 "qxl3",
23397 "qxl4",
5f26e15b 23398 "none",
e2d681b3
TL
23399 "serial0",
23400 "serial1",
23401 "serial2",
23402 "serial3",
23403 "std",
23404 "virtio",
7af2edf9 23405 "virtio-gl",
e2d681b3
TL
23406 "vmware"
23407 ],
23408 "optional" : 1,
23409 "type" : "string"
23410 }
23411 },
4d47f125
TL
23412 "optional" : 1,
23413 "type" : "string",
fa22697b 23414 "typetext" : "[[type=]<enum>] [,clipboard=<vnc>] [,memory=<integer>]",
e2d681b3 23415 "verbose_description" : "Configure the VGA Hardware. If you want to use high resolution modes (>= 1280x1024x16) you may need to increase the vga memory option. Since QEMU 2.9 the default VGA display type is 'std' for all OS types besides some Windows versions (XP and older) which use 'cirrus'. The 'qxl' option enables the SPICE display server. For win* OS you can select how many independent displays you want, Linux guests can add displays them self.\nYou can also run without any graphic card, using a serial device as terminal."
4d47f125
TL
23416 },
23417 "virtio[n]" : {
7af2edf9 23418 "description" : "Use volume as VIRTIO hard disk (n is 0 to 15). Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
4d47f125
TL
23419 "format" : {
23420 "aio" : {
23421 "description" : "AIO type to use.",
23422 "enum" : [
23423 "native",
8f4d9c87
TL
23424 "threads",
23425 "io_uring"
4d47f125
TL
23426 ],
23427 "optional" : 1,
23428 "type" : "string"
23429 },
23430 "backup" : {
23431 "description" : "Whether the drive should be included when making backups.",
23432 "optional" : 1,
23433 "type" : "boolean"
23434 },
23435 "bps" : {
23436 "description" : "Maximum r/w speed in bytes per second.",
23437 "format_description" : "bps",
23438 "optional" : 1,
23439 "type" : "integer"
23440 },
23441 "bps_max_length" : {
23442 "description" : "Maximum length of I/O bursts in seconds.",
23443 "format_description" : "seconds",
23444 "minimum" : 1,
23445 "optional" : 1,
23446 "type" : "integer"
23447 },
23448 "bps_rd" : {
23449 "description" : "Maximum read speed in bytes per second.",
23450 "format_description" : "bps",
23451 "optional" : 1,
23452 "type" : "integer"
23453 },
23454 "bps_rd_length" : {
23455 "alias" : "bps_rd_max_length"
23456 },
23457 "bps_rd_max_length" : {
23458 "description" : "Maximum length of read I/O bursts in seconds.",
23459 "format_description" : "seconds",
23460 "minimum" : 1,
23461 "optional" : 1,
23462 "type" : "integer"
23463 },
23464 "bps_wr" : {
23465 "description" : "Maximum write speed in bytes per second.",
23466 "format_description" : "bps",
23467 "optional" : 1,
23468 "type" : "integer"
23469 },
23470 "bps_wr_length" : {
23471 "alias" : "bps_wr_max_length"
23472 },
23473 "bps_wr_max_length" : {
23474 "description" : "Maximum length of write I/O bursts in seconds.",
23475 "format_description" : "seconds",
23476 "minimum" : 1,
23477 "optional" : 1,
23478 "type" : "integer"
23479 },
23480 "cache" : {
23481 "description" : "The drive's cache mode",
23482 "enum" : [
23483 "none",
23484 "writethrough",
23485 "writeback",
23486 "unsafe",
23487 "directsync"
23488 ],
23489 "optional" : 1,
23490 "type" : "string"
23491 },
23492 "cyls" : {
23493 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
23494 "optional" : 1,
23495 "type" : "integer"
23496 },
23497 "detect_zeroes" : {
23498 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
23499 "optional" : 1,
23500 "type" : "boolean"
23501 },
23502 "discard" : {
23503 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
23504 "enum" : [
23505 "ignore",
23506 "on"
23507 ],
23508 "optional" : 1,
23509 "type" : "string"
23510 },
23511 "file" : {
23512 "default_key" : 1,
23513 "description" : "The drive's backing volume.",
23514 "format" : "pve-volume-id-or-qm-path",
23515 "format_description" : "volume",
23516 "type" : "string"
23517 },
23518 "format" : {
23519 "description" : "The drive's backing file's data format.",
23520 "enum" : [
23521 "raw",
23522 "cow",
23523 "qcow",
23524 "qed",
23525 "qcow2",
23526 "vmdk",
23527 "cloop"
23528 ],
23529 "optional" : 1,
23530 "type" : "string"
23531 },
23532 "heads" : {
23533 "description" : "Force the drive's physical geometry to have a specific head count.",
23534 "optional" : 1,
23535 "type" : "integer"
23536 },
7af2edf9
TL
23537 "import-from" : {
23538 "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
23539 "format" : "pve-volume-id-or-absolute-path",
23540 "format_description" : "source volume",
23541 "optional" : 1,
23542 "type" : "string"
23543 },
4d47f125
TL
23544 "iops" : {
23545 "description" : "Maximum r/w I/O in operations per second.",
23546 "format_description" : "iops",
23547 "optional" : 1,
23548 "type" : "integer"
23549 },
23550 "iops_max" : {
23551 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
23552 "format_description" : "iops",
23553 "optional" : 1,
23554 "type" : "integer"
23555 },
23556 "iops_max_length" : {
23557 "description" : "Maximum length of I/O bursts in seconds.",
23558 "format_description" : "seconds",
23559 "minimum" : 1,
23560 "optional" : 1,
23561 "type" : "integer"
23562 },
23563 "iops_rd" : {
23564 "description" : "Maximum read I/O in operations per second.",
23565 "format_description" : "iops",
23566 "optional" : 1,
23567 "type" : "integer"
23568 },
23569 "iops_rd_length" : {
23570 "alias" : "iops_rd_max_length"
23571 },
23572 "iops_rd_max" : {
23573 "description" : "Maximum unthrottled read I/O pool in operations per second.",
23574 "format_description" : "iops",
23575 "optional" : 1,
23576 "type" : "integer"
23577 },
23578 "iops_rd_max_length" : {
23579 "description" : "Maximum length of read I/O bursts in seconds.",
23580 "format_description" : "seconds",
23581 "minimum" : 1,
23582 "optional" : 1,
23583 "type" : "integer"
23584 },
23585 "iops_wr" : {
23586 "description" : "Maximum write I/O in operations per second.",
23587 "format_description" : "iops",
23588 "optional" : 1,
23589 "type" : "integer"
23590 },
23591 "iops_wr_length" : {
23592 "alias" : "iops_wr_max_length"
23593 },
23594 "iops_wr_max" : {
23595 "description" : "Maximum unthrottled write I/O pool in operations per second.",
23596 "format_description" : "iops",
23597 "optional" : 1,
23598 "type" : "integer"
23599 },
23600 "iops_wr_max_length" : {
23601 "description" : "Maximum length of write I/O bursts in seconds.",
23602 "format_description" : "seconds",
23603 "minimum" : 1,
23604 "optional" : 1,
23605 "type" : "integer"
23606 },
23607 "iothread" : {
23608 "description" : "Whether to use iothreads for this drive",
23609 "optional" : 1,
23610 "type" : "boolean"
23611 },
23612 "mbps" : {
23613 "description" : "Maximum r/w speed in megabytes per second.",
23614 "format_description" : "mbps",
23615 "optional" : 1,
23616 "type" : "number"
23617 },
23618 "mbps_max" : {
23619 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
23620 "format_description" : "mbps",
23621 "optional" : 1,
23622 "type" : "number"
23623 },
23624 "mbps_rd" : {
23625 "description" : "Maximum read speed in megabytes per second.",
23626 "format_description" : "mbps",
23627 "optional" : 1,
23628 "type" : "number"
23629 },
23630 "mbps_rd_max" : {
23631 "description" : "Maximum unthrottled read pool in megabytes per second.",
23632 "format_description" : "mbps",
23633 "optional" : 1,
23634 "type" : "number"
23635 },
23636 "mbps_wr" : {
23637 "description" : "Maximum write speed in megabytes per second.",
23638 "format_description" : "mbps",
23639 "optional" : 1,
23640 "type" : "number"
23641 },
23642 "mbps_wr_max" : {
23643 "description" : "Maximum unthrottled write pool in megabytes per second.",
23644 "format_description" : "mbps",
23645 "optional" : 1,
23646 "type" : "number"
23647 },
23648 "media" : {
23649 "default" : "disk",
23650 "description" : "The drive's media type.",
23651 "enum" : [
23652 "cdrom",
23653 "disk"
23654 ],
23655 "optional" : 1,
23656 "type" : "string"
23657 },
23658 "replicate" : {
23659 "default" : 1,
23660 "description" : "Whether the drive should considered for replication jobs.",
23661 "optional" : 1,
23662 "type" : "boolean"
23663 },
23664 "rerror" : {
23665 "description" : "Read error action.",
23666 "enum" : [
23667 "ignore",
23668 "report",
23669 "stop"
23670 ],
23671 "optional" : 1,
23672 "type" : "string"
23673 },
5370fa8c
TL
23674 "ro" : {
23675 "description" : "Whether the drive is read-only.",
23676 "optional" : 1,
23677 "type" : "boolean"
23678 },
4d47f125
TL
23679 "secs" : {
23680 "description" : "Force the drive's physical geometry to have a specific sector count.",
23681 "optional" : 1,
23682 "type" : "integer"
23683 },
23684 "serial" : {
23685 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
23686 "format" : "urlencoded",
23687 "format_description" : "serial",
23688 "maxLength" : 60,
23689 "optional" : 1,
23690 "type" : "string"
23691 },
23692 "shared" : {
23693 "default" : 0,
23694 "description" : "Mark this locally-managed volume as available on all nodes",
23695 "optional" : 1,
23696 "type" : "boolean",
23697 "verbose_description" : "Mark this locally-managed volume as available on all nodes.\n\nWARNING: This option does not share the volume automatically, it assumes it is shared already!"
23698 },
23699 "size" : {
23700 "description" : "Disk size. This is purely informational and has no effect.",
23701 "format" : "disk-size",
23702 "format_description" : "DiskSize",
23703 "optional" : 1,
23704 "type" : "string"
23705 },
23706 "snapshot" : {
23707 "description" : "Controls qemu's snapshot mode feature. If activated, changes made to the disk are temporary and will be discarded when the VM is shutdown.",
23708 "optional" : 1,
23709 "type" : "boolean"
23710 },
23711 "trans" : {
23712 "description" : "Force disk geometry bios translation mode.",
23713 "enum" : [
23714 "none",
23715 "lba",
23716 "auto"
23717 ],
23718 "optional" : 1,
23719 "type" : "string"
23720 },
23721 "volume" : {
23722 "alias" : "file"
23723 },
23724 "werror" : {
23725 "description" : "Write error action.",
23726 "enum" : [
23727 "enospc",
23728 "ignore",
23729 "report",
23730 "stop"
23731 ],
23732 "optional" : 1,
23733 "type" : "string"
23734 }
23735 },
23736 "optional" : 1,
23737 "type" : "string",
7af2edf9 23738 "typetext" : "[file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<source volume>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,ro=<1|0>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]"
4d47f125
TL
23739 },
23740 "vmgenid" : {
23741 "default" : "1 (autogenerated)",
23742 "description" : "Set VM Generation ID. Use '1' to autogenerate on create or update, pass '0' to disable explicitly.",
23743 "format_description" : "UUID",
23744 "optional" : 1,
23745 "pattern" : "(?:[a-fA-F0-9]{8}(?:-[a-fA-F0-9]{4}){3}-[a-fA-F0-9]{12}|[01])",
23746 "type" : "string",
4772952b 23747 "verbose_description" : "The VM generation ID (vmgenid) device exposes a 128-bit integer value identifier to the guest OS. This allows to notify the guest operating system when the virtual machine is executed with a different configuration (e.g. snapshot execution or creation from a template). The guest operating system notices the change, and is then able to react as appropriate by marking its copies of distributed databases as dirty, re-initializing its random number generator, etc.\nNote that auto-creation only works when done through API/CLI create or update methods, but not when manually editing the config file."
4d47f125
TL
23748 },
23749 "vmid" : {
23750 "description" : "The (unique) ID of the VM.",
23751 "format" : "pve-vmid",
8dd66e12
TL
23752 "maximum" : 999999999,
23753 "minimum" : 100,
4d47f125 23754 "type" : "integer",
8dd66e12 23755 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
23756 },
23757 "vmstatestorage" : {
23758 "description" : "Default storage for VM state volumes/files.",
23759 "format" : "pve-storage-id",
907e4bc3 23760 "format_description" : "storage ID",
4d47f125
TL
23761 "optional" : 1,
23762 "type" : "string",
907e4bc3 23763 "typetext" : "<storage ID>"
4d47f125
TL
23764 },
23765 "watchdog" : {
23766 "description" : "Create a virtual hardware watchdog device.",
23767 "format" : "pve-qm-watchdog",
23768 "optional" : 1,
23769 "type" : "string",
23770 "typetext" : "[[model=]<i6300esb|ib700>] [,action=<enum>]",
23771 "verbose_description" : "Create a virtual hardware watchdog device. Once enabled (by a guest action), the watchdog must be periodically polled by an agent inside the guest or else the watchdog will reset the guest (or execute the respective action specified)"
23772 }
23773 }
23774 },
23775 "permissions" : {
23776 "check" : [
23777 "perm",
23778 "/vms/{vmid}",
23779 [
23780 "VM.Config.Disk",
23781 "VM.Config.CDROM",
23782 "VM.Config.CPU",
23783 "VM.Config.Memory",
23784 "VM.Config.Network",
23785 "VM.Config.HWType",
ac70d7d1
TL
23786 "VM.Config.Options",
23787 "VM.Config.Cloudinit"
4d47f125
TL
23788 ],
23789 "any",
23790 1
23791 ]
23792 },
23793 "protected" : 1,
23794 "proxyto" : "node",
23795 "returns" : {
23796 "type" : "null"
23797 }
23798 }
23799 },
23800 "leaf" : 1,
23801 "path" : "/nodes/{node}/qemu/{vmid}/config",
23802 "text" : "config"
23803 },
23804 {
23805 "info" : {
23806 "GET" : {
e9cd3bd4
TL
23807 "allowtoken" : 1,
23808 "description" : "Get the virtual machine configuration with both current and pending values.",
4d47f125
TL
23809 "method" : "GET",
23810 "name" : "vm_pending",
23811 "parameters" : {
23812 "additionalProperties" : 0,
23813 "properties" : {
23814 "node" : {
23815 "description" : "The cluster node name.",
23816 "format" : "pve-node",
23817 "type" : "string",
23818 "typetext" : "<string>"
23819 },
23820 "vmid" : {
23821 "description" : "The (unique) ID of the VM.",
23822 "format" : "pve-vmid",
8dd66e12
TL
23823 "maximum" : 999999999,
23824 "minimum" : 100,
4d47f125 23825 "type" : "integer",
8dd66e12 23826 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
23827 }
23828 }
23829 },
23830 "permissions" : {
23831 "check" : [
23832 "perm",
23833 "/vms/{vmid}",
23834 [
23835 "VM.Audit"
23836 ]
23837 ]
23838 },
23839 "proxyto" : "node",
23840 "returns" : {
23841 "items" : {
23842 "properties" : {
23843 "delete" : {
23844 "description" : "Indicates a pending delete request if present and not 0. The value 2 indicates a force-delete request.",
23845 "maximum" : 2,
23846 "minimum" : 0,
23847 "optional" : 1,
23848 "type" : "integer"
23849 },
23850 "key" : {
23851 "description" : "Configuration option name.",
23852 "type" : "string"
23853 },
23854 "pending" : {
23855 "description" : "Pending value.",
23856 "optional" : 1,
23857 "type" : "string"
23858 },
23859 "value" : {
23860 "description" : "Current value.",
23861 "optional" : 1,
23862 "type" : "string"
23863 }
23864 },
23865 "type" : "object"
23866 },
23867 "type" : "array"
23868 }
23869 }
23870 },
23871 "leaf" : 1,
23872 "path" : "/nodes/{node}/qemu/{vmid}/pending",
23873 "text" : "pending"
23874 },
4e7f60c2
TL
23875 {
23876 "children" : [
23877 {
23878 "info" : {
23879 "GET" : {
23880 "allowtoken" : 1,
23881 "description" : "Get automatically generated cloudinit config.",
23882 "method" : "GET",
23883 "name" : "cloudinit_generated_config_dump",
23884 "parameters" : {
23885 "additionalProperties" : 0,
23886 "properties" : {
23887 "node" : {
23888 "description" : "The cluster node name.",
23889 "format" : "pve-node",
23890 "type" : "string",
23891 "typetext" : "<string>"
23892 },
23893 "type" : {
23894 "description" : "Config type.",
23895 "enum" : [
23896 "user",
23897 "network",
23898 "meta"
23899 ],
23900 "type" : "string"
23901 },
23902 "vmid" : {
23903 "description" : "The (unique) ID of the VM.",
23904 "format" : "pve-vmid",
8dd66e12
TL
23905 "maximum" : 999999999,
23906 "minimum" : 100,
4e7f60c2 23907 "type" : "integer",
8dd66e12 23908 "typetext" : "<integer> (100 - 999999999)"
4e7f60c2
TL
23909 }
23910 }
23911 },
23912 "permissions" : {
23913 "check" : [
23914 "perm",
23915 "/vms/{vmid}",
23916 [
23917 "VM.Audit"
23918 ]
23919 ]
23920 },
23921 "proxyto" : "node",
23922 "returns" : {
23923 "type" : "string"
23924 }
23925 }
23926 },
23927 "leaf" : 1,
23928 "path" : "/nodes/{node}/qemu/{vmid}/cloudinit/dump",
23929 "text" : "dump"
23930 }
23931 ],
23932 "info" : {
23933 "GET" : {
23934 "allowtoken" : 1,
23935 "description" : "Get the cloudinit configuration with both current and pending values.",
23936 "method" : "GET",
23937 "name" : "cloudinit_pending",
23938 "parameters" : {
23939 "additionalProperties" : 0,
23940 "properties" : {
23941 "node" : {
23942 "description" : "The cluster node name.",
23943 "format" : "pve-node",
23944 "type" : "string",
23945 "typetext" : "<string>"
23946 },
23947 "vmid" : {
23948 "description" : "The (unique) ID of the VM.",
23949 "format" : "pve-vmid",
8dd66e12
TL
23950 "maximum" : 999999999,
23951 "minimum" : 100,
4e7f60c2 23952 "type" : "integer",
8dd66e12 23953 "typetext" : "<integer> (100 - 999999999)"
4e7f60c2
TL
23954 }
23955 }
23956 },
23957 "permissions" : {
23958 "check" : [
23959 "perm",
23960 "/vms/{vmid}",
23961 [
23962 "VM.Audit"
23963 ]
23964 ]
23965 },
23966 "proxyto" : "node",
23967 "returns" : {
23968 "items" : {
23969 "properties" : {
159464a9
TL
23970 "delete" : {
23971 "description" : "Indicates a pending delete request if present and not 0. ",
23972 "maximum" : 1,
23973 "minimum" : 0,
23974 "optional" : 1,
23975 "type" : "integer"
23976 },
4e7f60c2
TL
23977 "key" : {
23978 "description" : "Configuration option name.",
23979 "type" : "string"
23980 },
159464a9 23981 "pending" : {
81a3384d 23982 "description" : "The new pending value.",
4e7f60c2
TL
23983 "optional" : 1,
23984 "type" : "string"
23985 },
159464a9 23986 "value" : {
81a3384d 23987 "description" : "Value as it was used to generate the current cloudinit image.",
4e7f60c2
TL
23988 "optional" : 1,
23989 "type" : "string"
23990 }
23991 },
23992 "type" : "object"
23993 },
23994 "type" : "array"
23995 }
23996 },
23997 "PUT" : {
23998 "allowtoken" : 1,
23999 "description" : "Regenerate and change cloudinit config drive.",
24000 "method" : "PUT",
24001 "name" : "cloudinit_update",
24002 "parameters" : {
24003 "additionalProperties" : 0,
24004 "properties" : {
24005 "node" : {
24006 "description" : "The cluster node name.",
24007 "format" : "pve-node",
24008 "type" : "string",
24009 "typetext" : "<string>"
24010 },
24011 "vmid" : {
24012 "description" : "The (unique) ID of the VM.",
24013 "format" : "pve-vmid",
8dd66e12
TL
24014 "maximum" : 999999999,
24015 "minimum" : 100,
4e7f60c2 24016 "type" : "integer",
8dd66e12 24017 "typetext" : "<integer> (100 - 999999999)"
4e7f60c2
TL
24018 }
24019 }
24020 },
24021 "permissions" : {
24022 "check" : [
24023 "perm",
24024 "/vms/{vmid}",
82551b2b
TL
24025 [
24026 "VM.Config.Cloudinit"
24027 ]
4e7f60c2
TL
24028 ]
24029 },
24030 "protected" : 1,
24031 "proxyto" : "node",
24032 "returns" : {
24033 "type" : "null"
24034 }
24035 }
24036 },
24037 "leaf" : 0,
24038 "path" : "/nodes/{node}/qemu/{vmid}/cloudinit",
24039 "text" : "cloudinit"
24040 },
4d47f125
TL
24041 {
24042 "info" : {
24043 "PUT" : {
e9cd3bd4 24044 "allowtoken" : 1,
4d47f125
TL
24045 "description" : "Unlink/delete disk images.",
24046 "method" : "PUT",
24047 "name" : "unlink",
24048 "parameters" : {
24049 "additionalProperties" : 0,
24050 "properties" : {
24051 "force" : {
24052 "description" : "Force physical removal. Without this, we simple remove the disk from the config file and create an additional configuration entry called 'unused[n]', which contains the volume ID. Unlink of unused[n] always cause physical removal.",
24053 "optional" : 1,
24054 "type" : "boolean",
24055 "typetext" : "<boolean>"
24056 },
24057 "idlist" : {
24058 "description" : "A list of disk IDs you want to delete.",
24059 "format" : "pve-configid-list",
24060 "type" : "string",
24061 "typetext" : "<string>"
24062 },
24063 "node" : {
24064 "description" : "The cluster node name.",
24065 "format" : "pve-node",
24066 "type" : "string",
24067 "typetext" : "<string>"
24068 },
24069 "vmid" : {
24070 "description" : "The (unique) ID of the VM.",
24071 "format" : "pve-vmid",
8dd66e12
TL
24072 "maximum" : 999999999,
24073 "minimum" : 100,
4d47f125 24074 "type" : "integer",
8dd66e12 24075 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
24076 }
24077 }
24078 },
24079 "permissions" : {
24080 "check" : [
24081 "perm",
24082 "/vms/{vmid}",
24083 [
24084 "VM.Config.Disk"
24085 ]
24086 ]
24087 },
24088 "protected" : 1,
24089 "proxyto" : "node",
24090 "returns" : {
24091 "type" : "null"
24092 }
24093 }
24094 },
24095 "leaf" : 1,
24096 "path" : "/nodes/{node}/qemu/{vmid}/unlink",
24097 "text" : "unlink"
24098 },
24099 {
24100 "info" : {
24101 "POST" : {
e9cd3bd4 24102 "allowtoken" : 1,
4d47f125
TL
24103 "description" : "Creates a TCP VNC proxy connections.",
24104 "method" : "POST",
24105 "name" : "vncproxy",
24106 "parameters" : {
24107 "additionalProperties" : 0,
24108 "properties" : {
ac70d7d1
TL
24109 "generate-password" : {
24110 "default" : 0,
24111 "description" : "Generates a random password to be used as ticket instead of the API ticket.",
24112 "optional" : 1,
24113 "type" : "boolean",
24114 "typetext" : "<boolean>"
24115 },
4d47f125
TL
24116 "node" : {
24117 "description" : "The cluster node name.",
24118 "format" : "pve-node",
24119 "type" : "string",
24120 "typetext" : "<string>"
24121 },
24122 "vmid" : {
24123 "description" : "The (unique) ID of the VM.",
24124 "format" : "pve-vmid",
8dd66e12
TL
24125 "maximum" : 999999999,
24126 "minimum" : 100,
4d47f125 24127 "type" : "integer",
8dd66e12 24128 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
24129 },
24130 "websocket" : {
bd92b745 24131 "description" : "Prepare for websocket upgrade (only required when using serial terminal, otherwise upgrade is always possible).",
4d47f125
TL
24132 "optional" : 1,
24133 "type" : "boolean",
24134 "typetext" : "<boolean>"
24135 }
24136 }
24137 },
24138 "permissions" : {
24139 "check" : [
24140 "perm",
24141 "/vms/{vmid}",
24142 [
24143 "VM.Console"
24144 ]
24145 ]
24146 },
24147 "protected" : 1,
24148 "returns" : {
24149 "additionalProperties" : 0,
24150 "properties" : {
24151 "cert" : {
24152 "type" : "string"
24153 },
ac70d7d1
TL
24154 "password" : {
24155 "description" : "Returned if requested with 'generate-password' param. Consists of printable ASCII characters ('!' .. '~').",
24156 "optional" : 1,
24157 "type" : "string"
24158 },
4d47f125
TL
24159 "port" : {
24160 "type" : "integer"
24161 },
24162 "ticket" : {
24163 "type" : "string"
24164 },
24165 "upid" : {
24166 "type" : "string"
24167 },
24168 "user" : {
24169 "type" : "string"
24170 }
24171 }
24172 }
24173 }
24174 },
24175 "leaf" : 1,
24176 "path" : "/nodes/{node}/qemu/{vmid}/vncproxy",
24177 "text" : "vncproxy"
24178 },
24179 {
24180 "info" : {
24181 "POST" : {
e9cd3bd4 24182 "allowtoken" : 1,
4d47f125
TL
24183 "description" : "Creates a TCP proxy connections.",
24184 "method" : "POST",
24185 "name" : "termproxy",
24186 "parameters" : {
24187 "additionalProperties" : 0,
24188 "properties" : {
24189 "node" : {
24190 "description" : "The cluster node name.",
24191 "format" : "pve-node",
24192 "type" : "string",
24193 "typetext" : "<string>"
24194 },
24195 "serial" : {
24196 "description" : "opens a serial terminal (defaults to display)",
24197 "enum" : [
24198 "serial0",
24199 "serial1",
24200 "serial2",
24201 "serial3"
24202 ],
24203 "optional" : 1,
24204 "type" : "string"
24205 },
24206 "vmid" : {
24207 "description" : "The (unique) ID of the VM.",
24208 "format" : "pve-vmid",
8dd66e12
TL
24209 "maximum" : 999999999,
24210 "minimum" : 100,
4d47f125 24211 "type" : "integer",
8dd66e12 24212 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
24213 }
24214 }
24215 },
24216 "permissions" : {
24217 "check" : [
24218 "perm",
24219 "/vms/{vmid}",
24220 [
24221 "VM.Console"
24222 ]
24223 ]
24224 },
24225 "protected" : 1,
24226 "returns" : {
24227 "additionalProperties" : 0,
24228 "properties" : {
24229 "port" : {
24230 "type" : "integer"
24231 },
24232 "ticket" : {
24233 "type" : "string"
24234 },
24235 "upid" : {
24236 "type" : "string"
24237 },
24238 "user" : {
24239 "type" : "string"
24240 }
24241 }
24242 }
24243 }
24244 },
24245 "leaf" : 1,
24246 "path" : "/nodes/{node}/qemu/{vmid}/termproxy",
24247 "text" : "termproxy"
24248 },
24249 {
24250 "info" : {
24251 "GET" : {
e9cd3bd4 24252 "allowtoken" : 1,
4d47f125
TL
24253 "description" : "Opens a weksocket for VNC traffic.",
24254 "method" : "GET",
24255 "name" : "vncwebsocket",
24256 "parameters" : {
24257 "additionalProperties" : 0,
24258 "properties" : {
24259 "node" : {
24260 "description" : "The cluster node name.",
24261 "format" : "pve-node",
24262 "type" : "string",
24263 "typetext" : "<string>"
24264 },
24265 "port" : {
24266 "description" : "Port number returned by previous vncproxy call.",
24267 "maximum" : 5999,
24268 "minimum" : 5900,
24269 "type" : "integer",
24270 "typetext" : "<integer> (5900 - 5999)"
24271 },
24272 "vmid" : {
24273 "description" : "The (unique) ID of the VM.",
24274 "format" : "pve-vmid",
8dd66e12
TL
24275 "maximum" : 999999999,
24276 "minimum" : 100,
4d47f125 24277 "type" : "integer",
8dd66e12 24278 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
24279 },
24280 "vncticket" : {
24281 "description" : "Ticket from previous call to vncproxy.",
24282 "maxLength" : 512,
24283 "type" : "string",
24284 "typetext" : "<string>"
24285 }
24286 }
24287 },
24288 "permissions" : {
24289 "check" : [
24290 "perm",
24291 "/vms/{vmid}",
24292 [
24293 "VM.Console"
24294 ]
24295 ],
24296 "description" : "You also need to pass a valid ticket (vncticket)."
24297 },
24298 "returns" : {
24299 "properties" : {
24300 "port" : {
24301 "type" : "string"
24302 }
24303 },
24304 "type" : "object"
24305 }
24306 }
24307 },
24308 "leaf" : 1,
24309 "path" : "/nodes/{node}/qemu/{vmid}/vncwebsocket",
24310 "text" : "vncwebsocket"
24311 },
24312 {
24313 "info" : {
24314 "POST" : {
e9cd3bd4 24315 "allowtoken" : 1,
4d47f125
TL
24316 "description" : "Returns a SPICE configuration to connect to the VM.",
24317 "method" : "POST",
24318 "name" : "spiceproxy",
24319 "parameters" : {
24320 "additionalProperties" : 0,
24321 "properties" : {
24322 "node" : {
24323 "description" : "The cluster node name.",
24324 "format" : "pve-node",
24325 "type" : "string",
24326 "typetext" : "<string>"
24327 },
24328 "proxy" : {
24329 "description" : "SPICE proxy server. This can be used by the client to specify the proxy server. All nodes in a cluster runs 'spiceproxy', so it is up to the client to choose one. By default, we return the node where the VM is currently running. As reasonable setting is to use same node you use to connect to the API (This is window.location.hostname for the JS GUI).",
24330 "format" : "address",
24331 "optional" : 1,
24332 "type" : "string",
24333 "typetext" : "<string>"
24334 },
24335 "vmid" : {
24336 "description" : "The (unique) ID of the VM.",
24337 "format" : "pve-vmid",
8dd66e12
TL
24338 "maximum" : 999999999,
24339 "minimum" : 100,
4d47f125 24340 "type" : "integer",
8dd66e12 24341 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
24342 }
24343 }
24344 },
24345 "permissions" : {
24346 "check" : [
24347 "perm",
24348 "/vms/{vmid}",
24349 [
24350 "VM.Console"
24351 ]
24352 ]
24353 },
24354 "protected" : 1,
24355 "proxyto" : "node",
24356 "returns" : {
24357 "additionalProperties" : 1,
24358 "description" : "Returned values can be directly passed to the 'remote-viewer' application.",
24359 "properties" : {
24360 "host" : {
24361 "type" : "string"
24362 },
24363 "password" : {
24364 "type" : "string"
24365 },
24366 "proxy" : {
24367 "type" : "string"
24368 },
24369 "tls-port" : {
24370 "type" : "integer"
24371 },
24372 "type" : {
24373 "type" : "string"
24374 }
24375 }
24376 }
24377 }
24378 },
24379 "leaf" : 1,
24380 "path" : "/nodes/{node}/qemu/{vmid}/spiceproxy",
24381 "text" : "spiceproxy"
24382 },
24383 {
24384 "children" : [
24385 {
24386 "info" : {
24387 "GET" : {
e9cd3bd4 24388 "allowtoken" : 1,
4d47f125
TL
24389 "description" : "Get virtual machine status.",
24390 "method" : "GET",
24391 "name" : "vm_status",
24392 "parameters" : {
24393 "additionalProperties" : 0,
24394 "properties" : {
24395 "node" : {
24396 "description" : "The cluster node name.",
24397 "format" : "pve-node",
24398 "type" : "string",
24399 "typetext" : "<string>"
24400 },
24401 "vmid" : {
24402 "description" : "The (unique) ID of the VM.",
24403 "format" : "pve-vmid",
8dd66e12
TL
24404 "maximum" : 999999999,
24405 "minimum" : 100,
4d47f125 24406 "type" : "integer",
8dd66e12 24407 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
24408 }
24409 }
24410 },
24411 "permissions" : {
24412 "check" : [
24413 "perm",
24414 "/vms/{vmid}",
24415 [
24416 "VM.Audit"
24417 ]
24418 ]
24419 },
24420 "protected" : 1,
24421 "proxyto" : "node",
24422 "returns" : {
24423 "properties" : {
24424 "agent" : {
9d2e98ed 24425 "description" : "QEMU Guest Agent is enabled in config.",
4d47f125
TL
24426 "optional" : 1,
24427 "type" : "boolean"
24428 },
fa22697b
TL
24429 "clipboard" : {
24430 "description" : "Enable a specific clipboard. If not set, depending on the display type the SPICE one will be added.",
24431 "enum" : [
24432 "vnc"
24433 ],
24434 "optional" : 1,
24435 "type" : "string"
24436 },
4d47f125
TL
24437 "cpus" : {
24438 "description" : "Maximum usable CPUs.",
24439 "optional" : 1,
24440 "type" : "number"
24441 },
24442 "ha" : {
24443 "description" : "HA manager service status.",
24444 "type" : "object"
24445 },
95895385
TL
24446 "lock" : {
24447 "description" : "The current config lock, if any.",
24448 "optional" : 1,
24449 "type" : "string"
24450 },
4d47f125
TL
24451 "maxdisk" : {
24452 "description" : "Root disk size in bytes.",
24453 "optional" : 1,
24454 "renderer" : "bytes",
24455 "type" : "integer"
24456 },
24457 "maxmem" : {
24458 "description" : "Maximum memory in bytes.",
24459 "optional" : 1,
24460 "renderer" : "bytes",
24461 "type" : "integer"
24462 },
24463 "name" : {
24464 "description" : "VM name.",
24465 "optional" : 1,
24466 "type" : "string"
24467 },
24468 "pid" : {
24469 "description" : "PID of running qemu process.",
24470 "optional" : 1,
24471 "type" : "integer"
24472 },
24473 "qmpstatus" : {
499c9b7f 24474 "description" : "VM run state from the 'query-status' QMP monitor command.",
4d47f125
TL
24475 "optional" : 1,
24476 "type" : "string"
24477 },
d2656385
TL
24478 "running-machine" : {
24479 "description" : "The currently running machine type (if running).",
24480 "optional" : 1,
24481 "type" : "string"
24482 },
24483 "running-qemu" : {
24484 "description" : "The currently running QEMU version (if running).",
24485 "optional" : 1,
24486 "type" : "string"
24487 },
4d47f125 24488 "spice" : {
9d2e98ed 24489 "description" : "QEMU VGA configuration supports spice.",
4d47f125
TL
24490 "optional" : 1,
24491 "type" : "boolean"
24492 },
24493 "status" : {
9d2e98ed 24494 "description" : "QEMU process status.",
4d47f125
TL
24495 "enum" : [
24496 "stopped",
24497 "running"
24498 ],
24499 "type" : "string"
24500 },
5c1699e5
TL
24501 "tags" : {
24502 "description" : "The current configured tags, if any",
24503 "optional" : 1,
24504 "type" : "string"
24505 },
4d47f125
TL
24506 "uptime" : {
24507 "description" : "Uptime.",
24508 "optional" : 1,
24509 "renderer" : "duration",
24510 "type" : "integer"
24511 },
24512 "vmid" : {
24513 "description" : "The (unique) ID of the VM.",
24514 "format" : "pve-vmid",
8dd66e12
TL
24515 "maximum" : 999999999,
24516 "minimum" : 100,
4d47f125
TL
24517 "type" : "integer"
24518 }
24519 },
24520 "type" : "object"
24521 }
24522 }
24523 },
24524 "leaf" : 1,
24525 "path" : "/nodes/{node}/qemu/{vmid}/status/current",
24526 "text" : "current"
24527 },
24528 {
24529 "info" : {
24530 "POST" : {
e9cd3bd4 24531 "allowtoken" : 1,
4d47f125
TL
24532 "description" : "Start virtual machine.",
24533 "method" : "POST",
24534 "name" : "vm_start",
24535 "parameters" : {
24536 "additionalProperties" : 0,
24537 "properties" : {
c5aa7e14
TL
24538 "force-cpu" : {
24539 "description" : "Override QEMU's -cpu argument with the given string.",
24540 "optional" : 1,
24541 "type" : "string",
24542 "typetext" : "<string>"
24543 },
4d47f125 24544 "machine" : {
907e4bc3
TL
24545 "description" : "Specify the QEMU machine.",
24546 "format" : {
24547 "type" : {
24548 "default_key" : 1,
24549 "description" : "Specifies the QEMU machine type.",
24550 "format_description" : "machine type",
24551 "maxLength" : 40,
24552 "optional" : 1,
24553 "pattern" : "(pc|pc(-i440fx)?-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|q35|pc-q35-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|virt(?:-\\d+(\\.\\d+)+)?(\\+pve\\d+)?)",
24554 "type" : "string"
24555 },
24556 "viommu" : {
24557 "description" : "Enable and set guest vIOMMU variant (Intel vIOMMU needs q35 to be set as machine type).",
24558 "enum" : [
24559 "intel",
24560 "virtio"
24561 ],
24562 "optional" : 1,
24563 "type" : "string"
24564 }
24565 },
4d47f125 24566 "optional" : 1,
907e4bc3
TL
24567 "type" : "string",
24568 "typetext" : "[[type=]<machine type>] [,viommu=<intel|virtio>]"
4d47f125
TL
24569 },
24570 "migratedfrom" : {
24571 "description" : "The cluster node name.",
24572 "format" : "pve-node",
24573 "optional" : 1,
24574 "type" : "string",
24575 "typetext" : "<string>"
24576 },
24577 "migration_network" : {
24578 "description" : "CIDR of the (sub) network that is used for migration.",
24579 "format" : "CIDR",
24580 "optional" : 1,
24581 "type" : "string",
24582 "typetext" : "<string>"
24583 },
24584 "migration_type" : {
24585 "description" : "Migration traffic is encrypted using an SSH tunnel by default. On secure, completely private networks this can be disabled to increase performance.",
24586 "enum" : [
24587 "secure",
24588 "insecure"
24589 ],
24590 "optional" : 1,
24591 "type" : "string"
24592 },
24593 "node" : {
24594 "description" : "The cluster node name.",
24595 "format" : "pve-node",
24596 "type" : "string",
24597 "typetext" : "<string>"
24598 },
24599 "skiplock" : {
24600 "description" : "Ignore locks - only root is allowed to use this option.",
24601 "optional" : 1,
24602 "type" : "boolean",
24603 "typetext" : "<boolean>"
24604 },
24605 "stateuri" : {
24606 "description" : "Some command save/restore state from this location.",
24607 "maxLength" : 128,
24608 "optional" : 1,
24609 "type" : "string",
24610 "typetext" : "<string>"
24611 },
24612 "targetstorage" : {
c5aa7e14 24613 "description" : "Mapping from source to target storages. Providing only a single storage ID maps all source storages to that storage. Providing the special value '1' will map each source storage to itself.",
5370fa8c 24614 "format" : "storage-pair-list",
4d47f125
TL
24615 "optional" : 1,
24616 "type" : "string",
24617 "typetext" : "<string>"
24618 },
e9cd3bd4
TL
24619 "timeout" : {
24620 "default" : "max(30, vm memory in GiB)",
24621 "description" : "Wait maximal timeout seconds.",
24622 "minimum" : 0,
24623 "optional" : 1,
24624 "type" : "integer",
24625 "typetext" : "<integer> (0 - N)"
24626 },
4d47f125
TL
24627 "vmid" : {
24628 "description" : "The (unique) ID of the VM.",
24629 "format" : "pve-vmid",
8dd66e12
TL
24630 "maximum" : 999999999,
24631 "minimum" : 100,
4d47f125 24632 "type" : "integer",
8dd66e12 24633 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
24634 }
24635 }
24636 },
24637 "permissions" : {
24638 "check" : [
24639 "perm",
24640 "/vms/{vmid}",
24641 [
24642 "VM.PowerMgmt"
24643 ]
24644 ]
24645 },
24646 "protected" : 1,
24647 "proxyto" : "node",
24648 "returns" : {
24649 "type" : "string"
24650 }
24651 }
24652 },
24653 "leaf" : 1,
24654 "path" : "/nodes/{node}/qemu/{vmid}/status/start",
24655 "text" : "start"
24656 },
24657 {
24658 "info" : {
24659 "POST" : {
e9cd3bd4 24660 "allowtoken" : 1,
907e4bc3 24661 "description" : "Stop virtual machine. The qemu process will exit immediately. This is akin to pulling the power plug of a running computer and may damage the VM data.",
4d47f125
TL
24662 "method" : "POST",
24663 "name" : "vm_stop",
24664 "parameters" : {
24665 "additionalProperties" : 0,
24666 "properties" : {
24667 "keepActive" : {
24668 "default" : 0,
24669 "description" : "Do not deactivate storage volumes.",
24670 "optional" : 1,
24671 "type" : "boolean",
24672 "typetext" : "<boolean>"
24673 },
24674 "migratedfrom" : {
24675 "description" : "The cluster node name.",
24676 "format" : "pve-node",
24677 "optional" : 1,
24678 "type" : "string",
24679 "typetext" : "<string>"
24680 },
24681 "node" : {
24682 "description" : "The cluster node name.",
24683 "format" : "pve-node",
24684 "type" : "string",
24685 "typetext" : "<string>"
24686 },
907e4bc3
TL
24687 "overrule-shutdown" : {
24688 "default" : 0,
24689 "description" : "Try to abort active 'qmshutdown' tasks before stopping.",
24690 "optional" : 1,
24691 "type" : "boolean",
24692 "typetext" : "<boolean>"
24693 },
4d47f125
TL
24694 "skiplock" : {
24695 "description" : "Ignore locks - only root is allowed to use this option.",
24696 "optional" : 1,
24697 "type" : "boolean",
24698 "typetext" : "<boolean>"
24699 },
24700 "timeout" : {
24701 "description" : "Wait maximal timeout seconds.",
24702 "minimum" : 0,
24703 "optional" : 1,
24704 "type" : "integer",
24705 "typetext" : "<integer> (0 - N)"
24706 },
24707 "vmid" : {
24708 "description" : "The (unique) ID of the VM.",
24709 "format" : "pve-vmid",
8dd66e12
TL
24710 "maximum" : 999999999,
24711 "minimum" : 100,
4d47f125 24712 "type" : "integer",
8dd66e12 24713 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
24714 }
24715 }
24716 },
24717 "permissions" : {
24718 "check" : [
24719 "perm",
24720 "/vms/{vmid}",
24721 [
24722 "VM.PowerMgmt"
24723 ]
24724 ]
24725 },
24726 "protected" : 1,
24727 "proxyto" : "node",
24728 "returns" : {
24729 "type" : "string"
24730 }
24731 }
24732 },
24733 "leaf" : 1,
24734 "path" : "/nodes/{node}/qemu/{vmid}/status/stop",
24735 "text" : "stop"
24736 },
24737 {
24738 "info" : {
24739 "POST" : {
e9cd3bd4 24740 "allowtoken" : 1,
4d47f125
TL
24741 "description" : "Reset virtual machine.",
24742 "method" : "POST",
24743 "name" : "vm_reset",
24744 "parameters" : {
24745 "additionalProperties" : 0,
24746 "properties" : {
24747 "node" : {
24748 "description" : "The cluster node name.",
24749 "format" : "pve-node",
24750 "type" : "string",
24751 "typetext" : "<string>"
24752 },
24753 "skiplock" : {
24754 "description" : "Ignore locks - only root is allowed to use this option.",
24755 "optional" : 1,
24756 "type" : "boolean",
24757 "typetext" : "<boolean>"
24758 },
24759 "vmid" : {
24760 "description" : "The (unique) ID of the VM.",
24761 "format" : "pve-vmid",
8dd66e12
TL
24762 "maximum" : 999999999,
24763 "minimum" : 100,
4d47f125 24764 "type" : "integer",
8dd66e12 24765 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
24766 }
24767 }
24768 },
24769 "permissions" : {
24770 "check" : [
24771 "perm",
24772 "/vms/{vmid}",
24773 [
24774 "VM.PowerMgmt"
24775 ]
24776 ]
24777 },
24778 "protected" : 1,
24779 "proxyto" : "node",
24780 "returns" : {
24781 "type" : "string"
24782 }
24783 }
24784 },
24785 "leaf" : 1,
24786 "path" : "/nodes/{node}/qemu/{vmid}/status/reset",
24787 "text" : "reset"
24788 },
24789 {
24790 "info" : {
24791 "POST" : {
e9cd3bd4 24792 "allowtoken" : 1,
907e4bc3 24793 "description" : "Shutdown virtual machine. This is similar to pressing the power button on a physical machine. This will send an ACPI event for the guest OS, which should then proceed to a clean shutdown.",
4d47f125
TL
24794 "method" : "POST",
24795 "name" : "vm_shutdown",
24796 "parameters" : {
24797 "additionalProperties" : 0,
24798 "properties" : {
24799 "forceStop" : {
24800 "default" : 0,
24801 "description" : "Make sure the VM stops.",
24802 "optional" : 1,
24803 "type" : "boolean",
24804 "typetext" : "<boolean>"
24805 },
24806 "keepActive" : {
24807 "default" : 0,
24808 "description" : "Do not deactivate storage volumes.",
24809 "optional" : 1,
24810 "type" : "boolean",
24811 "typetext" : "<boolean>"
24812 },
24813 "node" : {
24814 "description" : "The cluster node name.",
24815 "format" : "pve-node",
24816 "type" : "string",
24817 "typetext" : "<string>"
24818 },
24819 "skiplock" : {
24820 "description" : "Ignore locks - only root is allowed to use this option.",
24821 "optional" : 1,
24822 "type" : "boolean",
24823 "typetext" : "<boolean>"
24824 },
24825 "timeout" : {
24826 "description" : "Wait maximal timeout seconds.",
24827 "minimum" : 0,
24828 "optional" : 1,
24829 "type" : "integer",
24830 "typetext" : "<integer> (0 - N)"
24831 },
24832 "vmid" : {
24833 "description" : "The (unique) ID of the VM.",
24834 "format" : "pve-vmid",
8dd66e12
TL
24835 "maximum" : 999999999,
24836 "minimum" : 100,
4d47f125 24837 "type" : "integer",
8dd66e12 24838 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
24839 }
24840 }
24841 },
24842 "permissions" : {
24843 "check" : [
24844 "perm",
24845 "/vms/{vmid}",
24846 [
24847 "VM.PowerMgmt"
24848 ]
24849 ]
24850 },
24851 "protected" : 1,
24852 "proxyto" : "node",
24853 "returns" : {
24854 "type" : "string"
24855 }
24856 }
24857 },
24858 "leaf" : 1,
24859 "path" : "/nodes/{node}/qemu/{vmid}/status/shutdown",
24860 "text" : "shutdown"
24861 },
1c532546
TL
24862 {
24863 "info" : {
24864 "POST" : {
e9cd3bd4 24865 "allowtoken" : 1,
1c532546
TL
24866 "description" : "Reboot the VM by shutting it down, and starting it again. Applies pending changes.",
24867 "method" : "POST",
24868 "name" : "vm_reboot",
24869 "parameters" : {
24870 "additionalProperties" : 0,
24871 "properties" : {
24872 "node" : {
24873 "description" : "The cluster node name.",
24874 "format" : "pve-node",
24875 "type" : "string",
24876 "typetext" : "<string>"
24877 },
24878 "timeout" : {
24879 "description" : "Wait maximal timeout seconds for the shutdown.",
24880 "minimum" : 0,
24881 "optional" : 1,
24882 "type" : "integer",
24883 "typetext" : "<integer> (0 - N)"
24884 },
24885 "vmid" : {
24886 "description" : "The (unique) ID of the VM.",
24887 "format" : "pve-vmid",
8dd66e12
TL
24888 "maximum" : 999999999,
24889 "minimum" : 100,
1c532546 24890 "type" : "integer",
8dd66e12 24891 "typetext" : "<integer> (100 - 999999999)"
1c532546
TL
24892 }
24893 }
24894 },
24895 "permissions" : {
24896 "check" : [
24897 "perm",
24898 "/vms/{vmid}",
24899 [
24900 "VM.PowerMgmt"
24901 ]
24902 ]
24903 },
24904 "protected" : 1,
24905 "proxyto" : "node",
24906 "returns" : {
24907 "type" : "string"
24908 }
24909 }
24910 },
24911 "leaf" : 1,
24912 "path" : "/nodes/{node}/qemu/{vmid}/status/reboot",
24913 "text" : "reboot"
24914 },
4d47f125
TL
24915 {
24916 "info" : {
24917 "POST" : {
e9cd3bd4 24918 "allowtoken" : 1,
4d47f125
TL
24919 "description" : "Suspend virtual machine.",
24920 "method" : "POST",
24921 "name" : "vm_suspend",
24922 "parameters" : {
24923 "additionalProperties" : 0,
24924 "properties" : {
24925 "node" : {
24926 "description" : "The cluster node name.",
24927 "format" : "pve-node",
24928 "type" : "string",
24929 "typetext" : "<string>"
24930 },
24931 "skiplock" : {
24932 "description" : "Ignore locks - only root is allowed to use this option.",
24933 "optional" : 1,
24934 "type" : "boolean",
24935 "typetext" : "<boolean>"
24936 },
95895385
TL
24937 "statestorage" : {
24938 "description" : "The storage for the VM state",
24939 "format" : "pve-storage-id",
907e4bc3 24940 "format_description" : "storage ID",
95895385
TL
24941 "optional" : 1,
24942 "requires" : "todisk",
24943 "type" : "string",
907e4bc3 24944 "typetext" : "<storage ID>"
95895385
TL
24945 },
24946 "todisk" : {
24947 "default" : 0,
24948 "description" : "If set, suspends the VM to disk. Will be resumed on next VM start.",
24949 "optional" : 1,
24950 "type" : "boolean",
24951 "typetext" : "<boolean>"
24952 },
4d47f125
TL
24953 "vmid" : {
24954 "description" : "The (unique) ID of the VM.",
24955 "format" : "pve-vmid",
8dd66e12
TL
24956 "maximum" : 999999999,
24957 "minimum" : 100,
4d47f125 24958 "type" : "integer",
8dd66e12 24959 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
24960 }
24961 }
24962 },
24963 "permissions" : {
24964 "check" : [
24965 "perm",
24966 "/vms/{vmid}",
24967 [
24968 "VM.PowerMgmt"
24969 ]
e9cd3bd4
TL
24970 ],
24971 "description" : "You need 'VM.PowerMgmt' on /vms/{vmid}, and if you have set 'todisk', you need also 'VM.Config.Disk' on /vms/{vmid} and 'Datastore.AllocateSpace' on the storage for the vmstate."
4d47f125
TL
24972 },
24973 "protected" : 1,
24974 "proxyto" : "node",
24975 "returns" : {
24976 "type" : "string"
24977 }
24978 }
24979 },
24980 "leaf" : 1,
24981 "path" : "/nodes/{node}/qemu/{vmid}/status/suspend",
24982 "text" : "suspend"
24983 },
24984 {
24985 "info" : {
24986 "POST" : {
e9cd3bd4 24987 "allowtoken" : 1,
4d47f125
TL
24988 "description" : "Resume virtual machine.",
24989 "method" : "POST",
24990 "name" : "vm_resume",
24991 "parameters" : {
24992 "additionalProperties" : 0,
24993 "properties" : {
24994 "nocheck" : {
24995 "optional" : 1,
24996 "type" : "boolean",
24997 "typetext" : "<boolean>"
24998 },
24999 "node" : {
25000 "description" : "The cluster node name.",
25001 "format" : "pve-node",
25002 "type" : "string",
25003 "typetext" : "<string>"
25004 },
25005 "skiplock" : {
25006 "description" : "Ignore locks - only root is allowed to use this option.",
25007 "optional" : 1,
25008 "type" : "boolean",
25009 "typetext" : "<boolean>"
25010 },
25011 "vmid" : {
25012 "description" : "The (unique) ID of the VM.",
25013 "format" : "pve-vmid",
8dd66e12
TL
25014 "maximum" : 999999999,
25015 "minimum" : 100,
4d47f125 25016 "type" : "integer",
8dd66e12 25017 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
25018 }
25019 }
25020 },
25021 "permissions" : {
25022 "check" : [
25023 "perm",
25024 "/vms/{vmid}",
25025 [
25026 "VM.PowerMgmt"
25027 ]
25028 ]
25029 },
25030 "protected" : 1,
25031 "proxyto" : "node",
25032 "returns" : {
25033 "type" : "string"
25034 }
25035 }
25036 },
25037 "leaf" : 1,
25038 "path" : "/nodes/{node}/qemu/{vmid}/status/resume",
25039 "text" : "resume"
25040 }
25041 ],
25042 "info" : {
25043 "GET" : {
e9cd3bd4 25044 "allowtoken" : 1,
4d47f125
TL
25045 "description" : "Directory index",
25046 "method" : "GET",
25047 "name" : "vmcmdidx",
25048 "parameters" : {
25049 "additionalProperties" : 0,
25050 "properties" : {
25051 "node" : {
25052 "description" : "The cluster node name.",
25053 "format" : "pve-node",
25054 "type" : "string",
25055 "typetext" : "<string>"
25056 },
25057 "vmid" : {
25058 "description" : "The (unique) ID of the VM.",
25059 "format" : "pve-vmid",
8dd66e12
TL
25060 "maximum" : 999999999,
25061 "minimum" : 100,
4d47f125 25062 "type" : "integer",
8dd66e12 25063 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
25064 }
25065 }
25066 },
25067 "permissions" : {
25068 "user" : "all"
25069 },
25070 "proxyto" : "node",
25071 "returns" : {
25072 "items" : {
25073 "properties" : {
25074 "subdir" : {
25075 "type" : "string"
25076 }
25077 },
25078 "type" : "object"
25079 },
25080 "links" : [
25081 {
25082 "href" : "{subdir}",
25083 "rel" : "child"
25084 }
25085 ],
25086 "type" : "array"
25087 }
25088 }
25089 },
25090 "leaf" : 0,
25091 "path" : "/nodes/{node}/qemu/{vmid}/status",
25092 "text" : "status"
25093 },
25094 {
25095 "info" : {
25096 "PUT" : {
e9cd3bd4 25097 "allowtoken" : 1,
4d47f125
TL
25098 "description" : "Send key event to virtual machine.",
25099 "method" : "PUT",
25100 "name" : "vm_sendkey",
25101 "parameters" : {
25102 "additionalProperties" : 0,
25103 "properties" : {
25104 "key" : {
25105 "description" : "The key (qemu monitor encoding).",
25106 "type" : "string",
25107 "typetext" : "<string>"
25108 },
25109 "node" : {
25110 "description" : "The cluster node name.",
25111 "format" : "pve-node",
25112 "type" : "string",
25113 "typetext" : "<string>"
25114 },
25115 "skiplock" : {
25116 "description" : "Ignore locks - only root is allowed to use this option.",
25117 "optional" : 1,
25118 "type" : "boolean",
25119 "typetext" : "<boolean>"
25120 },
25121 "vmid" : {
25122 "description" : "The (unique) ID of the VM.",
25123 "format" : "pve-vmid",
8dd66e12
TL
25124 "maximum" : 999999999,
25125 "minimum" : 100,
4d47f125 25126 "type" : "integer",
8dd66e12 25127 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
25128 }
25129 }
25130 },
25131 "permissions" : {
25132 "check" : [
25133 "perm",
25134 "/vms/{vmid}",
25135 [
25136 "VM.Console"
25137 ]
25138 ]
25139 },
25140 "protected" : 1,
25141 "proxyto" : "node",
25142 "returns" : {
25143 "type" : "null"
25144 }
25145 }
25146 },
25147 "leaf" : 1,
25148 "path" : "/nodes/{node}/qemu/{vmid}/sendkey",
25149 "text" : "sendkey"
25150 },
25151 {
25152 "info" : {
25153 "GET" : {
e9cd3bd4 25154 "allowtoken" : 1,
4d47f125
TL
25155 "description" : "Check if feature for virtual machine is available.",
25156 "method" : "GET",
25157 "name" : "vm_feature",
25158 "parameters" : {
25159 "additionalProperties" : 0,
25160 "properties" : {
25161 "feature" : {
25162 "description" : "Feature to check.",
25163 "enum" : [
25164 "snapshot",
25165 "clone",
25166 "copy"
25167 ],
25168 "type" : "string"
25169 },
25170 "node" : {
25171 "description" : "The cluster node name.",
25172 "format" : "pve-node",
25173 "type" : "string",
25174 "typetext" : "<string>"
25175 },
25176 "snapname" : {
25177 "description" : "The name of the snapshot.",
25178 "format" : "pve-configid",
25179 "maxLength" : 40,
25180 "optional" : 1,
25181 "type" : "string",
25182 "typetext" : "<string>"
25183 },
25184 "vmid" : {
25185 "description" : "The (unique) ID of the VM.",
25186 "format" : "pve-vmid",
8dd66e12
TL
25187 "maximum" : 999999999,
25188 "minimum" : 100,
4d47f125 25189 "type" : "integer",
8dd66e12 25190 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
25191 }
25192 }
25193 },
25194 "permissions" : {
25195 "check" : [
25196 "perm",
25197 "/vms/{vmid}",
25198 [
25199 "VM.Audit"
25200 ]
25201 ]
25202 },
25203 "protected" : 1,
25204 "proxyto" : "node",
25205 "returns" : {
25206 "properties" : {
25207 "hasFeature" : {
25208 "type" : "boolean"
25209 },
25210 "nodes" : {
25211 "items" : {
25212 "type" : "string"
25213 },
25214 "type" : "array"
25215 }
25216 },
25217 "type" : "object"
25218 }
25219 }
25220 },
25221 "leaf" : 1,
25222 "path" : "/nodes/{node}/qemu/{vmid}/feature",
25223 "text" : "feature"
25224 },
25225 {
25226 "info" : {
25227 "POST" : {
e9cd3bd4 25228 "allowtoken" : 1,
4d47f125
TL
25229 "description" : "Create a copy of virtual machine/template.",
25230 "method" : "POST",
25231 "name" : "clone_vm",
25232 "parameters" : {
25233 "additionalProperties" : 0,
25234 "properties" : {
95895385
TL
25235 "bwlimit" : {
25236 "default" : "clone limit from datacenter or storage config",
25237 "description" : "Override I/O bandwidth limit (in KiB/s).",
25238 "minimum" : "0",
25239 "optional" : 1,
25240 "type" : "integer",
25241 "typetext" : "<integer> (0 - N)"
25242 },
4d47f125
TL
25243 "description" : {
25244 "description" : "Description for the new VM.",
25245 "optional" : 1,
25246 "type" : "string",
25247 "typetext" : "<string>"
25248 },
25249 "format" : {
25250 "description" : "Target format for file storage. Only valid for full clone.",
25251 "enum" : [
25252 "raw",
25253 "qcow2",
25254 "vmdk"
25255 ],
25256 "optional" : 1,
25257 "type" : "string"
25258 },
25259 "full" : {
25260 "description" : "Create a full copy of all disks. This is always done when you clone a normal VM. For VM templates, we try to create a linked clone by default.",
25261 "optional" : 1,
25262 "type" : "boolean",
25263 "typetext" : "<boolean>"
25264 },
25265 "name" : {
25266 "description" : "Set a name for the new VM.",
25267 "format" : "dns-name",
25268 "optional" : 1,
25269 "type" : "string",
25270 "typetext" : "<string>"
25271 },
25272 "newid" : {
25273 "description" : "VMID for the clone.",
25274 "format" : "pve-vmid",
8dd66e12
TL
25275 "maximum" : 999999999,
25276 "minimum" : 100,
4d47f125 25277 "type" : "integer",
8dd66e12 25278 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
25279 },
25280 "node" : {
25281 "description" : "The cluster node name.",
25282 "format" : "pve-node",
25283 "type" : "string",
25284 "typetext" : "<string>"
25285 },
25286 "pool" : {
25287 "description" : "Add the new VM to the specified pool.",
25288 "format" : "pve-poolid",
25289 "optional" : 1,
25290 "type" : "string",
25291 "typetext" : "<string>"
25292 },
25293 "snapname" : {
25294 "description" : "The name of the snapshot.",
25295 "format" : "pve-configid",
25296 "maxLength" : 40,
25297 "optional" : 1,
25298 "type" : "string",
25299 "typetext" : "<string>"
25300 },
25301 "storage" : {
25302 "description" : "Target storage for full clone.",
25303 "format" : "pve-storage-id",
907e4bc3 25304 "format_description" : "storage ID",
4d47f125
TL
25305 "optional" : 1,
25306 "type" : "string",
907e4bc3 25307 "typetext" : "<storage ID>"
4d47f125
TL
25308 },
25309 "target" : {
25310 "description" : "Target node. Only allowed if the original VM is on shared storage.",
25311 "format" : "pve-node",
25312 "optional" : 1,
25313 "type" : "string",
25314 "typetext" : "<string>"
25315 },
25316 "vmid" : {
25317 "description" : "The (unique) ID of the VM.",
25318 "format" : "pve-vmid",
8dd66e12
TL
25319 "maximum" : 999999999,
25320 "minimum" : 100,
4d47f125 25321 "type" : "integer",
8dd66e12 25322 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
25323 }
25324 }
25325 },
25326 "permissions" : {
25327 "check" : [
25328 "and",
25329 [
25330 "perm",
25331 "/vms/{vmid}",
25332 [
25333 "VM.Clone"
25334 ]
25335 ],
25336 [
25337 "or",
25338 [
25339 "perm",
25340 "/vms/{newid}",
25341 [
25342 "VM.Allocate"
25343 ]
25344 ],
25345 [
25346 "perm",
25347 "/pool/{pool}",
25348 [
25349 "VM.Allocate"
25350 ],
25351 "require_param",
25352 "pool"
25353 ]
25354 ]
25355 ],
159464a9 25356 "description" : "You need 'VM.Clone' permissions on /vms/{vmid}, and 'VM.Allocate' permissions on /vms/{newid} (or on the VM pool /pool/{pool}). You also need 'Datastore.AllocateSpace' on any used storage and 'SDN.Use' on any used bridge/vnet"
4d47f125
TL
25357 },
25358 "protected" : 1,
25359 "proxyto" : "node",
25360 "returns" : {
25361 "type" : "string"
25362 }
25363 }
25364 },
25365 "leaf" : 1,
25366 "path" : "/nodes/{node}/qemu/{vmid}/clone",
25367 "text" : "clone"
25368 },
25369 {
25370 "info" : {
25371 "POST" : {
e9cd3bd4 25372 "allowtoken" : 1,
5370fa8c 25373 "description" : "Move volume to different storage or to a different VM.",
4d47f125
TL
25374 "method" : "POST",
25375 "name" : "move_vm_disk",
25376 "parameters" : {
25377 "additionalProperties" : 0,
25378 "properties" : {
95895385
TL
25379 "bwlimit" : {
25380 "default" : "move limit from datacenter or storage config",
25381 "description" : "Override I/O bandwidth limit (in KiB/s).",
25382 "minimum" : "0",
25383 "optional" : 1,
25384 "type" : "integer",
25385 "typetext" : "<integer> (0 - N)"
25386 },
4d47f125
TL
25387 "delete" : {
25388 "default" : 0,
25389 "description" : "Delete the original disk after successful copy. By default the original disk is kept as unused disk.",
25390 "optional" : 1,
25391 "type" : "boolean",
25392 "typetext" : "<boolean>"
25393 },
25394 "digest" : {
5370fa8c 25395 "description" : "Prevent changes if current configuration file has different SHA1\"\n\t\t .\" digest. This can be used to prevent concurrent modifications.",
4d47f125
TL
25396 "maxLength" : 40,
25397 "optional" : 1,
25398 "type" : "string",
25399 "typetext" : "<string>"
25400 },
25401 "disk" : {
25402 "description" : "The disk you want to move.",
25403 "enum" : [
25404 "ide0",
25405 "ide1",
25406 "ide2",
25407 "ide3",
25408 "scsi0",
25409 "scsi1",
25410 "scsi2",
25411 "scsi3",
25412 "scsi4",
25413 "scsi5",
25414 "scsi6",
25415 "scsi7",
25416 "scsi8",
25417 "scsi9",
25418 "scsi10",
25419 "scsi11",
25420 "scsi12",
25421 "scsi13",
e9cd3bd4
TL
25422 "scsi14",
25423 "scsi15",
25424 "scsi16",
25425 "scsi17",
25426 "scsi18",
25427 "scsi19",
25428 "scsi20",
25429 "scsi21",
25430 "scsi22",
25431 "scsi23",
25432 "scsi24",
25433 "scsi25",
25434 "scsi26",
25435 "scsi27",
25436 "scsi28",
25437 "scsi29",
25438 "scsi30",
4d47f125
TL
25439 "virtio0",
25440 "virtio1",
25441 "virtio2",
25442 "virtio3",
25443 "virtio4",
25444 "virtio5",
25445 "virtio6",
25446 "virtio7",
25447 "virtio8",
25448 "virtio9",
25449 "virtio10",
25450 "virtio11",
25451 "virtio12",
25452 "virtio13",
25453 "virtio14",
25454 "virtio15",
25455 "sata0",
25456 "sata1",
25457 "sata2",
25458 "sata3",
25459 "sata4",
25460 "sata5",
5370fa8c
TL
25461 "efidisk0",
25462 "tpmstate0",
25463 "unused0",
25464 "unused1",
25465 "unused2",
25466 "unused3",
25467 "unused4",
25468 "unused5",
25469 "unused6",
25470 "unused7",
25471 "unused8",
25472 "unused9",
25473 "unused10",
25474 "unused11",
25475 "unused12",
25476 "unused13",
25477 "unused14",
25478 "unused15",
25479 "unused16",
25480 "unused17",
25481 "unused18",
25482 "unused19",
25483 "unused20",
25484 "unused21",
25485 "unused22",
25486 "unused23",
25487 "unused24",
25488 "unused25",
25489 "unused26",
25490 "unused27",
25491 "unused28",
25492 "unused29",
25493 "unused30",
25494 "unused31",
25495 "unused32",
25496 "unused33",
25497 "unused34",
25498 "unused35",
25499 "unused36",
25500 "unused37",
25501 "unused38",
25502 "unused39",
25503 "unused40",
25504 "unused41",
25505 "unused42",
25506 "unused43",
25507 "unused44",
25508 "unused45",
25509 "unused46",
25510 "unused47",
25511 "unused48",
25512 "unused49",
25513 "unused50",
25514 "unused51",
25515 "unused52",
25516 "unused53",
25517 "unused54",
25518 "unused55",
25519 "unused56",
25520 "unused57",
25521 "unused58",
25522 "unused59",
25523 "unused60",
25524 "unused61",
25525 "unused62",
25526 "unused63",
25527 "unused64",
25528 "unused65",
25529 "unused66",
25530 "unused67",
25531 "unused68",
25532 "unused69",
25533 "unused70",
25534 "unused71",
25535 "unused72",
25536 "unused73",
25537 "unused74",
25538 "unused75",
25539 "unused76",
25540 "unused77",
25541 "unused78",
25542 "unused79",
25543 "unused80",
25544 "unused81",
25545 "unused82",
25546 "unused83",
25547 "unused84",
25548 "unused85",
25549 "unused86",
25550 "unused87",
25551 "unused88",
25552 "unused89",
25553 "unused90",
25554 "unused91",
25555 "unused92",
25556 "unused93",
25557 "unused94",
25558 "unused95",
25559 "unused96",
25560 "unused97",
25561 "unused98",
25562 "unused99",
25563 "unused100",
25564 "unused101",
25565 "unused102",
25566 "unused103",
25567 "unused104",
25568 "unused105",
25569 "unused106",
25570 "unused107",
25571 "unused108",
25572 "unused109",
25573 "unused110",
25574 "unused111",
25575 "unused112",
25576 "unused113",
25577 "unused114",
25578 "unused115",
25579 "unused116",
25580 "unused117",
25581 "unused118",
25582 "unused119",
25583 "unused120",
25584 "unused121",
25585 "unused122",
25586 "unused123",
25587 "unused124",
25588 "unused125",
25589 "unused126",
25590 "unused127",
25591 "unused128",
25592 "unused129",
25593 "unused130",
25594 "unused131",
25595 "unused132",
25596 "unused133",
25597 "unused134",
25598 "unused135",
25599 "unused136",
25600 "unused137",
25601 "unused138",
25602 "unused139",
25603 "unused140",
25604 "unused141",
25605 "unused142",
25606 "unused143",
25607 "unused144",
25608 "unused145",
25609 "unused146",
25610 "unused147",
25611 "unused148",
25612 "unused149",
25613 "unused150",
25614 "unused151",
25615 "unused152",
25616 "unused153",
25617 "unused154",
25618 "unused155",
25619 "unused156",
25620 "unused157",
25621 "unused158",
25622 "unused159",
25623 "unused160",
25624 "unused161",
25625 "unused162",
25626 "unused163",
25627 "unused164",
25628 "unused165",
25629 "unused166",
25630 "unused167",
25631 "unused168",
25632 "unused169",
25633 "unused170",
25634 "unused171",
25635 "unused172",
25636 "unused173",
25637 "unused174",
25638 "unused175",
25639 "unused176",
25640 "unused177",
25641 "unused178",
25642 "unused179",
25643 "unused180",
25644 "unused181",
25645 "unused182",
25646 "unused183",
25647 "unused184",
25648 "unused185",
25649 "unused186",
25650 "unused187",
25651 "unused188",
25652 "unused189",
25653 "unused190",
25654 "unused191",
25655 "unused192",
25656 "unused193",
25657 "unused194",
25658 "unused195",
25659 "unused196",
25660 "unused197",
25661 "unused198",
25662 "unused199",
25663 "unused200",
25664 "unused201",
25665 "unused202",
25666 "unused203",
25667 "unused204",
25668 "unused205",
25669 "unused206",
25670 "unused207",
25671 "unused208",
25672 "unused209",
25673 "unused210",
25674 "unused211",
25675 "unused212",
25676 "unused213",
25677 "unused214",
25678 "unused215",
25679 "unused216",
25680 "unused217",
25681 "unused218",
25682 "unused219",
25683 "unused220",
25684 "unused221",
25685 "unused222",
25686 "unused223",
25687 "unused224",
25688 "unused225",
25689 "unused226",
25690 "unused227",
25691 "unused228",
25692 "unused229",
25693 "unused230",
25694 "unused231",
25695 "unused232",
25696 "unused233",
25697 "unused234",
25698 "unused235",
25699 "unused236",
25700 "unused237",
25701 "unused238",
25702 "unused239",
25703 "unused240",
25704 "unused241",
25705 "unused242",
25706 "unused243",
25707 "unused244",
25708 "unused245",
25709 "unused246",
25710 "unused247",
25711 "unused248",
25712 "unused249",
25713 "unused250",
25714 "unused251",
25715 "unused252",
25716 "unused253",
25717 "unused254",
25718 "unused255"
4d47f125
TL
25719 ],
25720 "type" : "string"
25721 },
25722 "format" : {
25723 "description" : "Target Format.",
25724 "enum" : [
25725 "raw",
25726 "qcow2",
25727 "vmdk"
25728 ],
25729 "optional" : 1,
25730 "type" : "string"
25731 },
25732 "node" : {
25733 "description" : "The cluster node name.",
25734 "format" : "pve-node",
25735 "type" : "string",
25736 "typetext" : "<string>"
25737 },
25738 "storage" : {
25739 "description" : "Target storage.",
25740 "format" : "pve-storage-id",
907e4bc3 25741 "format_description" : "storage ID",
5370fa8c 25742 "optional" : 1,
4d47f125 25743 "type" : "string",
907e4bc3 25744 "typetext" : "<storage ID>"
4d47f125 25745 },
5370fa8c
TL
25746 "target-digest" : {
25747 "description" : "Prevent changes if the current config file of the target VM has a\"\n\t\t .\" different SHA1 digest. This can be used to detect concurrent modifications.",
25748 "maxLength" : 40,
25749 "optional" : 1,
25750 "type" : "string",
25751 "typetext" : "<string>"
25752 },
25753 "target-disk" : {
25754 "description" : "The config key the disk will be moved to on the target VM (for example, ide0 or scsi1). Default is the source disk key.",
25755 "enum" : [
25756 "ide0",
25757 "ide1",
25758 "ide2",
25759 "ide3",
25760 "scsi0",
25761 "scsi1",
25762 "scsi2",
25763 "scsi3",
25764 "scsi4",
25765 "scsi5",
25766 "scsi6",
25767 "scsi7",
25768 "scsi8",
25769 "scsi9",
25770 "scsi10",
25771 "scsi11",
25772 "scsi12",
25773 "scsi13",
25774 "scsi14",
25775 "scsi15",
25776 "scsi16",
25777 "scsi17",
25778 "scsi18",
25779 "scsi19",
25780 "scsi20",
25781 "scsi21",
25782 "scsi22",
25783 "scsi23",
25784 "scsi24",
25785 "scsi25",
25786 "scsi26",
25787 "scsi27",
25788 "scsi28",
25789 "scsi29",
25790 "scsi30",
25791 "virtio0",
25792 "virtio1",
25793 "virtio2",
25794 "virtio3",
25795 "virtio4",
25796 "virtio5",
25797 "virtio6",
25798 "virtio7",
25799 "virtio8",
25800 "virtio9",
25801 "virtio10",
25802 "virtio11",
25803 "virtio12",
25804 "virtio13",
25805 "virtio14",
25806 "virtio15",
25807 "sata0",
25808 "sata1",
25809 "sata2",
25810 "sata3",
25811 "sata4",
25812 "sata5",
25813 "efidisk0",
25814 "tpmstate0",
25815 "unused0",
25816 "unused1",
25817 "unused2",
25818 "unused3",
25819 "unused4",
25820 "unused5",
25821 "unused6",
25822 "unused7",
25823 "unused8",
25824 "unused9",
25825 "unused10",
25826 "unused11",
25827 "unused12",
25828 "unused13",
25829 "unused14",
25830 "unused15",
25831 "unused16",
25832 "unused17",
25833 "unused18",
25834 "unused19",
25835 "unused20",
25836 "unused21",
25837 "unused22",
25838 "unused23",
25839 "unused24",
25840 "unused25",
25841 "unused26",
25842 "unused27",
25843 "unused28",
25844 "unused29",
25845 "unused30",
25846 "unused31",
25847 "unused32",
25848 "unused33",
25849 "unused34",
25850 "unused35",
25851 "unused36",
25852 "unused37",
25853 "unused38",
25854 "unused39",
25855 "unused40",
25856 "unused41",
25857 "unused42",
25858 "unused43",
25859 "unused44",
25860 "unused45",
25861 "unused46",
25862 "unused47",
25863 "unused48",
25864 "unused49",
25865 "unused50",
25866 "unused51",
25867 "unused52",
25868 "unused53",
25869 "unused54",
25870 "unused55",
25871 "unused56",
25872 "unused57",
25873 "unused58",
25874 "unused59",
25875 "unused60",
25876 "unused61",
25877 "unused62",
25878 "unused63",
25879 "unused64",
25880 "unused65",
25881 "unused66",
25882 "unused67",
25883 "unused68",
25884 "unused69",
25885 "unused70",
25886 "unused71",
25887 "unused72",
25888 "unused73",
25889 "unused74",
25890 "unused75",
25891 "unused76",
25892 "unused77",
25893 "unused78",
25894 "unused79",
25895 "unused80",
25896 "unused81",
25897 "unused82",
25898 "unused83",
25899 "unused84",
25900 "unused85",
25901 "unused86",
25902 "unused87",
25903 "unused88",
25904 "unused89",
25905 "unused90",
25906 "unused91",
25907 "unused92",
25908 "unused93",
25909 "unused94",
25910 "unused95",
25911 "unused96",
25912 "unused97",
25913 "unused98",
25914 "unused99",
25915 "unused100",
25916 "unused101",
25917 "unused102",
25918 "unused103",
25919 "unused104",
25920 "unused105",
25921 "unused106",
25922 "unused107",
25923 "unused108",
25924 "unused109",
25925 "unused110",
25926 "unused111",
25927 "unused112",
25928 "unused113",
25929 "unused114",
25930 "unused115",
25931 "unused116",
25932 "unused117",
25933 "unused118",
25934 "unused119",
25935 "unused120",
25936 "unused121",
25937 "unused122",
25938 "unused123",
25939 "unused124",
25940 "unused125",
25941 "unused126",
25942 "unused127",
25943 "unused128",
25944 "unused129",
25945 "unused130",
25946 "unused131",
25947 "unused132",
25948 "unused133",
25949 "unused134",
25950 "unused135",
25951 "unused136",
25952 "unused137",
25953 "unused138",
25954 "unused139",
25955 "unused140",
25956 "unused141",
25957 "unused142",
25958 "unused143",
25959 "unused144",
25960 "unused145",
25961 "unused146",
25962 "unused147",
25963 "unused148",
25964 "unused149",
25965 "unused150",
25966 "unused151",
25967 "unused152",
25968 "unused153",
25969 "unused154",
25970 "unused155",
25971 "unused156",
25972 "unused157",
25973 "unused158",
25974 "unused159",
25975 "unused160",
25976 "unused161",
25977 "unused162",
25978 "unused163",
25979 "unused164",
25980 "unused165",
25981 "unused166",
25982 "unused167",
25983 "unused168",
25984 "unused169",
25985 "unused170",
25986 "unused171",
25987 "unused172",
25988 "unused173",
25989 "unused174",
25990 "unused175",
25991 "unused176",
25992 "unused177",
25993 "unused178",
25994 "unused179",
25995 "unused180",
25996 "unused181",
25997 "unused182",
25998 "unused183",
25999 "unused184",
26000 "unused185",
26001 "unused186",
26002 "unused187",
26003 "unused188",
26004 "unused189",
26005 "unused190",
26006 "unused191",
26007 "unused192",
26008 "unused193",
26009 "unused194",
26010 "unused195",
26011 "unused196",
26012 "unused197",
26013 "unused198",
26014 "unused199",
26015 "unused200",
26016 "unused201",
26017 "unused202",
26018 "unused203",
26019 "unused204",
26020 "unused205",
26021 "unused206",
26022 "unused207",
26023 "unused208",
26024 "unused209",
26025 "unused210",
26026 "unused211",
26027 "unused212",
26028 "unused213",
26029 "unused214",
26030 "unused215",
26031 "unused216",
26032 "unused217",
26033 "unused218",
26034 "unused219",
26035 "unused220",
26036 "unused221",
26037 "unused222",
26038 "unused223",
26039 "unused224",
26040 "unused225",
26041 "unused226",
26042 "unused227",
26043 "unused228",
26044 "unused229",
26045 "unused230",
26046 "unused231",
26047 "unused232",
26048 "unused233",
26049 "unused234",
26050 "unused235",
26051 "unused236",
26052 "unused237",
26053 "unused238",
26054 "unused239",
26055 "unused240",
26056 "unused241",
26057 "unused242",
26058 "unused243",
26059 "unused244",
26060 "unused245",
26061 "unused246",
26062 "unused247",
26063 "unused248",
26064 "unused249",
26065 "unused250",
26066 "unused251",
26067 "unused252",
26068 "unused253",
26069 "unused254",
26070 "unused255"
26071 ],
26072 "optional" : 1,
26073 "type" : "string"
26074 },
26075 "target-vmid" : {
26076 "description" : "The (unique) ID of the VM.",
26077 "format" : "pve-vmid",
8dd66e12
TL
26078 "maximum" : 999999999,
26079 "minimum" : 100,
5370fa8c
TL
26080 "optional" : 1,
26081 "type" : "integer",
8dd66e12 26082 "typetext" : "<integer> (100 - 999999999)"
5370fa8c 26083 },
4d47f125
TL
26084 "vmid" : {
26085 "description" : "The (unique) ID of the VM.",
26086 "format" : "pve-vmid",
8dd66e12
TL
26087 "maximum" : 999999999,
26088 "minimum" : 100,
4d47f125 26089 "type" : "integer",
8dd66e12 26090 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
26091 }
26092 }
26093 },
26094 "permissions" : {
26095 "check" : [
5370fa8c
TL
26096 "perm",
26097 "/vms/{vmid}",
4d47f125 26098 [
5370fa8c 26099 "VM.Config.Disk"
4d47f125
TL
26100 ]
26101 ],
5370fa8c 26102 "description" : "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."
4d47f125
TL
26103 },
26104 "protected" : 1,
26105 "proxyto" : "node",
26106 "returns" : {
26107 "description" : "the task ID.",
26108 "type" : "string"
26109 }
26110 }
26111 },
26112 "leaf" : 1,
26113 "path" : "/nodes/{node}/qemu/{vmid}/move_disk",
26114 "text" : "move_disk"
26115 },
26116 {
26117 "info" : {
1e3f8156 26118 "GET" : {
e9cd3bd4 26119 "allowtoken" : 1,
1e3f8156
TL
26120 "description" : "Get preconditions for migration.",
26121 "method" : "GET",
26122 "name" : "migrate_vm_precondition",
26123 "parameters" : {
26124 "additionalProperties" : 0,
26125 "properties" : {
26126 "node" : {
26127 "description" : "The cluster node name.",
26128 "format" : "pve-node",
26129 "type" : "string",
26130 "typetext" : "<string>"
26131 },
26132 "target" : {
26133 "description" : "Target node.",
26134 "format" : "pve-node",
26135 "optional" : 1,
26136 "type" : "string",
26137 "typetext" : "<string>"
26138 },
26139 "vmid" : {
26140 "description" : "The (unique) ID of the VM.",
26141 "format" : "pve-vmid",
8dd66e12
TL
26142 "maximum" : 999999999,
26143 "minimum" : 100,
1e3f8156 26144 "type" : "integer",
8dd66e12 26145 "typetext" : "<integer> (100 - 999999999)"
1e3f8156
TL
26146 }
26147 }
26148 },
26149 "permissions" : {
26150 "check" : [
26151 "perm",
26152 "/vms/{vmid}",
26153 [
26154 "VM.Migrate"
26155 ]
26156 ]
26157 },
26158 "protected" : 1,
26159 "proxyto" : "node",
26160 "returns" : {
26161 "properties" : {
26162 "allowed_nodes" : {
9226ccbc 26163 "description" : "List nodes allowed for offline migration, only passed if VM is offline",
1e3f8156
TL
26164 "optional" : 1,
26165 "type" : "array"
26166 },
26167 "local_disks" : {
26168 "description" : "List local disks including CD-Rom, unsused and not referenced disks",
26169 "type" : "array"
26170 },
26171 "local_resources" : {
26172 "description" : "List local resources e.g. pci, usb",
26173 "type" : "array"
26174 },
499c9b7f
TL
26175 "mapped-resources" : {
26176 "description" : "List of mapped resources e.g. pci, usb",
26177 "type" : "array"
26178 },
9226ccbc
TL
26179 "not_allowed_nodes" : {
26180 "description" : "List not allowed nodes with additional informations, only passed if VM is offline",
26181 "optional" : 1,
26182 "type" : "object"
26183 },
1e3f8156
TL
26184 "running" : {
26185 "type" : "boolean"
26186 }
26187 },
26188 "type" : "object"
26189 }
26190 },
4d47f125 26191 "POST" : {
e9cd3bd4 26192 "allowtoken" : 1,
4d47f125
TL
26193 "description" : "Migrate virtual machine. Creates a new migration task.",
26194 "method" : "POST",
26195 "name" : "migrate_vm",
26196 "parameters" : {
26197 "additionalProperties" : 0,
26198 "properties" : {
95895385
TL
26199 "bwlimit" : {
26200 "default" : "migrate limit from datacenter or storage config",
26201 "description" : "Override I/O bandwidth limit (in KiB/s).",
26202 "minimum" : "0",
26203 "optional" : 1,
26204 "type" : "integer",
26205 "typetext" : "<integer> (0 - N)"
26206 },
4d47f125
TL
26207 "force" : {
26208 "description" : "Allow to migrate VMs which use local devices. Only root may use this option.",
26209 "optional" : 1,
26210 "type" : "boolean",
26211 "typetext" : "<boolean>"
26212 },
26213 "migration_network" : {
26214 "description" : "CIDR of the (sub) network that is used for migration.",
26215 "format" : "CIDR",
26216 "optional" : 1,
26217 "type" : "string",
26218 "typetext" : "<string>"
26219 },
26220 "migration_type" : {
26221 "description" : "Migration traffic is encrypted using an SSH tunnel by default. On secure, completely private networks this can be disabled to increase performance.",
26222 "enum" : [
26223 "secure",
26224 "insecure"
26225 ],
26226 "optional" : 1,
26227 "type" : "string"
26228 },
26229 "node" : {
26230 "description" : "The cluster node name.",
26231 "format" : "pve-node",
26232 "type" : "string",
26233 "typetext" : "<string>"
26234 },
26235 "online" : {
1c532546 26236 "description" : "Use online/live migration if VM is running. Ignored if VM is stopped.",
4d47f125
TL
26237 "optional" : 1,
26238 "type" : "boolean",
26239 "typetext" : "<boolean>"
26240 },
26241 "target" : {
26242 "description" : "Target node.",
26243 "format" : "pve-node",
26244 "type" : "string",
26245 "typetext" : "<string>"
26246 },
26247 "targetstorage" : {
c5aa7e14 26248 "description" : "Mapping from source to target storages. Providing only a single storage ID maps all source storages to that storage. Providing the special value '1' will map each source storage to itself.",
5370fa8c 26249 "format" : "storage-pair-list",
4d47f125 26250 "optional" : 1,
52e44c50
FG
26251 "type" : "string",
26252 "typetext" : "<string>"
26253 },
7aacca6f 26254 "vmid" : {
7aacca6f 26255 "description" : "The (unique) ID of the VM.",
44660702 26256 "format" : "pve-vmid",
8dd66e12
TL
26257 "maximum" : 999999999,
26258 "minimum" : 100,
4bd7df8b 26259 "type" : "integer",
8dd66e12 26260 "typetext" : "<integer> (100 - 999999999)"
52e44c50
FG
26261 },
26262 "with-local-disks" : {
26263 "description" : "Enable live storage migration for local disk",
26264 "optional" : 1,
26265 "type" : "boolean",
26266 "typetext" : "<boolean>"
56122987 26267 }
44660702
DM
26268 }
26269 },
26270 "permissions" : {
26271 "check" : [
26272 "perm",
26273 "/vms/{vmid}",
26274 [
26275 "VM.Migrate"
26276 ]
26277 ]
56122987
DM
26278 },
26279 "protected" : 1,
44660702
DM
26280 "proxyto" : "node",
26281 "returns" : {
26282 "description" : "the task ID.",
26283 "type" : "string"
26284 }
56122987 26285 }
7aacca6f 26286 },
44660702
DM
26287 "leaf" : 1,
26288 "path" : "/nodes/{node}/qemu/{vmid}/migrate",
7aacca6f 26289 "text" : "migrate"
56122987 26290 },
81a3384d
TL
26291 {
26292 "info" : {
26293 "POST" : {
26294 "allowtoken" : 1,
26295 "description" : "Migrate virtual machine to a remote cluster. Creates a new migration task. EXPERIMENTAL feature!",
26296 "method" : "POST",
26297 "name" : "remote_migrate_vm",
26298 "parameters" : {
26299 "additionalProperties" : 0,
26300 "properties" : {
26301 "bwlimit" : {
26302 "default" : "migrate limit from datacenter or storage config",
26303 "description" : "Override I/O bandwidth limit (in KiB/s).",
26304 "minimum" : "0",
26305 "optional" : 1,
26306 "type" : "integer",
26307 "typetext" : "<integer> (0 - N)"
26308 },
26309 "delete" : {
26310 "default" : 0,
26311 "description" : "Delete the original VM and related data after successful migration. By default the original VM is kept on the source cluster in a stopped state.",
26312 "optional" : 1,
26313 "type" : "boolean",
26314 "typetext" : "<boolean>"
26315 },
26316 "node" : {
26317 "description" : "The cluster node name.",
26318 "format" : "pve-node",
26319 "type" : "string",
26320 "typetext" : "<string>"
26321 },
26322 "online" : {
26323 "description" : "Use online/live migration if VM is running. Ignored if VM is stopped.",
26324 "optional" : 1,
26325 "type" : "boolean",
26326 "typetext" : "<boolean>"
26327 },
26328 "target-bridge" : {
26329 "description" : "Mapping from source to target bridges. Providing only a single bridge ID maps all source bridges to that bridge. Providing the special value '1' will map each source bridge to itself.",
26330 "format" : "bridge-pair-list",
26331 "type" : "string",
26332 "typetext" : "<string>"
26333 },
26334 "target-endpoint" : {
26335 "description" : "Remote target endpoint",
26336 "format" : "proxmox-remote",
26337 "type" : "string",
907e4bc3 26338 "typetext" : "apitoken=<PVEAPIToken=user@realm!token=SECRET> ,host=<ADDRESS> [,fingerprint=<FINGERPRINT>] [,port=<PORT>]"
81a3384d
TL
26339 },
26340 "target-storage" : {
26341 "description" : "Mapping from source to target storages. Providing only a single storage ID maps all source storages to that storage. Providing the special value '1' will map each source storage to itself.",
26342 "format" : "storage-pair-list",
26343 "optional" : 0,
26344 "type" : "string",
26345 "typetext" : "<string>"
26346 },
26347 "target-vmid" : {
26348 "description" : "The (unique) ID of the VM.",
26349 "format" : "pve-vmid",
8dd66e12
TL
26350 "maximum" : 999999999,
26351 "minimum" : 100,
81a3384d
TL
26352 "optional" : 1,
26353 "type" : "integer",
8dd66e12 26354 "typetext" : "<integer> (100 - 999999999)"
81a3384d
TL
26355 },
26356 "vmid" : {
26357 "description" : "The (unique) ID of the VM.",
26358 "format" : "pve-vmid",
8dd66e12
TL
26359 "maximum" : 999999999,
26360 "minimum" : 100,
81a3384d 26361 "type" : "integer",
8dd66e12 26362 "typetext" : "<integer> (100 - 999999999)"
81a3384d
TL
26363 }
26364 }
26365 },
26366 "permissions" : {
26367 "check" : [
26368 "perm",
26369 "/vms/{vmid}",
26370 [
26371 "VM.Migrate"
26372 ]
26373 ]
26374 },
26375 "protected" : 1,
26376 "proxyto" : "node",
26377 "returns" : {
26378 "description" : "the task ID.",
26379 "type" : "string"
26380 }
26381 }
26382 },
26383 "leaf" : 1,
26384 "path" : "/nodes/{node}/qemu/{vmid}/remote_migrate",
26385 "text" : "remote_migrate"
26386 },
56122987
DM
26387 {
26388 "info" : {
26389 "POST" : {
e9cd3bd4 26390 "allowtoken" : 1,
9d2e98ed 26391 "description" : "Execute QEMU monitor commands.",
56122987 26392 "method" : "POST",
44660702 26393 "name" : "monitor",
56122987 26394 "parameters" : {
7aacca6f 26395 "additionalProperties" : 0,
56122987 26396 "properties" : {
44660702
DM
26397 "command" : {
26398 "description" : "The monitor command.",
013dc89f
DM
26399 "type" : "string",
26400 "typetext" : "<string>"
44660702 26401 },
56122987 26402 "node" : {
44660702 26403 "description" : "The cluster node name.",
7aacca6f 26404 "format" : "pve-node",
013dc89f
DM
26405 "type" : "string",
26406 "typetext" : "<string>"
56122987
DM
26407 },
26408 "vmid" : {
44660702 26409 "description" : "The (unique) ID of the VM.",
56122987 26410 "format" : "pve-vmid",
8dd66e12
TL
26411 "maximum" : 999999999,
26412 "minimum" : 100,
4bd7df8b 26413 "type" : "integer",
8dd66e12 26414 "typetext" : "<integer> (100 - 999999999)"
56122987 26415 }
7aacca6f 26416 }
56122987 26417 },
56122987
DM
26418 "permissions" : {
26419 "check" : [
26420 "perm",
26421 "/vms/{vmid}",
26422 [
26423 "VM.Monitor"
26424 ]
32d876b5
DM
26425 ],
26426 "description" : "Sys.Modify is required for (sub)commands which are not read-only ('info *' and 'help')"
7aacca6f 26427 },
44660702
DM
26428 "protected" : 1,
26429 "proxyto" : "node",
26430 "returns" : {
26431 "type" : "string"
26432 }
56122987 26433 }
44660702
DM
26434 },
26435 "leaf" : 1,
26436 "path" : "/nodes/{node}/qemu/{vmid}/monitor",
26437 "text" : "monitor"
56122987
DM
26438 },
26439 {
56122987
DM
26440 "info" : {
26441 "PUT" : {
e9cd3bd4 26442 "allowtoken" : 1,
44660702
DM
26443 "description" : "Extend volume size.",
26444 "method" : "PUT",
26445 "name" : "resize_vm",
56122987 26446 "parameters" : {
44660702 26447 "additionalProperties" : 0,
56122987 26448 "properties" : {
44660702
DM
26449 "digest" : {
26450 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
26451 "maxLength" : 40,
26452 "optional" : 1,
013dc89f
DM
26453 "type" : "string",
26454 "typetext" : "<string>"
56122987 26455 },
56122987
DM
26456 "disk" : {
26457 "description" : "The disk you want to resize.",
26458 "enum" : [
26459 "ide0",
26460 "ide1",
26461 "ide2",
26462 "ide3",
26463 "scsi0",
26464 "scsi1",
26465 "scsi2",
26466 "scsi3",
26467 "scsi4",
26468 "scsi5",
26469 "scsi6",
26470 "scsi7",
26471 "scsi8",
26472 "scsi9",
26473 "scsi10",
26474 "scsi11",
26475 "scsi12",
26476 "scsi13",
e9cd3bd4
TL
26477 "scsi14",
26478 "scsi15",
26479 "scsi16",
26480 "scsi17",
26481 "scsi18",
26482 "scsi19",
26483 "scsi20",
26484 "scsi21",
26485 "scsi22",
26486 "scsi23",
26487 "scsi24",
26488 "scsi25",
26489 "scsi26",
26490 "scsi27",
26491 "scsi28",
26492 "scsi29",
26493 "scsi30",
56122987
DM
26494 "virtio0",
26495 "virtio1",
26496 "virtio2",
26497 "virtio3",
26498 "virtio4",
26499 "virtio5",
26500 "virtio6",
26501 "virtio7",
26502 "virtio8",
26503 "virtio9",
26504 "virtio10",
26505 "virtio11",
26506 "virtio12",
26507 "virtio13",
26508 "virtio14",
26509 "virtio15",
26510 "sata0",
26511 "sata1",
26512 "sata2",
26513 "sata3",
26514 "sata4",
2c0dde61 26515 "sata5",
5370fa8c
TL
26516 "efidisk0",
26517 "tpmstate0"
44660702
DM
26518 ],
26519 "type" : "string"
56122987 26520 },
44660702
DM
26521 "node" : {
26522 "description" : "The cluster node name.",
26523 "format" : "pve-node",
013dc89f
DM
26524 "type" : "string",
26525 "typetext" : "<string>"
7aacca6f 26526 },
44660702 26527 "size" : {
5d9c884c 26528 "description" : "The new size. With the `+` sign the value is added to the actual size of the volume and without it, the value is taken as an absolute one. Shrinking disk size is not supported.",
44660702
DM
26529 "pattern" : "\\+?\\d+(\\.\\d+)?[KMGT]?",
26530 "type" : "string"
56122987
DM
26531 },
26532 "skiplock" : {
26533 "description" : "Ignore locks - only root is allowed to use this option.",
26534 "optional" : 1,
013dc89f
DM
26535 "type" : "boolean",
26536 "typetext" : "<boolean>"
56122987
DM
26537 },
26538 "vmid" : {
7aacca6f 26539 "description" : "The (unique) ID of the VM.",
56122987 26540 "format" : "pve-vmid",
8dd66e12
TL
26541 "maximum" : 999999999,
26542 "minimum" : 100,
4bd7df8b 26543 "type" : "integer",
8dd66e12 26544 "typetext" : "<integer> (100 - 999999999)"
56122987
DM
26545 }
26546 }
26547 },
26548 "permissions" : {
26549 "check" : [
26550 "perm",
26551 "/vms/{vmid}",
26552 [
44660702 26553 "VM.Config.Disk"
56122987
DM
26554 ]
26555 ]
26556 },
7aacca6f 26557 "protected" : 1,
7aacca6f 26558 "proxyto" : "node",
44660702 26559 "returns" : {
159464a9
TL
26560 "description" : "the task ID.",
26561 "type" : "string"
44660702 26562 }
7aacca6f
DM
26563 }
26564 },
44660702
DM
26565 "leaf" : 1,
26566 "path" : "/nodes/{node}/qemu/{vmid}/resize",
26567 "text" : "resize"
26568 },
26569 {
56122987
DM
26570 "children" : [
26571 {
26572 "children" : [
26573 {
56122987 26574 "info" : {
44660702 26575 "GET" : {
e9cd3bd4 26576 "allowtoken" : 1,
44660702
DM
26577 "description" : "Get snapshot configuration",
26578 "method" : "GET",
26579 "name" : "get_snapshot_config",
56122987 26580 "parameters" : {
44660702 26581 "additionalProperties" : 0,
56122987 26582 "properties" : {
56122987 26583 "node" : {
44660702 26584 "description" : "The cluster node name.",
56122987 26585 "format" : "pve-node",
013dc89f
DM
26586 "type" : "string",
26587 "typetext" : "<string>"
7aacca6f
DM
26588 },
26589 "snapname" : {
44660702 26590 "description" : "The name of the snapshot.",
7aacca6f 26591 "format" : "pve-configid",
44660702 26592 "maxLength" : 40,
013dc89f
DM
26593 "type" : "string",
26594 "typetext" : "<string>"
7aacca6f
DM
26595 },
26596 "vmid" : {
44660702 26597 "description" : "The (unique) ID of the VM.",
7aacca6f 26598 "format" : "pve-vmid",
8dd66e12
TL
26599 "maximum" : 999999999,
26600 "minimum" : 100,
4bd7df8b 26601 "type" : "integer",
8dd66e12 26602 "typetext" : "<integer> (100 - 999999999)"
56122987 26603 }
44660702 26604 }
56122987
DM
26605 },
26606 "permissions" : {
26607 "check" : [
26608 "perm",
26609 "/vms/{vmid}",
26610 [
2489d6df 26611 "VM.Snapshot",
e9cd3bd4
TL
26612 "VM.Snapshot.Rollback",
26613 "VM.Audit"
2489d6df
WB
26614 ],
26615 "any",
26616 1
56122987
DM
26617 ]
26618 },
44660702 26619 "proxyto" : "node",
56122987 26620 "returns" : {
44660702 26621 "type" : "object"
7aacca6f
DM
26622 }
26623 },
44660702 26624 "PUT" : {
e9cd3bd4 26625 "allowtoken" : 1,
44660702
DM
26626 "description" : "Update snapshot metadata.",
26627 "method" : "PUT",
26628 "name" : "update_snapshot_config",
56122987 26629 "parameters" : {
44660702 26630 "additionalProperties" : 0,
56122987 26631 "properties" : {
44660702
DM
26632 "description" : {
26633 "description" : "A textual description or comment.",
26634 "optional" : 1,
013dc89f
DM
26635 "type" : "string",
26636 "typetext" : "<string>"
44660702 26637 },
56122987 26638 "node" : {
7aacca6f 26639 "description" : "The cluster node name.",
44660702 26640 "format" : "pve-node",
013dc89f
DM
26641 "type" : "string",
26642 "typetext" : "<string>"
56122987 26643 },
56122987
DM
26644 "snapname" : {
26645 "description" : "The name of the snapshot.",
44660702 26646 "format" : "pve-configid",
7aacca6f 26647 "maxLength" : 40,
013dc89f
DM
26648 "type" : "string",
26649 "typetext" : "<string>"
7aacca6f
DM
26650 },
26651 "vmid" : {
26652 "description" : "The (unique) ID of the VM.",
44660702 26653 "format" : "pve-vmid",
8dd66e12
TL
26654 "maximum" : 999999999,
26655 "minimum" : 100,
4bd7df8b 26656 "type" : "integer",
8dd66e12 26657 "typetext" : "<integer> (100 - 999999999)"
56122987 26658 }
44660702 26659 }
56122987 26660 },
7aacca6f
DM
26661 "permissions" : {
26662 "check" : [
26663 "perm",
26664 "/vms/{vmid}",
26665 [
26666 "VM.Snapshot"
26667 ]
26668 ]
44660702
DM
26669 },
26670 "protected" : 1,
26671 "proxyto" : "node",
26672 "returns" : {
26673 "type" : "null"
7aacca6f 26674 }
56122987
DM
26675 }
26676 },
44660702 26677 "leaf" : 1,
7aacca6f 26678 "path" : "/nodes/{node}/qemu/{vmid}/snapshot/{snapname}/config",
44660702 26679 "text" : "config"
56122987
DM
26680 },
26681 {
56122987
DM
26682 "info" : {
26683 "POST" : {
e9cd3bd4 26684 "allowtoken" : 1,
44660702 26685 "description" : "Rollback VM state to specified snapshot.",
7aacca6f 26686 "method" : "POST",
44660702 26687 "name" : "rollback",
56122987
DM
26688 "parameters" : {
26689 "additionalProperties" : 0,
26690 "properties" : {
44660702
DM
26691 "node" : {
26692 "description" : "The cluster node name.",
26693 "format" : "pve-node",
013dc89f
DM
26694 "type" : "string",
26695 "typetext" : "<string>"
44660702 26696 },
56122987 26697 "snapname" : {
44660702 26698 "description" : "The name of the snapshot.",
56122987
DM
26699 "format" : "pve-configid",
26700 "maxLength" : 40,
013dc89f
DM
26701 "type" : "string",
26702 "typetext" : "<string>"
7aacca6f 26703 },
4e7f60c2
TL
26704 "start" : {
26705 "default" : 0,
9d2e98ed 26706 "description" : "Whether the VM should get started after rolling back successfully. (Note: VMs will be automatically started if the snapshot includes RAM.)",
4e7f60c2
TL
26707 "optional" : 1,
26708 "type" : "boolean",
26709 "typetext" : "<boolean>"
26710 },
56122987 26711 "vmid" : {
7aacca6f 26712 "description" : "The (unique) ID of the VM.",
44660702 26713 "format" : "pve-vmid",
8dd66e12
TL
26714 "maximum" : 999999999,
26715 "minimum" : 100,
4bd7df8b 26716 "type" : "integer",
8dd66e12 26717 "typetext" : "<integer> (100 - 999999999)"
56122987
DM
26718 }
26719 }
26720 },
7aacca6f 26721 "permissions" : {
56122987
DM
26722 "check" : [
26723 "perm",
26724 "/vms/{vmid}",
26725 [
2489d6df
WB
26726 "VM.Snapshot",
26727 "VM.Snapshot.Rollback"
26728 ],
26729 "any",
26730 1
56122987
DM
26731 ]
26732 },
44660702 26733 "protected" : 1,
7aacca6f 26734 "proxyto" : "node",
44660702
DM
26735 "returns" : {
26736 "description" : "the task ID.",
26737 "type" : "string"
26738 }
56122987
DM
26739 }
26740 },
44660702
DM
26741 "leaf" : 1,
26742 "path" : "/nodes/{node}/qemu/{vmid}/snapshot/{snapname}/rollback",
7aacca6f 26743 "text" : "rollback"
56122987 26744 }
44660702
DM
26745 ],
26746 "info" : {
26747 "DELETE" : {
e9cd3bd4 26748 "allowtoken" : 1,
44660702
DM
26749 "description" : "Delete a VM snapshot.",
26750 "method" : "DELETE",
26751 "name" : "delsnapshot",
26752 "parameters" : {
26753 "additionalProperties" : 0,
26754 "properties" : {
26755 "force" : {
26756 "description" : "For removal from config file, even if removing disk snapshots fails.",
26757 "optional" : 1,
013dc89f
DM
26758 "type" : "boolean",
26759 "typetext" : "<boolean>"
44660702
DM
26760 },
26761 "node" : {
26762 "description" : "The cluster node name.",
26763 "format" : "pve-node",
013dc89f
DM
26764 "type" : "string",
26765 "typetext" : "<string>"
44660702
DM
26766 },
26767 "snapname" : {
26768 "description" : "The name of the snapshot.",
26769 "format" : "pve-configid",
26770 "maxLength" : 40,
013dc89f
DM
26771 "type" : "string",
26772 "typetext" : "<string>"
44660702
DM
26773 },
26774 "vmid" : {
26775 "description" : "The (unique) ID of the VM.",
26776 "format" : "pve-vmid",
8dd66e12
TL
26777 "maximum" : 999999999,
26778 "minimum" : 100,
4bd7df8b 26779 "type" : "integer",
8dd66e12 26780 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
26781 }
26782 }
26783 },
26784 "permissions" : {
26785 "check" : [
26786 "perm",
26787 "/vms/{vmid}",
26788 [
26789 "VM.Snapshot"
26790 ]
26791 ]
26792 },
26793 "protected" : 1,
26794 "proxyto" : "node",
26795 "returns" : {
26796 "description" : "the task ID.",
26797 "type" : "string"
26798 }
26799 },
26800 "GET" : {
e9cd3bd4 26801 "allowtoken" : 1,
44660702
DM
26802 "description" : "",
26803 "method" : "GET",
26804 "name" : "snapshot_cmd_idx",
26805 "parameters" : {
26806 "additionalProperties" : 0,
26807 "properties" : {
26808 "node" : {
26809 "description" : "The cluster node name.",
26810 "format" : "pve-node",
013dc89f
DM
26811 "type" : "string",
26812 "typetext" : "<string>"
44660702
DM
26813 },
26814 "snapname" : {
26815 "description" : "The name of the snapshot.",
26816 "format" : "pve-configid",
26817 "maxLength" : 40,
013dc89f
DM
26818 "type" : "string",
26819 "typetext" : "<string>"
44660702
DM
26820 },
26821 "vmid" : {
26822 "description" : "The (unique) ID of the VM.",
26823 "format" : "pve-vmid",
8dd66e12
TL
26824 "maximum" : 999999999,
26825 "minimum" : 100,
4bd7df8b 26826 "type" : "integer",
8dd66e12 26827 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
26828 }
26829 }
26830 },
26831 "permissions" : {
26832 "user" : "all"
26833 },
26834 "returns" : {
26835 "items" : {
26836 "properties" : {},
26837 "type" : "object"
26838 },
26839 "links" : [
26840 {
26841 "href" : "{cmd}",
26842 "rel" : "child"
26843 }
26844 ],
26845 "type" : "array"
26846 }
26847 }
26848 },
26849 "leaf" : 0,
26850 "path" : "/nodes/{node}/qemu/{vmid}/snapshot/{snapname}",
26851 "text" : "{snapname}"
56122987
DM
26852 }
26853 ],
44660702
DM
26854 "info" : {
26855 "GET" : {
e9cd3bd4 26856 "allowtoken" : 1,
44660702
DM
26857 "description" : "List all snapshots.",
26858 "method" : "GET",
26859 "name" : "snapshot_list",
26860 "parameters" : {
26861 "additionalProperties" : 0,
26862 "properties" : {
26863 "node" : {
26864 "description" : "The cluster node name.",
26865 "format" : "pve-node",
013dc89f
DM
26866 "type" : "string",
26867 "typetext" : "<string>"
44660702
DM
26868 },
26869 "vmid" : {
26870 "description" : "The (unique) ID of the VM.",
26871 "format" : "pve-vmid",
8dd66e12
TL
26872 "maximum" : 999999999,
26873 "minimum" : 100,
4bd7df8b 26874 "type" : "integer",
8dd66e12 26875 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
26876 }
26877 }
26878 },
26879 "permissions" : {
26880 "check" : [
26881 "perm",
26882 "/vms/{vmid}",
26883 [
26884 "VM.Audit"
26885 ]
26886 ]
26887 },
26888 "protected" : 1,
26889 "proxyto" : "node",
26890 "returns" : {
26891 "items" : {
4d47f125
TL
26892 "properties" : {
26893 "description" : {
26894 "description" : "Snapshot description.",
26895 "type" : "string"
26896 },
26897 "name" : {
26898 "description" : "Snapshot identifier. Value 'current' identifies the current VM.",
26899 "type" : "string"
26900 },
26901 "parent" : {
26902 "description" : "Parent snapshot identifier.",
26903 "optional" : 1,
26904 "type" : "string"
26905 },
26906 "snaptime" : {
26907 "description" : "Snapshot creation time",
26908 "optional" : 1,
26909 "renderer" : "timestamp",
26910 "type" : "integer"
26911 },
26912 "vmstate" : {
26913 "description" : "Snapshot includes RAM.",
26914 "optional" : 1,
26915 "type" : "boolean"
26916 }
26917 },
44660702
DM
26918 "type" : "object"
26919 },
26920 "links" : [
26921 {
26922 "href" : "{name}",
26923 "rel" : "child"
26924 }
26925 ],
26926 "type" : "array"
26927 }
26928 },
26929 "POST" : {
e9cd3bd4 26930 "allowtoken" : 1,
44660702
DM
26931 "description" : "Snapshot a VM.",
26932 "method" : "POST",
26933 "name" : "snapshot",
26934 "parameters" : {
26935 "additionalProperties" : 0,
26936 "properties" : {
26937 "description" : {
26938 "description" : "A textual description or comment.",
26939 "optional" : 1,
013dc89f
DM
26940 "type" : "string",
26941 "typetext" : "<string>"
44660702
DM
26942 },
26943 "node" : {
26944 "description" : "The cluster node name.",
26945 "format" : "pve-node",
013dc89f
DM
26946 "type" : "string",
26947 "typetext" : "<string>"
44660702
DM
26948 },
26949 "snapname" : {
26950 "description" : "The name of the snapshot.",
26951 "format" : "pve-configid",
26952 "maxLength" : 40,
013dc89f
DM
26953 "type" : "string",
26954 "typetext" : "<string>"
44660702
DM
26955 },
26956 "vmid" : {
26957 "description" : "The (unique) ID of the VM.",
26958 "format" : "pve-vmid",
8dd66e12
TL
26959 "maximum" : 999999999,
26960 "minimum" : 100,
4bd7df8b 26961 "type" : "integer",
8dd66e12 26962 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
26963 },
26964 "vmstate" : {
26965 "description" : "Save the vmstate",
26966 "optional" : 1,
013dc89f
DM
26967 "type" : "boolean",
26968 "typetext" : "<boolean>"
44660702
DM
26969 }
26970 }
26971 },
26972 "permissions" : {
26973 "check" : [
26974 "perm",
26975 "/vms/{vmid}",
26976 [
26977 "VM.Snapshot"
26978 ]
26979 ]
26980 },
26981 "protected" : 1,
26982 "proxyto" : "node",
26983 "returns" : {
26984 "description" : "the task ID.",
26985 "type" : "string"
26986 }
26987 }
26988 },
26989 "leaf" : 0,
26990 "path" : "/nodes/{node}/qemu/{vmid}/snapshot",
7aacca6f 26991 "text" : "snapshot"
56122987
DM
26992 },
26993 {
56122987
DM
26994 "info" : {
26995 "POST" : {
e9cd3bd4 26996 "allowtoken" : 1,
44660702
DM
26997 "description" : "Create a Template.",
26998 "method" : "POST",
56122987 26999 "name" : "template",
56122987 27000 "parameters" : {
7aacca6f 27001 "additionalProperties" : 0,
56122987 27002 "properties" : {
56122987 27003 "disk" : {
56122987
DM
27004 "description" : "If you want to convert only 1 disk to base image.",
27005 "enum" : [
27006 "ide0",
27007 "ide1",
27008 "ide2",
27009 "ide3",
27010 "scsi0",
27011 "scsi1",
27012 "scsi2",
27013 "scsi3",
27014 "scsi4",
27015 "scsi5",
27016 "scsi6",
27017 "scsi7",
27018 "scsi8",
27019 "scsi9",
27020 "scsi10",
27021 "scsi11",
27022 "scsi12",
27023 "scsi13",
e9cd3bd4
TL
27024 "scsi14",
27025 "scsi15",
27026 "scsi16",
27027 "scsi17",
27028 "scsi18",
27029 "scsi19",
27030 "scsi20",
27031 "scsi21",
27032 "scsi22",
27033 "scsi23",
27034 "scsi24",
27035 "scsi25",
27036 "scsi26",
27037 "scsi27",
27038 "scsi28",
27039 "scsi29",
27040 "scsi30",
56122987
DM
27041 "virtio0",
27042 "virtio1",
27043 "virtio2",
27044 "virtio3",
27045 "virtio4",
27046 "virtio5",
27047 "virtio6",
27048 "virtio7",
27049 "virtio8",
27050 "virtio9",
27051 "virtio10",
27052 "virtio11",
27053 "virtio12",
27054 "virtio13",
27055 "virtio14",
27056 "virtio15",
27057 "sata0",
27058 "sata1",
27059 "sata2",
27060 "sata3",
27061 "sata4",
2c0dde61 27062 "sata5",
5370fa8c
TL
27063 "efidisk0",
27064 "tpmstate0"
56122987 27065 ],
7aacca6f 27066 "optional" : 1,
56122987
DM
27067 "type" : "string"
27068 },
44660702
DM
27069 "node" : {
27070 "description" : "The cluster node name.",
27071 "format" : "pve-node",
013dc89f
DM
27072 "type" : "string",
27073 "typetext" : "<string>"
44660702
DM
27074 },
27075 "vmid" : {
27076 "description" : "The (unique) ID of the VM.",
7aacca6f 27077 "format" : "pve-vmid",
8dd66e12
TL
27078 "maximum" : 999999999,
27079 "minimum" : 100,
4bd7df8b 27080 "type" : "integer",
8dd66e12 27081 "typetext" : "<integer> (100 - 999999999)"
56122987 27082 }
7aacca6f 27083 }
56122987 27084 },
7aacca6f
DM
27085 "permissions" : {
27086 "check" : [
27087 "perm",
27088 "/vms/{vmid}",
27089 [
27090 "VM.Allocate"
27091 ]
27092 ],
27093 "description" : "You need 'VM.Allocate' permissions on /vms/{vmid}"
27094 },
44660702 27095 "protected" : 1,
7aacca6f 27096 "proxyto" : "node",
7aacca6f 27097 "returns" : {
5370fa8c
TL
27098 "description" : "the task ID.",
27099 "type" : "string"
7aacca6f 27100 }
56122987
DM
27101 }
27102 },
44660702 27103 "leaf" : 1,
7aacca6f 27104 "path" : "/nodes/{node}/qemu/{vmid}/template",
44660702 27105 "text" : "template"
81a3384d
TL
27106 },
27107 {
27108 "info" : {
27109 "POST" : {
27110 "allowtoken" : 1,
27111 "description" : "Migration tunnel endpoint - only for internal use by VM migration.",
27112 "method" : "POST",
27113 "name" : "mtunnel",
27114 "parameters" : {
27115 "additionalProperties" : 0,
27116 "properties" : {
27117 "bridges" : {
27118 "description" : "List of network bridges to check availability. Will be checked again for actually used bridges during migration.",
27119 "format" : "pve-bridge-id-list",
27120 "optional" : 1,
27121 "type" : "string",
27122 "typetext" : "<string>"
27123 },
27124 "node" : {
27125 "description" : "The cluster node name.",
27126 "format" : "pve-node",
27127 "type" : "string",
27128 "typetext" : "<string>"
27129 },
27130 "storages" : {
27131 "description" : "List of storages to check permission and availability. Will be checked again for all actually used storages during migration.",
27132 "format" : "pve-storage-id-list",
27133 "optional" : 1,
27134 "type" : "string",
27135 "typetext" : "<string>"
27136 },
27137 "vmid" : {
27138 "description" : "The (unique) ID of the VM.",
27139 "format" : "pve-vmid",
8dd66e12
TL
27140 "maximum" : 999999999,
27141 "minimum" : 100,
81a3384d 27142 "type" : "integer",
8dd66e12 27143 "typetext" : "<integer> (100 - 999999999)"
81a3384d
TL
27144 }
27145 }
27146 },
27147 "permissions" : {
27148 "check" : [
27149 "and",
27150 [
27151 "perm",
27152 "/vms/{vmid}",
27153 [
27154 "VM.Allocate"
27155 ]
27156 ],
27157 [
27158 "perm",
27159 "/",
27160 [
27161 "Sys.Incoming"
27162 ]
27163 ]
27164 ],
27165 "description" : "You need 'VM.Allocate' permissions on '/vms/{vmid}' and Sys.Incoming on '/'. Further permission checks happen during the actual migration."
27166 },
27167 "protected" : 1,
27168 "returns" : {
27169 "additionalProperties" : 0,
27170 "properties" : {
27171 "socket" : {
27172 "type" : "string"
27173 },
27174 "ticket" : {
27175 "type" : "string"
27176 },
27177 "upid" : {
27178 "type" : "string"
27179 }
27180 }
27181 }
27182 }
27183 },
27184 "leaf" : 1,
27185 "path" : "/nodes/{node}/qemu/{vmid}/mtunnel",
27186 "text" : "mtunnel"
27187 },
27188 {
27189 "info" : {
27190 "GET" : {
27191 "allowtoken" : 1,
27192 "description" : "Migration tunnel endpoint for websocket upgrade - only for internal use by VM migration.",
27193 "method" : "GET",
27194 "name" : "mtunnelwebsocket",
27195 "parameters" : {
27196 "additionalProperties" : 0,
27197 "properties" : {
27198 "node" : {
27199 "description" : "The cluster node name.",
27200 "format" : "pve-node",
27201 "type" : "string",
27202 "typetext" : "<string>"
27203 },
27204 "socket" : {
27205 "description" : "unix socket to forward to",
27206 "type" : "string",
27207 "typetext" : "<string>"
27208 },
27209 "ticket" : {
27210 "description" : "ticket return by initial 'mtunnel' API call, or retrieved via 'ticket' tunnel command",
27211 "type" : "string",
27212 "typetext" : "<string>"
27213 },
27214 "vmid" : {
27215 "description" : "The (unique) ID of the VM.",
27216 "format" : "pve-vmid",
8dd66e12
TL
27217 "maximum" : 999999999,
27218 "minimum" : 100,
81a3384d 27219 "type" : "integer",
8dd66e12 27220 "typetext" : "<integer> (100 - 999999999)"
81a3384d
TL
27221 }
27222 }
27223 },
27224 "permissions" : {
27225 "description" : "You need to pass a ticket valid for the selected socket. Tickets can be created via the mtunnel API call, which will check permissions accordingly.",
27226 "user" : "all"
27227 },
27228 "returns" : {
27229 "properties" : {
27230 "port" : {
27231 "optional" : 1,
27232 "type" : "string"
27233 },
27234 "socket" : {
27235 "optional" : 1,
27236 "type" : "string"
27237 }
27238 },
27239 "type" : "object"
27240 }
27241 }
27242 },
27243 "leaf" : 1,
27244 "path" : "/nodes/{node}/qemu/{vmid}/mtunnelwebsocket",
27245 "text" : "mtunnelwebsocket"
56122987
DM
27246 }
27247 ],
7aacca6f 27248 "info" : {
44660702 27249 "DELETE" : {
e9cd3bd4 27250 "allowtoken" : 1,
d2656385 27251 "description" : "Destroy the VM and all used/owned volumes. Removes any VM specific permissions and firewall rules",
44660702
DM
27252 "method" : "DELETE",
27253 "name" : "destroy_vm",
7aacca6f 27254 "parameters" : {
44660702 27255 "additionalProperties" : 0,
7aacca6f 27256 "properties" : {
d2656385 27257 "destroy-unreferenced-disks" : {
8f4d9c87 27258 "default" : 0,
d2656385
TL
27259 "description" : "If set, destroy additionally all disks not referenced in the config but with a matching VMID from all enabled storages.",
27260 "optional" : 1,
27261 "type" : "boolean",
27262 "typetext" : "<boolean>"
27263 },
7aacca6f 27264 "node" : {
44660702 27265 "description" : "The cluster node name.",
7aacca6f 27266 "format" : "pve-node",
013dc89f
DM
27267 "type" : "string",
27268 "typetext" : "<string>"
44660702 27269 },
1c532546 27270 "purge" : {
d2656385 27271 "description" : "Remove VMID from configurations, like backup & replication jobs and HA.",
1c532546
TL
27272 "optional" : 1,
27273 "type" : "boolean",
27274 "typetext" : "<boolean>"
27275 },
44660702
DM
27276 "skiplock" : {
27277 "description" : "Ignore locks - only root is allowed to use this option.",
27278 "optional" : 1,
013dc89f
DM
27279 "type" : "boolean",
27280 "typetext" : "<boolean>"
7aacca6f
DM
27281 },
27282 "vmid" : {
44660702 27283 "description" : "The (unique) ID of the VM.",
7aacca6f 27284 "format" : "pve-vmid",
8dd66e12
TL
27285 "maximum" : 999999999,
27286 "minimum" : 100,
4bd7df8b 27287 "type" : "integer",
8dd66e12 27288 "typetext" : "<integer> (100 - 999999999)"
7aacca6f 27289 }
44660702 27290 }
7aacca6f 27291 },
7aacca6f
DM
27292 "permissions" : {
27293 "check" : [
27294 "perm",
27295 "/vms/{vmid}",
27296 [
27297 "VM.Allocate"
27298 ]
27299 ]
27300 },
44660702
DM
27301 "protected" : 1,
27302 "proxyto" : "node",
7aacca6f
DM
27303 "returns" : {
27304 "type" : "string"
44660702
DM
27305 }
27306 },
27307 "GET" : {
e9cd3bd4 27308 "allowtoken" : 1,
44660702
DM
27309 "description" : "Directory index",
27310 "method" : "GET",
27311 "name" : "vmdiridx",
7aacca6f 27312 "parameters" : {
44660702 27313 "additionalProperties" : 0,
7aacca6f 27314 "properties" : {
7aacca6f 27315 "node" : {
7aacca6f 27316 "description" : "The cluster node name.",
44660702 27317 "format" : "pve-node",
013dc89f
DM
27318 "type" : "string",
27319 "typetext" : "<string>"
44660702
DM
27320 },
27321 "vmid" : {
27322 "description" : "The (unique) ID of the VM.",
27323 "format" : "pve-vmid",
8dd66e12
TL
27324 "maximum" : 999999999,
27325 "minimum" : 100,
4bd7df8b 27326 "type" : "integer",
8dd66e12 27327 "typetext" : "<integer> (100 - 999999999)"
7aacca6f 27328 }
44660702 27329 }
7aacca6f 27330 },
44660702
DM
27331 "permissions" : {
27332 "user" : "all"
27333 },
27334 "proxyto" : "node",
27335 "returns" : {
27336 "items" : {
27337 "properties" : {
27338 "subdir" : {
27339 "type" : "string"
27340 }
27341 },
27342 "type" : "object"
27343 },
27344 "links" : [
27345 {
27346 "href" : "{subdir}",
27347 "rel" : "child"
27348 }
27349 ],
27350 "type" : "array"
27351 }
7aacca6f 27352 }
44660702
DM
27353 },
27354 "leaf" : 0,
27355 "path" : "/nodes/{node}/qemu/{vmid}",
27356 "text" : "{vmid}"
56122987
DM
27357 }
27358 ],
27359 "info" : {
44660702 27360 "GET" : {
e9cd3bd4 27361 "allowtoken" : 1,
44660702
DM
27362 "description" : "Virtual machine index (per node).",
27363 "method" : "GET",
27364 "name" : "vmlist",
56122987 27365 "parameters" : {
44660702 27366 "additionalProperties" : 0,
56122987 27367 "properties" : {
44660702
DM
27368 "full" : {
27369 "description" : "Determine the full status of active VMs.",
56122987 27370 "optional" : 1,
013dc89f
DM
27371 "type" : "boolean",
27372 "typetext" : "<boolean>"
56122987 27373 },
44660702
DM
27374 "node" : {
27375 "description" : "The cluster node name.",
27376 "format" : "pve-node",
013dc89f
DM
27377 "type" : "string",
27378 "typetext" : "<string>"
44660702
DM
27379 }
27380 }
27381 },
27382 "permissions" : {
27383 "description" : "Only list VMs where you have VM.Audit permissons on /vms/<vmid>.",
27384 "user" : "all"
27385 },
27386 "protected" : 1,
27387 "proxyto" : "node",
27388 "returns" : {
27389 "items" : {
4d47f125
TL
27390 "properties" : {
27391 "cpus" : {
27392 "description" : "Maximum usable CPUs.",
27393 "optional" : 1,
27394 "type" : "number"
27395 },
95895385
TL
27396 "lock" : {
27397 "description" : "The current config lock, if any.",
27398 "optional" : 1,
27399 "type" : "string"
27400 },
4d47f125
TL
27401 "maxdisk" : {
27402 "description" : "Root disk size in bytes.",
27403 "optional" : 1,
27404 "renderer" : "bytes",
27405 "type" : "integer"
27406 },
27407 "maxmem" : {
27408 "description" : "Maximum memory in bytes.",
27409 "optional" : 1,
27410 "renderer" : "bytes",
27411 "type" : "integer"
27412 },
27413 "name" : {
27414 "description" : "VM name.",
27415 "optional" : 1,
27416 "type" : "string"
27417 },
27418 "pid" : {
27419 "description" : "PID of running qemu process.",
27420 "optional" : 1,
27421 "type" : "integer"
27422 },
27423 "qmpstatus" : {
499c9b7f 27424 "description" : "VM run state from the 'query-status' QMP monitor command.",
4d47f125
TL
27425 "optional" : 1,
27426 "type" : "string"
27427 },
d2656385
TL
27428 "running-machine" : {
27429 "description" : "The currently running machine type (if running).",
27430 "optional" : 1,
27431 "type" : "string"
27432 },
27433 "running-qemu" : {
27434 "description" : "The currently running QEMU version (if running).",
27435 "optional" : 1,
27436 "type" : "string"
27437 },
4d47f125 27438 "status" : {
9d2e98ed 27439 "description" : "QEMU process status.",
4d47f125
TL
27440 "enum" : [
27441 "stopped",
27442 "running"
27443 ],
27444 "type" : "string"
27445 },
5c1699e5
TL
27446 "tags" : {
27447 "description" : "The current configured tags, if any",
27448 "optional" : 1,
27449 "type" : "string"
27450 },
4d47f125
TL
27451 "uptime" : {
27452 "description" : "Uptime.",
27453 "optional" : 1,
27454 "renderer" : "duration",
27455 "type" : "integer"
27456 },
27457 "vmid" : {
27458 "description" : "The (unique) ID of the VM.",
27459 "format" : "pve-vmid",
8dd66e12
TL
27460 "maximum" : 999999999,
27461 "minimum" : 100,
4d47f125
TL
27462 "type" : "integer"
27463 }
27464 },
44660702
DM
27465 "type" : "object"
27466 },
27467 "links" : [
27468 {
27469 "href" : "{vmid}",
27470 "rel" : "child"
27471 }
27472 ],
27473 "type" : "array"
27474 }
27475 },
27476 "POST" : {
e9cd3bd4 27477 "allowtoken" : 1,
44660702
DM
27478 "description" : "Create or restore a virtual machine.",
27479 "method" : "POST",
27480 "name" : "create_vm",
27481 "parameters" : {
27482 "additionalProperties" : 0,
27483 "properties" : {
7aacca6f 27484 "acpi" : {
7aacca6f 27485 "default" : 1,
44660702 27486 "description" : "Enable/disable ACPI.",
56122987 27487 "optional" : 1,
013dc89f
DM
27488 "type" : "boolean",
27489 "typetext" : "<boolean>"
56122987 27490 },
4e7f60c2 27491 "affinity" : {
81a3384d 27492 "description" : "List of host cores used to execute guest processes, for example: 0,5,8-11",
4e7f60c2
TL
27493 "format" : "pve-cpuset",
27494 "optional" : 1,
27495 "type" : "string",
27496 "typetext" : "<string>"
27497 },
44660702 27498 "agent" : {
9d2e98ed 27499 "description" : "Enable/disable communication with the QEMU Guest Agent and its properties.",
4d47f125
TL
27500 "format" : {
27501 "enabled" : {
27502 "default" : 0,
27503 "default_key" : 1,
9d2e98ed
TL
27504 "description" : "Enable/disable communication with a QEMU Guest Agent (QGA) running in the VM.",
27505 "type" : "boolean"
27506 },
27507 "freeze-fs-on-backup" : {
27508 "default" : 1,
27509 "description" : "Freeze/thaw guest filesystems on backup for consistency.",
27510 "optional" : 1,
4d47f125
TL
27511 "type" : "boolean"
27512 },
27513 "fstrim_cloned_disks" : {
27514 "default" : 0,
d2656385 27515 "description" : "Run fstrim after moving a disk or migrating the VM.",
4d47f125
TL
27516 "optional" : 1,
27517 "type" : "boolean"
5c1699e5
TL
27518 },
27519 "type" : {
27520 "default" : "virtio",
27521 "description" : "Select the agent type",
27522 "enum" : [
27523 "virtio",
27524 "isa"
27525 ],
27526 "optional" : 1,
27527 "type" : "string"
4d47f125
TL
27528 }
27529 },
7aacca6f 27530 "optional" : 1,
4d47f125 27531 "type" : "string",
9d2e98ed 27532 "typetext" : "[enabled=]<1|0> [,freeze-fs-on-backup=<1|0>] [,fstrim_cloned_disks=<1|0>] [,type=<virtio|isa>]"
56122987 27533 },
e2d681b3
TL
27534 "arch" : {
27535 "description" : "Virtual processor architecture. Defaults to the host.",
27536 "enum" : [
27537 "x86_64",
27538 "aarch64"
27539 ],
27540 "optional" : 1,
27541 "type" : "string"
27542 },
44660702 27543 "archive" : {
c5aa7e14 27544 "description" : "The backup archive. Either the file system path to a .tar or .vma file (use '-' to pipe data from stdin) or a proxmox storage backup volume identifier.",
44660702 27545 "maxLength" : 255,
56122987 27546 "optional" : 1,
013dc89f
DM
27547 "type" : "string",
27548 "typetext" : "<string>"
56122987 27549 },
44660702 27550 "args" : {
c2993fe5 27551 "description" : "Arbitrary arguments passed to kvm.",
56122987 27552 "optional" : 1,
c2993fe5 27553 "type" : "string",
013dc89f 27554 "typetext" : "<string>",
159464a9 27555 "verbose_description" : "Arbitrary arguments passed to kvm, for example:\n\nargs: -no-reboot -smbios 'type=0,vendor=FOO'\n\nNOTE: this option is for experts only.\n"
56122987 27556 },
1c532546
TL
27557 "audio0" : {
27558 "description" : "Configure a audio device, useful in combination with QXL/Spice.",
27559 "format" : {
27560 "device" : {
27561 "description" : "Configure an audio device.",
27562 "enum" : [
27563 "ich9-intel-hda",
27564 "intel-hda",
27565 "AC97"
27566 ],
27567 "type" : "string"
27568 },
27569 "driver" : {
27570 "default" : "spice",
27571 "description" : "Driver backend for the audio device.",
27572 "enum" : [
d2656385
TL
27573 "spice",
27574 "none"
1c532546
TL
27575 ],
27576 "optional" : 1,
27577 "type" : "string"
27578 }
27579 },
27580 "optional" : 1,
27581 "type" : "string",
d2656385 27582 "typetext" : "device=<ich9-intel-hda|intel-hda|AC97> [,driver=<spice|none>]"
1c532546 27583 },
44660702 27584 "autostart" : {
7aacca6f 27585 "default" : 0,
44660702
DM
27586 "description" : "Automatic restart after crash (currently ignored).",
27587 "optional" : 1,
013dc89f
DM
27588 "type" : "boolean",
27589 "typetext" : "<boolean>"
7aacca6f 27590 },
44660702 27591 "balloon" : {
9d2e98ed 27592 "description" : "Amount of target RAM for the VM in MiB. Using zero disables the ballon driver.",
44660702 27593 "minimum" : 0,
56122987 27594 "optional" : 1,
4bd7df8b 27595 "type" : "integer",
013dc89f 27596 "typetext" : "<integer> (0 - N)"
56122987 27597 },
44660702
DM
27598 "bios" : {
27599 "default" : "seabios",
27600 "description" : "Select BIOS implementation.",
27601 "enum" : [
27602 "seabios",
27603 "ovmf"
27604 ],
56122987 27605 "optional" : 1,
44660702 27606 "type" : "string"
56122987 27607 },
44660702 27608 "boot" : {
5370fa8c 27609 "description" : "Specify guest boot order. Use the 'order=' sub-property as usage with no key or 'legacy=' is deprecated.",
4772952b 27610 "format" : "pve-qm-boot",
56122987 27611 "optional" : 1,
4772952b
TL
27612 "type" : "string",
27613 "typetext" : "[[legacy=]<[acdn]{1,4}>] [,order=<device[;device...]>]"
56122987 27614 },
7aacca6f 27615 "bootdisk" : {
4772952b 27616 "description" : "Enable booting from specified disk. Deprecated: Use 'boot: order=foo;bar' instead.",
44660702
DM
27617 "format" : "pve-qm-bootdisk",
27618 "optional" : 1,
7aacca6f 27619 "pattern" : "(ide|sata|scsi|virtio)\\d+",
44660702
DM
27620 "type" : "string"
27621 },
27a7acb2 27622 "bwlimit" : {
95895385
TL
27623 "default" : "restore limit from datacenter or storage config",
27624 "description" : "Override I/O bandwidth limit (in KiB/s).",
27a7acb2
DM
27625 "minimum" : "0",
27626 "optional" : 1,
27627 "type" : "integer",
27628 "typetext" : "<integer> (0 - N)"
27629 },
44660702
DM
27630 "cdrom" : {
27631 "description" : "This is an alias for option -ide2",
de0983cb 27632 "format" : "pve-qm-ide",
56122987 27633 "optional" : 1,
44660702 27634 "type" : "string",
013dc89f 27635 "typetext" : "<volume>"
56122987 27636 },
95895385
TL
27637 "cicustom" : {
27638 "description" : "cloud-init: Specify custom files to replace the automatically generated ones at start.",
27639 "format" : "pve-qm-cicustom",
27640 "optional" : 1,
27641 "type" : "string",
5370fa8c 27642 "typetext" : "[meta=<volume>] [,network=<volume>] [,user=<volume>] [,vendor=<volume>]"
95895385 27643 },
27a7acb2
DM
27644 "cipassword" : {
27645 "description" : "cloud-init: Password to assign the user. Using this is generally not recommended. Use ssh keys instead. Also note that older cloud-init versions do not support hashed passwords.",
27646 "optional" : 1,
27647 "type" : "string",
27648 "typetext" : "<string>"
27649 },
27650 "citype" : {
27651 "description" : "Specifies the cloud-init configuration format. The default depends on the configured operating system type (`ostype`. We use the `nocloud` format for Linux, and `configdrive2` for windows.",
27652 "enum" : [
27653 "configdrive2",
d2656385
TL
27654 "nocloud",
27655 "opennebula"
27a7acb2
DM
27656 ],
27657 "optional" : 1,
27658 "type" : "string"
27659 },
159464a9 27660 "ciupgrade" : {
c8eee6ff 27661 "default" : 1,
159464a9
TL
27662 "description" : "cloud-init: do an automatic package upgrade after the first boot.",
27663 "optional" : 1,
27664 "type" : "boolean",
27665 "typetext" : "<boolean>"
27666 },
27a7acb2
DM
27667 "ciuser" : {
27668 "description" : "cloud-init: User name to change ssh keys and password for instead of the image's configured default user.",
27669 "optional" : 1,
27670 "type" : "string",
27671 "typetext" : "<string>"
27672 },
44660702
DM
27673 "cores" : {
27674 "default" : 1,
27675 "description" : "The number of cores per socket.",
7aacca6f 27676 "minimum" : 1,
44660702 27677 "optional" : 1,
4bd7df8b 27678 "type" : "integer",
013dc89f 27679 "typetext" : "<integer> (1 - N)"
7aacca6f 27680 },
44660702
DM
27681 "cpu" : {
27682 "description" : "Emulated CPU type.",
c5aa7e14 27683 "format" : "pve-vm-cpu-conf",
56122987 27684 "optional" : 1,
4bd7df8b 27685 "type" : "string",
04d22a9f 27686 "typetext" : "[[cputype=]<string>] [,flags=<+FLAG[;-FLAG...]>] [,hidden=<1|0>] [,hv-vendor-id=<vendor-id>] [,phys-bits=<8-64|host>] [,reported-model=<enum>]"
56122987 27687 },
44660702 27688 "cpulimit" : {
7aacca6f 27689 "default" : 0,
c2993fe5 27690 "description" : "Limit of CPU usage.",
44660702
DM
27691 "maximum" : 128,
27692 "minimum" : 0,
7aacca6f 27693 "optional" : 1,
c2993fe5 27694 "type" : "number",
013dc89f 27695 "typetext" : "<number> (0 - 128)",
c2993fe5 27696 "verbose_description" : "Limit of CPU usage.\n\nNOTE: If the computer has 2 CPUs, it has total of '2' CPU time. Value '0' indicates no CPU limit."
7aacca6f
DM
27697 },
27698 "cpuunits" : {
5370fa8c
TL
27699 "default" : "cgroup v1: 1024, cgroup v2: 100",
27700 "description" : "CPU weight for a VM, will be clamped to [1, 10000] in cgroup v2.",
2489d6df 27701 "maximum" : 262144,
7af2edf9 27702 "minimum" : 1,
44660702 27703 "optional" : 1,
c2993fe5 27704 "type" : "integer",
7af2edf9 27705 "typetext" : "<integer> (1 - 262144)",
2489d6df 27706 "verbose_description" : "CPU weight for a VM. Argument is used in the kernel fair scheduler. The larger the number is, the more CPU time this VM gets. Number is relative to weights of all the other running VMs."
44660702
DM
27707 },
27708 "description" : {
8f4d9c87
TL
27709 "description" : "Description for the VM. Shown in the web-interface VM's summary. This is saved as comment inside the configuration file.",
27710 "maxLength" : 8192,
56122987 27711 "optional" : 1,
013dc89f
DM
27712 "type" : "string",
27713 "typetext" : "<string>"
44660702 27714 },
4d47f125 27715 "efidisk0" : {
9d2e98ed 27716 "description" : "Configure a disk for storing EFI vars. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Note that SIZE_IN_GiB is ignored here and that the default EFI vars are copied to the volume instead. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
4d47f125 27717 "format" : {
5370fa8c
TL
27718 "efitype" : {
27719 "default" : "2m",
bd92b745 27720 "description" : "Size and type of the OVMF EFI vars. '4m' is newer and recommended, and required for Secure Boot. For backwards compatibility, '2m' is used if not otherwise specified. Ignored for VMs with arch=aarch64 (ARM).",
5370fa8c
TL
27721 "enum" : [
27722 "2m",
27723 "4m"
27724 ],
27725 "optional" : 1,
27726 "type" : "string"
27727 },
4d47f125
TL
27728 "file" : {
27729 "default_key" : 1,
27730 "description" : "The drive's backing volume.",
27731 "format" : "pve-volume-id-or-qm-path",
27732 "format_description" : "volume",
27733 "type" : "string"
27734 },
27735 "format" : {
27736 "description" : "The drive's backing file's data format.",
27737 "enum" : [
27738 "raw",
27739 "cow",
27740 "qcow",
27741 "qed",
27742 "qcow2",
27743 "vmdk",
27744 "cloop"
27745 ],
27746 "optional" : 1,
27747 "type" : "string"
27748 },
7af2edf9
TL
27749 "import-from" : {
27750 "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
27751 "format" : "pve-volume-id-or-absolute-path",
27752 "format_description" : "source volume",
27753 "optional" : 1,
27754 "type" : "string"
27755 },
5370fa8c
TL
27756 "pre-enrolled-keys" : {
27757 "default" : 0,
27758 "description" : "Use am EFI vars template with distribution-specific and Microsoft Standard keys enrolled, if used with 'efitype=4m'. Note that this will enable Secure Boot by default, though it can still be turned off from within the VM.",
27759 "optional" : 1,
27760 "type" : "boolean"
27761 },
4d47f125
TL
27762 "size" : {
27763 "description" : "Disk size. This is purely informational and has no effect.",
27764 "format" : "disk-size",
27765 "format_description" : "DiskSize",
27766 "optional" : 1,
27767 "type" : "string"
27768 },
27769 "volume" : {
27770 "alias" : "file"
27771 }
27772 },
27773 "optional" : 1,
27774 "type" : "string",
7af2edf9 27775 "typetext" : "[file=]<volume> [,efitype=<2m|4m>] [,format=<enum>] [,import-from=<source volume>] [,pre-enrolled-keys=<1|0>] [,size=<DiskSize>]"
4d47f125 27776 },
44660702
DM
27777 "force" : {
27778 "description" : "Allow to overwrite existing VM.",
27779 "optional" : 1,
27780 "requires" : "archive",
013dc89f
DM
27781 "type" : "boolean",
27782 "typetext" : "<boolean>"
44660702
DM
27783 },
27784 "freeze" : {
27785 "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).",
27786 "optional" : 1,
013dc89f
DM
27787 "type" : "boolean",
27788 "typetext" : "<boolean>"
44660702 27789 },
5f26e15b
TL
27790 "hookscript" : {
27791 "description" : "Script that will be executed during various steps in the vms lifetime.",
27792 "format" : "pve-volume-id",
27793 "optional" : 1,
27794 "type" : "string",
27795 "typetext" : "<string>"
27796 },
44660702 27797 "hostpci[n]" : {
c2993fe5 27798 "description" : "Map host PCI devices into guest.",
44660702
DM
27799 "format" : "pve-qm-hostpci",
27800 "optional" : 1,
57b78691 27801 "type" : "string",
499c9b7f 27802 "typetext" : "[[host=]<HOSTPCIID[;HOSTPCIID2...]>] [,device-id=<hex id>] [,legacy-igd=<1|0>] [,mapping=<mapping-id>] [,mdev=<string>] [,pcie=<1|0>] [,rombar=<1|0>] [,romfile=<string>] [,sub-device-id=<hex id>] [,sub-vendor-id=<hex id>] [,vendor-id=<hex id>] [,x-vga=<1|0>]",
bb4c8cf8 27803 "verbose_description" : "Map host PCI devices into guest.\n\nNOTE: This option allows direct access to host hardware. So it is no longer\npossible to migrate such machines - use with special care.\n\nCAUTION: Experimental! User reported problems with this option.\n"
44660702
DM
27804 },
27805 "hotplug" : {
27806 "default" : "network,disk,usb",
4e7f60c2 27807 "description" : "Selectively enable hotplug features. This is a comma separated list of hotplug features: 'network', 'disk', 'cpu', 'memory', 'usb' and 'cloudinit'. Use '0' to disable hotplug completely. Using '1' as value is an alias for the default `network,disk,usb`. USB hotplugging is possible for guests with machine version >= 7.1 and ostype l26 or windows > 7.",
44660702
DM
27808 "format" : "pve-hotplug-features",
27809 "optional" : 1,
013dc89f
DM
27810 "type" : "string",
27811 "typetext" : "<string>"
7aacca6f 27812 },
4bd7df8b
DM
27813 "hugepages" : {
27814 "description" : "Enable/disable hugepages memory.",
27815 "enum" : [
27816 "any",
27817 "2",
27818 "1024"
27819 ],
27820 "optional" : 1,
27821 "type" : "string"
27822 },
7aacca6f 27823 "ide[n]" : {
7af2edf9 27824 "description" : "Use volume as IDE hard disk or CD-ROM (n is 0 to 3). Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
56122987 27825 "format" : {
44660702
DM
27826 "aio" : {
27827 "description" : "AIO type to use.",
27828 "enum" : [
27829 "native",
8f4d9c87
TL
27830 "threads",
27831 "io_uring"
44660702 27832 ],
44660702
DM
27833 "optional" : 1,
27834 "type" : "string"
27835 },
27836 "backup" : {
27837 "description" : "Whether the drive should be included when making backups.",
44660702
DM
27838 "optional" : 1,
27839 "type" : "boolean"
27840 },
27841 "bps" : {
de0983cb 27842 "description" : "Maximum r/w speed in bytes per second.",
7aacca6f 27843 "format_description" : "bps",
56122987 27844 "optional" : 1,
44660702 27845 "type" : "integer"
56122987 27846 },
de0983cb
DM
27847 "bps_max_length" : {
27848 "description" : "Maximum length of I/O bursts in seconds.",
27849 "format_description" : "seconds",
27850 "minimum" : 1,
27851 "optional" : 1,
27852 "type" : "integer"
27853 },
44660702 27854 "bps_rd" : {
de0983cb 27855 "description" : "Maximum read speed in bytes per second.",
44660702 27856 "format_description" : "bps",
56122987 27857 "optional" : 1,
44660702 27858 "type" : "integer"
56122987 27859 },
de0983cb 27860 "bps_rd_length" : {
5d9c884c
DM
27861 "alias" : "bps_rd_max_length"
27862 },
27863 "bps_rd_max_length" : {
de0983cb
DM
27864 "description" : "Maximum length of read I/O bursts in seconds.",
27865 "format_description" : "seconds",
27866 "minimum" : 1,
27867 "optional" : 1,
27868 "type" : "integer"
27869 },
44660702 27870 "bps_wr" : {
de0983cb 27871 "description" : "Maximum write speed in bytes per second.",
44660702 27872 "format_description" : "bps",
56122987 27873 "optional" : 1,
44660702 27874 "type" : "integer"
56122987 27875 },
de0983cb 27876 "bps_wr_length" : {
5d9c884c
DM
27877 "alias" : "bps_wr_max_length"
27878 },
27879 "bps_wr_max_length" : {
de0983cb
DM
27880 "description" : "Maximum length of write I/O bursts in seconds.",
27881 "format_description" : "seconds",
27882 "minimum" : 1,
27883 "optional" : 1,
27884 "type" : "integer"
27885 },
44660702
DM
27886 "cache" : {
27887 "description" : "The drive's cache mode",
56122987 27888 "enum" : [
7aacca6f 27889 "none",
44660702
DM
27890 "writethrough",
27891 "writeback",
27892 "unsafe",
27893 "directsync"
56122987 27894 ],
56122987 27895 "optional" : 1,
44660702 27896 "type" : "string"
56122987 27897 },
44660702
DM
27898 "cyls" : {
27899 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
44660702
DM
27900 "optional" : 1,
27901 "type" : "integer"
7aacca6f 27902 },
44660702
DM
27903 "detect_zeroes" : {
27904 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
56122987 27905 "optional" : 1,
44660702 27906 "type" : "boolean"
56122987 27907 },
44660702
DM
27908 "discard" : {
27909 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
27910 "enum" : [
27911 "ignore",
27912 "on"
27913 ],
56122987 27914 "optional" : 1,
44660702 27915 "type" : "string"
56122987 27916 },
7aacca6f 27917 "file" : {
44660702 27918 "default_key" : 1,
7aacca6f 27919 "description" : "The drive's backing volume.",
7aacca6f
DM
27920 "format" : "pve-volume-id-or-qm-path",
27921 "format_description" : "volume",
7aacca6f 27922 "type" : "string"
56122987 27923 },
44660702
DM
27924 "format" : {
27925 "description" : "The drive's backing file's data format.",
56122987 27926 "enum" : [
44660702
DM
27927 "raw",
27928 "cow",
27929 "qcow",
27930 "qed",
27931 "qcow2",
27932 "vmdk",
27933 "cloop"
7aacca6f 27934 ],
7aacca6f
DM
27935 "optional" : 1,
27936 "type" : "string"
56122987 27937 },
44660702
DM
27938 "heads" : {
27939 "description" : "Force the drive's physical geometry to have a specific head count.",
56122987 27940 "optional" : 1,
44660702 27941 "type" : "integer"
56122987 27942 },
7af2edf9
TL
27943 "import-from" : {
27944 "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
27945 "format" : "pve-volume-id-or-absolute-path",
27946 "format_description" : "source volume",
27947 "optional" : 1,
27948 "type" : "string"
27949 },
44660702 27950 "iops" : {
de0983cb 27951 "description" : "Maximum r/w I/O in operations per second.",
7aacca6f 27952 "format_description" : "iops",
56122987 27953 "optional" : 1,
44660702 27954 "type" : "integer"
56122987 27955 },
44660702 27956 "iops_max" : {
de0983cb 27957 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 27958 "format_description" : "iops",
56122987 27959 "optional" : 1,
44660702 27960 "type" : "integer"
56122987 27961 },
de0983cb
DM
27962 "iops_max_length" : {
27963 "description" : "Maximum length of I/O bursts in seconds.",
27964 "format_description" : "seconds",
27965 "minimum" : 1,
27966 "optional" : 1,
27967 "type" : "integer"
27968 },
7aacca6f 27969 "iops_rd" : {
de0983cb 27970 "description" : "Maximum read I/O in operations per second.",
44660702
DM
27971 "format_description" : "iops",
27972 "optional" : 1,
27973 "type" : "integer"
7aacca6f 27974 },
de0983cb 27975 "iops_rd_length" : {
5d9c884c 27976 "alias" : "iops_rd_max_length"
de0983cb 27977 },
44660702 27978 "iops_rd_max" : {
de0983cb 27979 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702 27980 "format_description" : "iops",
56122987 27981 "optional" : 1,
44660702 27982 "type" : "integer"
56122987 27983 },
5d9c884c
DM
27984 "iops_rd_max_length" : {
27985 "description" : "Maximum length of read I/O bursts in seconds.",
27986 "format_description" : "seconds",
27987 "minimum" : 1,
27988 "optional" : 1,
27989 "type" : "integer"
27990 },
44660702 27991 "iops_wr" : {
de0983cb 27992 "description" : "Maximum write I/O in operations per second.",
44660702 27993 "format_description" : "iops",
56122987 27994 "optional" : 1,
44660702 27995 "type" : "integer"
7aacca6f 27996 },
de0983cb 27997 "iops_wr_length" : {
5d9c884c 27998 "alias" : "iops_wr_max_length"
de0983cb 27999 },
44660702 28000 "iops_wr_max" : {
de0983cb 28001 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702 28002 "format_description" : "iops",
7aacca6f 28003 "optional" : 1,
44660702 28004 "type" : "integer"
56122987 28005 },
5d9c884c
DM
28006 "iops_wr_max_length" : {
28007 "description" : "Maximum length of write I/O bursts in seconds.",
28008 "format_description" : "seconds",
28009 "minimum" : 1,
28010 "optional" : 1,
28011 "type" : "integer"
28012 },
44660702 28013 "mbps" : {
de0983cb 28014 "description" : "Maximum r/w speed in megabytes per second.",
44660702 28015 "format_description" : "mbps",
7aacca6f 28016 "optional" : 1,
44660702 28017 "type" : "number"
56122987 28018 },
44660702 28019 "mbps_max" : {
de0983cb 28020 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
7aacca6f 28021 "format_description" : "mbps",
56122987 28022 "optional" : 1,
44660702 28023 "type" : "number"
56122987 28024 },
44660702 28025 "mbps_rd" : {
de0983cb 28026 "description" : "Maximum read speed in megabytes per second.",
44660702 28027 "format_description" : "mbps",
7aacca6f 28028 "optional" : 1,
44660702 28029 "type" : "number"
7aacca6f 28030 },
44660702 28031 "mbps_rd_max" : {
de0983cb 28032 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702 28033 "format_description" : "mbps",
56122987 28034 "optional" : 1,
44660702 28035 "type" : "number"
56122987 28036 },
44660702 28037 "mbps_wr" : {
de0983cb 28038 "description" : "Maximum write speed in megabytes per second.",
44660702 28039 "format_description" : "mbps",
7aacca6f 28040 "optional" : 1,
44660702 28041 "type" : "number"
56122987 28042 },
44660702 28043 "mbps_wr_max" : {
de0983cb 28044 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702 28045 "format_description" : "mbps",
56122987 28046 "optional" : 1,
44660702 28047 "type" : "number"
7aacca6f
DM
28048 },
28049 "media" : {
44660702
DM
28050 "default" : "disk",
28051 "description" : "The drive's media type.",
56122987 28052 "enum" : [
7aacca6f
DM
28053 "cdrom",
28054 "disk"
56122987 28055 ],
56122987 28056 "optional" : 1,
44660702 28057 "type" : "string"
56122987 28058 },
44660702
DM
28059 "model" : {
28060 "description" : "The drive's reported model name, url-encoded, up to 40 bytes long.",
28061 "format" : "urlencoded",
28062 "format_description" : "model",
28063 "maxLength" : 120,
56122987 28064 "optional" : 1,
44660702 28065 "type" : "string"
56122987 28066 },
5d9c884c
DM
28067 "replicate" : {
28068 "default" : 1,
28069 "description" : "Whether the drive should considered for replication jobs.",
28070 "optional" : 1,
28071 "type" : "boolean"
28072 },
7aacca6f 28073 "rerror" : {
7aacca6f
DM
28074 "description" : "Read error action.",
28075 "enum" : [
28076 "ignore",
28077 "report",
28078 "stop"
44660702 28079 ],
44660702
DM
28080 "optional" : 1,
28081 "type" : "string"
56122987 28082 },
44660702
DM
28083 "secs" : {
28084 "description" : "Force the drive's physical geometry to have a specific sector count.",
56122987 28085 "optional" : 1,
44660702
DM
28086 "type" : "integer"
28087 },
28088 "serial" : {
28089 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
28090 "format" : "urlencoded",
28091 "format_description" : "serial",
28092 "maxLength" : 60,
28093 "optional" : 1,
28094 "type" : "string"
28095 },
27a7acb2
DM
28096 "shared" : {
28097 "default" : 0,
28098 "description" : "Mark this locally-managed volume as available on all nodes",
28099 "optional" : 1,
28100 "type" : "boolean",
28101 "verbose_description" : "Mark this locally-managed volume as available on all nodes.\n\nWARNING: This option does not share the volume automatically, it assumes it is shared already!"
28102 },
44660702
DM
28103 "size" : {
28104 "description" : "Disk size. This is purely informational and has no effect.",
28105 "format" : "disk-size",
f004f5b9 28106 "format_description" : "DiskSize",
44660702
DM
28107 "optional" : 1,
28108 "type" : "string"
7aacca6f
DM
28109 },
28110 "snapshot" : {
27a7acb2 28111 "description" : "Controls qemu's snapshot mode feature. If activated, changes made to the disk are temporary and will be discarded when the VM is shutdown.",
7aacca6f 28112 "optional" : 1,
44660702 28113 "type" : "boolean"
7aacca6f 28114 },
25203dc1
NC
28115 "ssd" : {
28116 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
28117 "optional" : 1,
28118 "type" : "boolean"
28119 },
44660702
DM
28120 "trans" : {
28121 "description" : "Force disk geometry bios translation mode.",
28122 "enum" : [
28123 "none",
28124 "lba",
28125 "auto"
28126 ],
7aacca6f 28127 "optional" : 1,
44660702
DM
28128 "type" : "string"
28129 },
28130 "volume" : {
28131 "alias" : "file"
28132 },
28133 "werror" : {
28134 "description" : "Write error action.",
28135 "enum" : [
28136 "enospc",
28137 "ignore",
28138 "report",
28139 "stop"
28140 ],
44660702
DM
28141 "optional" : 1,
28142 "type" : "string"
95895385
TL
28143 },
28144 "wwn" : {
28145 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
28146 "format_description" : "wwn",
28147 "optional" : 1,
28148 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
28149 "type" : "string"
56122987
DM
28150 }
28151 },
56122987 28152 "optional" : 1,
4bd7df8b 28153 "type" : "string",
7af2edf9 28154 "typetext" : "[file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<source volume>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,model=<model>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>]"
27a7acb2
DM
28155 },
28156 "ipconfig[n]" : {
d2656385 28157 "description" : "cloud-init: Specify IP addresses and gateways for the corresponding interface.\n\nIP addresses use CIDR notation, gateways are optional but need an IP of the same type specified.\n\nThe special string 'dhcp' can be used for IP addresses to use DHCP, in which case no explicit\ngateway should be provided.\nFor IPv6 the special string 'auto' can be used to use stateless autoconfiguration. This requires\ncloud-init 19.4 or newer.\n\nIf cloud-init is enabled and neither an IPv4 nor an IPv6 address is specified, it defaults to using\ndhcp on IPv4.\n",
27a7acb2
DM
28158 "format" : "pve-qm-ipconfig",
28159 "optional" : 1,
28160 "type" : "string",
28161 "typetext" : "[gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,ip=<IPv4Format/CIDR>] [,ip6=<IPv6Format/CIDR>]"
56122987 28162 },
95895385
TL
28163 "ivshmem" : {
28164 "description" : "Inter-VM shared memory. Useful for direct communication between VMs, or to the host.",
28165 "format" : {
28166 "name" : {
28167 "description" : "The name of the file. Will be prefixed with 'pve-shm-'. Default is the VMID. Will be deleted when the VM is stopped.",
28168 "format_description" : "string",
28169 "optional" : 1,
28170 "pattern" : "[a-zA-Z0-9\\-]+",
28171 "type" : "string"
28172 },
28173 "size" : {
28174 "description" : "The size of the file in MB.",
28175 "minimum" : 1,
28176 "type" : "integer"
28177 }
28178 },
28179 "optional" : 1,
28180 "type" : "string",
28181 "typetext" : "size=<integer> [,name=<string>]"
28182 },
4772952b
TL
28183 "keephugepages" : {
28184 "default" : 0,
28185 "description" : "Use together with hugepages. If enabled, hugepages will not not be deleted after VM shutdown and can be used for subsequent starts.",
28186 "optional" : 1,
28187 "type" : "boolean",
28188 "typetext" : "<boolean>"
28189 },
56122987 28190 "keyboard" : {
35a75dd3 28191 "default" : null,
7af2edf9 28192 "description" : "Keyboard layout for VNC server. This option is generally not required and is often better handled from within the guest OS.",
56122987 28193 "enum" : [
44660702
DM
28194 "de",
28195 "de-ch",
7aacca6f 28196 "da",
56122987 28197 "en-gb",
44660702
DM
28198 "en-us",
28199 "es",
28200 "fi",
28201 "fr",
28202 "fr-be",
28203 "fr-ca",
28204 "fr-ch",
28205 "hu",
7aacca6f 28206 "is",
44660702
DM
28207 "it",
28208 "ja",
28209 "lt",
56122987 28210 "mk",
7aacca6f 28211 "nl",
56122987 28212 "no",
44660702 28213 "pl",
7aacca6f 28214 "pt",
44660702
DM
28215 "pt-br",
28216 "sv",
28217 "sl",
28218 "tr"
56122987 28219 ],
44660702
DM
28220 "optional" : 1,
28221 "type" : "string"
56122987 28222 },
44660702
DM
28223 "kvm" : {
28224 "default" : 1,
28225 "description" : "Enable/disable KVM hardware virtualization.",
7aacca6f 28226 "optional" : 1,
013dc89f
DM
28227 "type" : "boolean",
28228 "typetext" : "<boolean>"
7aacca6f 28229 },
d2656385 28230 "live-restore" : {
c6d5bae8 28231 "description" : "Start the VM immediately while importing or restoring in the background.",
d2656385 28232 "optional" : 1,
d2656385
TL
28233 "type" : "boolean",
28234 "typetext" : "<boolean>"
28235 },
44660702 28236 "localtime" : {
5370fa8c 28237 "description" : "Set the real time clock (RTC) to local time. This is enabled by default if the `ostype` indicates a Microsoft Windows OS.",
56122987 28238 "optional" : 1,
013dc89f
DM
28239 "type" : "boolean",
28240 "typetext" : "<boolean>"
44660702
DM
28241 },
28242 "lock" : {
28243 "description" : "Lock/unlock the VM.",
7aacca6f 28244 "enum" : [
7aacca6f 28245 "backup",
5f26e15b
TL
28246 "clone",
28247 "create",
28248 "migrate",
28249 "rollback",
7aacca6f 28250 "snapshot",
95895385
TL
28251 "snapshot-delete",
28252 "suspending",
28253 "suspended"
7aacca6f 28254 ],
44660702
DM
28255 "optional" : 1,
28256 "type" : "string"
56122987 28257 },
44660702 28258 "machine" : {
907e4bc3
TL
28259 "description" : "Specify the QEMU machine.",
28260 "format" : {
28261 "type" : {
28262 "default_key" : 1,
28263 "description" : "Specifies the QEMU machine type.",
28264 "format_description" : "machine type",
28265 "maxLength" : 40,
28266 "optional" : 1,
28267 "pattern" : "(pc|pc(-i440fx)?-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|q35|pc-q35-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|virt(?:-\\d+(\\.\\d+)+)?(\\+pve\\d+)?)",
28268 "type" : "string"
28269 },
28270 "viommu" : {
28271 "description" : "Enable and set guest vIOMMU variant (Intel vIOMMU needs q35 to be set as machine type).",
28272 "enum" : [
28273 "intel",
28274 "virtio"
28275 ],
28276 "optional" : 1,
28277 "type" : "string"
28278 }
28279 },
44660702 28280 "optional" : 1,
907e4bc3
TL
28281 "type" : "string",
28282 "typetext" : "[[type=]<machine type>] [,viommu=<intel|virtio>]"
44660702
DM
28283 },
28284 "memory" : {
bd92b745
TL
28285 "description" : "Memory properties.",
28286 "format" : {
28287 "current" : {
28288 "default" : 512,
28289 "default_key" : 1,
28290 "description" : "Current amount of online RAM for the VM in MiB. This is the maximum available memory when you use the balloon device.",
28291 "minimum" : 16,
28292 "type" : "integer"
28293 }
28294 },
44660702 28295 "optional" : 1,
bd92b745
TL
28296 "type" : "string",
28297 "typetext" : "[current=]<integer>"
44660702
DM
28298 },
28299 "migrate_downtime" : {
28300 "default" : 0.1,
28301 "description" : "Set maximum tolerated downtime (in seconds) for migrations.",
28302 "minimum" : 0,
28303 "optional" : 1,
4bd7df8b 28304 "type" : "number",
013dc89f 28305 "typetext" : "<number> (0 - N)"
44660702
DM
28306 },
28307 "migrate_speed" : {
56122987 28308 "default" : 0,
44660702
DM
28309 "description" : "Set maximum speed (in MB/s) for migrations. Value 0 is no limit.",
28310 "minimum" : 0,
56122987 28311 "optional" : 1,
4bd7df8b 28312 "type" : "integer",
013dc89f 28313 "typetext" : "<integer> (0 - N)"
56122987 28314 },
27a7acb2
DM
28315 "name" : {
28316 "description" : "Set a name for the VM. Only used on the configuration web interface.",
28317 "format" : "dns-name",
28318 "optional" : 1,
28319 "type" : "string",
28320 "typetext" : "<string>"
28321 },
28322 "nameserver" : {
de786b48 28323 "description" : "cloud-init: Sets DNS server IP address for a container. Create will automatically use the setting from the host if neither searchdomain nor nameserver are set.",
27a7acb2 28324 "format" : "address-list",
44660702 28325 "optional" : 1,
013dc89f
DM
28326 "type" : "string",
28327 "typetext" : "<string>"
44660702
DM
28328 },
28329 "net[n]" : {
c2993fe5 28330 "description" : "Specify network devices.",
f004f5b9
DM
28331 "format" : {
28332 "bridge" : {
c2993fe5 28333 "description" : "Bridge to attach the network device to. The Proxmox VE standard bridge\nis called 'vmbr0'.\n\nIf you do not specify a bridge, we create a kvm user (NATed) network\ndevice, which provides DHCP and DNS services. The following addresses\nare used:\n\n 10.0.2.2 Gateway\n 10.0.2.3 DNS Server\n 10.0.2.4 SMB Server\n\nThe DHCP server assign addresses to the guest starting from 10.0.2.15.\n",
7af2edf9 28334 "format" : "pve-bridge-id",
f004f5b9
DM
28335 "format_description" : "bridge",
28336 "optional" : 1,
28337 "type" : "string"
28338 },
28339 "e1000" : {
28340 "alias" : "macaddr",
28341 "keyAlias" : "model"
28342 },
28343 "e1000-82540em" : {
28344 "alias" : "macaddr",
28345 "keyAlias" : "model"
28346 },
28347 "e1000-82544gc" : {
28348 "alias" : "macaddr",
28349 "keyAlias" : "model"
28350 },
28351 "e1000-82545em" : {
28352 "alias" : "macaddr",
28353 "keyAlias" : "model"
28354 },
5370fa8c
TL
28355 "e1000e" : {
28356 "alias" : "macaddr",
28357 "keyAlias" : "model"
28358 },
f004f5b9
DM
28359 "firewall" : {
28360 "description" : "Whether this interface should be protected by the firewall.",
28361 "optional" : 1,
28362 "type" : "boolean"
28363 },
28364 "i82551" : {
28365 "alias" : "macaddr",
28366 "keyAlias" : "model"
28367 },
28368 "i82557b" : {
28369 "alias" : "macaddr",
28370 "keyAlias" : "model"
28371 },
28372 "i82559er" : {
28373 "alias" : "macaddr",
28374 "keyAlias" : "model"
28375 },
28376 "link_down" : {
c2993fe5 28377 "description" : "Whether this interface should be disconnected (like pulling the plug).",
f004f5b9
DM
28378 "optional" : 1,
28379 "type" : "boolean"
28380 },
28381 "macaddr" : {
c2993fe5 28382 "description" : "MAC address. That address must be unique withing your network. This is automatically generated if not specified.",
95895385 28383 "format" : "mac-addr",
f004f5b9 28384 "format_description" : "XX:XX:XX:XX:XX:XX",
f004f5b9 28385 "optional" : 1,
95895385
TL
28386 "type" : "string",
28387 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
f004f5b9
DM
28388 },
28389 "model" : {
28390 "default_key" : 1,
c2993fe5 28391 "description" : "Network Card Model. The 'virtio' model provides the best performance with very low CPU overhead. If your guest does not support this driver, it is usually best to use 'e1000'.",
f004f5b9 28392 "enum" : [
f004f5b9 28393 "e1000",
5370fa8c
TL
28394 "e1000-82540em",
28395 "e1000-82544gc",
28396 "e1000-82545em",
28397 "e1000e",
f004f5b9
DM
28398 "i82551",
28399 "i82557b",
28400 "i82559er",
5370fa8c
TL
28401 "ne2k_isa",
28402 "ne2k_pci",
28403 "pcnet",
28404 "rtl8139",
28405 "virtio",
28406 "vmxnet3"
f004f5b9 28407 ],
f004f5b9
DM
28408 "type" : "string"
28409 },
ac70d7d1
TL
28410 "mtu" : {
28411 "description" : "Force MTU, for VirtIO only. Set to '1' to use the bridge MTU",
28412 "maximum" : 65520,
28413 "minimum" : 1,
28414 "optional" : 1,
28415 "type" : "integer"
28416 },
f004f5b9
DM
28417 "ne2k_isa" : {
28418 "alias" : "macaddr",
28419 "keyAlias" : "model"
28420 },
28421 "ne2k_pci" : {
28422 "alias" : "macaddr",
28423 "keyAlias" : "model"
28424 },
28425 "pcnet" : {
28426 "alias" : "macaddr",
28427 "keyAlias" : "model"
28428 },
28429 "queues" : {
28430 "description" : "Number of packet queues to be used on the device.",
81a3384d 28431 "maximum" : 64,
f004f5b9
DM
28432 "minimum" : 0,
28433 "optional" : 1,
28434 "type" : "integer"
28435 },
28436 "rate" : {
c2993fe5 28437 "description" : "Rate limit in mbps (megabytes per second) as floating point number.",
f004f5b9
DM
28438 "minimum" : 0,
28439 "optional" : 1,
28440 "type" : "number"
28441 },
28442 "rtl8139" : {
28443 "alias" : "macaddr",
28444 "keyAlias" : "model"
28445 },
28446 "tag" : {
28447 "description" : "VLAN tag to apply to packets on this interface.",
28448 "maximum" : 4094,
c2993fe5 28449 "minimum" : 1,
f004f5b9
DM
28450 "optional" : 1,
28451 "type" : "integer"
28452 },
28453 "trunks" : {
28454 "description" : "VLAN trunks to pass through this interface.",
28455 "format_description" : "vlanid[;vlanid...]",
28456 "optional" : 1,
28457 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
28458 "type" : "string"
28459 },
28460 "virtio" : {
28461 "alias" : "macaddr",
28462 "keyAlias" : "model"
28463 },
28464 "vmxnet3" : {
28465 "alias" : "macaddr",
28466 "keyAlias" : "model"
28467 }
28468 },
44660702 28469 "optional" : 1,
4bd7df8b 28470 "type" : "string",
ac70d7d1 28471 "typetext" : "[model=]<enum> [,bridge=<bridge>] [,firewall=<1|0>] [,link_down=<1|0>] [,macaddr=<XX:XX:XX:XX:XX:XX>] [,mtu=<integer>] [,queues=<integer>] [,rate=<number>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>] [,<model>=<macaddr>]"
44660702
DM
28472 },
28473 "node" : {
28474 "description" : "The cluster node name.",
28475 "format" : "pve-node",
013dc89f
DM
28476 "type" : "string",
28477 "typetext" : "<string>"
44660702
DM
28478 },
28479 "numa" : {
7aacca6f 28480 "default" : 0,
44660702
DM
28481 "description" : "Enable/disable NUMA.",
28482 "optional" : 1,
013dc89f
DM
28483 "type" : "boolean",
28484 "typetext" : "<boolean>"
56122987 28485 },
7aacca6f 28486 "numa[n]" : {
c2993fe5 28487 "description" : "NUMA topology.",
7aacca6f 28488 "format" : {
44660702 28489 "cpus" : {
c2993fe5 28490 "description" : "CPUs accessing this NUMA node.",
44660702
DM
28491 "format_description" : "id[-id];...",
28492 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
28493 "type" : "string"
28494 },
7aacca6f 28495 "hostnodes" : {
c2993fe5 28496 "description" : "Host NUMA nodes to use.",
44660702 28497 "format_description" : "id[-id];...",
7aacca6f 28498 "optional" : 1,
44660702
DM
28499 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
28500 "type" : "string"
7aacca6f 28501 },
44660702 28502 "memory" : {
c2993fe5 28503 "description" : "Amount of memory this NUMA node provides.",
44660702
DM
28504 "optional" : 1,
28505 "type" : "number"
7aacca6f
DM
28506 },
28507 "policy" : {
c2993fe5 28508 "description" : "NUMA allocation policy.",
7aacca6f
DM
28509 "enum" : [
28510 "preferred",
28511 "bind",
28512 "interleave"
28513 ],
7aacca6f 28514 "optional" : 1,
44660702 28515 "type" : "string"
7aacca6f
DM
28516 }
28517 },
56122987 28518 "optional" : 1,
4bd7df8b
DM
28519 "type" : "string",
28520 "typetext" : "cpus=<id[-id];...> [,hostnodes=<id[-id];...>] [,memory=<number>] [,policy=<preferred|bind|interleave>]"
56122987 28521 },
44660702
DM
28522 "onboot" : {
28523 "default" : 0,
28524 "description" : "Specifies whether a VM will be started during system bootup.",
56122987 28525 "optional" : 1,
013dc89f
DM
28526 "type" : "boolean",
28527 "typetext" : "<boolean>"
56122987
DM
28528 },
28529 "ostype" : {
c2993fe5 28530 "description" : "Specify guest operating system.",
56122987
DM
28531 "enum" : [
28532 "other",
28533 "wxp",
28534 "w2k",
28535 "w2k3",
28536 "w2k8",
28537 "wvista",
28538 "win7",
28539 "win8",
32d876b5 28540 "win10",
5370fa8c 28541 "win11",
56122987
DM
28542 "l24",
28543 "l26",
28544 "solaris"
44660702 28545 ],
56122987 28546 "optional" : 1,
c2993fe5 28547 "type" : "string",
1ffb0cf5 28548 "verbose_description" : "Specify guest operating system. This is used to enable special\noptimization/features for specific operating systems:\n\n[horizontal]\nother;; unspecified OS\nwxp;; Microsoft Windows XP\nw2k;; Microsoft Windows 2000\nw2k3;; Microsoft Windows 2003\nw2k8;; Microsoft Windows 2008\nwvista;; Microsoft Windows Vista\nwin7;; Microsoft Windows 7\nwin8;; Microsoft Windows 8/2012/2012r2\nwin10;; Microsoft Windows 10/2016/2019\nwin11;; Microsoft Windows 11/2022/2025\nl24;; Linux 2.4 Kernel\nl26;; Linux 2.6 - 6.X Kernel\nsolaris;; Solaris/OpenSolaris/OpenIndiania kernel\n"
56122987 28549 },
44660702 28550 "parallel[n]" : {
c2993fe5 28551 "description" : "Map host parallel devices (n is 0 to 2).",
56122987 28552 "optional" : 1,
44660702 28553 "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+",
c2993fe5 28554 "type" : "string",
4772952b 28555 "verbose_description" : "Map host parallel devices (n is 0 to 2).\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such\nmachines - use with special care.\n\nCAUTION: Experimental! User reported problems with this option.\n"
56122987 28556 },
44660702
DM
28557 "pool" : {
28558 "description" : "Add the VM to the specified pool.",
28559 "format" : "pve-poolid",
56122987 28560 "optional" : 1,
013dc89f
DM
28561 "type" : "string",
28562 "typetext" : "<string>"
56122987 28563 },
44660702
DM
28564 "protection" : {
28565 "default" : 0,
c2993fe5 28566 "description" : "Sets the protection flag of the VM. This will disable the remove VM and remove disk operations.",
56122987 28567 "optional" : 1,
013dc89f
DM
28568 "type" : "boolean",
28569 "typetext" : "<boolean>"
56122987 28570 },
44660702 28571 "reboot" : {
7aacca6f 28572 "default" : 1,
44660702
DM
28573 "description" : "Allow reboot. If set to '0' the VM exit on reboot.",
28574 "optional" : 1,
013dc89f
DM
28575 "type" : "boolean",
28576 "typetext" : "<boolean>"
56122987 28577 },
c5aa7e14
TL
28578 "rng0" : {
28579 "description" : "Configure a VirtIO-based Random Number Generator.",
28580 "format" : {
28581 "max_bytes" : {
28582 "default" : 1024,
5370fa8c 28583 "description" : "Maximum bytes of entropy allowed to get injected into the guest every 'period' milliseconds. Prefer a lower value when using '/dev/random' as source. Use `0` to disable limiting (potentially dangerous!).",
c5aa7e14
TL
28584 "optional" : 1,
28585 "type" : "integer"
28586 },
28587 "period" : {
28588 "default" : 1000,
28589 "description" : "Every 'period' milliseconds the entropy-injection quota is reset, allowing the guest to retrieve another 'max_bytes' of entropy.",
28590 "optional" : 1,
28591 "type" : "integer"
28592 },
28593 "source" : {
28594 "default_key" : 1,
5370fa8c 28595 "description" : "The file on the host to gather entropy from. In most cases '/dev/urandom' should be preferred over '/dev/random' to avoid entropy-starvation issues on the host. Using urandom does *not* decrease security in any meaningful way, as it's still seeded from real entropy, and the bytes provided will most likely be mixed with real entropy on the guest as well. '/dev/hwrng' can be used to pass through a hardware RNG from the host.",
c5aa7e14
TL
28596 "enum" : [
28597 "/dev/urandom",
28598 "/dev/random",
28599 "/dev/hwrng"
28600 ],
28601 "type" : "string"
28602 }
28603 },
28604 "optional" : 1,
28605 "type" : "string",
28606 "typetext" : "[source=]</dev/urandom|/dev/random|/dev/hwrng> [,max_bytes=<integer>] [,period=<integer>]"
28607 },
56122987 28608 "sata[n]" : {
7af2edf9 28609 "description" : "Use volume as SATA hard disk or CD-ROM (n is 0 to 5). Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
56122987 28610 "format" : {
7aacca6f 28611 "aio" : {
44660702 28612 "description" : "AIO type to use.",
56122987 28613 "enum" : [
7aacca6f 28614 "native",
8f4d9c87
TL
28615 "threads",
28616 "io_uring"
56122987 28617 ],
7aacca6f 28618 "optional" : 1,
44660702 28619 "type" : "string"
7aacca6f
DM
28620 },
28621 "backup" : {
7aacca6f 28622 "description" : "Whether the drive should be included when making backups.",
7aacca6f 28623 "optional" : 1,
44660702 28624 "type" : "boolean"
56122987 28625 },
44660702 28626 "bps" : {
de0983cb 28627 "description" : "Maximum r/w speed in bytes per second.",
44660702 28628 "format_description" : "bps",
7aacca6f 28629 "optional" : 1,
44660702 28630 "type" : "integer"
56122987 28631 },
de0983cb
DM
28632 "bps_max_length" : {
28633 "description" : "Maximum length of I/O bursts in seconds.",
28634 "format_description" : "seconds",
28635 "minimum" : 1,
28636 "optional" : 1,
28637 "type" : "integer"
28638 },
44660702 28639 "bps_rd" : {
de0983cb 28640 "description" : "Maximum read speed in bytes per second.",
44660702 28641 "format_description" : "bps",
56122987 28642 "optional" : 1,
44660702 28643 "type" : "integer"
7aacca6f 28644 },
de0983cb 28645 "bps_rd_length" : {
5d9c884c
DM
28646 "alias" : "bps_rd_max_length"
28647 },
28648 "bps_rd_max_length" : {
de0983cb
DM
28649 "description" : "Maximum length of read I/O bursts in seconds.",
28650 "format_description" : "seconds",
28651 "minimum" : 1,
28652 "optional" : 1,
28653 "type" : "integer"
28654 },
44660702 28655 "bps_wr" : {
de0983cb 28656 "description" : "Maximum write speed in bytes per second.",
44660702 28657 "format_description" : "bps",
56122987 28658 "optional" : 1,
44660702 28659 "type" : "integer"
56122987 28660 },
de0983cb 28661 "bps_wr_length" : {
5d9c884c
DM
28662 "alias" : "bps_wr_max_length"
28663 },
28664 "bps_wr_max_length" : {
de0983cb
DM
28665 "description" : "Maximum length of write I/O bursts in seconds.",
28666 "format_description" : "seconds",
28667 "minimum" : 1,
28668 "optional" : 1,
28669 "type" : "integer"
28670 },
7aacca6f 28671 "cache" : {
7aacca6f
DM
28672 "description" : "The drive's cache mode",
28673 "enum" : [
28674 "none",
28675 "writethrough",
28676 "writeback",
28677 "unsafe",
28678 "directsync"
28679 ],
44660702
DM
28680 "optional" : 1,
28681 "type" : "string"
56122987 28682 },
44660702
DM
28683 "cyls" : {
28684 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
56122987 28685 "optional" : 1,
7aacca6f 28686 "type" : "integer"
56122987 28687 },
7aacca6f
DM
28688 "detect_zeroes" : {
28689 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
56122987 28690 "optional" : 1,
7aacca6f 28691 "type" : "boolean"
56122987 28692 },
44660702
DM
28693 "discard" : {
28694 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
28695 "enum" : [
28696 "ignore",
28697 "on"
28698 ],
56122987 28699 "optional" : 1,
44660702 28700 "type" : "string"
56122987 28701 },
44660702
DM
28702 "file" : {
28703 "default_key" : 1,
28704 "description" : "The drive's backing volume.",
28705 "format" : "pve-volume-id-or-qm-path",
28706 "format_description" : "volume",
28707 "type" : "string"
56122987
DM
28708 },
28709 "format" : {
44660702 28710 "description" : "The drive's backing file's data format.",
56122987
DM
28711 "enum" : [
28712 "raw",
28713 "cow",
28714 "qcow",
28715 "qed",
28716 "qcow2",
28717 "vmdk",
28718 "cloop"
28719 ],
56122987 28720 "optional" : 1,
44660702 28721 "type" : "string"
56122987 28722 },
7aacca6f 28723 "heads" : {
7aacca6f 28724 "description" : "Force the drive's physical geometry to have a specific head count.",
44660702
DM
28725 "optional" : 1,
28726 "type" : "integer"
56122987 28727 },
7af2edf9
TL
28728 "import-from" : {
28729 "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
28730 "format" : "pve-volume-id-or-absolute-path",
28731 "format_description" : "source volume",
28732 "optional" : 1,
28733 "type" : "string"
28734 },
44660702 28735 "iops" : {
de0983cb 28736 "description" : "Maximum r/w I/O in operations per second.",
44660702
DM
28737 "format_description" : "iops",
28738 "optional" : 1,
28739 "type" : "integer"
56122987 28740 },
44660702 28741 "iops_max" : {
de0983cb 28742 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 28743 "format_description" : "iops",
56122987 28744 "optional" : 1,
44660702 28745 "type" : "integer"
56122987 28746 },
de0983cb
DM
28747 "iops_max_length" : {
28748 "description" : "Maximum length of I/O bursts in seconds.",
28749 "format_description" : "seconds",
28750 "minimum" : 1,
28751 "optional" : 1,
28752 "type" : "integer"
28753 },
44660702 28754 "iops_rd" : {
de0983cb 28755 "description" : "Maximum read I/O in operations per second.",
44660702 28756 "format_description" : "iops",
56122987 28757 "optional" : 1,
44660702 28758 "type" : "integer"
56122987 28759 },
de0983cb 28760 "iops_rd_length" : {
5d9c884c 28761 "alias" : "iops_rd_max_length"
de0983cb 28762 },
44660702 28763 "iops_rd_max" : {
de0983cb 28764 "description" : "Maximum unthrottled read I/O pool in operations per second.",
7aacca6f 28765 "format_description" : "iops",
56122987 28766 "optional" : 1,
44660702 28767 "type" : "integer"
56122987 28768 },
5d9c884c
DM
28769 "iops_rd_max_length" : {
28770 "description" : "Maximum length of read I/O bursts in seconds.",
28771 "format_description" : "seconds",
28772 "minimum" : 1,
28773 "optional" : 1,
28774 "type" : "integer"
28775 },
44660702 28776 "iops_wr" : {
de0983cb 28777 "description" : "Maximum write I/O in operations per second.",
44660702 28778 "format_description" : "iops",
7aacca6f 28779 "optional" : 1,
44660702 28780 "type" : "integer"
7aacca6f 28781 },
de0983cb 28782 "iops_wr_length" : {
5d9c884c 28783 "alias" : "iops_wr_max_length"
de0983cb 28784 },
44660702 28785 "iops_wr_max" : {
de0983cb 28786 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702 28787 "format_description" : "iops",
56122987 28788 "optional" : 1,
7aacca6f 28789 "type" : "integer"
56122987 28790 },
5d9c884c
DM
28791 "iops_wr_max_length" : {
28792 "description" : "Maximum length of write I/O bursts in seconds.",
28793 "format_description" : "seconds",
28794 "minimum" : 1,
28795 "optional" : 1,
28796 "type" : "integer"
28797 },
44660702 28798 "mbps" : {
de0983cb 28799 "description" : "Maximum r/w speed in megabytes per second.",
44660702 28800 "format_description" : "mbps",
56122987 28801 "optional" : 1,
44660702 28802 "type" : "number"
56122987 28803 },
44660702 28804 "mbps_max" : {
de0983cb 28805 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702 28806 "format_description" : "mbps",
7aacca6f 28807 "optional" : 1,
44660702 28808 "type" : "number"
7aacca6f 28809 },
44660702 28810 "mbps_rd" : {
de0983cb 28811 "description" : "Maximum read speed in megabytes per second.",
44660702 28812 "format_description" : "mbps",
7aacca6f 28813 "optional" : 1,
44660702 28814 "type" : "number"
7aacca6f 28815 },
44660702 28816 "mbps_rd_max" : {
de0983cb 28817 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702 28818 "format_description" : "mbps",
7aacca6f 28819 "optional" : 1,
44660702 28820 "type" : "number"
7aacca6f 28821 },
44660702 28822 "mbps_wr" : {
de0983cb 28823 "description" : "Maximum write speed in megabytes per second.",
44660702 28824 "format_description" : "mbps",
7aacca6f 28825 "optional" : 1,
44660702 28826 "type" : "number"
7aacca6f
DM
28827 },
28828 "mbps_wr_max" : {
de0983cb 28829 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702 28830 "format_description" : "mbps",
7aacca6f 28831 "optional" : 1,
44660702 28832 "type" : "number"
7aacca6f 28833 },
44660702
DM
28834 "media" : {
28835 "default" : "disk",
28836 "description" : "The drive's media type.",
56122987 28837 "enum" : [
44660702
DM
28838 "cdrom",
28839 "disk"
56122987 28840 ],
56122987 28841 "optional" : 1,
44660702 28842 "type" : "string"
56122987 28843 },
5d9c884c
DM
28844 "replicate" : {
28845 "default" : 1,
28846 "description" : "Whether the drive should considered for replication jobs.",
28847 "optional" : 1,
28848 "type" : "boolean"
28849 },
44660702
DM
28850 "rerror" : {
28851 "description" : "Read error action.",
7aacca6f
DM
28852 "enum" : [
28853 "ignore",
44660702
DM
28854 "report",
28855 "stop"
7aacca6f 28856 ],
56122987 28857 "optional" : 1,
44660702 28858 "type" : "string"
56122987 28859 },
44660702
DM
28860 "secs" : {
28861 "description" : "Force the drive's physical geometry to have a specific sector count.",
56122987 28862 "optional" : 1,
44660702 28863 "type" : "integer"
56122987 28864 },
44660702
DM
28865 "serial" : {
28866 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
28867 "format" : "urlencoded",
28868 "format_description" : "serial",
28869 "maxLength" : 60,
28870 "optional" : 1,
28871 "type" : "string"
7aacca6f 28872 },
27a7acb2
DM
28873 "shared" : {
28874 "default" : 0,
28875 "description" : "Mark this locally-managed volume as available on all nodes",
28876 "optional" : 1,
28877 "type" : "boolean",
28878 "verbose_description" : "Mark this locally-managed volume as available on all nodes.\n\nWARNING: This option does not share the volume automatically, it assumes it is shared already!"
28879 },
7aacca6f
DM
28880 "size" : {
28881 "description" : "Disk size. This is purely informational and has no effect.",
44660702 28882 "format" : "disk-size",
f004f5b9 28883 "format_description" : "DiskSize",
56122987 28884 "optional" : 1,
44660702 28885 "type" : "string"
56122987 28886 },
44660702 28887 "snapshot" : {
27a7acb2 28888 "description" : "Controls qemu's snapshot mode feature. If activated, changes made to the disk are temporary and will be discarded when the VM is shutdown.",
56122987 28889 "optional" : 1,
44660702 28890 "type" : "boolean"
56122987 28891 },
25203dc1
NC
28892 "ssd" : {
28893 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
28894 "optional" : 1,
28895 "type" : "boolean"
28896 },
44660702
DM
28897 "trans" : {
28898 "description" : "Force disk geometry bios translation mode.",
56122987 28899 "enum" : [
44660702
DM
28900 "none",
28901 "lba",
28902 "auto"
7aacca6f 28903 ],
44660702
DM
28904 "optional" : 1,
28905 "type" : "string"
28906 },
28907 "volume" : {
28908 "alias" : "file"
56122987
DM
28909 },
28910 "werror" : {
56122987
DM
28911 "description" : "Write error action.",
28912 "enum" : [
28913 "enospc",
28914 "ignore",
28915 "report",
28916 "stop"
28917 ],
56122987 28918 "optional" : 1,
44660702 28919 "type" : "string"
95895385
TL
28920 },
28921 "wwn" : {
28922 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
28923 "format_description" : "wwn",
28924 "optional" : 1,
28925 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
28926 "type" : "string"
44660702
DM
28927 }
28928 },
28929 "optional" : 1,
4bd7df8b 28930 "type" : "string",
7af2edf9 28931 "typetext" : "[file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<source volume>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>]"
44660702
DM
28932 },
28933 "scsi[n]" : {
7af2edf9 28934 "description" : "Use volume as SCSI hard disk or CD-ROM (n is 0 to 30). Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
44660702
DM
28935 "format" : {
28936 "aio" : {
28937 "description" : "AIO type to use.",
28938 "enum" : [
28939 "native",
8f4d9c87
TL
28940 "threads",
28941 "io_uring"
44660702 28942 ],
44660702
DM
28943 "optional" : 1,
28944 "type" : "string"
56122987 28945 },
7aacca6f 28946 "backup" : {
44660702 28947 "description" : "Whether the drive should be included when making backups.",
7aacca6f 28948 "optional" : 1,
44660702 28949 "type" : "boolean"
7aacca6f 28950 },
44660702 28951 "bps" : {
de0983cb 28952 "description" : "Maximum r/w speed in bytes per second.",
44660702 28953 "format_description" : "bps",
7aacca6f 28954 "optional" : 1,
44660702 28955 "type" : "integer"
7aacca6f 28956 },
de0983cb
DM
28957 "bps_max_length" : {
28958 "description" : "Maximum length of I/O bursts in seconds.",
28959 "format_description" : "seconds",
28960 "minimum" : 1,
28961 "optional" : 1,
28962 "type" : "integer"
28963 },
44660702 28964 "bps_rd" : {
de0983cb 28965 "description" : "Maximum read speed in bytes per second.",
44660702 28966 "format_description" : "bps",
56122987 28967 "optional" : 1,
44660702 28968 "type" : "integer"
56122987 28969 },
de0983cb 28970 "bps_rd_length" : {
5d9c884c
DM
28971 "alias" : "bps_rd_max_length"
28972 },
28973 "bps_rd_max_length" : {
de0983cb
DM
28974 "description" : "Maximum length of read I/O bursts in seconds.",
28975 "format_description" : "seconds",
28976 "minimum" : 1,
28977 "optional" : 1,
28978 "type" : "integer"
28979 },
44660702 28980 "bps_wr" : {
de0983cb 28981 "description" : "Maximum write speed in bytes per second.",
44660702 28982 "format_description" : "bps",
7aacca6f 28983 "optional" : 1,
44660702 28984 "type" : "integer"
56122987 28985 },
de0983cb 28986 "bps_wr_length" : {
5d9c884c
DM
28987 "alias" : "bps_wr_max_length"
28988 },
28989 "bps_wr_max_length" : {
de0983cb
DM
28990 "description" : "Maximum length of write I/O bursts in seconds.",
28991 "format_description" : "seconds",
28992 "minimum" : 1,
28993 "optional" : 1,
28994 "type" : "integer"
28995 },
44660702
DM
28996 "cache" : {
28997 "description" : "The drive's cache mode",
7aacca6f
DM
28998 "enum" : [
28999 "none",
44660702
DM
29000 "writethrough",
29001 "writeback",
29002 "unsafe",
29003 "directsync"
7aacca6f 29004 ],
56122987 29005 "optional" : 1,
44660702 29006 "type" : "string"
56122987 29007 },
7aacca6f
DM
29008 "cyls" : {
29009 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
29010 "optional" : 1,
44660702 29011 "type" : "integer"
7aacca6f 29012 },
44660702
DM
29013 "detect_zeroes" : {
29014 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
56122987 29015 "optional" : 1,
44660702 29016 "type" : "boolean"
56122987 29017 },
44660702
DM
29018 "discard" : {
29019 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
7aacca6f 29020 "enum" : [
44660702
DM
29021 "ignore",
29022 "on"
7aacca6f 29023 ],
7aacca6f 29024 "optional" : 1,
44660702 29025 "type" : "string"
56122987
DM
29026 },
29027 "file" : {
7aacca6f
DM
29028 "default_key" : 1,
29029 "description" : "The drive's backing volume.",
44660702
DM
29030 "format" : "pve-volume-id-or-qm-path",
29031 "format_description" : "volume",
7aacca6f 29032 "type" : "string"
56122987 29033 },
7aacca6f 29034 "format" : {
44660702 29035 "description" : "The drive's backing file's data format.",
56122987 29036 "enum" : [
7aacca6f
DM
29037 "raw",
29038 "cow",
29039 "qcow",
29040 "qed",
29041 "qcow2",
29042 "vmdk",
29043 "cloop"
56122987 29044 ],
44660702
DM
29045 "optional" : 1,
29046 "type" : "string"
56122987 29047 },
44660702
DM
29048 "heads" : {
29049 "description" : "Force the drive's physical geometry to have a specific head count.",
44660702
DM
29050 "optional" : 1,
29051 "type" : "integer"
29052 },
7af2edf9
TL
29053 "import-from" : {
29054 "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
29055 "format" : "pve-volume-id-or-absolute-path",
29056 "format_description" : "source volume",
29057 "optional" : 1,
29058 "type" : "string"
29059 },
44660702 29060 "iops" : {
de0983cb 29061 "description" : "Maximum r/w I/O in operations per second.",
7aacca6f 29062 "format_description" : "iops",
56122987 29063 "optional" : 1,
44660702 29064 "type" : "integer"
56122987 29065 },
44660702 29066 "iops_max" : {
de0983cb 29067 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 29068 "format_description" : "iops",
7aacca6f 29069 "optional" : 1,
44660702 29070 "type" : "integer"
56122987 29071 },
de0983cb
DM
29072 "iops_max_length" : {
29073 "description" : "Maximum length of I/O bursts in seconds.",
29074 "format_description" : "seconds",
29075 "minimum" : 1,
29076 "optional" : 1,
29077 "type" : "integer"
29078 },
44660702 29079 "iops_rd" : {
de0983cb 29080 "description" : "Maximum read I/O in operations per second.",
44660702 29081 "format_description" : "iops",
56122987 29082 "optional" : 1,
44660702 29083 "type" : "integer"
56122987 29084 },
de0983cb 29085 "iops_rd_length" : {
5d9c884c 29086 "alias" : "iops_rd_max_length"
de0983cb 29087 },
44660702 29088 "iops_rd_max" : {
de0983cb 29089 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702
DM
29090 "format_description" : "iops",
29091 "optional" : 1,
29092 "type" : "integer"
56122987 29093 },
5d9c884c
DM
29094 "iops_rd_max_length" : {
29095 "description" : "Maximum length of read I/O bursts in seconds.",
29096 "format_description" : "seconds",
29097 "minimum" : 1,
29098 "optional" : 1,
29099 "type" : "integer"
29100 },
44660702 29101 "iops_wr" : {
de0983cb 29102 "description" : "Maximum write I/O in operations per second.",
44660702 29103 "format_description" : "iops",
56122987 29104 "optional" : 1,
44660702 29105 "type" : "integer"
56122987 29106 },
de0983cb 29107 "iops_wr_length" : {
5d9c884c 29108 "alias" : "iops_wr_max_length"
de0983cb 29109 },
44660702 29110 "iops_wr_max" : {
de0983cb 29111 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702 29112 "format_description" : "iops",
56122987 29113 "optional" : 1,
56122987
DM
29114 "type" : "integer"
29115 },
5d9c884c
DM
29116 "iops_wr_max_length" : {
29117 "description" : "Maximum length of write I/O bursts in seconds.",
29118 "format_description" : "seconds",
29119 "minimum" : 1,
29120 "optional" : 1,
29121 "type" : "integer"
29122 },
44660702
DM
29123 "iothread" : {
29124 "description" : "Whether to use iothreads for this drive",
44660702
DM
29125 "optional" : 1,
29126 "type" : "boolean"
29127 },
29128 "mbps" : {
de0983cb 29129 "description" : "Maximum r/w speed in megabytes per second.",
44660702
DM
29130 "format_description" : "mbps",
29131 "optional" : 1,
29132 "type" : "number"
29133 },
7aacca6f 29134 "mbps_max" : {
de0983cb 29135 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702 29136 "format_description" : "mbps",
56122987 29137 "optional" : 1,
44660702 29138 "type" : "number"
56122987 29139 },
44660702 29140 "mbps_rd" : {
de0983cb 29141 "description" : "Maximum read speed in megabytes per second.",
44660702
DM
29142 "format_description" : "mbps",
29143 "optional" : 1,
29144 "type" : "number"
56122987 29145 },
44660702 29146 "mbps_rd_max" : {
de0983cb 29147 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702 29148 "format_description" : "mbps",
56122987 29149 "optional" : 1,
44660702 29150 "type" : "number"
56122987 29151 },
44660702 29152 "mbps_wr" : {
de0983cb 29153 "description" : "Maximum write speed in megabytes per second.",
44660702 29154 "format_description" : "mbps",
56122987 29155 "optional" : 1,
44660702 29156 "type" : "number"
56122987 29157 },
44660702 29158 "mbps_wr_max" : {
de0983cb 29159 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702 29160 "format_description" : "mbps",
7aacca6f 29161 "optional" : 1,
44660702 29162 "type" : "number"
56122987 29163 },
7aacca6f 29164 "media" : {
44660702 29165 "default" : "disk",
7aacca6f
DM
29166 "description" : "The drive's media type.",
29167 "enum" : [
29168 "cdrom",
29169 "disk"
29170 ],
56122987 29171 "optional" : 1,
44660702 29172 "type" : "string"
56122987 29173 },
c6d5bae8
TL
29174 "product" : {
29175 "description" : "The drive's product name, up to 16 bytes long.",
29176 "format_description" : "product",
29177 "optional" : 1,
29178 "pattern" : "[A-Za-z0-9\\-_\\s]{,16}",
29179 "type" : "string"
29180 },
44660702
DM
29181 "queues" : {
29182 "description" : "Number of queues.",
44660702
DM
29183 "minimum" : 2,
29184 "optional" : 1,
29185 "type" : "integer"
56122987 29186 },
5d9c884c
DM
29187 "replicate" : {
29188 "default" : 1,
29189 "description" : "Whether the drive should considered for replication jobs.",
29190 "optional" : 1,
29191 "type" : "boolean"
29192 },
29193 "rerror" : {
29194 "description" : "Read error action.",
29195 "enum" : [
29196 "ignore",
29197 "report",
29198 "stop"
29199 ],
29200 "optional" : 1,
29201 "type" : "string"
29202 },
5370fa8c
TL
29203 "ro" : {
29204 "description" : "Whether the drive is read-only.",
29205 "optional" : 1,
29206 "type" : "boolean"
29207 },
52e44c50
FG
29208 "scsiblock" : {
29209 "default" : 0,
29210 "description" : "whether to use scsi-block for full passthrough of host block device\n\nWARNING: can lead to I/O errors in combination with low memory or high memory fragmentation on host",
29211 "optional" : 1,
29212 "type" : "boolean"
29213 },
7aacca6f 29214 "secs" : {
7aacca6f 29215 "description" : "Force the drive's physical geometry to have a specific sector count.",
44660702
DM
29216 "optional" : 1,
29217 "type" : "integer"
29218 },
29219 "serial" : {
29220 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
29221 "format" : "urlencoded",
29222 "format_description" : "serial",
29223 "maxLength" : 60,
29224 "optional" : 1,
29225 "type" : "string"
29226 },
27a7acb2
DM
29227 "shared" : {
29228 "default" : 0,
29229 "description" : "Mark this locally-managed volume as available on all nodes",
29230 "optional" : 1,
29231 "type" : "boolean",
29232 "verbose_description" : "Mark this locally-managed volume as available on all nodes.\n\nWARNING: This option does not share the volume automatically, it assumes it is shared already!"
29233 },
44660702
DM
29234 "size" : {
29235 "description" : "Disk size. This is purely informational and has no effect.",
29236 "format" : "disk-size",
f004f5b9 29237 "format_description" : "DiskSize",
44660702
DM
29238 "optional" : 1,
29239 "type" : "string"
29240 },
29241 "snapshot" : {
27a7acb2 29242 "description" : "Controls qemu's snapshot mode feature. If activated, changes made to the disk are temporary and will be discarded when the VM is shutdown.",
44660702
DM
29243 "optional" : 1,
29244 "type" : "boolean"
29245 },
25203dc1
NC
29246 "ssd" : {
29247 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
29248 "optional" : 1,
29249 "type" : "boolean"
29250 },
44660702
DM
29251 "trans" : {
29252 "description" : "Force disk geometry bios translation mode.",
29253 "enum" : [
29254 "none",
29255 "lba",
29256 "auto"
29257 ],
44660702
DM
29258 "optional" : 1,
29259 "type" : "string"
29260 },
c6d5bae8
TL
29261 "vendor" : {
29262 "description" : "The drive's vendor name, up to 8 bytes long.",
29263 "format_description" : "vendor",
29264 "optional" : 1,
29265 "pattern" : "[A-Za-z0-9\\-_\\s]{,8}",
29266 "type" : "string"
29267 },
44660702
DM
29268 "volume" : {
29269 "alias" : "file"
29270 },
29271 "werror" : {
29272 "description" : "Write error action.",
29273 "enum" : [
29274 "enospc",
29275 "ignore",
29276 "report",
29277 "stop"
29278 ],
44660702
DM
29279 "optional" : 1,
29280 "type" : "string"
95895385
TL
29281 },
29282 "wwn" : {
29283 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
29284 "format_description" : "wwn",
29285 "optional" : 1,
29286 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
29287 "type" : "string"
56122987
DM
29288 }
29289 },
7aacca6f 29290 "optional" : 1,
4bd7df8b 29291 "type" : "string",
c6d5bae8 29292 "typetext" : "[file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<source volume>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,product=<product>] [,queues=<integer>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,ro=<1|0>] [,scsiblock=<1|0>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,vendor=<vendor>] [,werror=<enum>] [,wwn=<wwn>]"
56122987 29293 },
44660702
DM
29294 "scsihw" : {
29295 "default" : "lsi",
c2993fe5 29296 "description" : "SCSI controller model",
44660702
DM
29297 "enum" : [
29298 "lsi",
29299 "lsi53c810",
29300 "virtio-scsi-pci",
29301 "virtio-scsi-single",
29302 "megasas",
29303 "pvscsi"
29304 ],
7aacca6f 29305 "optional" : 1,
44660702 29306 "type" : "string"
7aacca6f 29307 },
27a7acb2 29308 "searchdomain" : {
de786b48 29309 "description" : "cloud-init: Sets DNS search domains for a container. Create will automatically use the setting from the host if neither searchdomain nor nameserver are set.",
27a7acb2
DM
29310 "optional" : 1,
29311 "type" : "string",
29312 "typetext" : "<string>"
29313 },
44660702 29314 "serial[n]" : {
c2993fe5 29315 "description" : "Create a serial device inside the VM (n is 0 to 3)",
44660702
DM
29316 "optional" : 1,
29317 "pattern" : "(/dev/.+|socket)",
c2993fe5 29318 "type" : "string",
4772952b 29319 "verbose_description" : "Create a serial device inside the VM (n is 0 to 3), and pass through a\nhost serial device (i.e. /dev/ttyS0), or create a unix socket on the\nhost side (use 'qm terminal' to open a terminal connection).\n\nNOTE: If you pass through a host serial device, it is no longer possible to migrate such machines -\nuse with special care.\n\nCAUTION: Experimental! User reported problems with this option.\n"
44660702
DM
29320 },
29321 "shares" : {
29322 "default" : 1000,
5da3d723 29323 "description" : "Amount of memory shares for auto-ballooning. The larger the number is, the more memory this VM gets. Number is relative to weights of all other running VMs. Using zero disables auto-ballooning. Auto-ballooning is done by pvestatd.",
44660702
DM
29324 "maximum" : 50000,
29325 "minimum" : 0,
29326 "optional" : 1,
4bd7df8b 29327 "type" : "integer",
013dc89f 29328 "typetext" : "<integer> (0 - 50000)"
44660702
DM
29329 },
29330 "smbios1" : {
29331 "description" : "Specify SMBIOS type 1 fields.",
29332 "format" : "pve-qm-smbios1",
1e3f8156 29333 "maxLength" : 512,
7aacca6f 29334 "optional" : 1,
4bd7df8b 29335 "type" : "string",
1e3f8156 29336 "typetext" : "[base64=<1|0>] [,family=<Base64 encoded string>] [,manufacturer=<Base64 encoded string>] [,product=<Base64 encoded string>] [,serial=<Base64 encoded string>] [,sku=<Base64 encoded string>] [,uuid=<UUID>] [,version=<Base64 encoded string>]"
7aacca6f
DM
29337 },
29338 "smp" : {
44660702 29339 "default" : 1,
7aacca6f 29340 "description" : "The number of CPUs. Please use option -sockets instead.",
44660702 29341 "minimum" : 1,
56122987 29342 "optional" : 1,
4bd7df8b 29343 "type" : "integer",
013dc89f 29344 "typetext" : "<integer> (1 - N)"
44660702
DM
29345 },
29346 "sockets" : {
7aacca6f 29347 "default" : 1,
44660702
DM
29348 "description" : "The number of CPU sockets.",
29349 "minimum" : 1,
29350 "optional" : 1,
4bd7df8b 29351 "type" : "integer",
013dc89f 29352 "typetext" : "<integer> (1 - N)"
7aacca6f 29353 },
1c532546
TL
29354 "spice_enhancements" : {
29355 "description" : "Configure additional enhancements for SPICE.",
29356 "format" : {
29357 "foldersharing" : {
29358 "default" : "0",
29359 "description" : "Enable folder sharing via SPICE. Needs Spice-WebDAV daemon installed in the VM.",
29360 "optional" : 1,
29361 "type" : "boolean"
29362 },
29363 "videostreaming" : {
29364 "default" : "off",
29365 "description" : "Enable video streaming. Uses compression for detected video streams.",
29366 "enum" : [
29367 "off",
29368 "all",
29369 "filter"
29370 ],
29371 "optional" : 1,
29372 "type" : "string"
29373 }
29374 },
29375 "optional" : 1,
29376 "type" : "string",
29377 "typetext" : "[foldersharing=<1|0>] [,videostreaming=<off|all|filter>]"
29378 },
27a7acb2
DM
29379 "sshkeys" : {
29380 "description" : "cloud-init: Setup public SSH keys (one key per line, OpenSSH format).",
29381 "format" : "urlencoded",
29382 "optional" : 1,
29383 "type" : "string",
29384 "typetext" : "<string>"
29385 },
5da3d723
TL
29386 "start" : {
29387 "default" : 0,
29388 "description" : "Start VM after it was created successfully.",
29389 "optional" : 1,
29390 "type" : "boolean",
29391 "typetext" : "<boolean>"
29392 },
44660702
DM
29393 "startdate" : {
29394 "default" : "now",
4772952b 29395 "description" : "Set the initial date of the real time clock. Valid format for date are:'now' or '2006-06-17T16:01:21' or '2006-06-17'.",
44660702
DM
29396 "optional" : 1,
29397 "pattern" : "(now|\\d{4}-\\d{1,2}-\\d{1,2}(T\\d{1,2}:\\d{1,2}:\\d{1,2})?)",
29398 "type" : "string",
29399 "typetext" : "(now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)"
29400 },
29401 "startup" : {
29402 "description" : "Startup and shutdown behavior. Order is a non-negative number defining the general startup order. Shutdown in done with reverse ordering. Additionally you can set the 'up' or 'down' delay in seconds, which specifies a delay to wait before the next VM is started or stopped.",
29403 "format" : "pve-startup-order",
29404 "optional" : 1,
29405 "type" : "string",
29406 "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
29407 },
29408 "storage" : {
29409 "description" : "Default storage.",
29410 "format" : "pve-storage-id",
907e4bc3 29411 "format_description" : "storage ID",
7aacca6f 29412 "optional" : 1,
013dc89f 29413 "type" : "string",
907e4bc3 29414 "typetext" : "<storage ID>"
56122987 29415 },
44660702
DM
29416 "tablet" : {
29417 "default" : 1,
c2993fe5 29418 "description" : "Enable/disable the USB tablet device.",
56122987 29419 "optional" : 1,
c2993fe5 29420 "type" : "boolean",
013dc89f 29421 "typetext" : "<boolean>",
4772952b 29422 "verbose_description" : "Enable/disable the USB tablet device. This device is usually needed to allow absolute mouse positioning with VNC. Else the mouse runs out of sync with normal VNC clients. If you're running lots of console-only guests on one host, you may consider disabling this to save some context switches. This is turned off by default if you use spice (`qm set <vmid> --vga qxl`)."
44660702 29423 },
5c1699e5
TL
29424 "tags" : {
29425 "description" : "Tags of the VM. This is only meta information.",
29426 "format" : "pve-tag-list",
29427 "optional" : 1,
29428 "type" : "string",
29429 "typetext" : "<string>"
29430 },
44660702
DM
29431 "tdf" : {
29432 "default" : 0,
29433 "description" : "Enable/disable time drift fix.",
29434 "optional" : 1,
013dc89f
DM
29435 "type" : "boolean",
29436 "typetext" : "<boolean>"
7aacca6f
DM
29437 },
29438 "template" : {
7aacca6f 29439 "default" : 0,
44660702 29440 "description" : "Enable/disable Template.",
7aacca6f 29441 "optional" : 1,
013dc89f
DM
29442 "type" : "boolean",
29443 "typetext" : "<boolean>"
7aacca6f 29444 },
5370fa8c 29445 "tpmstate0" : {
7af2edf9 29446 "description" : "Configure a Disk for storing TPM state. The format is fixed to 'raw'. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Note that SIZE_IN_GiB is ignored here and 4 MiB will be used instead. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
5370fa8c
TL
29447 "format" : {
29448 "file" : {
29449 "default_key" : 1,
29450 "description" : "The drive's backing volume.",
29451 "format" : "pve-volume-id-or-qm-path",
29452 "format_description" : "volume",
29453 "type" : "string"
29454 },
7af2edf9
TL
29455 "import-from" : {
29456 "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
29457 "format" : "pve-volume-id-or-absolute-path",
29458 "format_description" : "source volume",
29459 "optional" : 1,
29460 "type" : "string"
29461 },
5370fa8c
TL
29462 "size" : {
29463 "description" : "Disk size. This is purely informational and has no effect.",
29464 "format" : "disk-size",
29465 "format_description" : "DiskSize",
29466 "optional" : 1,
29467 "type" : "string"
29468 },
29469 "version" : {
29470 "default" : "v2.0",
29471 "description" : "The TPM interface version. v2.0 is newer and should be preferred. Note that this cannot be changed later on.",
29472 "enum" : [
29473 "v1.2",
29474 "v2.0"
29475 ],
29476 "optional" : 1,
29477 "type" : "string"
29478 },
29479 "volume" : {
29480 "alias" : "file"
29481 }
29482 },
29483 "optional" : 1,
29484 "type" : "string",
7af2edf9 29485 "typetext" : "[file=]<volume> [,import-from=<source volume>] [,size=<DiskSize>] [,version=<v1.2|v2.0>]"
5370fa8c 29486 },
44660702
DM
29487 "unique" : {
29488 "description" : "Assign a unique random ethernet address.",
7aacca6f 29489 "optional" : 1,
44660702 29490 "requires" : "archive",
013dc89f
DM
29491 "type" : "boolean",
29492 "typetext" : "<boolean>"
56122987 29493 },
44660702 29494 "unused[n]" : {
c2993fe5 29495 "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
c5aa7e14
TL
29496 "format" : {
29497 "file" : {
29498 "default_key" : 1,
29499 "description" : "The drive's backing volume.",
29500 "format" : "pve-volume-id",
29501 "format_description" : "volume",
29502 "type" : "string"
29503 },
29504 "volume" : {
29505 "alias" : "file"
29506 }
29507 },
7aacca6f 29508 "optional" : 1,
013dc89f 29509 "type" : "string",
c5aa7e14 29510 "typetext" : "[file=]<volume>"
44660702
DM
29511 },
29512 "usb[n]" : {
4e7f60c2 29513 "description" : "Configure an USB device (n is 0 to 4, for machine version >= 7.1 and ostype l26 or windows > 7, n can be up to 14).",
56122987 29514 "format" : {
7aacca6f
DM
29515 "host" : {
29516 "default_key" : 1,
499c9b7f 29517 "description" : "The Host USB device or port or the value 'spice'. HOSTUSBDEVICE syntax is:\n\n 'bus-port(.port)*' (decimal numbers) or\n 'vendor_id:product_id' (hexadeciaml numbers) or\n 'spice'\n\nYou can use the 'lsusb -t' command to list existing usb devices.\n\nNOTE: This option allows direct access to host hardware. So it is no longer possible to migrate such\nmachines - use with special care.\n\nThe value 'spice' can be used to add a usb redirection devices for spice.\n\nEither this or the 'mapping' key must be set.\n",
44660702 29518 "format_description" : "HOSTUSBDEVICE|spice",
499c9b7f
TL
29519 "optional" : 1,
29520 "pattern" : "(?^:(?:(?:(?^:(0x)?([0-9A-Fa-f]{4}):(0x)?([0-9A-Fa-f]{4})))|(?:(?^:(\\d+)\\-(\\d+(\\.\\d+)*)))|[Ss][Pp][Ii][Cc][Ee]))",
29521 "type" : "string"
29522 },
29523 "mapping" : {
29524 "description" : "The ID of a cluster wide mapping. Either this or the default-key 'host' must be set.",
29525 "format" : "pve-configid",
29526 "format_description" : "mapping-id",
29527 "optional" : 1,
44660702 29528 "type" : "string"
7aacca6f 29529 },
56122987 29530 "usb3" : {
c2993fe5 29531 "default" : 0,
4e7f60c2 29532 "description" : "Specifies whether if given host option is a USB3 device or port. For modern guests (machine version >= 7.1 and ostype l26 and windows > 7), this flag is irrelevant (all devices are plugged into a xhci controller).",
56122987 29533 "optional" : 1,
56122987 29534 "type" : "boolean"
7aacca6f 29535 }
56122987 29536 },
56122987 29537 "optional" : 1,
4bd7df8b 29538 "type" : "string",
499c9b7f 29539 "typetext" : "[[host=]<HOSTUSBDEVICE|spice>] [,mapping=<mapping-id>] [,usb3=<1|0>]"
56122987 29540 },
44660702
DM
29541 "vcpus" : {
29542 "default" : 0,
29543 "description" : "Number of hotplugged vcpus.",
29544 "minimum" : 1,
56122987 29545 "optional" : 1,
4bd7df8b 29546 "type" : "integer",
013dc89f 29547 "typetext" : "<integer> (1 - N)"
7aacca6f 29548 },
44660702 29549 "vga" : {
e2d681b3
TL
29550 "description" : "Configure the VGA hardware.",
29551 "format" : {
fa22697b 29552 "clipboard" : {
c6d5bae8 29553 "description" : "Enable a specific clipboard. If not set, depending on the display type the SPICE one will be added. Migration with VNC clipboard is not yet supported!",
fa22697b
TL
29554 "enum" : [
29555 "vnc"
29556 ],
29557 "optional" : 1,
29558 "type" : "string"
29559 },
e2d681b3
TL
29560 "memory" : {
29561 "description" : "Sets the VGA memory (in MiB). Has no effect with serial display.",
29562 "maximum" : 512,
29563 "minimum" : 4,
29564 "optional" : 1,
29565 "type" : "integer"
29566 },
29567 "type" : {
29568 "default" : "std",
29569 "default_key" : 1,
29570 "description" : "Select the VGA type.",
29571 "enum" : [
29572 "cirrus",
29573 "qxl",
29574 "qxl2",
29575 "qxl3",
29576 "qxl4",
5f26e15b 29577 "none",
e2d681b3
TL
29578 "serial0",
29579 "serial1",
29580 "serial2",
29581 "serial3",
29582 "std",
29583 "virtio",
7af2edf9 29584 "virtio-gl",
e2d681b3
TL
29585 "vmware"
29586 ],
29587 "optional" : 1,
29588 "type" : "string"
29589 }
29590 },
44660702 29591 "optional" : 1,
c2993fe5 29592 "type" : "string",
fa22697b 29593 "typetext" : "[[type=]<enum>] [,clipboard=<vnc>] [,memory=<integer>]",
e2d681b3 29594 "verbose_description" : "Configure the VGA Hardware. If you want to use high resolution modes (>= 1280x1024x16) you may need to increase the vga memory option. Since QEMU 2.9 the default VGA display type is 'std' for all OS types besides some Windows versions (XP and older) which use 'cirrus'. The 'qxl' option enables the SPICE display server. For win* OS you can select how many independent displays you want, Linux guests can add displays them self.\nYou can also run without any graphic card, using a serial device as terminal."
7aacca6f 29595 },
44660702 29596 "virtio[n]" : {
7af2edf9 29597 "description" : "Use volume as VIRTIO hard disk (n is 0 to 15). Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
44660702
DM
29598 "format" : {
29599 "aio" : {
29600 "description" : "AIO type to use.",
29601 "enum" : [
29602 "native",
8f4d9c87
TL
29603 "threads",
29604 "io_uring"
44660702 29605 ],
44660702
DM
29606 "optional" : 1,
29607 "type" : "string"
29608 },
29609 "backup" : {
29610 "description" : "Whether the drive should be included when making backups.",
44660702
DM
29611 "optional" : 1,
29612 "type" : "boolean"
29613 },
29614 "bps" : {
de0983cb 29615 "description" : "Maximum r/w speed in bytes per second.",
44660702
DM
29616 "format_description" : "bps",
29617 "optional" : 1,
29618 "type" : "integer"
29619 },
de0983cb
DM
29620 "bps_max_length" : {
29621 "description" : "Maximum length of I/O bursts in seconds.",
29622 "format_description" : "seconds",
29623 "minimum" : 1,
29624 "optional" : 1,
29625 "type" : "integer"
29626 },
44660702 29627 "bps_rd" : {
de0983cb 29628 "description" : "Maximum read speed in bytes per second.",
44660702
DM
29629 "format_description" : "bps",
29630 "optional" : 1,
29631 "type" : "integer"
29632 },
de0983cb 29633 "bps_rd_length" : {
5d9c884c
DM
29634 "alias" : "bps_rd_max_length"
29635 },
29636 "bps_rd_max_length" : {
de0983cb
DM
29637 "description" : "Maximum length of read I/O bursts in seconds.",
29638 "format_description" : "seconds",
29639 "minimum" : 1,
29640 "optional" : 1,
29641 "type" : "integer"
29642 },
44660702 29643 "bps_wr" : {
de0983cb 29644 "description" : "Maximum write speed in bytes per second.",
44660702
DM
29645 "format_description" : "bps",
29646 "optional" : 1,
29647 "type" : "integer"
29648 },
de0983cb 29649 "bps_wr_length" : {
5d9c884c
DM
29650 "alias" : "bps_wr_max_length"
29651 },
29652 "bps_wr_max_length" : {
de0983cb
DM
29653 "description" : "Maximum length of write I/O bursts in seconds.",
29654 "format_description" : "seconds",
29655 "minimum" : 1,
29656 "optional" : 1,
29657 "type" : "integer"
29658 },
44660702
DM
29659 "cache" : {
29660 "description" : "The drive's cache mode",
29661 "enum" : [
29662 "none",
29663 "writethrough",
29664 "writeback",
29665 "unsafe",
29666 "directsync"
29667 ],
44660702
DM
29668 "optional" : 1,
29669 "type" : "string"
29670 },
29671 "cyls" : {
29672 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
44660702
DM
29673 "optional" : 1,
29674 "type" : "integer"
29675 },
29676 "detect_zeroes" : {
29677 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
29678 "optional" : 1,
29679 "type" : "boolean"
29680 },
29681 "discard" : {
29682 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
29683 "enum" : [
29684 "ignore",
29685 "on"
29686 ],
44660702
DM
29687 "optional" : 1,
29688 "type" : "string"
29689 },
29690 "file" : {
29691 "default_key" : 1,
29692 "description" : "The drive's backing volume.",
29693 "format" : "pve-volume-id-or-qm-path",
29694 "format_description" : "volume",
29695 "type" : "string"
29696 },
29697 "format" : {
29698 "description" : "The drive's backing file's data format.",
29699 "enum" : [
29700 "raw",
29701 "cow",
29702 "qcow",
29703 "qed",
29704 "qcow2",
29705 "vmdk",
29706 "cloop"
29707 ],
44660702
DM
29708 "optional" : 1,
29709 "type" : "string"
29710 },
29711 "heads" : {
29712 "description" : "Force the drive's physical geometry to have a specific head count.",
44660702
DM
29713 "optional" : 1,
29714 "type" : "integer"
29715 },
7af2edf9
TL
29716 "import-from" : {
29717 "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
29718 "format" : "pve-volume-id-or-absolute-path",
29719 "format_description" : "source volume",
29720 "optional" : 1,
29721 "type" : "string"
29722 },
44660702 29723 "iops" : {
de0983cb 29724 "description" : "Maximum r/w I/O in operations per second.",
44660702
DM
29725 "format_description" : "iops",
29726 "optional" : 1,
29727 "type" : "integer"
29728 },
29729 "iops_max" : {
de0983cb 29730 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702
DM
29731 "format_description" : "iops",
29732 "optional" : 1,
29733 "type" : "integer"
29734 },
de0983cb
DM
29735 "iops_max_length" : {
29736 "description" : "Maximum length of I/O bursts in seconds.",
29737 "format_description" : "seconds",
29738 "minimum" : 1,
29739 "optional" : 1,
29740 "type" : "integer"
29741 },
44660702 29742 "iops_rd" : {
de0983cb 29743 "description" : "Maximum read I/O in operations per second.",
44660702
DM
29744 "format_description" : "iops",
29745 "optional" : 1,
29746 "type" : "integer"
29747 },
de0983cb 29748 "iops_rd_length" : {
5d9c884c 29749 "alias" : "iops_rd_max_length"
de0983cb 29750 },
44660702 29751 "iops_rd_max" : {
de0983cb 29752 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702
DM
29753 "format_description" : "iops",
29754 "optional" : 1,
29755 "type" : "integer"
29756 },
5d9c884c
DM
29757 "iops_rd_max_length" : {
29758 "description" : "Maximum length of read I/O bursts in seconds.",
29759 "format_description" : "seconds",
29760 "minimum" : 1,
29761 "optional" : 1,
29762 "type" : "integer"
29763 },
44660702 29764 "iops_wr" : {
de0983cb 29765 "description" : "Maximum write I/O in operations per second.",
44660702
DM
29766 "format_description" : "iops",
29767 "optional" : 1,
29768 "type" : "integer"
29769 },
de0983cb 29770 "iops_wr_length" : {
5d9c884c 29771 "alias" : "iops_wr_max_length"
de0983cb 29772 },
44660702 29773 "iops_wr_max" : {
de0983cb 29774 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702
DM
29775 "format_description" : "iops",
29776 "optional" : 1,
29777 "type" : "integer"
29778 },
5d9c884c
DM
29779 "iops_wr_max_length" : {
29780 "description" : "Maximum length of write I/O bursts in seconds.",
29781 "format_description" : "seconds",
29782 "minimum" : 1,
29783 "optional" : 1,
29784 "type" : "integer"
29785 },
44660702
DM
29786 "iothread" : {
29787 "description" : "Whether to use iothreads for this drive",
44660702
DM
29788 "optional" : 1,
29789 "type" : "boolean"
29790 },
29791 "mbps" : {
de0983cb 29792 "description" : "Maximum r/w speed in megabytes per second.",
44660702
DM
29793 "format_description" : "mbps",
29794 "optional" : 1,
29795 "type" : "number"
29796 },
29797 "mbps_max" : {
de0983cb 29798 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702
DM
29799 "format_description" : "mbps",
29800 "optional" : 1,
29801 "type" : "number"
29802 },
29803 "mbps_rd" : {
de0983cb 29804 "description" : "Maximum read speed in megabytes per second.",
44660702
DM
29805 "format_description" : "mbps",
29806 "optional" : 1,
29807 "type" : "number"
29808 },
29809 "mbps_rd_max" : {
de0983cb 29810 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702
DM
29811 "format_description" : "mbps",
29812 "optional" : 1,
29813 "type" : "number"
29814 },
29815 "mbps_wr" : {
de0983cb 29816 "description" : "Maximum write speed in megabytes per second.",
44660702
DM
29817 "format_description" : "mbps",
29818 "optional" : 1,
29819 "type" : "number"
29820 },
29821 "mbps_wr_max" : {
de0983cb 29822 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702
DM
29823 "format_description" : "mbps",
29824 "optional" : 1,
29825 "type" : "number"
29826 },
29827 "media" : {
29828 "default" : "disk",
29829 "description" : "The drive's media type.",
29830 "enum" : [
29831 "cdrom",
29832 "disk"
29833 ],
44660702
DM
29834 "optional" : 1,
29835 "type" : "string"
29836 },
5d9c884c
DM
29837 "replicate" : {
29838 "default" : 1,
29839 "description" : "Whether the drive should considered for replication jobs.",
29840 "optional" : 1,
29841 "type" : "boolean"
29842 },
44660702
DM
29843 "rerror" : {
29844 "description" : "Read error action.",
29845 "enum" : [
29846 "ignore",
29847 "report",
29848 "stop"
29849 ],
44660702
DM
29850 "optional" : 1,
29851 "type" : "string"
29852 },
5370fa8c
TL
29853 "ro" : {
29854 "description" : "Whether the drive is read-only.",
29855 "optional" : 1,
29856 "type" : "boolean"
29857 },
44660702
DM
29858 "secs" : {
29859 "description" : "Force the drive's physical geometry to have a specific sector count.",
44660702
DM
29860 "optional" : 1,
29861 "type" : "integer"
29862 },
29863 "serial" : {
29864 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
29865 "format" : "urlencoded",
29866 "format_description" : "serial",
29867 "maxLength" : 60,
29868 "optional" : 1,
29869 "type" : "string"
29870 },
27a7acb2
DM
29871 "shared" : {
29872 "default" : 0,
29873 "description" : "Mark this locally-managed volume as available on all nodes",
29874 "optional" : 1,
29875 "type" : "boolean",
29876 "verbose_description" : "Mark this locally-managed volume as available on all nodes.\n\nWARNING: This option does not share the volume automatically, it assumes it is shared already!"
29877 },
44660702
DM
29878 "size" : {
29879 "description" : "Disk size. This is purely informational and has no effect.",
29880 "format" : "disk-size",
f004f5b9 29881 "format_description" : "DiskSize",
44660702
DM
29882 "optional" : 1,
29883 "type" : "string"
29884 },
29885 "snapshot" : {
27a7acb2 29886 "description" : "Controls qemu's snapshot mode feature. If activated, changes made to the disk are temporary and will be discarded when the VM is shutdown.",
44660702
DM
29887 "optional" : 1,
29888 "type" : "boolean"
29889 },
29890 "trans" : {
29891 "description" : "Force disk geometry bios translation mode.",
29892 "enum" : [
29893 "none",
29894 "lba",
29895 "auto"
29896 ],
44660702
DM
29897 "optional" : 1,
29898 "type" : "string"
29899 },
29900 "volume" : {
29901 "alias" : "file"
29902 },
29903 "werror" : {
29904 "description" : "Write error action.",
29905 "enum" : [
29906 "enospc",
29907 "ignore",
29908 "report",
29909 "stop"
29910 ],
44660702
DM
29911 "optional" : 1,
29912 "type" : "string"
29913 }
29914 },
29915 "optional" : 1,
4bd7df8b 29916 "type" : "string",
7af2edf9 29917 "typetext" : "[file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<source volume>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,ro=<1|0>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]"
7aacca6f 29918 },
4d47f125
TL
29919 "vmgenid" : {
29920 "default" : "1 (autogenerated)",
29921 "description" : "Set VM Generation ID. Use '1' to autogenerate on create or update, pass '0' to disable explicitly.",
29922 "format_description" : "UUID",
29923 "optional" : 1,
29924 "pattern" : "(?:[a-fA-F0-9]{8}(?:-[a-fA-F0-9]{4}){3}-[a-fA-F0-9]{12}|[01])",
29925 "type" : "string",
4772952b 29926 "verbose_description" : "The VM generation ID (vmgenid) device exposes a 128-bit integer value identifier to the guest OS. This allows to notify the guest operating system when the virtual machine is executed with a different configuration (e.g. snapshot execution or creation from a template). The guest operating system notices the change, and is then able to react as appropriate by marking its copies of distributed databases as dirty, re-initializing its random number generator, etc.\nNote that auto-creation only works when done through API/CLI create or update methods, but not when manually editing the config file."
4d47f125 29927 },
44660702
DM
29928 "vmid" : {
29929 "description" : "The (unique) ID of the VM.",
29930 "format" : "pve-vmid",
8dd66e12
TL
29931 "maximum" : 999999999,
29932 "minimum" : 100,
4bd7df8b 29933 "type" : "integer",
8dd66e12 29934 "typetext" : "<integer> (100 - 999999999)"
44660702 29935 },
2489d6df
WB
29936 "vmstatestorage" : {
29937 "description" : "Default storage for VM state volumes/files.",
29938 "format" : "pve-storage-id",
907e4bc3 29939 "format_description" : "storage ID",
2489d6df
WB
29940 "optional" : 1,
29941 "type" : "string",
907e4bc3 29942 "typetext" : "<storage ID>"
2489d6df 29943 },
44660702 29944 "watchdog" : {
c2993fe5 29945 "description" : "Create a virtual hardware watchdog device.",
44660702 29946 "format" : "pve-qm-watchdog",
7aacca6f 29947 "optional" : 1,
c2993fe5 29948 "type" : "string",
013dc89f 29949 "typetext" : "[[model=]<i6300esb|ib700>] [,action=<enum>]",
c2993fe5 29950 "verbose_description" : "Create a virtual hardware watchdog device. Once enabled (by a guest action), the watchdog must be periodically polled by an agent inside the guest or else the watchdog will reset the guest (or execute the respective action specified)"
56122987 29951 }
44660702 29952 }
56122987 29953 },
56122987 29954 "permissions" : {
159464a9 29955 "description" : "You need 'VM.Allocate' permissions on /vms/{vmid} or on the VM pool /pool/{pool}. For restore (option 'archive'), it is enough if the user has 'VM.Backup' permission and the VM already exists. If you create disks you need 'Datastore.AllocateSpace' on any used storage.If you use a bridge/vlan, you need 'SDN.Use' on any used bridge/vlan.",
44660702 29956 "user" : "all"
56122987 29957 },
44660702
DM
29958 "protected" : 1,
29959 "proxyto" : "node",
56122987 29960 "returns" : {
44660702 29961 "type" : "string"
7aacca6f 29962 }
56122987 29963 }
7aacca6f 29964 },
44660702 29965 "leaf" : 0,
7aacca6f 29966 "path" : "/nodes/{node}/qemu",
44660702 29967 "text" : "qemu"
56122987
DM
29968 },
29969 {
29970 "children" : [
29971 {
56122987
DM
29972 "children" : [
29973 {
56122987 29974 "info" : {
44660702 29975 "GET" : {
e9cd3bd4 29976 "allowtoken" : 1,
44660702
DM
29977 "description" : "Get container configuration.",
29978 "method" : "GET",
29979 "name" : "vm_config",
29980 "parameters" : {
29981 "additionalProperties" : 0,
29982 "properties" : {
1c532546
TL
29983 "current" : {
29984 "default" : 0,
29985 "description" : "Get current values (instead of pending values).",
29986 "optional" : 1,
29987 "type" : "boolean",
29988 "typetext" : "<boolean>"
29989 },
44660702
DM
29990 "node" : {
29991 "description" : "The cluster node name.",
29992 "format" : "pve-node",
013dc89f 29993 "type" : "string",
4d47f125
TL
29994 "typetext" : "<string>"
29995 },
5f26e15b
TL
29996 "snapshot" : {
29997 "description" : "Fetch config values from given snapshot.",
29998 "format" : "pve-configid",
29999 "maxLength" : 40,
30000 "optional" : 1,
30001 "type" : "string",
30002 "typetext" : "<string>"
30003 },
4d47f125
TL
30004 "vmid" : {
30005 "description" : "The (unique) ID of the VM.",
30006 "format" : "pve-vmid",
8dd66e12
TL
30007 "maximum" : 999999999,
30008 "minimum" : 100,
4d47f125 30009 "type" : "integer",
8dd66e12 30010 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
30011 }
30012 }
30013 },
30014 "permissions" : {
30015 "check" : [
30016 "perm",
30017 "/vms/{vmid}",
30018 [
30019 "VM.Audit"
30020 ]
30021 ]
30022 },
30023 "proxyto" : "node",
30024 "returns" : {
30025 "properties" : {
30026 "arch" : {
30027 "default" : "amd64",
30028 "description" : "OS architecture type.",
30029 "enum" : [
30030 "amd64",
30031 "i386",
30032 "arm64",
9d2e98ed
TL
30033 "armhf",
30034 "riscv32",
30035 "riscv64"
4d47f125
TL
30036 ],
30037 "optional" : 1,
30038 "type" : "string"
30039 },
30040 "cmode" : {
30041 "default" : "tty",
30042 "description" : "Console mode. By default, the console command tries to open a connection to one of the available tty devices. By setting cmode to 'console' it tries to attach to /dev/console instead. If you set cmode to 'shell', it simply invokes a shell inside the container (no login).",
30043 "enum" : [
30044 "shell",
30045 "console",
30046 "tty"
30047 ],
30048 "optional" : 1,
30049 "type" : "string"
30050 },
30051 "console" : {
30052 "default" : 1,
30053 "description" : "Attach a console device (/dev/console) to the container.",
30054 "optional" : 1,
30055 "type" : "boolean"
30056 },
30057 "cores" : {
30058 "description" : "The number of cores assigned to the container. A container can use all available cores by default.",
4772952b 30059 "maximum" : 8192,
4d47f125
TL
30060 "minimum" : 1,
30061 "optional" : 1,
30062 "type" : "integer"
30063 },
30064 "cpulimit" : {
30065 "default" : 0,
30066 "description" : "Limit of CPU usage.\n\nNOTE: If the computer has 2 CPUs, it has a total of '2' CPU time. Value '0' indicates no CPU limit.",
4772952b 30067 "maximum" : 8192,
4d47f125
TL
30068 "minimum" : 0,
30069 "optional" : 1,
30070 "type" : "number"
30071 },
30072 "cpuunits" : {
4e7f60c2
TL
30073 "default" : "cgroup v1: 1024, cgroup v2: 100",
30074 "description" : "CPU weight for a container, will be clamped to [1, 10000] in cgroup v2.",
4d47f125
TL
30075 "maximum" : 500000,
30076 "minimum" : 0,
30077 "optional" : 1,
4e7f60c2
TL
30078 "type" : "integer",
30079 "verbose_description" : "CPU weight for a container. Argument is used in the kernel fair scheduler. The larger the number is, the more CPU time this container gets. Number is relative to the weights of all the other running guests."
4d47f125 30080 },
739d4d64
TL
30081 "debug" : {
30082 "default" : 0,
30083 "description" : "Try to be more verbose. For now this only enables debug log-level on start.",
30084 "optional" : 1,
30085 "type" : "boolean"
30086 },
4d47f125 30087 "description" : {
8f4d9c87
TL
30088 "description" : "Description for the Container. Shown in the web-interface CT's summary. This is saved as comment inside the configuration file.",
30089 "maxLength" : 8192,
4d47f125
TL
30090 "optional" : 1,
30091 "type" : "string"
30092 },
fa22697b
TL
30093 "dev[n]" : {
30094 "description" : "Device to pass through to the container",
30095 "format" : {
30096 "gid" : {
30097 "description" : "Group ID to be assigned to the device node",
30098 "minimum" : 0,
30099 "optional" : 1,
30100 "type" : "integer"
30101 },
30102 "mode" : {
30103 "description" : "Access mode to be set on the device node",
30104 "format_description" : "Octal access mode",
30105 "optional" : 1,
30106 "pattern" : "0[0-7]{3}",
30107 "type" : "string"
30108 },
30109 "path" : {
30110 "default_key" : 1,
30111 "description" : "Device to pass through to the container",
30112 "format" : "pve-lxc-dev-string",
30113 "format_description" : "Path",
30114 "optional" : 1,
30115 "type" : "string",
30116 "verbose_description" : "Path to the device to pass through to the container"
30117 },
30118 "uid" : {
30119 "description" : "User ID to be assigned to the device node",
30120 "minimum" : 0,
30121 "optional" : 1,
30122 "type" : "integer"
30123 }
30124 },
30125 "optional" : 1,
30126 "type" : "string"
30127 },
4d47f125
TL
30128 "digest" : {
30129 "description" : "SHA1 digest of configuration file. This can be used to prevent concurrent modifications.",
30130 "type" : "string"
30131 },
30132 "features" : {
30133 "description" : "Allow containers access to advanced features.",
30134 "format" : {
c5aa7e14
TL
30135 "force_rw_sys" : {
30136 "default" : 0,
30137 "description" : "Mount /sys in unprivileged containers as `rw` instead of `mixed`. This can break networking under newer (>= v245) systemd-network use.",
30138 "optional" : 1,
30139 "type" : "boolean"
30140 },
e2d681b3
TL
30141 "fuse" : {
30142 "default" : 0,
30143 "description" : "Allow using 'fuse' file systems in a container. Note that interactions between fuse and the freezer cgroup can potentially cause I/O deadlocks.",
30144 "optional" : 1,
30145 "type" : "boolean"
30146 },
4d47f125
TL
30147 "keyctl" : {
30148 "default" : 0,
30149 "description" : "For unprivileged containers only: Allow the use of the keyctl() system call. This is required to use docker inside a container. By default unprivileged containers will see this system call as non-existent. This is mostly a workaround for systemd-networkd, as it will treat it as a fatal error when some keyctl() operations are denied by the kernel due to lacking permissions. Essentially, you can choose between running systemd-networkd or docker.",
30150 "optional" : 1,
30151 "type" : "boolean"
30152 },
c5aa7e14
TL
30153 "mknod" : {
30154 "default" : 0,
30155 "description" : "Allow unprivileged containers to use mknod() to add certain device nodes. This requires a kernel with seccomp trap to user space support (5.3 or newer). This is experimental.",
30156 "optional" : 1,
30157 "type" : "boolean"
30158 },
4d47f125
TL
30159 "mount" : {
30160 "description" : "Allow mounting file systems of specific types. This should be a list of file system types as used with the mount command. Note that this can have negative effects on the container's security. With access to a loop device, mounting a file can circumvent the mknod permission of the devices cgroup, mounting an NFS file system can block the host's I/O completely and prevent it from rebooting, etc.",
30161 "format_description" : "fstype;fstype;...",
30162 "optional" : 1,
95895385 30163 "pattern" : "(?^:[a-zA-Z0-9_; ]+)",
4d47f125
TL
30164 "type" : "string"
30165 },
30166 "nesting" : {
30167 "default" : 0,
30168 "description" : "Allow nesting. Best used with unprivileged containers with additional id mapping. Note that this will expose procfs and sysfs contents of the host to the guest.",
30169 "optional" : 1,
30170 "type" : "boolean"
30171 }
30172 },
30173 "optional" : 1,
30174 "type" : "string"
30175 },
5f26e15b
TL
30176 "hookscript" : {
30177 "description" : "Script that will be exectued during various steps in the containers lifetime.",
30178 "format" : "pve-volume-id",
30179 "optional" : 1,
30180 "type" : "string"
30181 },
4d47f125
TL
30182 "hostname" : {
30183 "description" : "Set a host name for the container.",
30184 "format" : "dns-name",
30185 "maxLength" : 255,
30186 "optional" : 1,
30187 "type" : "string"
30188 },
30189 "lock" : {
4e7f60c2 30190 "description" : "Lock/unlock the container.",
4d47f125
TL
30191 "enum" : [
30192 "backup",
bb4c8cf8 30193 "create",
1c532546 30194 "destroyed",
4d47f125 30195 "disk",
bb4c8cf8 30196 "fstrim",
4d47f125
TL
30197 "migrate",
30198 "mounted",
30199 "rollback",
30200 "snapshot",
30201 "snapshot-delete"
30202 ],
30203 "optional" : 1,
30204 "type" : "string"
30205 },
30206 "lxc" : {
30207 "description" : "Array of lxc low-level configurations ([[key1, value1], [key2, value2] ...]).",
30208 "items" : {
30209 "items" : {
30210 "type" : "string"
30211 },
30212 "type" : "array"
30213 },
30214 "optional" : 1,
30215 "type" : "array"
30216 },
30217 "memory" : {
30218 "default" : 512,
4e7f60c2 30219 "description" : "Amount of RAM for the container in MB.",
4d47f125
TL
30220 "minimum" : 16,
30221 "optional" : 1,
30222 "type" : "integer"
30223 },
30224 "mp[n]" : {
d2656385 30225 "description" : "Use volume as container mount point. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume.",
4d47f125
TL
30226 "format" : {
30227 "acl" : {
30228 "description" : "Explicitly enable or disable ACL support.",
30229 "optional" : 1,
30230 "type" : "boolean"
30231 },
30232 "backup" : {
30233 "description" : "Whether to include the mount point in backups.",
30234 "optional" : 1,
30235 "type" : "boolean",
30236 "verbose_description" : "Whether to include the mount point in backups (only used for volume mount points)."
30237 },
7cbed89a
TL
30238 "mountoptions" : {
30239 "description" : "Extra mount options for rootfs/mps.",
30240 "format_description" : "opt[;opt...]",
30241 "optional" : 1,
c30bb419 30242 "pattern" : "(?^:(?^:(noatime|lazytime|nodev|nosuid|noexec))(;(?^:(noatime|lazytime|nodev|nosuid|noexec)))*)",
7cbed89a
TL
30243 "type" : "string"
30244 },
4d47f125
TL
30245 "mp" : {
30246 "description" : "Path to the mount point as seen from inside the container (must not contain symlinks).",
30247 "format" : "pve-lxc-mp-string",
30248 "format_description" : "Path",
30249 "type" : "string",
30250 "verbose_description" : "Path to the mount point as seen from inside the container.\n\nNOTE: Must not contain any symlinks for security reasons."
30251 },
30252 "quota" : {
30253 "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
30254 "optional" : 1,
30255 "type" : "boolean"
30256 },
30257 "replicate" : {
30258 "default" : 1,
30259 "description" : "Will include this volume to a storage replica job.",
30260 "optional" : 1,
30261 "type" : "boolean"
30262 },
30263 "ro" : {
30264 "description" : "Read-only mount point",
30265 "optional" : 1,
30266 "type" : "boolean"
30267 },
30268 "shared" : {
30269 "default" : 0,
30270 "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
30271 "optional" : 1,
30272 "type" : "boolean",
30273 "verbose_description" : "Mark this non-volume mount point as available on all nodes.\n\nWARNING: This option does not share the mount point automatically, it assumes it is shared already!"
30274 },
30275 "size" : {
30276 "description" : "Volume size (read only value).",
30277 "format" : "disk-size",
30278 "format_description" : "DiskSize",
30279 "optional" : 1,
30280 "type" : "string"
30281 },
30282 "volume" : {
30283 "default_key" : 1,
30284 "description" : "Volume, device or directory to mount into the container.",
30285 "format" : "pve-lxc-mp-string",
30286 "format_description" : "volume",
30287 "type" : "string"
30288 }
30289 },
30290 "optional" : 1,
30291 "type" : "string"
30292 },
30293 "nameserver" : {
30294 "description" : "Sets DNS server IP address for a container. Create will automatically use the setting from the host if you neither set searchdomain nor nameserver.",
d2656385 30295 "format" : "lxc-ip-with-ll-iface-list",
4d47f125
TL
30296 "optional" : 1,
30297 "type" : "string"
30298 },
30299 "net[n]" : {
30300 "description" : "Specifies network interfaces for the container.",
30301 "format" : {
30302 "bridge" : {
30303 "description" : "Bridge to attach the network device to.",
30304 "format_description" : "bridge",
30305 "optional" : 1,
30306 "pattern" : "[-_.\\w\\d]+",
30307 "type" : "string"
30308 },
30309 "firewall" : {
30310 "description" : "Controls whether this interface's firewall rules should be used.",
30311 "optional" : 1,
30312 "type" : "boolean"
30313 },
30314 "gw" : {
30315 "description" : "Default gateway for IPv4 traffic.",
30316 "format" : "ipv4",
30317 "format_description" : "GatewayIPv4",
30318 "optional" : 1,
30319 "type" : "string"
30320 },
30321 "gw6" : {
30322 "description" : "Default gateway for IPv6 traffic.",
30323 "format" : "ipv6",
30324 "format_description" : "GatewayIPv6",
30325 "optional" : 1,
30326 "type" : "string"
30327 },
30328 "hwaddr" : {
30329 "description" : "The interface MAC address. This is dynamically allocated by default, but you can set that statically if needed, for example to always have the same link-local IPv6 address. (lxc.network.hwaddr)",
95895385 30330 "format" : "mac-addr",
4d47f125
TL
30331 "format_description" : "XX:XX:XX:XX:XX:XX",
30332 "optional" : 1,
95895385
TL
30333 "type" : "string",
30334 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
4d47f125
TL
30335 },
30336 "ip" : {
30337 "description" : "IPv4 address in CIDR format.",
30338 "format" : "pve-ipv4-config",
30339 "format_description" : "(IPv4/CIDR|dhcp|manual)",
30340 "optional" : 1,
30341 "type" : "string"
30342 },
30343 "ip6" : {
30344 "description" : "IPv6 address in CIDR format.",
30345 "format" : "pve-ipv6-config",
30346 "format_description" : "(IPv6/CIDR|auto|dhcp|manual)",
30347 "optional" : 1,
30348 "type" : "string"
30349 },
9d2e98ed
TL
30350 "link_down" : {
30351 "description" : "Whether this interface should be disconnected (like pulling the plug).",
30352 "optional" : 1,
30353 "type" : "boolean"
30354 },
4d47f125
TL
30355 "mtu" : {
30356 "description" : "Maximum transfer unit of the interface. (lxc.network.mtu)",
81a3384d 30357 "maximum" : 65535,
4d47f125
TL
30358 "minimum" : 64,
30359 "optional" : 1,
30360 "type" : "integer"
30361 },
30362 "name" : {
30363 "description" : "Name of the network device as seen from inside the container. (lxc.network.name)",
30364 "format_description" : "string",
30365 "pattern" : "[-_.\\w\\d]+",
30366 "type" : "string"
30367 },
30368 "rate" : {
30369 "description" : "Apply rate limiting to the interface",
30370 "format_description" : "mbps",
30371 "optional" : 1,
30372 "type" : "number"
30373 },
30374 "tag" : {
30375 "description" : "VLAN tag for this interface.",
30376 "maximum" : 4094,
30377 "minimum" : 1,
30378 "optional" : 1,
30379 "type" : "integer"
30380 },
30381 "trunks" : {
30382 "description" : "VLAN ids to pass through the interface",
30383 "format_description" : "vlanid[;vlanid...]",
30384 "optional" : 1,
30385 "pattern" : "(?^:\\d+(?:;\\d+)*)",
30386 "type" : "string"
30387 },
30388 "type" : {
30389 "description" : "Network interface type.",
30390 "enum" : [
30391 "veth"
30392 ],
30393 "optional" : 1,
30394 "type" : "string"
30395 }
30396 },
30397 "optional" : 1,
30398 "type" : "string"
30399 },
30400 "onboot" : {
30401 "default" : 0,
4e7f60c2 30402 "description" : "Specifies whether a container will be started during system bootup.",
4d47f125
TL
30403 "optional" : 1,
30404 "type" : "boolean"
30405 },
30406 "ostype" : {
30407 "description" : "OS type. This is used to setup configuration inside the container, and corresponds to lxc setup scripts in /usr/share/lxc/config/<ostype>.common.conf. Value 'unmanaged' can be used to skip and OS specific setup.",
30408 "enum" : [
30409 "debian",
d2656385 30410 "devuan",
4d47f125
TL
30411 "ubuntu",
30412 "centos",
30413 "fedora",
30414 "opensuse",
30415 "archlinux",
30416 "alpine",
30417 "gentoo",
7af2edf9 30418 "nixos",
4d47f125
TL
30419 "unmanaged"
30420 ],
30421 "optional" : 1,
30422 "type" : "string"
30423 },
30424 "protection" : {
30425 "default" : 0,
30426 "description" : "Sets the protection flag of the container. This will prevent the CT or CT's disk remove/update operation.",
30427 "optional" : 1,
30428 "type" : "boolean"
30429 },
30430 "rootfs" : {
30431 "description" : "Use volume as container root.",
30432 "format" : {
30433 "acl" : {
30434 "description" : "Explicitly enable or disable ACL support.",
30435 "optional" : 1,
30436 "type" : "boolean"
30437 },
7cbed89a
TL
30438 "mountoptions" : {
30439 "description" : "Extra mount options for rootfs/mps.",
30440 "format_description" : "opt[;opt...]",
30441 "optional" : 1,
c30bb419 30442 "pattern" : "(?^:(?^:(noatime|lazytime|nodev|nosuid|noexec))(;(?^:(noatime|lazytime|nodev|nosuid|noexec)))*)",
7cbed89a
TL
30443 "type" : "string"
30444 },
4d47f125
TL
30445 "quota" : {
30446 "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
30447 "optional" : 1,
30448 "type" : "boolean"
30449 },
30450 "replicate" : {
30451 "default" : 1,
30452 "description" : "Will include this volume to a storage replica job.",
30453 "optional" : 1,
30454 "type" : "boolean"
30455 },
30456 "ro" : {
30457 "description" : "Read-only mount point",
30458 "optional" : 1,
30459 "type" : "boolean"
30460 },
30461 "shared" : {
30462 "default" : 0,
30463 "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
30464 "optional" : 1,
30465 "type" : "boolean",
30466 "verbose_description" : "Mark this non-volume mount point as available on all nodes.\n\nWARNING: This option does not share the mount point automatically, it assumes it is shared already!"
30467 },
30468 "size" : {
30469 "description" : "Volume size (read only value).",
30470 "format" : "disk-size",
30471 "format_description" : "DiskSize",
30472 "optional" : 1,
30473 "type" : "string"
30474 },
30475 "volume" : {
30476 "default_key" : 1,
30477 "description" : "Volume, device or directory to mount into the container.",
30478 "format" : "pve-lxc-mp-string",
30479 "format_description" : "volume",
30480 "type" : "string"
30481 }
30482 },
30483 "optional" : 1,
30484 "type" : "string"
30485 },
30486 "searchdomain" : {
30487 "description" : "Sets DNS search domains for a container. Create will automatically use the setting from the host if you neither set searchdomain nor nameserver.",
30488 "format" : "dns-name-list",
30489 "optional" : 1,
30490 "type" : "string"
30491 },
30492 "startup" : {
30493 "description" : "Startup and shutdown behavior. Order is a non-negative number defining the general startup order. Shutdown in done with reverse ordering. Additionally you can set the 'up' or 'down' delay in seconds, which specifies a delay to wait before the next VM is started or stopped.",
30494 "format" : "pve-startup-order",
30495 "optional" : 1,
30496 "type" : "string",
30497 "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
30498 },
30499 "swap" : {
30500 "default" : 512,
4e7f60c2 30501 "description" : "Amount of SWAP for the container in MB.",
4d47f125
TL
30502 "minimum" : 0,
30503 "optional" : 1,
30504 "type" : "integer"
30505 },
5c1699e5
TL
30506 "tags" : {
30507 "description" : "Tags of the Container. This is only meta information.",
30508 "format" : "pve-tag-list",
30509 "optional" : 1,
30510 "type" : "string"
30511 },
4d47f125
TL
30512 "template" : {
30513 "default" : 0,
30514 "description" : "Enable/disable Template.",
30515 "optional" : 1,
30516 "type" : "boolean"
44660702 30517 },
04d22a9f
TL
30518 "timezone" : {
30519 "description" : "Time zone to use in the container. If option isn't set, then nothing will be done. Can be set to 'host' to match the host time zone, or an arbitrary time zone option from /usr/share/zoneinfo/zone.tab",
30520 "format" : "pve-ct-timezone",
30521 "optional" : 1,
30522 "type" : "string"
30523 },
4d47f125
TL
30524 "tty" : {
30525 "default" : 2,
30526 "description" : "Specify the number of tty available to the container",
30527 "maximum" : 6,
30528 "minimum" : 0,
30529 "optional" : 1,
30530 "type" : "integer"
30531 },
30532 "unprivileged" : {
30533 "default" : 0,
30534 "description" : "Makes the container run as unprivileged user. (Should not be modified manually.)",
30535 "optional" : 1,
30536 "type" : "boolean"
30537 },
30538 "unused[n]" : {
30539 "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
c5aa7e14
TL
30540 "format" : {
30541 "volume" : {
30542 "default_key" : 1,
30543 "description" : "The volume that is not used currently.",
30544 "format" : "pve-volume-id",
30545 "format_description" : "volume",
30546 "type" : "string"
30547 }
30548 },
4d47f125 30549 "optional" : 1,
44660702
DM
30550 "type" : "string"
30551 }
30552 },
30553 "type" : "object"
30554 }
30555 },
56122987 30556 "PUT" : {
e9cd3bd4 30557 "allowtoken" : 1,
44660702
DM
30558 "description" : "Set container options.",
30559 "method" : "PUT",
30560 "name" : "update_vm",
56122987 30561 "parameters" : {
44660702 30562 "additionalProperties" : 0,
56122987 30563 "properties" : {
44660702
DM
30564 "arch" : {
30565 "default" : "amd64",
30566 "description" : "OS architecture type.",
30567 "enum" : [
30568 "amd64",
4d47f125
TL
30569 "i386",
30570 "arm64",
9d2e98ed
TL
30571 "armhf",
30572 "riscv32",
30573 "riscv64"
44660702 30574 ],
7aacca6f 30575 "optional" : 1,
44660702
DM
30576 "type" : "string"
30577 },
30578 "cmode" : {
7aacca6f 30579 "default" : "tty",
44660702 30580 "description" : "Console mode. By default, the console command tries to open a connection to one of the available tty devices. By setting cmode to 'console' it tries to attach to /dev/console instead. If you set cmode to 'shell', it simply invokes a shell inside the container (no login).",
7aacca6f
DM
30581 "enum" : [
30582 "shell",
30583 "console",
30584 "tty"
30585 ],
44660702
DM
30586 "optional" : 1,
30587 "type" : "string"
7aacca6f 30588 },
44660702
DM
30589 "console" : {
30590 "default" : 1,
30591 "description" : "Attach a console device (/dev/console) to the container.",
7aacca6f 30592 "optional" : 1,
013dc89f
DM
30593 "type" : "boolean",
30594 "typetext" : "<boolean>"
7aacca6f 30595 },
de0983cb
DM
30596 "cores" : {
30597 "description" : "The number of cores assigned to the container. A container can use all available cores by default.",
4772952b 30598 "maximum" : 8192,
de0983cb
DM
30599 "minimum" : 1,
30600 "optional" : 1,
30601 "type" : "integer",
4772952b 30602 "typetext" : "<integer> (1 - 8192)"
de0983cb 30603 },
44660702
DM
30604 "cpulimit" : {
30605 "default" : 0,
30606 "description" : "Limit of CPU usage.\n\nNOTE: If the computer has 2 CPUs, it has a total of '2' CPU time. Value '0' indicates no CPU limit.",
4772952b 30607 "maximum" : 8192,
7aacca6f 30608 "minimum" : 0,
7aacca6f 30609 "optional" : 1,
4bd7df8b 30610 "type" : "number",
4772952b 30611 "typetext" : "<number> (0 - 8192)"
7aacca6f 30612 },
44660702 30613 "cpuunits" : {
4e7f60c2
TL
30614 "default" : "cgroup v1: 1024, cgroup v2: 100",
30615 "description" : "CPU weight for a container, will be clamped to [1, 10000] in cgroup v2.",
44660702
DM
30616 "maximum" : 500000,
30617 "minimum" : 0,
30618 "optional" : 1,
4bd7df8b 30619 "type" : "integer",
4e7f60c2
TL
30620 "typetext" : "<integer> (0 - 500000)",
30621 "verbose_description" : "CPU weight for a container. Argument is used in the kernel fair scheduler. The larger the number is, the more CPU time this container gets. Number is relative to the weights of all the other running guests."
7aacca6f 30622 },
739d4d64
TL
30623 "debug" : {
30624 "default" : 0,
30625 "description" : "Try to be more verbose. For now this only enables debug log-level on start.",
30626 "optional" : 1,
30627 "type" : "boolean",
30628 "typetext" : "<boolean>"
30629 },
44660702
DM
30630 "delete" : {
30631 "description" : "A list of settings you want to delete.",
30632 "format" : "pve-configid-list",
7aacca6f 30633 "optional" : 1,
013dc89f
DM
30634 "type" : "string",
30635 "typetext" : "<string>"
7aacca6f 30636 },
44660702 30637 "description" : {
8f4d9c87
TL
30638 "description" : "Description for the Container. Shown in the web-interface CT's summary. This is saved as comment inside the configuration file.",
30639 "maxLength" : 8192,
7aacca6f 30640 "optional" : 1,
013dc89f
DM
30641 "type" : "string",
30642 "typetext" : "<string>"
7aacca6f 30643 },
fa22697b
TL
30644 "dev[n]" : {
30645 "description" : "Device to pass through to the container",
30646 "format" : {
30647 "gid" : {
30648 "description" : "Group ID to be assigned to the device node",
30649 "minimum" : 0,
30650 "optional" : 1,
30651 "type" : "integer"
30652 },
30653 "mode" : {
30654 "description" : "Access mode to be set on the device node",
30655 "format_description" : "Octal access mode",
30656 "optional" : 1,
30657 "pattern" : "0[0-7]{3}",
30658 "type" : "string"
30659 },
30660 "path" : {
30661 "default_key" : 1,
30662 "description" : "Device to pass through to the container",
30663 "format" : "pve-lxc-dev-string",
30664 "format_description" : "Path",
30665 "optional" : 1,
30666 "type" : "string",
30667 "verbose_description" : "Path to the device to pass through to the container"
30668 },
30669 "uid" : {
30670 "description" : "User ID to be assigned to the device node",
30671 "minimum" : 0,
30672 "optional" : 1,
30673 "type" : "integer"
30674 }
30675 },
30676 "optional" : 1,
30677 "type" : "string",
30678 "typetext" : "[[path=]<Path>] [,gid=<integer>] [,mode=<Octal access mode>] [,uid=<integer>]"
30679 },
44660702
DM
30680 "digest" : {
30681 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
30682 "maxLength" : 40,
7aacca6f 30683 "optional" : 1,
013dc89f
DM
30684 "type" : "string",
30685 "typetext" : "<string>"
7aacca6f 30686 },
4d47f125
TL
30687 "features" : {
30688 "description" : "Allow containers access to advanced features.",
30689 "format" : {
c5aa7e14
TL
30690 "force_rw_sys" : {
30691 "default" : 0,
30692 "description" : "Mount /sys in unprivileged containers as `rw` instead of `mixed`. This can break networking under newer (>= v245) systemd-network use.",
30693 "optional" : 1,
30694 "type" : "boolean"
30695 },
e2d681b3
TL
30696 "fuse" : {
30697 "default" : 0,
30698 "description" : "Allow using 'fuse' file systems in a container. Note that interactions between fuse and the freezer cgroup can potentially cause I/O deadlocks.",
30699 "optional" : 1,
30700 "type" : "boolean"
30701 },
4d47f125
TL
30702 "keyctl" : {
30703 "default" : 0,
30704 "description" : "For unprivileged containers only: Allow the use of the keyctl() system call. This is required to use docker inside a container. By default unprivileged containers will see this system call as non-existent. This is mostly a workaround for systemd-networkd, as it will treat it as a fatal error when some keyctl() operations are denied by the kernel due to lacking permissions. Essentially, you can choose between running systemd-networkd or docker.",
30705 "optional" : 1,
30706 "type" : "boolean"
30707 },
c5aa7e14
TL
30708 "mknod" : {
30709 "default" : 0,
30710 "description" : "Allow unprivileged containers to use mknod() to add certain device nodes. This requires a kernel with seccomp trap to user space support (5.3 or newer). This is experimental.",
30711 "optional" : 1,
30712 "type" : "boolean"
30713 },
4d47f125
TL
30714 "mount" : {
30715 "description" : "Allow mounting file systems of specific types. This should be a list of file system types as used with the mount command. Note that this can have negative effects on the container's security. With access to a loop device, mounting a file can circumvent the mknod permission of the devices cgroup, mounting an NFS file system can block the host's I/O completely and prevent it from rebooting, etc.",
30716 "format_description" : "fstype;fstype;...",
30717 "optional" : 1,
95895385 30718 "pattern" : "(?^:[a-zA-Z0-9_; ]+)",
4d47f125
TL
30719 "type" : "string"
30720 },
30721 "nesting" : {
30722 "default" : 0,
30723 "description" : "Allow nesting. Best used with unprivileged containers with additional id mapping. Note that this will expose procfs and sysfs contents of the host to the guest.",
30724 "optional" : 1,
30725 "type" : "boolean"
30726 }
30727 },
30728 "optional" : 1,
30729 "type" : "string",
c5aa7e14 30730 "typetext" : "[force_rw_sys=<1|0>] [,fuse=<1|0>] [,keyctl=<1|0>] [,mknod=<1|0>] [,mount=<fstype;fstype;...>] [,nesting=<1|0>]"
4d47f125 30731 },
5f26e15b
TL
30732 "hookscript" : {
30733 "description" : "Script that will be exectued during various steps in the containers lifetime.",
30734 "format" : "pve-volume-id",
30735 "optional" : 1,
30736 "type" : "string",
30737 "typetext" : "<string>"
30738 },
44660702
DM
30739 "hostname" : {
30740 "description" : "Set a host name for the container.",
30741 "format" : "dns-name",
30742 "maxLength" : 255,
56122987 30743 "optional" : 1,
013dc89f
DM
30744 "type" : "string",
30745 "typetext" : "<string>"
44660702
DM
30746 },
30747 "lock" : {
4e7f60c2 30748 "description" : "Lock/unlock the container.",
44660702 30749 "enum" : [
44660702 30750 "backup",
bb4c8cf8 30751 "create",
1c532546 30752 "destroyed",
4d47f125 30753 "disk",
bb4c8cf8 30754 "fstrim",
4d47f125
TL
30755 "migrate",
30756 "mounted",
30757 "rollback",
44660702 30758 "snapshot",
4d47f125 30759 "snapshot-delete"
44660702
DM
30760 ],
30761 "optional" : 1,
30762 "type" : "string"
30763 },
30764 "memory" : {
30765 "default" : 512,
4e7f60c2 30766 "description" : "Amount of RAM for the container in MB.",
44660702
DM
30767 "minimum" : 16,
30768 "optional" : 1,
4bd7df8b 30769 "type" : "integer",
013dc89f 30770 "typetext" : "<integer> (16 - N)"
7aacca6f
DM
30771 },
30772 "mp[n]" : {
d2656385 30773 "description" : "Use volume as container mount point. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume.",
7aacca6f 30774 "format" : {
7aacca6f
DM
30775 "acl" : {
30776 "description" : "Explicitly enable or disable ACL support.",
7aacca6f 30777 "optional" : 1,
44660702 30778 "type" : "boolean"
7aacca6f
DM
30779 },
30780 "backup" : {
de0983cb 30781 "description" : "Whether to include the mount point in backups.",
7aacca6f 30782 "optional" : 1,
4bd7df8b 30783 "type" : "boolean",
de0983cb 30784 "verbose_description" : "Whether to include the mount point in backups (only used for volume mount points)."
7aacca6f 30785 },
7cbed89a
TL
30786 "mountoptions" : {
30787 "description" : "Extra mount options for rootfs/mps.",
30788 "format_description" : "opt[;opt...]",
30789 "optional" : 1,
c30bb419 30790 "pattern" : "(?^:(?^:(noatime|lazytime|nodev|nosuid|noexec))(;(?^:(noatime|lazytime|nodev|nosuid|noexec)))*)",
7cbed89a
TL
30791 "type" : "string"
30792 },
7aacca6f 30793 "mp" : {
de0983cb 30794 "description" : "Path to the mount point as seen from inside the container (must not contain symlinks).",
7aacca6f 30795 "format" : "pve-lxc-mp-string",
44660702 30796 "format_description" : "Path",
4bd7df8b 30797 "type" : "string",
de0983cb 30798 "verbose_description" : "Path to the mount point as seen from inside the container.\n\nNOTE: Must not contain any symlinks for security reasons."
44660702 30799 },
5d9c884c
DM
30800 "quota" : {
30801 "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
30802 "optional" : 1,
30803 "type" : "boolean"
30804 },
30805 "replicate" : {
30806 "default" : 1,
30807 "description" : "Will include this volume to a storage replica job.",
44660702
DM
30808 "optional" : 1,
30809 "type" : "boolean"
30810 },
30811 "ro" : {
de0983cb 30812 "description" : "Read-only mount point",
44660702
DM
30813 "optional" : 1,
30814 "type" : "boolean"
30815 },
de0983cb
DM
30816 "shared" : {
30817 "default" : 0,
30818 "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
30819 "optional" : 1,
30820 "type" : "boolean",
30821 "verbose_description" : "Mark this non-volume mount point as available on all nodes.\n\nWARNING: This option does not share the mount point automatically, it assumes it is shared already!"
30822 },
44660702
DM
30823 "size" : {
30824 "description" : "Volume size (read only value).",
30825 "format" : "disk-size",
30826 "format_description" : "DiskSize",
30827 "optional" : 1,
30828 "type" : "string"
30829 },
30830 "volume" : {
30831 "default_key" : 1,
30832 "description" : "Volume, device or directory to mount into the container.",
30833 "format" : "pve-lxc-mp-string",
30834 "format_description" : "volume",
30835 "type" : "string"
30836 }
30837 },
7aacca6f 30838 "optional" : 1,
4bd7df8b 30839 "type" : "string",
7cbed89a 30840 "typetext" : "[volume=]<volume> ,mp=<Path> [,acl=<1|0>] [,backup=<1|0>] [,mountoptions=<opt[;opt...]>] [,quota=<1|0>] [,replicate=<1|0>] [,ro=<1|0>] [,shared=<1|0>] [,size=<DiskSize>]"
56122987 30841 },
44660702
DM
30842 "nameserver" : {
30843 "description" : "Sets DNS server IP address for a container. Create will automatically use the setting from the host if you neither set searchdomain nor nameserver.",
d2656385 30844 "format" : "lxc-ip-with-ll-iface-list",
56122987 30845 "optional" : 1,
013dc89f
DM
30846 "type" : "string",
30847 "typetext" : "<string>"
56122987
DM
30848 },
30849 "net[n]" : {
44660702 30850 "description" : "Specifies network interfaces for the container.",
56122987 30851 "format" : {
44660702
DM
30852 "bridge" : {
30853 "description" : "Bridge to attach the network device to.",
f004f5b9 30854 "format_description" : "bridge",
56122987 30855 "optional" : 1,
44660702
DM
30856 "pattern" : "[-_.\\w\\d]+",
30857 "type" : "string"
56122987 30858 },
44660702
DM
30859 "firewall" : {
30860 "description" : "Controls whether this interface's firewall rules should be used.",
56122987 30861 "optional" : 1,
44660702 30862 "type" : "boolean"
56122987 30863 },
44660702
DM
30864 "gw" : {
30865 "description" : "Default gateway for IPv4 traffic.",
30866 "format" : "ipv4",
30867 "format_description" : "GatewayIPv4",
56122987 30868 "optional" : 1,
44660702 30869 "type" : "string"
56122987
DM
30870 },
30871 "gw6" : {
7aacca6f 30872 "description" : "Default gateway for IPv6 traffic.",
44660702
DM
30873 "format" : "ipv6",
30874 "format_description" : "GatewayIPv6",
7aacca6f 30875 "optional" : 1,
56122987
DM
30876 "type" : "string"
30877 },
44660702 30878 "hwaddr" : {
f004f5b9 30879 "description" : "The interface MAC address. This is dynamically allocated by default, but you can set that statically if needed, for example to always have the same link-local IPv6 address. (lxc.network.hwaddr)",
95895385 30880 "format" : "mac-addr",
f004f5b9 30881 "format_description" : "XX:XX:XX:XX:XX:XX",
44660702 30882 "optional" : 1,
95895385
TL
30883 "type" : "string",
30884 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
44660702
DM
30885 },
30886 "ip" : {
30887 "description" : "IPv4 address in CIDR format.",
30888 "format" : "pve-ipv4-config",
2489d6df 30889 "format_description" : "(IPv4/CIDR|dhcp|manual)",
56122987 30890 "optional" : 1,
44660702 30891 "type" : "string"
56122987 30892 },
7aacca6f 30893 "ip6" : {
7aacca6f
DM
30894 "description" : "IPv6 address in CIDR format.",
30895 "format" : "pve-ipv6-config",
2489d6df 30896 "format_description" : "(IPv6/CIDR|auto|dhcp|manual)",
7aacca6f 30897 "optional" : 1,
44660702 30898 "type" : "string"
56122987 30899 },
9d2e98ed
TL
30900 "link_down" : {
30901 "description" : "Whether this interface should be disconnected (like pulling the plug).",
30902 "optional" : 1,
30903 "type" : "boolean"
30904 },
44660702
DM
30905 "mtu" : {
30906 "description" : "Maximum transfer unit of the interface. (lxc.network.mtu)",
81a3384d 30907 "maximum" : 65535,
44660702 30908 "minimum" : 64,
56122987 30909 "optional" : 1,
44660702 30910 "type" : "integer"
56122987
DM
30911 },
30912 "name" : {
44660702 30913 "description" : "Name of the network device as seen from inside the container. (lxc.network.name)",
f004f5b9 30914 "format_description" : "string",
56122987 30915 "pattern" : "[-_.\\w\\d]+",
44660702 30916 "type" : "string"
56122987 30917 },
44660702
DM
30918 "rate" : {
30919 "description" : "Apply rate limiting to the interface",
30920 "format_description" : "mbps",
56122987 30921 "optional" : 1,
44660702 30922 "type" : "number"
7aacca6f 30923 },
44660702
DM
30924 "tag" : {
30925 "description" : "VLAN tag for this interface.",
4bd7df8b
DM
30926 "maximum" : 4094,
30927 "minimum" : 1,
56122987 30928 "optional" : 1,
7aacca6f 30929 "type" : "integer"
56122987 30930 },
44660702
DM
30931 "trunks" : {
30932 "description" : "VLAN ids to pass through the interface",
30933 "format_description" : "vlanid[;vlanid...]",
30934 "optional" : 1,
30935 "pattern" : "(?^:\\d+(?:;\\d+)*)",
30936 "type" : "string"
30937 },
30938 "type" : {
30939 "description" : "Network interface type.",
30940 "enum" : [
30941 "veth"
30942 ],
56122987 30943 "optional" : 1,
44660702 30944 "type" : "string"
56122987
DM
30945 }
30946 },
7aacca6f 30947 "optional" : 1,
4bd7df8b 30948 "type" : "string",
9d2e98ed 30949 "typetext" : "name=<string> [,bridge=<bridge>] [,firewall=<1|0>] [,gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,hwaddr=<XX:XX:XX:XX:XX:XX>] [,ip=<(IPv4/CIDR|dhcp|manual)>] [,ip6=<(IPv6/CIDR|auto|dhcp|manual)>] [,link_down=<1|0>] [,mtu=<integer>] [,rate=<mbps>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>] [,type=<veth>]"
56122987 30950 },
44660702
DM
30951 "node" : {
30952 "description" : "The cluster node name.",
30953 "format" : "pve-node",
013dc89f
DM
30954 "type" : "string",
30955 "typetext" : "<string>"
56122987 30956 },
44660702
DM
30957 "onboot" : {
30958 "default" : 0,
4e7f60c2 30959 "description" : "Specifies whether a container will be started during system bootup.",
56122987 30960 "optional" : 1,
013dc89f
DM
30961 "type" : "boolean",
30962 "typetext" : "<boolean>"
56122987 30963 },
44660702
DM
30964 "ostype" : {
30965 "description" : "OS type. This is used to setup configuration inside the container, and corresponds to lxc setup scripts in /usr/share/lxc/config/<ostype>.common.conf. Value 'unmanaged' can be used to skip and OS specific setup.",
30966 "enum" : [
30967 "debian",
d2656385 30968 "devuan",
44660702
DM
30969 "ubuntu",
30970 "centos",
30971 "fedora",
30972 "opensuse",
30973 "archlinux",
30974 "alpine",
57b78691 30975 "gentoo",
7af2edf9 30976 "nixos",
44660702
DM
30977 "unmanaged"
30978 ],
56122987 30979 "optional" : 1,
44660702 30980 "type" : "string"
56122987 30981 },
44660702
DM
30982 "protection" : {
30983 "default" : 0,
30984 "description" : "Sets the protection flag of the container. This will prevent the CT or CT's disk remove/update operation.",
56122987 30985 "optional" : 1,
013dc89f
DM
30986 "type" : "boolean",
30987 "typetext" : "<boolean>"
56122987 30988 },
1c532546
TL
30989 "revert" : {
30990 "description" : "Revert a pending change.",
30991 "format" : "pve-configid-list",
30992 "optional" : 1,
30993 "type" : "string",
30994 "typetext" : "<string>"
30995 },
7aacca6f
DM
30996 "rootfs" : {
30997 "description" : "Use volume as container root.",
56122987
DM
30998 "format" : {
30999 "acl" : {
44660702 31000 "description" : "Explicitly enable or disable ACL support.",
7aacca6f
DM
31001 "optional" : 1,
31002 "type" : "boolean"
56122987 31003 },
7cbed89a
TL
31004 "mountoptions" : {
31005 "description" : "Extra mount options for rootfs/mps.",
31006 "format_description" : "opt[;opt...]",
31007 "optional" : 1,
c30bb419 31008 "pattern" : "(?^:(?^:(noatime|lazytime|nodev|nosuid|noexec))(;(?^:(noatime|lazytime|nodev|nosuid|noexec)))*)",
7cbed89a
TL
31009 "type" : "string"
31010 },
44660702
DM
31011 "quota" : {
31012 "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
44660702
DM
31013 "optional" : 1,
31014 "type" : "boolean"
31015 },
5d9c884c
DM
31016 "replicate" : {
31017 "default" : 1,
31018 "description" : "Will include this volume to a storage replica job.",
31019 "optional" : 1,
31020 "type" : "boolean"
31021 },
44660702 31022 "ro" : {
de0983cb 31023 "description" : "Read-only mount point",
56122987 31024 "optional" : 1,
44660702
DM
31025 "type" : "boolean"
31026 },
de0983cb
DM
31027 "shared" : {
31028 "default" : 0,
31029 "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
31030 "optional" : 1,
31031 "type" : "boolean",
31032 "verbose_description" : "Mark this non-volume mount point as available on all nodes.\n\nWARNING: This option does not share the mount point automatically, it assumes it is shared already!"
31033 },
44660702 31034 "size" : {
7aacca6f 31035 "description" : "Volume size (read only value).",
44660702 31036 "format" : "disk-size",
56122987 31037 "format_description" : "DiskSize",
56122987 31038 "optional" : 1,
44660702 31039 "type" : "string"
7aacca6f
DM
31040 },
31041 "volume" : {
7aacca6f
DM
31042 "default_key" : 1,
31043 "description" : "Volume, device or directory to mount into the container.",
44660702
DM
31044 "format" : "pve-lxc-mp-string",
31045 "format_description" : "volume",
7aacca6f 31046 "type" : "string"
56122987 31047 }
44660702
DM
31048 },
31049 "optional" : 1,
4bd7df8b 31050 "type" : "string",
7cbed89a 31051 "typetext" : "[volume=]<volume> [,acl=<1|0>] [,mountoptions=<opt[;opt...]>] [,quota=<1|0>] [,replicate=<1|0>] [,ro=<1|0>] [,shared=<1|0>] [,size=<DiskSize>]"
44660702
DM
31052 },
31053 "searchdomain" : {
31054 "description" : "Sets DNS search domains for a container. Create will automatically use the setting from the host if you neither set searchdomain nor nameserver.",
31055 "format" : "dns-name-list",
31056 "optional" : 1,
013dc89f
DM
31057 "type" : "string",
31058 "typetext" : "<string>"
44660702
DM
31059 },
31060 "startup" : {
31061 "description" : "Startup and shutdown behavior. Order is a non-negative number defining the general startup order. Shutdown in done with reverse ordering. Additionally you can set the 'up' or 'down' delay in seconds, which specifies a delay to wait before the next VM is started or stopped.",
31062 "format" : "pve-startup-order",
31063 "optional" : 1,
31064 "type" : "string",
31065 "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
31066 },
31067 "swap" : {
31068 "default" : 512,
4e7f60c2 31069 "description" : "Amount of SWAP for the container in MB.",
44660702
DM
31070 "minimum" : 0,
31071 "optional" : 1,
4bd7df8b 31072 "type" : "integer",
013dc89f 31073 "typetext" : "<integer> (0 - N)"
56122987 31074 },
5c1699e5
TL
31075 "tags" : {
31076 "description" : "Tags of the Container. This is only meta information.",
31077 "format" : "pve-tag-list",
31078 "optional" : 1,
31079 "type" : "string",
31080 "typetext" : "<string>"
31081 },
56122987 31082 "template" : {
44660702 31083 "default" : 0,
7aacca6f 31084 "description" : "Enable/disable Template.",
56122987 31085 "optional" : 1,
013dc89f
DM
31086 "type" : "boolean",
31087 "typetext" : "<boolean>"
56122987 31088 },
04d22a9f
TL
31089 "timezone" : {
31090 "description" : "Time zone to use in the container. If option isn't set, then nothing will be done. Can be set to 'host' to match the host time zone, or an arbitrary time zone option from /usr/share/zoneinfo/zone.tab",
31091 "format" : "pve-ct-timezone",
31092 "optional" : 1,
31093 "type" : "string",
31094 "typetext" : "<string>"
31095 },
44660702
DM
31096 "tty" : {
31097 "default" : 2,
31098 "description" : "Specify the number of tty available to the container",
31099 "maximum" : 6,
31100 "minimum" : 0,
31101 "optional" : 1,
4bd7df8b 31102 "type" : "integer",
013dc89f 31103 "typetext" : "<integer> (0 - 6)"
56122987 31104 },
44660702
DM
31105 "unprivileged" : {
31106 "default" : 0,
31107 "description" : "Makes the container run as unprivileged user. (Should not be modified manually.)",
56122987 31108 "optional" : 1,
013dc89f
DM
31109 "type" : "boolean",
31110 "typetext" : "<boolean>"
56122987 31111 },
44660702 31112 "unused[n]" : {
c2993fe5 31113 "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
c5aa7e14
TL
31114 "format" : {
31115 "volume" : {
31116 "default_key" : 1,
31117 "description" : "The volume that is not used currently.",
31118 "format" : "pve-volume-id",
31119 "format_description" : "volume",
31120 "type" : "string"
31121 }
31122 },
56122987 31123 "optional" : 1,
013dc89f 31124 "type" : "string",
c5aa7e14 31125 "typetext" : "[volume=]<volume>"
44660702
DM
31126 },
31127 "vmid" : {
31128 "description" : "The (unique) ID of the VM.",
31129 "format" : "pve-vmid",
8dd66e12
TL
31130 "maximum" : 999999999,
31131 "minimum" : 100,
4bd7df8b 31132 "type" : "integer",
8dd66e12 31133 "typetext" : "<integer> (100 - 999999999)"
56122987 31134 }
44660702 31135 }
56122987 31136 },
56122987
DM
31137 "permissions" : {
31138 "check" : [
31139 "perm",
31140 "/vms/{vmid}",
31141 [
31142 "VM.Config.Disk",
31143 "VM.Config.CPU",
31144 "VM.Config.Memory",
31145 "VM.Config.Network",
31146 "VM.Config.Options"
31147 ],
31148 "any",
31149 1
52e44c50
FG
31150 ],
31151 "description" : "non-volume mount points in rootfs and mp[n] are restricted to root@pam"
56122987 31152 },
44660702
DM
31153 "protected" : 1,
31154 "proxyto" : "node",
56122987
DM
31155 "returns" : {
31156 "type" : "null"
7aacca6f 31157 }
56122987 31158 }
7aacca6f 31159 },
44660702 31160 "leaf" : 1,
7aacca6f 31161 "path" : "/nodes/{node}/lxc/{vmid}/config",
44660702 31162 "text" : "config"
56122987
DM
31163 },
31164 {
56122987
DM
31165 "children" : [
31166 {
31167 "info" : {
31168 "GET" : {
e9cd3bd4 31169 "allowtoken" : 1,
44660702 31170 "description" : "Get virtual machine status.",
7aacca6f 31171 "method" : "GET",
44660702 31172 "name" : "vm_status",
56122987 31173 "parameters" : {
44660702 31174 "additionalProperties" : 0,
56122987 31175 "properties" : {
56122987 31176 "node" : {
44660702 31177 "description" : "The cluster node name.",
56122987 31178 "format" : "pve-node",
013dc89f
DM
31179 "type" : "string",
31180 "typetext" : "<string>"
7aacca6f
DM
31181 },
31182 "vmid" : {
31183 "description" : "The (unique) ID of the VM.",
44660702 31184 "format" : "pve-vmid",
8dd66e12
TL
31185 "maximum" : 999999999,
31186 "minimum" : 100,
4bd7df8b 31187 "type" : "integer",
8dd66e12 31188 "typetext" : "<integer> (100 - 999999999)"
56122987 31189 }
44660702 31190 }
7aacca6f
DM
31191 },
31192 "permissions" : {
31193 "check" : [
31194 "perm",
31195 "/vms/{vmid}",
31196 [
4d47f125
TL
31197 "VM.Audit"
31198 ]
31199 ]
31200 },
31201 "protected" : 1,
31202 "proxyto" : "node",
31203 "returns" : {
31204 "properties" : {
31205 "cpus" : {
31206 "description" : "Maximum usable CPUs.",
31207 "optional" : 1,
31208 "type" : "number"
31209 },
31210 "ha" : {
31211 "description" : "HA manager service status.",
31212 "type" : "object"
31213 },
95895385
TL
31214 "lock" : {
31215 "description" : "The current config lock, if any.",
31216 "optional" : 1,
31217 "type" : "string"
31218 },
4d47f125
TL
31219 "maxdisk" : {
31220 "description" : "Root disk size in bytes.",
31221 "optional" : 1,
31222 "renderer" : "bytes",
31223 "type" : "integer"
31224 },
31225 "maxmem" : {
31226 "description" : "Maximum memory in bytes.",
31227 "optional" : 1,
31228 "renderer" : "bytes",
31229 "type" : "integer"
31230 },
31231 "maxswap" : {
31232 "description" : "Maximum SWAP memory in bytes.",
31233 "optional" : 1,
31234 "renderer" : "bytes",
31235 "type" : "integer"
31236 },
31237 "name" : {
31238 "description" : "Container name.",
31239 "optional" : 1,
31240 "type" : "string"
31241 },
31242 "status" : {
31243 "description" : "LXC Container status.",
31244 "enum" : [
31245 "stopped",
31246 "running"
31247 ],
31248 "type" : "string"
31249 },
5c1699e5
TL
31250 "tags" : {
31251 "description" : "The current configured tags, if any.",
31252 "optional" : 1,
31253 "type" : "string"
31254 },
4d47f125
TL
31255 "uptime" : {
31256 "description" : "Uptime.",
31257 "optional" : 1,
31258 "renderer" : "duration",
31259 "type" : "integer"
31260 },
31261 "vmid" : {
31262 "description" : "The (unique) ID of the VM.",
31263 "format" : "pve-vmid",
8dd66e12
TL
31264 "maximum" : 999999999,
31265 "minimum" : 100,
4d47f125
TL
31266 "type" : "integer"
31267 }
31268 },
31269 "type" : "object"
31270 }
31271 }
31272 },
31273 "leaf" : 1,
31274 "path" : "/nodes/{node}/lxc/{vmid}/status/current",
31275 "text" : "current"
31276 },
31277 {
31278 "info" : {
31279 "POST" : {
e9cd3bd4 31280 "allowtoken" : 1,
4d47f125
TL
31281 "description" : "Start the container.",
31282 "method" : "POST",
31283 "name" : "vm_start",
31284 "parameters" : {
31285 "additionalProperties" : 0,
31286 "properties" : {
739d4d64
TL
31287 "debug" : {
31288 "default" : 0,
31289 "description" : "If set, enables very verbose debug log-level on start.",
31290 "optional" : 1,
31291 "type" : "boolean",
31292 "typetext" : "<boolean>"
31293 },
4d47f125
TL
31294 "node" : {
31295 "description" : "The cluster node name.",
31296 "format" : "pve-node",
31297 "type" : "string",
31298 "typetext" : "<string>"
31299 },
31300 "skiplock" : {
31301 "description" : "Ignore locks - only root is allowed to use this option.",
31302 "optional" : 1,
31303 "type" : "boolean",
31304 "typetext" : "<boolean>"
31305 },
31306 "vmid" : {
31307 "description" : "The (unique) ID of the VM.",
31308 "format" : "pve-vmid",
8dd66e12
TL
31309 "maximum" : 999999999,
31310 "minimum" : 100,
4d47f125 31311 "type" : "integer",
8dd66e12 31312 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
31313 }
31314 }
31315 },
31316 "permissions" : {
31317 "check" : [
31318 "perm",
31319 "/vms/{vmid}",
31320 [
31321 "VM.PowerMgmt"
31322 ]
31323 ]
31324 },
31325 "protected" : 1,
31326 "proxyto" : "node",
31327 "returns" : {
31328 "type" : "string"
31329 }
31330 }
31331 },
31332 "leaf" : 1,
31333 "path" : "/nodes/{node}/lxc/{vmid}/status/start",
31334 "text" : "start"
31335 },
31336 {
31337 "info" : {
31338 "POST" : {
e9cd3bd4 31339 "allowtoken" : 1,
4d47f125
TL
31340 "description" : "Stop the container. This will abruptly stop all processes running in the container.",
31341 "method" : "POST",
31342 "name" : "vm_stop",
31343 "parameters" : {
31344 "additionalProperties" : 0,
31345 "properties" : {
31346 "node" : {
31347 "description" : "The cluster node name.",
31348 "format" : "pve-node",
31349 "type" : "string",
31350 "typetext" : "<string>"
31351 },
907e4bc3
TL
31352 "overrule-shutdown" : {
31353 "default" : 0,
31354 "description" : "Try to abort active 'vzshutdown' tasks before stopping.",
31355 "optional" : 1,
31356 "type" : "boolean",
31357 "typetext" : "<boolean>"
31358 },
4d47f125
TL
31359 "skiplock" : {
31360 "description" : "Ignore locks - only root is allowed to use this option.",
31361 "optional" : 1,
31362 "type" : "boolean",
31363 "typetext" : "<boolean>"
31364 },
31365 "vmid" : {
31366 "description" : "The (unique) ID of the VM.",
31367 "format" : "pve-vmid",
8dd66e12
TL
31368 "maximum" : 999999999,
31369 "minimum" : 100,
4d47f125 31370 "type" : "integer",
8dd66e12 31371 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
31372 }
31373 }
31374 },
31375 "permissions" : {
31376 "check" : [
31377 "perm",
31378 "/vms/{vmid}",
31379 [
31380 "VM.PowerMgmt"
31381 ]
31382 ]
31383 },
31384 "protected" : 1,
31385 "proxyto" : "node",
31386 "returns" : {
31387 "type" : "string"
31388 }
31389 }
31390 },
31391 "leaf" : 1,
31392 "path" : "/nodes/{node}/lxc/{vmid}/status/stop",
31393 "text" : "stop"
31394 },
31395 {
31396 "info" : {
31397 "POST" : {
e9cd3bd4 31398 "allowtoken" : 1,
4d47f125
TL
31399 "description" : "Shutdown the container. This will trigger a clean shutdown of the container, see lxc-stop(1) for details.",
31400 "method" : "POST",
31401 "name" : "vm_shutdown",
31402 "parameters" : {
31403 "additionalProperties" : 0,
31404 "properties" : {
31405 "forceStop" : {
31406 "default" : 0,
31407 "description" : "Make sure the Container stops.",
31408 "optional" : 1,
31409 "type" : "boolean",
31410 "typetext" : "<boolean>"
31411 },
31412 "node" : {
31413 "description" : "The cluster node name.",
31414 "format" : "pve-node",
31415 "type" : "string",
31416 "typetext" : "<string>"
31417 },
31418 "timeout" : {
31419 "default" : 60,
31420 "description" : "Wait maximal timeout seconds.",
31421 "minimum" : 0,
31422 "optional" : 1,
31423 "type" : "integer",
31424 "typetext" : "<integer> (0 - N)"
31425 },
31426 "vmid" : {
31427 "description" : "The (unique) ID of the VM.",
31428 "format" : "pve-vmid",
8dd66e12
TL
31429 "maximum" : 999999999,
31430 "minimum" : 100,
4d47f125 31431 "type" : "integer",
8dd66e12 31432 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
31433 }
31434 }
31435 },
31436 "permissions" : {
31437 "check" : [
31438 "perm",
31439 "/vms/{vmid}",
31440 [
31441 "VM.PowerMgmt"
7aacca6f
DM
31442 ]
31443 ]
31444 },
44660702 31445 "protected" : 1,
7aacca6f 31446 "proxyto" : "node",
44660702 31447 "returns" : {
4d47f125 31448 "type" : "string"
44660702 31449 }
56122987
DM
31450 }
31451 },
44660702 31452 "leaf" : 1,
4d47f125
TL
31453 "path" : "/nodes/{node}/lxc/{vmid}/status/shutdown",
31454 "text" : "shutdown"
56122987
DM
31455 },
31456 {
56122987
DM
31457 "info" : {
31458 "POST" : {
e9cd3bd4 31459 "allowtoken" : 1,
5370fa8c 31460 "description" : "Suspend the container. This is experimental.",
44660702 31461 "method" : "POST",
4d47f125 31462 "name" : "vm_suspend",
56122987
DM
31463 "parameters" : {
31464 "additionalProperties" : 0,
31465 "properties" : {
56122987 31466 "node" : {
7aacca6f 31467 "description" : "The cluster node name.",
44660702 31468 "format" : "pve-node",
013dc89f
DM
31469 "type" : "string",
31470 "typetext" : "<string>"
56122987
DM
31471 },
31472 "vmid" : {
7aacca6f 31473 "description" : "The (unique) ID of the VM.",
44660702 31474 "format" : "pve-vmid",
8dd66e12
TL
31475 "maximum" : 999999999,
31476 "minimum" : 100,
4bd7df8b 31477 "type" : "integer",
8dd66e12 31478 "typetext" : "<integer> (100 - 999999999)"
56122987
DM
31479 }
31480 }
31481 },
31482 "permissions" : {
31483 "check" : [
31484 "perm",
31485 "/vms/{vmid}",
31486 [
31487 "VM.PowerMgmt"
31488 ]
31489 ]
31490 },
44660702 31491 "protected" : 1,
7aacca6f 31492 "proxyto" : "node",
44660702
DM
31493 "returns" : {
31494 "type" : "string"
31495 }
31496 }
31497 },
31498 "leaf" : 1,
4d47f125
TL
31499 "path" : "/nodes/{node}/lxc/{vmid}/status/suspend",
31500 "text" : "suspend"
44660702
DM
31501 },
31502 {
31503 "info" : {
31504 "POST" : {
e9cd3bd4 31505 "allowtoken" : 1,
4d47f125 31506 "description" : "Resume the container.",
7aacca6f 31507 "method" : "POST",
4d47f125 31508 "name" : "vm_resume",
7aacca6f 31509 "parameters" : {
44660702 31510 "additionalProperties" : 0,
7aacca6f 31511 "properties" : {
44660702
DM
31512 "node" : {
31513 "description" : "The cluster node name.",
31514 "format" : "pve-node",
013dc89f
DM
31515 "type" : "string",
31516 "typetext" : "<string>"
44660702 31517 },
7aacca6f 31518 "vmid" : {
44660702 31519 "description" : "The (unique) ID of the VM.",
7aacca6f 31520 "format" : "pve-vmid",
8dd66e12
TL
31521 "maximum" : 999999999,
31522 "minimum" : 100,
4bd7df8b 31523 "type" : "integer",
8dd66e12 31524 "typetext" : "<integer> (100 - 999999999)"
7aacca6f 31525 }
44660702
DM
31526 }
31527 },
31528 "permissions" : {
31529 "check" : [
31530 "perm",
31531 "/vms/{vmid}",
31532 [
31533 "VM.PowerMgmt"
31534 ]
31535 ]
7aacca6f 31536 },
44660702
DM
31537 "protected" : 1,
31538 "proxyto" : "node",
31539 "returns" : {
31540 "type" : "string"
31541 }
56122987 31542 }
7aacca6f 31543 },
7aacca6f 31544 "leaf" : 1,
4d47f125
TL
31545 "path" : "/nodes/{node}/lxc/{vmid}/status/resume",
31546 "text" : "resume"
5c1699e5
TL
31547 },
31548 {
31549 "info" : {
31550 "POST" : {
e9cd3bd4 31551 "allowtoken" : 1,
5c1699e5
TL
31552 "description" : "Reboot the container by shutting it down, and starting it again. Applies pending changes.",
31553 "method" : "POST",
31554 "name" : "vm_reboot",
31555 "parameters" : {
31556 "additionalProperties" : 0,
31557 "properties" : {
31558 "node" : {
31559 "description" : "The cluster node name.",
31560 "format" : "pve-node",
31561 "type" : "string",
31562 "typetext" : "<string>"
31563 },
31564 "timeout" : {
31565 "description" : "Wait maximal timeout seconds for the shutdown.",
31566 "minimum" : 0,
31567 "optional" : 1,
31568 "type" : "integer",
31569 "typetext" : "<integer> (0 - N)"
31570 },
31571 "vmid" : {
31572 "description" : "The (unique) ID of the VM.",
31573 "format" : "pve-vmid",
8dd66e12
TL
31574 "maximum" : 999999999,
31575 "minimum" : 100,
5c1699e5 31576 "type" : "integer",
8dd66e12 31577 "typetext" : "<integer> (100 - 999999999)"
5c1699e5
TL
31578 }
31579 }
31580 },
31581 "permissions" : {
31582 "check" : [
31583 "perm",
31584 "/vms/{vmid}",
31585 [
31586 "VM.PowerMgmt"
31587 ]
31588 ]
31589 },
31590 "protected" : 1,
31591 "proxyto" : "node",
31592 "returns" : {
31593 "type" : "string"
31594 }
31595 }
31596 },
31597 "leaf" : 1,
31598 "path" : "/nodes/{node}/lxc/{vmid}/status/reboot",
31599 "text" : "reboot"
4d47f125
TL
31600 }
31601 ],
31602 "info" : {
31603 "GET" : {
e9cd3bd4 31604 "allowtoken" : 1,
4d47f125
TL
31605 "description" : "Directory index",
31606 "method" : "GET",
31607 "name" : "vmcmdidx",
31608 "parameters" : {
31609 "additionalProperties" : 0,
31610 "properties" : {
31611 "node" : {
31612 "description" : "The cluster node name.",
31613 "format" : "pve-node",
31614 "type" : "string",
31615 "typetext" : "<string>"
31616 },
31617 "vmid" : {
31618 "description" : "The (unique) ID of the VM.",
31619 "format" : "pve-vmid",
8dd66e12
TL
31620 "maximum" : 999999999,
31621 "minimum" : 100,
4d47f125 31622 "type" : "integer",
8dd66e12 31623 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
31624 }
31625 }
31626 },
31627 "permissions" : {
31628 "user" : "all"
31629 },
31630 "proxyto" : "node",
31631 "returns" : {
31632 "items" : {
31633 "properties" : {
31634 "subdir" : {
31635 "type" : "string"
31636 }
31637 },
31638 "type" : "object"
31639 },
31640 "links" : [
31641 {
31642 "href" : "{subdir}",
31643 "rel" : "child"
31644 }
31645 ],
31646 "type" : "array"
31647 }
31648 }
31649 },
31650 "leaf" : 0,
31651 "path" : "/nodes/{node}/lxc/{vmid}/status",
31652 "text" : "status"
31653 },
31654 {
31655 "children" : [
56122987 31656 {
4d47f125
TL
31657 "children" : [
31658 {
31659 "info" : {
31660 "POST" : {
e9cd3bd4 31661 "allowtoken" : 1,
4d47f125
TL
31662 "description" : "Rollback LXC state to specified snapshot.",
31663 "method" : "POST",
31664 "name" : "rollback",
31665 "parameters" : {
31666 "additionalProperties" : 0,
31667 "properties" : {
31668 "node" : {
31669 "description" : "The cluster node name.",
31670 "format" : "pve-node",
31671 "type" : "string",
31672 "typetext" : "<string>"
31673 },
31674 "snapname" : {
31675 "description" : "The name of the snapshot.",
31676 "format" : "pve-configid",
31677 "maxLength" : 40,
31678 "type" : "string",
31679 "typetext" : "<string>"
31680 },
4e7f60c2
TL
31681 "start" : {
31682 "default" : 0,
31683 "description" : "Whether the container should get started after rolling back successfully",
31684 "optional" : 1,
31685 "type" : "boolean",
31686 "typetext" : "<boolean>"
31687 },
4d47f125
TL
31688 "vmid" : {
31689 "description" : "The (unique) ID of the VM.",
31690 "format" : "pve-vmid",
8dd66e12
TL
31691 "maximum" : 999999999,
31692 "minimum" : 100,
4d47f125 31693 "type" : "integer",
8dd66e12 31694 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
31695 }
31696 }
31697 },
31698 "permissions" : {
31699 "check" : [
31700 "perm",
31701 "/vms/{vmid}",
31702 [
31703 "VM.Snapshot",
31704 "VM.Snapshot.Rollback"
31705 ],
31706 "any",
31707 1
31708 ]
31709 },
31710 "protected" : 1,
31711 "proxyto" : "node",
31712 "returns" : {
31713 "description" : "the task ID.",
31714 "type" : "string"
31715 }
31716 }
31717 },
31718 "leaf" : 1,
31719 "path" : "/nodes/{node}/lxc/{vmid}/snapshot/{snapname}/rollback",
31720 "text" : "rollback"
31721 },
31722 {
31723 "info" : {
31724 "GET" : {
e9cd3bd4 31725 "allowtoken" : 1,
4d47f125
TL
31726 "description" : "Get snapshot configuration",
31727 "method" : "GET",
31728 "name" : "get_snapshot_config",
31729 "parameters" : {
31730 "additionalProperties" : 0,
31731 "properties" : {
31732 "node" : {
31733 "description" : "The cluster node name.",
31734 "format" : "pve-node",
31735 "type" : "string",
31736 "typetext" : "<string>"
31737 },
31738 "snapname" : {
31739 "description" : "The name of the snapshot.",
31740 "format" : "pve-configid",
31741 "maxLength" : 40,
31742 "type" : "string",
31743 "typetext" : "<string>"
31744 },
31745 "vmid" : {
31746 "description" : "The (unique) ID of the VM.",
31747 "format" : "pve-vmid",
8dd66e12
TL
31748 "maximum" : 999999999,
31749 "minimum" : 100,
4d47f125 31750 "type" : "integer",
8dd66e12 31751 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
31752 }
31753 }
31754 },
31755 "permissions" : {
31756 "check" : [
31757 "perm",
31758 "/vms/{vmid}",
31759 [
31760 "VM.Snapshot",
c5aa7e14
TL
31761 "VM.Snapshot.Rollback",
31762 "VM.Audit"
4d47f125
TL
31763 ],
31764 "any",
31765 1
31766 ]
31767 },
31768 "proxyto" : "node",
31769 "returns" : {
31770 "type" : "object"
31771 }
31772 },
31773 "PUT" : {
e9cd3bd4 31774 "allowtoken" : 1,
4d47f125
TL
31775 "description" : "Update snapshot metadata.",
31776 "method" : "PUT",
31777 "name" : "update_snapshot_config",
31778 "parameters" : {
31779 "additionalProperties" : 0,
31780 "properties" : {
31781 "description" : {
31782 "description" : "A textual description or comment.",
31783 "optional" : 1,
31784 "type" : "string",
31785 "typetext" : "<string>"
31786 },
31787 "node" : {
31788 "description" : "The cluster node name.",
31789 "format" : "pve-node",
31790 "type" : "string",
31791 "typetext" : "<string>"
31792 },
31793 "snapname" : {
31794 "description" : "The name of the snapshot.",
31795 "format" : "pve-configid",
31796 "maxLength" : 40,
31797 "type" : "string",
31798 "typetext" : "<string>"
31799 },
31800 "vmid" : {
31801 "description" : "The (unique) ID of the VM.",
31802 "format" : "pve-vmid",
8dd66e12
TL
31803 "maximum" : 999999999,
31804 "minimum" : 100,
4d47f125 31805 "type" : "integer",
8dd66e12 31806 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
31807 }
31808 }
31809 },
31810 "permissions" : {
31811 "check" : [
31812 "perm",
31813 "/vms/{vmid}",
31814 [
31815 "VM.Snapshot"
31816 ]
31817 ]
31818 },
31819 "protected" : 1,
31820 "proxyto" : "node",
31821 "returns" : {
31822 "type" : "null"
31823 }
31824 }
31825 },
31826 "leaf" : 1,
31827 "path" : "/nodes/{node}/lxc/{vmid}/snapshot/{snapname}/config",
31828 "text" : "config"
31829 }
31830 ],
56122987 31831 "info" : {
4d47f125 31832 "DELETE" : {
e9cd3bd4 31833 "allowtoken" : 1,
4d47f125
TL
31834 "description" : "Delete a LXC snapshot.",
31835 "method" : "DELETE",
31836 "name" : "delsnapshot",
56122987 31837 "parameters" : {
44660702 31838 "additionalProperties" : 0,
56122987 31839 "properties" : {
4d47f125
TL
31840 "force" : {
31841 "description" : "For removal from config file, even if removing disk snapshots fails.",
7aacca6f 31842 "optional" : 1,
013dc89f
DM
31843 "type" : "boolean",
31844 "typetext" : "<boolean>"
44660702
DM
31845 },
31846 "node" : {
31847 "description" : "The cluster node name.",
31848 "format" : "pve-node",
013dc89f
DM
31849 "type" : "string",
31850 "typetext" : "<string>"
7aacca6f 31851 },
4d47f125
TL
31852 "snapname" : {
31853 "description" : "The name of the snapshot.",
31854 "format" : "pve-configid",
31855 "maxLength" : 40,
31856 "type" : "string",
31857 "typetext" : "<string>"
56122987
DM
31858 },
31859 "vmid" : {
7aacca6f 31860 "description" : "The (unique) ID of the VM.",
44660702 31861 "format" : "pve-vmid",
8dd66e12
TL
31862 "maximum" : 999999999,
31863 "minimum" : 100,
4bd7df8b 31864 "type" : "integer",
8dd66e12 31865 "typetext" : "<integer> (100 - 999999999)"
56122987 31866 }
44660702 31867 }
56122987
DM
31868 },
31869 "permissions" : {
31870 "check" : [
31871 "perm",
31872 "/vms/{vmid}",
31873 [
4d47f125 31874 "VM.Snapshot"
56122987
DM
31875 ]
31876 ]
31877 },
44660702
DM
31878 "protected" : 1,
31879 "proxyto" : "node",
7aacca6f 31880 "returns" : {
4d47f125 31881 "description" : "the task ID.",
7aacca6f
DM
31882 "type" : "string"
31883 }
4d47f125
TL
31884 },
31885 "GET" : {
e9cd3bd4 31886 "allowtoken" : 1,
4d47f125
TL
31887 "description" : "",
31888 "method" : "GET",
31889 "name" : "snapshot_cmd_idx",
56122987
DM
31890 "parameters" : {
31891 "additionalProperties" : 0,
31892 "properties" : {
44660702
DM
31893 "node" : {
31894 "description" : "The cluster node name.",
31895 "format" : "pve-node",
013dc89f
DM
31896 "type" : "string",
31897 "typetext" : "<string>"
44660702 31898 },
4d47f125
TL
31899 "snapname" : {
31900 "description" : "The name of the snapshot.",
31901 "format" : "pve-configid",
31902 "maxLength" : 40,
013dc89f
DM
31903 "type" : "string",
31904 "typetext" : "<string>"
56122987
DM
31905 },
31906 "vmid" : {
7aacca6f 31907 "description" : "The (unique) ID of the VM.",
56122987 31908 "format" : "pve-vmid",
8dd66e12
TL
31909 "maximum" : 999999999,
31910 "minimum" : 100,
4bd7df8b 31911 "type" : "integer",
8dd66e12 31912 "typetext" : "<integer> (100 - 999999999)"
56122987 31913 }
44660702
DM
31914 }
31915 },
31916 "permissions" : {
4d47f125 31917 "user" : "all"
56122987 31918 },
44660702 31919 "returns" : {
4d47f125
TL
31920 "items" : {
31921 "properties" : {},
31922 "type" : "object"
31923 },
31924 "links" : [
31925 {
31926 "href" : "{cmd}",
31927 "rel" : "child"
31928 }
31929 ],
31930 "type" : "array"
44660702 31931 }
7aacca6f
DM
31932 }
31933 },
4d47f125
TL
31934 "leaf" : 0,
31935 "path" : "/nodes/{node}/lxc/{vmid}/snapshot/{snapname}",
31936 "text" : "{snapname}"
7aacca6f
DM
31937 }
31938 ],
31939 "info" : {
31940 "GET" : {
e9cd3bd4 31941 "allowtoken" : 1,
4d47f125 31942 "description" : "List all snapshots.",
44660702 31943 "method" : "GET",
4d47f125 31944 "name" : "list",
7aacca6f
DM
31945 "parameters" : {
31946 "additionalProperties" : 0,
31947 "properties" : {
31948 "node" : {
31949 "description" : "The cluster node name.",
44660702 31950 "format" : "pve-node",
013dc89f
DM
31951 "type" : "string",
31952 "typetext" : "<string>"
56122987 31953 },
7aacca6f 31954 "vmid" : {
44660702 31955 "description" : "The (unique) ID of the VM.",
7aacca6f 31956 "format" : "pve-vmid",
8dd66e12
TL
31957 "maximum" : 999999999,
31958 "minimum" : 100,
4bd7df8b 31959 "type" : "integer",
8dd66e12 31960 "typetext" : "<integer> (100 - 999999999)"
7aacca6f 31961 }
56122987
DM
31962 }
31963 },
44660702 31964 "permissions" : {
4d47f125
TL
31965 "check" : [
31966 "perm",
31967 "/vms/{vmid}",
31968 [
31969 "VM.Audit"
31970 ]
31971 ]
44660702 31972 },
4d47f125 31973 "protected" : 1,
44660702 31974 "proxyto" : "node",
7aacca6f 31975 "returns" : {
7aacca6f
DM
31976 "items" : {
31977 "properties" : {
4d47f125
TL
31978 "description" : {
31979 "description" : "Snapshot description.",
7aacca6f 31980 "type" : "string"
4d47f125
TL
31981 },
31982 "name" : {
31983 "description" : "Snapshot identifier. Value 'current' identifies the current VM.",
31984 "type" : "string"
31985 },
31986 "parent" : {
31987 "description" : "Parent snapshot identifier.",
31988 "optional" : 1,
31989 "type" : "string"
31990 },
31991 "snaptime" : {
31992 "description" : "Snapshot creation time",
31993 "optional" : 1,
31994 "renderer" : "timestamp",
31995 "type" : "integer"
7aacca6f
DM
31996 }
31997 },
31998 "type" : "object"
31999 },
32000 "links" : [
32001 {
4d47f125 32002 "href" : "{name}",
44660702 32003 "rel" : "child"
7aacca6f 32004 }
44660702
DM
32005 ],
32006 "type" : "array"
7aacca6f 32007 }
4d47f125
TL
32008 },
32009 "POST" : {
e9cd3bd4 32010 "allowtoken" : 1,
4d47f125
TL
32011 "description" : "Snapshot a container.",
32012 "method" : "POST",
32013 "name" : "snapshot",
32014 "parameters" : {
32015 "additionalProperties" : 0,
32016 "properties" : {
32017 "description" : {
32018 "description" : "A textual description or comment.",
32019 "optional" : 1,
32020 "type" : "string",
32021 "typetext" : "<string>"
32022 },
32023 "node" : {
32024 "description" : "The cluster node name.",
32025 "format" : "pve-node",
32026 "type" : "string",
32027 "typetext" : "<string>"
32028 },
32029 "snapname" : {
32030 "description" : "The name of the snapshot.",
32031 "format" : "pve-configid",
32032 "maxLength" : 40,
32033 "type" : "string",
32034 "typetext" : "<string>"
32035 },
32036 "vmid" : {
32037 "description" : "The (unique) ID of the VM.",
32038 "format" : "pve-vmid",
8dd66e12
TL
32039 "maximum" : 999999999,
32040 "minimum" : 100,
4d47f125 32041 "type" : "integer",
8dd66e12 32042 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
32043 }
32044 }
32045 },
32046 "permissions" : {
32047 "check" : [
32048 "perm",
32049 "/vms/{vmid}",
32050 [
32051 "VM.Snapshot"
32052 ]
32053 ]
32054 },
32055 "protected" : 1,
32056 "proxyto" : "node",
32057 "returns" : {
32058 "description" : "the task ID.",
32059 "type" : "string"
32060 }
7aacca6f 32061 }
44660702
DM
32062 },
32063 "leaf" : 0,
4d47f125
TL
32064 "path" : "/nodes/{node}/lxc/{vmid}/snapshot",
32065 "text" : "snapshot"
7aacca6f
DM
32066 },
32067 {
7aacca6f 32068 "children" : [
56122987 32069 {
7aacca6f
DM
32070 "children" : [
32071 {
32072 "info" : {
4d47f125 32073 "DELETE" : {
e9cd3bd4 32074 "allowtoken" : 1,
4d47f125
TL
32075 "description" : "Delete rule.",
32076 "method" : "DELETE",
32077 "name" : "delete_rule",
7aacca6f 32078 "parameters" : {
44660702 32079 "additionalProperties" : 0,
7aacca6f 32080 "properties" : {
4d47f125 32081 "digest" : {
82551b2b
TL
32082 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
32083 "maxLength" : 64,
4d47f125
TL
32084 "optional" : 1,
32085 "type" : "string",
32086 "typetext" : "<string>"
32087 },
44660702
DM
32088 "node" : {
32089 "description" : "The cluster node name.",
32090 "format" : "pve-node",
013dc89f
DM
32091 "type" : "string",
32092 "typetext" : "<string>"
44660702 32093 },
4d47f125
TL
32094 "pos" : {
32095 "description" : "Update rule at position <pos>.",
32096 "minimum" : 0,
32097 "optional" : 1,
32098 "type" : "integer",
32099 "typetext" : "<integer> (0 - N)"
7aacca6f 32100 },
7aacca6f 32101 "vmid" : {
44660702 32102 "description" : "The (unique) ID of the VM.",
7aacca6f 32103 "format" : "pve-vmid",
8dd66e12
TL
32104 "maximum" : 999999999,
32105 "minimum" : 100,
4bd7df8b 32106 "type" : "integer",
8dd66e12 32107 "typetext" : "<integer> (100 - 999999999)"
7aacca6f 32108 }
44660702
DM
32109 }
32110 },
32111 "permissions" : {
32112 "check" : [
32113 "perm",
32114 "/vms/{vmid}",
32115 [
4d47f125
TL
32116 "VM.Config.Network"
32117 ]
44660702 32118 ]
7aacca6f 32119 },
44660702 32120 "protected" : 1,
4d47f125 32121 "proxyto" : null,
44660702 32122 "returns" : {
4d47f125 32123 "type" : "null"
44660702 32124 }
4d47f125 32125 },
7aacca6f 32126 "GET" : {
e9cd3bd4 32127 "allowtoken" : 1,
4d47f125 32128 "description" : "Get single rule data.",
44660702 32129 "method" : "GET",
4d47f125 32130 "name" : "get_rule",
7aacca6f
DM
32131 "parameters" : {
32132 "additionalProperties" : 0,
4d47f125
TL
32133 "properties" : {
32134 "node" : {
32135 "description" : "The cluster node name.",
32136 "format" : "pve-node",
013dc89f
DM
32137 "type" : "string",
32138 "typetext" : "<string>"
44660702 32139 },
4d47f125
TL
32140 "pos" : {
32141 "description" : "Update rule at position <pos>.",
32142 "minimum" : 0,
32143 "optional" : 1,
32144 "type" : "integer",
32145 "typetext" : "<integer> (0 - N)"
32146 },
44660702
DM
32147 "vmid" : {
32148 "description" : "The (unique) ID of the VM.",
32149 "format" : "pve-vmid",
8dd66e12
TL
32150 "maximum" : 999999999,
32151 "minimum" : 100,
4bd7df8b 32152 "type" : "integer",
8dd66e12 32153 "typetext" : "<integer> (100 - 999999999)"
7aacca6f
DM
32154 }
32155 }
32156 },
32157 "permissions" : {
32158 "check" : [
32159 "perm",
32160 "/vms/{vmid}",
32161 [
4d47f125
TL
32162 "VM.Audit"
32163 ]
7aacca6f
DM
32164 ]
32165 },
4d47f125 32166 "proxyto" : null,
44660702 32167 "returns" : {
4d47f125 32168 "properties" : {
e2d681b3
TL
32169 "action" : {
32170 "type" : "string"
32171 },
32172 "comment" : {
32173 "optional" : 1,
32174 "type" : "string"
32175 },
32176 "dest" : {
32177 "optional" : 1,
32178 "type" : "string"
32179 },
32180 "dport" : {
32181 "optional" : 1,
32182 "type" : "string"
32183 },
32184 "enable" : {
32185 "optional" : 1,
32186 "type" : "integer"
32187 },
4772952b
TL
32188 "icmp-type" : {
32189 "optional" : 1,
32190 "type" : "string"
32191 },
e2d681b3
TL
32192 "iface" : {
32193 "optional" : 1,
32194 "type" : "string"
32195 },
32196 "ipversion" : {
32197 "optional" : 1,
32198 "type" : "integer"
32199 },
95895385
TL
32200 "log" : {
32201 "description" : "Log level for firewall rule",
32202 "enum" : [
32203 "emerg",
32204 "alert",
32205 "crit",
32206 "err",
32207 "warning",
32208 "notice",
32209 "info",
32210 "debug",
32211 "nolog"
32212 ],
32213 "optional" : 1,
32214 "type" : "string"
32215 },
e2d681b3
TL
32216 "macro" : {
32217 "optional" : 1,
5f26e15b 32218 "type" : "string"
e2d681b3 32219 },
4d47f125
TL
32220 "pos" : {
32221 "type" : "integer"
e2d681b3
TL
32222 },
32223 "proto" : {
32224 "optional" : 1,
32225 "type" : "string"
32226 },
32227 "source" : {
32228 "optional" : 1,
32229 "type" : "string"
32230 },
32231 "sport" : {
32232 "optional" : 1,
32233 "type" : "string"
32234 },
32235 "type" : {
32236 "type" : "string"
4d47f125
TL
32237 }
32238 },
44660702
DM
32239 "type" : "object"
32240 }
7aacca6f
DM
32241 },
32242 "PUT" : {
e9cd3bd4 32243 "allowtoken" : 1,
4d47f125 32244 "description" : "Modify rule data.",
44660702 32245 "method" : "PUT",
4d47f125 32246 "name" : "update_rule",
7aacca6f
DM
32247 "parameters" : {
32248 "additionalProperties" : 0,
32249 "properties" : {
4d47f125
TL
32250 "action" : {
32251 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
32252 "maxLength" : 20,
32253 "minLength" : 2,
32254 "optional" : 1,
32255 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
32256 "type" : "string"
32257 },
32258 "comment" : {
32259 "description" : "Descriptive comment.",
32260 "optional" : 1,
32261 "type" : "string",
32262 "typetext" : "<string>"
32263 },
32264 "delete" : {
32265 "description" : "A list of settings you want to delete.",
32266 "format" : "pve-configid-list",
32267 "optional" : 1,
32268 "type" : "string",
32269 "typetext" : "<string>"
32270 },
32271 "dest" : {
32272 "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
32273 "format" : "pve-fw-addr-spec",
0695fdaf 32274 "maxLength" : 512,
4d47f125
TL
32275 "optional" : 1,
32276 "type" : "string",
32277 "typetext" : "<string>"
32278 },
32279 "digest" : {
82551b2b
TL
32280 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
32281 "maxLength" : 64,
4d47f125
TL
32282 "optional" : 1,
32283 "type" : "string",
32284 "typetext" : "<string>"
32285 },
32286 "dport" : {
32287 "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
32288 "format" : "pve-fw-dport-spec",
32289 "optional" : 1,
32290 "type" : "string",
32291 "typetext" : "<string>"
32292 },
32293 "enable" : {
32294 "description" : "Flag to enable/disable a rule.",
32295 "minimum" : 0,
32296 "optional" : 1,
32297 "type" : "integer",
32298 "typetext" : "<integer> (0 - N)"
32299 },
4772952b 32300 "icmp-type" : {
287a95cf 32301 "description" : "Specify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'.",
4772952b
TL
32302 "format" : "pve-fw-icmp-type-spec",
32303 "optional" : 1,
32304 "type" : "string",
32305 "typetext" : "<string>"
32306 },
4d47f125
TL
32307 "iface" : {
32308 "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
32309 "format" : "pve-iface",
32310 "maxLength" : 20,
32311 "minLength" : 2,
32312 "optional" : 1,
32313 "type" : "string",
32314 "typetext" : "<string>"
32315 },
95895385
TL
32316 "log" : {
32317 "description" : "Log level for firewall rule.",
32318 "enum" : [
32319 "emerg",
32320 "alert",
32321 "crit",
32322 "err",
32323 "warning",
32324 "notice",
32325 "info",
32326 "debug",
32327 "nolog"
32328 ],
32329 "optional" : 1,
32330 "type" : "string"
32331 },
4d47f125
TL
32332 "macro" : {
32333 "description" : "Use predefined standard macro.",
32334 "maxLength" : 128,
44660702 32335 "optional" : 1,
013dc89f
DM
32336 "type" : "string",
32337 "typetext" : "<string>"
44660702 32338 },
4d47f125
TL
32339 "moveto" : {
32340 "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
32341 "minimum" : 0,
32342 "optional" : 1,
32343 "type" : "integer",
32344 "typetext" : "<integer> (0 - N)"
32345 },
7aacca6f 32346 "node" : {
7aacca6f 32347 "description" : "The cluster node name.",
44660702 32348 "format" : "pve-node",
013dc89f
DM
32349 "type" : "string",
32350 "typetext" : "<string>"
7aacca6f 32351 },
4d47f125
TL
32352 "pos" : {
32353 "description" : "Update rule at position <pos>.",
32354 "minimum" : 0,
32355 "optional" : 1,
32356 "type" : "integer",
32357 "typetext" : "<integer> (0 - N)"
32358 },
32359 "proto" : {
32360 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
32361 "format" : "pve-fw-protocol-spec",
32362 "optional" : 1,
32363 "type" : "string",
32364 "typetext" : "<string>"
32365 },
32366 "source" : {
32367 "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
32368 "format" : "pve-fw-addr-spec",
0695fdaf 32369 "maxLength" : 512,
4d47f125
TL
32370 "optional" : 1,
32371 "type" : "string",
32372 "typetext" : "<string>"
32373 },
32374 "sport" : {
32375 "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
32376 "format" : "pve-fw-sport-spec",
32377 "optional" : 1,
013dc89f
DM
32378 "type" : "string",
32379 "typetext" : "<string>"
7aacca6f 32380 },
4d47f125
TL
32381 "type" : {
32382 "description" : "Rule type.",
32383 "enum" : [
32384 "in",
32385 "out",
32386 "group"
32387 ],
32388 "optional" : 1,
32389 "type" : "string"
32390 },
7aacca6f 32391 "vmid" : {
44660702 32392 "description" : "The (unique) ID of the VM.",
7aacca6f 32393 "format" : "pve-vmid",
8dd66e12
TL
32394 "maximum" : 999999999,
32395 "minimum" : 100,
4bd7df8b 32396 "type" : "integer",
8dd66e12 32397 "typetext" : "<integer> (100 - 999999999)"
7aacca6f
DM
32398 }
32399 }
32400 },
7aacca6f
DM
32401 "permissions" : {
32402 "check" : [
32403 "perm",
32404 "/vms/{vmid}",
32405 [
4d47f125 32406 "VM.Config.Network"
7aacca6f
DM
32407 ]
32408 ]
32409 },
4d47f125
TL
32410 "protected" : 1,
32411 "proxyto" : null,
32412 "returns" : {
32413 "type" : "null"
32414 }
32415 }
32416 },
32417 "leaf" : 1,
32418 "path" : "/nodes/{node}/lxc/{vmid}/firewall/rules/{pos}",
32419 "text" : "{pos}"
32420 }
32421 ],
32422 "info" : {
32423 "GET" : {
e9cd3bd4 32424 "allowtoken" : 1,
4d47f125
TL
32425 "description" : "List rules.",
32426 "method" : "GET",
32427 "name" : "get_rules",
32428 "parameters" : {
32429 "additionalProperties" : 0,
32430 "properties" : {
32431 "node" : {
32432 "description" : "The cluster node name.",
32433 "format" : "pve-node",
32434 "type" : "string",
32435 "typetext" : "<string>"
32436 },
32437 "vmid" : {
32438 "description" : "The (unique) ID of the VM.",
32439 "format" : "pve-vmid",
8dd66e12
TL
32440 "maximum" : 999999999,
32441 "minimum" : 100,
4d47f125 32442 "type" : "integer",
8dd66e12 32443 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
32444 }
32445 }
32446 },
32447 "permissions" : {
32448 "check" : [
32449 "perm",
32450 "/vms/{vmid}",
32451 [
32452 "VM.Audit"
32453 ]
32454 ]
32455 },
32456 "proxyto" : null,
32457 "returns" : {
32458 "items" : {
32459 "properties" : {
32460 "pos" : {
32461 "type" : "integer"
32462 }
32463 },
32464 "type" : "object"
32465 },
32466 "links" : [
32467 {
32468 "href" : "{pos}",
32469 "rel" : "child"
32470 }
32471 ],
32472 "type" : "array"
32473 }
32474 },
32475 "POST" : {
e9cd3bd4 32476 "allowtoken" : 1,
4d47f125
TL
32477 "description" : "Create new rule.",
32478 "method" : "POST",
32479 "name" : "create_rule",
32480 "parameters" : {
32481 "additionalProperties" : 0,
32482 "properties" : {
32483 "action" : {
32484 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
32485 "maxLength" : 20,
32486 "minLength" : 2,
32487 "optional" : 0,
32488 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
32489 "type" : "string"
32490 },
32491 "comment" : {
32492 "description" : "Descriptive comment.",
32493 "optional" : 1,
32494 "type" : "string",
32495 "typetext" : "<string>"
32496 },
32497 "dest" : {
32498 "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
32499 "format" : "pve-fw-addr-spec",
0695fdaf 32500 "maxLength" : 512,
4d47f125
TL
32501 "optional" : 1,
32502 "type" : "string",
32503 "typetext" : "<string>"
32504 },
32505 "digest" : {
82551b2b
TL
32506 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
32507 "maxLength" : 64,
4d47f125
TL
32508 "optional" : 1,
32509 "type" : "string",
32510 "typetext" : "<string>"
32511 },
32512 "dport" : {
32513 "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
32514 "format" : "pve-fw-dport-spec",
32515 "optional" : 1,
32516 "type" : "string",
32517 "typetext" : "<string>"
32518 },
32519 "enable" : {
32520 "description" : "Flag to enable/disable a rule.",
32521 "minimum" : 0,
32522 "optional" : 1,
32523 "type" : "integer",
32524 "typetext" : "<integer> (0 - N)"
32525 },
4772952b 32526 "icmp-type" : {
287a95cf 32527 "description" : "Specify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'.",
4772952b
TL
32528 "format" : "pve-fw-icmp-type-spec",
32529 "optional" : 1,
32530 "type" : "string",
32531 "typetext" : "<string>"
32532 },
4d47f125
TL
32533 "iface" : {
32534 "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
32535 "format" : "pve-iface",
32536 "maxLength" : 20,
32537 "minLength" : 2,
32538 "optional" : 1,
32539 "type" : "string",
32540 "typetext" : "<string>"
32541 },
95895385
TL
32542 "log" : {
32543 "description" : "Log level for firewall rule.",
32544 "enum" : [
32545 "emerg",
32546 "alert",
32547 "crit",
32548 "err",
32549 "warning",
32550 "notice",
32551 "info",
32552 "debug",
32553 "nolog"
32554 ],
32555 "optional" : 1,
32556 "type" : "string"
32557 },
4d47f125
TL
32558 "macro" : {
32559 "description" : "Use predefined standard macro.",
32560 "maxLength" : 128,
44660702 32561 "optional" : 1,
4d47f125
TL
32562 "type" : "string",
32563 "typetext" : "<string>"
44660702
DM
32564 },
32565 "node" : {
32566 "description" : "The cluster node name.",
32567 "format" : "pve-node",
013dc89f
DM
32568 "type" : "string",
32569 "typetext" : "<string>"
7aacca6f 32570 },
4d47f125
TL
32571 "pos" : {
32572 "description" : "Update rule at position <pos>.",
32573 "minimum" : 0,
32574 "optional" : 1,
32575 "type" : "integer",
32576 "typetext" : "<integer> (0 - N)"
32577 },
32578 "proto" : {
32579 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
32580 "format" : "pve-fw-protocol-spec",
32581 "optional" : 1,
32582 "type" : "string",
32583 "typetext" : "<string>"
32584 },
32585 "source" : {
32586 "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
32587 "format" : "pve-fw-addr-spec",
0695fdaf 32588 "maxLength" : 512,
4d47f125 32589 "optional" : 1,
013dc89f
DM
32590 "type" : "string",
32591 "typetext" : "<string>"
44660702 32592 },
4d47f125
TL
32593 "sport" : {
32594 "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
32595 "format" : "pve-fw-sport-spec",
32596 "optional" : 1,
32597 "type" : "string",
32598 "typetext" : "<string>"
32599 },
32600 "type" : {
32601 "description" : "Rule type.",
32602 "enum" : [
32603 "in",
32604 "out",
32605 "group"
32606 ],
32607 "optional" : 0,
32608 "type" : "string"
32609 },
44660702
DM
32610 "vmid" : {
32611 "description" : "The (unique) ID of the VM.",
32612 "format" : "pve-vmid",
8dd66e12
TL
32613 "maximum" : 999999999,
32614 "minimum" : 100,
4bd7df8b 32615 "type" : "integer",
8dd66e12 32616 "typetext" : "<integer> (100 - 999999999)"
56122987 32617 }
44660702 32618 }
7aacca6f 32619 },
56122987
DM
32620 "permissions" : {
32621 "check" : [
32622 "perm",
32623 "/vms/{vmid}",
32624 [
4d47f125 32625 "VM.Config.Network"
56122987
DM
32626 ]
32627 ]
32628 },
44660702 32629 "protected" : 1,
4d47f125 32630 "proxyto" : null,
44660702 32631 "returns" : {
4d47f125 32632 "type" : "null"
44660702
DM
32633 }
32634 }
32635 },
32636 "leaf" : 0,
4d47f125
TL
32637 "path" : "/nodes/{node}/lxc/{vmid}/firewall/rules",
32638 "text" : "rules"
7aacca6f 32639 },
56122987 32640 {
56122987
DM
32641 "children" : [
32642 {
56122987 32643 "info" : {
44660702 32644 "DELETE" : {
e9cd3bd4 32645 "allowtoken" : 1,
4d47f125 32646 "description" : "Remove IP or Network alias.",
44660702 32647 "method" : "DELETE",
4d47f125 32648 "name" : "remove_alias",
56122987 32649 "parameters" : {
44660702 32650 "additionalProperties" : 0,
56122987 32651 "properties" : {
44660702 32652 "digest" : {
82551b2b
TL
32653 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
32654 "maxLength" : 64,
7aacca6f 32655 "optional" : 1,
013dc89f
DM
32656 "type" : "string",
32657 "typetext" : "<string>"
7aacca6f 32658 },
4d47f125
TL
32659 "name" : {
32660 "description" : "Alias name.",
32661 "maxLength" : 64,
32662 "minLength" : 2,
32663 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
32664 "type" : "string"
32665 },
7aacca6f 32666 "node" : {
44660702 32667 "description" : "The cluster node name.",
7aacca6f 32668 "format" : "pve-node",
013dc89f
DM
32669 "type" : "string",
32670 "typetext" : "<string>"
44660702 32671 },
44660702
DM
32672 "vmid" : {
32673 "description" : "The (unique) ID of the VM.",
32674 "format" : "pve-vmid",
8dd66e12
TL
32675 "maximum" : 999999999,
32676 "minimum" : 100,
4bd7df8b 32677 "type" : "integer",
8dd66e12 32678 "typetext" : "<integer> (100 - 999999999)"
56122987 32679 }
44660702 32680 }
56122987 32681 },
56122987
DM
32682 "permissions" : {
32683 "check" : [
32684 "perm",
32685 "/vms/{vmid}",
32686 [
44660702 32687 "VM.Config.Network"
56122987
DM
32688 ]
32689 ]
32690 },
44660702 32691 "protected" : 1,
44660702
DM
32692 "returns" : {
32693 "type" : "null"
32694 }
7aacca6f 32695 },
44660702 32696 "GET" : {
e9cd3bd4 32697 "allowtoken" : 1,
4d47f125 32698 "description" : "Read alias.",
44660702 32699 "method" : "GET",
4d47f125 32700 "name" : "read_alias",
56122987 32701 "parameters" : {
44660702 32702 "additionalProperties" : 0,
56122987 32703 "properties" : {
4d47f125
TL
32704 "name" : {
32705 "description" : "Alias name.",
32706 "maxLength" : 64,
32707 "minLength" : 2,
32708 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
32709 "type" : "string"
32710 },
7aacca6f 32711 "node" : {
7aacca6f 32712 "description" : "The cluster node name.",
44660702 32713 "format" : "pve-node",
013dc89f
DM
32714 "type" : "string",
32715 "typetext" : "<string>"
56122987 32716 },
7aacca6f 32717 "vmid" : {
44660702 32718 "description" : "The (unique) ID of the VM.",
7aacca6f 32719 "format" : "pve-vmid",
8dd66e12
TL
32720 "maximum" : 999999999,
32721 "minimum" : 100,
4bd7df8b 32722 "type" : "integer",
8dd66e12 32723 "typetext" : "<integer> (100 - 999999999)"
56122987 32724 }
44660702 32725 }
56122987 32726 },
7aacca6f
DM
32727 "permissions" : {
32728 "check" : [
32729 "perm",
32730 "/vms/{vmid}",
32731 [
44660702 32732 "VM.Audit"
7aacca6f
DM
32733 ]
32734 ]
32735 },
7aacca6f 32736 "returns" : {
44660702 32737 "type" : "object"
7aacca6f 32738 }
56122987 32739 },
44660702 32740 "PUT" : {
e9cd3bd4 32741 "allowtoken" : 1,
4d47f125 32742 "description" : "Update IP or Network alias.",
44660702 32743 "method" : "PUT",
4d47f125 32744 "name" : "update_alias",
56122987
DM
32745 "parameters" : {
32746 "additionalProperties" : 0,
32747 "properties" : {
4d47f125
TL
32748 "cidr" : {
32749 "description" : "Network/IP specification in CIDR format.",
32750 "format" : "IPorCIDR",
013dc89f
DM
32751 "type" : "string",
32752 "typetext" : "<string>"
44660702 32753 },
4d47f125 32754 "comment" : {
44660702 32755 "optional" : 1,
013dc89f
DM
32756 "type" : "string",
32757 "typetext" : "<string>"
44660702
DM
32758 },
32759 "digest" : {
82551b2b
TL
32760 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
32761 "maxLength" : 64,
44660702 32762 "optional" : 1,
013dc89f
DM
32763 "type" : "string",
32764 "typetext" : "<string>"
44660702 32765 },
4d47f125
TL
32766 "name" : {
32767 "description" : "Alias name.",
32768 "maxLength" : 64,
44660702 32769 "minLength" : 2,
4d47f125
TL
32770 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
32771 "type" : "string"
44660702 32772 },
7aacca6f
DM
32773 "node" : {
32774 "description" : "The cluster node name.",
44660702 32775 "format" : "pve-node",
013dc89f
DM
32776 "type" : "string",
32777 "typetext" : "<string>"
56122987 32778 },
4d47f125
TL
32779 "rename" : {
32780 "description" : "Rename an existing alias.",
32781 "maxLength" : 64,
32782 "minLength" : 2,
7aacca6f 32783 "optional" : 1,
4d47f125 32784 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702
DM
32785 "type" : "string"
32786 },
32787 "vmid" : {
32788 "description" : "The (unique) ID of the VM.",
32789 "format" : "pve-vmid",
8dd66e12
TL
32790 "maximum" : 999999999,
32791 "minimum" : 100,
4bd7df8b 32792 "type" : "integer",
8dd66e12 32793 "typetext" : "<integer> (100 - 999999999)"
56122987
DM
32794 }
32795 }
32796 },
56122987
DM
32797 "permissions" : {
32798 "check" : [
32799 "perm",
32800 "/vms/{vmid}",
32801 [
7aacca6f 32802 "VM.Config.Network"
56122987
DM
32803 ]
32804 ]
32805 },
44660702 32806 "protected" : 1,
56122987 32807 "returns" : {
7aacca6f
DM
32808 "type" : "null"
32809 }
56122987 32810 }
44660702
DM
32811 },
32812 "leaf" : 1,
4d47f125
TL
32813 "path" : "/nodes/{node}/lxc/{vmid}/firewall/aliases/{name}",
32814 "text" : "{name}"
56122987
DM
32815 }
32816 ],
32817 "info" : {
7aacca6f 32818 "GET" : {
e9cd3bd4 32819 "allowtoken" : 1,
4d47f125 32820 "description" : "List aliases",
44660702 32821 "method" : "GET",
4d47f125 32822 "name" : "get_aliases",
7aacca6f 32823 "parameters" : {
44660702 32824 "additionalProperties" : 0,
7aacca6f
DM
32825 "properties" : {
32826 "node" : {
7aacca6f 32827 "description" : "The cluster node name.",
44660702 32828 "format" : "pve-node",
013dc89f
DM
32829 "type" : "string",
32830 "typetext" : "<string>"
7aacca6f
DM
32831 },
32832 "vmid" : {
32833 "description" : "The (unique) ID of the VM.",
44660702 32834 "format" : "pve-vmid",
8dd66e12
TL
32835 "maximum" : 999999999,
32836 "minimum" : 100,
4bd7df8b 32837 "type" : "integer",
8dd66e12 32838 "typetext" : "<integer> (100 - 999999999)"
7aacca6f 32839 }
44660702 32840 }
56122987 32841 },
56122987
DM
32842 "permissions" : {
32843 "check" : [
32844 "perm",
32845 "/vms/{vmid}",
32846 [
7aacca6f 32847 "VM.Audit"
56122987
DM
32848 ]
32849 ]
32850 },
7aacca6f 32851 "returns" : {
7aacca6f
DM
32852 "items" : {
32853 "properties" : {
4d47f125
TL
32854 "cidr" : {
32855 "type" : "string"
32856 },
32857 "comment" : {
32858 "optional" : 1,
32859 "type" : "string"
32860 },
32861 "digest" : {
82551b2b
TL
32862 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
32863 "maxLength" : 64,
4d47f125
TL
32864 "optional" : 0,
32865 "type" : "string"
32866 },
32867 "name" : {
32868 "type" : "string"
7aacca6f
DM
32869 }
32870 },
32871 "type" : "object"
32872 },
32873 "links" : [
32874 {
4d47f125 32875 "href" : "{name}",
44660702 32876 "rel" : "child"
7aacca6f 32877 }
44660702
DM
32878 ],
32879 "type" : "array"
32880 }
7aacca6f
DM
32881 },
32882 "POST" : {
e9cd3bd4 32883 "allowtoken" : 1,
4d47f125 32884 "description" : "Create IP or Network Alias.",
44660702 32885 "method" : "POST",
4d47f125 32886 "name" : "create_alias",
56122987 32887 "parameters" : {
44660702 32888 "additionalProperties" : 0,
56122987 32889 "properties" : {
4d47f125
TL
32890 "cidr" : {
32891 "description" : "Network/IP specification in CIDR format.",
32892 "format" : "IPorCIDR",
013dc89f 32893 "type" : "string",
4d47f125
TL
32894 "typetext" : "<string>"
32895 },
32896 "comment" : {
44660702 32897 "optional" : 1,
013dc89f
DM
32898 "type" : "string",
32899 "typetext" : "<string>"
7aacca6f 32900 },
4d47f125
TL
32901 "name" : {
32902 "description" : "Alias name.",
32903 "maxLength" : 64,
32904 "minLength" : 2,
32905 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702
DM
32906 "type" : "string"
32907 },
4d47f125
TL
32908 "node" : {
32909 "description" : "The cluster node name.",
32910 "format" : "pve-node",
32911 "type" : "string",
32912 "typetext" : "<string>"
32913 },
44660702
DM
32914 "vmid" : {
32915 "description" : "The (unique) ID of the VM.",
32916 "format" : "pve-vmid",
8dd66e12
TL
32917 "maximum" : 999999999,
32918 "minimum" : 100,
4bd7df8b 32919 "type" : "integer",
8dd66e12 32920 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
32921 }
32922 }
32923 },
32924 "permissions" : {
32925 "check" : [
32926 "perm",
32927 "/vms/{vmid}",
32928 [
32929 "VM.Config.Network"
32930 ]
32931 ]
32932 },
32933 "protected" : 1,
44660702
DM
32934 "returns" : {
32935 "type" : "null"
32936 }
32937 }
32938 },
32939 "leaf" : 0,
4d47f125
TL
32940 "path" : "/nodes/{node}/lxc/{vmid}/firewall/aliases",
32941 "text" : "aliases"
44660702
DM
32942 },
32943 {
32944 "children" : [
32945 {
4d47f125
TL
32946 "children" : [
32947 {
32948 "info" : {
32949 "DELETE" : {
e9cd3bd4 32950 "allowtoken" : 1,
4d47f125
TL
32951 "description" : "Remove IP or Network from IPSet.",
32952 "method" : "DELETE",
32953 "name" : "remove_ip",
32954 "parameters" : {
32955 "additionalProperties" : 0,
32956 "properties" : {
32957 "cidr" : {
32958 "description" : "Network/IP specification in CIDR format.",
32959 "format" : "IPorCIDRorAlias",
32960 "type" : "string",
32961 "typetext" : "<string>"
32962 },
32963 "digest" : {
82551b2b
TL
32964 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
32965 "maxLength" : 64,
4d47f125
TL
32966 "optional" : 1,
32967 "type" : "string",
32968 "typetext" : "<string>"
32969 },
32970 "name" : {
32971 "description" : "IP set name.",
32972 "maxLength" : 64,
32973 "minLength" : 2,
32974 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
32975 "type" : "string"
32976 },
32977 "node" : {
32978 "description" : "The cluster node name.",
32979 "format" : "pve-node",
32980 "type" : "string",
32981 "typetext" : "<string>"
32982 },
32983 "vmid" : {
32984 "description" : "The (unique) ID of the VM.",
32985 "format" : "pve-vmid",
8dd66e12
TL
32986 "maximum" : 999999999,
32987 "minimum" : 100,
4d47f125 32988 "type" : "integer",
8dd66e12 32989 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
32990 }
32991 }
32992 },
32993 "permissions" : {
32994 "check" : [
32995 "perm",
32996 "/vms/{vmid}",
32997 [
32998 "VM.Config.Network"
32999 ]
33000 ]
33001 },
33002 "protected" : 1,
33003 "returns" : {
33004 "type" : "null"
33005 }
33006 },
33007 "GET" : {
e9cd3bd4 33008 "allowtoken" : 1,
4d47f125
TL
33009 "description" : "Read IP or Network settings from IPSet.",
33010 "method" : "GET",
33011 "name" : "read_ip",
33012 "parameters" : {
33013 "additionalProperties" : 0,
33014 "properties" : {
33015 "cidr" : {
33016 "description" : "Network/IP specification in CIDR format.",
33017 "format" : "IPorCIDRorAlias",
33018 "type" : "string",
33019 "typetext" : "<string>"
33020 },
33021 "name" : {
33022 "description" : "IP set name.",
33023 "maxLength" : 64,
33024 "minLength" : 2,
33025 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
33026 "type" : "string"
33027 },
33028 "node" : {
33029 "description" : "The cluster node name.",
33030 "format" : "pve-node",
33031 "type" : "string",
33032 "typetext" : "<string>"
33033 },
33034 "vmid" : {
33035 "description" : "The (unique) ID of the VM.",
33036 "format" : "pve-vmid",
8dd66e12
TL
33037 "maximum" : 999999999,
33038 "minimum" : 100,
4d47f125 33039 "type" : "integer",
8dd66e12 33040 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
33041 }
33042 }
33043 },
33044 "permissions" : {
33045 "check" : [
33046 "perm",
33047 "/vms/{vmid}",
33048 [
33049 "VM.Audit"
33050 ]
33051 ]
33052 },
33053 "protected" : 1,
33054 "returns" : {
33055 "type" : "object"
33056 }
33057 },
33058 "PUT" : {
e9cd3bd4 33059 "allowtoken" : 1,
4d47f125
TL
33060 "description" : "Update IP or Network settings",
33061 "method" : "PUT",
33062 "name" : "update_ip",
33063 "parameters" : {
33064 "additionalProperties" : 0,
33065 "properties" : {
33066 "cidr" : {
33067 "description" : "Network/IP specification in CIDR format.",
33068 "format" : "IPorCIDRorAlias",
33069 "type" : "string",
33070 "typetext" : "<string>"
33071 },
33072 "comment" : {
33073 "optional" : 1,
33074 "type" : "string",
33075 "typetext" : "<string>"
33076 },
33077 "digest" : {
82551b2b
TL
33078 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
33079 "maxLength" : 64,
4d47f125
TL
33080 "optional" : 1,
33081 "type" : "string",
33082 "typetext" : "<string>"
33083 },
33084 "name" : {
33085 "description" : "IP set name.",
33086 "maxLength" : 64,
33087 "minLength" : 2,
33088 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
33089 "type" : "string"
33090 },
33091 "node" : {
33092 "description" : "The cluster node name.",
33093 "format" : "pve-node",
33094 "type" : "string",
33095 "typetext" : "<string>"
33096 },
33097 "nomatch" : {
33098 "optional" : 1,
33099 "type" : "boolean",
33100 "typetext" : "<boolean>"
33101 },
33102 "vmid" : {
33103 "description" : "The (unique) ID of the VM.",
33104 "format" : "pve-vmid",
8dd66e12
TL
33105 "maximum" : 999999999,
33106 "minimum" : 100,
4d47f125 33107 "type" : "integer",
8dd66e12 33108 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
33109 }
33110 }
33111 },
33112 "permissions" : {
33113 "check" : [
33114 "perm",
33115 "/vms/{vmid}",
33116 [
33117 "VM.Config.Network"
33118 ]
33119 ]
33120 },
33121 "protected" : 1,
33122 "returns" : {
33123 "type" : "null"
33124 }
33125 }
33126 },
33127 "leaf" : 1,
33128 "path" : "/nodes/{node}/lxc/{vmid}/firewall/ipset/{name}/{cidr}",
33129 "text" : "{cidr}"
33130 }
33131 ],
44660702
DM
33132 "info" : {
33133 "DELETE" : {
e9cd3bd4 33134 "allowtoken" : 1,
4d47f125 33135 "description" : "Delete IPSet",
44660702 33136 "method" : "DELETE",
4d47f125 33137 "name" : "delete_ipset",
56122987 33138 "parameters" : {
44660702 33139 "additionalProperties" : 0,
56122987 33140 "properties" : {
81a3384d
TL
33141 "force" : {
33142 "description" : "Delete all members of the IPSet, if there are any.",
33143 "optional" : 1,
33144 "type" : "boolean",
33145 "typetext" : "<boolean>"
33146 },
7aacca6f 33147 "name" : {
4d47f125 33148 "description" : "IP set name.",
7aacca6f 33149 "maxLength" : 64,
7aacca6f
DM
33150 "minLength" : 2,
33151 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702 33152 "type" : "string"
7aacca6f
DM
33153 },
33154 "node" : {
44660702 33155 "description" : "The cluster node name.",
56122987 33156 "format" : "pve-node",
013dc89f
DM
33157 "type" : "string",
33158 "typetext" : "<string>"
7aacca6f 33159 },
56122987 33160 "vmid" : {
44660702 33161 "description" : "The (unique) ID of the VM.",
56122987 33162 "format" : "pve-vmid",
8dd66e12
TL
33163 "maximum" : 999999999,
33164 "minimum" : 100,
4bd7df8b 33165 "type" : "integer",
8dd66e12 33166 "typetext" : "<integer> (100 - 999999999)"
56122987 33167 }
44660702 33168 }
56122987 33169 },
56122987
DM
33170 "permissions" : {
33171 "check" : [
33172 "perm",
33173 "/vms/{vmid}",
33174 [
7aacca6f 33175 "VM.Config.Network"
56122987
DM
33176 ]
33177 ]
33178 },
44660702 33179 "protected" : 1,
56122987 33180 "returns" : {
7aacca6f 33181 "type" : "null"
44660702 33182 }
56122987 33183 },
44660702 33184 "GET" : {
e9cd3bd4 33185 "allowtoken" : 1,
4d47f125 33186 "description" : "List IPSet content",
44660702 33187 "method" : "GET",
4d47f125 33188 "name" : "get_ipset",
44660702
DM
33189 "parameters" : {
33190 "additionalProperties" : 0,
33191 "properties" : {
33192 "name" : {
4d47f125 33193 "description" : "IP set name.",
44660702
DM
33194 "maxLength" : 64,
33195 "minLength" : 2,
33196 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
33197 "type" : "string"
33198 },
33199 "node" : {
33200 "description" : "The cluster node name.",
33201 "format" : "pve-node",
013dc89f
DM
33202 "type" : "string",
33203 "typetext" : "<string>"
44660702
DM
33204 },
33205 "vmid" : {
33206 "description" : "The (unique) ID of the VM.",
33207 "format" : "pve-vmid",
8dd66e12
TL
33208 "maximum" : 999999999,
33209 "minimum" : 100,
4bd7df8b 33210 "type" : "integer",
8dd66e12 33211 "typetext" : "<integer> (100 - 999999999)"
44660702 33212 }
4d47f125
TL
33213 }
33214 },
33215 "permissions" : {
33216 "check" : [
33217 "perm",
33218 "/vms/{vmid}",
33219 [
33220 "VM.Audit"
33221 ]
33222 ]
33223 },
33224 "returns" : {
33225 "items" : {
33226 "properties" : {
33227 "cidr" : {
33228 "type" : "string"
33229 },
33230 "comment" : {
33231 "optional" : 1,
33232 "type" : "string"
33233 },
33234 "digest" : {
82551b2b
TL
33235 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
33236 "maxLength" : 64,
4d47f125
TL
33237 "optional" : 0,
33238 "type" : "string"
33239 },
33240 "nomatch" : {
33241 "optional" : 1,
33242 "type" : "boolean"
33243 }
33244 },
33245 "type" : "object"
33246 },
33247 "links" : [
33248 {
33249 "href" : "{cidr}",
33250 "rel" : "child"
33251 }
33252 ],
33253 "type" : "array"
44660702
DM
33254 }
33255 },
4d47f125 33256 "POST" : {
e9cd3bd4 33257 "allowtoken" : 1,
4d47f125
TL
33258 "description" : "Add IP or Network to IPSet.",
33259 "method" : "POST",
33260 "name" : "create_ip",
56122987
DM
33261 "parameters" : {
33262 "additionalProperties" : 0,
33263 "properties" : {
44660702
DM
33264 "cidr" : {
33265 "description" : "Network/IP specification in CIDR format.",
4d47f125 33266 "format" : "IPorCIDRorAlias",
013dc89f
DM
33267 "type" : "string",
33268 "typetext" : "<string>"
44660702
DM
33269 },
33270 "comment" : {
33271 "optional" : 1,
013dc89f
DM
33272 "type" : "string",
33273 "typetext" : "<string>"
44660702 33274 },
56122987 33275 "name" : {
4d47f125 33276 "description" : "IP set name.",
44660702
DM
33277 "maxLength" : 64,
33278 "minLength" : 2,
7aacca6f 33279 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702 33280 "type" : "string"
56122987
DM
33281 },
33282 "node" : {
33283 "description" : "The cluster node name.",
44660702 33284 "format" : "pve-node",
013dc89f
DM
33285 "type" : "string",
33286 "typetext" : "<string>"
44660702 33287 },
4d47f125 33288 "nomatch" : {
44660702 33289 "optional" : 1,
4d47f125
TL
33290 "type" : "boolean",
33291 "typetext" : "<boolean>"
56122987 33292 },
7aacca6f 33293 "vmid" : {
7aacca6f 33294 "description" : "The (unique) ID of the VM.",
44660702 33295 "format" : "pve-vmid",
8dd66e12
TL
33296 "maximum" : 999999999,
33297 "minimum" : 100,
4bd7df8b 33298 "type" : "integer",
8dd66e12 33299 "typetext" : "<integer> (100 - 999999999)"
56122987
DM
33300 }
33301 }
33302 },
44660702
DM
33303 "permissions" : {
33304 "check" : [
33305 "perm",
33306 "/vms/{vmid}",
33307 [
33308 "VM.Config.Network"
33309 ]
33310 ]
7aacca6f 33311 },
44660702
DM
33312 "protected" : 1,
33313 "returns" : {
33314 "type" : "null"
7aacca6f
DM
33315 }
33316 }
33317 },
4d47f125
TL
33318 "leaf" : 0,
33319 "path" : "/nodes/{node}/lxc/{vmid}/firewall/ipset/{name}",
44660702
DM
33320 "text" : "{name}"
33321 }
33322 ],
33323 "info" : {
33324 "GET" : {
e9cd3bd4 33325 "allowtoken" : 1,
4d47f125 33326 "description" : "List IPSets",
44660702 33327 "method" : "GET",
4d47f125 33328 "name" : "ipset_index",
56122987
DM
33329 "parameters" : {
33330 "additionalProperties" : 0,
33331 "properties" : {
33332 "node" : {
44660702 33333 "description" : "The cluster node name.",
56122987 33334 "format" : "pve-node",
013dc89f
DM
33335 "type" : "string",
33336 "typetext" : "<string>"
56122987
DM
33337 },
33338 "vmid" : {
7aacca6f 33339 "description" : "The (unique) ID of the VM.",
44660702 33340 "format" : "pve-vmid",
8dd66e12
TL
33341 "maximum" : 999999999,
33342 "minimum" : 100,
4bd7df8b 33343 "type" : "integer",
8dd66e12 33344 "typetext" : "<integer> (100 - 999999999)"
56122987
DM
33345 }
33346 }
33347 },
44660702
DM
33348 "permissions" : {
33349 "check" : [
33350 "perm",
33351 "/vms/{vmid}",
33352 [
33353 "VM.Audit"
33354 ]
33355 ]
33356 },
56122987
DM
33357 "returns" : {
33358 "items" : {
56122987 33359 "properties" : {
44660702
DM
33360 "comment" : {
33361 "optional" : 1,
56122987
DM
33362 "type" : "string"
33363 },
56122987 33364 "digest" : {
82551b2b
TL
33365 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
33366 "maxLength" : 64,
44660702
DM
33367 "optional" : 0,
33368 "type" : "string"
33369 },
33370 "name" : {
4d47f125
TL
33371 "description" : "IP set name.",
33372 "maxLength" : 64,
33373 "minLength" : 2,
33374 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702 33375 "type" : "string"
56122987 33376 }
44660702
DM
33377 },
33378 "type" : "object"
33379 },
33380 "links" : [
33381 {
33382 "href" : "{name}",
33383 "rel" : "child"
56122987 33384 }
4d47f125
TL
33385 ],
33386 "type" : "array"
33387 }
33388 },
33389 "POST" : {
e9cd3bd4 33390 "allowtoken" : 1,
4d47f125
TL
33391 "description" : "Create new IPSet",
33392 "method" : "POST",
33393 "name" : "create_ipset",
33394 "parameters" : {
33395 "additionalProperties" : 0,
33396 "properties" : {
33397 "comment" : {
33398 "optional" : 1,
33399 "type" : "string",
33400 "typetext" : "<string>"
33401 },
33402 "digest" : {
82551b2b
TL
33403 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
33404 "maxLength" : 64,
4d47f125
TL
33405 "optional" : 1,
33406 "type" : "string",
33407 "typetext" : "<string>"
33408 },
33409 "name" : {
33410 "description" : "IP set name.",
33411 "maxLength" : 64,
33412 "minLength" : 2,
33413 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
33414 "type" : "string"
33415 },
33416 "node" : {
33417 "description" : "The cluster node name.",
33418 "format" : "pve-node",
33419 "type" : "string",
33420 "typetext" : "<string>"
33421 },
33422 "rename" : {
33423 "description" : "Rename an existing IPSet. You can set 'rename' to the same value as 'name' to update the 'comment' of an existing IPSet.",
33424 "maxLength" : 64,
33425 "minLength" : 2,
33426 "optional" : 1,
33427 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
33428 "type" : "string"
33429 },
33430 "vmid" : {
33431 "description" : "The (unique) ID of the VM.",
33432 "format" : "pve-vmid",
8dd66e12
TL
33433 "maximum" : 999999999,
33434 "minimum" : 100,
4d47f125 33435 "type" : "integer",
8dd66e12 33436 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
33437 }
33438 }
33439 },
33440 "permissions" : {
33441 "check" : [
33442 "perm",
33443 "/vms/{vmid}",
33444 [
33445 "VM.Config.Network"
33446 ]
33447 ]
33448 },
33449 "protected" : 1,
33450 "returns" : {
33451 "type" : "null"
33452 }
33453 }
33454 },
33455 "leaf" : 0,
33456 "path" : "/nodes/{node}/lxc/{vmid}/firewall/ipset",
33457 "text" : "ipset"
33458 },
33459 {
33460 "info" : {
33461 "GET" : {
e9cd3bd4 33462 "allowtoken" : 1,
4d47f125
TL
33463 "description" : "Get VM firewall options.",
33464 "method" : "GET",
33465 "name" : "get_options",
33466 "parameters" : {
33467 "additionalProperties" : 0,
33468 "properties" : {
33469 "node" : {
33470 "description" : "The cluster node name.",
33471 "format" : "pve-node",
33472 "type" : "string",
33473 "typetext" : "<string>"
33474 },
33475 "vmid" : {
33476 "description" : "The (unique) ID of the VM.",
33477 "format" : "pve-vmid",
8dd66e12
TL
33478 "maximum" : 999999999,
33479 "minimum" : 100,
4d47f125 33480 "type" : "integer",
8dd66e12 33481 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
33482 }
33483 }
33484 },
33485 "permissions" : {
33486 "check" : [
33487 "perm",
33488 "/vms/{vmid}",
33489 [
33490 "VM.Audit"
33491 ]
33492 ]
33493 },
33494 "proxyto" : "node",
33495 "returns" : {
33496 "properties" : {
33497 "dhcp" : {
5c1699e5 33498 "default" : 0,
4d47f125
TL
33499 "description" : "Enable DHCP.",
33500 "optional" : 1,
33501 "type" : "boolean"
33502 },
33503 "enable" : {
5c1699e5 33504 "default" : 0,
4d47f125
TL
33505 "description" : "Enable/disable firewall rules.",
33506 "optional" : 1,
33507 "type" : "boolean"
33508 },
33509 "ipfilter" : {
33510 "description" : "Enable default IP filters. This is equivalent to adding an empty ipfilter-net<id> ipset for every interface. Such ipsets implicitly contain sane default restrictions such as restricting IPv6 link local addresses to the one derived from the interface's MAC address. For containers the configured IP addresses will be implicitly added.",
33511 "optional" : 1,
33512 "type" : "boolean"
33513 },
33514 "log_level_in" : {
33515 "description" : "Log level for incoming traffic.",
33516 "enum" : [
33517 "emerg",
33518 "alert",
33519 "crit",
33520 "err",
33521 "warning",
33522 "notice",
33523 "info",
33524 "debug",
33525 "nolog"
33526 ],
33527 "optional" : 1,
33528 "type" : "string"
33529 },
33530 "log_level_out" : {
33531 "description" : "Log level for outgoing traffic.",
33532 "enum" : [
33533 "emerg",
33534 "alert",
33535 "crit",
33536 "err",
33537 "warning",
33538 "notice",
33539 "info",
33540 "debug",
33541 "nolog"
33542 ],
33543 "optional" : 1,
33544 "type" : "string"
33545 },
33546 "macfilter" : {
de786b48 33547 "default" : 1,
4d47f125
TL
33548 "description" : "Enable/disable MAC address filter.",
33549 "optional" : 1,
33550 "type" : "boolean"
33551 },
33552 "ndp" : {
5c1699e5
TL
33553 "default" : 0,
33554 "description" : "Enable NDP (Neighbor Discovery Protocol).",
4d47f125
TL
33555 "optional" : 1,
33556 "type" : "boolean"
33557 },
33558 "policy_in" : {
33559 "description" : "Input policy.",
33560 "enum" : [
33561 "ACCEPT",
33562 "REJECT",
33563 "DROP"
33564 ],
33565 "optional" : 1,
33566 "type" : "string"
33567 },
33568 "policy_out" : {
33569 "description" : "Output policy.",
33570 "enum" : [
33571 "ACCEPT",
33572 "REJECT",
33573 "DROP"
33574 ],
33575 "optional" : 1,
33576 "type" : "string"
33577 },
33578 "radv" : {
33579 "description" : "Allow sending Router Advertisement.",
33580 "optional" : 1,
33581 "type" : "boolean"
33582 }
33583 },
33584 "type" : "object"
7aacca6f
DM
33585 }
33586 },
4d47f125 33587 "PUT" : {
e9cd3bd4 33588 "allowtoken" : 1,
4d47f125
TL
33589 "description" : "Set Firewall options.",
33590 "method" : "PUT",
33591 "name" : "set_options",
7aacca6f
DM
33592 "parameters" : {
33593 "additionalProperties" : 0,
33594 "properties" : {
4d47f125
TL
33595 "delete" : {
33596 "description" : "A list of settings you want to delete.",
33597 "format" : "pve-configid-list",
7aacca6f 33598 "optional" : 1,
013dc89f
DM
33599 "type" : "string",
33600 "typetext" : "<string>"
7aacca6f 33601 },
4d47f125 33602 "dhcp" : {
5c1699e5 33603 "default" : 0,
4d47f125
TL
33604 "description" : "Enable DHCP.",
33605 "optional" : 1,
33606 "type" : "boolean",
33607 "typetext" : "<boolean>"
7aacca6f 33608 },
4d47f125 33609 "digest" : {
82551b2b
TL
33610 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
33611 "maxLength" : 64,
4d47f125 33612 "optional" : 1,
013dc89f
DM
33613 "type" : "string",
33614 "typetext" : "<string>"
7aacca6f 33615 },
4d47f125 33616 "enable" : {
5c1699e5 33617 "default" : 0,
4d47f125
TL
33618 "description" : "Enable/disable firewall rules.",
33619 "optional" : 1,
33620 "type" : "boolean",
33621 "typetext" : "<boolean>"
33622 },
33623 "ipfilter" : {
33624 "description" : "Enable default IP filters. This is equivalent to adding an empty ipfilter-net<id> ipset for every interface. Such ipsets implicitly contain sane default restrictions such as restricting IPv6 link local addresses to the one derived from the interface's MAC address. For containers the configured IP addresses will be implicitly added.",
33625 "optional" : 1,
33626 "type" : "boolean",
33627 "typetext" : "<boolean>"
56122987 33628 },
4d47f125
TL
33629 "log_level_in" : {
33630 "description" : "Log level for incoming traffic.",
33631 "enum" : [
33632 "emerg",
33633 "alert",
33634 "crit",
33635 "err",
33636 "warning",
33637 "notice",
33638 "info",
33639 "debug",
33640 "nolog"
33641 ],
33642 "optional" : 1,
33643 "type" : "string"
44660702 33644 },
4d47f125
TL
33645 "log_level_out" : {
33646 "description" : "Log level for outgoing traffic.",
33647 "enum" : [
33648 "emerg",
33649 "alert",
33650 "crit",
33651 "err",
33652 "warning",
33653 "notice",
33654 "info",
33655 "debug",
33656 "nolog"
33657 ],
33658 "optional" : 1,
33659 "type" : "string"
44660702 33660 },
4d47f125 33661 "macfilter" : {
de786b48 33662 "default" : 1,
4d47f125
TL
33663 "description" : "Enable/disable MAC address filter.",
33664 "optional" : 1,
33665 "type" : "boolean",
33666 "typetext" : "<boolean>"
7aacca6f 33667 },
4d47f125 33668 "ndp" : {
5c1699e5
TL
33669 "default" : 0,
33670 "description" : "Enable NDP (Neighbor Discovery Protocol).",
4d47f125
TL
33671 "optional" : 1,
33672 "type" : "boolean",
33673 "typetext" : "<boolean>"
7aacca6f 33674 },
4d47f125
TL
33675 "node" : {
33676 "description" : "The cluster node name.",
33677 "format" : "pve-node",
33678 "type" : "string",
33679 "typetext" : "<string>"
33680 },
33681 "policy_in" : {
33682 "description" : "Input policy.",
33683 "enum" : [
33684 "ACCEPT",
33685 "REJECT",
33686 "DROP"
44660702 33687 ],
4d47f125
TL
33688 "optional" : 1,
33689 "type" : "string"
33690 },
33691 "policy_out" : {
33692 "description" : "Output policy.",
33693 "enum" : [
33694 "ACCEPT",
33695 "REJECT",
33696 "DROP"
33697 ],
33698 "optional" : 1,
33699 "type" : "string"
33700 },
33701 "radv" : {
33702 "description" : "Allow sending Router Advertisement.",
33703 "optional" : 1,
33704 "type" : "boolean",
33705 "typetext" : "<boolean>"
33706 },
33707 "vmid" : {
33708 "description" : "The (unique) ID of the VM.",
33709 "format" : "pve-vmid",
8dd66e12
TL
33710 "maximum" : 999999999,
33711 "minimum" : 100,
4d47f125 33712 "type" : "integer",
8dd66e12 33713 "typetext" : "<integer> (100 - 999999999)"
44660702 33714 }
4d47f125
TL
33715 }
33716 },
33717 "permissions" : {
33718 "check" : [
33719 "perm",
33720 "/vms/{vmid}",
33721 [
33722 "VM.Config.Network"
33723 ]
33724 ]
33725 },
33726 "protected" : 1,
33727 "proxyto" : "node",
33728 "returns" : {
33729 "type" : "null"
33730 }
33731 }
33732 },
33733 "leaf" : 1,
33734 "path" : "/nodes/{node}/lxc/{vmid}/firewall/options",
33735 "text" : "options"
33736 },
33737 {
33738 "info" : {
33739 "GET" : {
e9cd3bd4 33740 "allowtoken" : 1,
4d47f125
TL
33741 "description" : "Read firewall log",
33742 "method" : "GET",
33743 "name" : "log",
33744 "parameters" : {
33745 "additionalProperties" : 0,
33746 "properties" : {
33747 "limit" : {
33748 "minimum" : 0,
33749 "optional" : 1,
33750 "type" : "integer",
33751 "typetext" : "<integer> (0 - N)"
44660702 33752 },
4d47f125
TL
33753 "node" : {
33754 "description" : "The cluster node name.",
33755 "format" : "pve-node",
33756 "type" : "string",
33757 "typetext" : "<string>"
44660702 33758 },
9d2e98ed
TL
33759 "since" : {
33760 "description" : "Display log since this UNIX epoch.",
33761 "minimum" : 0,
33762 "optional" : 1,
33763 "type" : "integer",
33764 "typetext" : "<integer> (0 - N)"
33765 },
4d47f125
TL
33766 "start" : {
33767 "minimum" : 0,
33768 "optional" : 1,
33769 "type" : "integer",
33770 "typetext" : "<integer> (0 - N)"
33771 },
9d2e98ed
TL
33772 "until" : {
33773 "description" : "Display log until this UNIX epoch.",
33774 "minimum" : 0,
33775 "optional" : 1,
33776 "type" : "integer",
33777 "typetext" : "<integer> (0 - N)"
33778 },
4d47f125
TL
33779 "vmid" : {
33780 "description" : "The (unique) ID of the VM.",
33781 "format" : "pve-vmid",
8dd66e12
TL
33782 "maximum" : 999999999,
33783 "minimum" : 100,
4d47f125 33784 "type" : "integer",
8dd66e12 33785 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
33786 }
33787 }
33788 },
4d47f125
TL
33789 "permissions" : {
33790 "check" : [
33791 "perm",
33792 "/vms/{vmid}",
33793 [
33794 "VM.Console"
33795 ]
33796 ]
33797 },
33798 "protected" : 1,
33799 "proxyto" : "node",
33800 "returns" : {
33801 "items" : {
33802 "properties" : {
33803 "n" : {
33804 "description" : "Line number",
33805 "type" : "integer"
33806 },
33807 "t" : {
33808 "description" : "Line text",
33809 "type" : "string"
33810 }
33811 },
33812 "type" : "object"
33813 },
33814 "type" : "array"
33815 }
44660702 33816 }
4d47f125
TL
33817 },
33818 "leaf" : 1,
33819 "path" : "/nodes/{node}/lxc/{vmid}/firewall/log",
33820 "text" : "log"
33821 },
33822 {
44660702
DM
33823 "info" : {
33824 "GET" : {
e9cd3bd4 33825 "allowtoken" : 1,
4d47f125 33826 "description" : "Lists possible IPSet/Alias reference which are allowed in source/dest properties.",
44660702 33827 "method" : "GET",
4d47f125 33828 "name" : "refs",
44660702
DM
33829 "parameters" : {
33830 "additionalProperties" : 0,
33831 "properties" : {
33832 "node" : {
33833 "description" : "The cluster node name.",
33834 "format" : "pve-node",
013dc89f
DM
33835 "type" : "string",
33836 "typetext" : "<string>"
44660702 33837 },
4d47f125
TL
33838 "type" : {
33839 "description" : "Only list references of specified type.",
33840 "enum" : [
33841 "alias",
33842 "ipset"
33843 ],
33844 "optional" : 1,
33845 "type" : "string"
33846 },
44660702
DM
33847 "vmid" : {
33848 "description" : "The (unique) ID of the VM.",
33849 "format" : "pve-vmid",
8dd66e12
TL
33850 "maximum" : 999999999,
33851 "minimum" : 100,
4bd7df8b 33852 "type" : "integer",
8dd66e12 33853 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
33854 }
33855 }
33856 },
4d47f125
TL
33857 "permissions" : {
33858 "check" : [
33859 "perm",
33860 "/vms/{vmid}",
33861 [
33862 "VM.Audit"
33863 ]
33864 ]
33865 },
33866 "returns" : {
33867 "items" : {
33868 "properties" : {
33869 "comment" : {
33870 "optional" : 1,
33871 "type" : "string"
33872 },
33873 "name" : {
33874 "type" : "string"
33875 },
07b013aa
TL
33876 "ref" : {
33877 "type" : "string"
33878 },
33879 "scope" : {
33880 "type" : "string"
33881 },
4d47f125
TL
33882 "type" : {
33883 "enum" : [
33884 "alias",
33885 "ipset"
33886 ],
33887 "type" : "string"
33888 }
33889 },
33890 "type" : "object"
33891 },
33892 "type" : "array"
33893 }
33894 }
33895 },
33896 "leaf" : 1,
33897 "path" : "/nodes/{node}/lxc/{vmid}/firewall/refs",
33898 "text" : "refs"
33899 }
33900 ],
33901 "info" : {
33902 "GET" : {
e9cd3bd4 33903 "allowtoken" : 1,
4d47f125
TL
33904 "description" : "Directory index.",
33905 "method" : "GET",
33906 "name" : "index",
33907 "parameters" : {
33908 "additionalProperties" : 0,
33909 "properties" : {
33910 "node" : {
33911 "description" : "The cluster node name.",
33912 "format" : "pve-node",
33913 "type" : "string",
33914 "typetext" : "<string>"
33915 },
33916 "vmid" : {
33917 "description" : "The (unique) ID of the VM.",
33918 "format" : "pve-vmid",
8dd66e12
TL
33919 "maximum" : 999999999,
33920 "minimum" : 100,
4d47f125 33921 "type" : "integer",
8dd66e12 33922 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
33923 }
33924 }
33925 },
33926 "permissions" : {
33927 "user" : "all"
33928 },
33929 "returns" : {
33930 "items" : {
33931 "properties" : {},
33932 "type" : "object"
33933 },
33934 "links" : [
33935 {
33936 "href" : "{name}",
33937 "rel" : "child"
33938 }
33939 ],
33940 "type" : "array"
33941 }
33942 }
33943 },
33944 "leaf" : 0,
33945 "path" : "/nodes/{node}/lxc/{vmid}/firewall",
33946 "text" : "firewall"
33947 },
33948 {
33949 "info" : {
33950 "GET" : {
e9cd3bd4 33951 "allowtoken" : 1,
4d47f125
TL
33952 "description" : "Read VM RRD statistics (returns PNG)",
33953 "method" : "GET",
33954 "name" : "rrd",
33955 "parameters" : {
33956 "additionalProperties" : 0,
33957 "properties" : {
33958 "cf" : {
33959 "description" : "The RRD consolidation function",
33960 "enum" : [
33961 "AVERAGE",
33962 "MAX"
33963 ],
33964 "optional" : 1,
33965 "type" : "string"
33966 },
33967 "ds" : {
33968 "description" : "The list of datasources you want to display.",
33969 "format" : "pve-configid-list",
33970 "type" : "string",
33971 "typetext" : "<string>"
33972 },
33973 "node" : {
33974 "description" : "The cluster node name.",
33975 "format" : "pve-node",
33976 "type" : "string",
33977 "typetext" : "<string>"
33978 },
33979 "timeframe" : {
33980 "description" : "Specify the time frame you are interested in.",
33981 "enum" : [
33982 "hour",
33983 "day",
33984 "week",
33985 "month",
33986 "year"
33987 ],
33988 "type" : "string"
33989 },
33990 "vmid" : {
33991 "description" : "The (unique) ID of the VM.",
33992 "format" : "pve-vmid",
8dd66e12
TL
33993 "maximum" : 999999999,
33994 "minimum" : 100,
4d47f125 33995 "type" : "integer",
8dd66e12 33996 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
33997 }
33998 }
33999 },
34000 "permissions" : {
34001 "check" : [
34002 "perm",
34003 "/vms/{vmid}",
34004 [
34005 "VM.Audit"
34006 ]
34007 ]
34008 },
34009 "protected" : 1,
34010 "returns" : {
34011 "properties" : {
34012 "filename" : {
34013 "type" : "string"
34014 }
34015 },
34016 "type" : "object"
34017 }
34018 }
34019 },
34020 "leaf" : 1,
34021 "path" : "/nodes/{node}/lxc/{vmid}/rrd",
34022 "text" : "rrd"
34023 },
34024 {
34025 "info" : {
34026 "GET" : {
e9cd3bd4 34027 "allowtoken" : 1,
4d47f125
TL
34028 "description" : "Read VM RRD statistics",
34029 "method" : "GET",
34030 "name" : "rrddata",
34031 "parameters" : {
34032 "additionalProperties" : 0,
34033 "properties" : {
34034 "cf" : {
34035 "description" : "The RRD consolidation function",
34036 "enum" : [
34037 "AVERAGE",
34038 "MAX"
34039 ],
34040 "optional" : 1,
34041 "type" : "string"
34042 },
34043 "node" : {
34044 "description" : "The cluster node name.",
34045 "format" : "pve-node",
34046 "type" : "string",
34047 "typetext" : "<string>"
44660702 34048 },
4d47f125
TL
34049 "timeframe" : {
34050 "description" : "Specify the time frame you are interested in.",
34051 "enum" : [
34052 "hour",
34053 "day",
34054 "week",
34055 "month",
34056 "year"
44660702 34057 ],
4d47f125
TL
34058 "type" : "string"
34059 },
34060 "vmid" : {
34061 "description" : "The (unique) ID of the VM.",
34062 "format" : "pve-vmid",
8dd66e12
TL
34063 "maximum" : 999999999,
34064 "minimum" : 100,
4d47f125 34065 "type" : "integer",
8dd66e12 34066 "typetext" : "<integer> (100 - 999999999)"
44660702 34067 }
4d47f125
TL
34068 }
34069 },
34070 "permissions" : {
34071 "check" : [
34072 "perm",
34073 "/vms/{vmid}",
34074 [
34075 "VM.Audit"
34076 ]
34077 ]
34078 },
34079 "protected" : 1,
34080 "returns" : {
34081 "items" : {
34082 "properties" : {},
34083 "type" : "object"
44660702 34084 },
4d47f125
TL
34085 "type" : "array"
34086 }
34087 }
34088 },
34089 "leaf" : 1,
34090 "path" : "/nodes/{node}/lxc/{vmid}/rrddata",
34091 "text" : "rrddata"
34092 },
34093 {
34094 "info" : {
34095 "POST" : {
e9cd3bd4 34096 "allowtoken" : 1,
4d47f125
TL
34097 "description" : "Creates a TCP VNC proxy connections.",
34098 "method" : "POST",
34099 "name" : "vncproxy",
34100 "parameters" : {
34101 "additionalProperties" : 0,
34102 "properties" : {
34103 "height" : {
34104 "description" : "sets the height of the console in pixels.",
34105 "maximum" : 2160,
34106 "minimum" : 16,
34107 "optional" : 1,
34108 "type" : "integer",
34109 "typetext" : "<integer> (16 - 2160)"
44660702 34110 },
4d47f125
TL
34111 "node" : {
34112 "description" : "The cluster node name.",
34113 "format" : "pve-node",
34114 "type" : "string",
34115 "typetext" : "<string>"
44660702 34116 },
4d47f125
TL
34117 "vmid" : {
34118 "description" : "The (unique) ID of the VM.",
34119 "format" : "pve-vmid",
8dd66e12
TL
34120 "maximum" : 999999999,
34121 "minimum" : 100,
4d47f125 34122 "type" : "integer",
8dd66e12 34123 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
34124 },
34125 "websocket" : {
34126 "description" : "use websocket instead of standard VNC.",
34127 "optional" : 1,
34128 "type" : "boolean",
34129 "typetext" : "<boolean>"
34130 },
34131 "width" : {
34132 "description" : "sets the width of the console in pixels.",
34133 "maximum" : 4096,
34134 "minimum" : 16,
34135 "optional" : 1,
34136 "type" : "integer",
34137 "typetext" : "<integer> (16 - 4096)"
56122987
DM
34138 }
34139 }
44660702 34140 },
4d47f125
TL
34141 "permissions" : {
34142 "check" : [
34143 "perm",
34144 "/vms/{vmid}",
34145 [
34146 "VM.Console"
34147 ]
34148 ]
34149 },
34150 "protected" : 1,
34151 "returns" : {
34152 "additionalProperties" : 0,
34153 "properties" : {
34154 "cert" : {
34155 "type" : "string"
44660702 34156 },
4d47f125
TL
34157 "port" : {
34158 "type" : "integer"
34159 },
34160 "ticket" : {
34161 "type" : "string"
34162 },
34163 "upid" : {
34164 "type" : "string"
34165 },
34166 "user" : {
34167 "type" : "string"
34168 }
34169 }
34170 }
34171 }
34172 },
34173 "leaf" : 1,
34174 "path" : "/nodes/{node}/lxc/{vmid}/vncproxy",
34175 "text" : "vncproxy"
34176 },
34177 {
34178 "info" : {
34179 "POST" : {
e9cd3bd4 34180 "allowtoken" : 1,
4d47f125
TL
34181 "description" : "Creates a TCP proxy connection.",
34182 "method" : "POST",
34183 "name" : "termproxy",
34184 "parameters" : {
34185 "additionalProperties" : 0,
34186 "properties" : {
34187 "node" : {
34188 "description" : "The cluster node name.",
34189 "format" : "pve-node",
34190 "type" : "string",
34191 "typetext" : "<string>"
44660702 34192 },
4d47f125
TL
34193 "vmid" : {
34194 "description" : "The (unique) ID of the VM.",
34195 "format" : "pve-vmid",
8dd66e12
TL
34196 "maximum" : 999999999,
34197 "minimum" : 100,
4d47f125 34198 "type" : "integer",
8dd66e12 34199 "typetext" : "<integer> (100 - 999999999)"
44660702 34200 }
4d47f125
TL
34201 }
34202 },
34203 "permissions" : {
34204 "check" : [
34205 "perm",
34206 "/vms/{vmid}",
34207 [
34208 "VM.Console"
34209 ]
34210 ]
34211 },
34212 "protected" : 1,
34213 "returns" : {
34214 "additionalProperties" : 0,
34215 "properties" : {
34216 "port" : {
34217 "type" : "integer"
56122987 34218 },
4d47f125
TL
34219 "ticket" : {
34220 "type" : "string"
7aacca6f 34221 },
4d47f125
TL
34222 "upid" : {
34223 "type" : "string"
34224 },
34225 "user" : {
34226 "type" : "string"
34227 }
34228 }
34229 }
34230 }
34231 },
34232 "leaf" : 1,
34233 "path" : "/nodes/{node}/lxc/{vmid}/termproxy",
34234 "text" : "termproxy"
34235 },
34236 {
34237 "info" : {
34238 "GET" : {
e9cd3bd4 34239 "allowtoken" : 1,
4d47f125
TL
34240 "description" : "Opens a weksocket for VNC traffic.",
34241 "method" : "GET",
34242 "name" : "vncwebsocket",
34243 "parameters" : {
34244 "additionalProperties" : 0,
34245 "properties" : {
34246 "node" : {
34247 "description" : "The cluster node name.",
34248 "format" : "pve-node",
34249 "type" : "string",
34250 "typetext" : "<string>"
34251 },
34252 "port" : {
34253 "description" : "Port number returned by previous vncproxy call.",
34254 "maximum" : 5999,
34255 "minimum" : 5900,
34256 "type" : "integer",
34257 "typetext" : "<integer> (5900 - 5999)"
34258 },
34259 "vmid" : {
34260 "description" : "The (unique) ID of the VM.",
34261 "format" : "pve-vmid",
8dd66e12
TL
34262 "maximum" : 999999999,
34263 "minimum" : 100,
4d47f125 34264 "type" : "integer",
8dd66e12 34265 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
34266 },
34267 "vncticket" : {
34268 "description" : "Ticket from previous call to vncproxy.",
34269 "maxLength" : 512,
34270 "type" : "string",
34271 "typetext" : "<string>"
56122987
DM
34272 }
34273 }
34274 },
4d47f125
TL
34275 "permissions" : {
34276 "check" : [
34277 "perm",
34278 "/vms/{vmid}",
34279 [
34280 "VM.Console"
34281 ]
34282 ],
34283 "description" : "You also need to pass a valid ticket (vncticket)."
34284 },
34285 "returns" : {
34286 "properties" : {
34287 "port" : {
34288 "type" : "string"
34289 }
34290 },
34291 "type" : "object"
34292 }
34293 }
34294 },
34295 "leaf" : 1,
34296 "path" : "/nodes/{node}/lxc/{vmid}/vncwebsocket",
34297 "text" : "vncwebsocket"
34298 },
34299 {
34300 "info" : {
34301 "POST" : {
e9cd3bd4 34302 "allowtoken" : 1,
4d47f125
TL
34303 "description" : "Returns a SPICE configuration to connect to the CT.",
34304 "method" : "POST",
34305 "name" : "spiceproxy",
34306 "parameters" : {
34307 "additionalProperties" : 0,
34308 "properties" : {
34309 "node" : {
34310 "description" : "The cluster node name.",
34311 "format" : "pve-node",
34312 "type" : "string",
34313 "typetext" : "<string>"
56122987 34314 },
4d47f125
TL
34315 "proxy" : {
34316 "description" : "SPICE proxy server. This can be used by the client to specify the proxy server. All nodes in a cluster runs 'spiceproxy', so it is up to the client to choose one. By default, we return the node where the VM is currently running. As reasonable setting is to use same node you use to connect to the API (This is window.location.hostname for the JS GUI).",
34317 "format" : "address",
34318 "optional" : 1,
34319 "type" : "string",
34320 "typetext" : "<string>"
44660702 34321 },
4d47f125
TL
34322 "vmid" : {
34323 "description" : "The (unique) ID of the VM.",
34324 "format" : "pve-vmid",
8dd66e12
TL
34325 "maximum" : 999999999,
34326 "minimum" : 100,
4d47f125 34327 "type" : "integer",
8dd66e12 34328 "typetext" : "<integer> (100 - 999999999)"
44660702 34329 }
56122987
DM
34330 }
34331 },
4d47f125
TL
34332 "permissions" : {
34333 "check" : [
34334 "perm",
34335 "/vms/{vmid}",
34336 [
34337 "VM.Console"
34338 ]
34339 ]
34340 },
34341 "protected" : 1,
34342 "proxyto" : "node",
34343 "returns" : {
34344 "additionalProperties" : 1,
34345 "description" : "Returned values can be directly passed to the 'remote-viewer' application.",
34346 "properties" : {
34347 "host" : {
34348 "type" : "string"
34349 },
34350 "password" : {
34351 "type" : "string"
34352 },
34353 "proxy" : {
34354 "type" : "string"
34355 },
34356 "tls-port" : {
34357 "type" : "integer"
34358 },
34359 "type" : {
34360 "type" : "string"
34361 }
34362 }
34363 }
34364 }
34365 },
34366 "leaf" : 1,
34367 "path" : "/nodes/{node}/lxc/{vmid}/spiceproxy",
34368 "text" : "spiceproxy"
34369 },
81a3384d
TL
34370 {
34371 "info" : {
34372 "POST" : {
34373 "allowtoken" : 1,
34374 "description" : "Migrate the container to another cluster. Creates a new migration task. EXPERIMENTAL feature!",
34375 "method" : "POST",
34376 "name" : "remote_migrate_vm",
34377 "parameters" : {
34378 "additionalProperties" : 0,
34379 "properties" : {
34380 "bwlimit" : {
34381 "default" : "migrate limit from datacenter or storage config",
34382 "description" : "Override I/O bandwidth limit (in KiB/s).",
34383 "minimum" : "0",
34384 "optional" : 1,
34385 "type" : "number",
34386 "typetext" : "<number> (0 - N)"
34387 },
34388 "delete" : {
34389 "default" : 0,
34390 "description" : "Delete the original CT and related data after successful migration. By default the original CT is kept on the source cluster in a stopped state.",
34391 "optional" : 1,
34392 "type" : "boolean",
34393 "typetext" : "<boolean>"
34394 },
34395 "node" : {
34396 "description" : "The cluster node name.",
34397 "format" : "pve-node",
34398 "type" : "string",
34399 "typetext" : "<string>"
34400 },
34401 "online" : {
34402 "description" : "Use online/live migration.",
34403 "optional" : 1,
34404 "type" : "boolean",
34405 "typetext" : "<boolean>"
34406 },
34407 "restart" : {
34408 "description" : "Use restart migration",
34409 "optional" : 1,
34410 "type" : "boolean",
34411 "typetext" : "<boolean>"
34412 },
34413 "target-bridge" : {
34414 "description" : "Mapping from source to target bridges. Providing only a single bridge ID maps all source bridges to that bridge. Providing the special value '1' will map each source bridge to itself.",
34415 "format" : "bridge-pair-list",
34416 "type" : "string",
34417 "typetext" : "<string>"
34418 },
34419 "target-endpoint" : {
34420 "description" : "Remote target endpoint",
34421 "format" : "proxmox-remote",
34422 "type" : "string",
907e4bc3 34423 "typetext" : "apitoken=<PVEAPIToken=user@realm!token=SECRET> ,host=<ADDRESS> [,fingerprint=<FINGERPRINT>] [,port=<PORT>]"
81a3384d
TL
34424 },
34425 "target-storage" : {
34426 "description" : "Mapping from source to target storages. Providing only a single storage ID maps all source storages to that storage. Providing the special value '1' will map each source storage to itself.",
34427 "format" : "storage-pair-list",
34428 "optional" : 0,
34429 "type" : "string",
34430 "typetext" : "<string>"
34431 },
34432 "target-vmid" : {
34433 "description" : "The (unique) ID of the VM.",
34434 "format" : "pve-vmid",
8dd66e12
TL
34435 "maximum" : 999999999,
34436 "minimum" : 100,
81a3384d
TL
34437 "optional" : 1,
34438 "type" : "integer",
8dd66e12 34439 "typetext" : "<integer> (100 - 999999999)"
81a3384d
TL
34440 },
34441 "timeout" : {
34442 "default" : 180,
34443 "description" : "Timeout in seconds for shutdown for restart migration",
34444 "optional" : 1,
34445 "type" : "integer",
34446 "typetext" : "<integer>"
34447 },
34448 "vmid" : {
34449 "description" : "The (unique) ID of the VM.",
34450 "format" : "pve-vmid",
8dd66e12
TL
34451 "maximum" : 999999999,
34452 "minimum" : 100,
81a3384d 34453 "type" : "integer",
8dd66e12 34454 "typetext" : "<integer> (100 - 999999999)"
81a3384d
TL
34455 }
34456 }
34457 },
34458 "permissions" : {
34459 "check" : [
34460 "perm",
34461 "/vms/{vmid}",
34462 [
34463 "VM.Migrate"
34464 ]
34465 ]
34466 },
34467 "protected" : 1,
34468 "proxyto" : "node",
34469 "returns" : {
34470 "description" : "the task ID.",
34471 "type" : "string"
34472 }
34473 }
34474 },
34475 "leaf" : 1,
34476 "path" : "/nodes/{node}/lxc/{vmid}/remote_migrate",
34477 "text" : "remote_migrate"
34478 },
4d47f125
TL
34479 {
34480 "info" : {
34481 "POST" : {
e9cd3bd4 34482 "allowtoken" : 1,
4d47f125
TL
34483 "description" : "Migrate the container to another node. Creates a new migration task.",
34484 "method" : "POST",
34485 "name" : "migrate_vm",
34486 "parameters" : {
34487 "additionalProperties" : 0,
34488 "properties" : {
95895385
TL
34489 "bwlimit" : {
34490 "default" : "migrate limit from datacenter or storage config",
34491 "description" : "Override I/O bandwidth limit (in KiB/s).",
34492 "minimum" : "0",
34493 "optional" : 1,
34494 "type" : "number",
34495 "typetext" : "<number> (0 - N)"
34496 },
4d47f125
TL
34497 "node" : {
34498 "description" : "The cluster node name.",
34499 "format" : "pve-node",
34500 "type" : "string",
34501 "typetext" : "<string>"
44660702 34502 },
4d47f125
TL
34503 "online" : {
34504 "description" : "Use online/live migration.",
34505 "optional" : 1,
34506 "type" : "boolean",
34507 "typetext" : "<boolean>"
34508 },
34509 "restart" : {
34510 "description" : "Use restart migration",
34511 "optional" : 1,
34512 "type" : "boolean",
34513 "typetext" : "<boolean>"
34514 },
34515 "target" : {
34516 "description" : "Target node.",
34517 "format" : "pve-node",
34518 "type" : "string",
34519 "typetext" : "<string>"
34520 },
c30bb419
TL
34521 "target-storage" : {
34522 "description" : "Mapping from source to target storages. Providing only a single storage ID maps all source storages to that storage. Providing the special value '1' will map each source storage to itself.",
34523 "format" : "storage-pair-list",
34524 "optional" : 1,
34525 "type" : "string",
34526 "typetext" : "<string>"
34527 },
4d47f125
TL
34528 "timeout" : {
34529 "default" : 180,
34530 "description" : "Timeout in seconds for shutdown for restart migration",
34531 "optional" : 1,
34532 "type" : "integer",
34533 "typetext" : "<integer>"
34534 },
34535 "vmid" : {
34536 "description" : "The (unique) ID of the VM.",
34537 "format" : "pve-vmid",
8dd66e12
TL
34538 "maximum" : 999999999,
34539 "minimum" : 100,
4d47f125 34540 "type" : "integer",
8dd66e12 34541 "typetext" : "<integer> (100 - 999999999)"
56122987
DM
34542 }
34543 }
34544 },
4d47f125
TL
34545 "permissions" : {
34546 "check" : [
34547 "perm",
34548 "/vms/{vmid}",
34549 [
34550 "VM.Migrate"
34551 ]
34552 ]
34553 },
34554 "protected" : 1,
34555 "proxyto" : "node",
34556 "returns" : {
34557 "description" : "the task ID.",
34558 "type" : "string"
34559 }
56122987 34560 }
4d47f125
TL
34561 },
34562 "leaf" : 1,
34563 "path" : "/nodes/{node}/lxc/{vmid}/migrate",
34564 "text" : "migrate"
34565 },
34566 {
56122987
DM
34567 "info" : {
34568 "GET" : {
e9cd3bd4 34569 "allowtoken" : 1,
4d47f125 34570 "description" : "Check if feature for virtual machine is available.",
44660702 34571 "method" : "GET",
4d47f125 34572 "name" : "vm_feature",
56122987 34573 "parameters" : {
44660702 34574 "additionalProperties" : 0,
56122987 34575 "properties" : {
4d47f125
TL
34576 "feature" : {
34577 "description" : "Feature to check.",
34578 "enum" : [
34579 "snapshot",
34580 "clone",
34581 "copy"
34582 ],
34583 "type" : "string"
34584 },
56122987 34585 "node" : {
44660702 34586 "description" : "The cluster node name.",
56122987 34587 "format" : "pve-node",
013dc89f
DM
34588 "type" : "string",
34589 "typetext" : "<string>"
44660702 34590 },
4d47f125
TL
34591 "snapname" : {
34592 "description" : "The name of the snapshot.",
34593 "format" : "pve-configid",
34594 "maxLength" : 40,
34595 "optional" : 1,
34596 "type" : "string",
34597 "typetext" : "<string>"
34598 },
44660702
DM
34599 "vmid" : {
34600 "description" : "The (unique) ID of the VM.",
34601 "format" : "pve-vmid",
8dd66e12
TL
34602 "maximum" : 999999999,
34603 "minimum" : 100,
4bd7df8b 34604 "type" : "integer",
8dd66e12 34605 "typetext" : "<integer> (100 - 999999999)"
56122987 34606 }
44660702
DM
34607 }
34608 },
34609 "permissions" : {
4d47f125
TL
34610 "check" : [
34611 "perm",
34612 "/vms/{vmid}",
34613 [
34614 "VM.Audit"
34615 ]
34616 ]
56122987 34617 },
4d47f125
TL
34618 "protected" : 1,
34619 "proxyto" : "node",
56122987 34620 "returns" : {
4d47f125
TL
34621 "properties" : {
34622 "hasFeature" : {
34623 "type" : "boolean"
34624 }
7aacca6f 34625 },
4d47f125
TL
34626 "type" : "object"
34627 }
34628 }
34629 },
34630 "leaf" : 1,
34631 "path" : "/nodes/{node}/lxc/{vmid}/feature",
34632 "text" : "feature"
34633 },
34634 {
34635 "info" : {
34636 "POST" : {
e9cd3bd4 34637 "allowtoken" : 1,
4d47f125
TL
34638 "description" : "Create a Template.",
34639 "method" : "POST",
34640 "name" : "template",
34641 "parameters" : {
34642 "additionalProperties" : 0,
34643 "properties" : {
34644 "node" : {
34645 "description" : "The cluster node name.",
34646 "format" : "pve-node",
34647 "type" : "string",
34648 "typetext" : "<string>"
34649 },
34650 "vmid" : {
34651 "description" : "The (unique) ID of the VM.",
34652 "format" : "pve-vmid",
8dd66e12
TL
34653 "maximum" : 999999999,
34654 "minimum" : 100,
4d47f125 34655 "type" : "integer",
8dd66e12 34656 "typetext" : "<integer> (100 - 999999999)"
56122987 34657 }
4d47f125
TL
34658 }
34659 },
34660 "permissions" : {
34661 "check" : [
34662 "perm",
34663 "/vms/{vmid}",
34664 [
34665 "VM.Allocate"
34666 ]
44660702 34667 ],
4d47f125
TL
34668 "description" : "You need 'VM.Allocate' permissions on /vms/{vmid}"
34669 },
34670 "protected" : 1,
34671 "proxyto" : "node",
34672 "returns" : {
34673 "type" : "null"
56122987
DM
34674 }
34675 }
34676 },
4d47f125
TL
34677 "leaf" : 1,
34678 "path" : "/nodes/{node}/lxc/{vmid}/template",
34679 "text" : "template"
56122987
DM
34680 },
34681 {
56122987 34682 "info" : {
4d47f125 34683 "POST" : {
e9cd3bd4 34684 "allowtoken" : 1,
4d47f125
TL
34685 "description" : "Create a container clone/copy",
34686 "method" : "POST",
34687 "name" : "clone_vm",
56122987 34688 "parameters" : {
7aacca6f 34689 "additionalProperties" : 0,
56122987 34690 "properties" : {
95895385
TL
34691 "bwlimit" : {
34692 "default" : "clone limit from datacenter or storage config",
34693 "description" : "Override I/O bandwidth limit (in KiB/s).",
34694 "minimum" : "0",
34695 "optional" : 1,
34696 "type" : "number",
34697 "typetext" : "<number> (0 - N)"
34698 },
4d47f125
TL
34699 "description" : {
34700 "description" : "Description for the new CT.",
44660702 34701 "optional" : 1,
4d47f125
TL
34702 "type" : "string",
34703 "typetext" : "<string>"
44660702 34704 },
4d47f125
TL
34705 "full" : {
34706 "description" : "Create a full copy of all disks. This is always done when you clone a normal CT. For CT templates, we try to create a linked clone by default.",
34707 "optional" : 1,
34708 "type" : "boolean",
34709 "typetext" : "<boolean>"
34710 },
34711 "hostname" : {
34712 "description" : "Set a hostname for the new CT.",
34713 "format" : "dns-name",
34714 "optional" : 1,
013dc89f
DM
34715 "type" : "string",
34716 "typetext" : "<string>"
44660702 34717 },
4d47f125
TL
34718 "newid" : {
34719 "description" : "VMID for the clone.",
34720 "format" : "pve-vmid",
8dd66e12
TL
34721 "maximum" : 999999999,
34722 "minimum" : 100,
4d47f125 34723 "type" : "integer",
8dd66e12 34724 "typetext" : "<integer> (100 - 999999999)"
4d47f125 34725 },
7aacca6f
DM
34726 "node" : {
34727 "description" : "The cluster node name.",
44660702 34728 "format" : "pve-node",
013dc89f
DM
34729 "type" : "string",
34730 "typetext" : "<string>"
56122987 34731 },
4d47f125
TL
34732 "pool" : {
34733 "description" : "Add the new CT to the specified pool.",
34734 "format" : "pve-poolid",
34735 "optional" : 1,
34736 "type" : "string",
34737 "typetext" : "<string>"
34738 },
34739 "snapname" : {
34740 "description" : "The name of the snapshot.",
34741 "format" : "pve-configid",
34742 "maxLength" : 40,
34743 "optional" : 1,
34744 "type" : "string",
34745 "typetext" : "<string>"
34746 },
34747 "storage" : {
34748 "description" : "Target storage for full clone.",
34749 "format" : "pve-storage-id",
907e4bc3 34750 "format_description" : "storage ID",
4d47f125
TL
34751 "optional" : 1,
34752 "type" : "string",
907e4bc3 34753 "typetext" : "<storage ID>"
4d47f125
TL
34754 },
34755 "target" : {
34756 "description" : "Target node. Only allowed if the original VM is on shared storage.",
34757 "format" : "pve-node",
34758 "optional" : 1,
34759 "type" : "string",
34760 "typetext" : "<string>"
34761 },
7aacca6f 34762 "vmid" : {
44660702 34763 "description" : "The (unique) ID of the VM.",
7aacca6f 34764 "format" : "pve-vmid",
8dd66e12
TL
34765 "maximum" : 999999999,
34766 "minimum" : 100,
4bd7df8b 34767 "type" : "integer",
8dd66e12 34768 "typetext" : "<integer> (100 - 999999999)"
56122987 34769 }
7aacca6f
DM
34770 }
34771 },
34772 "permissions" : {
34773 "check" : [
4d47f125 34774 "and",
7aacca6f 34775 [
4d47f125
TL
34776 "perm",
34777 "/vms/{vmid}",
34778 [
34779 "VM.Clone"
34780 ]
34781 ],
34782 [
34783 "or",
34784 [
34785 "perm",
34786 "/vms/{newid}",
34787 [
34788 "VM.Allocate"
34789 ]
34790 ],
34791 [
34792 "perm",
34793 "/pool/{pool}",
34794 [
34795 "VM.Allocate"
34796 ],
34797 "require_param",
34798 "pool"
34799 ]
7aacca6f 34800 ]
4d47f125 34801 ],
159464a9 34802 "description" : "You need 'VM.Clone' permissions on /vms/{vmid}, and 'VM.Allocate' permissions on /vms/{newid} (or on the VM pool /pool/{pool}). You also need 'Datastore.AllocateSpace' on any used storage, and 'SDN.Use' on any bridge."
56122987 34803 },
44660702 34804 "protected" : 1,
4d47f125 34805 "proxyto" : "node",
7aacca6f 34806 "returns" : {
4d47f125 34807 "type" : "string"
7aacca6f 34808 }
56122987 34809 }
7aacca6f 34810 },
44660702 34811 "leaf" : 1,
4d47f125
TL
34812 "path" : "/nodes/{node}/lxc/{vmid}/clone",
34813 "text" : "clone"
56122987
DM
34814 },
34815 {
56122987 34816 "info" : {
4d47f125 34817 "PUT" : {
e9cd3bd4 34818 "allowtoken" : 1,
4d47f125
TL
34819 "description" : "Resize a container mount point.",
34820 "method" : "PUT",
34821 "name" : "resize_vm",
56122987 34822 "parameters" : {
7aacca6f 34823 "additionalProperties" : 0,
56122987 34824 "properties" : {
4d47f125
TL
34825 "digest" : {
34826 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
34827 "maxLength" : 40,
34828 "optional" : 1,
34829 "type" : "string",
34830 "typetext" : "<string>"
34831 },
34832 "disk" : {
34833 "description" : "The disk you want to resize.",
44660702 34834 "enum" : [
4d47f125
TL
34835 "rootfs",
34836 "mp0",
34837 "mp1",
34838 "mp2",
34839 "mp3",
34840 "mp4",
34841 "mp5",
34842 "mp6",
34843 "mp7",
34844 "mp8",
34845 "mp9",
34846 "mp10",
34847 "mp11",
34848 "mp12",
34849 "mp13",
34850 "mp14",
34851 "mp15",
34852 "mp16",
34853 "mp17",
34854 "mp18",
34855 "mp19",
34856 "mp20",
34857 "mp21",
34858 "mp22",
34859 "mp23",
34860 "mp24",
34861 "mp25",
34862 "mp26",
34863 "mp27",
34864 "mp28",
34865 "mp29",
34866 "mp30",
34867 "mp31",
34868 "mp32",
34869 "mp33",
34870 "mp34",
34871 "mp35",
34872 "mp36",
34873 "mp37",
34874 "mp38",
34875 "mp39",
34876 "mp40",
34877 "mp41",
34878 "mp42",
34879 "mp43",
34880 "mp44",
34881 "mp45",
34882 "mp46",
34883 "mp47",
34884 "mp48",
34885 "mp49",
34886 "mp50",
34887 "mp51",
34888 "mp52",
34889 "mp53",
34890 "mp54",
34891 "mp55",
34892 "mp56",
34893 "mp57",
34894 "mp58",
34895 "mp59",
34896 "mp60",
34897 "mp61",
34898 "mp62",
34899 "mp63",
34900 "mp64",
34901 "mp65",
34902 "mp66",
34903 "mp67",
34904 "mp68",
34905 "mp69",
34906 "mp70",
34907 "mp71",
34908 "mp72",
34909 "mp73",
34910 "mp74",
34911 "mp75",
34912 "mp76",
34913 "mp77",
34914 "mp78",
34915 "mp79",
34916 "mp80",
34917 "mp81",
34918 "mp82",
34919 "mp83",
34920 "mp84",
34921 "mp85",
34922 "mp86",
34923 "mp87",
34924 "mp88",
34925 "mp89",
34926 "mp90",
34927 "mp91",
34928 "mp92",
34929 "mp93",
34930 "mp94",
34931 "mp95",
34932 "mp96",
34933 "mp97",
34934 "mp98",
34935 "mp99",
34936 "mp100",
34937 "mp101",
34938 "mp102",
34939 "mp103",
34940 "mp104",
34941 "mp105",
34942 "mp106",
34943 "mp107",
34944 "mp108",
34945 "mp109",
34946 "mp110",
34947 "mp111",
34948 "mp112",
34949 "mp113",
34950 "mp114",
34951 "mp115",
34952 "mp116",
34953 "mp117",
34954 "mp118",
34955 "mp119",
34956 "mp120",
34957 "mp121",
34958 "mp122",
34959 "mp123",
34960 "mp124",
34961 "mp125",
34962 "mp126",
34963 "mp127",
34964 "mp128",
34965 "mp129",
34966 "mp130",
34967 "mp131",
34968 "mp132",
34969 "mp133",
34970 "mp134",
34971 "mp135",
34972 "mp136",
34973 "mp137",
34974 "mp138",
34975 "mp139",
34976 "mp140",
34977 "mp141",
34978 "mp142",
34979 "mp143",
34980 "mp144",
34981 "mp145",
34982 "mp146",
34983 "mp147",
34984 "mp148",
34985 "mp149",
34986 "mp150",
34987 "mp151",
34988 "mp152",
34989 "mp153",
34990 "mp154",
34991 "mp155",
34992 "mp156",
34993 "mp157",
34994 "mp158",
34995 "mp159",
34996 "mp160",
34997 "mp161",
34998 "mp162",
34999 "mp163",
35000 "mp164",
35001 "mp165",
35002 "mp166",
35003 "mp167",
35004 "mp168",
35005 "mp169",
35006 "mp170",
35007 "mp171",
35008 "mp172",
35009 "mp173",
35010 "mp174",
35011 "mp175",
35012 "mp176",
35013 "mp177",
35014 "mp178",
35015 "mp179",
35016 "mp180",
35017 "mp181",
35018 "mp182",
35019 "mp183",
35020 "mp184",
35021 "mp185",
35022 "mp186",
35023 "mp187",
35024 "mp188",
35025 "mp189",
35026 "mp190",
35027 "mp191",
35028 "mp192",
35029 "mp193",
35030 "mp194",
35031 "mp195",
35032 "mp196",
35033 "mp197",
35034 "mp198",
35035 "mp199",
35036 "mp200",
35037 "mp201",
35038 "mp202",
35039 "mp203",
35040 "mp204",
35041 "mp205",
35042 "mp206",
35043 "mp207",
35044 "mp208",
35045 "mp209",
35046 "mp210",
35047 "mp211",
35048 "mp212",
35049 "mp213",
35050 "mp214",
35051 "mp215",
35052 "mp216",
35053 "mp217",
35054 "mp218",
35055 "mp219",
35056 "mp220",
35057 "mp221",
35058 "mp222",
35059 "mp223",
35060 "mp224",
35061 "mp225",
35062 "mp226",
35063 "mp227",
35064 "mp228",
35065 "mp229",
35066 "mp230",
35067 "mp231",
35068 "mp232",
35069 "mp233",
35070 "mp234",
35071 "mp235",
35072 "mp236",
35073 "mp237",
35074 "mp238",
35075 "mp239",
35076 "mp240",
35077 "mp241",
35078 "mp242",
35079 "mp243",
35080 "mp244",
35081 "mp245",
35082 "mp246",
35083 "mp247",
35084 "mp248",
35085 "mp249",
35086 "mp250",
35087 "mp251",
35088 "mp252",
35089 "mp253",
35090 "mp254",
35091 "mp255"
44660702 35092 ],
44660702
DM
35093 "type" : "string"
35094 },
7aacca6f 35095 "node" : {
44660702 35096 "description" : "The cluster node name.",
7aacca6f 35097 "format" : "pve-node",
013dc89f
DM
35098 "type" : "string",
35099 "typetext" : "<string>"
7aacca6f 35100 },
4d47f125
TL
35101 "size" : {
35102 "description" : "The new size. With the '+' sign the value is added to the actual size of the volume and without it, the value is taken as an absolute one. Shrinking disk size is not supported.",
35103 "pattern" : "\\+?\\d+(\\.\\d+)?[KMGT]?",
44660702 35104 "type" : "string"
7aacca6f
DM
35105 },
35106 "vmid" : {
35107 "description" : "The (unique) ID of the VM.",
44660702 35108 "format" : "pve-vmid",
8dd66e12
TL
35109 "maximum" : 999999999,
35110 "minimum" : 100,
4bd7df8b 35111 "type" : "integer",
8dd66e12 35112 "typetext" : "<integer> (100 - 999999999)"
56122987 35113 }
56122987
DM
35114 }
35115 },
56122987
DM
35116 "permissions" : {
35117 "check" : [
35118 "perm",
35119 "/vms/{vmid}",
35120 [
4d47f125
TL
35121 "VM.Config.Disk"
35122 ],
35123 "any",
35124 1
56122987
DM
35125 ]
35126 },
7aacca6f 35127 "protected" : 1,
4d47f125 35128 "proxyto" : "node",
7aacca6f 35129 "returns" : {
4d47f125
TL
35130 "description" : "the task ID.",
35131 "type" : "string"
44660702 35132 }
56122987
DM
35133 }
35134 },
44660702 35135 "leaf" : 1,
4d47f125
TL
35136 "path" : "/nodes/{node}/lxc/{vmid}/resize",
35137 "text" : "resize"
56122987
DM
35138 },
35139 {
35140 "info" : {
35141 "POST" : {
e9cd3bd4 35142 "allowtoken" : 1,
5370fa8c 35143 "description" : "Move a rootfs-/mp-volume to a different storage or to a different container.",
44660702 35144 "method" : "POST",
4d47f125 35145 "name" : "move_volume",
7aacca6f 35146 "parameters" : {
44660702 35147 "additionalProperties" : 0,
7aacca6f 35148 "properties" : {
95895385
TL
35149 "bwlimit" : {
35150 "default" : "clone limit from datacenter or storage config",
35151 "description" : "Override I/O bandwidth limit (in KiB/s).",
35152 "minimum" : "0",
35153 "optional" : 1,
35154 "type" : "number",
35155 "typetext" : "<number> (0 - N)"
35156 },
4d47f125
TL
35157 "delete" : {
35158 "default" : 0,
35159 "description" : "Delete the original volume after successful copy. By default the original is kept as an unused volume entry.",
5d9c884c 35160 "optional" : 1,
4d47f125
TL
35161 "type" : "boolean",
35162 "typetext" : "<boolean>"
35163 },
35164 "digest" : {
5370fa8c 35165 "description" : "Prevent changes if current configuration file has different SHA1 \" .\n\t\t \"digest. This can be used to prevent concurrent modifications.",
4d47f125
TL
35166 "maxLength" : 40,
35167 "optional" : 1,
35168 "type" : "string",
35169 "typetext" : "<string>"
5d9c884c 35170 },
44660702
DM
35171 "node" : {
35172 "description" : "The cluster node name.",
35173 "format" : "pve-node",
013dc89f
DM
35174 "type" : "string",
35175 "typetext" : "<string>"
44660702 35176 },
4d47f125
TL
35177 "storage" : {
35178 "description" : "Target Storage.",
35179 "format" : "pve-storage-id",
907e4bc3 35180 "format_description" : "storage ID",
5370fa8c 35181 "optional" : 1,
4d47f125 35182 "type" : "string",
907e4bc3 35183 "typetext" : "<storage ID>"
4d47f125 35184 },
5370fa8c
TL
35185 "target-digest" : {
35186 "description" : "Prevent changes if current configuration file of the target \" .\n\t\t \"container has a different SHA1 digest. This can be used to prevent \" .\n\t\t \"concurrent modifications.",
35187 "maxLength" : 40,
35188 "optional" : 1,
35189 "type" : "string",
35190 "typetext" : "<string>"
35191 },
35192 "target-vmid" : {
44660702 35193 "description" : "The (unique) ID of the VM.",
7aacca6f 35194 "format" : "pve-vmid",
8dd66e12
TL
35195 "maximum" : 999999999,
35196 "minimum" : 100,
5370fa8c 35197 "optional" : 1,
4bd7df8b 35198 "type" : "integer",
8dd66e12 35199 "typetext" : "<integer> (100 - 999999999)"
7aacca6f 35200 },
5370fa8c
TL
35201 "target-volume" : {
35202 "description" : "The config key the volume will be moved to. Default is the source volume key.",
4d47f125
TL
35203 "enum" : [
35204 "rootfs",
35205 "mp0",
35206 "mp1",
35207 "mp2",
35208 "mp3",
35209 "mp4",
35210 "mp5",
35211 "mp6",
35212 "mp7",
35213 "mp8",
35214 "mp9",
35215 "mp10",
35216 "mp11",
35217 "mp12",
35218 "mp13",
35219 "mp14",
35220 "mp15",
35221 "mp16",
35222 "mp17",
35223 "mp18",
35224 "mp19",
35225 "mp20",
35226 "mp21",
35227 "mp22",
35228 "mp23",
35229 "mp24",
35230 "mp25",
35231 "mp26",
35232 "mp27",
35233 "mp28",
35234 "mp29",
35235 "mp30",
35236 "mp31",
35237 "mp32",
35238 "mp33",
35239 "mp34",
35240 "mp35",
35241 "mp36",
35242 "mp37",
35243 "mp38",
35244 "mp39",
35245 "mp40",
35246 "mp41",
35247 "mp42",
35248 "mp43",
35249 "mp44",
35250 "mp45",
35251 "mp46",
35252 "mp47",
35253 "mp48",
35254 "mp49",
35255 "mp50",
35256 "mp51",
35257 "mp52",
35258 "mp53",
35259 "mp54",
35260 "mp55",
35261 "mp56",
35262 "mp57",
35263 "mp58",
35264 "mp59",
35265 "mp60",
35266 "mp61",
35267 "mp62",
35268 "mp63",
35269 "mp64",
35270 "mp65",
35271 "mp66",
35272 "mp67",
35273 "mp68",
35274 "mp69",
35275 "mp70",
35276 "mp71",
35277 "mp72",
35278 "mp73",
35279 "mp74",
35280 "mp75",
35281 "mp76",
35282 "mp77",
35283 "mp78",
35284 "mp79",
35285 "mp80",
35286 "mp81",
35287 "mp82",
35288 "mp83",
35289 "mp84",
35290 "mp85",
35291 "mp86",
35292 "mp87",
35293 "mp88",
35294 "mp89",
35295 "mp90",
35296 "mp91",
35297 "mp92",
35298 "mp93",
35299 "mp94",
35300 "mp95",
35301 "mp96",
35302 "mp97",
35303 "mp98",
35304 "mp99",
35305 "mp100",
35306 "mp101",
35307 "mp102",
35308 "mp103",
35309 "mp104",
35310 "mp105",
35311 "mp106",
35312 "mp107",
35313 "mp108",
35314 "mp109",
35315 "mp110",
35316 "mp111",
35317 "mp112",
35318 "mp113",
35319 "mp114",
35320 "mp115",
35321 "mp116",
35322 "mp117",
35323 "mp118",
35324 "mp119",
35325 "mp120",
35326 "mp121",
35327 "mp122",
35328 "mp123",
35329 "mp124",
35330 "mp125",
35331 "mp126",
35332 "mp127",
35333 "mp128",
35334 "mp129",
35335 "mp130",
35336 "mp131",
35337 "mp132",
35338 "mp133",
35339 "mp134",
35340 "mp135",
35341 "mp136",
35342 "mp137",
35343 "mp138",
35344 "mp139",
35345 "mp140",
35346 "mp141",
35347 "mp142",
35348 "mp143",
35349 "mp144",
35350 "mp145",
35351 "mp146",
35352 "mp147",
35353 "mp148",
35354 "mp149",
35355 "mp150",
35356 "mp151",
35357 "mp152",
35358 "mp153",
35359 "mp154",
35360 "mp155",
35361 "mp156",
35362 "mp157",
35363 "mp158",
35364 "mp159",
35365 "mp160",
35366 "mp161",
35367 "mp162",
35368 "mp163",
35369 "mp164",
35370 "mp165",
35371 "mp166",
35372 "mp167",
35373 "mp168",
35374 "mp169",
35375 "mp170",
35376 "mp171",
35377 "mp172",
35378 "mp173",
35379 "mp174",
35380 "mp175",
35381 "mp176",
35382 "mp177",
35383 "mp178",
35384 "mp179",
35385 "mp180",
35386 "mp181",
35387 "mp182",
35388 "mp183",
35389 "mp184",
35390 "mp185",
35391 "mp186",
35392 "mp187",
35393 "mp188",
35394 "mp189",
35395 "mp190",
35396 "mp191",
35397 "mp192",
35398 "mp193",
35399 "mp194",
35400 "mp195",
35401 "mp196",
35402 "mp197",
35403 "mp198",
35404 "mp199",
35405 "mp200",
35406 "mp201",
35407 "mp202",
35408 "mp203",
35409 "mp204",
35410 "mp205",
35411 "mp206",
35412 "mp207",
35413 "mp208",
35414 "mp209",
35415 "mp210",
35416 "mp211",
35417 "mp212",
35418 "mp213",
35419 "mp214",
35420 "mp215",
35421 "mp216",
35422 "mp217",
35423 "mp218",
35424 "mp219",
35425 "mp220",
35426 "mp221",
35427 "mp222",
35428 "mp223",
35429 "mp224",
35430 "mp225",
35431 "mp226",
35432 "mp227",
35433 "mp228",
35434 "mp229",
35435 "mp230",
35436 "mp231",
35437 "mp232",
35438 "mp233",
35439 "mp234",
35440 "mp235",
35441 "mp236",
35442 "mp237",
35443 "mp238",
35444 "mp239",
35445 "mp240",
35446 "mp241",
35447 "mp242",
35448 "mp243",
35449 "mp244",
35450 "mp245",
35451 "mp246",
35452 "mp247",
35453 "mp248",
35454 "mp249",
35455 "mp250",
35456 "mp251",
35457 "mp252",
35458 "mp253",
35459 "mp254",
5370fa8c
TL
35460 "mp255",
35461 "unused0",
35462 "unused1",
35463 "unused2",
35464 "unused3",
35465 "unused4",
35466 "unused5",
35467 "unused6",
35468 "unused7",
35469 "unused8",
35470 "unused9",
35471 "unused10",
35472 "unused11",
35473 "unused12",
35474 "unused13",
35475 "unused14",
35476 "unused15",
35477 "unused16",
35478 "unused17",
35479 "unused18",
35480 "unused19",
35481 "unused20",
35482 "unused21",
35483 "unused22",
35484 "unused23",
35485 "unused24",
35486 "unused25",
35487 "unused26",
35488 "unused27",
35489 "unused28",
35490 "unused29",
35491 "unused30",
35492 "unused31",
35493 "unused32",
35494 "unused33",
35495 "unused34",
35496 "unused35",
35497 "unused36",
35498 "unused37",
35499 "unused38",
35500 "unused39",
35501 "unused40",
35502 "unused41",
35503 "unused42",
35504 "unused43",
35505 "unused44",
35506 "unused45",
35507 "unused46",
35508 "unused47",
35509 "unused48",
35510 "unused49",
35511 "unused50",
35512 "unused51",
35513 "unused52",
35514 "unused53",
35515 "unused54",
35516 "unused55",
35517 "unused56",
35518 "unused57",
35519 "unused58",
35520 "unused59",
35521 "unused60",
35522 "unused61",
35523 "unused62",
35524 "unused63",
35525 "unused64",
35526 "unused65",
35527 "unused66",
35528 "unused67",
35529 "unused68",
35530 "unused69",
35531 "unused70",
35532 "unused71",
35533 "unused72",
35534 "unused73",
35535 "unused74",
35536 "unused75",
35537 "unused76",
35538 "unused77",
35539 "unused78",
35540 "unused79",
35541 "unused80",
35542 "unused81",
35543 "unused82",
35544 "unused83",
35545 "unused84",
35546 "unused85",
35547 "unused86",
35548 "unused87",
35549 "unused88",
35550 "unused89",
35551 "unused90",
35552 "unused91",
35553 "unused92",
35554 "unused93",
35555 "unused94",
35556 "unused95",
35557 "unused96",
35558 "unused97",
35559 "unused98",
35560 "unused99",
35561 "unused100",
35562 "unused101",
35563 "unused102",
35564 "unused103",
35565 "unused104",
35566 "unused105",
35567 "unused106",
35568 "unused107",
35569 "unused108",
35570 "unused109",
35571 "unused110",
35572 "unused111",
35573 "unused112",
35574 "unused113",
35575 "unused114",
35576 "unused115",
35577 "unused116",
35578 "unused117",
35579 "unused118",
35580 "unused119",
35581 "unused120",
35582 "unused121",
35583 "unused122",
35584 "unused123",
35585 "unused124",
35586 "unused125",
35587 "unused126",
35588 "unused127",
35589 "unused128",
35590 "unused129",
35591 "unused130",
35592 "unused131",
35593 "unused132",
35594 "unused133",
35595 "unused134",
35596 "unused135",
35597 "unused136",
35598 "unused137",
35599 "unused138",
35600 "unused139",
35601 "unused140",
35602 "unused141",
35603 "unused142",
35604 "unused143",
35605 "unused144",
35606 "unused145",
35607 "unused146",
35608 "unused147",
35609 "unused148",
35610 "unused149",
35611 "unused150",
35612 "unused151",
35613 "unused152",
35614 "unused153",
35615 "unused154",
35616 "unused155",
35617 "unused156",
35618 "unused157",
35619 "unused158",
35620 "unused159",
35621 "unused160",
35622 "unused161",
35623 "unused162",
35624 "unused163",
35625 "unused164",
35626 "unused165",
35627 "unused166",
35628 "unused167",
35629 "unused168",
35630 "unused169",
35631 "unused170",
35632 "unused171",
35633 "unused172",
35634 "unused173",
35635 "unused174",
35636 "unused175",
35637 "unused176",
35638 "unused177",
35639 "unused178",
35640 "unused179",
35641 "unused180",
35642 "unused181",
35643 "unused182",
35644 "unused183",
35645 "unused184",
35646 "unused185",
35647 "unused186",
35648 "unused187",
35649 "unused188",
35650 "unused189",
35651 "unused190",
35652 "unused191",
35653 "unused192",
35654 "unused193",
35655 "unused194",
35656 "unused195",
35657 "unused196",
35658 "unused197",
35659 "unused198",
35660 "unused199",
35661 "unused200",
35662 "unused201",
35663 "unused202",
35664 "unused203",
35665 "unused204",
35666 "unused205",
35667 "unused206",
35668 "unused207",
35669 "unused208",
35670 "unused209",
35671 "unused210",
35672 "unused211",
35673 "unused212",
35674 "unused213",
35675 "unused214",
35676 "unused215",
35677 "unused216",
35678 "unused217",
35679 "unused218",
35680 "unused219",
35681 "unused220",
35682 "unused221",
35683 "unused222",
35684 "unused223",
35685 "unused224",
35686 "unused225",
35687 "unused226",
35688 "unused227",
35689 "unused228",
35690 "unused229",
35691 "unused230",
35692 "unused231",
35693 "unused232",
35694 "unused233",
35695 "unused234",
35696 "unused235",
35697 "unused236",
35698 "unused237",
35699 "unused238",
35700 "unused239",
35701 "unused240",
35702 "unused241",
35703 "unused242",
35704 "unused243",
35705 "unused244",
35706 "unused245",
35707 "unused246",
35708 "unused247",
35709 "unused248",
35710 "unused249",
35711 "unused250",
35712 "unused251",
35713 "unused252",
35714 "unused253",
35715 "unused254",
35716 "unused255"
35717 ],
35718 "optional" : 1,
35719 "type" : "string"
35720 },
35721 "vmid" : {
35722 "description" : "The (unique) ID of the VM.",
35723 "format" : "pve-vmid",
8dd66e12
TL
35724 "maximum" : 999999999,
35725 "minimum" : 100,
5370fa8c 35726 "type" : "integer",
8dd66e12 35727 "typetext" : "<integer> (100 - 999999999)"
5370fa8c
TL
35728 },
35729 "volume" : {
35730 "description" : "Volume which will be moved.",
35731 "enum" : [
35732 "rootfs",
35733 "mp0",
35734 "mp1",
35735 "mp2",
35736 "mp3",
35737 "mp4",
35738 "mp5",
35739 "mp6",
35740 "mp7",
35741 "mp8",
35742 "mp9",
35743 "mp10",
35744 "mp11",
35745 "mp12",
35746 "mp13",
35747 "mp14",
35748 "mp15",
35749 "mp16",
35750 "mp17",
35751 "mp18",
35752 "mp19",
35753 "mp20",
35754 "mp21",
35755 "mp22",
35756 "mp23",
35757 "mp24",
35758 "mp25",
35759 "mp26",
35760 "mp27",
35761 "mp28",
35762 "mp29",
35763 "mp30",
35764 "mp31",
35765 "mp32",
35766 "mp33",
35767 "mp34",
35768 "mp35",
35769 "mp36",
35770 "mp37",
35771 "mp38",
35772 "mp39",
35773 "mp40",
35774 "mp41",
35775 "mp42",
35776 "mp43",
35777 "mp44",
35778 "mp45",
35779 "mp46",
35780 "mp47",
35781 "mp48",
35782 "mp49",
35783 "mp50",
35784 "mp51",
35785 "mp52",
35786 "mp53",
35787 "mp54",
35788 "mp55",
35789 "mp56",
35790 "mp57",
35791 "mp58",
35792 "mp59",
35793 "mp60",
35794 "mp61",
35795 "mp62",
35796 "mp63",
35797 "mp64",
35798 "mp65",
35799 "mp66",
35800 "mp67",
35801 "mp68",
35802 "mp69",
35803 "mp70",
35804 "mp71",
35805 "mp72",
35806 "mp73",
35807 "mp74",
35808 "mp75",
35809 "mp76",
35810 "mp77",
35811 "mp78",
35812 "mp79",
35813 "mp80",
35814 "mp81",
35815 "mp82",
35816 "mp83",
35817 "mp84",
35818 "mp85",
35819 "mp86",
35820 "mp87",
35821 "mp88",
35822 "mp89",
35823 "mp90",
35824 "mp91",
35825 "mp92",
35826 "mp93",
35827 "mp94",
35828 "mp95",
35829 "mp96",
35830 "mp97",
35831 "mp98",
35832 "mp99",
35833 "mp100",
35834 "mp101",
35835 "mp102",
35836 "mp103",
35837 "mp104",
35838 "mp105",
35839 "mp106",
35840 "mp107",
35841 "mp108",
35842 "mp109",
35843 "mp110",
35844 "mp111",
35845 "mp112",
35846 "mp113",
35847 "mp114",
35848 "mp115",
35849 "mp116",
35850 "mp117",
35851 "mp118",
35852 "mp119",
35853 "mp120",
35854 "mp121",
35855 "mp122",
35856 "mp123",
35857 "mp124",
35858 "mp125",
35859 "mp126",
35860 "mp127",
35861 "mp128",
35862 "mp129",
35863 "mp130",
35864 "mp131",
35865 "mp132",
35866 "mp133",
35867 "mp134",
35868 "mp135",
35869 "mp136",
35870 "mp137",
35871 "mp138",
35872 "mp139",
35873 "mp140",
35874 "mp141",
35875 "mp142",
35876 "mp143",
35877 "mp144",
35878 "mp145",
35879 "mp146",
35880 "mp147",
35881 "mp148",
35882 "mp149",
35883 "mp150",
35884 "mp151",
35885 "mp152",
35886 "mp153",
35887 "mp154",
35888 "mp155",
35889 "mp156",
35890 "mp157",
35891 "mp158",
35892 "mp159",
35893 "mp160",
35894 "mp161",
35895 "mp162",
35896 "mp163",
35897 "mp164",
35898 "mp165",
35899 "mp166",
35900 "mp167",
35901 "mp168",
35902 "mp169",
35903 "mp170",
35904 "mp171",
35905 "mp172",
35906 "mp173",
35907 "mp174",
35908 "mp175",
35909 "mp176",
35910 "mp177",
35911 "mp178",
35912 "mp179",
35913 "mp180",
35914 "mp181",
35915 "mp182",
35916 "mp183",
35917 "mp184",
35918 "mp185",
35919 "mp186",
35920 "mp187",
35921 "mp188",
35922 "mp189",
35923 "mp190",
35924 "mp191",
35925 "mp192",
35926 "mp193",
35927 "mp194",
35928 "mp195",
35929 "mp196",
35930 "mp197",
35931 "mp198",
35932 "mp199",
35933 "mp200",
35934 "mp201",
35935 "mp202",
35936 "mp203",
35937 "mp204",
35938 "mp205",
35939 "mp206",
35940 "mp207",
35941 "mp208",
35942 "mp209",
35943 "mp210",
35944 "mp211",
35945 "mp212",
35946 "mp213",
35947 "mp214",
35948 "mp215",
35949 "mp216",
35950 "mp217",
35951 "mp218",
35952 "mp219",
35953 "mp220",
35954 "mp221",
35955 "mp222",
35956 "mp223",
35957 "mp224",
35958 "mp225",
35959 "mp226",
35960 "mp227",
35961 "mp228",
35962 "mp229",
35963 "mp230",
35964 "mp231",
35965 "mp232",
35966 "mp233",
35967 "mp234",
35968 "mp235",
35969 "mp236",
35970 "mp237",
35971 "mp238",
35972 "mp239",
35973 "mp240",
35974 "mp241",
35975 "mp242",
35976 "mp243",
35977 "mp244",
35978 "mp245",
35979 "mp246",
35980 "mp247",
35981 "mp248",
35982 "mp249",
35983 "mp250",
35984 "mp251",
35985 "mp252",
35986 "mp253",
35987 "mp254",
35988 "mp255",
35989 "unused0",
35990 "unused1",
35991 "unused2",
35992 "unused3",
35993 "unused4",
35994 "unused5",
35995 "unused6",
35996 "unused7",
35997 "unused8",
35998 "unused9",
35999 "unused10",
36000 "unused11",
36001 "unused12",
36002 "unused13",
36003 "unused14",
36004 "unused15",
36005 "unused16",
36006 "unused17",
36007 "unused18",
36008 "unused19",
36009 "unused20",
36010 "unused21",
36011 "unused22",
36012 "unused23",
36013 "unused24",
36014 "unused25",
36015 "unused26",
36016 "unused27",
36017 "unused28",
36018 "unused29",
36019 "unused30",
36020 "unused31",
36021 "unused32",
36022 "unused33",
36023 "unused34",
36024 "unused35",
36025 "unused36",
36026 "unused37",
36027 "unused38",
36028 "unused39",
36029 "unused40",
36030 "unused41",
36031 "unused42",
36032 "unused43",
36033 "unused44",
36034 "unused45",
36035 "unused46",
36036 "unused47",
36037 "unused48",
36038 "unused49",
36039 "unused50",
36040 "unused51",
36041 "unused52",
36042 "unused53",
36043 "unused54",
36044 "unused55",
36045 "unused56",
36046 "unused57",
36047 "unused58",
36048 "unused59",
36049 "unused60",
36050 "unused61",
36051 "unused62",
36052 "unused63",
36053 "unused64",
36054 "unused65",
36055 "unused66",
36056 "unused67",
36057 "unused68",
36058 "unused69",
36059 "unused70",
36060 "unused71",
36061 "unused72",
36062 "unused73",
36063 "unused74",
36064 "unused75",
36065 "unused76",
36066 "unused77",
36067 "unused78",
36068 "unused79",
36069 "unused80",
36070 "unused81",
36071 "unused82",
36072 "unused83",
36073 "unused84",
36074 "unused85",
36075 "unused86",
36076 "unused87",
36077 "unused88",
36078 "unused89",
36079 "unused90",
36080 "unused91",
36081 "unused92",
36082 "unused93",
36083 "unused94",
36084 "unused95",
36085 "unused96",
36086 "unused97",
36087 "unused98",
36088 "unused99",
36089 "unused100",
36090 "unused101",
36091 "unused102",
36092 "unused103",
36093 "unused104",
36094 "unused105",
36095 "unused106",
36096 "unused107",
36097 "unused108",
36098 "unused109",
36099 "unused110",
36100 "unused111",
36101 "unused112",
36102 "unused113",
36103 "unused114",
36104 "unused115",
36105 "unused116",
36106 "unused117",
36107 "unused118",
36108 "unused119",
36109 "unused120",
36110 "unused121",
36111 "unused122",
36112 "unused123",
36113 "unused124",
36114 "unused125",
36115 "unused126",
36116 "unused127",
36117 "unused128",
36118 "unused129",
36119 "unused130",
36120 "unused131",
36121 "unused132",
36122 "unused133",
36123 "unused134",
36124 "unused135",
36125 "unused136",
36126 "unused137",
36127 "unused138",
36128 "unused139",
36129 "unused140",
36130 "unused141",
36131 "unused142",
36132 "unused143",
36133 "unused144",
36134 "unused145",
36135 "unused146",
36136 "unused147",
36137 "unused148",
36138 "unused149",
36139 "unused150",
36140 "unused151",
36141 "unused152",
36142 "unused153",
36143 "unused154",
36144 "unused155",
36145 "unused156",
36146 "unused157",
36147 "unused158",
36148 "unused159",
36149 "unused160",
36150 "unused161",
36151 "unused162",
36152 "unused163",
36153 "unused164",
36154 "unused165",
36155 "unused166",
36156 "unused167",
36157 "unused168",
36158 "unused169",
36159 "unused170",
36160 "unused171",
36161 "unused172",
36162 "unused173",
36163 "unused174",
36164 "unused175",
36165 "unused176",
36166 "unused177",
36167 "unused178",
36168 "unused179",
36169 "unused180",
36170 "unused181",
36171 "unused182",
36172 "unused183",
36173 "unused184",
36174 "unused185",
36175 "unused186",
36176 "unused187",
36177 "unused188",
36178 "unused189",
36179 "unused190",
36180 "unused191",
36181 "unused192",
36182 "unused193",
36183 "unused194",
36184 "unused195",
36185 "unused196",
36186 "unused197",
36187 "unused198",
36188 "unused199",
36189 "unused200",
36190 "unused201",
36191 "unused202",
36192 "unused203",
36193 "unused204",
36194 "unused205",
36195 "unused206",
36196 "unused207",
36197 "unused208",
36198 "unused209",
36199 "unused210",
36200 "unused211",
36201 "unused212",
36202 "unused213",
36203 "unused214",
36204 "unused215",
36205 "unused216",
36206 "unused217",
36207 "unused218",
36208 "unused219",
36209 "unused220",
36210 "unused221",
36211 "unused222",
36212 "unused223",
36213 "unused224",
36214 "unused225",
36215 "unused226",
36216 "unused227",
36217 "unused228",
36218 "unused229",
36219 "unused230",
36220 "unused231",
36221 "unused232",
36222 "unused233",
36223 "unused234",
36224 "unused235",
36225 "unused236",
36226 "unused237",
36227 "unused238",
36228 "unused239",
36229 "unused240",
36230 "unused241",
36231 "unused242",
36232 "unused243",
36233 "unused244",
36234 "unused245",
36235 "unused246",
36236 "unused247",
36237 "unused248",
36238 "unused249",
36239 "unused250",
36240 "unused251",
36241 "unused252",
36242 "unused253",
36243 "unused254",
36244 "unused255"
4d47f125
TL
36245 ],
36246 "type" : "string"
7aacca6f 36247 }
44660702 36248 }
7aacca6f 36249 },
56122987
DM
36250 "permissions" : {
36251 "check" : [
5370fa8c
TL
36252 "perm",
36253 "/vms/{vmid}",
4d47f125 36254 [
5370fa8c 36255 "VM.Config.Disk"
56122987 36256 ]
4d47f125 36257 ],
5370fa8c 36258 "description" : "You need 'VM.Config.Disk' permissions on /vms/{vmid}, and 'Datastore.AllocateSpace' permissions on the storage. To move a volume to another container, you need the permissions on the target container as well."
4d47f125
TL
36259 },
36260 "protected" : 1,
36261 "proxyto" : "node",
36262 "returns" : {
36263 "type" : "string"
36264 }
36265 }
36266 },
36267 "leaf" : 1,
36268 "path" : "/nodes/{node}/lxc/{vmid}/move_volume",
36269 "text" : "move_volume"
1c532546
TL
36270 },
36271 {
36272 "info" : {
36273 "GET" : {
e9cd3bd4 36274 "allowtoken" : 1,
1c532546
TL
36275 "description" : "Get container configuration, including pending changes.",
36276 "method" : "GET",
36277 "name" : "vm_pending",
36278 "parameters" : {
36279 "additionalProperties" : 0,
36280 "properties" : {
36281 "node" : {
36282 "description" : "The cluster node name.",
36283 "format" : "pve-node",
36284 "type" : "string",
36285 "typetext" : "<string>"
36286 },
36287 "vmid" : {
36288 "description" : "The (unique) ID of the VM.",
36289 "format" : "pve-vmid",
8dd66e12
TL
36290 "maximum" : 999999999,
36291 "minimum" : 100,
1c532546 36292 "type" : "integer",
8dd66e12 36293 "typetext" : "<integer> (100 - 999999999)"
1c532546
TL
36294 }
36295 }
36296 },
36297 "permissions" : {
36298 "check" : [
36299 "perm",
36300 "/vms/{vmid}",
36301 [
36302 "VM.Audit"
36303 ]
36304 ]
36305 },
36306 "proxyto" : "node",
36307 "returns" : {
36308 "items" : {
36309 "properties" : {
36310 "delete" : {
36311 "description" : "Indicates a pending delete request if present and not 0.",
36312 "maximum" : 2,
36313 "minimum" : 0,
36314 "optional" : 1,
36315 "type" : "integer"
36316 },
36317 "key" : {
36318 "description" : "Configuration option name.",
36319 "type" : "string"
36320 },
36321 "pending" : {
36322 "description" : "Pending value.",
36323 "optional" : 1,
36324 "type" : "string"
36325 },
36326 "value" : {
36327 "description" : "Current value.",
36328 "optional" : 1,
36329 "type" : "string"
36330 }
36331 },
36332 "type" : "object"
36333 },
36334 "type" : "array"
36335 }
36336 }
36337 },
36338 "leaf" : 1,
36339 "path" : "/nodes/{node}/lxc/{vmid}/pending",
36340 "text" : "pending"
81a3384d 36341 },
bd92b745
TL
36342 {
36343 "info" : {
36344 "GET" : {
36345 "allowtoken" : 1,
36346 "description" : "Get IP addresses of the specified container interface.",
36347 "method" : "GET",
36348 "name" : "ip",
36349 "parameters" : {
36350 "additionalProperties" : 0,
36351 "properties" : {
36352 "node" : {
36353 "description" : "The cluster node name.",
36354 "format" : "pve-node",
36355 "type" : "string",
36356 "typetext" : "<string>"
36357 },
36358 "vmid" : {
36359 "description" : "The (unique) ID of the VM.",
36360 "format" : "pve-vmid",
36361 "maximum" : 999999999,
36362 "minimum" : 100,
36363 "type" : "integer",
36364 "typetext" : "<integer> (100 - 999999999)"
36365 }
36366 }
36367 },
36368 "permissions" : {
36369 "check" : [
36370 "perm",
36371 "/vms/{vmid}",
36372 [
36373 "VM.Audit"
36374 ]
36375 ]
36376 },
36377 "protected" : 1,
36378 "returns" : {
36379 "items" : {
36380 "properties" : {
36381 "hwaddr" : {
36382 "description" : "The MAC address of the interface",
36383 "optional" : 0,
36384 "type" : "string"
36385 },
36386 "inet" : {
36387 "description" : "The IPv4 address of the interface",
36388 "optional" : 1,
36389 "type" : "string"
36390 },
36391 "inet6" : {
36392 "description" : "The IPv6 address of the interface",
36393 "optional" : 1,
36394 "type" : "string"
36395 },
36396 "name" : {
36397 "description" : "The name of the interface",
36398 "optional" : 0,
36399 "type" : "string"
36400 }
36401 },
36402 "type" : "object"
36403 },
36404 "type" : "array"
36405 }
36406 }
36407 },
36408 "leaf" : 1,
36409 "path" : "/nodes/{node}/lxc/{vmid}/interfaces",
36410 "text" : "interfaces"
36411 },
81a3384d
TL
36412 {
36413 "info" : {
36414 "POST" : {
36415 "allowtoken" : 1,
36416 "description" : "Migration tunnel endpoint - only for internal use by CT migration.",
36417 "method" : "POST",
36418 "name" : "mtunnel",
36419 "parameters" : {
36420 "additionalProperties" : 0,
36421 "properties" : {
36422 "bridges" : {
36423 "description" : "List of network bridges to check availability. Will be checked again for actually used bridges during migration.",
36424 "format" : "pve-bridge-id-list",
36425 "optional" : 1,
36426 "type" : "string",
36427 "typetext" : "<string>"
36428 },
36429 "node" : {
36430 "description" : "The cluster node name.",
36431 "format" : "pve-node",
36432 "type" : "string",
36433 "typetext" : "<string>"
36434 },
36435 "storages" : {
36436 "description" : "List of storages to check permission and availability. Will be checked again for all actually used storages during migration.",
36437 "format" : "pve-storage-id-list",
36438 "optional" : 1,
36439 "type" : "string",
36440 "typetext" : "<string>"
36441 },
36442 "vmid" : {
36443 "description" : "The (unique) ID of the VM.",
36444 "format" : "pve-vmid",
8dd66e12
TL
36445 "maximum" : 999999999,
36446 "minimum" : 100,
81a3384d 36447 "type" : "integer",
8dd66e12 36448 "typetext" : "<integer> (100 - 999999999)"
81a3384d
TL
36449 }
36450 }
36451 },
36452 "permissions" : {
36453 "check" : [
36454 "and",
36455 [
36456 "perm",
36457 "/vms/{vmid}",
36458 [
36459 "VM.Allocate"
36460 ]
36461 ],
36462 [
36463 "perm",
36464 "/",
36465 [
36466 "Sys.Incoming"
36467 ]
36468 ]
36469 ],
36470 "description" : "You need 'VM.Allocate' permissions on '/vms/{vmid}' and Sys.Incoming on '/'. Further permission checks happen during the actual migration."
36471 },
36472 "protected" : 1,
36473 "returns" : {
36474 "additionalProperties" : 0,
36475 "properties" : {
36476 "socket" : {
36477 "type" : "string"
36478 },
36479 "ticket" : {
36480 "type" : "string"
36481 },
36482 "upid" : {
36483 "type" : "string"
36484 }
36485 }
36486 }
36487 }
36488 },
36489 "leaf" : 1,
36490 "path" : "/nodes/{node}/lxc/{vmid}/mtunnel",
36491 "text" : "mtunnel"
36492 },
36493 {
36494 "info" : {
36495 "GET" : {
36496 "allowtoken" : 1,
36497 "description" : "Migration tunnel endpoint for websocket upgrade - only for internal use by VM migration.",
36498 "method" : "GET",
36499 "name" : "mtunnelwebsocket",
36500 "parameters" : {
36501 "additionalProperties" : 0,
36502 "properties" : {
36503 "node" : {
36504 "description" : "The cluster node name.",
36505 "format" : "pve-node",
36506 "type" : "string",
36507 "typetext" : "<string>"
36508 },
36509 "socket" : {
36510 "description" : "unix socket to forward to",
36511 "type" : "string",
36512 "typetext" : "<string>"
36513 },
36514 "ticket" : {
36515 "description" : "ticket return by initial 'mtunnel' API call, or retrieved via 'ticket' tunnel command",
36516 "type" : "string",
36517 "typetext" : "<string>"
36518 },
36519 "vmid" : {
36520 "description" : "The (unique) ID of the VM.",
36521 "format" : "pve-vmid",
8dd66e12
TL
36522 "maximum" : 999999999,
36523 "minimum" : 100,
81a3384d 36524 "type" : "integer",
8dd66e12 36525 "typetext" : "<integer> (100 - 999999999)"
81a3384d
TL
36526 }
36527 }
36528 },
36529 "permissions" : {
36530 "description" : "You need to pass a ticket valid for the selected socket. Tickets can be created via the mtunnel API call, which will check permissions accordingly.",
36531 "user" : "all"
36532 },
36533 "returns" : {
36534 "properties" : {
36535 "port" : {
36536 "optional" : 1,
36537 "type" : "string"
36538 },
36539 "socket" : {
36540 "optional" : 1,
36541 "type" : "string"
36542 }
36543 },
36544 "type" : "object"
36545 }
36546 }
36547 },
36548 "leaf" : 1,
36549 "path" : "/nodes/{node}/lxc/{vmid}/mtunnelwebsocket",
36550 "text" : "mtunnelwebsocket"
4d47f125
TL
36551 }
36552 ],
36553 "info" : {
36554 "DELETE" : {
e9cd3bd4 36555 "allowtoken" : 1,
4d47f125
TL
36556 "description" : "Destroy the container (also delete all uses files).",
36557 "method" : "DELETE",
36558 "name" : "destroy_vm",
36559 "parameters" : {
36560 "additionalProperties" : 0,
36561 "properties" : {
d2656385
TL
36562 "destroy-unreferenced-disks" : {
36563 "description" : "If set, destroy additionally all disks with the VMID from all enabled storages which are not referenced in the config.",
36564 "optional" : 1,
36565 "type" : "boolean",
36566 "typetext" : "<boolean>"
36567 },
c5aa7e14
TL
36568 "force" : {
36569 "default" : 0,
36570 "description" : "Force destroy, even if running.",
36571 "optional" : 1,
36572 "type" : "boolean",
36573 "typetext" : "<boolean>"
36574 },
4d47f125
TL
36575 "node" : {
36576 "description" : "The cluster node name.",
36577 "format" : "pve-node",
36578 "type" : "string",
36579 "typetext" : "<string>"
36580 },
1c532546 36581 "purge" : {
c5aa7e14
TL
36582 "default" : 0,
36583 "description" : "Remove container from all related configurations. For example, backup jobs, replication jobs or HA. Related ACLs and Firewall entries will *always* be removed.",
1c532546
TL
36584 "optional" : 1,
36585 "type" : "boolean",
36586 "typetext" : "<boolean>"
36587 },
4d47f125
TL
36588 "vmid" : {
36589 "description" : "The (unique) ID of the VM.",
36590 "format" : "pve-vmid",
8dd66e12
TL
36591 "maximum" : 999999999,
36592 "minimum" : 100,
4d47f125 36593 "type" : "integer",
8dd66e12 36594 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
36595 }
36596 }
36597 },
36598 "permissions" : {
36599 "check" : [
36600 "perm",
36601 "/vms/{vmid}",
36602 [
36603 "VM.Allocate"
36604 ]
36605 ]
36606 },
36607 "protected" : 1,
36608 "proxyto" : "node",
36609 "returns" : {
36610 "type" : "string"
36611 }
36612 },
36613 "GET" : {
e9cd3bd4 36614 "allowtoken" : 1,
4d47f125
TL
36615 "description" : "Directory index",
36616 "method" : "GET",
36617 "name" : "vmdiridx",
36618 "parameters" : {
36619 "additionalProperties" : 0,
36620 "properties" : {
36621 "node" : {
36622 "description" : "The cluster node name.",
36623 "format" : "pve-node",
36624 "type" : "string",
36625 "typetext" : "<string>"
56122987 36626 },
4d47f125
TL
36627 "vmid" : {
36628 "description" : "The (unique) ID of the VM.",
36629 "format" : "pve-vmid",
8dd66e12
TL
36630 "maximum" : 999999999,
36631 "minimum" : 100,
4d47f125 36632 "type" : "integer",
8dd66e12 36633 "typetext" : "<integer> (100 - 999999999)"
56122987
DM
36634 }
36635 }
36636 },
4d47f125
TL
36637 "permissions" : {
36638 "user" : "all"
36639 },
36640 "proxyto" : "node",
36641 "returns" : {
36642 "items" : {
36643 "properties" : {
36644 "subdir" : {
36645 "type" : "string"
35a75dd3
DM
36646 }
36647 },
4d47f125
TL
36648 "type" : "object"
36649 },
36650 "links" : [
36651 {
36652 "href" : "{subdir}",
36653 "rel" : "child"
35a75dd3 36654 }
4d47f125
TL
36655 ],
36656 "type" : "array"
36657 }
36658 }
36659 },
36660 "leaf" : 0,
36661 "path" : "/nodes/{node}/lxc/{vmid}",
36662 "text" : "{vmid}"
36663 }
36664 ],
36665 "info" : {
36666 "GET" : {
e9cd3bd4 36667 "allowtoken" : 1,
4d47f125
TL
36668 "description" : "LXC container index (per node).",
36669 "method" : "GET",
36670 "name" : "vmlist",
36671 "parameters" : {
36672 "additionalProperties" : 0,
36673 "properties" : {
36674 "node" : {
36675 "description" : "The cluster node name.",
36676 "format" : "pve-node",
36677 "type" : "string",
36678 "typetext" : "<string>"
36679 }
36680 }
36681 },
36682 "permissions" : {
36683 "description" : "Only list CTs where you have VM.Audit permissons on /vms/<vmid>.",
36684 "user" : "all"
36685 },
36686 "protected" : 1,
36687 "proxyto" : "node",
36688 "returns" : {
36689 "items" : {
36690 "properties" : {
36691 "cpus" : {
36692 "description" : "Maximum usable CPUs.",
36693 "optional" : 1,
36694 "type" : "number"
36695 },
95895385
TL
36696 "lock" : {
36697 "description" : "The current config lock, if any.",
36698 "optional" : 1,
36699 "type" : "string"
36700 },
4d47f125
TL
36701 "maxdisk" : {
36702 "description" : "Root disk size in bytes.",
36703 "optional" : 1,
36704 "renderer" : "bytes",
36705 "type" : "integer"
36706 },
36707 "maxmem" : {
36708 "description" : "Maximum memory in bytes.",
36709 "optional" : 1,
36710 "renderer" : "bytes",
36711 "type" : "integer"
36712 },
36713 "maxswap" : {
36714 "description" : "Maximum SWAP memory in bytes.",
36715 "optional" : 1,
36716 "renderer" : "bytes",
36717 "type" : "integer"
36718 },
36719 "name" : {
36720 "description" : "Container name.",
36721 "optional" : 1,
36722 "type" : "string"
36723 },
36724 "status" : {
36725 "description" : "LXC Container status.",
36726 "enum" : [
36727 "stopped",
36728 "running"
36729 ],
36730 "type" : "string"
36731 },
5c1699e5
TL
36732 "tags" : {
36733 "description" : "The current configured tags, if any.",
36734 "optional" : 1,
36735 "type" : "string"
36736 },
4d47f125
TL
36737 "uptime" : {
36738 "description" : "Uptime.",
36739 "optional" : 1,
36740 "renderer" : "duration",
36741 "type" : "integer"
36742 },
36743 "vmid" : {
36744 "description" : "The (unique) ID of the VM.",
36745 "format" : "pve-vmid",
8dd66e12
TL
36746 "maximum" : 999999999,
36747 "minimum" : 100,
4d47f125 36748 "type" : "integer"
35a75dd3
DM
36749 }
36750 },
4d47f125 36751 "type" : "object"
35a75dd3 36752 },
4d47f125
TL
36753 "links" : [
36754 {
36755 "href" : "{vmid}",
36756 "rel" : "child"
36757 }
36758 ],
36759 "type" : "array"
36760 }
36761 },
36762 "POST" : {
e9cd3bd4 36763 "allowtoken" : 1,
4d47f125
TL
36764 "description" : "Create or restore a container.",
36765 "method" : "POST",
36766 "name" : "create_vm",
36767 "parameters" : {
36768 "additionalProperties" : 0,
36769 "properties" : {
36770 "arch" : {
36771 "default" : "amd64",
36772 "description" : "OS architecture type.",
36773 "enum" : [
36774 "amd64",
36775 "i386",
36776 "arm64",
9d2e98ed
TL
36777 "armhf",
36778 "riscv32",
36779 "riscv64"
4d47f125
TL
36780 ],
36781 "optional" : 1,
36782 "type" : "string"
36783 },
36784 "bwlimit" : {
95895385
TL
36785 "default" : "restore limit from datacenter or storage config",
36786 "description" : "Override I/O bandwidth limit (in KiB/s).",
4d47f125
TL
36787 "minimum" : "0",
36788 "optional" : 1,
36789 "type" : "number",
36790 "typetext" : "<number> (0 - N)"
36791 },
36792 "cmode" : {
36793 "default" : "tty",
36794 "description" : "Console mode. By default, the console command tries to open a connection to one of the available tty devices. By setting cmode to 'console' it tries to attach to /dev/console instead. If you set cmode to 'shell', it simply invokes a shell inside the container (no login).",
36795 "enum" : [
36796 "shell",
36797 "console",
36798 "tty"
36799 ],
36800 "optional" : 1,
36801 "type" : "string"
36802 },
36803 "console" : {
36804 "default" : 1,
36805 "description" : "Attach a console device (/dev/console) to the container.",
36806 "optional" : 1,
36807 "type" : "boolean",
36808 "typetext" : "<boolean>"
36809 },
36810 "cores" : {
36811 "description" : "The number of cores assigned to the container. A container can use all available cores by default.",
4772952b 36812 "maximum" : 8192,
4d47f125
TL
36813 "minimum" : 1,
36814 "optional" : 1,
36815 "type" : "integer",
4772952b 36816 "typetext" : "<integer> (1 - 8192)"
4d47f125
TL
36817 },
36818 "cpulimit" : {
36819 "default" : 0,
36820 "description" : "Limit of CPU usage.\n\nNOTE: If the computer has 2 CPUs, it has a total of '2' CPU time. Value '0' indicates no CPU limit.",
4772952b 36821 "maximum" : 8192,
4d47f125
TL
36822 "minimum" : 0,
36823 "optional" : 1,
36824 "type" : "number",
4772952b 36825 "typetext" : "<number> (0 - 8192)"
4d47f125
TL
36826 },
36827 "cpuunits" : {
4e7f60c2
TL
36828 "default" : "cgroup v1: 1024, cgroup v2: 100",
36829 "description" : "CPU weight for a container, will be clamped to [1, 10000] in cgroup v2.",
4d47f125
TL
36830 "maximum" : 500000,
36831 "minimum" : 0,
36832 "optional" : 1,
36833 "type" : "integer",
4e7f60c2
TL
36834 "typetext" : "<integer> (0 - 500000)",
36835 "verbose_description" : "CPU weight for a container. Argument is used in the kernel fair scheduler. The larger the number is, the more CPU time this container gets. Number is relative to the weights of all the other running guests."
4d47f125 36836 },
739d4d64
TL
36837 "debug" : {
36838 "default" : 0,
36839 "description" : "Try to be more verbose. For now this only enables debug log-level on start.",
36840 "optional" : 1,
36841 "type" : "boolean",
36842 "typetext" : "<boolean>"
36843 },
4d47f125 36844 "description" : {
8f4d9c87
TL
36845 "description" : "Description for the Container. Shown in the web-interface CT's summary. This is saved as comment inside the configuration file.",
36846 "maxLength" : 8192,
4d47f125
TL
36847 "optional" : 1,
36848 "type" : "string",
36849 "typetext" : "<string>"
36850 },
fa22697b
TL
36851 "dev[n]" : {
36852 "description" : "Device to pass through to the container",
36853 "format" : {
36854 "gid" : {
36855 "description" : "Group ID to be assigned to the device node",
36856 "minimum" : 0,
36857 "optional" : 1,
36858 "type" : "integer"
36859 },
36860 "mode" : {
36861 "description" : "Access mode to be set on the device node",
36862 "format_description" : "Octal access mode",
36863 "optional" : 1,
36864 "pattern" : "0[0-7]{3}",
36865 "type" : "string"
36866 },
36867 "path" : {
36868 "default_key" : 1,
36869 "description" : "Device to pass through to the container",
36870 "format" : "pve-lxc-dev-string",
36871 "format_description" : "Path",
36872 "optional" : 1,
36873 "type" : "string",
36874 "verbose_description" : "Path to the device to pass through to the container"
36875 },
36876 "uid" : {
36877 "description" : "User ID to be assigned to the device node",
36878 "minimum" : 0,
36879 "optional" : 1,
36880 "type" : "integer"
36881 }
36882 },
36883 "optional" : 1,
36884 "type" : "string",
36885 "typetext" : "[[path=]<Path>] [,gid=<integer>] [,mode=<Octal access mode>] [,uid=<integer>]"
36886 },
4d47f125
TL
36887 "features" : {
36888 "description" : "Allow containers access to advanced features.",
36889 "format" : {
c5aa7e14
TL
36890 "force_rw_sys" : {
36891 "default" : 0,
36892 "description" : "Mount /sys in unprivileged containers as `rw` instead of `mixed`. This can break networking under newer (>= v245) systemd-network use.",
36893 "optional" : 1,
36894 "type" : "boolean"
36895 },
e2d681b3
TL
36896 "fuse" : {
36897 "default" : 0,
36898 "description" : "Allow using 'fuse' file systems in a container. Note that interactions between fuse and the freezer cgroup can potentially cause I/O deadlocks.",
36899 "optional" : 1,
36900 "type" : "boolean"
36901 },
4d47f125
TL
36902 "keyctl" : {
36903 "default" : 0,
36904 "description" : "For unprivileged containers only: Allow the use of the keyctl() system call. This is required to use docker inside a container. By default unprivileged containers will see this system call as non-existent. This is mostly a workaround for systemd-networkd, as it will treat it as a fatal error when some keyctl() operations are denied by the kernel due to lacking permissions. Essentially, you can choose between running systemd-networkd or docker.",
36905 "optional" : 1,
36906 "type" : "boolean"
7aacca6f 36907 },
c5aa7e14
TL
36908 "mknod" : {
36909 "default" : 0,
36910 "description" : "Allow unprivileged containers to use mknod() to add certain device nodes. This requires a kernel with seccomp trap to user space support (5.3 or newer). This is experimental.",
36911 "optional" : 1,
36912 "type" : "boolean"
36913 },
4d47f125
TL
36914 "mount" : {
36915 "description" : "Allow mounting file systems of specific types. This should be a list of file system types as used with the mount command. Note that this can have negative effects on the container's security. With access to a loop device, mounting a file can circumvent the mknod permission of the devices cgroup, mounting an NFS file system can block the host's I/O completely and prevent it from rebooting, etc.",
36916 "format_description" : "fstype;fstype;...",
36917 "optional" : 1,
95895385 36918 "pattern" : "(?^:[a-zA-Z0-9_; ]+)",
4d47f125 36919 "type" : "string"
56122987 36920 },
4d47f125
TL
36921 "nesting" : {
36922 "default" : 0,
36923 "description" : "Allow nesting. Best used with unprivileged containers with additional id mapping. Note that this will expose procfs and sysfs contents of the host to the guest.",
36924 "optional" : 1,
36925 "type" : "boolean"
44660702 36926 }
4d47f125
TL
36927 },
36928 "optional" : 1,
36929 "type" : "string",
c5aa7e14 36930 "typetext" : "[force_rw_sys=<1|0>] [,fuse=<1|0>] [,keyctl=<1|0>] [,mknod=<1|0>] [,mount=<fstype;fstype;...>] [,nesting=<1|0>]"
56122987 36931 },
4d47f125
TL
36932 "force" : {
36933 "description" : "Allow to overwrite existing container.",
36934 "optional" : 1,
36935 "type" : "boolean",
36936 "typetext" : "<boolean>"
36937 },
5f26e15b
TL
36938 "hookscript" : {
36939 "description" : "Script that will be exectued during various steps in the containers lifetime.",
36940 "format" : "pve-volume-id",
36941 "optional" : 1,
36942 "type" : "string",
36943 "typetext" : "<string>"
36944 },
4d47f125
TL
36945 "hostname" : {
36946 "description" : "Set a host name for the container.",
36947 "format" : "dns-name",
36948 "maxLength" : 255,
36949 "optional" : 1,
36950 "type" : "string",
36951 "typetext" : "<string>"
36952 },
36953 "ignore-unpack-errors" : {
36954 "description" : "Ignore errors when extracting the template.",
36955 "optional" : 1,
36956 "type" : "boolean",
36957 "typetext" : "<boolean>"
36958 },
36959 "lock" : {
4e7f60c2 36960 "description" : "Lock/unlock the container.",
4d47f125
TL
36961 "enum" : [
36962 "backup",
bb4c8cf8 36963 "create",
1c532546 36964 "destroyed",
4d47f125 36965 "disk",
bb4c8cf8 36966 "fstrim",
4d47f125
TL
36967 "migrate",
36968 "mounted",
36969 "rollback",
36970 "snapshot",
36971 "snapshot-delete"
36972 ],
36973 "optional" : 1,
36974 "type" : "string"
36975 },
36976 "memory" : {
36977 "default" : 512,
4e7f60c2 36978 "description" : "Amount of RAM for the container in MB.",
4d47f125
TL
36979 "minimum" : 16,
36980 "optional" : 1,
36981 "type" : "integer",
36982 "typetext" : "<integer> (16 - N)"
36983 },
36984 "mp[n]" : {
d2656385 36985 "description" : "Use volume as container mount point. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume.",
4d47f125
TL
36986 "format" : {
36987 "acl" : {
36988 "description" : "Explicitly enable or disable ACL support.",
36989 "optional" : 1,
36990 "type" : "boolean"
56122987 36991 },
4d47f125
TL
36992 "backup" : {
36993 "description" : "Whether to include the mount point in backups.",
36994 "optional" : 1,
36995 "type" : "boolean",
36996 "verbose_description" : "Whether to include the mount point in backups (only used for volume mount points)."
56122987 36997 },
7cbed89a
TL
36998 "mountoptions" : {
36999 "description" : "Extra mount options for rootfs/mps.",
37000 "format_description" : "opt[;opt...]",
37001 "optional" : 1,
c30bb419 37002 "pattern" : "(?^:(?^:(noatime|lazytime|nodev|nosuid|noexec))(;(?^:(noatime|lazytime|nodev|nosuid|noexec)))*)",
7cbed89a
TL
37003 "type" : "string"
37004 },
4d47f125
TL
37005 "mp" : {
37006 "description" : "Path to the mount point as seen from inside the container (must not contain symlinks).",
37007 "format" : "pve-lxc-mp-string",
37008 "format_description" : "Path",
37009 "type" : "string",
37010 "verbose_description" : "Path to the mount point as seen from inside the container.\n\nNOTE: Must not contain any symlinks for security reasons."
7aacca6f 37011 },
4d47f125
TL
37012 "quota" : {
37013 "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
37014 "optional" : 1,
37015 "type" : "boolean"
37016 },
37017 "replicate" : {
37018 "default" : 1,
37019 "description" : "Will include this volume to a storage replica job.",
37020 "optional" : 1,
37021 "type" : "boolean"
37022 },
37023 "ro" : {
37024 "description" : "Read-only mount point",
37025 "optional" : 1,
37026 "type" : "boolean"
37027 },
37028 "shared" : {
37029 "default" : 0,
37030 "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
37031 "optional" : 1,
37032 "type" : "boolean",
37033 "verbose_description" : "Mark this non-volume mount point as available on all nodes.\n\nWARNING: This option does not share the mount point automatically, it assumes it is shared already!"
56122987 37034 },
4d47f125
TL
37035 "size" : {
37036 "description" : "Volume size (read only value).",
37037 "format" : "disk-size",
37038 "format_description" : "DiskSize",
37039 "optional" : 1,
37040 "type" : "string"
37041 },
37042 "volume" : {
37043 "default_key" : 1,
37044 "description" : "Volume, device or directory to mount into the container.",
37045 "format" : "pve-lxc-mp-string",
37046 "format_description" : "volume",
44660702
DM
37047 "type" : "string"
37048 }
4d47f125
TL
37049 },
37050 "optional" : 1,
37051 "type" : "string",
7cbed89a 37052 "typetext" : "[volume=]<volume> ,mp=<Path> [,acl=<1|0>] [,backup=<1|0>] [,mountoptions=<opt[;opt...]>] [,quota=<1|0>] [,replicate=<1|0>] [,ro=<1|0>] [,shared=<1|0>] [,size=<DiskSize>]"
56122987 37053 },
4d47f125
TL
37054 "nameserver" : {
37055 "description" : "Sets DNS server IP address for a container. Create will automatically use the setting from the host if you neither set searchdomain nor nameserver.",
d2656385 37056 "format" : "lxc-ip-with-ll-iface-list",
4d47f125
TL
37057 "optional" : 1,
37058 "type" : "string",
37059 "typetext" : "<string>"
37060 },
37061 "net[n]" : {
37062 "description" : "Specifies network interfaces for the container.",
37063 "format" : {
37064 "bridge" : {
37065 "description" : "Bridge to attach the network device to.",
37066 "format_description" : "bridge",
37067 "optional" : 1,
37068 "pattern" : "[-_.\\w\\d]+",
37069 "type" : "string"
56122987 37070 },
4d47f125
TL
37071 "firewall" : {
37072 "description" : "Controls whether this interface's firewall rules should be used.",
37073 "optional" : 1,
37074 "type" : "boolean"
56122987 37075 },
4d47f125
TL
37076 "gw" : {
37077 "description" : "Default gateway for IPv4 traffic.",
37078 "format" : "ipv4",
37079 "format_description" : "GatewayIPv4",
37080 "optional" : 1,
37081 "type" : "string"
37082 },
37083 "gw6" : {
37084 "description" : "Default gateway for IPv6 traffic.",
37085 "format" : "ipv6",
37086 "format_description" : "GatewayIPv6",
37087 "optional" : 1,
37088 "type" : "string"
37089 },
37090 "hwaddr" : {
37091 "description" : "The interface MAC address. This is dynamically allocated by default, but you can set that statically if needed, for example to always have the same link-local IPv6 address. (lxc.network.hwaddr)",
95895385 37092 "format" : "mac-addr",
4d47f125
TL
37093 "format_description" : "XX:XX:XX:XX:XX:XX",
37094 "optional" : 1,
95895385
TL
37095 "type" : "string",
37096 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
4d47f125
TL
37097 },
37098 "ip" : {
37099 "description" : "IPv4 address in CIDR format.",
37100 "format" : "pve-ipv4-config",
37101 "format_description" : "(IPv4/CIDR|dhcp|manual)",
37102 "optional" : 1,
37103 "type" : "string"
37104 },
37105 "ip6" : {
37106 "description" : "IPv6 address in CIDR format.",
37107 "format" : "pve-ipv6-config",
37108 "format_description" : "(IPv6/CIDR|auto|dhcp|manual)",
37109 "optional" : 1,
37110 "type" : "string"
37111 },
9d2e98ed
TL
37112 "link_down" : {
37113 "description" : "Whether this interface should be disconnected (like pulling the plug).",
37114 "optional" : 1,
37115 "type" : "boolean"
37116 },
4d47f125
TL
37117 "mtu" : {
37118 "description" : "Maximum transfer unit of the interface. (lxc.network.mtu)",
81a3384d 37119 "maximum" : 65535,
4d47f125
TL
37120 "minimum" : 64,
37121 "optional" : 1,
37122 "type" : "integer"
37123 },
37124 "name" : {
37125 "description" : "Name of the network device as seen from inside the container. (lxc.network.name)",
37126 "format_description" : "string",
37127 "pattern" : "[-_.\\w\\d]+",
37128 "type" : "string"
37129 },
37130 "rate" : {
37131 "description" : "Apply rate limiting to the interface",
37132 "format_description" : "mbps",
37133 "optional" : 1,
37134 "type" : "number"
37135 },
37136 "tag" : {
37137 "description" : "VLAN tag for this interface.",
37138 "maximum" : 4094,
37139 "minimum" : 1,
37140 "optional" : 1,
37141 "type" : "integer"
37142 },
37143 "trunks" : {
37144 "description" : "VLAN ids to pass through the interface",
37145 "format_description" : "vlanid[;vlanid...]",
37146 "optional" : 1,
37147 "pattern" : "(?^:\\d+(?:;\\d+)*)",
37148 "type" : "string"
37149 },
37150 "type" : {
37151 "description" : "Network interface type.",
37152 "enum" : [
37153 "veth"
37154 ],
37155 "optional" : 1,
37156 "type" : "string"
7aacca6f 37157 }
4d47f125
TL
37158 },
37159 "optional" : 1,
37160 "type" : "string",
9d2e98ed 37161 "typetext" : "name=<string> [,bridge=<bridge>] [,firewall=<1|0>] [,gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,hwaddr=<XX:XX:XX:XX:XX:XX>] [,ip=<(IPv4/CIDR|dhcp|manual)>] [,ip6=<(IPv6/CIDR|auto|dhcp|manual)>] [,link_down=<1|0>] [,mtu=<integer>] [,rate=<mbps>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>] [,type=<veth>]"
56122987 37162 },
4d47f125
TL
37163 "node" : {
37164 "description" : "The cluster node name.",
37165 "format" : "pve-node",
37166 "type" : "string",
37167 "typetext" : "<string>"
37168 },
37169 "onboot" : {
37170 "default" : 0,
4e7f60c2 37171 "description" : "Specifies whether a container will be started during system bootup.",
4d47f125
TL
37172 "optional" : 1,
37173 "type" : "boolean",
37174 "typetext" : "<boolean>"
37175 },
37176 "ostemplate" : {
37177 "description" : "The OS template or backup file.",
37178 "maxLength" : 255,
37179 "type" : "string",
37180 "typetext" : "<string>"
37181 },
37182 "ostype" : {
37183 "description" : "OS type. This is used to setup configuration inside the container, and corresponds to lxc setup scripts in /usr/share/lxc/config/<ostype>.common.conf. Value 'unmanaged' can be used to skip and OS specific setup.",
37184 "enum" : [
37185 "debian",
d2656385 37186 "devuan",
4d47f125
TL
37187 "ubuntu",
37188 "centos",
37189 "fedora",
37190 "opensuse",
37191 "archlinux",
37192 "alpine",
37193 "gentoo",
7af2edf9 37194 "nixos",
4d47f125
TL
37195 "unmanaged"
37196 ],
37197 "optional" : 1,
37198 "type" : "string"
37199 },
37200 "password" : {
37201 "description" : "Sets root password inside container.",
37202 "minLength" : 5,
37203 "optional" : 1,
37204 "type" : "string",
37205 "typetext" : "<string>"
37206 },
37207 "pool" : {
37208 "description" : "Add the VM to the specified pool.",
37209 "format" : "pve-poolid",
37210 "optional" : 1,
37211 "type" : "string",
37212 "typetext" : "<string>"
37213 },
37214 "protection" : {
37215 "default" : 0,
37216 "description" : "Sets the protection flag of the container. This will prevent the CT or CT's disk remove/update operation.",
37217 "optional" : 1,
37218 "type" : "boolean",
37219 "typetext" : "<boolean>"
37220 },
37221 "restore" : {
37222 "description" : "Mark this as restore task.",
37223 "optional" : 1,
37224 "type" : "boolean",
37225 "typetext" : "<boolean>"
37226 },
37227 "rootfs" : {
37228 "description" : "Use volume as container root.",
37229 "format" : {
37230 "acl" : {
37231 "description" : "Explicitly enable or disable ACL support.",
37232 "optional" : 1,
37233 "type" : "boolean"
56122987 37234 },
7cbed89a
TL
37235 "mountoptions" : {
37236 "description" : "Extra mount options for rootfs/mps.",
37237 "format_description" : "opt[;opt...]",
37238 "optional" : 1,
c30bb419 37239 "pattern" : "(?^:(?^:(noatime|lazytime|nodev|nosuid|noexec))(;(?^:(noatime|lazytime|nodev|nosuid|noexec)))*)",
7cbed89a
TL
37240 "type" : "string"
37241 },
4d47f125
TL
37242 "quota" : {
37243 "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
37244 "optional" : 1,
37245 "type" : "boolean"
7aacca6f 37246 },
4d47f125
TL
37247 "replicate" : {
37248 "default" : 1,
37249 "description" : "Will include this volume to a storage replica job.",
37250 "optional" : 1,
37251 "type" : "boolean"
37252 },
37253 "ro" : {
37254 "description" : "Read-only mount point",
37255 "optional" : 1,
37256 "type" : "boolean"
37257 },
37258 "shared" : {
37259 "default" : 0,
37260 "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
37261 "optional" : 1,
37262 "type" : "boolean",
37263 "verbose_description" : "Mark this non-volume mount point as available on all nodes.\n\nWARNING: This option does not share the mount point automatically, it assumes it is shared already!"
37264 },
37265 "size" : {
37266 "description" : "Volume size (read only value).",
37267 "format" : "disk-size",
37268 "format_description" : "DiskSize",
37269 "optional" : 1,
37270 "type" : "string"
37271 },
37272 "volume" : {
37273 "default_key" : 1,
37274 "description" : "Volume, device or directory to mount into the container.",
37275 "format" : "pve-lxc-mp-string",
37276 "format_description" : "volume",
37277 "type" : "string"
56122987 37278 }
4d47f125
TL
37279 },
37280 "optional" : 1,
37281 "type" : "string",
7cbed89a 37282 "typetext" : "[volume=]<volume> [,acl=<1|0>] [,mountoptions=<opt[;opt...]>] [,quota=<1|0>] [,replicate=<1|0>] [,ro=<1|0>] [,shared=<1|0>] [,size=<DiskSize>]"
56122987 37283 },
4d47f125
TL
37284 "searchdomain" : {
37285 "description" : "Sets DNS search domains for a container. Create will automatically use the setting from the host if you neither set searchdomain nor nameserver.",
37286 "format" : "dns-name-list",
37287 "optional" : 1,
37288 "type" : "string",
37289 "typetext" : "<string>"
37290 },
37291 "ssh-public-keys" : {
37292 "description" : "Setup public SSH keys (one key per line, OpenSSH format).",
37293 "optional" : 1,
37294 "type" : "string",
37295 "typetext" : "<string>"
37296 },
37297 "start" : {
37298 "default" : 0,
37299 "description" : "Start the CT after its creation finished successfully.",
37300 "optional" : 1,
37301 "type" : "boolean",
37302 "typetext" : "<boolean>"
37303 },
37304 "startup" : {
37305 "description" : "Startup and shutdown behavior. Order is a non-negative number defining the general startup order. Shutdown in done with reverse ordering. Additionally you can set the 'up' or 'down' delay in seconds, which specifies a delay to wait before the next VM is started or stopped.",
37306 "format" : "pve-startup-order",
37307 "optional" : 1,
37308 "type" : "string",
37309 "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
37310 },
37311 "storage" : {
37312 "default" : "local",
37313 "description" : "Default Storage.",
37314 "format" : "pve-storage-id",
907e4bc3 37315 "format_description" : "storage ID",
4d47f125
TL
37316 "optional" : 1,
37317 "type" : "string",
907e4bc3 37318 "typetext" : "<storage ID>"
4d47f125
TL
37319 },
37320 "swap" : {
37321 "default" : 512,
4e7f60c2 37322 "description" : "Amount of SWAP for the container in MB.",
4d47f125
TL
37323 "minimum" : 0,
37324 "optional" : 1,
37325 "type" : "integer",
37326 "typetext" : "<integer> (0 - N)"
37327 },
5c1699e5
TL
37328 "tags" : {
37329 "description" : "Tags of the Container. This is only meta information.",
37330 "format" : "pve-tag-list",
37331 "optional" : 1,
37332 "type" : "string",
37333 "typetext" : "<string>"
37334 },
4d47f125
TL
37335 "template" : {
37336 "default" : 0,
37337 "description" : "Enable/disable Template.",
37338 "optional" : 1,
37339 "type" : "boolean",
37340 "typetext" : "<boolean>"
37341 },
04d22a9f
TL
37342 "timezone" : {
37343 "description" : "Time zone to use in the container. If option isn't set, then nothing will be done. Can be set to 'host' to match the host time zone, or an arbitrary time zone option from /usr/share/zoneinfo/zone.tab",
37344 "format" : "pve-ct-timezone",
37345 "optional" : 1,
37346 "type" : "string",
37347 "typetext" : "<string>"
37348 },
4d47f125
TL
37349 "tty" : {
37350 "default" : 2,
37351 "description" : "Specify the number of tty available to the container",
37352 "maximum" : 6,
37353 "minimum" : 0,
37354 "optional" : 1,
37355 "type" : "integer",
37356 "typetext" : "<integer> (0 - 6)"
37357 },
95895385
TL
37358 "unique" : {
37359 "description" : "Assign a unique random ethernet address.",
37360 "optional" : 1,
37361 "requires" : "restore",
37362 "type" : "boolean",
37363 "typetext" : "<boolean>"
37364 },
4d47f125
TL
37365 "unprivileged" : {
37366 "default" : 0,
37367 "description" : "Makes the container run as unprivileged user. (Should not be modified manually.)",
37368 "optional" : 1,
37369 "type" : "boolean",
37370 "typetext" : "<boolean>"
37371 },
37372 "unused[n]" : {
37373 "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
c5aa7e14
TL
37374 "format" : {
37375 "volume" : {
37376 "default_key" : 1,
37377 "description" : "The volume that is not used currently.",
37378 "format" : "pve-volume-id",
37379 "format_description" : "volume",
37380 "type" : "string"
37381 }
37382 },
4d47f125
TL
37383 "optional" : 1,
37384 "type" : "string",
c5aa7e14 37385 "typetext" : "[volume=]<volume>"
4d47f125
TL
37386 },
37387 "vmid" : {
37388 "description" : "The (unique) ID of the VM.",
37389 "format" : "pve-vmid",
8dd66e12
TL
37390 "maximum" : 999999999,
37391 "minimum" : 100,
4d47f125 37392 "type" : "integer",
8dd66e12 37393 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
37394 }
37395 }
37396 },
37397 "permissions" : {
37398 "description" : "You need 'VM.Allocate' permissions on /vms/{vmid} or on the VM pool /pool/{pool}. For restore, it is enough if the user has 'VM.Backup' permission and the VM already exists. You also need 'Datastore.AllocateSpace' permissions on the storage.",
37399 "user" : "all"
37400 },
37401 "protected" : 1,
37402 "proxyto" : "node",
37403 "returns" : {
37404 "type" : "string"
37405 }
37406 }
37407 },
37408 "leaf" : 0,
37409 "path" : "/nodes/{node}/lxc",
37410 "text" : "lxc"
37411 },
37412 {
37413 "children" : [
9d2e98ed
TL
37414 {
37415 "children" : [
37416 {
37417 "info" : {
37418 "GET" : {
37419 "allowtoken" : 1,
37420 "description" : "Get the Ceph configuration file.",
37421 "method" : "GET",
37422 "name" : "raw",
37423 "parameters" : {
37424 "additionalProperties" : 0,
37425 "properties" : {
37426 "node" : {
37427 "description" : "The cluster node name.",
37428 "format" : "pve-node",
37429 "type" : "string",
37430 "typetext" : "<string>"
37431 }
37432 }
37433 },
37434 "permissions" : {
37435 "check" : [
37436 "perm",
37437 "/",
37438 [
37439 "Sys.Audit",
37440 "Datastore.Audit"
37441 ],
37442 "any",
37443 1
37444 ]
37445 },
37446 "proxyto" : "node",
37447 "returns" : {
37448 "type" : "string"
37449 }
37450 }
37451 },
37452 "leaf" : 1,
37453 "path" : "/nodes/{node}/ceph/cfg/raw",
37454 "text" : "raw"
37455 },
37456 {
37457 "info" : {
37458 "GET" : {
37459 "allowtoken" : 1,
37460 "description" : "Get the Ceph configuration database.",
37461 "method" : "GET",
37462 "name" : "db",
37463 "parameters" : {
37464 "additionalProperties" : 0,
37465 "properties" : {
37466 "node" : {
37467 "description" : "The cluster node name.",
37468 "format" : "pve-node",
37469 "type" : "string",
37470 "typetext" : "<string>"
37471 }
37472 }
37473 },
37474 "permissions" : {
37475 "check" : [
37476 "perm",
37477 "/",
37478 [
37479 "Sys.Audit",
37480 "Datastore.Audit"
37481 ],
37482 "any",
37483 1
37484 ]
37485 },
37486 "protected" : 1,
37487 "proxyto" : "node",
37488 "returns" : {
37489 "items" : {
37490 "properties" : {
37491 "can_update_at_runtime" : {
37492 "type" : "boolean"
37493 },
37494 "level" : {
37495 "type" : "string"
37496 },
37497 "mask" : {
37498 "type" : "string"
37499 },
37500 "name" : {
37501 "type" : "string"
37502 },
37503 "section" : {
37504 "type" : "string"
37505 },
37506 "value" : {
37507 "type" : "string"
37508 }
37509 },
37510 "type" : "object"
37511 },
37512 "type" : "array"
37513 }
37514 }
37515 },
37516 "leaf" : 1,
37517 "path" : "/nodes/{node}/ceph/cfg/db",
37518 "text" : "db"
fa22697b
TL
37519 },
37520 {
37521 "info" : {
37522 "GET" : {
37523 "allowtoken" : 1,
37524 "description" : "Get configured values from either the config file or config DB.",
37525 "method" : "GET",
37526 "name" : "value",
37527 "parameters" : {
37528 "additionalProperties" : 0,
37529 "properties" : {
37530 "config-keys" : {
37531 "description" : "List of <section>:<config key> items.",
37532 "pattern" : "(?^:^(:?(?^i:[0-9a-z\\-_\\.]+:[0-9a-zA-Z\\-_]+))(:?[;, ](?^i:[0-9a-z\\-_\\.]+:[0-9a-zA-Z\\-_]+))*$)",
37533 "type" : "string",
37534 "typetext" : "<section>:<config key>[;<section>:<config key>]"
37535 },
37536 "node" : {
37537 "description" : "The cluster node name.",
37538 "format" : "pve-node",
37539 "type" : "string",
37540 "typetext" : "<string>"
37541 }
37542 }
37543 },
37544 "permissions" : {
37545 "check" : [
37546 "perm",
37547 "/",
37548 [
37549 "Sys.Audit"
37550 ]
37551 ]
37552 },
37553 "protected" : 1,
37554 "proxyto" : "node",
37555 "returns" : {
37556 "description" : "Contains {section}->{key} children with the values",
37557 "type" : "object"
37558 }
37559 }
37560 },
37561 "leaf" : 1,
37562 "path" : "/nodes/{node}/ceph/cfg/value",
37563 "text" : "value"
9d2e98ed
TL
37564 }
37565 ],
37566 "info" : {
37567 "GET" : {
37568 "allowtoken" : 1,
37569 "description" : "Directory index.",
37570 "method" : "GET",
37571 "name" : "index",
37572 "parameters" : {
37573 "additionalProperties" : 0,
37574 "properties" : {
37575 "node" : {
37576 "description" : "The cluster node name.",
37577 "format" : "pve-node",
37578 "type" : "string",
37579 "typetext" : "<string>"
37580 }
37581 }
37582 },
37583 "permissions" : {
37584 "user" : "all"
37585 },
37586 "returns" : {
37587 "items" : {
37588 "properties" : {},
37589 "type" : "object"
37590 },
37591 "links" : [
37592 {
37593 "href" : "{name}",
37594 "rel" : "child"
37595 }
37596 ],
37597 "type" : "array"
37598 }
37599 }
37600 },
37601 "leaf" : 0,
37602 "path" : "/nodes/{node}/ceph/cfg",
37603 "text" : "cfg"
37604 },
4d47f125
TL
37605 {
37606 "children" : [
56122987 37607 {
4d47f125
TL
37608 "children" : [
37609 {
37610 "info" : {
9d2e98ed 37611 "GET" : {
e9cd3bd4 37612 "allowtoken" : 1,
9d2e98ed
TL
37613 "description" : "Get OSD details",
37614 "method" : "GET",
37615 "name" : "osddetails",
37616 "parameters" : {
37617 "additionalProperties" : 0,
37618 "properties" : {
37619 "node" : {
37620 "description" : "The cluster node name.",
37621 "format" : "pve-node",
37622 "type" : "string",
37623 "typetext" : "<string>"
37624 },
37625 "osdid" : {
37626 "description" : "OSD ID",
37627 "type" : "integer",
37628 "typetext" : "<integer>"
37629 }
37630 }
37631 },
37632 "permissions" : {
37633 "check" : [
37634 "perm",
37635 "/",
37636 [
37637 "Sys.Audit"
37638 ],
37639 "any",
37640 1
37641 ]
37642 },
37643 "protected" : 1,
37644 "proxyto" : "node",
37645 "returns" : {
37646 "properties" : {
37647 "devices" : {
37648 "description" : "Array containing data about devices",
37649 "items" : {
37650 "properties" : {
37651 "dev_node" : {
37652 "description" : "Device node",
37653 "type" : "string"
37654 },
37655 "device" : {
37656 "description" : "Kind of OSD device",
37657 "enum" : [
37658 "block",
37659 "db",
37660 "wal"
37661 ],
37662 "type" : "string"
37663 },
37664 "devices" : {
37665 "description" : "Physical disks used",
37666 "type" : "string"
37667 },
37668 "size" : {
37669 "description" : "Size in bytes",
37670 "type" : "integer"
37671 },
37672 "support_discard" : {
37673 "description" : "Discard support of the physical device",
37674 "type" : "boolean"
37675 },
37676 "type" : {
37677 "description" : "Type of device. For example, hdd or ssd",
37678 "type" : "string"
37679 }
37680 },
37681 "type" : "object"
37682 },
37683 "type" : "array"
37684 },
37685 "osd" : {
37686 "description" : "General information about the OSD",
37687 "properties" : {
37688 "back_addr" : {
37689 "description" : "Address and port used to talk to other OSDs.",
37690 "type" : "string"
37691 },
37692 "front_addr" : {
37693 "description" : "Address and port used to talk to clients and monitors.",
37694 "type" : "string"
37695 },
37696 "hb_back_addr" : {
37697 "description" : "Heartbeat address and port for other OSDs.",
37698 "type" : "string"
37699 },
37700 "hb_front_addr" : {
37701 "description" : "Heartbeat address and port for clients and monitors.",
37702 "type" : "string"
37703 },
37704 "hostname" : {
37705 "description" : "Name of the host containing the OSD.",
37706 "type" : "string"
37707 },
37708 "id" : {
37709 "description" : "ID of the OSD.",
37710 "type" : "integer"
37711 },
37712 "mem_usage" : {
37713 "description" : "Memory usage of the OSD service.",
37714 "type" : "integer"
37715 },
37716 "osd_data" : {
37717 "description" : "Path to the OSD's data directory.",
37718 "type" : "string"
37719 },
37720 "osd_objectstore" : {
37721 "description" : "The type of object store used.",
37722 "type" : "string"
37723 },
37724 "pid" : {
37725 "description" : "OSD process ID.",
37726 "type" : "integer"
37727 },
37728 "version" : {
37729 "description" : "Ceph version of the OSD service.",
37730 "type" : "string"
37731 }
37732 },
37733 "type" : "object"
37734 }
37735 },
37736 "type" : "object"
37737 }
37738 }
37739 },
37740 "leaf" : 1,
37741 "path" : "/nodes/{node}/ceph/osd/{osdid}/metadata",
37742 "text" : "metadata"
37743 },
37744 {
37745 "info" : {
37746 "GET" : {
37747 "allowtoken" : 1,
37748 "description" : "Get OSD volume details",
37749 "method" : "GET",
37750 "name" : "osdvolume",
37751 "parameters" : {
37752 "additionalProperties" : 0,
37753 "properties" : {
37754 "node" : {
37755 "description" : "The cluster node name.",
37756 "format" : "pve-node",
37757 "type" : "string",
37758 "typetext" : "<string>"
37759 },
37760 "osdid" : {
37761 "description" : "OSD ID",
37762 "type" : "integer",
37763 "typetext" : "<integer>"
37764 },
37765 "type" : {
37766 "default" : "block",
37767 "description" : "OSD device type",
37768 "enum" : [
37769 "block",
37770 "db",
37771 "wal"
37772 ],
37773 "optional" : 1,
37774 "type" : "string"
37775 }
37776 }
37777 },
37778 "permissions" : {
37779 "check" : [
37780 "perm",
37781 "/",
37782 [
37783 "Sys.Audit"
37784 ],
37785 "any",
37786 1
37787 ]
37788 },
37789 "protected" : 1,
37790 "proxyto" : "node",
37791 "returns" : {
37792 "properties" : {
37793 "creation_time" : {
37794 "description" : "Creation time as reported by `lvs`.",
37795 "type" : "string"
37796 },
37797 "lv_name" : {
37798 "description" : "Name of the logical volume (LV).",
37799 "type" : "string"
37800 },
37801 "lv_path" : {
37802 "description" : "Path to the logical volume (LV).",
37803 "type" : "string"
37804 },
37805 "lv_size" : {
37806 "description" : "Size of the logical volume (LV).",
37807 "type" : "integer"
37808 },
37809 "lv_uuid" : {
37810 "description" : "UUID of the logical volume (LV).",
37811 "type" : "string"
37812 },
37813 "vg_name" : {
37814 "description" : "Name of the volume group (VG).",
37815 "type" : "string"
37816 }
37817 },
37818 "type" : "object"
37819 }
37820 }
37821 },
37822 "leaf" : 1,
37823 "path" : "/nodes/{node}/ceph/osd/{osdid}/lv-info",
37824 "text" : "lv-info"
37825 },
37826 {
37827 "info" : {
37828 "POST" : {
37829 "allowtoken" : 1,
37830 "description" : "ceph osd in",
37831 "method" : "POST",
37832 "name" : "in",
4d47f125
TL
37833 "parameters" : {
37834 "additionalProperties" : 0,
37835 "properties" : {
37836 "node" : {
37837 "description" : "The cluster node name.",
37838 "format" : "pve-node",
37839 "type" : "string",
37840 "typetext" : "<string>"
37841 },
37842 "osdid" : {
37843 "description" : "OSD ID",
37844 "type" : "integer",
37845 "typetext" : "<integer>"
37846 }
37847 }
27a7acb2 37848 },
4d47f125
TL
37849 "permissions" : {
37850 "check" : [
37851 "perm",
37852 "/",
37853 [
37854 "Sys.Modify"
37855 ]
37856 ]
44660702 37857 },
4d47f125
TL
37858 "protected" : 1,
37859 "proxyto" : "node",
37860 "returns" : {
37861 "type" : "null"
7aacca6f
DM
37862 }
37863 }
56122987 37864 },
4d47f125
TL
37865 "leaf" : 1,
37866 "path" : "/nodes/{node}/ceph/osd/{osdid}/in",
37867 "text" : "in"
37868 },
37869 {
37870 "info" : {
37871 "POST" : {
e9cd3bd4 37872 "allowtoken" : 1,
4d47f125
TL
37873 "description" : "ceph osd out",
37874 "method" : "POST",
37875 "name" : "out",
37876 "parameters" : {
37877 "additionalProperties" : 0,
37878 "properties" : {
37879 "node" : {
37880 "description" : "The cluster node name.",
37881 "format" : "pve-node",
37882 "type" : "string",
37883 "typetext" : "<string>"
37884 },
37885 "osdid" : {
37886 "description" : "OSD ID",
37887 "type" : "integer",
37888 "typetext" : "<integer>"
37889 }
37890 }
37891 },
37892 "permissions" : {
37893 "check" : [
56122987 37894 "perm",
4d47f125 37895 "/",
56122987 37896 [
4d47f125 37897 "Sys.Modify"
56122987 37898 ]
56122987 37899 ]
44660702 37900 },
4d47f125
TL
37901 "protected" : 1,
37902 "proxyto" : "node",
37903 "returns" : {
37904 "type" : "null"
56122987 37905 }
44660702 37906 }
56122987 37907 },
4d47f125
TL
37908 "leaf" : 1,
37909 "path" : "/nodes/{node}/ceph/osd/{osdid}/out",
37910 "text" : "out"
7cbed89a
TL
37911 },
37912 {
37913 "info" : {
37914 "POST" : {
e9cd3bd4 37915 "allowtoken" : 1,
7cbed89a
TL
37916 "description" : "Instruct the OSD to scrub.",
37917 "method" : "POST",
37918 "name" : "scrub",
37919 "parameters" : {
37920 "additionalProperties" : 0,
37921 "properties" : {
37922 "deep" : {
37923 "default" : 0,
37924 "description" : "If set, instructs a deep scrub instead of a normal one.",
37925 "optional" : 1,
37926 "type" : "boolean",
37927 "typetext" : "<boolean>"
37928 },
37929 "node" : {
37930 "description" : "The cluster node name.",
37931 "format" : "pve-node",
37932 "type" : "string",
37933 "typetext" : "<string>"
37934 },
37935 "osdid" : {
37936 "description" : "OSD ID",
37937 "type" : "integer",
37938 "typetext" : "<integer>"
37939 }
37940 }
37941 },
37942 "permissions" : {
37943 "check" : [
37944 "perm",
37945 "/",
37946 [
37947 "Sys.Modify"
37948 ]
37949 ]
37950 },
37951 "protected" : 1,
37952 "proxyto" : "node",
37953 "returns" : {
37954 "type" : "null"
37955 }
37956 }
37957 },
37958 "leaf" : 1,
37959 "path" : "/nodes/{node}/ceph/osd/{osdid}/scrub",
37960 "text" : "scrub"
56122987 37961 }
4d47f125 37962 ],
27a7acb2 37963 "info" : {
4d47f125 37964 "DELETE" : {
e9cd3bd4 37965 "allowtoken" : 1,
4d47f125
TL
37966 "description" : "Destroy OSD",
37967 "method" : "DELETE",
37968 "name" : "destroyosd",
27a7acb2
DM
37969 "parameters" : {
37970 "additionalProperties" : 0,
37971 "properties" : {
4d47f125 37972 "cleanup" : {
27a7acb2 37973 "default" : 0,
4d47f125 37974 "description" : "If set, we remove partition table entries.",
27a7acb2 37975 "optional" : 1,
4d47f125
TL
37976 "type" : "boolean",
37977 "typetext" : "<boolean>"
37978 },
37979 "node" : {
37980 "description" : "The cluster node name.",
37981 "format" : "pve-node",
37982 "type" : "string",
37983 "typetext" : "<string>"
37984 },
37985 "osdid" : {
37986 "description" : "OSD ID",
37987 "type" : "integer",
37988 "typetext" : "<integer>"
37989 }
37990 }
27a7acb2
DM
37991 },
37992 "protected" : 1,
37993 "proxyto" : "node",
37994 "returns" : {
37995 "type" : "string"
37996 }
9d2e98ed
TL
37997 },
37998 "GET" : {
37999 "allowtoken" : 1,
38000 "description" : "OSD index.",
38001 "method" : "GET",
38002 "name" : "osdindex",
38003 "parameters" : {
38004 "additionalProperties" : 0,
38005 "properties" : {
38006 "node" : {
38007 "description" : "The cluster node name.",
38008 "format" : "pve-node",
38009 "type" : "string",
38010 "typetext" : "<string>"
38011 },
38012 "osdid" : {
38013 "description" : "OSD ID",
38014 "type" : "integer",
38015 "typetext" : "<integer>"
38016 }
38017 }
38018 },
38019 "permissions" : {
38020 "user" : "all"
38021 },
38022 "returns" : {
38023 "items" : {
38024 "properties" : {},
38025 "type" : "object"
38026 },
38027 "links" : [
38028 {
38029 "href" : "{name}",
38030 "rel" : "child"
38031 }
38032 ],
38033 "type" : "array"
38034 }
27a7acb2
DM
38035 }
38036 },
4d47f125
TL
38037 "leaf" : 0,
38038 "path" : "/nodes/{node}/ceph/osd/{osdid}",
38039 "text" : "{osdid}"
56122987
DM
38040 }
38041 ],
38042 "info" : {
4d47f125 38043 "GET" : {
e9cd3bd4 38044 "allowtoken" : 1,
4d47f125
TL
38045 "description" : "Get Ceph osd list/tree.",
38046 "method" : "GET",
38047 "name" : "index",
44660702
DM
38048 "parameters" : {
38049 "additionalProperties" : 0,
38050 "properties" : {
38051 "node" : {
38052 "description" : "The cluster node name.",
38053 "format" : "pve-node",
013dc89f
DM
38054 "type" : "string",
38055 "typetext" : "<string>"
44660702
DM
38056 }
38057 }
38058 },
7aacca6f
DM
38059 "permissions" : {
38060 "check" : [
38061 "perm",
4d47f125 38062 "/",
7aacca6f 38063 [
4d47f125
TL
38064 "Sys.Audit",
38065 "Datastore.Audit"
38066 ],
38067 "any",
38068 1
38069 ]
38070 },
38071 "protected" : 1,
38072 "proxyto" : "node",
38073 "returns" : {
9d2e98ed
TL
38074 "items" : {
38075 "properties" : {
38076 "flags" : {
38077 "type" : "string"
38078 },
38079 "root" : {
38080 "description" : "Tree with OSDs in the CRUSH map structure.",
38081 "type" : "object"
38082 }
38083 },
38084 "type" : "object"
38085 },
4d47f125
TL
38086 "type" : "object"
38087 }
38088 },
38089 "POST" : {
e9cd3bd4 38090 "allowtoken" : 1,
4d47f125
TL
38091 "description" : "Create OSD",
38092 "method" : "POST",
38093 "name" : "createosd",
38094 "parameters" : {
38095 "additionalProperties" : 0,
38096 "properties" : {
739d4d64
TL
38097 "crush-device-class" : {
38098 "description" : "Set the device class of the OSD in crush.",
38099 "optional" : 1,
38100 "type" : "string",
38101 "typetext" : "<string>"
38102 },
1e3f8156
TL
38103 "db_dev" : {
38104 "description" : "Block device name for block.db.",
44660702 38105 "optional" : 1,
4bd7df8b 38106 "type" : "string",
4d47f125 38107 "typetext" : "<string>"
44660702 38108 },
0695fdaf 38109 "db_dev_size" : {
1e3f8156
TL
38110 "default" : "bluestore_block_db_size or 10% of OSD size",
38111 "description" : "Size in GiB for block.db.",
38112 "minimum" : 1,
7aacca6f 38113 "optional" : 1,
1e3f8156
TL
38114 "requires" : "db_dev",
38115 "type" : "number",
38116 "typetext" : "<number> (1 - N)",
fa22697b 38117 "verbose_description" : "If a block.db is requested but the size is not given, will be automatically selected by: bluestore_block_db_size from the ceph database (osd or global section) or config (osd or global section) in that order. If this is not available, it will be sized 10% of the size of the OSD device. Fails if the available size is not enough."
44660702 38118 },
1e3f8156
TL
38119 "dev" : {
38120 "description" : "Block device name.",
4d47f125
TL
38121 "type" : "string",
38122 "typetext" : "<string>"
5d9c884c 38123 },
1e3f8156
TL
38124 "encrypted" : {
38125 "default" : 0,
38126 "description" : "Enables encryption of the OSD.",
38127 "optional" : 1,
38128 "type" : "boolean",
38129 "typetext" : "<boolean>"
38130 },
4d47f125
TL
38131 "node" : {
38132 "description" : "The cluster node name.",
38133 "format" : "pve-node",
38134 "type" : "string",
38135 "typetext" : "<string>"
7aacca6f 38136 },
fa22697b
TL
38137 "osds-per-device" : {
38138 "description" : "OSD services per physical device. Only useful for fast NVMe devices\"\n\t\t .\" to utilize their performance better.",
38139 "minimum" : "1",
38140 "optional" : 1,
38141 "type" : "integer",
38142 "typetext" : "<integer> (1 - N)"
38143 },
4d47f125 38144 "wal_dev" : {
1e3f8156 38145 "description" : "Block device name for block.wal.",
de0983cb 38146 "optional" : 1,
4d47f125
TL
38147 "type" : "string",
38148 "typetext" : "<string>"
1e3f8156 38149 },
0695fdaf 38150 "wal_dev_size" : {
1e3f8156
TL
38151 "default" : "bluestore_block_wal_size or 1% of OSD size",
38152 "description" : "Size in GiB for block.wal.",
38153 "minimum" : 0.5,
38154 "optional" : 1,
38155 "requires" : "wal_dev",
38156 "type" : "number",
38157 "typetext" : "<number> (0.5 - N)",
fa22697b 38158 "verbose_description" : "If a block.wal is requested but the size is not given, will be automatically selected by: bluestore_block_wal_size from the ceph database (osd or global section) or config (osd or global section) in that order. If this is not available, it will be sized 1% of the size of the OSD device. Fails if the available size is not enough."
4d47f125
TL
38159 }
38160 }
38161 },
38162 "protected" : 1,
38163 "proxyto" : "node",
38164 "returns" : {
38165 "type" : "string"
38166 }
38167 }
38168 },
38169 "leaf" : 0,
38170 "path" : "/nodes/{node}/ceph/osd",
38171 "text" : "osd"
38172 },
e2d681b3
TL
38173 {
38174 "children" : [
38175 {
38176 "info" : {
38177 "DELETE" : {
e9cd3bd4 38178 "allowtoken" : 1,
e2d681b3
TL
38179 "description" : "Destroy Ceph Metadata Server",
38180 "method" : "DELETE",
38181 "name" : "destroymds",
38182 "parameters" : {
38183 "additionalProperties" : 0,
38184 "properties" : {
38185 "name" : {
38186 "description" : "The name (ID) of the mds",
38187 "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
38188 "type" : "string"
38189 },
38190 "node" : {
38191 "description" : "The cluster node name.",
38192 "format" : "pve-node",
38193 "type" : "string",
38194 "typetext" : "<string>"
38195 }
38196 }
38197 },
38198 "permissions" : {
38199 "check" : [
38200 "perm",
38201 "/",
38202 [
38203 "Sys.Modify"
38204 ]
38205 ]
38206 },
38207 "protected" : 1,
38208 "proxyto" : "node",
38209 "returns" : {
38210 "type" : "string"
38211 }
38212 },
38213 "POST" : {
e9cd3bd4 38214 "allowtoken" : 1,
e2d681b3
TL
38215 "description" : "Create Ceph Metadata Server (MDS)",
38216 "method" : "POST",
38217 "name" : "createmds",
38218 "parameters" : {
38219 "additionalProperties" : 0,
38220 "properties" : {
38221 "hotstandby" : {
38222 "default" : "0",
38223 "description" : "Determines whether a ceph-mds daemon should poll and replay the log of an active MDS. Faster switch on MDS failure, but needs more idle resources.",
38224 "optional" : 1,
38225 "type" : "boolean",
38226 "typetext" : "<boolean>"
38227 },
38228 "name" : {
38229 "default" : "nodename",
38230 "description" : "The ID for the mds, when omitted the same as the nodename",
c5aa7e14 38231 "maxLength" : 200,
e2d681b3
TL
38232 "optional" : 1,
38233 "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
38234 "type" : "string"
38235 },
38236 "node" : {
38237 "description" : "The cluster node name.",
38238 "format" : "pve-node",
38239 "type" : "string",
38240 "typetext" : "<string>"
38241 }
38242 }
38243 },
38244 "permissions" : {
38245 "check" : [
38246 "perm",
38247 "/",
38248 [
38249 "Sys.Modify"
38250 ]
38251 ]
38252 },
38253 "protected" : 1,
38254 "proxyto" : "node",
38255 "returns" : {
38256 "type" : "string"
38257 }
38258 }
38259 },
38260 "leaf" : 1,
38261 "path" : "/nodes/{node}/ceph/mds/{name}",
38262 "text" : "{name}"
38263 }
38264 ],
38265 "info" : {
38266 "GET" : {
e9cd3bd4 38267 "allowtoken" : 1,
e2d681b3
TL
38268 "description" : "MDS directory index.",
38269 "method" : "GET",
38270 "name" : "index",
38271 "parameters" : {
38272 "additionalProperties" : 0,
38273 "properties" : {
38274 "node" : {
38275 "description" : "The cluster node name.",
38276 "format" : "pve-node",
38277 "type" : "string",
38278 "typetext" : "<string>"
38279 }
38280 }
38281 },
38282 "permissions" : {
38283 "check" : [
38284 "perm",
38285 "/",
38286 [
38287 "Sys.Audit",
38288 "Datastore.Audit"
38289 ],
38290 "any",
38291 1
38292 ]
38293 },
38294 "protected" : 1,
38295 "proxyto" : "node",
38296 "returns" : {
38297 "items" : {
38298 "properties" : {
38299 "addr" : {
38300 "optional" : 1,
38301 "type" : "string"
38302 },
38303 "host" : {
38304 "optional" : 1,
38305 "type" : "string"
38306 },
38307 "name" : {
38308 "description" : "The name (ID) for the MDS"
38309 },
38310 "rank" : {
38311 "optional" : 1,
38312 "type" : "integer"
38313 },
38314 "standby_replay" : {
38315 "description" : "If true, the standby MDS is polling the active MDS for faster recovery (hot standby).",
38316 "optional" : 1,
38317 "type" : "boolean"
38318 },
38319 "state" : {
38320 "description" : "State of the MDS",
38321 "type" : "string"
38322 }
38323 },
38324 "type" : "object"
38325 },
38326 "links" : [
38327 {
38328 "href" : "{name}",
38329 "rel" : "child"
38330 }
38331 ],
38332 "type" : "array"
38333 }
38334 }
38335 },
38336 "leaf" : 0,
38337 "path" : "/nodes/{node}/ceph/mds",
38338 "text" : "mds"
38339 },
38340 {
38341 "children" : [
38342 {
38343 "info" : {
5f26e15b 38344 "DELETE" : {
e9cd3bd4 38345 "allowtoken" : 1,
5f26e15b
TL
38346 "description" : "Destroy Ceph Manager.",
38347 "method" : "DELETE",
38348 "name" : "destroymgr",
e2d681b3
TL
38349 "parameters" : {
38350 "additionalProperties" : 0,
38351 "properties" : {
5f26e15b
TL
38352 "id" : {
38353 "description" : "The ID of the manager",
38354 "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
38355 "type" : "string"
e2d681b3
TL
38356 },
38357 "node" : {
38358 "description" : "The cluster node name.",
38359 "format" : "pve-node",
38360 "type" : "string",
38361 "typetext" : "<string>"
e2d681b3
TL
38362 }
38363 }
38364 },
38365 "permissions" : {
38366 "check" : [
38367 "perm",
38368 "/",
38369 [
38370 "Sys.Modify"
38371 ]
38372 ]
38373 },
38374 "protected" : 1,
38375 "proxyto" : "node",
38376 "returns" : {
38377 "type" : "string"
38378 }
1e3f8156
TL
38379 },
38380 "POST" : {
e9cd3bd4 38381 "allowtoken" : 1,
1e3f8156
TL
38382 "description" : "Create Ceph Manager",
38383 "method" : "POST",
38384 "name" : "createmgr",
38385 "parameters" : {
38386 "additionalProperties" : 0,
38387 "properties" : {
38388 "id" : {
38389 "description" : "The ID for the manager, when omitted the same as the nodename",
c5aa7e14 38390 "maxLength" : 200,
1e3f8156
TL
38391 "optional" : 1,
38392 "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
38393 "type" : "string"
38394 },
38395 "node" : {
38396 "description" : "The cluster node name.",
38397 "format" : "pve-node",
38398 "type" : "string",
38399 "typetext" : "<string>"
38400 }
38401 }
38402 },
38403 "permissions" : {
38404 "check" : [
38405 "perm",
38406 "/",
38407 [
38408 "Sys.Modify"
38409 ]
38410 ]
38411 },
38412 "protected" : 1,
38413 "proxyto" : "node",
38414 "returns" : {
38415 "type" : "string"
38416 }
e2d681b3
TL
38417 }
38418 },
38419 "leaf" : 1,
5f26e15b
TL
38420 "path" : "/nodes/{node}/ceph/mgr/{id}",
38421 "text" : "{id}"
e2d681b3
TL
38422 }
38423 ],
38424 "info" : {
1e3f8156 38425 "GET" : {
e9cd3bd4 38426 "allowtoken" : 1,
1e3f8156
TL
38427 "description" : "MGR directory index.",
38428 "method" : "GET",
38429 "name" : "index",
e2d681b3
TL
38430 "parameters" : {
38431 "additionalProperties" : 0,
38432 "properties" : {
38433 "node" : {
38434 "description" : "The cluster node name.",
38435 "format" : "pve-node",
38436 "type" : "string",
38437 "typetext" : "<string>"
38438 }
38439 }
38440 },
38441 "permissions" : {
38442 "check" : [
38443 "perm",
38444 "/",
38445 [
1e3f8156
TL
38446 "Sys.Audit",
38447 "Datastore.Audit"
38448 ],
38449 "any",
38450 1
e2d681b3
TL
38451 ]
38452 },
38453 "protected" : 1,
5f26e15b 38454 "proxyto" : "node",
e2d681b3 38455 "returns" : {
1e3f8156
TL
38456 "items" : {
38457 "properties" : {
38458 "addr" : {
38459 "optional" : 1,
38460 "type" : "string"
38461 },
38462 "host" : {
38463 "optional" : 1,
38464 "type" : "string"
38465 },
38466 "name" : {
38467 "description" : "The name (ID) for the MGR"
38468 },
38469 "state" : {
38470 "description" : "State of the MGR",
38471 "type" : "string"
38472 }
38473 },
38474 "type" : "object"
38475 },
38476 "links" : [
38477 {
38478 "href" : "{name}",
38479 "rel" : "child"
38480 }
38481 ],
38482 "type" : "array"
e2d681b3
TL
38483 }
38484 }
38485 },
38486 "leaf" : 0,
5f26e15b
TL
38487 "path" : "/nodes/{node}/ceph/mgr",
38488 "text" : "mgr"
e2d681b3 38489 },
4d47f125 38490 {
5f26e15b
TL
38491 "children" : [
38492 {
38493 "info" : {
38494 "DELETE" : {
e9cd3bd4 38495 "allowtoken" : 1,
5f26e15b
TL
38496 "description" : "Destroy Ceph Monitor and Manager.",
38497 "method" : "DELETE",
38498 "name" : "destroymon",
38499 "parameters" : {
38500 "additionalProperties" : 0,
38501 "properties" : {
1e3f8156
TL
38502 "monid" : {
38503 "description" : "Monitor ID",
38504 "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
38505 "type" : "string"
38506 },
38507 "node" : {
38508 "description" : "The cluster node name.",
38509 "format" : "pve-node",
38510 "type" : "string",
38511 "typetext" : "<string>"
38512 }
38513 }
38514 },
38515 "permissions" : {
38516 "check" : [
38517 "perm",
38518 "/",
38519 [
38520 "Sys.Modify"
38521 ]
38522 ]
38523 },
38524 "protected" : 1,
38525 "proxyto" : "node",
38526 "returns" : {
38527 "type" : "string"
38528 }
38529 },
38530 "POST" : {
e9cd3bd4 38531 "allowtoken" : 1,
1e3f8156
TL
38532 "description" : "Create Ceph Monitor and Manager",
38533 "method" : "POST",
38534 "name" : "createmon",
38535 "parameters" : {
38536 "additionalProperties" : 0,
38537 "properties" : {
38538 "mon-address" : {
0695fdaf
TL
38539 "description" : "Overwrites autodetected monitor IP address(es). Must be in the public network(s) of Ceph.",
38540 "format" : "ip-list",
5f26e15b 38541 "optional" : 1,
1e3f8156
TL
38542 "type" : "string",
38543 "typetext" : "<string>"
5f26e15b
TL
38544 },
38545 "monid" : {
1e3f8156 38546 "description" : "The ID for the monitor, when omitted the same as the nodename",
c5aa7e14 38547 "maxLength" : 200,
1e3f8156 38548 "optional" : 1,
5f26e15b
TL
38549 "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
38550 "type" : "string"
38551 },
38552 "node" : {
38553 "description" : "The cluster node name.",
38554 "format" : "pve-node",
38555 "type" : "string",
38556 "typetext" : "<string>"
38557 }
38558 }
38559 },
38560 "permissions" : {
38561 "check" : [
38562 "perm",
38563 "/",
38564 [
38565 "Sys.Modify"
38566 ]
38567 ]
38568 },
38569 "protected" : 1,
38570 "proxyto" : "node",
38571 "returns" : {
7aacca6f 38572 "type" : "string"
56122987 38573 }
4d47f125 38574 }
56122987 38575 },
5f26e15b
TL
38576 "leaf" : 1,
38577 "path" : "/nodes/{node}/ceph/mon/{monid}",
38578 "text" : "{monid}"
38579 }
38580 ],
38581 "info" : {
38582 "GET" : {
e9cd3bd4 38583 "allowtoken" : 1,
5f26e15b
TL
38584 "description" : "Get Ceph monitor list.",
38585 "method" : "GET",
38586 "name" : "listmon",
38587 "parameters" : {
38588 "additionalProperties" : 0,
38589 "properties" : {
38590 "node" : {
38591 "description" : "The cluster node name.",
38592 "format" : "pve-node",
38593 "type" : "string",
38594 "typetext" : "<string>"
38595 }
38596 }
38597 },
4d47f125
TL
38598 "permissions" : {
38599 "check" : [
38600 "perm",
38601 "/",
38602 [
38603 "Sys.Audit",
38604 "Datastore.Audit"
38605 ],
38606 "any",
38607 1
38608 ]
56122987 38609 },
4d47f125
TL
38610 "protected" : 1,
38611 "proxyto" : "node",
38612 "returns" : {
38613 "items" : {
38614 "properties" : {
5f26e15b 38615 "addr" : {
1e3f8156
TL
38616 "optional" : 1,
38617 "type" : "string"
38618 },
9d2e98ed
TL
38619 "ceph_version" : {
38620 "optional" : 1,
38621 "type" : "string"
38622 },
38623 "ceph_version_short" : {
38624 "optional" : 1,
38625 "type" : "string"
38626 },
38627 "direxists" : {
1e3f8156 38628 "optional" : 1,
4d47f125
TL
38629 "type" : "string"
38630 },
9d2e98ed
TL
38631 "host" : {
38632 "optional" : 1,
38633 "type" : "boolean"
38634 },
5f26e15b 38635 "name" : {
4d47f125 38636 "type" : "string"
9d2e98ed
TL
38637 },
38638 "quorum" : {
38639 "optional" : 1,
38640 "type" : "boolean"
38641 },
38642 "rank" : {
38643 "optional" : 1,
38644 "type" : "integer"
38645 },
38646 "service" : {
38647 "optional" : 1,
38648 "type" : "integer"
38649 },
38650 "state" : {
38651 "optional" : 1,
38652 "type" : "string"
4d47f125 38653 }
7aacca6f 38654 },
4d47f125
TL
38655 "type" : "object"
38656 },
5f26e15b
TL
38657 "links" : [
38658 {
38659 "href" : "{name}",
38660 "rel" : "child"
38661 }
38662 ],
4d47f125
TL
38663 "type" : "array"
38664 }
4d47f125
TL
38665 }
38666 },
5f26e15b
TL
38667 "leaf" : 0,
38668 "path" : "/nodes/{node}/ceph/mon",
38669 "text" : "mon"
4d47f125
TL
38670 },
38671 {
38672 "children" : [
38673 {
38674 "info" : {
5f26e15b 38675 "POST" : {
e9cd3bd4 38676 "allowtoken" : 1,
5f26e15b
TL
38677 "description" : "Create a Ceph filesystem",
38678 "method" : "POST",
38679 "name" : "createfs",
4d47f125
TL
38680 "parameters" : {
38681 "additionalProperties" : 0,
38682 "properties" : {
5f26e15b 38683 "add-storage" : {
4d47f125 38684 "default" : 0,
5f26e15b 38685 "description" : "Configure the created CephFS as storage for this cluster.",
4d47f125
TL
38686 "optional" : 1,
38687 "type" : "boolean",
38688 "typetext" : "<boolean>"
38689 },
5f26e15b
TL
38690 "name" : {
38691 "default" : "cephfs",
38692 "description" : "The ceph filesystem name.",
38693 "optional" : 1,
38694 "type" : "string",
38695 "typetext" : "<string>"
4d47f125
TL
38696 },
38697 "node" : {
38698 "description" : "The cluster node name.",
38699 "format" : "pve-node",
38700 "type" : "string",
38701 "typetext" : "<string>"
5f26e15b
TL
38702 },
38703 "pg_num" : {
38704 "default" : 128,
38705 "description" : "Number of placement groups for the backing data pool. The metadata pool will use a quarter of this.",
38706 "maximum" : 32768,
38707 "minimum" : 8,
38708 "optional" : 1,
38709 "type" : "integer",
38710 "typetext" : "<integer> (8 - 32768)"
4d47f125
TL
38711 }
38712 }
7aacca6f 38713 },
4d47f125
TL
38714 "permissions" : {
38715 "check" : [
38716 "perm",
38717 "/",
38718 [
38719 "Sys.Modify"
38720 ]
38721 ]
7aacca6f 38722 },
4d47f125
TL
38723 "protected" : 1,
38724 "proxyto" : "node",
38725 "returns" : {
44660702 38726 "type" : "string"
4d47f125
TL
38727 }
38728 }
38729 },
38730 "leaf" : 1,
5f26e15b
TL
38731 "path" : "/nodes/{node}/ceph/fs/{name}",
38732 "text" : "{name}"
4d47f125
TL
38733 }
38734 ],
38735 "info" : {
38736 "GET" : {
e9cd3bd4 38737 "allowtoken" : 1,
5f26e15b 38738 "description" : "Directory index.",
4d47f125 38739 "method" : "GET",
5f26e15b 38740 "name" : "index",
4d47f125
TL
38741 "parameters" : {
38742 "additionalProperties" : 0,
38743 "properties" : {
38744 "node" : {
38745 "description" : "The cluster node name.",
38746 "format" : "pve-node",
38747 "type" : "string",
38748 "typetext" : "<string>"
38749 }
38750 }
38751 },
38752 "permissions" : {
38753 "check" : [
38754 "perm",
38755 "/",
38756 [
38757 "Sys.Audit",
38758 "Datastore.Audit"
38759 ],
38760 "any",
38761 1
38762 ]
38763 },
38764 "protected" : 1,
95895385 38765 "proxyto" : "node",
4d47f125
TL
38766 "returns" : {
38767 "items" : {
38768 "properties" : {
9d2e98ed
TL
38769 "data_pool" : {
38770 "description" : "The name of the data pool.",
38771 "type" : "string"
38772 },
38773 "metadata_pool" : {
38774 "description" : "The name of the metadata pool.",
38775 "type" : "string"
38776 },
38777 "name" : {
38778 "description" : "The ceph filesystem name.",
38779 "type" : "string"
38780 }
38781 },
38782 "type" : "object"
38783 },
38784 "links" : [
38785 {
38786 "href" : "{name}",
38787 "rel" : "child"
38788 }
38789 ],
38790 "type" : "array"
38791 }
38792 }
38793 },
38794 "leaf" : 0,
38795 "path" : "/nodes/{node}/ceph/fs",
38796 "text" : "fs"
38797 },
38798 {
38799 "children" : [
38800 {
38801 "children" : [
38802 {
38803 "info" : {
38804 "GET" : {
38805 "allowtoken" : 1,
38806 "description" : "Show the current pool status.",
38807 "method" : "GET",
38808 "name" : "getpool",
38809 "parameters" : {
38810 "additionalProperties" : 0,
38811 "properties" : {
38812 "name" : {
38813 "description" : "The name of the pool. It must be unique.",
38814 "type" : "string",
38815 "typetext" : "<string>"
38816 },
38817 "node" : {
38818 "description" : "The cluster node name.",
38819 "format" : "pve-node",
38820 "type" : "string",
38821 "typetext" : "<string>"
38822 },
38823 "verbose" : {
38824 "default" : 0,
38825 "description" : "If enabled, will display additional data(eg. statistics).",
38826 "optional" : 1,
38827 "type" : "boolean",
38828 "typetext" : "<boolean>"
38829 }
38830 }
38831 },
38832 "permissions" : {
38833 "check" : [
38834 "perm",
38835 "/",
38836 [
38837 "Sys.Audit",
38838 "Datastore.Audit"
38839 ],
38840 "any",
38841 1
38842 ]
38843 },
38844 "protected" : 1,
38845 "proxyto" : "node",
38846 "returns" : {
38847 "properties" : {
38848 "application" : {
38849 "default" : "rbd",
38850 "description" : "The application of the pool.",
38851 "enum" : [
38852 "rbd",
38853 "cephfs",
38854 "rgw"
38855 ],
38856 "optional" : 1,
38857 "title" : "Application",
38858 "type" : "string"
38859 },
38860 "application_list" : {
38861 "optional" : 1,
38862 "title" : "Application",
38863 "type" : "array"
38864 },
38865 "autoscale_status" : {
38866 "optional" : 1,
38867 "title" : "Autoscale Status",
38868 "type" : "object"
38869 },
38870 "crush_rule" : {
38871 "description" : "The rule to use for mapping object placement in the cluster.",
38872 "optional" : 1,
38873 "title" : "Crush Rule Name",
38874 "type" : "string"
38875 },
38876 "fast_read" : {
38877 "title" : "Fast Read",
38878 "type" : "boolean"
38879 },
38880 "hashpspool" : {
38881 "title" : "hashpspool",
38882 "type" : "boolean"
38883 },
38884 "id" : {
38885 "title" : "ID",
38886 "type" : "integer"
38887 },
38888 "min_size" : {
38889 "default" : 2,
38890 "description" : "Minimum number of replicas per object",
38891 "maximum" : 7,
38892 "minimum" : 1,
38893 "optional" : 1,
38894 "title" : "Min Size",
38895 "type" : "integer"
38896 },
38897 "name" : {
38898 "description" : "The name of the pool. It must be unique.",
38899 "title" : "Name",
38900 "type" : "string"
38901 },
38902 "nodeep-scrub" : {
38903 "title" : "nodeep-scrub",
38904 "type" : "boolean"
38905 },
38906 "nodelete" : {
38907 "title" : "nodelete",
38908 "type" : "boolean"
38909 },
38910 "nopgchange" : {
38911 "title" : "nopgchange",
38912 "type" : "boolean"
38913 },
38914 "noscrub" : {
38915 "title" : "noscrub",
38916 "type" : "boolean"
38917 },
38918 "nosizechange" : {
38919 "title" : "nosizechange",
38920 "type" : "boolean"
38921 },
38922 "pg_autoscale_mode" : {
38923 "default" : "warn",
38924 "description" : "The automatic PG scaling mode of the pool.",
38925 "enum" : [
38926 "on",
38927 "off",
38928 "warn"
38929 ],
38930 "optional" : 1,
38931 "title" : "PG Autoscale Mode",
38932 "type" : "string"
38933 },
38934 "pg_num" : {
38935 "default" : 128,
38936 "description" : "Number of placement groups.",
38937 "maximum" : 32768,
38938 "minimum" : 1,
38939 "optional" : 1,
38940 "title" : "PG Num",
38941 "type" : "integer"
38942 },
38943 "pg_num_min" : {
38944 "description" : "Minimal number of placement groups.",
38945 "maximum" : 32768,
38946 "optional" : 1,
38947 "title" : "min. PG Num",
38948 "type" : "integer"
38949 },
38950 "pgp_num" : {
38951 "title" : "PGP num",
38952 "type" : "integer"
38953 },
38954 "size" : {
38955 "default" : 3,
38956 "description" : "Number of replicas per object",
38957 "maximum" : 7,
38958 "minimum" : 1,
38959 "optional" : 1,
38960 "title" : "Size",
38961 "type" : "integer"
38962 },
38963 "statistics" : {
38964 "optional" : 1,
38965 "title" : "Statistics",
38966 "type" : "object"
38967 },
38968 "target_size" : {
38969 "description" : "The estimated target size of the pool for the PG autoscaler.",
38970 "optional" : 1,
38971 "pattern" : "^(\\d+(\\.\\d+)?)([KMGT])?$",
38972 "title" : "PG Autoscale Target Size",
38973 "type" : "string"
38974 },
38975 "target_size_ratio" : {
38976 "description" : "The estimated target ratio of the pool for the PG autoscaler.",
38977 "optional" : 1,
38978 "title" : "PG Autoscale Target Ratio",
38979 "type" : "number"
38980 },
38981 "use_gmt_hitset" : {
38982 "title" : "use_gmt_hitset",
38983 "type" : "boolean"
38984 },
38985 "write_fadvise_dontneed" : {
38986 "title" : "write_fadvise_dontneed",
38987 "type" : "boolean"
38988 }
38989 },
38990 "type" : "object"
38991 }
38992 }
38993 },
38994 "leaf" : 1,
38995 "path" : "/nodes/{node}/ceph/pool/{name}/status",
38996 "text" : "status"
38997 }
38998 ],
38999 "info" : {
39000 "DELETE" : {
39001 "allowtoken" : 1,
39002 "description" : "Destroy pool",
39003 "method" : "DELETE",
39004 "name" : "destroypool",
39005 "parameters" : {
39006 "additionalProperties" : 0,
39007 "properties" : {
39008 "force" : {
39009 "default" : 0,
39010 "description" : "If true, destroys pool even if in use",
39011 "optional" : 1,
39012 "type" : "boolean",
39013 "typetext" : "<boolean>"
39014 },
39015 "name" : {
39016 "description" : "The name of the pool. It must be unique.",
39017 "type" : "string",
39018 "typetext" : "<string>"
39019 },
39020 "node" : {
39021 "description" : "The cluster node name.",
39022 "format" : "pve-node",
39023 "type" : "string",
39024 "typetext" : "<string>"
39025 },
39026 "remove_ecprofile" : {
39027 "default" : 1,
39028 "description" : "Remove the erasure code profile. Defaults to true, if applicable.",
39029 "optional" : 1,
39030 "type" : "boolean",
39031 "typetext" : "<boolean>"
39032 },
39033 "remove_storages" : {
39034 "default" : 0,
39035 "description" : "Remove all pveceph-managed storages configured for this pool",
39036 "optional" : 1,
39037 "type" : "boolean",
39038 "typetext" : "<boolean>"
39039 }
39040 }
39041 },
39042 "permissions" : {
39043 "check" : [
39044 "perm",
39045 "/",
39046 [
39047 "Sys.Modify"
39048 ]
39049 ]
39050 },
39051 "protected" : 1,
39052 "proxyto" : "node",
39053 "returns" : {
39054 "type" : "string"
39055 }
39056 },
39057 "GET" : {
39058 "allowtoken" : 1,
39059 "description" : "Pool index.",
39060 "method" : "GET",
39061 "name" : "poolindex",
39062 "parameters" : {
39063 "additionalProperties" : 0,
39064 "properties" : {
39065 "name" : {
39066 "description" : "The name of the pool.",
39067 "type" : "string",
39068 "typetext" : "<string>"
39069 },
39070 "node" : {
39071 "description" : "The cluster node name.",
39072 "format" : "pve-node",
39073 "type" : "string",
39074 "typetext" : "<string>"
39075 }
39076 }
39077 },
39078 "permissions" : {
39079 "check" : [
39080 "perm",
39081 "/",
39082 [
39083 "Sys.Audit",
39084 "Datastore.Audit"
39085 ],
39086 "any",
39087 1
39088 ]
39089 },
39090 "returns" : {
39091 "items" : {
39092 "properties" : {},
39093 "type" : "object"
39094 },
39095 "links" : [
39096 {
39097 "href" : "{name}",
39098 "rel" : "child"
39099 }
39100 ],
39101 "type" : "array"
39102 }
39103 },
39104 "PUT" : {
39105 "allowtoken" : 1,
39106 "description" : "Change POOL settings",
39107 "method" : "PUT",
39108 "name" : "setpool",
39109 "parameters" : {
39110 "additionalProperties" : 0,
39111 "properties" : {
39112 "application" : {
39113 "description" : "The application of the pool.",
39114 "enum" : [
39115 "rbd",
39116 "cephfs",
39117 "rgw"
39118 ],
39119 "optional" : 1,
39120 "title" : "Application",
39121 "type" : "string"
39122 },
39123 "crush_rule" : {
39124 "description" : "The rule to use for mapping object placement in the cluster.",
39125 "optional" : 1,
39126 "title" : "Crush Rule Name",
39127 "type" : "string",
39128 "typetext" : "<string>"
39129 },
39130 "min_size" : {
39131 "description" : "Minimum number of replicas per object",
39132 "maximum" : 7,
39133 "minimum" : 1,
39134 "optional" : 1,
39135 "title" : "Min Size",
39136 "type" : "integer",
39137 "typetext" : "<integer> (1 - 7)"
39138 },
39139 "name" : {
39140 "description" : "The name of the pool. It must be unique.",
39141 "title" : "Name",
39142 "type" : "string",
39143 "typetext" : "<string>"
39144 },
39145 "node" : {
39146 "description" : "The cluster node name.",
39147 "format" : "pve-node",
39148 "type" : "string",
39149 "typetext" : "<string>"
39150 },
39151 "pg_autoscale_mode" : {
39152 "description" : "The automatic PG scaling mode of the pool.",
39153 "enum" : [
39154 "on",
39155 "off",
39156 "warn"
39157 ],
39158 "optional" : 1,
39159 "title" : "PG Autoscale Mode",
39160 "type" : "string"
39161 },
39162 "pg_num" : {
39163 "description" : "Number of placement groups.",
39164 "maximum" : 32768,
39165 "minimum" : 1,
39166 "optional" : 1,
39167 "title" : "PG Num",
39168 "type" : "integer",
39169 "typetext" : "<integer> (1 - 32768)"
39170 },
39171 "pg_num_min" : {
39172 "description" : "Minimal number of placement groups.",
39173 "maximum" : 32768,
39174 "optional" : 1,
39175 "title" : "min. PG Num",
39176 "type" : "integer",
39177 "typetext" : "<integer> (-N - 32768)"
39178 },
39179 "size" : {
39180 "description" : "Number of replicas per object",
39181 "maximum" : 7,
39182 "minimum" : 1,
39183 "optional" : 1,
39184 "title" : "Size",
39185 "type" : "integer",
39186 "typetext" : "<integer> (1 - 7)"
39187 },
39188 "target_size" : {
39189 "description" : "The estimated target size of the pool for the PG autoscaler.",
39190 "optional" : 1,
39191 "pattern" : "^(\\d+(\\.\\d+)?)([KMGT])?$",
39192 "title" : "PG Autoscale Target Size",
39193 "type" : "string"
39194 },
39195 "target_size_ratio" : {
39196 "description" : "The estimated target ratio of the pool for the PG autoscaler.",
39197 "optional" : 1,
39198 "title" : "PG Autoscale Target Ratio",
39199 "type" : "number",
39200 "typetext" : "<number>"
39201 }
39202 }
39203 },
39204 "permissions" : {
39205 "check" : [
39206 "perm",
39207 "/",
39208 [
39209 "Sys.Modify"
39210 ]
39211 ]
39212 },
39213 "protected" : 1,
39214 "proxyto" : "node",
39215 "returns" : {
39216 "type" : "string"
39217 }
39218 }
39219 },
39220 "leaf" : 0,
39221 "path" : "/nodes/{node}/ceph/pool/{name}",
39222 "text" : "{name}"
39223 }
39224 ],
39225 "info" : {
39226 "GET" : {
39227 "allowtoken" : 1,
39228 "description" : "List all pools and their settings (which are settable by the POST/PUT endpoints).",
39229 "method" : "GET",
39230 "name" : "lspools",
39231 "parameters" : {
39232 "additionalProperties" : 0,
39233 "properties" : {
39234 "node" : {
39235 "description" : "The cluster node name.",
39236 "format" : "pve-node",
39237 "type" : "string",
39238 "typetext" : "<string>"
39239 }
39240 }
39241 },
39242 "permissions" : {
39243 "check" : [
39244 "perm",
39245 "/",
39246 [
39247 "Sys.Audit",
39248 "Datastore.Audit"
39249 ],
39250 "any",
39251 1
39252 ]
39253 },
39254 "protected" : 1,
39255 "proxyto" : "node",
39256 "returns" : {
39257 "items" : {
39258 "properties" : {
39259 "application_metadata" : {
39260 "optional" : 1,
39261 "title" : "Associated Applications",
39262 "type" : "object"
39263 },
39264 "autoscale_status" : {
39265 "optional" : 1,
39266 "title" : "Autoscale Status",
39267 "type" : "object"
39268 },
39269 "bytes_used" : {
39270 "title" : "Used",
39271 "type" : "integer"
39272 },
39273 "crush_rule" : {
39274 "title" : "Crush Rule",
39275 "type" : "integer"
39276 },
39277 "crush_rule_name" : {
39278 "title" : "Crush Rule Name",
5f26e15b
TL
39279 "type" : "string"
39280 },
9d2e98ed
TL
39281 "min_size" : {
39282 "title" : "Min Size",
39283 "type" : "integer"
39284 },
39285 "percent_used" : {
39286 "title" : "%-Used",
39287 "type" : "number"
39288 },
39289 "pg_autoscale_mode" : {
39290 "optional" : 1,
39291 "title" : "PG Autoscale Mode",
4d47f125
TL
39292 "type" : "string"
39293 },
9d2e98ed
TL
39294 "pg_num" : {
39295 "title" : "PG Num",
39296 "type" : "integer"
39297 },
39298 "pg_num_final" : {
39299 "optional" : 1,
39300 "title" : "Optimal PG Num",
39301 "type" : "integer"
39302 },
39303 "pg_num_min" : {
39304 "optional" : 1,
39305 "title" : "min. PG Num",
39306 "type" : "integer"
39307 },
39308 "pool" : {
39309 "title" : "ID",
39310 "type" : "integer"
39311 },
39312 "pool_name" : {
39313 "title" : "Name",
39314 "type" : "string"
39315 },
39316 "size" : {
39317 "title" : "Size",
39318 "type" : "integer"
39319 },
39320 "target_size" : {
39321 "optional" : 1,
39322 "title" : "PG Autoscale Target Size",
39323 "type" : "integer"
39324 },
39325 "target_size_ratio" : {
39326 "optional" : 1,
39327 "title" : "PG Autoscale Target Ratio",
39328 "type" : "number"
39329 },
39330 "type" : {
39331 "enum" : [
39332 "replicated",
39333 "erasure",
39334 "unknown"
39335 ],
39336 "title" : "Type",
4d47f125
TL
39337 "type" : "string"
39338 }
7aacca6f 39339 },
4d47f125
TL
39340 "type" : "object"
39341 },
39342 "links" : [
39343 {
9d2e98ed 39344 "href" : "{pool_name}",
4d47f125
TL
39345 "rel" : "child"
39346 }
39347 ],
39348 "type" : "array"
39349 }
9d2e98ed
TL
39350 },
39351 "POST" : {
39352 "allowtoken" : 1,
39353 "description" : "Create Ceph pool",
39354 "method" : "POST",
39355 "name" : "createpool",
39356 "parameters" : {
39357 "additionalProperties" : 0,
39358 "properties" : {
39359 "add_storages" : {
39360 "default" : "0; for erasure coded pools: 1",
39361 "description" : "Configure VM and CT storage using the new pool.",
39362 "optional" : 1,
39363 "type" : "boolean",
39364 "typetext" : "<boolean>"
39365 },
39366 "application" : {
39367 "default" : "rbd",
39368 "description" : "The application of the pool.",
39369 "enum" : [
39370 "rbd",
39371 "cephfs",
39372 "rgw"
39373 ],
39374 "optional" : 1,
39375 "title" : "Application",
39376 "type" : "string"
39377 },
39378 "crush_rule" : {
39379 "description" : "The rule to use for mapping object placement in the cluster.",
39380 "optional" : 1,
39381 "title" : "Crush Rule Name",
39382 "type" : "string",
39383 "typetext" : "<string>"
39384 },
39385 "erasure-coding" : {
39386 "description" : "Create an erasure coded pool for RBD with an accompaning replicated pool for metadata storage. With EC, the common ceph options 'size', 'min_size' and 'crush_rule' parameters will be applied to the metadata pool.",
39387 "format" : {
39388 "device-class" : {
39389 "description" : "CRUSH device class. Will create an erasure coded pool plus a replicated pool for metadata.",
39390 "format_description" : "class",
39391 "optional" : 1,
39392 "type" : "string"
39393 },
39394 "failure-domain" : {
39395 "default" : "host",
39396 "description" : "CRUSH failure domain. Default is 'host'. Will create an erasure coded pool plus a replicated pool for metadata.",
39397 "format_description" : "domain",
39398 "optional" : 1,
39399 "type" : "string"
39400 },
39401 "k" : {
39402 "description" : "Number of data chunks. Will create an erasure coded pool plus a replicated pool for metadata.",
39403 "minimum" : 2,
39404 "type" : "integer"
39405 },
39406 "m" : {
39407 "description" : "Number of coding chunks. Will create an erasure coded pool plus a replicated pool for metadata.",
39408 "minimum" : 1,
39409 "type" : "integer"
39410 },
39411 "profile" : {
39412 "description" : "Override the erasure code (EC) profile to use. Will create an erasure coded pool plus a replicated pool for metadata.",
39413 "format_description" : "profile",
39414 "optional" : 1,
39415 "type" : "string"
39416 }
39417 },
39418 "optional" : 1,
39419 "type" : "string",
39420 "typetext" : "k=<integer> ,m=<integer> [,device-class=<class>] [,failure-domain=<domain>] [,profile=<profile>]"
39421 },
39422 "min_size" : {
39423 "default" : 2,
39424 "description" : "Minimum number of replicas per object",
39425 "maximum" : 7,
39426 "minimum" : 1,
39427 "optional" : 1,
39428 "title" : "Min Size",
39429 "type" : "integer",
39430 "typetext" : "<integer> (1 - 7)"
39431 },
39432 "name" : {
39433 "description" : "The name of the pool. It must be unique.",
39434 "title" : "Name",
39435 "type" : "string",
39436 "typetext" : "<string>"
39437 },
39438 "node" : {
39439 "description" : "The cluster node name.",
39440 "format" : "pve-node",
39441 "type" : "string",
39442 "typetext" : "<string>"
39443 },
39444 "pg_autoscale_mode" : {
39445 "default" : "warn",
39446 "description" : "The automatic PG scaling mode of the pool.",
39447 "enum" : [
39448 "on",
39449 "off",
39450 "warn"
39451 ],
39452 "optional" : 1,
39453 "title" : "PG Autoscale Mode",
39454 "type" : "string"
39455 },
39456 "pg_num" : {
39457 "default" : 128,
39458 "description" : "Number of placement groups.",
39459 "maximum" : 32768,
39460 "minimum" : 1,
39461 "optional" : 1,
39462 "title" : "PG Num",
39463 "type" : "integer",
39464 "typetext" : "<integer> (1 - 32768)"
39465 },
39466 "pg_num_min" : {
39467 "description" : "Minimal number of placement groups.",
39468 "maximum" : 32768,
39469 "optional" : 1,
39470 "title" : "min. PG Num",
39471 "type" : "integer",
39472 "typetext" : "<integer> (-N - 32768)"
39473 },
39474 "size" : {
39475 "default" : 3,
39476 "description" : "Number of replicas per object",
39477 "maximum" : 7,
39478 "minimum" : 1,
39479 "optional" : 1,
39480 "title" : "Size",
39481 "type" : "integer",
39482 "typetext" : "<integer> (1 - 7)"
39483 },
39484 "target_size" : {
39485 "description" : "The estimated target size of the pool for the PG autoscaler.",
39486 "optional" : 1,
39487 "pattern" : "^(\\d+(\\.\\d+)?)([KMGT])?$",
39488 "title" : "PG Autoscale Target Size",
39489 "type" : "string"
39490 },
39491 "target_size_ratio" : {
39492 "description" : "The estimated target ratio of the pool for the PG autoscaler.",
39493 "optional" : 1,
39494 "title" : "PG Autoscale Target Ratio",
39495 "type" : "number",
39496 "typetext" : "<number>"
39497 }
39498 }
39499 },
39500 "permissions" : {
39501 "check" : [
39502 "perm",
39503 "/",
39504 [
39505 "Sys.Modify"
39506 ]
39507 ]
39508 },
39509 "protected" : 1,
39510 "proxyto" : "node",
39511 "returns" : {
39512 "type" : "string"
39513 }
5f26e15b
TL
39514 }
39515 },
39516 "leaf" : 0,
9d2e98ed
TL
39517 "path" : "/nodes/{node}/ceph/pool",
39518 "text" : "pool"
5f26e15b 39519 },
4d47f125
TL
39520 {
39521 "info" : {
39522 "POST" : {
e9cd3bd4 39523 "allowtoken" : 1,
4d47f125
TL
39524 "description" : "Create initial ceph default configuration and setup symlinks.",
39525 "method" : "POST",
39526 "name" : "init",
39527 "parameters" : {
39528 "additionalProperties" : 0,
39529 "properties" : {
e2d681b3
TL
39530 "cluster-network" : {
39531 "description" : "Declare a separate cluster network, OSDs will routeheartbeat, object replication and recovery traffic over it",
39532 "format" : "CIDR",
39533 "maxLength" : 128,
39534 "optional" : 1,
39535 "requires" : "network",
39536 "type" : "string",
39537 "typetext" : "<string>"
39538 },
4d47f125
TL
39539 "disable_cephx" : {
39540 "default" : 0,
1e3f8156 39541 "description" : "Disable cephx authentication.\n\nWARNING: cephx is a security feature protecting against man-in-the-middle attacks. Only consider disabling cephx if your network is private!",
56122987 39542 "optional" : 1,
4d47f125
TL
39543 "type" : "boolean",
39544 "typetext" : "<boolean>"
56122987 39545 },
4d47f125
TL
39546 "min_size" : {
39547 "default" : 2,
39548 "description" : "Minimum number of available replicas per object to allow I/O",
39549 "maximum" : 7,
39550 "minimum" : 1,
7aacca6f 39551 "optional" : 1,
4d47f125
TL
39552 "type" : "integer",
39553 "typetext" : "<integer> (1 - 7)"
7aacca6f 39554 },
4d47f125
TL
39555 "network" : {
39556 "description" : "Use specific network for all ceph related traffic",
39557 "format" : "CIDR",
39558 "maxLength" : 128,
5d9c884c 39559 "optional" : 1,
4d47f125
TL
39560 "type" : "string",
39561 "typetext" : "<string>"
5d9c884c 39562 },
4d47f125
TL
39563 "node" : {
39564 "description" : "The cluster node name.",
39565 "format" : "pve-node",
39566 "type" : "string",
39567 "typetext" : "<string>"
7aacca6f 39568 },
4d47f125
TL
39569 "pg_bits" : {
39570 "default" : 6,
fa22697b 39571 "description" : "Placement group bits, used to specify the default number of placement groups.\n\nDepreacted. This setting was deprecated in recent Ceph versions.",
4d47f125
TL
39572 "maximum" : 14,
39573 "minimum" : 6,
de0983cb 39574 "optional" : 1,
4d47f125
TL
39575 "type" : "integer",
39576 "typetext" : "<integer> (6 - 14)"
de0983cb 39577 },
44660702 39578 "size" : {
4d47f125
TL
39579 "default" : 3,
39580 "description" : "Targeted number of replicas per object",
39581 "maximum" : 7,
39582 "minimum" : 1,
7aacca6f 39583 "optional" : 1,
4d47f125
TL
39584 "type" : "integer",
39585 "typetext" : "<integer> (1 - 7)"
56122987 39586 }
4d47f125 39587 }
44660702 39588 },
4d47f125
TL
39589 "permissions" : {
39590 "check" : [
39591 "perm",
39592 "/",
39593 [
39594 "Sys.Modify"
39595 ]
39596 ]
5da3d723 39597 },
4d47f125
TL
39598 "protected" : 1,
39599 "proxyto" : "node",
39600 "returns" : {
39601 "type" : "null"
39602 }
39603 }
39604 },
39605 "leaf" : 1,
39606 "path" : "/nodes/{node}/ceph/init",
39607 "text" : "init"
39608 },
4d47f125
TL
39609 {
39610 "info" : {
39611 "POST" : {
e9cd3bd4 39612 "allowtoken" : 1,
4d47f125
TL
39613 "description" : "Stop ceph services.",
39614 "method" : "POST",
39615 "name" : "stop",
39616 "parameters" : {
39617 "additionalProperties" : 0,
39618 "properties" : {
39619 "node" : {
39620 "description" : "The cluster node name.",
39621 "format" : "pve-node",
39622 "type" : "string",
39623 "typetext" : "<string>"
39624 },
39625 "service" : {
e2d681b3 39626 "default" : "ceph.target",
4d47f125
TL
39627 "description" : "Ceph service name.",
39628 "optional" : 1,
c5aa7e14 39629 "pattern" : "(ceph|mon|mds|osd|mgr)(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?)?",
4d47f125
TL
39630 "type" : "string"
39631 }
39632 }
7aacca6f 39633 },
4d47f125
TL
39634 "permissions" : {
39635 "check" : [
39636 "perm",
39637 "/",
39638 [
39639 "Sys.Modify"
39640 ]
39641 ]
7aacca6f 39642 },
4d47f125
TL
39643 "protected" : 1,
39644 "proxyto" : "node",
39645 "returns" : {
39646 "type" : "string"
39647 }
39648 }
39649 },
39650 "leaf" : 1,
39651 "path" : "/nodes/{node}/ceph/stop",
39652 "text" : "stop"
39653 },
39654 {
39655 "info" : {
39656 "POST" : {
e9cd3bd4 39657 "allowtoken" : 1,
4d47f125
TL
39658 "description" : "Start ceph services.",
39659 "method" : "POST",
39660 "name" : "start",
39661 "parameters" : {
39662 "additionalProperties" : 0,
39663 "properties" : {
39664 "node" : {
39665 "description" : "The cluster node name.",
39666 "format" : "pve-node",
39667 "type" : "string",
39668 "typetext" : "<string>"
39669 },
39670 "service" : {
e2d681b3 39671 "default" : "ceph.target",
4d47f125
TL
39672 "description" : "Ceph service name.",
39673 "optional" : 1,
c5aa7e14 39674 "pattern" : "(ceph|mon|mds|osd|mgr)(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?)?",
4d47f125
TL
39675 "type" : "string"
39676 }
39677 }
44660702 39678 },
4d47f125
TL
39679 "permissions" : {
39680 "check" : [
39681 "perm",
39682 "/",
39683 [
39684 "Sys.Modify"
39685 ]
39686 ]
44660702 39687 },
4d47f125
TL
39688 "protected" : 1,
39689 "proxyto" : "node",
39690 "returns" : {
39691 "type" : "string"
44660702 39692 }
7aacca6f
DM
39693 }
39694 },
4d47f125
TL
39695 "leaf" : 1,
39696 "path" : "/nodes/{node}/ceph/start",
39697 "text" : "start"
39698 },
e2d681b3
TL
39699 {
39700 "info" : {
39701 "POST" : {
e9cd3bd4 39702 "allowtoken" : 1,
e2d681b3
TL
39703 "description" : "Restart ceph services.",
39704 "method" : "POST",
39705 "name" : "restart",
39706 "parameters" : {
39707 "additionalProperties" : 0,
39708 "properties" : {
39709 "node" : {
39710 "description" : "The cluster node name.",
39711 "format" : "pve-node",
39712 "type" : "string",
39713 "typetext" : "<string>"
39714 },
39715 "service" : {
39716 "default" : "ceph.target",
39717 "description" : "Ceph service name.",
39718 "optional" : 1,
c5aa7e14 39719 "pattern" : "(mon|mds|osd|mgr)(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?)?",
e2d681b3
TL
39720 "type" : "string"
39721 }
39722 }
39723 },
39724 "permissions" : {
39725 "check" : [
39726 "perm",
39727 "/",
39728 [
39729 "Sys.Modify"
39730 ]
39731 ]
39732 },
39733 "protected" : 1,
39734 "proxyto" : "node",
39735 "returns" : {
39736 "type" : "string"
39737 }
39738 }
39739 },
39740 "leaf" : 1,
39741 "path" : "/nodes/{node}/ceph/restart",
39742 "text" : "restart"
39743 },
4d47f125
TL
39744 {
39745 "info" : {
39746 "GET" : {
e9cd3bd4 39747 "allowtoken" : 1,
4d47f125
TL
39748 "description" : "Get ceph status.",
39749 "method" : "GET",
39750 "name" : "status",
39751 "parameters" : {
39752 "additionalProperties" : 0,
39753 "properties" : {
39754 "node" : {
39755 "description" : "The cluster node name.",
39756 "format" : "pve-node",
39757 "type" : "string",
39758 "typetext" : "<string>"
39759 }
39760 }
39761 },
39762 "permissions" : {
39763 "check" : [
39764 "perm",
39765 "/",
39766 [
39767 "Sys.Audit",
39768 "Datastore.Audit"
39769 ],
39770 "any",
39771 1
39772 ]
39773 },
39774 "protected" : 1,
39775 "proxyto" : "node",
39776 "returns" : {
d2656385 39777 "type" : "object"
44660702 39778 }
56122987 39779 }
44660702 39780 },
d2656385
TL
39781 "leaf" : 1,
39782 "path" : "/nodes/{node}/ceph/status",
39783 "text" : "status"
7aacca6f 39784 },
56122987 39785 {
56122987
DM
39786 "info" : {
39787 "GET" : {
e9cd3bd4 39788 "allowtoken" : 1,
4d47f125 39789 "description" : "Get OSD crush map",
44660702 39790 "method" : "GET",
4d47f125 39791 "name" : "crush",
56122987 39792 "parameters" : {
7aacca6f 39793 "additionalProperties" : 0,
56122987 39794 "properties" : {
56122987 39795 "node" : {
7aacca6f 39796 "description" : "The cluster node name.",
44660702 39797 "format" : "pve-node",
013dc89f
DM
39798 "type" : "string",
39799 "typetext" : "<string>"
56122987 39800 }
7aacca6f 39801 }
56122987 39802 },
56122987
DM
39803 "permissions" : {
39804 "check" : [
39805 "perm",
39806 "/",
39807 [
39808 "Sys.Audit",
39809 "Datastore.Audit"
39810 ],
39811 "any",
39812 1
39813 ]
44660702 39814 },
4d47f125
TL
39815 "protected" : 1,
39816 "proxyto" : "node",
44660702
DM
39817 "returns" : {
39818 "type" : "string"
7aacca6f
DM
39819 }
39820 }
44660702
DM
39821 },
39822 "leaf" : 1,
4d47f125
TL
39823 "path" : "/nodes/{node}/ceph/crush",
39824 "text" : "crush"
7aacca6f
DM
39825 },
39826 {
7aacca6f
DM
39827 "info" : {
39828 "GET" : {
e9cd3bd4 39829 "allowtoken" : 1,
4d47f125 39830 "description" : "Read ceph log",
7aacca6f 39831 "method" : "GET",
4d47f125 39832 "name" : "log",
7aacca6f
DM
39833 "parameters" : {
39834 "additionalProperties" : 0,
39835 "properties" : {
4d47f125
TL
39836 "limit" : {
39837 "minimum" : 0,
39838 "optional" : 1,
39839 "type" : "integer",
39840 "typetext" : "<integer> (0 - N)"
39841 },
7aacca6f 39842 "node" : {
7aacca6f 39843 "description" : "The cluster node name.",
44660702 39844 "format" : "pve-node",
013dc89f
DM
39845 "type" : "string",
39846 "typetext" : "<string>"
4d47f125
TL
39847 },
39848 "start" : {
39849 "minimum" : 0,
39850 "optional" : 1,
39851 "type" : "integer",
39852 "typetext" : "<integer> (0 - N)"
7aacca6f
DM
39853 }
39854 }
39855 },
44660702
DM
39856 "permissions" : {
39857 "check" : [
39858 "perm",
4d47f125 39859 "/nodes/{node}",
44660702 39860 [
4d47f125
TL
39861 "Sys.Syslog"
39862 ]
44660702
DM
39863 ]
39864 },
7aacca6f 39865 "protected" : 1,
44660702 39866 "proxyto" : "node",
7aacca6f
DM
39867 "returns" : {
39868 "items" : {
39869 "properties" : {
4d47f125
TL
39870 "n" : {
39871 "description" : "Line number",
39872 "type" : "integer"
56122987 39873 },
4d47f125
TL
39874 "t" : {
39875 "description" : "Line text",
56122987
DM
39876 "type" : "string"
39877 }
7aacca6f
DM
39878 },
39879 "type" : "object"
56122987
DM
39880 },
39881 "type" : "array"
44660702 39882 }
4d47f125
TL
39883 }
39884 },
39885 "leaf" : 1,
39886 "path" : "/nodes/{node}/ceph/log",
39887 "text" : "log"
39888 },
39889 {
39890 "info" : {
39891 "GET" : {
e9cd3bd4 39892 "allowtoken" : 1,
4d47f125
TL
39893 "description" : "List ceph rules.",
39894 "method" : "GET",
39895 "name" : "rules",
44660702
DM
39896 "parameters" : {
39897 "additionalProperties" : 0,
39898 "properties" : {
39899 "node" : {
39900 "description" : "The cluster node name.",
39901 "format" : "pve-node",
013dc89f
DM
39902 "type" : "string",
39903 "typetext" : "<string>"
44660702
DM
39904 }
39905 }
39906 },
7aacca6f
DM
39907 "permissions" : {
39908 "check" : [
39909 "perm",
39910 "/",
39911 [
4d47f125
TL
39912 "Sys.Audit",
39913 "Datastore.Audit"
39914 ],
39915 "any",
39916 1
7aacca6f
DM
39917 ]
39918 },
44660702 39919 "protected" : 1,
7aacca6f 39920 "proxyto" : "node",
56122987 39921 "returns" : {
4d47f125 39922 "items" : {
9d2e98ed
TL
39923 "properties" : {
39924 "name" : {
39925 "description" : "Name of the CRUSH rule.",
39926 "type" : "string"
39927 }
39928 },
4d47f125
TL
39929 "type" : "object"
39930 },
39931 "links" : [
39932 {
39933 "href" : "{name}",
39934 "rel" : "child"
39935 }
39936 ],
39937 "type" : "array"
44660702 39938 }
56122987 39939 }
44660702 39940 },
4d47f125
TL
39941 "leaf" : 1,
39942 "path" : "/nodes/{node}/ceph/rules",
39943 "text" : "rules"
81a3384d
TL
39944 },
39945 {
39946 "info" : {
39947 "GET" : {
39948 "allowtoken" : 1,
39949 "description" : "Heuristical check if it is safe to perform an action.",
39950 "method" : "GET",
39951 "name" : "cmd_safety",
39952 "parameters" : {
39953 "additionalProperties" : 0,
39954 "properties" : {
39955 "action" : {
39956 "description" : "Action to check",
39957 "enum" : [
39958 "stop",
39959 "destroy"
39960 ],
39961 "type" : "string"
39962 },
39963 "id" : {
39964 "description" : "ID of the service",
39965 "type" : "string",
39966 "typetext" : "<string>"
39967 },
39968 "node" : {
39969 "description" : "The cluster node name.",
39970 "format" : "pve-node",
39971 "type" : "string",
39972 "typetext" : "<string>"
39973 },
39974 "service" : {
39975 "description" : "Service type",
39976 "enum" : [
39977 "osd",
39978 "mon",
39979 "mds"
39980 ],
39981 "type" : "string"
39982 }
39983 }
39984 },
39985 "permissions" : {
39986 "check" : [
39987 "perm",
39988 "/",
39989 [
9d2e98ed 39990 "Sys.Audit"
81a3384d
TL
39991 ]
39992 ]
39993 },
39994 "protected" : 1,
39995 "proxyto" : "node",
39996 "returns" : {
39997 "properties" : {
39998 "safe" : {
39999 "description" : "If it is safe to run the command.",
40000 "type" : "boolean"
40001 },
40002 "status" : {
40003 "description" : "Status message given by Ceph.",
40004 "optional" : 1,
40005 "type" : "string"
40006 }
40007 },
40008 "type" : "object"
40009 }
40010 }
40011 },
40012 "leaf" : 1,
40013 "path" : "/nodes/{node}/ceph/cmd-safety",
40014 "text" : "cmd-safety"
4d47f125
TL
40015 }
40016 ],
40017 "info" : {
40018 "GET" : {
e9cd3bd4 40019 "allowtoken" : 1,
4d47f125
TL
40020 "description" : "Directory index.",
40021 "method" : "GET",
40022 "name" : "index",
40023 "parameters" : {
40024 "additionalProperties" : 0,
40025 "properties" : {
40026 "node" : {
40027 "description" : "The cluster node name.",
40028 "format" : "pve-node",
40029 "type" : "string",
40030 "typetext" : "<string>"
40031 }
40032 }
40033 },
40034 "permissions" : {
40035 "check" : [
40036 "perm",
40037 "/",
40038 [
40039 "Sys.Audit",
40040 "Datastore.Audit"
40041 ],
40042 "any",
40043 1
40044 ]
40045 },
40046 "returns" : {
40047 "items" : {
40048 "properties" : {},
40049 "type" : "object"
40050 },
40051 "links" : [
40052 {
40053 "href" : "{name}",
40054 "rel" : "child"
40055 }
40056 ],
40057 "type" : "array"
40058 }
40059 }
40060 },
40061 "leaf" : 0,
40062 "path" : "/nodes/{node}/ceph",
40063 "text" : "ceph"
40064 },
40065 {
40066 "children" : [
e7084ef7
TL
40067 {
40068 "info" : {
40069 "GET" : {
40070 "allowtoken" : 1,
40071 "description" : "Get the currently configured vzdump defaults.",
40072 "method" : "GET",
40073 "name" : "defaults",
40074 "parameters" : {
40075 "additionalProperties" : 0,
40076 "properties" : {
40077 "node" : {
40078 "description" : "The cluster node name.",
40079 "format" : "pve-node",
40080 "type" : "string",
40081 "typetext" : "<string>"
40082 },
40083 "storage" : {
40084 "description" : "The storage identifier.",
40085 "format" : "pve-storage-id",
907e4bc3 40086 "format_description" : "storage ID",
e7084ef7
TL
40087 "optional" : 1,
40088 "type" : "string",
907e4bc3 40089 "typetext" : "<storage ID>"
e7084ef7
TL
40090 }
40091 }
40092 },
40093 "permissions" : {
40094 "description" : "The user needs 'Datastore.Audit' or 'Datastore.AllocateSpace' permissions for the specified storage (or default storage if none specified). Some properties are only returned when the user has 'Sys.Audit' permissions for the node.",
40095 "user" : "all"
40096 },
40097 "proxyto" : "node",
40098 "returns" : {
40099 "additionalProperties" : 0,
40100 "properties" : {
40101 "all" : {
40102 "default" : 0,
40103 "description" : "Backup all known guest systems on this host.",
40104 "optional" : 1,
40105 "type" : "boolean"
40106 },
40107 "bwlimit" : {
40108 "default" : 0,
4a407cfd 40109 "description" : "Limit I/O bandwidth (in KiB/s).",
e7084ef7
TL
40110 "minimum" : 0,
40111 "optional" : 1,
40112 "type" : "integer"
40113 },
40114 "compress" : {
40115 "default" : "0",
40116 "description" : "Compress dump file.",
40117 "enum" : [
40118 "0",
40119 "1",
40120 "gzip",
40121 "lzo",
40122 "zstd"
40123 ],
40124 "optional" : 1,
40125 "type" : "string"
40126 },
40127 "dumpdir" : {
40128 "description" : "Store resulting files to specified directory.",
40129 "optional" : 1,
40130 "type" : "string"
40131 },
40132 "exclude" : {
40133 "description" : "Exclude specified guest systems (assumes --all)",
40134 "format" : "pve-vmid-list",
40135 "optional" : 1,
40136 "type" : "string"
40137 },
40138 "exclude-path" : {
c6d5bae8 40139 "description" : "Exclude certain files/directories (shell globs). Paths starting with '/' are anchored to the container's root, other paths match relative to each subdirectory.",
4a407cfd
TL
40140 "items" : {
40141 "type" : "string"
40142 },
e7084ef7 40143 "optional" : 1,
4a407cfd 40144 "type" : "array"
e7084ef7 40145 },
907e4bc3
TL
40146 "fleecing" : {
40147 "description" : "Options for backup fleecing (VM only).",
40148 "format" : "backup-fleecing",
40149 "optional" : 1,
40150 "type" : "string"
40151 },
e7084ef7
TL
40152 "ionice" : {
40153 "default" : 7,
159464a9 40154 "description" : "Set IO priority when using the BFQ scheduler. For snapshot and suspend mode backups of VMs, this only affects the compressor. A value of 8 means the idle priority is used, otherwise the best-effort priority is used with the specified value.",
e7084ef7
TL
40155 "maximum" : 8,
40156 "minimum" : 0,
40157 "optional" : 1,
40158 "type" : "integer"
40159 },
40160 "lockwait" : {
40161 "default" : 180,
40162 "description" : "Maximal time to wait for the global lock (minutes).",
40163 "minimum" : 0,
40164 "optional" : 1,
40165 "type" : "integer"
40166 },
40167 "mailnotification" : {
40168 "default" : "always",
c6d5bae8 40169 "description" : "Deprecated: use notification targets/matchers instead. Specify when to send a notification mail",
e7084ef7
TL
40170 "enum" : [
40171 "always",
40172 "failure"
40173 ],
40174 "optional" : 1,
40175 "type" : "string"
40176 },
40177 "mailto" : {
c6d5bae8 40178 "description" : "Deprecated: Use notification targets/matchers instead. Comma-separated list of email addresses or users that should receive email notifications.",
e7084ef7
TL
40179 "format" : "email-or-username-list",
40180 "optional" : 1,
40181 "type" : "string"
40182 },
40183 "maxfiles" : {
0695fdaf 40184 "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per guest system.",
e7084ef7
TL
40185 "minimum" : 1,
40186 "optional" : 1,
40187 "type" : "integer"
40188 },
40189 "mode" : {
40190 "default" : "snapshot",
40191 "description" : "Backup mode.",
40192 "enum" : [
40193 "snapshot",
40194 "suspend",
40195 "stop"
40196 ],
40197 "optional" : 1,
40198 "type" : "string"
40199 },
40200 "node" : {
40201 "description" : "Only run if executed on this node.",
40202 "format" : "pve-node",
40203 "optional" : 1,
40204 "type" : "string"
40205 },
7af2edf9 40206 "notes-template" : {
4e7f60c2
TL
40207 "description" : "Template string for generating notes for the backup(s). It can contain variables which will be replaced by their values. Currently supported are {{cluster}}, {{guestname}}, {{node}}, and {{vmid}}, but more might be added in the future. Needs to be a single line, newline and backslash need to be escaped as '\\n' and '\\\\' respectively.",
40208 "maxLength" : 1024,
7af2edf9
TL
40209 "optional" : 1,
40210 "requires" : "storage",
40211 "type" : "string"
40212 },
c6d5bae8
TL
40213 "notification-mode" : {
40214 "default" : "auto",
40215 "description" : "Determine which notification system to use. If set to 'legacy-sendmail', vzdump will consider the mailto/mailnotification parameters and send emails to the specified address(es) via the 'sendmail' command. If set to 'notification-system', a notification will be sent via PVE's notification system, and the mailto and mailnotification will be ignored. If set to 'auto' (default setting), an email will be sent if mailto is set, and the notification system will be used if not.",
40216 "enum" : [
40217 "auto",
40218 "legacy-sendmail",
40219 "notification-system"
40220 ],
40221 "optional" : 1,
40222 "type" : "string"
40223 },
82551b2b
TL
40224 "notification-policy" : {
40225 "default" : "always",
c6d5bae8 40226 "description" : "Deprecated: Do not use",
82551b2b
TL
40227 "enum" : [
40228 "always",
40229 "failure",
40230 "never"
40231 ],
40232 "optional" : 1,
40233 "type" : "string"
40234 },
40235 "notification-target" : {
c6d5bae8 40236 "description" : "Deprecated: Do not use",
82551b2b
TL
40237 "format" : "pve-configid",
40238 "optional" : 1,
40239 "type" : "string"
40240 },
4e7f60c2
TL
40241 "performance" : {
40242 "description" : "Other performance-related settings.",
40243 "format" : "backup-performance",
40244 "optional" : 1,
40245 "type" : "string"
40246 },
e7084ef7
TL
40247 "pigz" : {
40248 "default" : 0,
40249 "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count.",
40250 "optional" : 1,
40251 "type" : "integer"
40252 },
40253 "pool" : {
40254 "description" : "Backup all known guest systems included in the specified pool.",
40255 "optional" : 1,
40256 "type" : "string"
40257 },
7af2edf9
TL
40258 "protected" : {
40259 "description" : "If true, mark backup(s) as protected.",
40260 "optional" : 1,
40261 "requires" : "storage",
40262 "type" : "boolean"
40263 },
e7084ef7 40264 "prune-backups" : {
0695fdaf 40265 "default" : "keep-all=1",
e7084ef7
TL
40266 "description" : "Use these retention options instead of those from the storage configuration.",
40267 "format" : "prune-backups",
40268 "optional" : 1,
40269 "type" : "string"
40270 },
40271 "quiet" : {
40272 "default" : 0,
40273 "description" : "Be quiet.",
40274 "optional" : 1,
40275 "type" : "boolean"
40276 },
40277 "remove" : {
40278 "default" : 1,
0695fdaf 40279 "description" : "Prune older backups according to 'prune-backups'.",
e7084ef7
TL
40280 "optional" : 1,
40281 "type" : "boolean"
40282 },
40283 "script" : {
40284 "description" : "Use specified hook script.",
40285 "optional" : 1,
40286 "type" : "string"
40287 },
e7084ef7
TL
40288 "stdexcludes" : {
40289 "default" : 1,
40290 "description" : "Exclude temporary files and logs.",
40291 "optional" : 1,
40292 "type" : "boolean"
40293 },
40294 "stop" : {
40295 "default" : 0,
40296 "description" : "Stop running backup jobs on this host.",
40297 "optional" : 1,
40298 "type" : "boolean"
40299 },
40300 "stopwait" : {
40301 "default" : 10,
40302 "description" : "Maximal time to wait until a guest system is stopped (minutes).",
40303 "minimum" : 0,
40304 "optional" : 1,
40305 "type" : "integer"
40306 },
40307 "storage" : {
40308 "description" : "Store resulting file to this storage.",
40309 "format" : "pve-storage-id",
907e4bc3 40310 "format_description" : "storage ID",
e7084ef7
TL
40311 "optional" : 1,
40312 "type" : "string"
40313 },
40314 "tmpdir" : {
40315 "description" : "Store temporary files to specified directory.",
40316 "optional" : 1,
40317 "type" : "string"
40318 },
40319 "vmid" : {
40320 "description" : "The ID of the guest system you want to backup.",
40321 "format" : "pve-vmid-list",
40322 "optional" : 1,
40323 "type" : "string"
40324 },
40325 "zstd" : {
40326 "default" : 1,
c6d5bae8 40327 "description" : "Zstd threads. N=0 uses half of the available cores, if N is set to a value bigger than 0, N is used as thread count.",
e7084ef7
TL
40328 "optional" : 1,
40329 "type" : "integer"
40330 }
40331 },
40332 "type" : "object"
40333 }
40334 }
40335 },
40336 "leaf" : 1,
40337 "path" : "/nodes/{node}/vzdump/defaults",
40338 "text" : "defaults"
40339 },
56122987
DM
40340 {
40341 "info" : {
4d47f125 40342 "GET" : {
e9cd3bd4 40343 "allowtoken" : 1,
4d47f125
TL
40344 "description" : "Extract configuration from vzdump backup archive.",
40345 "method" : "GET",
40346 "name" : "extractconfig",
40347 "parameters" : {
40348 "additionalProperties" : 0,
40349 "properties" : {
44660702
DM
40350 "node" : {
40351 "description" : "The cluster node name.",
40352 "format" : "pve-node",
013dc89f
DM
40353 "type" : "string",
40354 "typetext" : "<string>"
44660702 40355 },
4d47f125
TL
40356 "volume" : {
40357 "description" : "Volume identifier",
40358 "type" : "string",
40359 "typetext" : "<string>"
44660702
DM
40360 }
40361 }
7aacca6f 40362 },
56122987 40363 "permissions" : {
4d47f125
TL
40364 "description" : "The user needs 'VM.Backup' permissions on the backed up guest ID, and 'Datastore.AllocateSpace' on the backup storage.",
40365 "user" : "all"
56122987 40366 },
7aacca6f 40367 "protected" : 1,
44660702
DM
40368 "proxyto" : "node",
40369 "returns" : {
4d47f125 40370 "type" : "string"
7aacca6f
DM
40371 }
40372 }
40373 },
7aacca6f 40374 "leaf" : 1,
4d47f125
TL
40375 "path" : "/nodes/{node}/vzdump/extractconfig",
40376 "text" : "extractconfig"
40377 }
40378 ],
40379 "info" : {
40380 "POST" : {
e9cd3bd4 40381 "allowtoken" : 1,
4d47f125
TL
40382 "description" : "Create backup.",
40383 "method" : "POST",
40384 "name" : "vzdump",
40385 "parameters" : {
40386 "additionalProperties" : 0,
40387 "properties" : {
40388 "all" : {
40389 "default" : 0,
40390 "description" : "Backup all known guest systems on this host.",
40391 "optional" : 1,
40392 "type" : "boolean",
40393 "typetext" : "<boolean>"
40394 },
40395 "bwlimit" : {
40396 "default" : 0,
4a407cfd 40397 "description" : "Limit I/O bandwidth (in KiB/s).",
4d47f125
TL
40398 "minimum" : 0,
40399 "optional" : 1,
40400 "type" : "integer",
40401 "typetext" : "<integer> (0 - N)"
40402 },
40403 "compress" : {
40404 "default" : "0",
40405 "description" : "Compress dump file.",
40406 "enum" : [
40407 "0",
40408 "1",
40409 "gzip",
c5aa7e14
TL
40410 "lzo",
40411 "zstd"
4d47f125
TL
40412 ],
40413 "optional" : 1,
40414 "type" : "string"
40415 },
40416 "dumpdir" : {
40417 "description" : "Store resulting files to specified directory.",
40418 "optional" : 1,
40419 "type" : "string",
40420 "typetext" : "<string>"
40421 },
40422 "exclude" : {
40423 "description" : "Exclude specified guest systems (assumes --all)",
40424 "format" : "pve-vmid-list",
40425 "optional" : 1,
40426 "type" : "string",
40427 "typetext" : "<string>"
40428 },
40429 "exclude-path" : {
c6d5bae8 40430 "description" : "Exclude certain files/directories (shell globs). Paths starting with '/' are anchored to the container's root, other paths match relative to each subdirectory.",
4a407cfd
TL
40431 "items" : {
40432 "type" : "string"
40433 },
4d47f125 40434 "optional" : 1,
4a407cfd
TL
40435 "type" : "array",
40436 "typetext" : "<array>"
4d47f125 40437 },
907e4bc3
TL
40438 "fleecing" : {
40439 "description" : "Options for backup fleecing (VM only).",
40440 "format" : "backup-fleecing",
40441 "optional" : 1,
40442 "type" : "string",
40443 "typetext" : "[[enabled=]<1|0>] [,storage=<storage ID>]"
40444 },
4d47f125
TL
40445 "ionice" : {
40446 "default" : 7,
159464a9 40447 "description" : "Set IO priority when using the BFQ scheduler. For snapshot and suspend mode backups of VMs, this only affects the compressor. A value of 8 means the idle priority is used, otherwise the best-effort priority is used with the specified value.",
4d47f125
TL
40448 "maximum" : 8,
40449 "minimum" : 0,
40450 "optional" : 1,
40451 "type" : "integer",
40452 "typetext" : "<integer> (0 - 8)"
40453 },
40454 "lockwait" : {
40455 "default" : 180,
40456 "description" : "Maximal time to wait for the global lock (minutes).",
40457 "minimum" : 0,
40458 "optional" : 1,
40459 "type" : "integer",
40460 "typetext" : "<integer> (0 - N)"
40461 },
40462 "mailnotification" : {
40463 "default" : "always",
c6d5bae8 40464 "description" : "Deprecated: use notification targets/matchers instead. Specify when to send a notification mail",
4d47f125
TL
40465 "enum" : [
40466 "always",
40467 "failure"
40468 ],
40469 "optional" : 1,
40470 "type" : "string"
40471 },
40472 "mailto" : {
c6d5bae8 40473 "description" : "Deprecated: Use notification targets/matchers instead. Comma-separated list of email addresses or users that should receive email notifications.",
d2656385 40474 "format" : "email-or-username-list",
4d47f125
TL
40475 "optional" : 1,
40476 "type" : "string",
40477 "typetext" : "<string>"
40478 },
40479 "maxfiles" : {
0695fdaf 40480 "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per guest system.",
4d47f125
TL
40481 "minimum" : 1,
40482 "optional" : 1,
40483 "type" : "integer",
40484 "typetext" : "<integer> (1 - N)"
40485 },
40486 "mode" : {
40487 "default" : "snapshot",
40488 "description" : "Backup mode.",
40489 "enum" : [
40490 "snapshot",
40491 "suspend",
40492 "stop"
40493 ],
40494 "optional" : 1,
40495 "type" : "string"
40496 },
40497 "node" : {
40498 "description" : "Only run if executed on this node.",
40499 "format" : "pve-node",
40500 "optional" : 1,
40501 "type" : "string",
40502 "typetext" : "<string>"
40503 },
7af2edf9 40504 "notes-template" : {
4e7f60c2
TL
40505 "description" : "Template string for generating notes for the backup(s). It can contain variables which will be replaced by their values. Currently supported are {{cluster}}, {{guestname}}, {{node}}, and {{vmid}}, but more might be added in the future. Needs to be a single line, newline and backslash need to be escaped as '\\n' and '\\\\' respectively.",
40506 "maxLength" : 1024,
7af2edf9
TL
40507 "optional" : 1,
40508 "requires" : "storage",
40509 "type" : "string",
40510 "typetext" : "<string>"
40511 },
c6d5bae8
TL
40512 "notification-mode" : {
40513 "default" : "auto",
40514 "description" : "Determine which notification system to use. If set to 'legacy-sendmail', vzdump will consider the mailto/mailnotification parameters and send emails to the specified address(es) via the 'sendmail' command. If set to 'notification-system', a notification will be sent via PVE's notification system, and the mailto and mailnotification will be ignored. If set to 'auto' (default setting), an email will be sent if mailto is set, and the notification system will be used if not.",
40515 "enum" : [
40516 "auto",
40517 "legacy-sendmail",
40518 "notification-system"
40519 ],
40520 "optional" : 1,
40521 "type" : "string"
40522 },
82551b2b
TL
40523 "notification-policy" : {
40524 "default" : "always",
c6d5bae8 40525 "description" : "Deprecated: Do not use",
82551b2b
TL
40526 "enum" : [
40527 "always",
40528 "failure",
40529 "never"
40530 ],
40531 "optional" : 1,
40532 "type" : "string"
40533 },
40534 "notification-target" : {
c6d5bae8 40535 "description" : "Deprecated: Do not use",
82551b2b
TL
40536 "format" : "pve-configid",
40537 "optional" : 1,
40538 "type" : "string",
40539 "typetext" : "<string>"
40540 },
4e7f60c2
TL
40541 "performance" : {
40542 "description" : "Other performance-related settings.",
40543 "format" : "backup-performance",
40544 "optional" : 1,
40545 "type" : "string",
82551b2b 40546 "typetext" : "[max-workers=<integer>] [,pbs-entries-max=<integer>]"
4e7f60c2 40547 },
4d47f125
TL
40548 "pigz" : {
40549 "default" : 0,
40550 "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count.",
40551 "optional" : 1,
40552 "type" : "integer",
40553 "typetext" : "<integer>"
40554 },
9226ccbc
TL
40555 "pool" : {
40556 "description" : "Backup all known guest systems included in the specified pool.",
40557 "optional" : 1,
40558 "type" : "string",
40559 "typetext" : "<string>"
40560 },
7af2edf9
TL
40561 "protected" : {
40562 "description" : "If true, mark backup(s) as protected.",
40563 "optional" : 1,
40564 "requires" : "storage",
40565 "type" : "boolean",
40566 "typetext" : "<boolean>"
40567 },
739d4d64 40568 "prune-backups" : {
0695fdaf 40569 "default" : "keep-all=1",
739d4d64
TL
40570 "description" : "Use these retention options instead of those from the storage configuration.",
40571 "format" : "prune-backups",
40572 "optional" : 1,
40573 "type" : "string",
4772952b 40574 "typetext" : "[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
739d4d64 40575 },
4d47f125
TL
40576 "quiet" : {
40577 "default" : 0,
40578 "description" : "Be quiet.",
40579 "optional" : 1,
40580 "type" : "boolean",
40581 "typetext" : "<boolean>"
40582 },
40583 "remove" : {
40584 "default" : 1,
0695fdaf 40585 "description" : "Prune older backups according to 'prune-backups'.",
4d47f125
TL
40586 "optional" : 1,
40587 "type" : "boolean",
40588 "typetext" : "<boolean>"
40589 },
40590 "script" : {
40591 "description" : "Use specified hook script.",
40592 "optional" : 1,
40593 "type" : "string",
40594 "typetext" : "<string>"
40595 },
4d47f125
TL
40596 "stdexcludes" : {
40597 "default" : 1,
40598 "description" : "Exclude temporary files and logs.",
40599 "optional" : 1,
40600 "type" : "boolean",
40601 "typetext" : "<boolean>"
40602 },
40603 "stdout" : {
40604 "description" : "Write tar to stdout, not to a file.",
40605 "optional" : 1,
40606 "type" : "boolean",
40607 "typetext" : "<boolean>"
40608 },
40609 "stop" : {
40610 "default" : 0,
1e3f8156 40611 "description" : "Stop running backup jobs on this host.",
4d47f125
TL
40612 "optional" : 1,
40613 "type" : "boolean",
40614 "typetext" : "<boolean>"
40615 },
40616 "stopwait" : {
40617 "default" : 10,
40618 "description" : "Maximal time to wait until a guest system is stopped (minutes).",
40619 "minimum" : 0,
40620 "optional" : 1,
40621 "type" : "integer",
40622 "typetext" : "<integer> (0 - N)"
40623 },
40624 "storage" : {
40625 "description" : "Store resulting file to this storage.",
40626 "format" : "pve-storage-id",
907e4bc3 40627 "format_description" : "storage ID",
4d47f125
TL
40628 "optional" : 1,
40629 "type" : "string",
907e4bc3 40630 "typetext" : "<storage ID>"
4d47f125
TL
40631 },
40632 "tmpdir" : {
40633 "description" : "Store temporary files to specified directory.",
40634 "optional" : 1,
40635 "type" : "string",
40636 "typetext" : "<string>"
40637 },
40638 "vmid" : {
40639 "description" : "The ID of the guest system you want to backup.",
40640 "format" : "pve-vmid-list",
40641 "optional" : 1,
40642 "type" : "string",
40643 "typetext" : "<string>"
c5aa7e14
TL
40644 },
40645 "zstd" : {
40646 "default" : 1,
c6d5bae8 40647 "description" : "Zstd threads. N=0 uses half of the available cores, if N is set to a value bigger than 0, N is used as thread count.",
c5aa7e14
TL
40648 "optional" : 1,
40649 "type" : "integer",
40650 "typetext" : "<integer>"
4d47f125
TL
40651 }
40652 }
40653 },
40654 "permissions" : {
907e4bc3 40655 "description" : "The user needs 'VM.Backup' permissions on any VM, and 'Datastore.AllocateSpace' on the backup storage (and fleecing storage when fleecing is used). The 'tmpdir', 'dumpdir' and 'script' parameters are restricted to the 'root@pam' user. The 'maxfiles' and 'prune-backups' settings require 'Datastore.Allocate' on the backup storage. The 'bwlimit', 'performance' and 'ionice' parameters require 'Sys.Modify' on '/'.",
4d47f125
TL
40656 "user" : "all"
40657 },
40658 "protected" : 1,
40659 "proxyto" : "node",
40660 "returns" : {
40661 "type" : "string"
40662 }
40663 }
40664 },
40665 "leaf" : 0,
40666 "path" : "/nodes/{node}/vzdump",
40667 "text" : "vzdump"
40668 },
40669 {
40670 "children" : [
2489d6df
WB
40671 {
40672 "children" : [
40673 {
40674 "info" : {
4d47f125 40675 "GET" : {
e9cd3bd4 40676 "allowtoken" : 1,
4d47f125
TL
40677 "description" : "Read service properties",
40678 "method" : "GET",
40679 "name" : "service_state",
2489d6df
WB
40680 "parameters" : {
40681 "additionalProperties" : 0,
40682 "properties" : {
2489d6df
WB
40683 "node" : {
40684 "description" : "The cluster node name.",
40685 "format" : "pve-node",
40686 "type" : "string",
40687 "typetext" : "<string>"
4d47f125
TL
40688 },
40689 "service" : {
40690 "description" : "Service ID",
40691 "enum" : [
5370fa8c 40692 "chrony",
4d47f125 40693 "corosync",
5370fa8c
TL
40694 "cron",
40695 "ksmtuned",
40696 "postfix",
40697 "pve-cluster",
4d47f125 40698 "pve-firewall",
4d47f125
TL
40699 "pve-ha-crm",
40700 "pve-ha-lrm",
5370fa8c
TL
40701 "pvedaemon",
40702 "pvefw-logger",
40703 "pveproxy",
40704 "pvescheduler",
40705 "pvestatd",
40706 "spiceproxy",
4d47f125
TL
40707 "sshd",
40708 "syslog",
8f4d9c87 40709 "systemd-journald",
5370fa8c 40710 "systemd-timesyncd"
4d47f125
TL
40711 ],
40712 "type" : "string"
2489d6df
WB
40713 }
40714 }
40715 },
40716 "permissions" : {
40717 "check" : [
40718 "perm",
4d47f125 40719 "/nodes/{node}",
2489d6df 40720 [
4d47f125 40721 "Sys.Audit"
2489d6df
WB
40722 ]
40723 ]
40724 },
40725 "protected" : 1,
40726 "proxyto" : "node",
40727 "returns" : {
4d47f125 40728 "type" : "object"
2489d6df
WB
40729 }
40730 }
40731 },
40732 "leaf" : 1,
4d47f125
TL
40733 "path" : "/nodes/{node}/services/{service}/state",
40734 "text" : "state"
40735 },
40736 {
40737 "info" : {
40738 "POST" : {
e9cd3bd4 40739 "allowtoken" : 1,
4d47f125
TL
40740 "description" : "Start service.",
40741 "method" : "POST",
40742 "name" : "service_start",
40743 "parameters" : {
40744 "additionalProperties" : 0,
40745 "properties" : {
40746 "node" : {
40747 "description" : "The cluster node name.",
40748 "format" : "pve-node",
40749 "type" : "string",
40750 "typetext" : "<string>"
40751 },
40752 "service" : {
40753 "description" : "Service ID",
40754 "enum" : [
5370fa8c 40755 "chrony",
4d47f125 40756 "corosync",
5370fa8c
TL
40757 "cron",
40758 "ksmtuned",
40759 "postfix",
40760 "pve-cluster",
4d47f125 40761 "pve-firewall",
4d47f125
TL
40762 "pve-ha-crm",
40763 "pve-ha-lrm",
5370fa8c
TL
40764 "pvedaemon",
40765 "pvefw-logger",
40766 "pveproxy",
40767 "pvescheduler",
40768 "pvestatd",
40769 "spiceproxy",
4d47f125
TL
40770 "sshd",
40771 "syslog",
8f4d9c87 40772 "systemd-journald",
5370fa8c 40773 "systemd-timesyncd"
4d47f125
TL
40774 ],
40775 "type" : "string"
40776 }
40777 }
7aacca6f 40778 },
4d47f125
TL
40779 "permissions" : {
40780 "check" : [
40781 "perm",
40782 "/nodes/{node}",
40783 [
40784 "Sys.Modify"
40785 ]
40786 ]
7aacca6f 40787 },
4d47f125
TL
40788 "protected" : 1,
40789 "proxyto" : "node",
40790 "returns" : {
40791 "type" : "string"
40792 }
40793 }
56122987 40794 },
4d47f125
TL
40795 "leaf" : 1,
40796 "path" : "/nodes/{node}/services/{service}/start",
40797 "text" : "start"
40798 },
44660702
DM
40799 {
40800 "info" : {
4d47f125 40801 "POST" : {
e9cd3bd4 40802 "allowtoken" : 1,
4d47f125
TL
40803 "description" : "Stop service.",
40804 "method" : "POST",
40805 "name" : "service_stop",
44660702
DM
40806 "parameters" : {
40807 "additionalProperties" : 0,
40808 "properties" : {
44660702
DM
40809 "node" : {
40810 "description" : "The cluster node name.",
40811 "format" : "pve-node",
013dc89f
DM
40812 "type" : "string",
40813 "typetext" : "<string>"
2489d6df 40814 },
4d47f125
TL
40815 "service" : {
40816 "description" : "Service ID",
40817 "enum" : [
5370fa8c 40818 "chrony",
4d47f125 40819 "corosync",
5370fa8c
TL
40820 "cron",
40821 "ksmtuned",
40822 "postfix",
40823 "pve-cluster",
4d47f125 40824 "pve-firewall",
4d47f125
TL
40825 "pve-ha-crm",
40826 "pve-ha-lrm",
5370fa8c
TL
40827 "pvedaemon",
40828 "pvefw-logger",
40829 "pveproxy",
40830 "pvescheduler",
40831 "pvestatd",
40832 "spiceproxy",
4d47f125
TL
40833 "sshd",
40834 "syslog",
8f4d9c87 40835 "systemd-journald",
5370fa8c 40836 "systemd-timesyncd"
4d47f125
TL
40837 ],
40838 "type" : "string"
44660702
DM
40839 }
40840 }
40841 },
40842 "permissions" : {
40843 "check" : [
40844 "perm",
4d47f125 40845 "/nodes/{node}",
44660702
DM
40846 [
40847 "Sys.Modify"
40848 ]
40849 ]
40850 },
40851 "protected" : 1,
40852 "proxyto" : "node",
40853 "returns" : {
2489d6df 40854 "type" : "string"
44660702
DM
40855 }
40856 }
40857 },
40858 "leaf" : 1,
4d47f125
TL
40859 "path" : "/nodes/{node}/services/{service}/stop",
40860 "text" : "stop"
7aacca6f 40861 },
32d876b5
DM
40862 {
40863 "info" : {
4d47f125 40864 "POST" : {
e9cd3bd4 40865 "allowtoken" : 1,
739d4d64 40866 "description" : "Hard restart service. Use reload if you want to reduce interruptions.",
4d47f125
TL
40867 "method" : "POST",
40868 "name" : "service_restart",
32d876b5
DM
40869 "parameters" : {
40870 "additionalProperties" : 0,
40871 "properties" : {
4d47f125
TL
40872 "node" : {
40873 "description" : "The cluster node name.",
40874 "format" : "pve-node",
40875 "type" : "string",
40876 "typetext" : "<string>"
40877 },
40878 "service" : {
40879 "description" : "Service ID",
32d876b5 40880 "enum" : [
5370fa8c 40881 "chrony",
4d47f125 40882 "corosync",
5370fa8c
TL
40883 "cron",
40884 "ksmtuned",
40885 "postfix",
40886 "pve-cluster",
4d47f125 40887 "pve-firewall",
4d47f125
TL
40888 "pve-ha-crm",
40889 "pve-ha-lrm",
5370fa8c
TL
40890 "pvedaemon",
40891 "pvefw-logger",
40892 "pveproxy",
40893 "pvescheduler",
40894 "pvestatd",
40895 "spiceproxy",
4d47f125
TL
40896 "sshd",
40897 "syslog",
8f4d9c87 40898 "systemd-journald",
5370fa8c 40899 "systemd-timesyncd"
32d876b5
DM
40900 ],
40901 "type" : "string"
32d876b5
DM
40902 }
40903 }
40904 },
40905 "permissions" : {
40906 "check" : [
40907 "perm",
4d47f125 40908 "/nodes/{node}",
32d876b5
DM
40909 [
40910 "Sys.Modify"
40911 ]
40912 ]
40913 },
40914 "protected" : 1,
40915 "proxyto" : "node",
40916 "returns" : {
4d47f125 40917 "type" : "string"
32d876b5 40918 }
4d47f125
TL
40919 }
40920 },
40921 "leaf" : 1,
40922 "path" : "/nodes/{node}/services/{service}/restart",
40923 "text" : "restart"
40924 },
40925 {
40926 "info" : {
32d876b5 40927 "POST" : {
e9cd3bd4 40928 "allowtoken" : 1,
739d4d64 40929 "description" : "Reload service. Falls back to restart if service cannot be reloaded.",
32d876b5 40930 "method" : "POST",
4d47f125 40931 "name" : "service_reload",
32d876b5
DM
40932 "parameters" : {
40933 "additionalProperties" : 0,
40934 "properties" : {
32d876b5
DM
40935 "node" : {
40936 "description" : "The cluster node name.",
40937 "format" : "pve-node",
40938 "type" : "string",
40939 "typetext" : "<string>"
4d47f125
TL
40940 },
40941 "service" : {
40942 "description" : "Service ID",
40943 "enum" : [
5370fa8c 40944 "chrony",
4d47f125 40945 "corosync",
5370fa8c
TL
40946 "cron",
40947 "ksmtuned",
40948 "postfix",
40949 "pve-cluster",
4d47f125 40950 "pve-firewall",
4d47f125
TL
40951 "pve-ha-crm",
40952 "pve-ha-lrm",
5370fa8c
TL
40953 "pvedaemon",
40954 "pvefw-logger",
40955 "pveproxy",
40956 "pvescheduler",
40957 "pvestatd",
40958 "spiceproxy",
4d47f125
TL
40959 "sshd",
40960 "syslog",
8f4d9c87 40961 "systemd-journald",
5370fa8c 40962 "systemd-timesyncd"
4d47f125
TL
40963 ],
40964 "type" : "string"
32d876b5
DM
40965 }
40966 }
40967 },
40968 "permissions" : {
40969 "check" : [
40970 "perm",
4d47f125 40971 "/nodes/{node}",
32d876b5
DM
40972 [
40973 "Sys.Modify"
40974 ]
40975 ]
40976 },
40977 "protected" : 1,
40978 "proxyto" : "node",
40979 "returns" : {
4d47f125 40980 "type" : "string"
32d876b5
DM
40981 }
40982 }
40983 },
40984 "leaf" : 1,
4d47f125
TL
40985 "path" : "/nodes/{node}/services/{service}/reload",
40986 "text" : "reload"
32d876b5
DM
40987 }
40988 ],
40989 "info" : {
40990 "GET" : {
e9cd3bd4 40991 "allowtoken" : 1,
4d47f125 40992 "description" : "Directory index",
44660702 40993 "method" : "GET",
4d47f125 40994 "name" : "srvcmdidx",
44660702
DM
40995 "parameters" : {
40996 "additionalProperties" : 0,
40997 "properties" : {
44660702
DM
40998 "node" : {
40999 "description" : "The cluster node name.",
41000 "format" : "pve-node",
013dc89f
DM
41001 "type" : "string",
41002 "typetext" : "<string>"
44660702 41003 },
4d47f125
TL
41004 "service" : {
41005 "description" : "Service ID",
41006 "enum" : [
5370fa8c 41007 "chrony",
4d47f125 41008 "corosync",
5370fa8c
TL
41009 "cron",
41010 "ksmtuned",
41011 "postfix",
41012 "pve-cluster",
4d47f125 41013 "pve-firewall",
4d47f125
TL
41014 "pve-ha-crm",
41015 "pve-ha-lrm",
5370fa8c
TL
41016 "pvedaemon",
41017 "pvefw-logger",
41018 "pveproxy",
41019 "pvescheduler",
41020 "pvestatd",
41021 "spiceproxy",
4d47f125
TL
41022 "sshd",
41023 "syslog",
8f4d9c87 41024 "systemd-journald",
5370fa8c 41025 "systemd-timesyncd"
4d47f125
TL
41026 ],
41027 "type" : "string"
44660702 41028 }
7aacca6f 41029 }
56122987 41030 },
56122987
DM
41031 "permissions" : {
41032 "check" : [
41033 "perm",
7aacca6f 41034 "/nodes/{node}",
56122987 41035 [
4d47f125 41036 "Sys.Audit"
56122987
DM
41037 ]
41038 ]
41039 },
44660702
DM
41040 "returns" : {
41041 "items" : {
41042 "properties" : {
4d47f125 41043 "subdir" : {
44660702
DM
41044 "type" : "string"
41045 }
56122987 41046 },
44660702 41047 "type" : "object"
56122987 41048 },
2489d6df
WB
41049 "links" : [
41050 {
4d47f125 41051 "href" : "{subdir}",
2489d6df
WB
41052 "rel" : "child"
41053 }
41054 ],
41055 "type" : "array"
41056 }
41057 }
4d47f125
TL
41058 },
41059 "leaf" : 0,
41060 "path" : "/nodes/{node}/services/{service}",
41061 "text" : "{service}"
7aacca6f
DM
41062 }
41063 ],
44660702
DM
41064 "info" : {
41065 "GET" : {
e9cd3bd4 41066 "allowtoken" : 1,
4d47f125 41067 "description" : "Service list.",
44660702
DM
41068 "method" : "GET",
41069 "name" : "index",
41070 "parameters" : {
41071 "additionalProperties" : 0,
41072 "properties" : {
41073 "node" : {
41074 "description" : "The cluster node name.",
41075 "format" : "pve-node",
013dc89f
DM
41076 "type" : "string",
41077 "typetext" : "<string>"
44660702
DM
41078 }
41079 }
41080 },
41081 "permissions" : {
41082 "check" : [
41083 "perm",
4d47f125 41084 "/nodes/{node}",
44660702 41085 [
4d47f125
TL
41086 "Sys.Audit"
41087 ]
44660702
DM
41088 ]
41089 },
4d47f125
TL
41090 "protected" : 1,
41091 "proxyto" : "node",
44660702
DM
41092 "returns" : {
41093 "items" : {
41094 "properties" : {},
41095 "type" : "object"
41096 },
41097 "links" : [
41098 {
4d47f125 41099 "href" : "{service}",
44660702
DM
41100 "rel" : "child"
41101 }
41102 ],
41103 "type" : "array"
41104 }
41105 }
41106 },
7aacca6f 41107 "leaf" : 0,
4d47f125
TL
41108 "path" : "/nodes/{node}/services",
41109 "text" : "services"
7aacca6f
DM
41110 },
41111 {
7aacca6f 41112 "info" : {
ac70d7d1
TL
41113 "DELETE" : {
41114 "allowtoken" : 1,
41115 "description" : "Delete subscription key of this node.",
41116 "method" : "DELETE",
41117 "name" : "delete",
41118 "parameters" : {
41119 "additionalProperties" : 0,
41120 "properties" : {
41121 "node" : {
41122 "description" : "The cluster node name.",
41123 "format" : "pve-node",
41124 "type" : "string",
41125 "typetext" : "<string>"
41126 }
41127 }
41128 },
41129 "permissions" : {
41130 "check" : [
41131 "perm",
41132 "/nodes/{node}",
41133 [
41134 "Sys.Modify"
41135 ]
41136 ]
41137 },
41138 "protected" : 1,
41139 "proxyto" : "node",
41140 "returns" : {
41141 "type" : "null"
41142 }
41143 },
4d47f125 41144 "GET" : {
e9cd3bd4 41145 "allowtoken" : 1,
4d47f125
TL
41146 "description" : "Read subscription info.",
41147 "method" : "GET",
41148 "name" : "get",
7aacca6f 41149 "parameters" : {
44660702 41150 "additionalProperties" : 0,
7aacca6f 41151 "properties" : {
44660702 41152 "node" : {
4d47f125 41153 "description" : "The cluster node name.",
44660702 41154 "format" : "pve-node",
013dc89f
DM
41155 "type" : "string",
41156 "typetext" : "<string>"
4d47f125
TL
41157 }
41158 }
41159 },
41160 "permissions" : {
41161 "user" : "all"
41162 },
41163 "proxyto" : "node",
41164 "returns" : {
41165 "type" : "object"
41166 }
41167 },
41168 "POST" : {
e9cd3bd4 41169 "allowtoken" : 1,
4d47f125
TL
41170 "description" : "Update subscription info.",
41171 "method" : "POST",
41172 "name" : "update",
41173 "parameters" : {
41174 "additionalProperties" : 0,
41175 "properties" : {
41176 "force" : {
41177 "default" : 0,
4a407cfd 41178 "description" : "Always connect to server, even if local cache is still valid.",
7aacca6f 41179 "optional" : 1,
4d47f125
TL
41180 "type" : "boolean",
41181 "typetext" : "<boolean>"
44660702 41182 },
4d47f125
TL
41183 "node" : {
41184 "description" : "The cluster node name.",
41185 "format" : "pve-node",
013dc89f
DM
41186 "type" : "string",
41187 "typetext" : "<string>"
4d47f125
TL
41188 }
41189 }
41190 },
41191 "permissions" : {
41192 "check" : [
41193 "perm",
41194 "/nodes/{node}",
41195 [
41196 "Sys.Modify"
41197 ]
41198 ]
41199 },
41200 "protected" : 1,
41201 "proxyto" : "node",
41202 "returns" : {
41203 "type" : "null"
41204 }
41205 },
41206 "PUT" : {
e9cd3bd4 41207 "allowtoken" : 1,
4d47f125
TL
41208 "description" : "Set subscription key.",
41209 "method" : "PUT",
41210 "name" : "set",
41211 "parameters" : {
41212 "additionalProperties" : 0,
41213 "properties" : {
41214 "key" : {
41215 "description" : "Proxmox VE subscription key",
41216 "maxLength" : 32,
bd92b745 41217 "pattern" : "\\s*pve([1248])([cbsp])-[0-9a-f]{10}\\s*",
4d47f125 41218 "type" : "string"
7aacca6f 41219 },
4d47f125
TL
41220 "node" : {
41221 "description" : "The cluster node name.",
41222 "format" : "pve-node",
013dc89f
DM
41223 "type" : "string",
41224 "typetext" : "<string>"
7aacca6f 41225 }
7aacca6f
DM
41226 }
41227 },
7aacca6f 41228 "permissions" : {
4d47f125
TL
41229 "check" : [
41230 "perm",
41231 "/nodes/{node}",
41232 [
41233 "Sys.Modify"
41234 ]
41235 ]
7aacca6f 41236 },
44660702 41237 "protected" : 1,
7aacca6f 41238 "proxyto" : "node",
7aacca6f 41239 "returns" : {
4d47f125 41240 "type" : "null"
7aacca6f
DM
41241 }
41242 }
41243 },
4d47f125
TL
41244 "leaf" : 1,
41245 "path" : "/nodes/{node}/subscription",
41246 "text" : "subscription"
44660702
DM
41247 },
41248 {
7aacca6f
DM
41249 "children" : [
41250 {
4d47f125
TL
41251 "info" : {
41252 "DELETE" : {
e9cd3bd4 41253 "allowtoken" : 1,
4d47f125
TL
41254 "description" : "Delete network device configuration",
41255 "method" : "DELETE",
41256 "name" : "delete_network",
41257 "parameters" : {
41258 "additionalProperties" : 0,
41259 "properties" : {
41260 "iface" : {
41261 "description" : "Network interface name.",
41262 "format" : "pve-iface",
41263 "maxLength" : 20,
41264 "minLength" : 2,
41265 "type" : "string",
41266 "typetext" : "<string>"
7aacca6f 41267 },
4d47f125
TL
41268 "node" : {
41269 "description" : "The cluster node name.",
41270 "format" : "pve-node",
41271 "type" : "string",
41272 "typetext" : "<string>"
44660702
DM
41273 }
41274 }
41275 },
4d47f125
TL
41276 "permissions" : {
41277 "check" : [
41278 "perm",
41279 "/nodes/{node}",
41280 [
41281 "Sys.Modify"
41282 ]
41283 ]
41284 },
41285 "protected" : 1,
41286 "proxyto" : "node",
41287 "returns" : {
41288 "type" : "null"
41289 }
41290 },
41291 "GET" : {
e9cd3bd4 41292 "allowtoken" : 1,
4d47f125
TL
41293 "description" : "Read network device configuration",
41294 "method" : "GET",
41295 "name" : "network_config",
41296 "parameters" : {
41297 "additionalProperties" : 0,
41298 "properties" : {
41299 "iface" : {
41300 "description" : "Network interface name.",
41301 "format" : "pve-iface",
41302 "maxLength" : 20,
41303 "minLength" : 2,
41304 "type" : "string",
41305 "typetext" : "<string>"
56122987 41306 },
4d47f125
TL
41307 "node" : {
41308 "description" : "The cluster node name.",
41309 "format" : "pve-node",
41310 "type" : "string",
41311 "typetext" : "<string>"
44660702
DM
41312 }
41313 }
41314 },
4d47f125
TL
41315 "permissions" : {
41316 "check" : [
41317 "perm",
41318 "/nodes/{node}",
41319 [
41320 "Sys.Audit"
41321 ]
41322 ]
41323 },
41324 "proxyto" : "node",
41325 "returns" : {
41326 "properties" : {
41327 "method" : {
41328 "type" : "string"
44660702 41329 },
4d47f125 41330 "type" : {
44660702
DM
41331 "type" : "string"
41332 }
4d47f125
TL
41333 },
41334 "type" : "object"
41335 }
56122987 41336 },
4d47f125 41337 "PUT" : {
e9cd3bd4 41338 "allowtoken" : 1,
4d47f125
TL
41339 "description" : "Update network device configuration",
41340 "method" : "PUT",
41341 "name" : "update_network",
41342 "parameters" : {
41343 "additionalProperties" : 0,
41344 "properties" : {
41345 "address" : {
41346 "description" : "IP address.",
41347 "format" : "ipv4",
41348 "optional" : 1,
41349 "requires" : "netmask",
41350 "type" : "string",
41351 "typetext" : "<string>"
41352 },
41353 "address6" : {
41354 "description" : "IP address.",
41355 "format" : "ipv6",
41356 "optional" : 1,
41357 "requires" : "netmask6",
41358 "type" : "string",
41359 "typetext" : "<string>"
41360 },
41361 "autostart" : {
41362 "description" : "Automatically start interface on boot.",
41363 "optional" : 1,
41364 "type" : "boolean",
41365 "typetext" : "<boolean>"
41366 },
e9cd3bd4
TL
41367 "bond-primary" : {
41368 "description" : "Specify the primary interface for active-backup bond.",
41369 "format" : "pve-iface",
41370 "optional" : 1,
41371 "type" : "string",
41372 "typetext" : "<string>"
41373 },
4d47f125
TL
41374 "bond_mode" : {
41375 "description" : "Bonding mode.",
41376 "enum" : [
41377 "balance-rr",
41378 "active-backup",
41379 "balance-xor",
41380 "broadcast",
41381 "802.3ad",
41382 "balance-tlb",
41383 "balance-alb",
41384 "balance-slb",
41385 "lacp-balance-slb",
41386 "lacp-balance-tcp"
41387 ],
41388 "optional" : 1,
41389 "type" : "string"
41390 },
41391 "bond_xmit_hash_policy" : {
41392 "description" : "Selects the transmit hash policy to use for slave selection in balance-xor and 802.3ad modes.",
41393 "enum" : [
41394 "layer2",
41395 "layer2+3",
41396 "layer3+4"
41397 ],
41398 "optional" : 1,
41399 "type" : "string"
41400 },
41401 "bridge_ports" : {
1e3f8156 41402 "description" : "Specify the interfaces you want to add to your bridge.",
4d47f125
TL
41403 "format" : "pve-iface-list",
41404 "optional" : 1,
41405 "type" : "string",
41406 "typetext" : "<string>"
41407 },
41408 "bridge_vlan_aware" : {
41409 "description" : "Enable bridge vlan support.",
41410 "optional" : 1,
41411 "type" : "boolean",
41412 "typetext" : "<boolean>"
41413 },
bb4c8cf8
TL
41414 "cidr" : {
41415 "description" : "IPv4 CIDR.",
41416 "format" : "CIDRv4",
41417 "optional" : 1,
41418 "type" : "string",
41419 "typetext" : "<string>"
41420 },
41421 "cidr6" : {
41422 "description" : "IPv6 CIDR.",
41423 "format" : "CIDRv6",
41424 "optional" : 1,
41425 "type" : "string",
41426 "typetext" : "<string>"
41427 },
4d47f125
TL
41428 "comments" : {
41429 "description" : "Comments",
41430 "optional" : 1,
41431 "type" : "string",
41432 "typetext" : "<string>"
41433 },
41434 "comments6" : {
41435 "description" : "Comments",
41436 "optional" : 1,
41437 "type" : "string",
41438 "typetext" : "<string>"
41439 },
41440 "delete" : {
41441 "description" : "A list of settings you want to delete.",
41442 "format" : "pve-configid-list",
41443 "optional" : 1,
41444 "type" : "string",
41445 "typetext" : "<string>"
41446 },
41447 "gateway" : {
41448 "description" : "Default gateway address.",
41449 "format" : "ipv4",
41450 "optional" : 1,
41451 "type" : "string",
41452 "typetext" : "<string>"
41453 },
41454 "gateway6" : {
41455 "description" : "Default ipv6 gateway address.",
41456 "format" : "ipv6",
41457 "optional" : 1,
41458 "type" : "string",
41459 "typetext" : "<string>"
41460 },
41461 "iface" : {
41462 "description" : "Network interface name.",
41463 "format" : "pve-iface",
41464 "maxLength" : 20,
41465 "minLength" : 2,
41466 "type" : "string",
41467 "typetext" : "<string>"
56122987 41468 },
e9cd3bd4
TL
41469 "mtu" : {
41470 "description" : "MTU.",
41471 "maximum" : 65520,
41472 "minimum" : 1280,
41473 "optional" : 1,
41474 "type" : "integer",
41475 "typetext" : "<integer> (1280 - 65520)"
41476 },
4d47f125
TL
41477 "netmask" : {
41478 "description" : "Network mask.",
41479 "format" : "ipv4mask",
41480 "optional" : 1,
41481 "requires" : "address",
41482 "type" : "string",
41483 "typetext" : "<string>"
41484 },
41485 "netmask6" : {
41486 "description" : "Network mask.",
41487 "maximum" : 128,
41488 "minimum" : 0,
41489 "optional" : 1,
41490 "requires" : "address6",
41491 "type" : "integer",
41492 "typetext" : "<integer> (0 - 128)"
56122987 41493 },
44660702
DM
41494 "node" : {
41495 "description" : "The cluster node name.",
41496 "format" : "pve-node",
013dc89f
DM
41497 "type" : "string",
41498 "typetext" : "<string>"
44660702 41499 },
4d47f125
TL
41500 "ovs_bonds" : {
41501 "description" : "Specify the interfaces used by the bonding device.",
41502 "format" : "pve-iface-list",
41503 "optional" : 1,
41504 "type" : "string",
41505 "typetext" : "<string>"
41506 },
41507 "ovs_bridge" : {
41508 "description" : "The OVS bridge associated with a OVS port. This is required when you create an OVS port.",
41509 "format" : "pve-iface",
41510 "optional" : 1,
41511 "type" : "string",
41512 "typetext" : "<string>"
41513 },
41514 "ovs_options" : {
41515 "description" : "OVS interface options.",
41516 "maxLength" : 1024,
41517 "optional" : 1,
41518 "type" : "string",
41519 "typetext" : "<string>"
41520 },
41521 "ovs_ports" : {
1e3f8156 41522 "description" : "Specify the interfaces you want to add to your bridge.",
4d47f125
TL
41523 "format" : "pve-iface-list",
41524 "optional" : 1,
41525 "type" : "string",
41526 "typetext" : "<string>"
41527 },
41528 "ovs_tag" : {
41529 "description" : "Specify a VLan tag (used by OVSPort, OVSIntPort, OVSBond)",
41530 "maximum" : 4094,
41531 "minimum" : 1,
41532 "optional" : 1,
41533 "type" : "integer",
41534 "typetext" : "<integer> (1 - 4094)"
41535 },
41536 "slaves" : {
41537 "description" : "Specify the interfaces used by the bonding device.",
41538 "format" : "pve-iface-list",
41539 "optional" : 1,
41540 "type" : "string",
41541 "typetext" : "<string>"
41542 },
41543 "type" : {
41544 "description" : "Network interface type",
44660702 41545 "enum" : [
4d47f125
TL
41546 "bridge",
41547 "bond",
41548 "eth",
41549 "alias",
41550 "vlan",
41551 "OVSBridge",
41552 "OVSBond",
41553 "OVSPort",
41554 "OVSIntPort",
41555 "unknown"
44660702
DM
41556 ],
41557 "type" : "string"
e9cd3bd4
TL
41558 },
41559 "vlan-id" : {
41560 "description" : "vlan-id for a custom named vlan interface (ifupdown2 only).",
41561 "maximum" : 4094,
41562 "minimum" : 1,
41563 "optional" : 1,
41564 "type" : "integer",
41565 "typetext" : "<integer> (1 - 4094)"
41566 },
41567 "vlan-raw-device" : {
41568 "description" : "Specify the raw interface for the vlan interface.",
41569 "format" : "pve-iface",
41570 "optional" : 1,
41571 "type" : "string",
41572 "typetext" : "<string>"
44660702
DM
41573 }
41574 }
41575 },
41576 "permissions" : {
41577 "check" : [
41578 "perm",
41579 "/nodes/{node}",
41580 [
4d47f125 41581 "Sys.Modify"
44660702
DM
41582 ]
41583 ]
41584 },
4d47f125
TL
41585 "protected" : 1,
41586 "proxyto" : "node",
44660702 41587 "returns" : {
4d47f125 41588 "type" : "null"
44660702
DM
41589 }
41590 }
41591 },
4d47f125
TL
41592 "leaf" : 1,
41593 "path" : "/nodes/{node}/network/{iface}",
41594 "text" : "{iface}"
44660702
DM
41595 }
41596 ],
41597 "info" : {
4d47f125 41598 "DELETE" : {
e9cd3bd4 41599 "allowtoken" : 1,
4d47f125
TL
41600 "description" : "Revert network configuration changes.",
41601 "method" : "DELETE",
41602 "name" : "revert_network_changes",
44660702
DM
41603 "parameters" : {
41604 "additionalProperties" : 0,
41605 "properties" : {
41606 "node" : {
41607 "description" : "The cluster node name.",
41608 "format" : "pve-node",
013dc89f
DM
41609 "type" : "string",
41610 "typetext" : "<string>"
44660702
DM
41611 }
41612 }
41613 },
41614 "permissions" : {
41615 "check" : [
41616 "perm",
41617 "/nodes/{node}",
41618 [
4d47f125 41619 "Sys.Modify"
44660702
DM
41620 ]
41621 ]
41622 },
41623 "protected" : 1,
41624 "proxyto" : "node",
4d47f125
TL
41625 "returns" : {
41626 "type" : "null"
41627 }
41628 },
41629 "GET" : {
e9cd3bd4 41630 "allowtoken" : 1,
4d47f125
TL
41631 "description" : "List available networks",
41632 "method" : "GET",
41633 "name" : "index",
41634 "parameters" : {
41635 "additionalProperties" : 0,
41636 "properties" : {
41637 "node" : {
41638 "description" : "The cluster node name.",
41639 "format" : "pve-node",
41640 "type" : "string",
41641 "typetext" : "<string>"
41642 },
41643 "type" : {
41644 "description" : "Only list specific interface types.",
41645 "enum" : [
41646 "bridge",
41647 "bond",
41648 "eth",
41649 "alias",
41650 "vlan",
41651 "OVSBridge",
41652 "OVSBond",
41653 "OVSPort",
41654 "OVSIntPort",
159464a9
TL
41655 "any_bridge",
41656 "any_local_bridge"
4d47f125
TL
41657 ],
41658 "optional" : 1,
41659 "type" : "string"
41660 }
41661 }
41662 },
41663 "permissions" : {
41664 "user" : "all"
41665 },
41666 "proxyto" : "node",
44660702
DM
41667 "returns" : {
41668 "items" : {
41669 "properties" : {},
41670 "type" : "object"
41671 },
41672 "links" : [
41673 {
4d47f125 41674 "href" : "{iface}",
44660702 41675 "rel" : "child"
56122987 41676 }
44660702
DM
41677 ],
41678 "type" : "array"
41679 }
4d47f125
TL
41680 },
41681 "POST" : {
e9cd3bd4 41682 "allowtoken" : 1,
4d47f125
TL
41683 "description" : "Create network device configuration",
41684 "method" : "POST",
41685 "name" : "create_network",
7aacca6f 41686 "parameters" : {
44660702 41687 "additionalProperties" : 0,
7aacca6f 41688 "properties" : {
4d47f125
TL
41689 "address" : {
41690 "description" : "IP address.",
41691 "format" : "ipv4",
41692 "optional" : 1,
41693 "requires" : "netmask",
41694 "type" : "string",
41695 "typetext" : "<string>"
41696 },
41697 "address6" : {
41698 "description" : "IP address.",
41699 "format" : "ipv6",
41700 "optional" : 1,
41701 "requires" : "netmask6",
41702 "type" : "string",
41703 "typetext" : "<string>"
41704 },
41705 "autostart" : {
41706 "description" : "Automatically start interface on boot.",
41707 "optional" : 1,
41708 "type" : "boolean",
41709 "typetext" : "<boolean>"
41710 },
e9cd3bd4
TL
41711 "bond-primary" : {
41712 "description" : "Specify the primary interface for active-backup bond.",
41713 "format" : "pve-iface",
41714 "optional" : 1,
41715 "type" : "string",
41716 "typetext" : "<string>"
41717 },
4d47f125
TL
41718 "bond_mode" : {
41719 "description" : "Bonding mode.",
41720 "enum" : [
41721 "balance-rr",
41722 "active-backup",
41723 "balance-xor",
41724 "broadcast",
41725 "802.3ad",
41726 "balance-tlb",
41727 "balance-alb",
41728 "balance-slb",
41729 "lacp-balance-slb",
41730 "lacp-balance-tcp"
41731 ],
41732 "optional" : 1,
41733 "type" : "string"
41734 },
41735 "bond_xmit_hash_policy" : {
41736 "description" : "Selects the transmit hash policy to use for slave selection in balance-xor and 802.3ad modes.",
41737 "enum" : [
41738 "layer2",
41739 "layer2+3",
41740 "layer3+4"
41741 ],
41742 "optional" : 1,
41743 "type" : "string"
41744 },
41745 "bridge_ports" : {
1e3f8156 41746 "description" : "Specify the interfaces you want to add to your bridge.",
4d47f125
TL
41747 "format" : "pve-iface-list",
41748 "optional" : 1,
013dc89f
DM
41749 "type" : "string",
41750 "typetext" : "<string>"
4d47f125
TL
41751 },
41752 "bridge_vlan_aware" : {
41753 "description" : "Enable bridge vlan support.",
44660702 41754 "optional" : 1,
013dc89f
DM
41755 "type" : "boolean",
41756 "typetext" : "<boolean>"
44660702 41757 },
bb4c8cf8
TL
41758 "cidr" : {
41759 "description" : "IPv4 CIDR.",
41760 "format" : "CIDRv4",
41761 "optional" : 1,
41762 "type" : "string",
41763 "typetext" : "<string>"
41764 },
41765 "cidr6" : {
41766 "description" : "IPv6 CIDR.",
41767 "format" : "CIDRv6",
41768 "optional" : 1,
41769 "type" : "string",
41770 "typetext" : "<string>"
41771 },
4d47f125
TL
41772 "comments" : {
41773 "description" : "Comments",
41774 "optional" : 1,
41775 "type" : "string",
41776 "typetext" : "<string>"
41777 },
41778 "comments6" : {
41779 "description" : "Comments",
41780 "optional" : 1,
41781 "type" : "string",
41782 "typetext" : "<string>"
41783 },
41784 "gateway" : {
41785 "description" : "Default gateway address.",
41786 "format" : "ipv4",
41787 "optional" : 1,
41788 "type" : "string",
41789 "typetext" : "<string>"
41790 },
41791 "gateway6" : {
41792 "description" : "Default ipv6 gateway address.",
41793 "format" : "ipv6",
41794 "optional" : 1,
41795 "type" : "string",
41796 "typetext" : "<string>"
41797 },
41798 "iface" : {
41799 "description" : "Network interface name.",
41800 "format" : "pve-iface",
41801 "maxLength" : 20,
41802 "minLength" : 2,
41803 "type" : "string",
41804 "typetext" : "<string>"
41805 },
e9cd3bd4
TL
41806 "mtu" : {
41807 "description" : "MTU.",
41808 "maximum" : 65520,
41809 "minimum" : 1280,
41810 "optional" : 1,
41811 "type" : "integer",
41812 "typetext" : "<integer> (1280 - 65520)"
41813 },
4d47f125
TL
41814 "netmask" : {
41815 "description" : "Network mask.",
41816 "format" : "ipv4mask",
41817 "optional" : 1,
41818 "requires" : "address",
41819 "type" : "string",
41820 "typetext" : "<string>"
41821 },
41822 "netmask6" : {
41823 "description" : "Network mask.",
41824 "maximum" : 128,
41825 "minimum" : 0,
41826 "optional" : 1,
41827 "requires" : "address6",
41828 "type" : "integer",
41829 "typetext" : "<integer> (0 - 128)"
41830 },
7aacca6f 41831 "node" : {
7aacca6f 41832 "description" : "The cluster node name.",
44660702 41833 "format" : "pve-node",
013dc89f
DM
41834 "type" : "string",
41835 "typetext" : "<string>"
4d47f125
TL
41836 },
41837 "ovs_bonds" : {
41838 "description" : "Specify the interfaces used by the bonding device.",
41839 "format" : "pve-iface-list",
41840 "optional" : 1,
41841 "type" : "string",
41842 "typetext" : "<string>"
41843 },
41844 "ovs_bridge" : {
41845 "description" : "The OVS bridge associated with a OVS port. This is required when you create an OVS port.",
41846 "format" : "pve-iface",
41847 "optional" : 1,
41848 "type" : "string",
41849 "typetext" : "<string>"
41850 },
41851 "ovs_options" : {
41852 "description" : "OVS interface options.",
41853 "maxLength" : 1024,
41854 "optional" : 1,
41855 "type" : "string",
41856 "typetext" : "<string>"
41857 },
41858 "ovs_ports" : {
1e3f8156 41859 "description" : "Specify the interfaces you want to add to your bridge.",
4d47f125
TL
41860 "format" : "pve-iface-list",
41861 "optional" : 1,
41862 "type" : "string",
41863 "typetext" : "<string>"
41864 },
41865 "ovs_tag" : {
41866 "description" : "Specify a VLan tag (used by OVSPort, OVSIntPort, OVSBond)",
41867 "maximum" : 4094,
41868 "minimum" : 1,
41869 "optional" : 1,
41870 "type" : "integer",
41871 "typetext" : "<integer> (1 - 4094)"
41872 },
41873 "slaves" : {
41874 "description" : "Specify the interfaces used by the bonding device.",
41875 "format" : "pve-iface-list",
41876 "optional" : 1,
41877 "type" : "string",
41878 "typetext" : "<string>"
41879 },
41880 "type" : {
41881 "description" : "Network interface type",
41882 "enum" : [
41883 "bridge",
41884 "bond",
41885 "eth",
41886 "alias",
41887 "vlan",
41888 "OVSBridge",
41889 "OVSBond",
41890 "OVSPort",
41891 "OVSIntPort",
41892 "unknown"
41893 ],
41894 "type" : "string"
e9cd3bd4
TL
41895 },
41896 "vlan-id" : {
41897 "description" : "vlan-id for a custom named vlan interface (ifupdown2 only).",
41898 "maximum" : 4094,
41899 "minimum" : 1,
41900 "optional" : 1,
41901 "type" : "integer",
41902 "typetext" : "<integer> (1 - 4094)"
41903 },
41904 "vlan-raw-device" : {
41905 "description" : "Specify the raw interface for the vlan interface.",
41906 "format" : "pve-iface",
41907 "optional" : 1,
41908 "type" : "string",
41909 "typetext" : "<string>"
7aacca6f
DM
41910 }
41911 }
41912 },
35a75dd3
DM
41913 "permissions" : {
41914 "check" : [
41915 "perm",
41916 "/nodes/{node}",
41917 [
41918 "Sys.Modify"
41919 ]
41920 ]
41921 },
7aacca6f 41922 "protected" : 1,
7aacca6f 41923 "proxyto" : "node",
44660702
DM
41924 "returns" : {
41925 "type" : "null"
41926 }
41927 },
41928 "PUT" : {
e9cd3bd4 41929 "allowtoken" : 1,
4d47f125 41930 "description" : "Reload network configuration",
44660702 41931 "method" : "PUT",
4d47f125 41932 "name" : "reload_network_config",
7aacca6f
DM
41933 "parameters" : {
41934 "additionalProperties" : 0,
41935 "properties" : {
7aacca6f 41936 "node" : {
7aacca6f 41937 "description" : "The cluster node name.",
44660702 41938 "format" : "pve-node",
013dc89f
DM
41939 "type" : "string",
41940 "typetext" : "<string>"
7aacca6f
DM
41941 }
41942 }
41943 },
35a75dd3
DM
41944 "permissions" : {
41945 "check" : [
41946 "perm",
41947 "/nodes/{node}",
41948 [
41949 "Sys.Modify"
41950 ]
41951 ]
41952 },
44660702
DM
41953 "protected" : 1,
41954 "proxyto" : "node",
7aacca6f 41955 "returns" : {
4d47f125 41956 "type" : "string"
44660702 41957 }
7aacca6f
DM
41958 }
41959 },
4d47f125
TL
41960 "leaf" : 0,
41961 "path" : "/nodes/{node}/network",
41962 "text" : "network"
7aacca6f
DM
41963 },
41964 {
7aacca6f
DM
41965 "children" : [
41966 {
4d47f125
TL
41967 "children" : [
41968 {
41969 "info" : {
41970 "GET" : {
e9cd3bd4 41971 "allowtoken" : 1,
4d47f125
TL
41972 "description" : "Read task log.",
41973 "method" : "GET",
41974 "name" : "read_task_log",
41975 "parameters" : {
41976 "additionalProperties" : 0,
41977 "properties" : {
9d2e98ed
TL
41978 "download" : {
41979 "description" : "Whether the tasklog file should be downloaded. This parameter can't be used in conjunction with other parameters",
41980 "optional" : 1,
41981 "type" : "boolean",
41982 "typetext" : "<boolean>"
41983 },
4d47f125
TL
41984 "limit" : {
41985 "default" : 50,
9d2e98ed 41986 "description" : "The amount of lines to read from the tasklog.",
4d47f125
TL
41987 "minimum" : 0,
41988 "optional" : 1,
41989 "type" : "integer",
41990 "typetext" : "<integer> (0 - N)"
41991 },
41992 "node" : {
41993 "description" : "The cluster node name.",
41994 "format" : "pve-node",
41995 "type" : "string",
41996 "typetext" : "<string>"
41997 },
41998 "start" : {
41999 "default" : 0,
9d2e98ed 42000 "description" : "Start at this line when reading the tasklog",
4d47f125
TL
42001 "minimum" : 0,
42002 "optional" : 1,
42003 "type" : "integer",
42004 "typetext" : "<integer> (0 - N)"
42005 },
42006 "upid" : {
5370fa8c 42007 "description" : "The task's unique ID.",
4d47f125
TL
42008 "type" : "string",
42009 "typetext" : "<string>"
42010 }
42011 }
42012 },
42013 "permissions" : {
5370fa8c 42014 "description" : "The user needs 'Sys.Audit' permissions on '/nodes/<node>' if they aren't the owner of the task.",
4d47f125
TL
42015 "user" : "all"
42016 },
42017 "protected" : 1,
42018 "proxyto" : "node",
42019 "returns" : {
42020 "items" : {
42021 "properties" : {
42022 "n" : {
42023 "description" : "Line number",
42024 "type" : "integer"
42025 },
42026 "t" : {
42027 "description" : "Line text",
42028 "type" : "string"
42029 }
42030 },
42031 "type" : "object"
42032 },
42033 "type" : "array"
42034 }
42035 }
42036 },
42037 "leaf" : 1,
42038 "path" : "/nodes/{node}/tasks/{upid}/log",
42039 "text" : "log"
42040 },
42041 {
42042 "info" : {
42043 "GET" : {
e9cd3bd4 42044 "allowtoken" : 1,
4d47f125
TL
42045 "description" : "Read task status.",
42046 "method" : "GET",
42047 "name" : "read_task_status",
42048 "parameters" : {
42049 "additionalProperties" : 0,
42050 "properties" : {
42051 "node" : {
42052 "description" : "The cluster node name.",
42053 "format" : "pve-node",
42054 "type" : "string",
42055 "typetext" : "<string>"
42056 },
42057 "upid" : {
5370fa8c 42058 "description" : "The task's unique ID.",
4d47f125
TL
42059 "type" : "string",
42060 "typetext" : "<string>"
42061 }
42062 }
42063 },
42064 "permissions" : {
5370fa8c 42065 "description" : "The user needs 'Sys.Audit' permissions on '/nodes/<node>' if they are not the owner of the task.",
4d47f125
TL
42066 "user" : "all"
42067 },
42068 "protected" : 1,
42069 "proxyto" : "node",
42070 "returns" : {
42071 "properties" : {
5370fa8c
TL
42072 "exitstatus" : {
42073 "optional" : 1,
42074 "type" : "string"
42075 },
42076 "id" : {
42077 "type" : "string"
42078 },
42079 "node" : {
42080 "type" : "string"
42081 },
4d47f125
TL
42082 "pid" : {
42083 "type" : "integer"
42084 },
5370fa8c
TL
42085 "starttime" : {
42086 "type" : "number"
42087 },
4d47f125
TL
42088 "status" : {
42089 "enum" : [
42090 "running",
42091 "stopped"
42092 ],
42093 "type" : "string"
5370fa8c
TL
42094 },
42095 "type" : {
42096 "type" : "string"
42097 },
42098 "upid" : {
42099 "type" : "string"
42100 },
42101 "user" : {
42102 "type" : "string"
4d47f125
TL
42103 }
42104 },
42105 "type" : "object"
42106 }
42107 }
42108 },
42109 "leaf" : 1,
42110 "path" : "/nodes/{node}/tasks/{upid}/status",
42111 "text" : "status"
42112 }
42113 ],
56122987 42114 "info" : {
7aacca6f 42115 "DELETE" : {
e9cd3bd4 42116 "allowtoken" : 1,
4d47f125 42117 "description" : "Stop a task.",
44660702 42118 "method" : "DELETE",
4d47f125 42119 "name" : "stop_task",
44660702
DM
42120 "parameters" : {
42121 "additionalProperties" : 0,
42122 "properties" : {
44660702
DM
42123 "node" : {
42124 "description" : "The cluster node name.",
42125 "format" : "pve-node",
013dc89f
DM
42126 "type" : "string",
42127 "typetext" : "<string>"
4d47f125
TL
42128 },
42129 "upid" : {
42130 "type" : "string",
42131 "typetext" : "<string>"
44660702
DM
42132 }
42133 }
7aacca6f
DM
42134 },
42135 "permissions" : {
5370fa8c 42136 "description" : "The user needs 'Sys.Modify' permissions on '/nodes/<node>' if they aren't the owner of the task.",
4d47f125 42137 "user" : "all"
7aacca6f 42138 },
44660702 42139 "protected" : 1,
7aacca6f 42140 "proxyto" : "node",
44660702
DM
42141 "returns" : {
42142 "type" : "null"
42143 }
42144 },
42145 "GET" : {
e9cd3bd4 42146 "allowtoken" : 1,
4d47f125 42147 "description" : "",
44660702 42148 "method" : "GET",
4d47f125 42149 "name" : "upid_index",
7aacca6f
DM
42150 "parameters" : {
42151 "additionalProperties" : 0,
42152 "properties" : {
7aacca6f 42153 "node" : {
44660702 42154 "description" : "The cluster node name.",
7aacca6f 42155 "format" : "pve-node",
013dc89f
DM
42156 "type" : "string",
42157 "typetext" : "<string>"
7aacca6f 42158 },
4d47f125
TL
42159 "upid" : {
42160 "type" : "string",
42161 "typetext" : "<string>"
7aacca6f
DM
42162 }
42163 }
42164 },
7aacca6f 42165 "permissions" : {
4d47f125 42166 "user" : "all"
7aacca6f
DM
42167 },
42168 "returns" : {
4d47f125
TL
42169 "items" : {
42170 "properties" : {},
42171 "type" : "object"
42172 },
42173 "links" : [
42174 {
42175 "href" : "{name}",
42176 "rel" : "child"
42177 }
42178 ],
42179 "type" : "array"
44660702 42180 }
7aacca6f
DM
42181 }
42182 },
4d47f125
TL
42183 "leaf" : 0,
42184 "path" : "/nodes/{node}/tasks/{upid}",
42185 "text" : "{upid}"
7aacca6f
DM
42186 }
42187 ],
7aacca6f 42188 "info" : {
44660702 42189 "GET" : {
e9cd3bd4 42190 "allowtoken" : 1,
4d47f125 42191 "description" : "Read task list for one node (finished tasks).",
44660702 42192 "method" : "GET",
4d47f125 42193 "name" : "node_tasks",
44660702
DM
42194 "parameters" : {
42195 "additionalProperties" : 0,
42196 "properties" : {
4d47f125
TL
42197 "errors" : {
42198 "default" : 0,
5370fa8c 42199 "description" : "Only list tasks with a status of ERROR.",
7aacca6f 42200 "optional" : 1,
4d47f125
TL
42201 "type" : "boolean",
42202 "typetext" : "<boolean>"
7aacca6f 42203 },
4d47f125
TL
42204 "limit" : {
42205 "default" : 50,
42206 "description" : "Only list this amount of tasks.",
42207 "minimum" : 0,
44660702 42208 "optional" : 1,
4d47f125
TL
42209 "type" : "integer",
42210 "typetext" : "<integer> (0 - N)"
42211 },
42212 "node" : {
42213 "description" : "The cluster node name.",
42214 "format" : "pve-node",
013dc89f
DM
42215 "type" : "string",
42216 "typetext" : "<string>"
44660702 42217 },
34f3e481
TL
42218 "since" : {
42219 "description" : "Only list tasks since this UNIX epoch.",
42220 "optional" : 1,
42221 "type" : "integer",
42222 "typetext" : "<integer>"
42223 },
5f26e15b
TL
42224 "source" : {
42225 "default" : "archive",
42226 "description" : "List archived, active or all tasks.",
42227 "enum" : [
42228 "archive",
42229 "active",
42230 "all"
42231 ],
42232 "optional" : 1,
42233 "type" : "string"
42234 },
4d47f125
TL
42235 "start" : {
42236 "default" : 0,
42237 "description" : "List tasks beginning from this offset.",
42238 "minimum" : 0,
44660702 42239 "optional" : 1,
4d47f125
TL
42240 "type" : "integer",
42241 "typetext" : "<integer> (0 - N)"
44660702 42242 },
34f3e481
TL
42243 "statusfilter" : {
42244 "description" : "List of Task States that should be returned.",
42245 "format" : "pve-task-status-type-list",
42246 "optional" : 1,
42247 "type" : "string",
42248 "typetext" : "<string>"
42249 },
5f26e15b
TL
42250 "typefilter" : {
42251 "description" : "Only list tasks of this type (e.g., vzstart, vzdump).",
42252 "optional" : 1,
42253 "type" : "string",
42254 "typetext" : "<string>"
42255 },
34f3e481
TL
42256 "until" : {
42257 "description" : "Only list tasks until this UNIX epoch.",
42258 "optional" : 1,
42259 "type" : "integer",
42260 "typetext" : "<integer>"
42261 },
4d47f125
TL
42262 "userfilter" : {
42263 "description" : "Only list tasks from this user.",
44660702 42264 "optional" : 1,
013dc89f
DM
42265 "type" : "string",
42266 "typetext" : "<string>"
44660702 42267 },
4d47f125
TL
42268 "vmid" : {
42269 "description" : "Only list tasks for this VM.",
42270 "format" : "pve-vmid",
8dd66e12
TL
42271 "maximum" : 999999999,
42272 "minimum" : 100,
44660702 42273 "optional" : 1,
4bd7df8b 42274 "type" : "integer",
8dd66e12 42275 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
42276 }
42277 }
42278 },
42279 "permissions" : {
42280 "description" : "List task associated with the current user, or all task the user has 'Sys.Audit' permissions on /nodes/<node> (the <node> the task runs on).",
42281 "user" : "all"
42282 },
42283 "proxyto" : "node",
42284 "returns" : {
42285 "items" : {
42286 "properties" : {
42287 "endtime" : {
42288 "optional" : 1,
42289 "title" : "Endtime",
42290 "type" : "integer"
42291 },
42292 "id" : {
4d47f125
TL
42293 "title" : "ID",
42294 "type" : "string"
42295 },
42296 "node" : {
4d47f125
TL
42297 "title" : "Node",
42298 "type" : "string"
42299 },
42300 "pid" : {
4d47f125
TL
42301 "title" : "PID",
42302 "type" : "integer"
42303 },
42304 "pstart" : {
4d47f125
TL
42305 "type" : "integer"
42306 },
42307 "starttime" : {
4d47f125
TL
42308 "title" : "Starttime",
42309 "type" : "integer"
42310 },
42311 "status" : {
42312 "optional" : 1,
42313 "title" : "Status",
42314 "type" : "string"
42315 },
42316 "type" : {
4d47f125
TL
42317 "title" : "Type",
42318 "type" : "string"
42319 },
42320 "upid" : {
42321 "title" : "UPID",
42322 "type" : "string"
42323 },
42324 "user" : {
4d47f125
TL
42325 "title" : "User",
42326 "type" : "string"
42327 }
44660702 42328 },
4d47f125
TL
42329 "type" : "object"
42330 },
42331 "links" : [
42332 {
42333 "href" : "{upid}",
42334 "rel" : "child"
42335 }
42336 ],
42337 "type" : "array"
42338 }
42339 }
42340 },
42341 "leaf" : 0,
42342 "path" : "/nodes/{node}/tasks",
42343 "text" : "tasks"
42344 },
42345 {
42346 "children" : [
42347 {
42348 "info" : {
42349 "GET" : {
e9cd3bd4 42350 "allowtoken" : 1,
d2656385 42351 "description" : "Scan remote NFS server.",
4d47f125 42352 "method" : "GET",
d2656385 42353 "name" : "nfsscan",
4d47f125
TL
42354 "parameters" : {
42355 "additionalProperties" : 0,
42356 "properties" : {
42357 "node" : {
42358 "description" : "The cluster node name.",
42359 "format" : "pve-node",
42360 "type" : "string",
42361 "typetext" : "<string>"
d2656385
TL
42362 },
42363 "server" : {
42364 "description" : "The server address (name or IP).",
42365 "format" : "pve-storage-server",
42366 "type" : "string",
42367 "typetext" : "<string>"
4d47f125
TL
42368 }
42369 }
44660702 42370 },
4d47f125
TL
42371 "permissions" : {
42372 "check" : [
42373 "perm",
42374 "/storage",
42375 [
42376 "Datastore.Allocate"
42377 ]
42378 ]
42379 },
42380 "protected" : 1,
42381 "proxyto" : "node",
42382 "returns" : {
42383 "items" : {
42384 "properties" : {
d2656385
TL
42385 "options" : {
42386 "description" : "NFS export options.",
42387 "type" : "string"
42388 },
42389 "path" : {
42390 "description" : "The exported path.",
4d47f125
TL
42391 "type" : "string"
42392 }
42393 },
42394 "type" : "object"
42395 },
42396 "type" : "array"
42397 }
42398 }
42399 },
42400 "leaf" : 1,
d2656385
TL
42401 "path" : "/nodes/{node}/scan/nfs",
42402 "text" : "nfs"
4d47f125
TL
42403 },
42404 {
42405 "info" : {
42406 "GET" : {
e9cd3bd4 42407 "allowtoken" : 1,
d2656385 42408 "description" : "Scan remote CIFS server.",
4d47f125 42409 "method" : "GET",
d2656385 42410 "name" : "cifsscan",
4d47f125
TL
42411 "parameters" : {
42412 "additionalProperties" : 0,
42413 "properties" : {
d2656385
TL
42414 "domain" : {
42415 "description" : "SMB domain (Workgroup).",
42416 "optional" : 1,
42417 "type" : "string",
42418 "typetext" : "<string>"
42419 },
4d47f125
TL
42420 "node" : {
42421 "description" : "The cluster node name.",
42422 "format" : "pve-node",
42423 "type" : "string",
42424 "typetext" : "<string>"
42425 },
d2656385
TL
42426 "password" : {
42427 "description" : "User password.",
42428 "optional" : 1,
42429 "type" : "string",
42430 "typetext" : "<string>"
42431 },
4d47f125
TL
42432 "server" : {
42433 "description" : "The server address (name or IP).",
42434 "format" : "pve-storage-server",
42435 "type" : "string",
42436 "typetext" : "<string>"
d2656385
TL
42437 },
42438 "username" : {
42439 "description" : "User name.",
42440 "optional" : 1,
42441 "type" : "string",
42442 "typetext" : "<string>"
4d47f125
TL
42443 }
42444 }
42445 },
42446 "permissions" : {
42447 "check" : [
42448 "perm",
42449 "/storage",
42450 [
42451 "Datastore.Allocate"
42452 ]
42453 ]
42454 },
42455 "protected" : 1,
42456 "proxyto" : "node",
42457 "returns" : {
42458 "items" : {
42459 "properties" : {
d2656385
TL
42460 "description" : {
42461 "description" : "Descriptive text from server.",
4d47f125
TL
42462 "type" : "string"
42463 },
d2656385
TL
42464 "share" : {
42465 "description" : "The cifs share name.",
4d47f125
TL
42466 "type" : "string"
42467 }
42468 },
42469 "type" : "object"
42470 },
42471 "type" : "array"
42472 }
42473 }
42474 },
42475 "leaf" : 1,
d2656385
TL
42476 "path" : "/nodes/{node}/scan/cifs",
42477 "text" : "cifs"
4d47f125
TL
42478 },
42479 {
42480 "info" : {
42481 "GET" : {
e9cd3bd4 42482 "allowtoken" : 1,
d2656385 42483 "description" : "Scan remote Proxmox Backup Server.",
4d47f125 42484 "method" : "GET",
d2656385 42485 "name" : "pbsscan",
4d47f125
TL
42486 "parameters" : {
42487 "additionalProperties" : 0,
42488 "properties" : {
d2656385
TL
42489 "fingerprint" : {
42490 "description" : "Certificate SHA 256 fingerprint.",
4d47f125 42491 "optional" : 1,
d2656385
TL
42492 "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
42493 "type" : "string"
4d47f125
TL
42494 },
42495 "node" : {
42496 "description" : "The cluster node name.",
42497 "format" : "pve-node",
42498 "type" : "string",
42499 "typetext" : "<string>"
42500 },
42501 "password" : {
d2656385 42502 "description" : "User password or API token secret.",
4d47f125
TL
42503 "type" : "string",
42504 "typetext" : "<string>"
42505 },
d2656385
TL
42506 "port" : {
42507 "default" : 8007,
42508 "description" : "Optional port.",
42509 "maximum" : 65535,
42510 "minimum" : 1,
42511 "optional" : 1,
42512 "type" : "integer",
42513 "typetext" : "<integer> (1 - 65535)"
42514 },
4d47f125
TL
42515 "server" : {
42516 "description" : "The server address (name or IP).",
42517 "format" : "pve-storage-server",
42518 "type" : "string",
42519 "typetext" : "<string>"
42520 },
42521 "username" : {
d2656385 42522 "description" : "User-name or API token-ID.",
4d47f125
TL
42523 "type" : "string",
42524 "typetext" : "<string>"
42525 }
42526 }
42527 },
42528 "permissions" : {
42529 "check" : [
42530 "perm",
42531 "/storage",
42532 [
42533 "Datastore.Allocate"
42534 ]
42535 ]
42536 },
42537 "protected" : 1,
42538 "proxyto" : "node",
42539 "returns" : {
42540 "items" : {
42541 "properties" : {
d2656385
TL
42542 "comment" : {
42543 "description" : "Comment from server.",
42544 "optional" : 1,
4d47f125
TL
42545 "type" : "string"
42546 },
d2656385
TL
42547 "store" : {
42548 "description" : "The datastore name.",
4d47f125
TL
42549 "type" : "string"
42550 }
42551 },
42552 "type" : "object"
42553 },
42554 "type" : "array"
56122987 42555 }
44660702 42556 }
56122987 42557 },
4d47f125 42558 "leaf" : 1,
d2656385
TL
42559 "path" : "/nodes/{node}/scan/pbs",
42560 "text" : "pbs"
4d47f125 42561 },
44660702 42562 {
4d47f125
TL
42563 "info" : {
42564 "GET" : {
e9cd3bd4 42565 "allowtoken" : 1,
4d47f125
TL
42566 "description" : "Scan remote GlusterFS server.",
42567 "method" : "GET",
42568 "name" : "glusterfsscan",
42569 "parameters" : {
42570 "additionalProperties" : 0,
42571 "properties" : {
42572 "node" : {
42573 "description" : "The cluster node name.",
42574 "format" : "pve-node",
42575 "type" : "string",
42576 "typetext" : "<string>"
7aacca6f 42577 },
4d47f125
TL
42578 "server" : {
42579 "description" : "The server address (name or IP).",
42580 "format" : "pve-storage-server",
42581 "type" : "string",
42582 "typetext" : "<string>"
44660702 42583 }
7aacca6f 42584 }
56122987 42585 },
4d47f125
TL
42586 "permissions" : {
42587 "check" : [
42588 "perm",
42589 "/storage",
42590 [
42591 "Datastore.Allocate"
42592 ]
42593 ]
42594 },
42595 "protected" : 1,
42596 "proxyto" : "node",
42597 "returns" : {
42598 "items" : {
42599 "properties" : {
42600 "volname" : {
42601 "description" : "The volume name.",
42602 "type" : "string"
7aacca6f
DM
42603 }
42604 },
4d47f125
TL
42605 "type" : "object"
42606 },
42607 "type" : "array"
42608 }
42609 }
42610 },
42611 "leaf" : 1,
42612 "path" : "/nodes/{node}/scan/glusterfs",
42613 "text" : "glusterfs"
42614 },
42615 {
42616 "info" : {
42617 "GET" : {
e9cd3bd4 42618 "allowtoken" : 1,
4d47f125
TL
42619 "description" : "Scan remote iSCSI server.",
42620 "method" : "GET",
42621 "name" : "iscsiscan",
42622 "parameters" : {
42623 "additionalProperties" : 0,
42624 "properties" : {
42625 "node" : {
42626 "description" : "The cluster node name.",
42627 "format" : "pve-node",
42628 "type" : "string",
42629 "typetext" : "<string>"
56122987 42630 },
4d47f125
TL
42631 "portal" : {
42632 "description" : "The iSCSI portal (IP or DNS name with optional port).",
42633 "format" : "pve-storage-portal-dns",
42634 "type" : "string",
42635 "typetext" : "<string>"
42636 }
42637 }
42638 },
42639 "permissions" : {
42640 "check" : [
42641 "perm",
42642 "/storage",
42643 [
42644 "Datastore.Allocate"
42645 ]
42646 ]
42647 },
42648 "protected" : 1,
42649 "proxyto" : "node",
42650 "returns" : {
42651 "items" : {
42652 "properties" : {
42653 "portal" : {
42654 "description" : "The iSCSI portal name.",
42655 "type" : "string"
7aacca6f 42656 },
4d47f125
TL
42657 "target" : {
42658 "description" : "The iSCSI target name.",
42659 "type" : "string"
42660 }
42661 },
42662 "type" : "object"
42663 },
42664 "type" : "array"
42665 }
42666 }
42667 },
42668 "leaf" : 1,
42669 "path" : "/nodes/{node}/scan/iscsi",
42670 "text" : "iscsi"
42671 },
42672 {
42673 "info" : {
42674 "GET" : {
e9cd3bd4 42675 "allowtoken" : 1,
4d47f125
TL
42676 "description" : "List local LVM volume groups.",
42677 "method" : "GET",
42678 "name" : "lvmscan",
42679 "parameters" : {
42680 "additionalProperties" : 0,
42681 "properties" : {
42682 "node" : {
42683 "description" : "The cluster node name.",
42684 "format" : "pve-node",
42685 "type" : "string",
42686 "typetext" : "<string>"
56122987 42687 }
7aacca6f 42688 }
44660702 42689 },
4d47f125
TL
42690 "permissions" : {
42691 "check" : [
42692 "perm",
42693 "/storage",
42694 [
42695 "Datastore.Allocate"
42696 ]
42697 ]
42698 },
42699 "protected" : 1,
42700 "proxyto" : "node",
42701 "returns" : {
42702 "items" : {
42703 "properties" : {
42704 "vg" : {
42705 "description" : "The LVM logical volume group name.",
42706 "type" : "string"
42707 }
42708 },
42709 "type" : "object"
42710 },
42711 "type" : "array"
42712 }
56122987 42713 }
4d47f125
TL
42714 },
42715 "leaf" : 1,
42716 "path" : "/nodes/{node}/scan/lvm",
42717 "text" : "lvm"
42718 },
42719 {
44660702 42720 "info" : {
4d47f125 42721 "GET" : {
e9cd3bd4 42722 "allowtoken" : 1,
4d47f125
TL
42723 "description" : "List local LVM Thin Pools.",
42724 "method" : "GET",
42725 "name" : "lvmthinscan",
44660702
DM
42726 "parameters" : {
42727 "additionalProperties" : 0,
42728 "properties" : {
42729 "node" : {
42730 "description" : "The cluster node name.",
42731 "format" : "pve-node",
013dc89f
DM
42732 "type" : "string",
42733 "typetext" : "<string>"
44660702 42734 },
4d47f125
TL
42735 "vg" : {
42736 "maxLength" : 100,
42737 "pattern" : "[a-zA-Z0-9\\.\\+\\_][a-zA-Z0-9\\.\\+\\_\\-]+",
42738 "type" : "string"
44660702 42739 }
7aacca6f 42740 }
44660702
DM
42741 },
42742 "permissions" : {
4d47f125
TL
42743 "check" : [
42744 "perm",
42745 "/storage",
42746 [
42747 "Datastore.Allocate"
42748 ]
42749 ]
44660702
DM
42750 },
42751 "protected" : 1,
42752 "proxyto" : "node",
42753 "returns" : {
4d47f125
TL
42754 "items" : {
42755 "properties" : {
42756 "lv" : {
42757 "description" : "The LVM Thin Pool name (LVM logical volume).",
42758 "type" : "string"
42759 }
42760 },
42761 "type" : "object"
42762 },
42763 "type" : "array"
7aacca6f 42764 }
4d47f125
TL
42765 }
42766 },
42767 "leaf" : 1,
42768 "path" : "/nodes/{node}/scan/lvmthin",
42769 "text" : "lvmthin"
42770 },
d2656385
TL
42771 {
42772 "info" : {
42773 "GET" : {
42774 "allowtoken" : 1,
42775 "description" : "Scan zfs pool list on local node.",
42776 "method" : "GET",
42777 "name" : "zfsscan",
42778 "parameters" : {
42779 "additionalProperties" : 0,
42780 "properties" : {
42781 "node" : {
42782 "description" : "The cluster node name.",
42783 "format" : "pve-node",
42784 "type" : "string",
42785 "typetext" : "<string>"
42786 }
42787 }
42788 },
42789 "permissions" : {
42790 "check" : [
42791 "perm",
42792 "/storage",
42793 [
42794 "Datastore.Allocate"
42795 ]
42796 ]
42797 },
42798 "protected" : 1,
42799 "proxyto" : "node",
42800 "returns" : {
42801 "items" : {
42802 "properties" : {
42803 "pool" : {
42804 "description" : "ZFS pool name.",
42805 "type" : "string"
42806 }
42807 },
42808 "type" : "object"
42809 },
42810 "type" : "array"
42811 }
42812 }
42813 },
42814 "leaf" : 1,
42815 "path" : "/nodes/{node}/scan/zfs",
42816 "text" : "zfs"
44660702
DM
42817 }
42818 ],
42819 "info" : {
42820 "GET" : {
e9cd3bd4 42821 "allowtoken" : 1,
4d47f125 42822 "description" : "Index of available scan methods",
44660702 42823 "method" : "GET",
4d47f125 42824 "name" : "index",
56122987 42825 "parameters" : {
7aacca6f 42826 "additionalProperties" : 0,
56122987 42827 "properties" : {
56122987
DM
42828 "node" : {
42829 "description" : "The cluster node name.",
44660702 42830 "format" : "pve-node",
013dc89f
DM
42831 "type" : "string",
42832 "typetext" : "<string>"
56122987
DM
42833 }
42834 }
42835 },
7aacca6f
DM
42836 "permissions" : {
42837 "user" : "all"
42838 },
56122987
DM
42839 "returns" : {
42840 "items" : {
42841 "properties" : {
4d47f125 42842 "method" : {
56122987
DM
42843 "type" : "string"
42844 }
42845 },
42846 "type" : "object"
42847 },
56122987
DM
42848 "links" : [
42849 {
4d47f125 42850 "href" : "{method}",
44660702 42851 "rel" : "child"
56122987 42852 }
44660702
DM
42853 ],
42854 "type" : "array"
56122987
DM
42855 }
42856 }
42857 },
44660702 42858 "leaf" : 0,
4d47f125
TL
42859 "path" : "/nodes/{node}/scan",
42860 "text" : "scan"
44660702 42861 },
e2d681b3
TL
42862 {
42863 "children" : [
42864 {
42865 "children" : [
42866 {
42867 "children" : [
42868 {
42869 "info" : {
42870 "GET" : {
e9cd3bd4 42871 "allowtoken" : 1,
e2d681b3
TL
42872 "description" : "List mediated device types for given PCI device.",
42873 "method" : "GET",
42874 "name" : "mdevscan",
42875 "parameters" : {
42876 "additionalProperties" : 0,
42877 "properties" : {
42878 "node" : {
42879 "description" : "The cluster node name.",
42880 "format" : "pve-node",
42881 "type" : "string",
42882 "typetext" : "<string>"
42883 },
42884 "pciid" : {
42885 "description" : "The PCI ID to list the mdev types for.",
42886 "pattern" : "(?:[0-9a-fA-F]{4}:)?[0-9a-fA-F]{2}:[0-9a-fA-F]{2}\\.[0-9a-fA-F]",
42887 "type" : "string"
42888 }
42889 }
42890 },
42891 "permissions" : {
42892 "check" : [
42893 "perm",
42894 "/",
42895 [
9d2e98ed 42896 "Sys.Audit",
e2d681b3 42897 "Sys.Modify"
9d2e98ed
TL
42898 ],
42899 "any",
42900 1
e2d681b3
TL
42901 ]
42902 },
42903 "protected" : 1,
42904 "proxyto" : "node",
42905 "returns" : {
42906 "items" : {
42907 "properties" : {
42908 "available" : {
42909 "description" : "The number of still available instances of this type.",
42910 "type" : "integer"
42911 },
42912 "description" : {
42913 "type" : "string"
42914 },
42915 "type" : {
42916 "description" : "The name of the mdev type.",
42917 "type" : "string"
42918 }
42919 },
42920 "type" : "object"
42921 },
42922 "type" : "array"
42923 }
42924 }
42925 },
42926 "leaf" : 1,
42927 "path" : "/nodes/{node}/hardware/pci/{pciid}/mdev",
42928 "text" : "mdev"
42929 }
42930 ],
42931 "info" : {
42932 "GET" : {
e9cd3bd4 42933 "allowtoken" : 1,
e2d681b3
TL
42934 "description" : "Index of available pci methods",
42935 "method" : "GET",
42936 "name" : "pciindex",
42937 "parameters" : {
42938 "additionalProperties" : 0,
42939 "properties" : {
42940 "node" : {
42941 "description" : "The cluster node name.",
42942 "format" : "pve-node",
42943 "type" : "string",
42944 "typetext" : "<string>"
42945 },
42946 "pciid" : {
42947 "pattern" : "(?:[0-9a-fA-F]{4}:)?[0-9a-fA-F]{2}:[0-9a-fA-F]{2}\\.[0-9a-fA-F]",
42948 "type" : "string"
42949 }
42950 }
42951 },
42952 "permissions" : {
42953 "user" : "all"
42954 },
42955 "returns" : {
42956 "items" : {
42957 "properties" : {
42958 "method" : {
42959 "type" : "string"
42960 }
42961 },
42962 "type" : "object"
42963 },
42964 "links" : [
42965 {
42966 "href" : "{method}",
42967 "rel" : "child"
42968 }
42969 ],
42970 "type" : "array"
42971 }
42972 }
42973 },
42974 "leaf" : 0,
42975 "path" : "/nodes/{node}/hardware/pci/{pciid}",
42976 "text" : "{pciid}"
42977 }
42978 ],
42979 "info" : {
42980 "GET" : {
e9cd3bd4 42981 "allowtoken" : 1,
e2d681b3
TL
42982 "description" : "List local PCI devices.",
42983 "method" : "GET",
42984 "name" : "pciscan",
42985 "parameters" : {
42986 "additionalProperties" : 0,
42987 "properties" : {
42988 "node" : {
42989 "description" : "The cluster node name.",
42990 "format" : "pve-node",
42991 "type" : "string",
42992 "typetext" : "<string>"
42993 },
42994 "pci-class-blacklist" : {
5370fa8c
TL
42995 "default" : "05;06;0b",
42996 "description" : "A list of blacklisted PCI classes, which will not be returned. Following are filtered by default: Memory Controller (05), Bridge (06) and Processor (0b).",
e2d681b3
TL
42997 "format" : "string-list",
42998 "optional" : 1,
42999 "type" : "string",
43000 "typetext" : "<string>"
43001 },
43002 "verbose" : {
43003 "default" : 1,
43004 "description" : "If disabled, does only print the PCI IDs. Otherwise, additional information like vendor and device will be returned.",
43005 "optional" : 1,
43006 "type" : "boolean",
43007 "typetext" : "<boolean>"
43008 }
43009 }
43010 },
43011 "permissions" : {
43012 "check" : [
43013 "perm",
43014 "/",
43015 [
9d2e98ed 43016 "Sys.Audit",
e2d681b3 43017 "Sys.Modify"
9d2e98ed
TL
43018 ],
43019 "any",
43020 1
e2d681b3
TL
43021 ]
43022 },
43023 "protected" : 1,
43024 "proxyto" : "node",
43025 "returns" : {
43026 "items" : {
43027 "properties" : {
43028 "class" : {
43029 "description" : "The PCI Class of the device.",
43030 "type" : "string"
43031 },
43032 "device" : {
43033 "description" : "The Device ID.",
43034 "type" : "string"
43035 },
43036 "device_name" : {
43037 "optional" : 1,
43038 "type" : "string"
43039 },
43040 "id" : {
43041 "description" : "The PCI ID.",
43042 "type" : "string"
43043 },
43044 "iommugroup" : {
43045 "description" : "The IOMMU group in which the device is in. If no IOMMU group is detected, it is set to -1.",
43046 "type" : "integer"
43047 },
43048 "mdev" : {
43049 "description" : "If set, marks that the device is capable of creating mediated devices.",
43050 "optional" : 1,
43051 "type" : "boolean"
43052 },
43053 "subsystem_device" : {
43054 "description" : "The Subsystem Device ID.",
43055 "optional" : 1,
43056 "type" : "string"
43057 },
43058 "subsystem_device_name" : {
43059 "optional" : 1,
43060 "type" : "string"
43061 },
43062 "subsystem_vendor" : {
43063 "description" : "The Subsystem Vendor ID.",
43064 "optional" : 1,
43065 "type" : "string"
43066 },
43067 "subsystem_vendor_name" : {
43068 "optional" : 1,
43069 "type" : "string"
43070 },
43071 "vendor" : {
43072 "description" : "The Vendor ID.",
43073 "type" : "string"
43074 },
43075 "vendor_name" : {
43076 "optional" : 1,
43077 "type" : "string"
43078 }
43079 },
43080 "type" : "object"
43081 },
43082 "links" : [
43083 {
43084 "href" : "{id}",
43085 "rel" : "child"
43086 }
43087 ],
43088 "type" : "array"
43089 }
43090 }
43091 },
43092 "leaf" : 0,
43093 "path" : "/nodes/{node}/hardware/pci",
43094 "text" : "pci"
d2656385
TL
43095 },
43096 {
43097 "info" : {
43098 "GET" : {
43099 "allowtoken" : 1,
43100 "description" : "List local USB devices.",
43101 "method" : "GET",
43102 "name" : "usbscan",
43103 "parameters" : {
43104 "additionalProperties" : 0,
43105 "properties" : {
43106 "node" : {
43107 "description" : "The cluster node name.",
43108 "format" : "pve-node",
43109 "type" : "string",
43110 "typetext" : "<string>"
43111 }
43112 }
43113 },
43114 "permissions" : {
43115 "check" : [
43116 "perm",
43117 "/",
43118 [
43119 "Sys.Modify"
43120 ]
43121 ]
43122 },
43123 "protected" : 1,
43124 "proxyto" : "node",
43125 "returns" : {
43126 "items" : {
43127 "properties" : {
43128 "busnum" : {
43129 "type" : "integer"
43130 },
43131 "class" : {
43132 "type" : "integer"
43133 },
43134 "devnum" : {
43135 "type" : "integer"
43136 },
43137 "level" : {
43138 "type" : "integer"
43139 },
43140 "manufacturer" : {
43141 "optional" : 1,
43142 "type" : "string"
43143 },
43144 "port" : {
43145 "type" : "integer"
43146 },
43147 "prodid" : {
43148 "type" : "string"
43149 },
43150 "product" : {
43151 "optional" : 1,
43152 "type" : "string"
43153 },
43154 "serial" : {
43155 "optional" : 1,
43156 "type" : "string"
43157 },
43158 "speed" : {
43159 "type" : "string"
43160 },
43161 "usbpath" : {
43162 "optional" : 1,
43163 "type" : "string"
43164 },
43165 "vendid" : {
43166 "type" : "string"
43167 }
43168 },
43169 "type" : "object"
43170 },
43171 "type" : "array"
43172 }
43173 }
43174 },
43175 "leaf" : 1,
43176 "path" : "/nodes/{node}/hardware/usb",
43177 "text" : "usb"
e2d681b3
TL
43178 }
43179 ],
43180 "info" : {
43181 "GET" : {
e9cd3bd4 43182 "allowtoken" : 1,
e2d681b3
TL
43183 "description" : "Index of hardware types",
43184 "method" : "GET",
43185 "name" : "index",
43186 "parameters" : {
43187 "additionalProperties" : 0,
43188 "properties" : {
43189 "node" : {
43190 "description" : "The cluster node name.",
43191 "format" : "pve-node",
43192 "type" : "string",
43193 "typetext" : "<string>"
43194 }
43195 }
43196 },
43197 "permissions" : {
43198 "user" : "all"
43199 },
43200 "returns" : {
43201 "items" : {
43202 "properties" : {
43203 "type" : {
43204 "type" : "string"
43205 }
43206 },
43207 "type" : "object"
43208 },
43209 "links" : [
43210 {
43211 "href" : "{type}",
43212 "rel" : "child"
43213 }
43214 ],
43215 "type" : "array"
43216 }
43217 }
43218 },
43219 "leaf" : 0,
43220 "path" : "/nodes/{node}/hardware",
43221 "text" : "hardware"
43222 },
d2656385
TL
43223 {
43224 "children" : [
43225 {
43226 "children" : [
0695fdaf
TL
43227 {
43228 "info" : {
43229 "GET" : {
43230 "allowtoken" : 1,
43231 "description" : "List all custom and default CPU models.",
43232 "method" : "GET",
43233 "name" : "index",
43234 "parameters" : {
43235 "additionalProperties" : 0,
43236 "properties" : {
43237 "node" : {
43238 "description" : "The cluster node name.",
43239 "format" : "pve-node",
43240 "type" : "string",
43241 "typetext" : "<string>"
43242 }
43243 }
43244 },
43245 "permissions" : {
43246 "description" : "Only returns custom models when the current user has Sys.Audit on /nodes.",
43247 "user" : "all"
43248 },
43249 "returns" : {
43250 "items" : {
43251 "properties" : {
43252 "custom" : {
43253 "description" : "True if this is a custom CPU model.",
43254 "type" : "boolean"
43255 },
43256 "name" : {
43257 "description" : "Name of the CPU model. Identifies it for subsequent API calls. Prefixed with 'custom-' for custom models.",
43258 "type" : "string"
43259 },
43260 "vendor" : {
43261 "description" : "CPU vendor visible to the guest when this model is selected. Vendor of 'reported-model' in case of custom models.",
43262 "type" : "string"
43263 }
43264 },
43265 "type" : "object"
43266 },
43267 "links" : [
43268 {
43269 "href" : "{name}",
43270 "rel" : "child"
43271 }
43272 ],
43273 "type" : "array"
43274 }
43275 }
43276 },
43277 "leaf" : 1,
43278 "path" : "/nodes/{node}/capabilities/qemu/cpu",
43279 "text" : "cpu"
43280 },
d2656385
TL
43281 {
43282 "info" : {
43283 "GET" : {
43284 "allowtoken" : 1,
43285 "description" : "Get available QEMU/KVM machine types.",
43286 "method" : "GET",
43287 "name" : "types",
43288 "parameters" : {
43289 "additionalProperties" : 0,
43290 "properties" : {
43291 "node" : {
43292 "description" : "The cluster node name.",
43293 "format" : "pve-node",
43294 "type" : "string",
43295 "typetext" : "<string>"
43296 }
43297 }
43298 },
43299 "permissions" : {
43300 "user" : "all"
43301 },
43302 "proxyto" : "node",
43303 "returns" : {
43304 "items" : {
43305 "additionalProperties" : 1,
43306 "properties" : {
43307 "id" : {
43308 "description" : "Full name of machine type and version.",
43309 "type" : "string"
43310 },
43311 "type" : {
43312 "description" : "The machine type.",
43313 "enum" : [
43314 "q35",
43315 "i440fx"
43316 ],
43317 "type" : "string"
43318 },
43319 "version" : {
43320 "description" : "The machine version.",
43321 "type" : "string"
43322 }
43323 },
43324 "type" : "object"
43325 },
43326 "type" : "array"
43327 }
43328 }
43329 },
43330 "leaf" : 1,
43331 "path" : "/nodes/{node}/capabilities/qemu/machines",
43332 "text" : "machines"
43333 }
43334 ],
43335 "info" : {
43336 "GET" : {
43337 "allowtoken" : 1,
43338 "description" : "QEMU capabilities index.",
43339 "method" : "GET",
43340 "name" : "qemu_caps_index",
43341 "parameters" : {
43342 "additionalProperties" : 0,
43343 "properties" : {
43344 "node" : {
43345 "description" : "The cluster node name.",
43346 "format" : "pve-node",
43347 "type" : "string",
43348 "typetext" : "<string>"
43349 }
43350 }
43351 },
43352 "permissions" : {
43353 "user" : "all"
43354 },
43355 "returns" : {
43356 "items" : {
43357 "properties" : {},
43358 "type" : "object"
43359 },
43360 "links" : [
43361 {
43362 "href" : "{name}",
43363 "rel" : "child"
43364 }
43365 ],
43366 "type" : "array"
43367 }
43368 }
43369 },
43370 "leaf" : 0,
43371 "path" : "/nodes/{node}/capabilities/qemu",
43372 "text" : "qemu"
43373 }
43374 ],
43375 "info" : {
43376 "GET" : {
43377 "allowtoken" : 1,
43378 "description" : "Node capabilities index.",
43379 "method" : "GET",
43380 "name" : "index",
43381 "parameters" : {
43382 "additionalProperties" : 0,
43383 "properties" : {
43384 "node" : {
43385 "description" : "The cluster node name.",
43386 "format" : "pve-node",
43387 "type" : "string",
43388 "typetext" : "<string>"
43389 }
43390 }
43391 },
43392 "permissions" : {
43393 "user" : "all"
43394 },
43395 "returns" : {
43396 "items" : {
43397 "properties" : {},
43398 "type" : "object"
43399 },
43400 "links" : [
43401 {
43402 "href" : "{name}",
43403 "rel" : "child"
43404 }
43405 ],
43406 "type" : "array"
43407 }
43408 }
43409 },
43410 "leaf" : 0,
43411 "path" : "/nodes/{node}/capabilities",
43412 "text" : "capabilities"
43413 },
44660702 43414 {
56122987
DM
43415 "children" : [
43416 {
4d47f125 43417 "children" : [
739d4d64
TL
43418 {
43419 "info" : {
43420 "DELETE" : {
43421 "allowtoken" : 1,
43422 "description" : "Prune backups. Only those using the standard naming scheme are considered.",
43423 "method" : "DELETE",
43424 "name" : "delete",
43425 "parameters" : {
43426 "additionalProperties" : 0,
43427 "properties" : {
43428 "node" : {
43429 "description" : "The cluster node name.",
43430 "format" : "pve-node",
43431 "type" : "string",
43432 "typetext" : "<string>"
43433 },
43434 "prune-backups" : {
43435 "description" : "Use these retention options instead of those from the storage configuration.",
43436 "format" : "prune-backups",
43437 "optional" : 1,
43438 "type" : "string",
4772952b 43439 "typetext" : "[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
739d4d64
TL
43440 },
43441 "storage" : {
43442 "description" : "The storage identifier.",
43443 "format" : "pve-storage-id",
907e4bc3 43444 "format_description" : "storage ID",
739d4d64 43445 "type" : "string",
907e4bc3 43446 "typetext" : "<storage ID>"
739d4d64
TL
43447 },
43448 "type" : {
43449 "description" : "Either 'qemu' or 'lxc'. Only consider backups for guests of this type.",
43450 "enum" : [
43451 "qemu",
43452 "lxc"
43453 ],
43454 "optional" : 1,
43455 "type" : "string"
43456 },
43457 "vmid" : {
43458 "description" : "Only prune backups for this VM.",
43459 "format" : "pve-vmid",
8dd66e12
TL
43460 "maximum" : 999999999,
43461 "minimum" : 100,
739d4d64
TL
43462 "optional" : 1,
43463 "type" : "integer",
8dd66e12 43464 "typetext" : "<integer> (100 - 999999999)"
739d4d64
TL
43465 }
43466 }
43467 },
43468 "permissions" : {
43469 "description" : "You need the 'Datastore.Allocate' privilege on the storage (or if a VM ID is specified, 'Datastore.AllocateSpace' and 'VM.Backup' for the VM).",
43470 "user" : "all"
43471 },
43472 "protected" : 1,
43473 "proxyto" : "node",
43474 "returns" : {
43475 "type" : "string"
43476 }
43477 },
43478 "GET" : {
43479 "allowtoken" : 1,
4772952b 43480 "description" : "Get prune information for backups. NOTE: this is only a preview and might not be what a subsequent prune call does if backups are removed/added in the meantime.",
739d4d64
TL
43481 "method" : "GET",
43482 "name" : "dryrun",
43483 "parameters" : {
43484 "additionalProperties" : 0,
43485 "properties" : {
43486 "node" : {
43487 "description" : "The cluster node name.",
43488 "format" : "pve-node",
43489 "type" : "string",
43490 "typetext" : "<string>"
43491 },
43492 "prune-backups" : {
43493 "description" : "Use these retention options instead of those from the storage configuration.",
43494 "format" : "prune-backups",
43495 "optional" : 1,
43496 "type" : "string",
4772952b 43497 "typetext" : "[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
739d4d64
TL
43498 },
43499 "storage" : {
43500 "description" : "The storage identifier.",
43501 "format" : "pve-storage-id",
907e4bc3 43502 "format_description" : "storage ID",
739d4d64 43503 "type" : "string",
907e4bc3 43504 "typetext" : "<storage ID>"
739d4d64
TL
43505 },
43506 "type" : {
43507 "description" : "Either 'qemu' or 'lxc'. Only consider backups for guests of this type.",
43508 "enum" : [
43509 "qemu",
43510 "lxc"
43511 ],
43512 "optional" : 1,
43513 "type" : "string"
43514 },
43515 "vmid" : {
43516 "description" : "Only consider backups for this guest.",
43517 "format" : "pve-vmid",
8dd66e12
TL
43518 "maximum" : 999999999,
43519 "minimum" : 100,
739d4d64
TL
43520 "optional" : 1,
43521 "type" : "integer",
8dd66e12 43522 "typetext" : "<integer> (100 - 999999999)"
739d4d64
TL
43523 }
43524 }
43525 },
43526 "permissions" : {
43527 "check" : [
43528 "perm",
43529 "/storage/{storage}",
43530 [
43531 "Datastore.Audit",
43532 "Datastore.AllocateSpace"
43533 ],
43534 "any",
43535 1
43536 ]
43537 },
43538 "protected" : 1,
43539 "proxyto" : "node",
43540 "returns" : {
43541 "items" : {
43542 "properties" : {
43543 "ctime" : {
43544 "description" : "Creation time of the backup (seconds since the UNIX epoch).",
43545 "type" : "integer"
43546 },
43547 "mark" : {
5370fa8c
TL
43548 "description" : "Whether the backup would be kept or removed. Backups that are protected or don't use the standard naming scheme are not removed.",
43549 "enum" : [
43550 "keep",
43551 "remove",
43552 "protected",
43553 "renamed"
43554 ],
739d4d64
TL
43555 "type" : "string"
43556 },
43557 "type" : {
43558 "description" : "One of 'qemu', 'lxc', 'openvz' or 'unknown'.",
43559 "type" : "string"
43560 },
43561 "vmid" : {
43562 "description" : "The VM the backup belongs to.",
43563 "optional" : 1,
43564 "type" : "integer"
43565 },
43566 "volid" : {
43567 "description" : "Backup volume ID.",
43568 "type" : "string"
43569 }
43570 },
43571 "type" : "object"
43572 },
43573 "type" : "array"
43574 }
43575 }
43576 },
43577 "leaf" : 1,
43578 "path" : "/nodes/{node}/storage/{storage}/prunebackups",
43579 "text" : "prunebackups"
43580 },
4d47f125
TL
43581 {
43582 "children" : [
43583 {
43584 "info" : {
43585 "DELETE" : {
e9cd3bd4 43586 "allowtoken" : 1,
4d47f125
TL
43587 "description" : "Delete volume",
43588 "method" : "DELETE",
43589 "name" : "delete",
43590 "parameters" : {
43591 "additionalProperties" : 0,
43592 "properties" : {
1c532546
TL
43593 "delay" : {
43594 "description" : "Time to wait for the task to finish. We return 'null' if the task finish within that time.",
43595 "maximum" : 30,
43596 "minimum" : 1,
43597 "optional" : 1,
43598 "type" : "integer",
43599 "typetext" : "<integer> (1 - 30)"
43600 },
4d47f125
TL
43601 "node" : {
43602 "description" : "The cluster node name.",
43603 "format" : "pve-node",
43604 "type" : "string",
43605 "typetext" : "<string>"
43606 },
43607 "storage" : {
43608 "description" : "The storage identifier.",
43609 "format" : "pve-storage-id",
907e4bc3 43610 "format_description" : "storage ID",
4d47f125
TL
43611 "optional" : 1,
43612 "type" : "string",
907e4bc3 43613 "typetext" : "<storage ID>"
4d47f125
TL
43614 },
43615 "volume" : {
43616 "description" : "Volume identifier",
43617 "type" : "string",
43618 "typetext" : "<string>"
43619 }
43620 }
43621 },
43622 "permissions" : {
43623 "description" : "You need 'Datastore.Allocate' privilege on the storage (or 'Datastore.AllocateSpace' for backup volumes if you have VM.Backup privilege on the VM).",
43624 "user" : "all"
43625 },
43626 "protected" : 1,
43627 "proxyto" : "node",
43628 "returns" : {
1c532546
TL
43629 "optional" : 1,
43630 "type" : "string"
4d47f125
TL
43631 }
43632 },
43633 "GET" : {
e9cd3bd4 43634 "allowtoken" : 1,
4d47f125
TL
43635 "description" : "Get volume attributes",
43636 "method" : "GET",
43637 "name" : "info",
43638 "parameters" : {
43639 "additionalProperties" : 0,
43640 "properties" : {
43641 "node" : {
43642 "description" : "The cluster node name.",
43643 "format" : "pve-node",
43644 "type" : "string",
43645 "typetext" : "<string>"
43646 },
43647 "storage" : {
43648 "description" : "The storage identifier.",
43649 "format" : "pve-storage-id",
907e4bc3 43650 "format_description" : "storage ID",
4d47f125
TL
43651 "optional" : 1,
43652 "type" : "string",
907e4bc3 43653 "typetext" : "<storage ID>"
4d47f125
TL
43654 },
43655 "volume" : {
43656 "description" : "Volume identifier",
43657 "type" : "string",
43658 "typetext" : "<string>"
43659 }
43660 }
43661 },
43662 "permissions" : {
43663 "description" : "You need read access for the volume.",
43664 "user" : "all"
43665 },
43666 "protected" : 1,
43667 "proxyto" : "node",
43668 "returns" : {
4772952b
TL
43669 "properties" : {
43670 "format" : {
43671 "description" : "Format identifier ('raw', 'qcow2', 'subvol', 'iso', 'tgz' ...)",
43672 "type" : "string"
43673 },
43674 "notes" : {
43675 "description" : "Optional notes.",
43676 "optional" : 1,
43677 "type" : "string"
43678 },
43679 "path" : {
43680 "description" : "The Path",
43681 "type" : "string"
43682 },
5370fa8c
TL
43683 "protected" : {
43684 "description" : "Protection status. Currently only supported for backups.",
43685 "optional" : 1,
43686 "type" : "boolean"
43687 },
4772952b
TL
43688 "size" : {
43689 "description" : "Volume size in bytes.",
43690 "renderer" : "bytes",
43691 "type" : "integer"
43692 },
43693 "used" : {
43694 "description" : "Used space. Please note that most storage plugins do not report anything useful here.",
43695 "renderer" : "bytes",
43696 "type" : "integer"
43697 }
43698 },
4d47f125
TL
43699 "type" : "object"
43700 }
43701 },
43702 "POST" : {
e9cd3bd4 43703 "allowtoken" : 1,
4d47f125
TL
43704 "description" : "Copy a volume. This is experimental code - do not use.",
43705 "method" : "POST",
43706 "name" : "copy",
43707 "parameters" : {
43708 "additionalProperties" : 0,
43709 "properties" : {
43710 "node" : {
43711 "description" : "The cluster node name.",
43712 "format" : "pve-node",
43713 "type" : "string",
43714 "typetext" : "<string>"
43715 },
43716 "storage" : {
43717 "description" : "The storage identifier.",
43718 "format" : "pve-storage-id",
907e4bc3 43719 "format_description" : "storage ID",
4d47f125
TL
43720 "optional" : 1,
43721 "type" : "string",
907e4bc3 43722 "typetext" : "<storage ID>"
4d47f125
TL
43723 },
43724 "target" : {
43725 "description" : "Target volume identifier",
43726 "type" : "string",
43727 "typetext" : "<string>"
43728 },
43729 "target_node" : {
43730 "description" : "Target node. Default is local node.",
43731 "format" : "pve-node",
43732 "optional" : 1,
43733 "type" : "string",
43734 "typetext" : "<string>"
43735 },
43736 "volume" : {
43737 "description" : "Source volume identifier",
43738 "type" : "string",
43739 "typetext" : "<string>"
43740 }
43741 }
43742 },
43743 "protected" : 1,
43744 "proxyto" : "node",
43745 "returns" : {
43746 "type" : "string"
43747 }
4772952b
TL
43748 },
43749 "PUT" : {
43750 "allowtoken" : 1,
43751 "description" : "Update volume attributes",
43752 "method" : "PUT",
43753 "name" : "updateattributes",
43754 "parameters" : {
43755 "additionalProperties" : 0,
43756 "properties" : {
43757 "node" : {
43758 "description" : "The cluster node name.",
43759 "format" : "pve-node",
43760 "type" : "string",
43761 "typetext" : "<string>"
43762 },
43763 "notes" : {
43764 "description" : "The new notes.",
43765 "optional" : 1,
43766 "type" : "string",
43767 "typetext" : "<string>"
43768 },
5370fa8c
TL
43769 "protected" : {
43770 "description" : "Protection status. Currently only supported for backups.",
43771 "optional" : 1,
43772 "type" : "boolean",
43773 "typetext" : "<boolean>"
43774 },
4772952b
TL
43775 "storage" : {
43776 "description" : "The storage identifier.",
43777 "format" : "pve-storage-id",
907e4bc3 43778 "format_description" : "storage ID",
4772952b
TL
43779 "optional" : 1,
43780 "type" : "string",
907e4bc3 43781 "typetext" : "<storage ID>"
4772952b
TL
43782 },
43783 "volume" : {
43784 "description" : "Volume identifier",
43785 "type" : "string",
43786 "typetext" : "<string>"
43787 }
43788 }
43789 },
43790 "permissions" : {
43791 "description" : "You need read access for the volume.",
43792 "user" : "all"
43793 },
43794 "protected" : 1,
43795 "proxyto" : "node",
43796 "returns" : {
43797 "type" : "null"
43798 }
4d47f125
TL
43799 }
43800 },
43801 "leaf" : 1,
43802 "path" : "/nodes/{node}/storage/{storage}/content/{volume}",
43803 "text" : "{volume}"
44660702 43804 }
4d47f125
TL
43805 ],
43806 "info" : {
43807 "GET" : {
e9cd3bd4 43808 "allowtoken" : 1,
4d47f125
TL
43809 "description" : "List storage content.",
43810 "method" : "GET",
43811 "name" : "index",
43812 "parameters" : {
43813 "additionalProperties" : 0,
43814 "properties" : {
43815 "content" : {
43816 "description" : "Only list content of this type.",
43817 "format" : "pve-storage-content",
43818 "optional" : 1,
43819 "type" : "string",
43820 "typetext" : "<string>"
43821 },
43822 "node" : {
43823 "description" : "The cluster node name.",
43824 "format" : "pve-node",
43825 "type" : "string",
43826 "typetext" : "<string>"
43827 },
43828 "storage" : {
43829 "description" : "The storage identifier.",
43830 "format" : "pve-storage-id",
907e4bc3 43831 "format_description" : "storage ID",
4d47f125 43832 "type" : "string",
907e4bc3 43833 "typetext" : "<storage ID>"
4d47f125
TL
43834 },
43835 "vmid" : {
43836 "description" : "Only list images for this VM",
43837 "format" : "pve-vmid",
8dd66e12
TL
43838 "maximum" : 999999999,
43839 "minimum" : 100,
4d47f125
TL
43840 "optional" : 1,
43841 "type" : "integer",
8dd66e12 43842 "typetext" : "<integer> (100 - 999999999)"
4d47f125 43843 }
56122987 43844 }
44660702 43845 },
4d47f125
TL
43846 "permissions" : {
43847 "check" : [
43848 "perm",
43849 "/storage/{storage}",
43850 [
43851 "Datastore.Audit",
43852 "Datastore.AllocateSpace"
43853 ],
43854 "any",
43855 1
43856 ]
7aacca6f 43857 },
4d47f125
TL
43858 "protected" : 1,
43859 "proxyto" : "node",
43860 "returns" : {
43861 "items" : {
43862 "properties" : {
c5aa7e14
TL
43863 "ctime" : {
43864 "description" : "Creation time (seconds since the UNIX Epoch).",
43865 "minimum" : 0,
43866 "optional" : 1,
43867 "type" : "integer"
43868 },
d2656385
TL
43869 "encrypted" : {
43870 "description" : "If whole backup is encrypted, value is the fingerprint or '1' if encrypted. Only useful for the Proxmox Backup Server storage type.",
43871 "optional" : 1,
43872 "type" : "string"
43873 },
4d47f125
TL
43874 "format" : {
43875 "description" : "Format identifier ('raw', 'qcow2', 'subvol', 'iso', 'tgz' ...)",
43876 "type" : "string"
43877 },
4772952b
TL
43878 "notes" : {
43879 "description" : "Optional notes. If they contain multiple lines, only the first one is returned here.",
43880 "optional" : 1,
43881 "type" : "string"
43882 },
4d47f125
TL
43883 "parent" : {
43884 "description" : "Volume identifier of parent (for linked cloned).",
43885 "optional" : 1,
43886 "type" : "string"
43887 },
5370fa8c
TL
43888 "protected" : {
43889 "description" : "Protection status. Currently only supported for backups.",
43890 "optional" : 1,
43891 "type" : "boolean"
43892 },
4d47f125
TL
43893 "size" : {
43894 "description" : "Volume size in bytes.",
43895 "renderer" : "bytes",
43896 "type" : "integer"
43897 },
43898 "used" : {
c5aa7e14 43899 "description" : "Used space. Please note that most storage plugins do not report anything useful here.",
4d47f125
TL
43900 "optional" : 1,
43901 "renderer" : "bytes",
43902 "type" : "integer"
43903 },
4772952b
TL
43904 "verification" : {
43905 "description" : "Last backup verification result, only useful for PBS storages.",
43906 "optional" : 1,
43907 "properties" : {
43908 "state" : {
43909 "description" : "Last backup verification state.",
43910 "type" : "string"
43911 },
43912 "upid" : {
43913 "description" : "Last backup verification UPID.",
43914 "type" : "string"
43915 }
43916 },
43917 "type" : "object"
43918 },
4d47f125
TL
43919 "vmid" : {
43920 "description" : "Associated Owner VMID.",
43921 "optional" : 1,
43922 "type" : "integer"
43923 },
43924 "volid" : {
43925 "description" : "Volume identifier.",
43926 "type" : "string"
43927 }
43928 },
43929 "type" : "object"
44660702 43930 },
4d47f125
TL
43931 "links" : [
43932 {
43933 "href" : "{volid}",
43934 "rel" : "child"
43935 }
43936 ],
43937 "type" : "array"
43938 }
43939 },
43940 "POST" : {
e9cd3bd4 43941 "allowtoken" : 1,
4d47f125
TL
43942 "description" : "Allocate disk images.",
43943 "method" : "POST",
43944 "name" : "create",
43945 "parameters" : {
43946 "additionalProperties" : 0,
43947 "properties" : {
43948 "filename" : {
43949 "description" : "The name of the file to create.",
43950 "type" : "string",
43951 "typetext" : "<string>"
43952 },
43953 "format" : {
43954 "enum" : [
43955 "raw",
43956 "qcow2",
43957 "subvol"
43958 ],
43959 "optional" : 1,
43960 "requires" : "size",
43961 "type" : "string"
43962 },
43963 "node" : {
43964 "description" : "The cluster node name.",
43965 "format" : "pve-node",
43966 "type" : "string",
43967 "typetext" : "<string>"
43968 },
43969 "size" : {
43970 "description" : "Size in kilobyte (1024 bytes). Optional suffixes 'M' (megabyte, 1024K) and 'G' (gigabyte, 1024M)",
43971 "pattern" : "\\d+[MG]?",
43972 "type" : "string"
43973 },
43974 "storage" : {
43975 "description" : "The storage identifier.",
43976 "format" : "pve-storage-id",
907e4bc3 43977 "format_description" : "storage ID",
4d47f125 43978 "type" : "string",
907e4bc3 43979 "typetext" : "<storage ID>"
4d47f125
TL
43980 },
43981 "vmid" : {
43982 "description" : "Specify owner VM",
43983 "format" : "pve-vmid",
8dd66e12
TL
43984 "maximum" : 999999999,
43985 "minimum" : 100,
4d47f125 43986 "type" : "integer",
8dd66e12 43987 "typetext" : "<integer> (100 - 999999999)"
4d47f125 43988 }
44660702
DM
43989 }
43990 },
4d47f125
TL
43991 "permissions" : {
43992 "check" : [
43993 "perm",
43994 "/storage/{storage}",
43995 [
43996 "Datastore.AllocateSpace"
43997 ]
43998 ]
27a7acb2 43999 },
4d47f125
TL
44000 "protected" : 1,
44001 "proxyto" : "node",
44002 "returns" : {
44003 "description" : "Volume identifier",
44004 "type" : "string"
27a7acb2
DM
44005 }
44006 }
44007 },
4d47f125
TL
44008 "leaf" : 0,
44009 "path" : "/nodes/{node}/storage/{storage}/content",
44010 "text" : "content"
44011 },
d2656385
TL
44012 {
44013 "children" : [
44014 {
44015 "info" : {
44016 "GET" : {
44017 "allowtoken" : 1,
44018 "description" : "List files and directories for single file restore under the given path.",
44019 "method" : "GET",
44020 "name" : "list",
44021 "parameters" : {
44022 "additionalProperties" : 0,
44023 "properties" : {
44024 "filepath" : {
44025 "description" : "base64-path to the directory or file being listed, or \"/\".",
44026 "type" : "string",
44027 "typetext" : "<string>"
44028 },
44029 "node" : {
44030 "description" : "The cluster node name.",
44031 "format" : "pve-node",
44032 "type" : "string",
44033 "typetext" : "<string>"
44034 },
44035 "storage" : {
44036 "description" : "The storage identifier.",
44037 "format" : "pve-storage-id",
907e4bc3 44038 "format_description" : "storage ID",
d2656385 44039 "type" : "string",
907e4bc3 44040 "typetext" : "<storage ID>"
d2656385
TL
44041 },
44042 "volume" : {
44043 "description" : "Backup volume ID or name. Currently only PBS snapshots are supported.",
44044 "type" : "string",
44045 "typetext" : "<string>"
44046 }
44047 }
44048 },
44049 "permissions" : {
44050 "description" : "You need read access for the volume.",
44051 "user" : "all"
44052 },
44053 "protected" : 1,
44054 "proxyto" : "node",
44055 "returns" : {
44056 "items" : {
44057 "properties" : {
44058 "filepath" : {
44059 "description" : "base64 path of the current entry",
44060 "type" : "string"
44061 },
44062 "leaf" : {
44063 "description" : "If this entry is a leaf in the directory graph.",
44064 "type" : "boolean"
44065 },
44066 "mtime" : {
44067 "description" : "Entry last-modified time (unix timestamp).",
44068 "optional" : 1,
44069 "type" : "integer"
44070 },
44071 "size" : {
44072 "description" : "Entry file size.",
44073 "optional" : 1,
44074 "type" : "integer"
44075 },
44076 "text" : {
44077 "description" : "Entry display text.",
44078 "type" : "string"
44079 },
44080 "type" : {
44081 "description" : "Entry type.",
44082 "type" : "string"
44083 }
44084 },
44085 "type" : "object"
44086 },
44087 "type" : "array"
44088 }
44089 }
44090 },
44091 "leaf" : 1,
44092 "path" : "/nodes/{node}/storage/{storage}/file-restore/list",
44093 "text" : "list"
44094 },
44095 {
44096 "info" : {
44097 "GET" : {
44098 "allowtoken" : 1,
44099 "description" : "Extract a file or directory (as zip archive) from a PBS backup.",
44100 "method" : "GET",
44101 "name" : "download",
44102 "parameters" : {
44103 "additionalProperties" : 0,
44104 "properties" : {
44105 "filepath" : {
44106 "description" : "base64-path to the directory or file to download.",
44107 "type" : "string",
44108 "typetext" : "<string>"
44109 },
44110 "node" : {
44111 "description" : "The cluster node name.",
44112 "format" : "pve-node",
44113 "type" : "string",
44114 "typetext" : "<string>"
44115 },
44116 "storage" : {
44117 "description" : "The storage identifier.",
44118 "format" : "pve-storage-id",
907e4bc3 44119 "format_description" : "storage ID",
d2656385 44120 "type" : "string",
907e4bc3 44121 "typetext" : "<storage ID>"
d2656385 44122 },
bd92b745
TL
44123 "tar" : {
44124 "default" : 0,
44125 "description" : "Download dirs as 'tar.zst' instead of 'zip'.",
44126 "optional" : 1,
44127 "type" : "boolean",
44128 "typetext" : "<boolean>"
44129 },
d2656385
TL
44130 "volume" : {
44131 "description" : "Backup volume ID or name. Currently only PBS snapshots are supported.",
44132 "type" : "string",
44133 "typetext" : "<string>"
44134 }
44135 }
44136 },
44137 "permissions" : {
44138 "description" : "You need read access for the volume.",
44139 "user" : "all"
44140 },
44141 "protected" : 1,
44142 "proxyto" : "node",
44143 "returns" : {
44144 "type" : "any"
44145 }
44146 }
44147 },
44148 "leaf" : 1,
44149 "path" : "/nodes/{node}/storage/{storage}/file-restore/download",
44150 "text" : "download"
44151 }
44152 ],
44153 "leaf" : 0,
44154 "path" : "/nodes/{node}/storage/{storage}/file-restore",
44155 "text" : "file-restore"
44156 },
4d47f125
TL
44157 {
44158 "info" : {
44159 "GET" : {
e9cd3bd4 44160 "allowtoken" : 1,
4d47f125
TL
44161 "description" : "Read storage status.",
44162 "method" : "GET",
44163 "name" : "read_status",
44164 "parameters" : {
44165 "additionalProperties" : 0,
44166 "properties" : {
44167 "node" : {
44168 "description" : "The cluster node name.",
44169 "format" : "pve-node",
44170 "type" : "string",
44171 "typetext" : "<string>"
44172 },
44173 "storage" : {
44174 "description" : "The storage identifier.",
44175 "format" : "pve-storage-id",
907e4bc3 44176 "format_description" : "storage ID",
4d47f125 44177 "type" : "string",
907e4bc3 44178 "typetext" : "<storage ID>"
4d47f125 44179 }
27a7acb2
DM
44180 }
44181 },
4d47f125
TL
44182 "permissions" : {
44183 "check" : [
44184 "perm",
44185 "/storage/{storage}",
44186 [
44187 "Datastore.Audit",
44188 "Datastore.AllocateSpace"
44189 ],
44190 "any",
44191 1
44192 ]
7aacca6f 44193 },
4d47f125
TL
44194 "protected" : 1,
44195 "proxyto" : "node",
44196 "returns" : {
44197 "type" : "object"
56122987 44198 }
44660702
DM
44199 }
44200 },
4d47f125
TL
44201 "leaf" : 1,
44202 "path" : "/nodes/{node}/storage/{storage}/status",
44203 "text" : "status"
44204 },
44205 {
44206 "info" : {
44207 "GET" : {
e9cd3bd4 44208 "allowtoken" : 1,
4d47f125
TL
44209 "description" : "Read storage RRD statistics (returns PNG).",
44210 "method" : "GET",
44211 "name" : "rrd",
44212 "parameters" : {
44213 "additionalProperties" : 0,
44214 "properties" : {
44215 "cf" : {
44216 "description" : "The RRD consolidation function",
44217 "enum" : [
44218 "AVERAGE",
44219 "MAX"
44220 ],
44221 "optional" : 1,
44222 "type" : "string"
44223 },
44224 "ds" : {
44225 "description" : "The list of datasources you want to display.",
44226 "format" : "pve-configid-list",
44227 "type" : "string",
44228 "typetext" : "<string>"
44229 },
44230 "node" : {
44231 "description" : "The cluster node name.",
44232 "format" : "pve-node",
44233 "type" : "string",
44234 "typetext" : "<string>"
44235 },
44236 "storage" : {
44237 "description" : "The storage identifier.",
44238 "format" : "pve-storage-id",
907e4bc3 44239 "format_description" : "storage ID",
4d47f125 44240 "type" : "string",
907e4bc3 44241 "typetext" : "<storage ID>"
4d47f125
TL
44242 },
44243 "timeframe" : {
44244 "description" : "Specify the time frame you are interested in.",
44245 "enum" : [
44246 "hour",
44247 "day",
44248 "week",
44249 "month",
44250 "year"
44251 ],
44252 "type" : "string"
44253 }
44660702
DM
44254 }
44255 },
4d47f125
TL
44256 "permissions" : {
44257 "check" : [
44258 "perm",
44259 "/storage/{storage}",
44260 [
44261 "Datastore.Audit",
44262 "Datastore.AllocateSpace"
44263 ],
44264 "any",
44265 1
44266 ]
44267 },
44268 "protected" : 1,
44269 "proxyto" : "node",
44270 "returns" : {
44271 "properties" : {
44272 "filename" : {
44273 "type" : "string"
44274 }
44275 },
44276 "type" : "object"
44660702
DM
44277 }
44278 }
44279 },
4d47f125
TL
44280 "leaf" : 1,
44281 "path" : "/nodes/{node}/storage/{storage}/rrd",
44282 "text" : "rrd"
44283 },
44284 {
44285 "info" : {
44286 "GET" : {
e9cd3bd4 44287 "allowtoken" : 1,
4d47f125
TL
44288 "description" : "Read storage RRD statistics.",
44289 "method" : "GET",
44290 "name" : "rrddata",
44291 "parameters" : {
44292 "additionalProperties" : 0,
44293 "properties" : {
44294 "cf" : {
44295 "description" : "The RRD consolidation function",
44296 "enum" : [
44297 "AVERAGE",
44298 "MAX"
44299 ],
44300 "optional" : 1,
44301 "type" : "string"
44302 },
44303 "node" : {
44304 "description" : "The cluster node name.",
44305 "format" : "pve-node",
44306 "type" : "string",
44307 "typetext" : "<string>"
44308 },
44309 "storage" : {
44310 "description" : "The storage identifier.",
44311 "format" : "pve-storage-id",
907e4bc3 44312 "format_description" : "storage ID",
4d47f125 44313 "type" : "string",
907e4bc3 44314 "typetext" : "<storage ID>"
4d47f125
TL
44315 },
44316 "timeframe" : {
44317 "description" : "Specify the time frame you are interested in.",
44318 "enum" : [
44319 "hour",
44320 "day",
44321 "week",
44322 "month",
44323 "year"
44324 ],
44325 "type" : "string"
44326 }
56122987
DM
44327 }
44328 },
4d47f125
TL
44329 "permissions" : {
44330 "check" : [
44331 "perm",
44332 "/storage/{storage}",
44333 [
44334 "Datastore.Audit",
44335 "Datastore.AllocateSpace"
44336 ],
44337 "any",
44338 1
44339 ]
44340 },
44341 "protected" : 1,
44342 "proxyto" : "node",
44343 "returns" : {
44344 "items" : {
44345 "properties" : {},
44346 "type" : "object"
44347 },
44348 "type" : "array"
56122987 44349 }
7aacca6f 44350 }
56122987 44351 },
4d47f125
TL
44352 "leaf" : 1,
44353 "path" : "/nodes/{node}/storage/{storage}/rrddata",
44354 "text" : "rrddata"
44355 },
44356 {
44357 "info" : {
44358 "POST" : {
e9cd3bd4 44359 "allowtoken" : 1,
4d47f125
TL
44360 "description" : "Upload templates and ISO images.",
44361 "method" : "POST",
44362 "name" : "upload",
44363 "parameters" : {
44364 "additionalProperties" : 0,
44365 "properties" : {
5370fa8c
TL
44366 "checksum" : {
44367 "description" : "The expected checksum of the file.",
44368 "optional" : 1,
44369 "requires" : "checksum-algorithm",
44370 "type" : "string",
44371 "typetext" : "<string>"
44372 },
44373 "checksum-algorithm" : {
44374 "description" : "The algorithm to calculate the checksum of the file.",
44375 "enum" : [
44376 "md5",
44377 "sha1",
44378 "sha224",
44379 "sha256",
44380 "sha384",
44381 "sha512"
44382 ],
44383 "optional" : 1,
44384 "requires" : "checksum",
44385 "type" : "string"
44386 },
4d47f125
TL
44387 "content" : {
44388 "description" : "Content type.",
5370fa8c
TL
44389 "enum" : [
44390 "iso",
44391 "vztmpl"
44392 ],
4d47f125 44393 "format" : "pve-storage-content",
5370fa8c 44394 "type" : "string"
4d47f125
TL
44395 },
44396 "filename" : {
5370fa8c
TL
44397 "description" : "The name of the file to create. Caution: This will be normalized!",
44398 "maxLength" : 255,
4d47f125
TL
44399 "type" : "string",
44400 "typetext" : "<string>"
44401 },
44402 "node" : {
44403 "description" : "The cluster node name.",
44404 "format" : "pve-node",
44405 "type" : "string",
44406 "typetext" : "<string>"
44407 },
44408 "storage" : {
44409 "description" : "The storage identifier.",
44410 "format" : "pve-storage-id",
907e4bc3 44411 "format_description" : "storage ID",
4d47f125 44412 "type" : "string",
907e4bc3 44413 "typetext" : "<storage ID>"
4d47f125
TL
44414 },
44415 "tmpfilename" : {
1e3f8156 44416 "description" : "The source file name. This parameter is usually set by the REST handler. You can only overwrite it when connecting to the trusted port on localhost.",
4d47f125 44417 "optional" : 1,
4a407cfd
TL
44418 "pattern" : "/var/tmp/pveupload-[0-9a-f]+",
44419 "type" : "string"
4d47f125 44420 }
44660702
DM
44421 }
44422 },
4d47f125
TL
44423 "permissions" : {
44424 "check" : [
44425 "perm",
44426 "/storage/{storage}",
44427 [
44428 "Datastore.AllocateTemplate"
44429 ]
44430 ]
56122987 44431 },
4d47f125
TL
44432 "protected" : 1,
44433 "returns" : {
44660702 44434 "type" : "string"
56122987 44435 }
44660702 44436 }
56122987 44437 },
4d47f125
TL
44438 "leaf" : 1,
44439 "path" : "/nodes/{node}/storage/{storage}/upload",
44440 "text" : "upload"
34f3e481
TL
44441 },
44442 {
44443 "info" : {
44444 "POST" : {
44445 "allowtoken" : 1,
44446 "description" : "Download templates and ISO images by using an URL.",
44447 "method" : "POST",
44448 "name" : "download_url",
44449 "parameters" : {
44450 "additionalProperties" : 0,
44451 "properties" : {
44452 "checksum" : {
44453 "description" : "The expected checksum of the file.",
44454 "optional" : 1,
44455 "requires" : "checksum-algorithm",
44456 "type" : "string",
44457 "typetext" : "<string>"
44458 },
44459 "checksum-algorithm" : {
44460 "description" : "The algorithm to calculate the checksum of the file.",
44461 "enum" : [
44462 "md5",
44463 "sha1",
44464 "sha224",
44465 "sha256",
44466 "sha384",
44467 "sha512"
44468 ],
44469 "optional" : 1,
44470 "requires" : "checksum",
44471 "type" : "string"
44472 },
82551b2b
TL
44473 "compression" : {
44474 "description" : "Decompress the downloaded file using the specified compression algorithm.",
44475 "enum" : null,
44476 "optional" : 1,
44477 "type" : "string",
44478 "typetext" : "<string>"
44479 },
34f3e481
TL
44480 "content" : {
44481 "description" : "Content type.",
44482 "enum" : [
44483 "iso",
44484 "vztmpl"
44485 ],
44486 "format" : "pve-storage-content",
44487 "type" : "string"
44488 },
44489 "filename" : {
44490 "description" : "The name of the file to create. Caution: This will be normalized!",
44491 "maxLength" : 255,
44492 "type" : "string",
44493 "typetext" : "<string>"
44494 },
44495 "node" : {
44496 "description" : "The cluster node name.",
44497 "format" : "pve-node",
44498 "type" : "string",
44499 "typetext" : "<string>"
44500 },
44501 "storage" : {
44502 "description" : "The storage identifier.",
44503 "format" : "pve-storage-id",
907e4bc3 44504 "format_description" : "storage ID",
34f3e481 44505 "type" : "string",
907e4bc3 44506 "typetext" : "<storage ID>"
34f3e481
TL
44507 },
44508 "url" : {
44509 "description" : "The URL to download the file from.",
44510 "pattern" : "https?://.*",
44511 "type" : "string"
44512 },
44513 "verify-certificates" : {
44514 "default" : 1,
44515 "description" : "If false, no SSL/TLS certificates will be verified.",
44516 "optional" : 1,
44517 "type" : "boolean",
44518 "typetext" : "<boolean>"
44519 }
44520 }
44521 },
44522 "permissions" : {
44523 "check" : [
44524 "and",
44525 [
44526 "perm",
44527 "/storage/{storage}",
44528 [
44529 "Datastore.AllocateTemplate"
44530 ]
44531 ],
44532 [
c6d5bae8 44533 "or",
34f3e481 44534 [
c6d5bae8
TL
44535 "perm",
44536 "/",
44537 [
44538 "Sys.Audit",
44539 "Sys.Modify"
44540 ]
44541 ],
44542 [
44543 "perm",
44544 "/nodes/{node}",
44545 [
44546 "Sys.AccessNetwork"
44547 ]
34f3e481
TL
44548 ]
44549 ]
c6d5bae8
TL
44550 ],
44551 "description" : "Requires allocation access on the storage and as this allows one to probe the (local!) host network indirectly it also requires one of Sys.Modify on / (for backwards compatibility) or the newer Sys.AccessNetwork privilege on the node."
34f3e481
TL
44552 },
44553 "protected" : 1,
44554 "proxyto" : "node",
44555 "returns" : {
44556 "type" : "string"
44557 }
44558 }
44559 },
44560 "leaf" : 1,
44561 "path" : "/nodes/{node}/storage/{storage}/download-url",
44562 "text" : "download-url"
c6d5bae8
TL
44563 },
44564 {
44565 "info" : {
44566 "GET" : {
44567 "allowtoken" : 1,
44568 "description" : "Get the base parameters for creating a guest which imports data from a foreign importable guest, like an ESXi VM",
44569 "method" : "GET",
44570 "name" : "get_import_metadata",
44571 "parameters" : {
44572 "additionalProperties" : 0,
44573 "properties" : {
44574 "node" : {
44575 "description" : "The cluster node name.",
44576 "format" : "pve-node",
44577 "type" : "string",
44578 "typetext" : "<string>"
44579 },
44580 "storage" : {
44581 "description" : "The storage identifier.",
44582 "format" : "pve-storage-id",
907e4bc3 44583 "format_description" : "storage ID",
c6d5bae8 44584 "type" : "string",
907e4bc3 44585 "typetext" : "<storage ID>"
c6d5bae8
TL
44586 },
44587 "volume" : {
44588 "description" : "Volume identifier for the guest archive/entry.",
44589 "type" : "string",
44590 "typetext" : "<string>"
44591 }
44592 }
44593 },
44594 "permissions" : {
44595 "description" : "You need read access for the volume.",
44596 "user" : "all"
44597 },
44598 "protected" : 1,
44599 "proxyto" : "node",
44600 "returns" : {
44601 "additionalProperties" : 0,
44602 "description" : "Information about how to import a guest.",
44603 "properties" : {
44604 "create-args" : {
44605 "additionalProperties" : 1,
44606 "description" : "Parameters which can be used in a call to create a VM or container.",
44607 "type" : "object"
44608 },
44609 "disks" : {
44610 "additionalProperties" : 1,
44611 "description" : "Recognised disk volumes as `$bus$id` => `$storeid:$path` map.",
44612 "optional" : 1,
44613 "type" : "object"
44614 },
44615 "net" : {
44616 "additionalProperties" : 1,
44617 "description" : "Recognised network interfaces as `net$id` => { ...params } object.",
44618 "optional" : 1,
44619 "type" : "object"
44620 },
44621 "source" : {
44622 "description" : "The type of the import-source of this guest volume.",
44623 "enum" : [
44624 "esxi"
44625 ],
44626 "type" : "string"
44627 },
44628 "type" : {
44629 "description" : "The type of guest this is going to produce.",
44630 "enum" : [
44631 "vm"
44632 ],
44633 "type" : "string"
44634 },
44635 "warnings" : {
44636 "description" : "List of known issues that can affect the import of a guest. Note that lack of warning does not imply that there cannot be any problems.",
44637 "items" : {
44638 "additionalProperties" : 1,
44639 "properties" : {
44640 "key" : {
44641 "description" : "Related subject (config) key of warning.",
44642 "optional" : 1,
44643 "type" : "string"
44644 },
44645 "type" : {
44646 "description" : "What this warning is about.",
44647 "enum" : [
44648 "cdrom-image-ignored",
44649 "efi-state-lost",
44650 "guest-is-running",
44651 "nvme-unsupported",
44652 "ovmf-with-lsi-unsupported",
44653 "serial-port-socket-only"
44654 ],
44655 "type" : "string"
44656 },
44657 "value" : {
44658 "description" : "Related subject (config) value of warning.",
44659 "optional" : 1,
44660 "type" : "string"
44661 }
44662 },
44663 "type" : "object"
44664 },
44665 "optional" : 1,
44666 "type" : "array"
44667 }
44668 },
44669 "type" : "object"
44670 }
44671 }
44672 },
44673 "leaf" : 1,
44674 "path" : "/nodes/{node}/storage/{storage}/import-metadata",
44675 "text" : "import-metadata"
56122987 44676 }
4d47f125 44677 ],
56122987
DM
44678 "info" : {
44679 "GET" : {
e9cd3bd4 44680 "allowtoken" : 1,
4d47f125 44681 "description" : "",
44660702 44682 "method" : "GET",
4d47f125 44683 "name" : "diridx",
44660702
DM
44684 "parameters" : {
44685 "additionalProperties" : 0,
44686 "properties" : {
44687 "node" : {
44688 "description" : "The cluster node name.",
44689 "format" : "pve-node",
013dc89f
DM
44690 "type" : "string",
44691 "typetext" : "<string>"
4d47f125
TL
44692 },
44693 "storage" : {
44694 "description" : "The storage identifier.",
44695 "format" : "pve-storage-id",
907e4bc3 44696 "format_description" : "storage ID",
4d47f125 44697 "type" : "string",
907e4bc3 44698 "typetext" : "<storage ID>"
44660702
DM
44699 }
44700 }
44701 },
7aacca6f
DM
44702 "permissions" : {
44703 "check" : [
44704 "perm",
4d47f125 44705 "/storage/{storage}",
7aacca6f 44706 [
4d47f125
TL
44707 "Datastore.Audit",
44708 "Datastore.AllocateSpace"
44709 ],
44710 "any",
44711 1
7aacca6f
DM
44712 ]
44713 },
56122987
DM
44714 "returns" : {
44715 "items" : {
44716 "properties" : {
4d47f125 44717 "subdir" : {
44660702 44718 "type" : "string"
56122987
DM
44719 }
44720 },
44721 "type" : "object"
7aacca6f 44722 },
4d47f125
TL
44723 "links" : [
44724 {
44725 "href" : "{subdir}",
44726 "rel" : "child"
44727 }
44728 ],
7aacca6f 44729 "type" : "array"
44660702
DM
44730 }
44731 }
44732 },
4d47f125
TL
44733 "leaf" : 0,
44734 "path" : "/nodes/{node}/storage/{storage}",
44735 "text" : "{storage}"
44660702
DM
44736 }
44737 ],
44738 "info" : {
44739 "GET" : {
e9cd3bd4 44740 "allowtoken" : 1,
4d47f125 44741 "description" : "Get status for all datastores.",
44660702
DM
44742 "method" : "GET",
44743 "name" : "index",
44744 "parameters" : {
44745 "additionalProperties" : 0,
44746 "properties" : {
4d47f125
TL
44747 "content" : {
44748 "description" : "Only list stores which support this content type.",
44749 "format" : "pve-storage-content-list",
44750 "optional" : 1,
44751 "type" : "string",
44752 "typetext" : "<string>"
44753 },
44754 "enabled" : {
44755 "default" : 0,
44756 "description" : "Only list stores which are enabled (not disabled in config).",
44757 "optional" : 1,
44758 "type" : "boolean",
44759 "typetext" : "<boolean>"
44760 },
44761 "format" : {
44762 "default" : 0,
44763 "description" : "Include information about formats",
44764 "optional" : 1,
44765 "type" : "boolean",
44766 "typetext" : "<boolean>"
44767 },
44660702
DM
44768 "node" : {
44769 "description" : "The cluster node name.",
44770 "format" : "pve-node",
013dc89f
DM
44771 "type" : "string",
44772 "typetext" : "<string>"
4d47f125
TL
44773 },
44774 "storage" : {
44775 "description" : "Only list status for specified storage",
44776 "format" : "pve-storage-id",
907e4bc3 44777 "format_description" : "storage ID",
4d47f125
TL
44778 "optional" : 1,
44779 "type" : "string",
907e4bc3 44780 "typetext" : "<storage ID>"
4d47f125
TL
44781 },
44782 "target" : {
44783 "description" : "If target is different to 'node', we only lists shared storages which content is accessible on this 'node' and the specified 'target' node.",
44784 "format" : "pve-node",
44785 "optional" : 1,
44786 "type" : "string",
44787 "typetext" : "<string>"
44660702
DM
44788 }
44789 }
44790 },
4d47f125
TL
44791 "permissions" : {
44792 "description" : "Only list entries where you have 'Datastore.Audit' or 'Datastore.AllocateSpace' permissions on '/storage/<storage>'",
44793 "user" : "all"
44794 },
44795 "protected" : 1,
44796 "proxyto" : "node",
44797 "returns" : {
44798 "items" : {
44799 "properties" : {
44800 "active" : {
44801 "description" : "Set when storage is accessible.",
44802 "optional" : 1,
44803 "type" : "boolean"
44804 },
44805 "avail" : {
44806 "description" : "Available storage space in bytes.",
44807 "optional" : 1,
44808 "renderer" : "bytes",
44809 "type" : "integer"
44810 },
44811 "content" : {
44812 "description" : "Allowed storage content types.",
44813 "format" : "pve-storage-content-list",
44814 "type" : "string"
44815 },
44816 "enabled" : {
44817 "description" : "Set when storage is enabled (not disabled).",
44818 "optional" : 1,
44819 "type" : "boolean"
44820 },
44821 "shared" : {
44822 "description" : "Shared flag from storage configuration.",
44823 "optional" : 1,
44824 "type" : "boolean"
44825 },
44826 "storage" : {
44827 "description" : "The storage identifier.",
44828 "format" : "pve-storage-id",
907e4bc3 44829 "format_description" : "storage ID",
4d47f125
TL
44830 "type" : "string"
44831 },
44832 "total" : {
44833 "description" : "Total storage space in bytes.",
44834 "optional" : 1,
44835 "renderer" : "bytes",
44836 "type" : "integer"
44837 },
44838 "type" : {
44839 "description" : "Storage type.",
44840 "type" : "string"
44841 },
44842 "used" : {
44843 "description" : "Used storage space in bytes.",
44844 "optional" : 1,
44845 "renderer" : "bytes",
44846 "type" : "integer"
44847 },
44848 "used_fraction" : {
44849 "description" : "Used fraction (used/total).",
44850 "optional" : 1,
44851 "renderer" : "fraction_as_percentage",
44852 "type" : "number"
7aacca6f 44853 }
4d47f125
TL
44854 },
44855 "type" : "object"
44856 },
44857 "links" : [
44858 {
44859 "href" : "{storage}",
44860 "rel" : "child"
44861 }
44862 ],
44863 "type" : "array"
44864 }
44865 }
44866 },
44867 "leaf" : 0,
44868 "path" : "/nodes/{node}/storage",
44869 "text" : "storage"
44870 },
44871 {
44872 "children" : [
44873 {
5370fa8c
TL
44874 "children" : [
44875 {
44876 "info" : {
44877 "DELETE" : {
44878 "allowtoken" : 1,
44879 "description" : "Remove an LVM Volume Group.",
44880 "method" : "DELETE",
44881 "name" : "delete",
44882 "parameters" : {
44883 "additionalProperties" : 0,
44884 "properties" : {
44885 "cleanup-config" : {
44886 "default" : 0,
44887 "description" : "Marks associated storage(s) as not available on this node anymore or removes them from the configuration (if configured for this node only).",
44888 "optional" : 1,
44889 "type" : "boolean",
44890 "typetext" : "<boolean>"
44891 },
44892 "cleanup-disks" : {
44893 "default" : 0,
44894 "description" : "Also wipe disks so they can be repurposed afterwards.",
44895 "optional" : 1,
44896 "type" : "boolean",
44897 "typetext" : "<boolean>"
44898 },
44899 "name" : {
44900 "description" : "The storage identifier.",
44901 "format" : "pve-storage-id",
907e4bc3 44902 "format_description" : "storage ID",
5370fa8c 44903 "type" : "string",
907e4bc3 44904 "typetext" : "<storage ID>"
5370fa8c
TL
44905 },
44906 "node" : {
44907 "description" : "The cluster node name.",
44908 "format" : "pve-node",
44909 "type" : "string",
44910 "typetext" : "<string>"
44911 }
44912 }
44913 },
44914 "permissions" : {
44915 "check" : [
44916 "perm",
44917 "/",
44918 [
499c9b7f 44919 "Sys.Modify"
5370fa8c 44920 ]
499c9b7f
TL
44921 ],
44922 "description" : "Requires additionally 'Datastore.Allocate' on /storage when setting 'cleanup-config'"
5370fa8c
TL
44923 },
44924 "protected" : 1,
44925 "proxyto" : "node",
44926 "returns" : {
44927 "type" : "string"
44928 }
44929 }
44930 },
44931 "leaf" : 1,
44932 "path" : "/nodes/{node}/disks/lvm/{name}",
44933 "text" : "{name}"
44934 }
44935 ],
4d47f125
TL
44936 "info" : {
44937 "GET" : {
e9cd3bd4 44938 "allowtoken" : 1,
4d47f125
TL
44939 "description" : "List LVM Volume Groups",
44940 "method" : "GET",
44941 "name" : "index",
44942 "parameters" : {
44943 "additionalProperties" : 0,
44944 "properties" : {
44945 "node" : {
44946 "description" : "The cluster node name.",
44947 "format" : "pve-node",
44948 "type" : "string",
44949 "typetext" : "<string>"
44950 }
44951 }
44952 },
44953 "permissions" : {
44954 "check" : [
44955 "perm",
44956 "/",
44957 [
8dd66e12
TL
44958 "Sys.Audit"
44959 ]
4d47f125
TL
44960 ]
44961 },
44962 "protected" : 1,
44963 "proxyto" : "node",
44964 "returns" : {
44965 "properties" : {
44966 "children" : {
44660702
DM
44967 "items" : {
44968 "properties" : {
4d47f125
TL
44969 "children" : {
44970 "description" : "The underlying physical volumes",
44971 "items" : {
44972 "properties" : {
44973 "free" : {
44974 "description" : "The free bytes in the physical volume",
44975 "type" : "integer"
44976 },
44977 "leaf" : {
44978 "type" : "boolean"
44979 },
44980 "name" : {
44981 "description" : "The name of the physical volume",
44982 "type" : "string"
44983 },
44984 "size" : {
44985 "description" : "The size of the physical volume in bytes",
44986 "type" : "integer"
44987 }
44988 },
44989 "type" : "object"
44990 },
44991 "optional" : 1,
44992 "type" : "array"
44993 },
44994 "free" : {
44995 "description" : "The free bytes in the volume group",
44996 "type" : "integer"
44997 },
44998 "leaf" : {
44999 "type" : "boolean"
45000 },
45001 "name" : {
45002 "description" : "The name of the volume group",
44660702 45003 "type" : "string"
4d47f125
TL
45004 },
45005 "size" : {
45006 "description" : "The size of the volume group in bytes",
45007 "type" : "integer"
44660702
DM
45008 }
45009 },
45010 "type" : "object"
45011 },
44660702 45012 "type" : "array"
4d47f125
TL
45013 },
45014 "leaf" : {
45015 "type" : "boolean"
44660702
DM
45016 }
45017 },
4d47f125
TL
45018 "type" : "object"
45019 }
45020 },
45021 "POST" : {
e9cd3bd4 45022 "allowtoken" : 1,
4d47f125
TL
45023 "description" : "Create an LVM Volume Group",
45024 "method" : "POST",
45025 "name" : "create",
45026 "parameters" : {
45027 "additionalProperties" : 0,
45028 "properties" : {
45029 "add_storage" : {
45030 "default" : 0,
45031 "description" : "Configure storage using the Volume Group",
45032 "optional" : 1,
45033 "type" : "boolean",
45034 "typetext" : "<boolean>"
44660702 45035 },
4d47f125
TL
45036 "device" : {
45037 "description" : "The block device you want to create the volume group on",
45038 "type" : "string",
45039 "typetext" : "<string>"
44660702 45040 },
4d47f125
TL
45041 "name" : {
45042 "description" : "The storage identifier.",
45043 "format" : "pve-storage-id",
907e4bc3 45044 "format_description" : "storage ID",
4d47f125 45045 "type" : "string",
907e4bc3 45046 "typetext" : "<storage ID>"
4d47f125
TL
45047 },
45048 "node" : {
45049 "description" : "The cluster node name.",
45050 "format" : "pve-node",
45051 "type" : "string",
45052 "typetext" : "<string>"
45053 }
45054 }
45055 },
45056 "permissions" : {
45057 "check" : [
45058 "perm",
45059 "/",
45060 [
499c9b7f 45061 "Sys.Modify"
4d47f125 45062 ]
499c9b7f
TL
45063 ],
45064 "description" : "Requires additionally 'Datastore.Allocate' on /storage when setting 'add_storage'"
4d47f125
TL
45065 },
45066 "protected" : 1,
45067 "proxyto" : "node",
45068 "returns" : {
45069 "type" : "string"
45070 }
45071 }
45072 },
5370fa8c 45073 "leaf" : 0,
4d47f125
TL
45074 "path" : "/nodes/{node}/disks/lvm",
45075 "text" : "lvm"
45076 },
45077 {
5370fa8c
TL
45078 "children" : [
45079 {
45080 "info" : {
45081 "DELETE" : {
45082 "allowtoken" : 1,
45083 "description" : "Remove an LVM thin pool.",
45084 "method" : "DELETE",
45085 "name" : "delete",
45086 "parameters" : {
45087 "additionalProperties" : 0,
45088 "properties" : {
45089 "cleanup-config" : {
45090 "default" : 0,
45091 "description" : "Marks associated storage(s) as not available on this node anymore or removes them from the configuration (if configured for this node only).",
45092 "optional" : 1,
45093 "type" : "boolean",
45094 "typetext" : "<boolean>"
45095 },
45096 "cleanup-disks" : {
45097 "default" : 0,
45098 "description" : "Also wipe disks so they can be repurposed afterwards.",
45099 "optional" : 1,
45100 "type" : "boolean",
45101 "typetext" : "<boolean>"
45102 },
45103 "name" : {
45104 "description" : "The storage identifier.",
45105 "format" : "pve-storage-id",
907e4bc3 45106 "format_description" : "storage ID",
5370fa8c 45107 "type" : "string",
907e4bc3 45108 "typetext" : "<storage ID>"
5370fa8c
TL
45109 },
45110 "node" : {
45111 "description" : "The cluster node name.",
45112 "format" : "pve-node",
45113 "type" : "string",
45114 "typetext" : "<string>"
45115 },
45116 "volume-group" : {
45117 "description" : "The storage identifier.",
45118 "format" : "pve-storage-id",
907e4bc3 45119 "format_description" : "storage ID",
5370fa8c 45120 "type" : "string",
907e4bc3 45121 "typetext" : "<storage ID>"
5370fa8c
TL
45122 }
45123 }
45124 },
45125 "permissions" : {
45126 "check" : [
45127 "perm",
45128 "/",
45129 [
499c9b7f 45130 "Sys.Modify"
5370fa8c 45131 ]
499c9b7f
TL
45132 ],
45133 "description" : "Requires additionally 'Datastore.Allocate' on /storage when setting 'cleanup-config'"
5370fa8c
TL
45134 },
45135 "protected" : 1,
45136 "proxyto" : "node",
45137 "returns" : {
45138 "type" : "string"
45139 }
45140 }
45141 },
45142 "leaf" : 1,
45143 "path" : "/nodes/{node}/disks/lvmthin/{name}",
45144 "text" : "{name}"
45145 }
45146 ],
4d47f125
TL
45147 "info" : {
45148 "GET" : {
e9cd3bd4 45149 "allowtoken" : 1,
4d47f125
TL
45150 "description" : "List LVM thinpools",
45151 "method" : "GET",
45152 "name" : "index",
45153 "parameters" : {
45154 "additionalProperties" : 0,
45155 "properties" : {
45156 "node" : {
45157 "description" : "The cluster node name.",
45158 "format" : "pve-node",
45159 "type" : "string",
45160 "typetext" : "<string>"
44660702
DM
45161 }
45162 }
45163 },
4d47f125
TL
45164 "permissions" : {
45165 "check" : [
45166 "perm",
45167 "/",
45168 [
8dd66e12
TL
45169 "Sys.Audit"
45170 ]
4d47f125
TL
45171 ]
45172 },
45173 "protected" : 1,
45174 "proxyto" : "node",
45175 "returns" : {
45176 "items" : {
45177 "properties" : {
45178 "lv" : {
45179 "description" : "The name of the thinpool.",
45180 "type" : "string"
45181 },
45182 "lv_size" : {
45183 "description" : "The size of the thinpool in bytes.",
45184 "type" : "integer"
45185 },
45186 "metadata_size" : {
45187 "description" : "The size of the metadata lv in bytes.",
45188 "type" : "integer"
45189 },
45190 "metadata_used" : {
45191 "description" : "The used bytes of the metadata lv.",
45192 "type" : "integer"
45193 },
45194 "used" : {
45195 "description" : "The used bytes of the thinpool.",
45196 "type" : "integer"
5370fa8c
TL
45197 },
45198 "vg" : {
45199 "description" : "The associated volume group.",
45200 "type" : "string"
44660702
DM
45201 }
45202 },
4d47f125
TL
45203 "type" : "object"
45204 },
45205 "type" : "array"
45206 }
45207 },
45208 "POST" : {
e9cd3bd4 45209 "allowtoken" : 1,
4d47f125
TL
45210 "description" : "Create an LVM thinpool",
45211 "method" : "POST",
45212 "name" : "create",
45213 "parameters" : {
45214 "additionalProperties" : 0,
45215 "properties" : {
45216 "add_storage" : {
45217 "default" : 0,
45218 "description" : "Configure storage using the thinpool.",
45219 "optional" : 1,
45220 "type" : "boolean",
45221 "typetext" : "<boolean>"
56122987 45222 },
4d47f125
TL
45223 "device" : {
45224 "description" : "The block device you want to create the thinpool on.",
45225 "type" : "string",
45226 "typetext" : "<string>"
45227 },
45228 "name" : {
45229 "description" : "The storage identifier.",
45230 "format" : "pve-storage-id",
907e4bc3 45231 "format_description" : "storage ID",
4d47f125 45232 "type" : "string",
907e4bc3 45233 "typetext" : "<storage ID>"
4d47f125
TL
45234 },
45235 "node" : {
45236 "description" : "The cluster node name.",
45237 "format" : "pve-node",
45238 "type" : "string",
45239 "typetext" : "<string>"
44660702 45240 }
56122987
DM
45241 }
45242 },
4d47f125
TL
45243 "permissions" : {
45244 "check" : [
45245 "perm",
45246 "/",
45247 [
499c9b7f 45248 "Sys.Modify"
4d47f125 45249 ]
499c9b7f
TL
45250 ],
45251 "description" : "Requires additionally 'Datastore.Allocate' on /storage when setting 'add_storage'"
4d47f125
TL
45252 },
45253 "protected" : 1,
45254 "proxyto" : "node",
45255 "returns" : {
45256 "type" : "string"
45257 }
45258 }
45259 },
5370fa8c 45260 "leaf" : 0,
4d47f125
TL
45261 "path" : "/nodes/{node}/disks/lvmthin",
45262 "text" : "lvmthin"
45263 },
45264 {
5370fa8c
TL
45265 "children" : [
45266 {
45267 "info" : {
45268 "DELETE" : {
45269 "allowtoken" : 1,
45270 "description" : "Unmounts the storage and removes the mount unit.",
45271 "method" : "DELETE",
45272 "name" : "delete",
45273 "parameters" : {
45274 "additionalProperties" : 0,
45275 "properties" : {
45276 "cleanup-config" : {
45277 "default" : 0,
45278 "description" : "Marks associated storage(s) as not available on this node anymore or removes them from the configuration (if configured for this node only).",
45279 "optional" : 1,
45280 "type" : "boolean",
45281 "typetext" : "<boolean>"
45282 },
45283 "cleanup-disks" : {
45284 "default" : 0,
45285 "description" : "Also wipe disk so it can be repurposed afterwards.",
45286 "optional" : 1,
45287 "type" : "boolean",
45288 "typetext" : "<boolean>"
45289 },
45290 "name" : {
45291 "description" : "The storage identifier.",
45292 "format" : "pve-storage-id",
907e4bc3 45293 "format_description" : "storage ID",
5370fa8c 45294 "type" : "string",
907e4bc3 45295 "typetext" : "<storage ID>"
5370fa8c
TL
45296 },
45297 "node" : {
45298 "description" : "The cluster node name.",
45299 "format" : "pve-node",
45300 "type" : "string",
45301 "typetext" : "<string>"
45302 }
45303 }
45304 },
45305 "permissions" : {
45306 "check" : [
45307 "perm",
45308 "/",
45309 [
499c9b7f 45310 "Sys.Modify"
5370fa8c 45311 ]
499c9b7f
TL
45312 ],
45313 "description" : "Requires additionally 'Datastore.Allocate' on /storage when setting 'cleanup-config'"
5370fa8c
TL
45314 },
45315 "protected" : 1,
45316 "proxyto" : "node",
45317 "returns" : {
45318 "type" : "string"
45319 }
45320 }
45321 },
45322 "leaf" : 1,
45323 "path" : "/nodes/{node}/disks/directory/{name}",
45324 "text" : "{name}"
45325 }
45326 ],
4d47f125
TL
45327 "info" : {
45328 "GET" : {
e9cd3bd4 45329 "allowtoken" : 1,
4d47f125
TL
45330 "description" : "PVE Managed Directory storages.",
45331 "method" : "GET",
45332 "name" : "index",
45333 "parameters" : {
45334 "additionalProperties" : 0,
45335 "properties" : {
45336 "node" : {
45337 "description" : "The cluster node name.",
45338 "format" : "pve-node",
45339 "type" : "string",
45340 "typetext" : "<string>"
45341 }
45342 }
45343 },
45344 "permissions" : {
45345 "check" : [
45346 "perm",
45347 "/",
45348 [
8dd66e12
TL
45349 "Sys.Audit"
45350 ]
4d47f125
TL
45351 ]
45352 },
45353 "protected" : 1,
45354 "proxyto" : "node",
45355 "returns" : {
45356 "items" : {
45357 "properties" : {
45358 "device" : {
45359 "description" : "The mounted device.",
45360 "type" : "string"
45361 },
45362 "options" : {
45363 "description" : "The mount options.",
45364 "type" : "string"
45365 },
45366 "path" : {
45367 "description" : "The mount path.",
45368 "type" : "string"
45369 },
45370 "type" : {
45371 "description" : "The filesystem type.",
45372 "type" : "string"
45373 },
45374 "unitfile" : {
45375 "description" : "The path of the mount unit.",
45376 "type" : "string"
44660702 45377 }
56122987 45378 },
4d47f125
TL
45379 "type" : "object"
45380 },
45381 "type" : "array"
45382 }
45383 },
45384 "POST" : {
e9cd3bd4 45385 "allowtoken" : 1,
4d47f125
TL
45386 "description" : "Create a Filesystem on an unused disk. Will be mounted under '/mnt/pve/NAME'.",
45387 "method" : "POST",
45388 "name" : "create",
45389 "parameters" : {
45390 "additionalProperties" : 0,
45391 "properties" : {
45392 "add_storage" : {
45393 "default" : 0,
45394 "description" : "Configure storage using the directory.",
45395 "optional" : 1,
45396 "type" : "boolean",
45397 "typetext" : "<boolean>"
45398 },
45399 "device" : {
45400 "description" : "The block device you want to create the filesystem on.",
45401 "type" : "string",
45402 "typetext" : "<string>"
45403 },
45404 "filesystem" : {
45405 "default" : "ext4",
45406 "description" : "The desired filesystem.",
45407 "enum" : [
45408 "ext4",
45409 "xfs"
45410 ],
45411 "optional" : 1,
45412 "type" : "string"
56122987 45413 },
4d47f125
TL
45414 "name" : {
45415 "description" : "The storage identifier.",
45416 "format" : "pve-storage-id",
907e4bc3 45417 "format_description" : "storage ID",
4d47f125 45418 "type" : "string",
907e4bc3 45419 "typetext" : "<storage ID>"
4d47f125
TL
45420 },
45421 "node" : {
45422 "description" : "The cluster node name.",
45423 "format" : "pve-node",
45424 "type" : "string",
45425 "typetext" : "<string>"
7aacca6f 45426 }
56122987
DM
45427 }
45428 },
4d47f125
TL
45429 "permissions" : {
45430 "check" : [
45431 "perm",
45432 "/",
45433 [
499c9b7f 45434 "Sys.Modify"
4d47f125 45435 ]
499c9b7f
TL
45436 ],
45437 "description" : "Requires additionally 'Datastore.Allocate' on /storage when setting 'add_storage'"
4d47f125
TL
45438 },
45439 "protected" : 1,
45440 "proxyto" : "node",
45441 "returns" : {
45442 "type" : "string"
45443 }
45444 }
45445 },
5370fa8c 45446 "leaf" : 0,
4d47f125
TL
45447 "path" : "/nodes/{node}/disks/directory",
45448 "text" : "directory"
45449 },
45450 {
45451 "children" : [
56122987 45452 {
56122987 45453 "info" : {
5370fa8c
TL
45454 "DELETE" : {
45455 "allowtoken" : 1,
45456 "description" : "Destroy a ZFS pool.",
45457 "method" : "DELETE",
45458 "name" : "delete",
45459 "parameters" : {
45460 "additionalProperties" : 0,
45461 "properties" : {
45462 "cleanup-config" : {
45463 "default" : 0,
45464 "description" : "Marks associated storage(s) as not available on this node anymore or removes them from the configuration (if configured for this node only).",
45465 "optional" : 1,
45466 "type" : "boolean",
45467 "typetext" : "<boolean>"
45468 },
45469 "cleanup-disks" : {
45470 "default" : 0,
45471 "description" : "Also wipe disks so they can be repurposed afterwards.",
45472 "optional" : 1,
45473 "type" : "boolean",
45474 "typetext" : "<boolean>"
45475 },
45476 "name" : {
45477 "description" : "The storage identifier.",
45478 "format" : "pve-storage-id",
907e4bc3 45479 "format_description" : "storage ID",
5370fa8c 45480 "type" : "string",
907e4bc3 45481 "typetext" : "<storage ID>"
5370fa8c
TL
45482 },
45483 "node" : {
45484 "description" : "The cluster node name.",
45485 "format" : "pve-node",
45486 "type" : "string",
45487 "typetext" : "<string>"
45488 }
45489 }
45490 },
45491 "permissions" : {
45492 "check" : [
45493 "perm",
45494 "/",
45495 [
8dd66e12 45496 "Sys.Modify"
5370fa8c 45497 ]
499c9b7f
TL
45498 ],
45499 "description" : "Requires additionally 'Datastore.Allocate' on /storage when setting 'cleanup-config'"
5370fa8c
TL
45500 },
45501 "protected" : 1,
45502 "proxyto" : "node",
45503 "returns" : {
45504 "type" : "string"
45505 }
45506 },
56122987 45507 "GET" : {
e9cd3bd4 45508 "allowtoken" : 1,
4d47f125 45509 "description" : "Get details about a zpool.",
44660702 45510 "method" : "GET",
4d47f125 45511 "name" : "detail",
56122987 45512 "parameters" : {
44660702 45513 "additionalProperties" : 0,
56122987 45514 "properties" : {
4d47f125
TL
45515 "name" : {
45516 "description" : "The storage identifier.",
45517 "format" : "pve-storage-id",
907e4bc3 45518 "format_description" : "storage ID",
4d47f125 45519 "type" : "string",
907e4bc3 45520 "typetext" : "<storage ID>"
44660702 45521 },
7aacca6f 45522 "node" : {
7aacca6f 45523 "description" : "The cluster node name.",
44660702 45524 "format" : "pve-node",
013dc89f
DM
45525 "type" : "string",
45526 "typetext" : "<string>"
56122987 45527 }
44660702 45528 }
7aacca6f 45529 },
7aacca6f
DM
45530 "permissions" : {
45531 "check" : [
45532 "perm",
4d47f125 45533 "/",
7aacca6f 45534 [
8dd66e12
TL
45535 "Sys.Audit"
45536 ]
7aacca6f
DM
45537 ]
45538 },
44660702
DM
45539 "protected" : 1,
45540 "proxyto" : "node",
7aacca6f 45541 "returns" : {
56122987 45542 "properties" : {
4d47f125
TL
45543 "action" : {
45544 "description" : "Information about the recommended action to fix the state.",
45545 "optional" : 1,
45546 "type" : "string"
56122987 45547 },
4d47f125 45548 "children" : {
e2d681b3 45549 "description" : "The pool configuration information, including the vdevs for each section (e.g. spares, cache), may be nested.",
4d47f125
TL
45550 "items" : {
45551 "properties" : {
45552 "cksum" : {
e2d681b3 45553 "optional" : 1,
4d47f125
TL
45554 "type" : "number"
45555 },
45556 "msg" : {
45557 "description" : "An optional message about the vdev.",
45558 "type" : "string"
45559 },
45560 "name" : {
e2d681b3 45561 "description" : "The name of the vdev or section.",
4d47f125
TL
45562 "type" : "string"
45563 },
45564 "read" : {
e2d681b3 45565 "optional" : 1,
4d47f125
TL
45566 "type" : "number"
45567 },
45568 "state" : {
45569 "description" : "The state of the vdev.",
e2d681b3 45570 "optional" : 1,
4d47f125
TL
45571 "type" : "string"
45572 },
45573 "write" : {
e2d681b3 45574 "optional" : 1,
4d47f125
TL
45575 "type" : "number"
45576 }
45577 },
45578 "type" : "object"
45579 },
45580 "type" : "array"
56122987 45581 },
e2d681b3
TL
45582 "errors" : {
45583 "description" : "Information about the errors on the zpool.",
45584 "type" : "string"
45585 },
4d47f125
TL
45586 "name" : {
45587 "description" : "The name of the zpool.",
45588 "type" : "string"
44660702 45589 },
4d47f125 45590 "scan" : {
e2d681b3 45591 "description" : "Information about the last/current scrub.",
d2656385 45592 "optional" : 1,
4d47f125 45593 "type" : "string"
44660702 45594 },
4d47f125
TL
45595 "state" : {
45596 "description" : "The state of the zpool.",
45597 "type" : "string"
45598 },
45599 "status" : {
45600 "description" : "Information about the state of the zpool.",
44660702 45601 "optional" : 1,
4d47f125 45602 "type" : "string"
56122987 45603 }
4d47f125
TL
45604 },
45605 "type" : "object"
44660702
DM
45606 }
45607 }
45608 },
45609 "leaf" : 1,
4d47f125
TL
45610 "path" : "/nodes/{node}/disks/zfs/{name}",
45611 "text" : "{name}"
44660702
DM
45612 }
45613 ],
45614 "info" : {
45615 "GET" : {
e9cd3bd4 45616 "allowtoken" : 1,
4d47f125 45617 "description" : "List Zpools.",
44660702 45618 "method" : "GET",
4d47f125 45619 "name" : "index",
44660702
DM
45620 "parameters" : {
45621 "additionalProperties" : 0,
45622 "properties" : {
45623 "node" : {
45624 "description" : "The cluster node name.",
45625 "format" : "pve-node",
013dc89f
DM
45626 "type" : "string",
45627 "typetext" : "<string>"
4d47f125
TL
45628 }
45629 }
45630 },
45631 "permissions" : {
45632 "check" : [
45633 "perm",
45634 "/",
45635 [
8dd66e12
TL
45636 "Sys.Audit"
45637 ]
4d47f125
TL
45638 ]
45639 },
45640 "protected" : 1,
45641 "proxyto" : "node",
45642 "returns" : {
45643 "items" : {
45644 "properties" : {
45645 "alloc" : {
45646 "description" : "",
45647 "type" : "integer"
45648 },
45649 "dedup" : {
45650 "description" : "",
45651 "type" : "number"
45652 },
45653 "frag" : {
45654 "description" : "",
45655 "type" : "integer"
45656 },
45657 "free" : {
45658 "description" : "",
45659 "type" : "integer"
45660 },
45661 "health" : {
45662 "description" : "",
45663 "type" : "string"
45664 },
45665 "name" : {
45666 "description" : "",
45667 "type" : "string"
45668 },
45669 "size" : {
45670 "description" : "",
45671 "type" : "integer"
45672 }
45673 },
45674 "type" : "object"
45675 },
45676 "links" : [
45677 {
45678 "href" : "{name}",
45679 "rel" : "child"
45680 }
45681 ],
45682 "type" : "array"
45683 }
45684 },
45685 "POST" : {
e9cd3bd4 45686 "allowtoken" : 1,
4d47f125
TL
45687 "description" : "Create a ZFS pool.",
45688 "method" : "POST",
45689 "name" : "create",
45690 "parameters" : {
45691 "additionalProperties" : 0,
45692 "properties" : {
45693 "add_storage" : {
45694 "default" : 0,
45695 "description" : "Configure storage using the zpool.",
45696 "optional" : 1,
45697 "type" : "boolean",
45698 "typetext" : "<boolean>"
45699 },
45700 "ashift" : {
45701 "default" : 12,
45702 "description" : "Pool sector size exponent.",
45703 "maximum" : 16,
45704 "minimum" : 9,
45705 "optional" : 1,
45706 "type" : "integer",
45707 "typetext" : "<integer> (9 - 16)"
45708 },
45709 "compression" : {
45710 "default" : "on",
45711 "description" : "The compression algorithm to use.",
45712 "enum" : [
45713 "on",
45714 "off",
45715 "gzip",
45716 "lz4",
45717 "lzjb",
5370fa8c
TL
45718 "zle",
45719 "zstd"
4d47f125
TL
45720 ],
45721 "optional" : 1,
45722 "type" : "string"
45723 },
45724 "devices" : {
45725 "description" : "The block devices you want to create the zpool on.",
45726 "format" : "string-list",
45727 "type" : "string",
45728 "typetext" : "<string>"
44660702 45729 },
81a3384d
TL
45730 "draid-config" : {
45731 "format" : {
45732 "data" : {
45733 "description" : "The number of data devices per redundancy group. (dRAID)",
45734 "minimum" : 1,
45735 "type" : "integer"
45736 },
45737 "spares" : {
45738 "description" : "Number of dRAID spares.",
45739 "minimum" : 0,
45740 "type" : "integer"
45741 }
45742 },
45743 "optional" : 1,
45744 "type" : "string",
45745 "typetext" : "data=<integer> ,spares=<integer>"
45746 },
4d47f125 45747 "name" : {
44660702
DM
45748 "description" : "The storage identifier.",
45749 "format" : "pve-storage-id",
907e4bc3 45750 "format_description" : "storage ID",
013dc89f 45751 "type" : "string",
907e4bc3 45752 "typetext" : "<storage ID>"
4d47f125
TL
45753 },
45754 "node" : {
45755 "description" : "The cluster node name.",
45756 "format" : "pve-node",
45757 "type" : "string",
45758 "typetext" : "<string>"
45759 },
45760 "raidlevel" : {
45761 "description" : "The RAID level to use.",
45762 "enum" : [
45763 "single",
45764 "mirror",
45765 "raid10",
45766 "raidz",
45767 "raidz2",
81a3384d
TL
45768 "raidz3",
45769 "draid",
45770 "draid2",
45771 "draid3"
4d47f125
TL
45772 ],
45773 "type" : "string"
56122987
DM
45774 }
45775 }
44660702
DM
45776 },
45777 "permissions" : {
45778 "check" : [
45779 "perm",
4d47f125 45780 "/",
44660702 45781 [
8dd66e12 45782 "Sys.Modify"
4d47f125 45783 ]
499c9b7f
TL
45784 ],
45785 "description" : "Requires additionally 'Datastore.Allocate' on /storage when setting 'add_storage'"
44660702 45786 },
4d47f125
TL
45787 "protected" : 1,
45788 "proxyto" : "node",
44660702 45789 "returns" : {
4d47f125 45790 "type" : "string"
56122987
DM
45791 }
45792 }
44660702
DM
45793 },
45794 "leaf" : 0,
4d47f125
TL
45795 "path" : "/nodes/{node}/disks/zfs",
45796 "text" : "zfs"
45797 },
2c0dde61
DM
45798 {
45799 "info" : {
45800 "GET" : {
e9cd3bd4 45801 "allowtoken" : 1,
2c0dde61
DM
45802 "description" : "List local disks.",
45803 "method" : "GET",
45804 "name" : "list",
45805 "parameters" : {
45806 "additionalProperties" : 0,
45807 "properties" : {
d2656385
TL
45808 "include-partitions" : {
45809 "default" : 0,
45810 "description" : "Also include partitions.",
45811 "optional" : 1,
45812 "type" : "boolean",
45813 "typetext" : "<boolean>"
45814 },
2c0dde61
DM
45815 "node" : {
45816 "description" : "The cluster node name.",
45817 "format" : "pve-node",
013dc89f
DM
45818 "type" : "string",
45819 "typetext" : "<string>"
4d47f125
TL
45820 },
45821 "skipsmart" : {
45822 "default" : 0,
45823 "description" : "Skip smart checks.",
45824 "optional" : 1,
45825 "type" : "boolean",
45826 "typetext" : "<boolean>"
45827 },
45828 "type" : {
45829 "description" : "Only list specific types of disks.",
45830 "enum" : [
45831 "unused",
45832 "journal_disks"
45833 ],
45834 "optional" : 1,
45835 "type" : "string"
2c0dde61
DM
45836 }
45837 }
45838 },
45839 "permissions" : {
45840 "check" : [
d2656385 45841 "or",
2c0dde61 45842 [
d2656385
TL
45843 "perm",
45844 "/",
45845 [
8dd66e12
TL
45846 "Sys.Audit"
45847 ]
2c0dde61 45848 ],
d2656385
TL
45849 [
45850 "perm",
45851 "/nodes/{node}",
45852 [
8dd66e12
TL
45853 "Sys.Audit"
45854 ]
d2656385 45855 ]
2c0dde61
DM
45856 ]
45857 },
45858 "protected" : 1,
45859 "proxyto" : "node",
45860 "returns" : {
45861 "items" : {
45862 "properties" : {
45863 "devpath" : {
45864 "description" : "The device path",
45865 "type" : "string"
45866 },
45867 "gpt" : {
45868 "type" : "boolean"
45869 },
45870 "health" : {
45871 "optional" : 1,
45872 "type" : "string"
45873 },
45874 "model" : {
45875 "optional" : 1,
45876 "type" : "string"
45877 },
de786b48
TL
45878 "mounted" : {
45879 "type" : "boolean"
45880 },
2c0dde61
DM
45881 "osdid" : {
45882 "type" : "integer"
45883 },
bd92b745
TL
45884 "osdid-list" : {
45885 "items" : {
45886 "type" : "integer"
45887 },
45888 "type" : "array"
45889 },
d2656385
TL
45890 "parent" : {
45891 "description" : "For partitions only. The device path of the disk the partition resides on.",
45892 "optional" : 1,
45893 "type" : "string"
45894 },
2c0dde61
DM
45895 "serial" : {
45896 "optional" : 1,
45897 "type" : "string"
45898 },
45899 "size" : {
45900 "type" : "integer"
45901 },
45902 "used" : {
45903 "optional" : 1,
45904 "type" : "string"
45905 },
45906 "vendor" : {
45907 "optional" : 1,
45908 "type" : "string"
45909 },
45910 "wwn" : {
45911 "optional" : 1,
45912 "type" : "string"
45913 }
45914 },
45915 "type" : "object"
45916 },
45917 "type" : "array"
45918 }
45919 }
45920 },
45921 "leaf" : 1,
45922 "path" : "/nodes/{node}/disks/list",
45923 "text" : "list"
45924 },
45925 {
45926 "info" : {
45927 "GET" : {
e9cd3bd4 45928 "allowtoken" : 1,
2c0dde61
DM
45929 "description" : "Get SMART Health of a disk.",
45930 "method" : "GET",
45931 "name" : "smart",
45932 "parameters" : {
45933 "additionalProperties" : 0,
45934 "properties" : {
45935 "disk" : {
45936 "description" : "Block device name",
45937 "pattern" : "^/dev/[a-zA-Z0-9\\/]+$",
45938 "type" : "string"
45939 },
45940 "healthonly" : {
45941 "description" : "If true returns only the health status",
45942 "optional" : 1,
013dc89f
DM
45943 "type" : "boolean",
45944 "typetext" : "<boolean>"
2c0dde61
DM
45945 },
45946 "node" : {
45947 "description" : "The cluster node name.",
45948 "format" : "pve-node",
013dc89f
DM
45949 "type" : "string",
45950 "typetext" : "<string>"
2c0dde61
DM
45951 }
45952 }
45953 },
45954 "permissions" : {
45955 "check" : [
45956 "perm",
45957 "/",
45958 [
8dd66e12
TL
45959 "Sys.Audit"
45960 ]
2c0dde61
DM
45961 ]
45962 },
45963 "protected" : 1,
45964 "proxyto" : "node",
45965 "returns" : {
de0983cb
DM
45966 "properties" : {
45967 "attributes" : {
45968 "optional" : 1,
45969 "type" : "array"
45970 },
45971 "health" : {
45972 "type" : "string"
45973 },
45974 "text" : {
45975 "optional" : 1,
45976 "type" : "string"
45977 },
45978 "type" : {
45979 "optional" : 1,
45980 "type" : "string"
45981 }
45982 },
2c0dde61
DM
45983 "type" : "object"
45984 }
45985 }
45986 },
45987 "leaf" : 1,
45988 "path" : "/nodes/{node}/disks/smart",
45989 "text" : "smart"
45990 },
45991 {
45992 "info" : {
45993 "POST" : {
e9cd3bd4 45994 "allowtoken" : 1,
2c0dde61
DM
45995 "description" : "Initialize Disk with GPT",
45996 "method" : "POST",
45997 "name" : "initgpt",
45998 "parameters" : {
45999 "additionalProperties" : 0,
46000 "properties" : {
46001 "disk" : {
46002 "description" : "Block device name",
46003 "pattern" : "^/dev/[a-zA-Z0-9\\/]+$",
46004 "type" : "string"
46005 },
46006 "node" : {
46007 "description" : "The cluster node name.",
46008 "format" : "pve-node",
013dc89f
DM
46009 "type" : "string",
46010 "typetext" : "<string>"
2c0dde61
DM
46011 },
46012 "uuid" : {
46013 "description" : "UUID for the GPT table",
46014 "maxLength" : 36,
46015 "optional" : 1,
46016 "pattern" : "[a-fA-F0-9\\-]+",
46017 "type" : "string"
46018 }
46019 }
46020 },
46021 "permissions" : {
46022 "check" : [
46023 "perm",
46024 "/",
46025 [
46026 "Sys.Modify"
46027 ]
46028 ]
46029 },
46030 "protected" : 1,
46031 "proxyto" : "node",
46032 "returns" : {
46033 "type" : "string"
46034 }
46035 }
46036 },
46037 "leaf" : 1,
46038 "path" : "/nodes/{node}/disks/initgpt",
46039 "text" : "initgpt"
0695fdaf
TL
46040 },
46041 {
46042 "info" : {
46043 "PUT" : {
46044 "allowtoken" : 1,
46045 "description" : "Wipe a disk or partition.",
46046 "method" : "PUT",
46047 "name" : "wipe_disk",
46048 "parameters" : {
46049 "additionalProperties" : 0,
46050 "properties" : {
46051 "disk" : {
46052 "description" : "Block device name",
46053 "pattern" : "^/dev/[a-zA-Z0-9\\/]+$",
46054 "type" : "string"
46055 },
46056 "node" : {
46057 "description" : "The cluster node name.",
46058 "format" : "pve-node",
46059 "type" : "string",
46060 "typetext" : "<string>"
46061 }
46062 }
46063 },
46064 "protected" : 1,
46065 "proxyto" : "node",
46066 "returns" : {
46067 "type" : "string"
46068 }
46069 }
46070 },
46071 "leaf" : 1,
46072 "path" : "/nodes/{node}/disks/wipedisk",
46073 "text" : "wipedisk"
2c0dde61
DM
46074 }
46075 ],
46076 "info" : {
46077 "GET" : {
e9cd3bd4 46078 "allowtoken" : 1,
2c0dde61
DM
46079 "description" : "Node index.",
46080 "method" : "GET",
46081 "name" : "index",
46082 "parameters" : {
46083 "additionalProperties" : 0,
46084 "properties" : {
46085 "node" : {
46086 "description" : "The cluster node name.",
46087 "format" : "pve-node",
013dc89f
DM
46088 "type" : "string",
46089 "typetext" : "<string>"
2c0dde61
DM
46090 }
46091 }
46092 },
46093 "permissions" : {
46094 "user" : "all"
46095 },
46096 "proxyto" : "node",
46097 "returns" : {
46098 "items" : {
46099 "properties" : {},
46100 "type" : "object"
46101 },
46102 "links" : [
46103 {
46104 "href" : "{name}",
46105 "rel" : "child"
46106 }
46107 ],
46108 "type" : "array"
46109 }
46110 }
46111 },
46112 "leaf" : 0,
46113 "path" : "/nodes/{node}/disks",
46114 "text" : "disks"
46115 },
56122987 46116 {
56122987
DM
46117 "children" : [
46118 {
46119 "info" : {
44660702 46120 "GET" : {
e9cd3bd4 46121 "allowtoken" : 1,
44660702
DM
46122 "description" : "List available updates.",
46123 "method" : "GET",
46124 "name" : "list_updates",
46125 "parameters" : {
46126 "additionalProperties" : 0,
46127 "properties" : {
46128 "node" : {
46129 "description" : "The cluster node name.",
46130 "format" : "pve-node",
013dc89f
DM
46131 "type" : "string",
46132 "typetext" : "<string>"
44660702
DM
46133 }
46134 }
7aacca6f
DM
46135 },
46136 "permissions" : {
46137 "check" : [
46138 "perm",
46139 "/nodes/{node}",
46140 [
46141 "Sys.Modify"
46142 ]
46143 ]
46144 },
44660702 46145 "protected" : 1,
56122987 46146 "proxyto" : "node",
44660702
DM
46147 "returns" : {
46148 "items" : {
46149 "properties" : {},
46150 "type" : "object"
46151 },
46152 "type" : "array"
46153 }
46154 },
46155 "POST" : {
e9cd3bd4 46156 "allowtoken" : 1,
44660702 46157 "description" : "This is used to resynchronize the package index files from their sources (apt-get update).",
7aacca6f
DM
46158 "method" : "POST",
46159 "name" : "update_database",
56122987
DM
46160 "parameters" : {
46161 "additionalProperties" : 0,
46162 "properties" : {
44660702
DM
46163 "node" : {
46164 "description" : "The cluster node name.",
46165 "format" : "pve-node",
013dc89f
DM
46166 "type" : "string",
46167 "typetext" : "<string>"
44660702 46168 },
56122987 46169 "notify" : {
56122987 46170 "default" : 0,
fa22697b 46171 "description" : "Send notification about new packages.",
44660702 46172 "optional" : 1,
013dc89f
DM
46173 "type" : "boolean",
46174 "typetext" : "<boolean>"
56122987
DM
46175 },
46176 "quiet" : {
56122987 46177 "default" : 0,
44660702 46178 "description" : "Only produces output suitable for logging, omitting progress indicators.",
56122987 46179 "optional" : 1,
013dc89f
DM
46180 "type" : "boolean",
46181 "typetext" : "<boolean>"
56122987 46182 }
7aacca6f
DM
46183 }
46184 },
46185 "permissions" : {
46186 "check" : [
46187 "perm",
46188 "/nodes/{node}",
46189 [
46190 "Sys.Modify"
46191 ]
fa22697b 46192 ]
7aacca6f 46193 },
44660702
DM
46194 "protected" : 1,
46195 "proxyto" : "node",
46196 "returns" : {
46197 "type" : "string"
46198 }
56122987
DM
46199 }
46200 },
7aacca6f 46201 "leaf" : 1,
44660702
DM
46202 "path" : "/nodes/{node}/apt/update",
46203 "text" : "update"
56122987
DM
46204 },
46205 {
56122987
DM
46206 "info" : {
46207 "GET" : {
e9cd3bd4 46208 "allowtoken" : 1,
44660702 46209 "description" : "Get package changelogs.",
56122987 46210 "method" : "GET",
7aacca6f 46211 "name" : "changelog",
56122987 46212 "parameters" : {
44660702 46213 "additionalProperties" : 0,
56122987
DM
46214 "properties" : {
46215 "name" : {
46216 "description" : "Package name.",
013dc89f
DM
46217 "type" : "string",
46218 "typetext" : "<string>"
56122987 46219 },
44660702
DM
46220 "node" : {
46221 "description" : "The cluster node name.",
46222 "format" : "pve-node",
013dc89f
DM
46223 "type" : "string",
46224 "typetext" : "<string>"
44660702 46225 },
56122987 46226 "version" : {
7aacca6f 46227 "description" : "Package version.",
44660702 46228 "optional" : 1,
013dc89f
DM
46229 "type" : "string",
46230 "typetext" : "<string>"
56122987 46231 }
44660702 46232 }
56122987 46233 },
44660702
DM
46234 "permissions" : {
46235 "check" : [
46236 "perm",
46237 "/nodes/{node}",
46238 [
46239 "Sys.Modify"
46240 ]
46241 ]
46242 },
46243 "proxyto" : "node",
46244 "returns" : {
46245 "type" : "string"
46246 }
56122987
DM
46247 }
46248 },
44660702
DM
46249 "leaf" : 1,
46250 "path" : "/nodes/{node}/apt/changelog",
7aacca6f 46251 "text" : "changelog"
56122987 46252 },
34f3e481
TL
46253 {
46254 "info" : {
46255 "GET" : {
46256 "allowtoken" : 1,
46257 "description" : "Get APT repository information.",
46258 "method" : "GET",
46259 "name" : "repositories",
46260 "parameters" : {
46261 "additionalProperties" : 0,
46262 "properties" : {
46263 "node" : {
46264 "description" : "The cluster node name.",
46265 "format" : "pve-node",
46266 "type" : "string",
46267 "typetext" : "<string>"
46268 }
46269 }
46270 },
46271 "permissions" : {
46272 "check" : [
46273 "perm",
46274 "/nodes/{node}",
46275 [
46276 "Sys.Audit"
46277 ]
46278 ]
46279 },
46280 "proxyto" : "node",
46281 "returns" : {
46282 "description" : "Result from parsing the APT repository files in /etc/apt/.",
46283 "properties" : {
46284 "digest" : {
46285 "description" : "Common digest of all files.",
46286 "type" : "string"
46287 },
46288 "errors" : {
46289 "description" : "List of problematic repository files.",
46290 "items" : {
46291 "properties" : {
46292 "error" : {
46293 "description" : "The error message",
46294 "type" : "string"
46295 },
46296 "path" : {
46297 "description" : "Path to the problematic file.",
46298 "type" : "string"
46299 }
46300 },
46301 "type" : "object"
46302 },
46303 "type" : "array"
46304 },
46305 "files" : {
46306 "description" : "List of parsed repository files.",
46307 "items" : {
46308 "properties" : {
46309 "digest" : {
46310 "description" : "Digest of the file as bytes.",
46311 "items" : {
46312 "type" : "integer"
46313 },
46314 "type" : "array"
46315 },
46316 "file-type" : {
46317 "description" : "Format of the file.",
46318 "enum" : [
46319 "list",
46320 "sources"
46321 ],
46322 "type" : "string"
46323 },
46324 "path" : {
46325 "description" : "Path to the problematic file.",
46326 "type" : "string"
46327 },
46328 "repositories" : {
46329 "description" : "The parsed repositories.",
46330 "items" : {
46331 "properties" : {
46332 "Comment" : {
46333 "description" : "Associated comment",
46334 "optional" : 1,
46335 "type" : "string"
46336 },
46337 "Components" : {
46338 "description" : "List of repository components",
46339 "items" : {
46340 "type" : "string"
46341 },
46342 "optional" : 1,
46343 "type" : "array"
46344 },
46345 "Enabled" : {
46346 "description" : "Whether the repository is enabled or not",
46347 "type" : "boolean"
46348 },
46349 "FileType" : {
46350 "description" : "Format of the defining file.",
46351 "enum" : [
46352 "list",
46353 "sources"
46354 ],
46355 "type" : "string"
46356 },
46357 "Options" : {
46358 "description" : "Additional options",
46359 "items" : {
46360 "properties" : {
46361 "Key" : {
46362 "type" : "string"
46363 },
46364 "Values" : {
46365 "items" : {
46366 "type" : "string"
46367 },
46368 "type" : "array"
46369 }
46370 },
46371 "type" : "object"
46372 },
46373 "optional" : 1,
46374 "type" : "array"
46375 },
46376 "Suites" : {
46377 "description" : "List of package distribuitions",
46378 "items" : {
46379 "type" : "string"
46380 },
46381 "type" : "array"
46382 },
46383 "Types" : {
46384 "description" : "List of package types.",
46385 "items" : {
46386 "enum" : [
46387 "deb",
46388 "deb-src"
46389 ],
46390 "type" : "string"
46391 },
46392 "type" : "array"
46393 },
46394 "URIs" : {
46395 "description" : "List of repository URIs.",
46396 "items" : {
46397 "type" : "string"
46398 },
46399 "type" : "array"
46400 }
46401 },
46402 "type" : "object"
46403 },
46404 "type" : "array"
46405 }
46406 },
46407 "type" : "object"
46408 },
46409 "type" : "array"
46410 },
46411 "infos" : {
46412 "description" : "Additional information/warnings for APT repositories.",
46413 "items" : {
46414 "properties" : {
46415 "index" : {
46416 "description" : "Index of the associated repository within the file.",
46417 "type" : "string"
46418 },
46419 "kind" : {
46420 "description" : "Kind of the information (e.g. warning).",
46421 "type" : "string"
46422 },
46423 "message" : {
46424 "description" : "Information message.",
46425 "type" : "string"
46426 },
46427 "path" : {
46428 "description" : "Path to the associated file.",
46429 "type" : "string"
46430 },
46431 "property" : {
46432 "description" : "Property from which the info originates.",
46433 "optional" : 1,
46434 "type" : "string"
46435 }
46436 },
46437 "type" : "object"
46438 },
46439 "type" : "array"
46440 },
46441 "standard-repos" : {
46442 "description" : "List of standard repositories and their configuration status",
46443 "items" : {
46444 "properties" : {
46445 "handle" : {
46446 "description" : "Handle to identify the repository.",
46447 "type" : "string"
46448 },
46449 "name" : {
46450 "description" : "Full name of the repository.",
46451 "type" : "string"
46452 },
46453 "status" : {
46454 "description" : "Indicating enabled/disabled status, if the repository is configured.",
46455 "optional" : 1,
46456 "type" : "boolean"
46457 }
46458 },
46459 "type" : "object"
46460 },
46461 "type" : "array"
46462 }
46463 },
46464 "type" : "object"
46465 }
46466 },
46467 "POST" : {
46468 "allowtoken" : 1,
46469 "description" : "Change the properties of a repository. Currently only allows enabling/disabling.",
46470 "method" : "POST",
46471 "name" : "change_repository",
46472 "parameters" : {
46473 "additionalProperties" : 0,
46474 "properties" : {
46475 "digest" : {
46476 "description" : "Digest to detect modifications.",
46477 "maxLength" : 80,
46478 "optional" : 1,
46479 "type" : "string",
46480 "typetext" : "<string>"
46481 },
46482 "enabled" : {
46483 "description" : "Whether the repository should be enabled or not.",
46484 "optional" : 1,
46485 "type" : "boolean",
46486 "typetext" : "<boolean>"
46487 },
46488 "index" : {
46489 "description" : "Index within the file (starting from 0).",
46490 "type" : "integer",
46491 "typetext" : "<integer>"
46492 },
46493 "node" : {
46494 "description" : "The cluster node name.",
46495 "format" : "pve-node",
46496 "type" : "string",
46497 "typetext" : "<string>"
46498 },
46499 "path" : {
46500 "description" : "Path to the containing file.",
46501 "type" : "string",
46502 "typetext" : "<string>"
46503 }
46504 }
46505 },
46506 "permissions" : {
46507 "check" : [
46508 "perm",
46509 "/nodes/{node}",
46510 [
46511 "Sys.Modify"
46512 ]
46513 ]
46514 },
46515 "protected" : 1,
46516 "proxyto" : "node",
46517 "returns" : {
46518 "type" : "null"
46519 }
46520 },
46521 "PUT" : {
46522 "allowtoken" : 1,
46523 "description" : "Add a standard repository to the configuration",
46524 "method" : "PUT",
46525 "name" : "add_repository",
46526 "parameters" : {
46527 "additionalProperties" : 0,
46528 "properties" : {
46529 "digest" : {
46530 "description" : "Digest to detect modifications.",
46531 "maxLength" : 80,
46532 "optional" : 1,
46533 "type" : "string",
46534 "typetext" : "<string>"
46535 },
46536 "handle" : {
46537 "description" : "Handle that identifies a repository.",
46538 "type" : "string",
46539 "typetext" : "<string>"
46540 },
46541 "node" : {
46542 "description" : "The cluster node name.",
46543 "format" : "pve-node",
46544 "type" : "string",
46545 "typetext" : "<string>"
46546 }
46547 }
46548 },
46549 "permissions" : {
46550 "check" : [
46551 "perm",
46552 "/nodes/{node}",
46553 [
46554 "Sys.Modify"
46555 ]
46556 ]
46557 },
46558 "protected" : 1,
46559 "proxyto" : "node",
46560 "returns" : {
46561 "type" : "null"
46562 }
46563 }
46564 },
46565 "leaf" : 1,
46566 "path" : "/nodes/{node}/apt/repositories",
46567 "text" : "repositories"
46568 },
56122987 46569 {
56122987
DM
46570 "info" : {
46571 "GET" : {
e9cd3bd4 46572 "allowtoken" : 1,
44660702
DM
46573 "description" : "Get package information for important Proxmox packages.",
46574 "method" : "GET",
7aacca6f
DM
46575 "name" : "versions",
46576 "parameters" : {
44660702 46577 "additionalProperties" : 0,
7aacca6f
DM
46578 "properties" : {
46579 "node" : {
44660702 46580 "description" : "The cluster node name.",
7aacca6f 46581 "format" : "pve-node",
013dc89f
DM
46582 "type" : "string",
46583 "typetext" : "<string>"
7aacca6f 46584 }
44660702 46585 }
7aacca6f 46586 },
56122987
DM
46587 "permissions" : {
46588 "check" : [
46589 "perm",
46590 "/nodes/{node}",
46591 [
46592 "Sys.Audit"
46593 ]
46594 ]
46595 },
7aacca6f 46596 "proxyto" : "node",
56122987
DM
46597 "returns" : {
46598 "items" : {
7aacca6f
DM
46599 "properties" : {},
46600 "type" : "object"
44660702
DM
46601 },
46602 "type" : "array"
56122987
DM
46603 }
46604 }
46605 },
44660702 46606 "leaf" : 1,
7aacca6f 46607 "path" : "/nodes/{node}/apt/versions",
44660702 46608 "text" : "versions"
56122987
DM
46609 }
46610 ],
56122987
DM
46611 "info" : {
46612 "GET" : {
e9cd3bd4 46613 "allowtoken" : 1,
44660702 46614 "description" : "Directory index for apt (Advanced Package Tool).",
7aacca6f 46615 "method" : "GET",
44660702 46616 "name" : "index",
7aacca6f
DM
46617 "parameters" : {
46618 "additionalProperties" : 0,
46619 "properties" : {
46620 "node" : {
44660702 46621 "description" : "The cluster node name.",
7aacca6f 46622 "format" : "pve-node",
013dc89f
DM
46623 "type" : "string",
46624 "typetext" : "<string>"
7aacca6f
DM
46625 }
46626 }
46627 },
7aacca6f
DM
46628 "permissions" : {
46629 "user" : "all"
46630 },
44660702
DM
46631 "returns" : {
46632 "items" : {
46633 "properties" : {
46634 "id" : {
46635 "type" : "string"
46636 }
46637 },
46638 "type" : "object"
46639 },
46640 "links" : [
46641 {
46642 "href" : "{id}",
46643 "rel" : "child"
46644 }
46645 ],
46646 "type" : "array"
46647 }
56122987 46648 }
7aacca6f 46649 },
44660702 46650 "leaf" : 0,
7aacca6f 46651 "path" : "/nodes/{node}/apt",
44660702 46652 "text" : "apt"
56122987
DM
46653 },
46654 {
56122987
DM
46655 "children" : [
46656 {
46657 "children" : [
46658 {
56122987
DM
46659 "info" : {
46660 "DELETE" : {
e9cd3bd4 46661 "allowtoken" : 1,
44660702 46662 "description" : "Delete rule.",
7aacca6f 46663 "method" : "DELETE",
44660702 46664 "name" : "delete_rule",
56122987
DM
46665 "parameters" : {
46666 "additionalProperties" : 0,
46667 "properties" : {
56122987 46668 "digest" : {
82551b2b
TL
46669 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
46670 "maxLength" : 64,
56122987 46671 "optional" : 1,
013dc89f
DM
46672 "type" : "string",
46673 "typetext" : "<string>"
56122987 46674 },
44660702
DM
46675 "node" : {
46676 "description" : "The cluster node name.",
46677 "format" : "pve-node",
013dc89f
DM
46678 "type" : "string",
46679 "typetext" : "<string>"
44660702 46680 },
7aacca6f 46681 "pos" : {
7aacca6f 46682 "description" : "Update rule at position <pos>.",
44660702
DM
46683 "minimum" : 0,
46684 "optional" : 1,
4bd7df8b 46685 "type" : "integer",
013dc89f 46686 "typetext" : "<integer> (0 - N)"
56122987
DM
46687 }
46688 }
46689 },
44660702
DM
46690 "permissions" : {
46691 "check" : [
46692 "perm",
46693 "/nodes/{node}",
46694 [
46695 "Sys.Modify"
46696 ]
46697 ]
46698 },
46699 "protected" : 1,
46700 "proxyto" : "node",
56122987
DM
46701 "returns" : {
46702 "type" : "null"
44660702
DM
46703 }
46704 },
46705 "GET" : {
e9cd3bd4 46706 "allowtoken" : 1,
44660702
DM
46707 "description" : "Get single rule data.",
46708 "method" : "GET",
46709 "name" : "get_rule",
46710 "parameters" : {
46711 "additionalProperties" : 0,
46712 "properties" : {
46713 "node" : {
46714 "description" : "The cluster node name.",
46715 "format" : "pve-node",
013dc89f
DM
46716 "type" : "string",
46717 "typetext" : "<string>"
44660702
DM
46718 },
46719 "pos" : {
46720 "description" : "Update rule at position <pos>.",
46721 "minimum" : 0,
46722 "optional" : 1,
4bd7df8b 46723 "type" : "integer",
013dc89f 46724 "typetext" : "<integer> (0 - N)"
44660702
DM
46725 }
46726 }
56122987 46727 },
56122987
DM
46728 "permissions" : {
46729 "check" : [
46730 "perm",
46731 "/nodes/{node}",
46732 [
44660702 46733 "Sys.Audit"
56122987
DM
46734 ]
46735 ]
44660702
DM
46736 },
46737 "proxyto" : "node",
46738 "returns" : {
46739 "properties" : {
e2d681b3
TL
46740 "action" : {
46741 "type" : "string"
46742 },
46743 "comment" : {
46744 "optional" : 1,
46745 "type" : "string"
46746 },
46747 "dest" : {
46748 "optional" : 1,
46749 "type" : "string"
46750 },
46751 "dport" : {
46752 "optional" : 1,
46753 "type" : "string"
46754 },
46755 "enable" : {
46756 "optional" : 1,
46757 "type" : "integer"
46758 },
4772952b
TL
46759 "icmp-type" : {
46760 "optional" : 1,
46761 "type" : "string"
46762 },
e2d681b3
TL
46763 "iface" : {
46764 "optional" : 1,
46765 "type" : "string"
46766 },
46767 "ipversion" : {
46768 "optional" : 1,
46769 "type" : "integer"
46770 },
95895385
TL
46771 "log" : {
46772 "description" : "Log level for firewall rule",
46773 "enum" : [
46774 "emerg",
46775 "alert",
46776 "crit",
46777 "err",
46778 "warning",
46779 "notice",
46780 "info",
46781 "debug",
46782 "nolog"
46783 ],
46784 "optional" : 1,
46785 "type" : "string"
46786 },
e2d681b3
TL
46787 "macro" : {
46788 "optional" : 1,
5f26e15b 46789 "type" : "string"
e2d681b3 46790 },
44660702
DM
46791 "pos" : {
46792 "type" : "integer"
e2d681b3
TL
46793 },
46794 "proto" : {
46795 "optional" : 1,
46796 "type" : "string"
46797 },
46798 "source" : {
46799 "optional" : 1,
46800 "type" : "string"
46801 },
46802 "sport" : {
46803 "optional" : 1,
46804 "type" : "string"
46805 },
46806 "type" : {
46807 "type" : "string"
44660702
DM
46808 }
46809 },
46810 "type" : "object"
7aacca6f 46811 }
56122987
DM
46812 },
46813 "PUT" : {
e9cd3bd4 46814 "allowtoken" : 1,
44660702
DM
46815 "description" : "Modify rule data.",
46816 "method" : "PUT",
56122987 46817 "name" : "update_rule",
56122987 46818 "parameters" : {
44660702 46819 "additionalProperties" : 0,
56122987 46820 "properties" : {
44660702
DM
46821 "action" : {
46822 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
46823 "maxLength" : 20,
46824 "minLength" : 2,
56122987 46825 "optional" : 1,
44660702
DM
46826 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
46827 "type" : "string"
56122987 46828 },
7aacca6f 46829 "comment" : {
e94f0d56 46830 "description" : "Descriptive comment.",
56122987 46831 "optional" : 1,
013dc89f
DM
46832 "type" : "string",
46833 "typetext" : "<string>"
56122987 46834 },
44660702
DM
46835 "delete" : {
46836 "description" : "A list of settings you want to delete.",
46837 "format" : "pve-configid-list",
56122987 46838 "optional" : 1,
013dc89f
DM
46839 "type" : "string",
46840 "typetext" : "<string>"
56122987 46841 },
44660702
DM
46842 "dest" : {
46843 "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
46844 "format" : "pve-fw-addr-spec",
0695fdaf 46845 "maxLength" : 512,
56122987 46846 "optional" : 1,
013dc89f
DM
46847 "type" : "string",
46848 "typetext" : "<string>"
56122987 46849 },
44660702 46850 "digest" : {
82551b2b
TL
46851 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
46852 "maxLength" : 64,
56122987 46853 "optional" : 1,
013dc89f
DM
46854 "type" : "string",
46855 "typetext" : "<string>"
56122987 46856 },
7aacca6f 46857 "dport" : {
7aacca6f 46858 "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
44660702
DM
46859 "format" : "pve-fw-dport-spec",
46860 "optional" : 1,
013dc89f
DM
46861 "type" : "string",
46862 "typetext" : "<string>"
7aacca6f 46863 },
44660702 46864 "enable" : {
e94f0d56 46865 "description" : "Flag to enable/disable a rule.",
44660702 46866 "minimum" : 0,
56122987 46867 "optional" : 1,
4bd7df8b 46868 "type" : "integer",
013dc89f 46869 "typetext" : "<integer> (0 - N)"
56122987 46870 },
4772952b 46871 "icmp-type" : {
287a95cf 46872 "description" : "Specify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'.",
4772952b
TL
46873 "format" : "pve-fw-icmp-type-spec",
46874 "optional" : 1,
46875 "type" : "string",
46876 "typetext" : "<string>"
46877 },
7aacca6f 46878 "iface" : {
44660702 46879 "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
7aacca6f 46880 "format" : "pve-iface",
44660702 46881 "maxLength" : 20,
56122987 46882 "minLength" : 2,
44660702 46883 "optional" : 1,
013dc89f
DM
46884 "type" : "string",
46885 "typetext" : "<string>"
56122987 46886 },
95895385
TL
46887 "log" : {
46888 "description" : "Log level for firewall rule.",
46889 "enum" : [
46890 "emerg",
46891 "alert",
46892 "crit",
46893 "err",
46894 "warning",
46895 "notice",
46896 "info",
46897 "debug",
46898 "nolog"
46899 ],
46900 "optional" : 1,
46901 "type" : "string"
46902 },
44660702 46903 "macro" : {
e94f0d56 46904 "description" : "Use predefined standard macro.",
44660702
DM
46905 "maxLength" : 128,
46906 "optional" : 1,
013dc89f
DM
46907 "type" : "string",
46908 "typetext" : "<string>"
44660702
DM
46909 },
46910 "moveto" : {
46911 "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
46912 "minimum" : 0,
7aacca6f 46913 "optional" : 1,
4bd7df8b 46914 "type" : "integer",
013dc89f 46915 "typetext" : "<integer> (0 - N)"
44660702
DM
46916 },
46917 "node" : {
46918 "description" : "The cluster node name.",
46919 "format" : "pve-node",
013dc89f
DM
46920 "type" : "string",
46921 "typetext" : "<string>"
56122987
DM
46922 },
46923 "pos" : {
44660702 46924 "description" : "Update rule at position <pos>.",
7aacca6f 46925 "minimum" : 0,
7aacca6f 46926 "optional" : 1,
4bd7df8b 46927 "type" : "integer",
013dc89f 46928 "typetext" : "<integer> (0 - N)"
7aacca6f 46929 },
44660702
DM
46930 "proto" : {
46931 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
46932 "format" : "pve-fw-protocol-spec",
7aacca6f 46933 "optional" : 1,
013dc89f
DM
46934 "type" : "string",
46935 "typetext" : "<string>"
7aacca6f 46936 },
44660702
DM
46937 "source" : {
46938 "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
46939 "format" : "pve-fw-addr-spec",
0695fdaf 46940 "maxLength" : 512,
56122987 46941 "optional" : 1,
013dc89f
DM
46942 "type" : "string",
46943 "typetext" : "<string>"
7aacca6f 46944 },
44660702
DM
46945 "sport" : {
46946 "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
46947 "format" : "pve-fw-sport-spec",
46948 "optional" : 1,
013dc89f
DM
46949 "type" : "string",
46950 "typetext" : "<string>"
44660702
DM
46951 },
46952 "type" : {
e94f0d56 46953 "description" : "Rule type.",
44660702
DM
46954 "enum" : [
46955 "in",
46956 "out",
46957 "group"
46958 ],
46959 "optional" : 1,
46960 "type" : "string"
56122987 46961 }
44660702 46962 }
56122987 46963 },
56122987
DM
46964 "permissions" : {
46965 "check" : [
46966 "perm",
46967 "/nodes/{node}",
46968 [
46969 "Sys.Modify"
46970 ]
46971 ]
7aacca6f 46972 },
44660702 46973 "protected" : 1,
7aacca6f 46974 "proxyto" : "node",
7aacca6f
DM
46975 "returns" : {
46976 "type" : "null"
56122987
DM
46977 }
46978 }
7aacca6f 46979 },
44660702 46980 "leaf" : 1,
7aacca6f 46981 "path" : "/nodes/{node}/firewall/rules/{pos}",
44660702 46982 "text" : "{pos}"
56122987
DM
46983 }
46984 ],
56122987
DM
46985 "info" : {
46986 "GET" : {
e9cd3bd4 46987 "allowtoken" : 1,
44660702
DM
46988 "description" : "List rules.",
46989 "method" : "GET",
46990 "name" : "get_rules",
46991 "parameters" : {
46992 "additionalProperties" : 0,
46993 "properties" : {
46994 "node" : {
46995 "description" : "The cluster node name.",
46996 "format" : "pve-node",
013dc89f
DM
46997 "type" : "string",
46998 "typetext" : "<string>"
44660702
DM
46999 }
47000 }
47001 },
47002 "permissions" : {
47003 "check" : [
47004 "perm",
47005 "/nodes/{node}",
47006 [
47007 "Sys.Audit"
47008 ]
47009 ]
47010 },
47011 "proxyto" : "node",
56122987 47012 "returns" : {
56122987
DM
47013 "items" : {
47014 "properties" : {
47015 "pos" : {
47016 "type" : "integer"
47017 }
44660702
DM
47018 },
47019 "type" : "object"
56122987 47020 },
7aacca6f
DM
47021 "links" : [
47022 {
47023 "href" : "{pos}",
47024 "rel" : "child"
47025 }
47026 ],
47027 "type" : "array"
44660702 47028 }
56122987
DM
47029 },
47030 "POST" : {
e9cd3bd4 47031 "allowtoken" : 1,
44660702 47032 "description" : "Create new rule.",
7aacca6f
DM
47033 "method" : "POST",
47034 "name" : "create_rule",
56122987 47035 "parameters" : {
44660702 47036 "additionalProperties" : 0,
56122987 47037 "properties" : {
7aacca6f 47038 "action" : {
7aacca6f 47039 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
44660702 47040 "maxLength" : 20,
7aacca6f
DM
47041 "minLength" : 2,
47042 "optional" : 0,
44660702
DM
47043 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
47044 "type" : "string"
56122987 47045 },
44660702 47046 "comment" : {
e94f0d56 47047 "description" : "Descriptive comment.",
56122987 47048 "optional" : 1,
013dc89f
DM
47049 "type" : "string",
47050 "typetext" : "<string>"
56122987 47051 },
44660702
DM
47052 "dest" : {
47053 "description" : "Restrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
47054 "format" : "pve-fw-addr-spec",
0695fdaf 47055 "maxLength" : 512,
7aacca6f 47056 "optional" : 1,
013dc89f
DM
47057 "type" : "string",
47058 "typetext" : "<string>"
56122987 47059 },
44660702 47060 "digest" : {
82551b2b
TL
47061 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
47062 "maxLength" : 64,
44660702 47063 "optional" : 1,
013dc89f
DM
47064 "type" : "string",
47065 "typetext" : "<string>"
56122987 47066 },
44660702
DM
47067 "dport" : {
47068 "description" : "Restrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
47069 "format" : "pve-fw-dport-spec",
7aacca6f 47070 "optional" : 1,
013dc89f
DM
47071 "type" : "string",
47072 "typetext" : "<string>"
56122987 47073 },
44660702 47074 "enable" : {
e94f0d56 47075 "description" : "Flag to enable/disable a rule.",
44660702
DM
47076 "minimum" : 0,
47077 "optional" : 1,
4bd7df8b 47078 "type" : "integer",
013dc89f 47079 "typetext" : "<integer> (0 - N)"
44660702 47080 },
4772952b 47081 "icmp-type" : {
287a95cf 47082 "description" : "Specify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'.",
4772952b
TL
47083 "format" : "pve-fw-icmp-type-spec",
47084 "optional" : 1,
47085 "type" : "string",
47086 "typetext" : "<string>"
47087 },
7aacca6f 47088 "iface" : {
44660702 47089 "description" : "Network interface name. You have to use network configuration key names for VMs and containers ('net\\d+'). Host related rules can use arbitrary strings.",
7aacca6f 47090 "format" : "pve-iface",
56122987 47091 "maxLength" : 20,
7aacca6f 47092 "minLength" : 2,
7aacca6f 47093 "optional" : 1,
013dc89f
DM
47094 "type" : "string",
47095 "typetext" : "<string>"
56122987 47096 },
95895385
TL
47097 "log" : {
47098 "description" : "Log level for firewall rule.",
47099 "enum" : [
47100 "emerg",
47101 "alert",
47102 "crit",
47103 "err",
47104 "warning",
47105 "notice",
47106 "info",
47107 "debug",
47108 "nolog"
47109 ],
47110 "optional" : 1,
47111 "type" : "string"
47112 },
44660702 47113 "macro" : {
e94f0d56 47114 "description" : "Use predefined standard macro.",
44660702 47115 "maxLength" : 128,
7aacca6f 47116 "optional" : 1,
013dc89f
DM
47117 "type" : "string",
47118 "typetext" : "<string>"
56122987 47119 },
44660702
DM
47120 "node" : {
47121 "description" : "The cluster node name.",
47122 "format" : "pve-node",
013dc89f
DM
47123 "type" : "string",
47124 "typetext" : "<string>"
44660702
DM
47125 },
47126 "pos" : {
47127 "description" : "Update rule at position <pos>.",
47128 "minimum" : 0,
47129 "optional" : 1,
4bd7df8b 47130 "type" : "integer",
013dc89f 47131 "typetext" : "<integer> (0 - N)"
44660702
DM
47132 },
47133 "proto" : {
47134 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
47135 "format" : "pve-fw-protocol-spec",
56122987 47136 "optional" : 1,
013dc89f
DM
47137 "type" : "string",
47138 "typetext" : "<string>"
56122987 47139 },
7aacca6f 47140 "source" : {
7aacca6f 47141 "description" : "Restrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists.",
44660702 47142 "format" : "pve-fw-addr-spec",
0695fdaf 47143 "maxLength" : 512,
44660702 47144 "optional" : 1,
013dc89f
DM
47145 "type" : "string",
47146 "typetext" : "<string>"
7aacca6f 47147 },
44660702
DM
47148 "sport" : {
47149 "description" : "Restrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\\d+:\\d+', for example '80:85', and you can use comma separated list to match several ports or ranges.",
47150 "format" : "pve-fw-sport-spec",
7aacca6f 47151 "optional" : 1,
013dc89f
DM
47152 "type" : "string",
47153 "typetext" : "<string>"
44660702
DM
47154 },
47155 "type" : {
e94f0d56 47156 "description" : "Rule type.",
44660702
DM
47157 "enum" : [
47158 "in",
47159 "out",
47160 "group"
47161 ],
47162 "optional" : 0,
47163 "type" : "string"
56122987 47164 }
44660702 47165 }
7aacca6f 47166 },
56122987
DM
47167 "permissions" : {
47168 "check" : [
47169 "perm",
47170 "/nodes/{node}",
47171 [
47172 "Sys.Modify"
47173 ]
47174 ]
47175 },
44660702
DM
47176 "protected" : 1,
47177 "proxyto" : "node",
47178 "returns" : {
47179 "type" : "null"
47180 }
56122987
DM
47181 }
47182 },
44660702 47183 "leaf" : 0,
7aacca6f 47184 "path" : "/nodes/{node}/firewall/rules",
44660702 47185 "text" : "rules"
56122987
DM
47186 },
47187 {
56122987 47188 "info" : {
44660702 47189 "GET" : {
e9cd3bd4 47190 "allowtoken" : 1,
44660702
DM
47191 "description" : "Get host firewall options.",
47192 "method" : "GET",
47193 "name" : "get_options",
56122987 47194 "parameters" : {
7aacca6f 47195 "additionalProperties" : 0,
56122987 47196 "properties" : {
44660702
DM
47197 "node" : {
47198 "description" : "The cluster node name.",
47199 "format" : "pve-node",
013dc89f
DM
47200 "type" : "string",
47201 "typetext" : "<string>"
44660702
DM
47202 }
47203 }
47204 },
47205 "permissions" : {
47206 "check" : [
47207 "perm",
47208 "/nodes/{node}",
47209 [
47210 "Sys.Audit"
47211 ]
47212 ]
47213 },
47214 "proxyto" : "node",
47215 "returns" : {
47216 "properties" : {
47217 "enable" : {
47218 "description" : "Enable host firewall rules.",
7aacca6f 47219 "optional" : 1,
44660702 47220 "type" : "boolean"
7aacca6f 47221 },
44660702
DM
47222 "log_level_in" : {
47223 "description" : "Log level for incoming traffic.",
56122987
DM
47224 "enum" : [
47225 "emerg",
47226 "alert",
47227 "crit",
47228 "err",
47229 "warning",
47230 "notice",
47231 "info",
47232 "debug",
47233 "nolog"
47234 ],
56122987 47235 "optional" : 1,
44660702
DM
47236 "type" : "string"
47237 },
47238 "log_level_out" : {
47239 "description" : "Log level for outgoing traffic.",
56122987
DM
47240 "enum" : [
47241 "emerg",
47242 "alert",
47243 "crit",
47244 "err",
47245 "warning",
47246 "notice",
47247 "info",
47248 "debug",
47249 "nolog"
47250 ],
44660702
DM
47251 "optional" : 1,
47252 "type" : "string"
47253 },
95895385
TL
47254 "log_nf_conntrack" : {
47255 "default" : 0,
47256 "description" : "Enable logging of conntrack information.",
47257 "optional" : 1,
47258 "type" : "boolean"
47259 },
44660702 47260 "ndp" : {
5c1699e5
TL
47261 "default" : 0,
47262 "description" : "Enable NDP (Neighbor Discovery Protocol).",
44660702
DM
47263 "optional" : 1,
47264 "type" : "boolean"
47265 },
5f26e15b
TL
47266 "nf_conntrack_allow_invalid" : {
47267 "default" : 0,
47268 "description" : "Allow invalid packets on connection tracking.",
47269 "optional" : 1,
47270 "type" : "boolean"
47271 },
9d2e98ed
TL
47272 "nf_conntrack_helpers" : {
47273 "default" : "",
47274 "description" : "Enable conntrack helpers for specific protocols. Supported protocols: amanda, ftp, irc, netbios-ns, pptp, sane, sip, snmp, tftp",
47275 "format" : "pve-fw-conntrack-helper",
47276 "optional" : 1,
47277 "type" : "string"
47278 },
44660702 47279 "nf_conntrack_max" : {
5c1699e5 47280 "default" : 262144,
44660702
DM
47281 "description" : "Maximum number of tracked connections.",
47282 "minimum" : 32768,
47283 "optional" : 1,
47284 "type" : "integer"
47285 },
47286 "nf_conntrack_tcp_timeout_established" : {
5c1699e5 47287 "default" : 432000,
44660702
DM
47288 "description" : "Conntrack established timeout.",
47289 "minimum" : 7875,
47290 "optional" : 1,
47291 "type" : "integer"
47292 },
5c1699e5
TL
47293 "nf_conntrack_tcp_timeout_syn_recv" : {
47294 "default" : 60,
47295 "description" : "Conntrack syn recv timeout.",
47296 "maximum" : 60,
47297 "minimum" : 30,
47298 "optional" : 1,
47299 "type" : "integer"
47300 },
907e4bc3
TL
47301 "nftables" : {
47302 "default" : 0,
47303 "description" : "Enable nftables based firewall (tech preview)",
47304 "optional" : 1,
47305 "type" : "boolean"
47306 },
44660702
DM
47307 "nosmurfs" : {
47308 "description" : "Enable SMURFS filter.",
47309 "optional" : 1,
47310 "type" : "boolean"
56122987 47311 },
5c1699e5
TL
47312 "protection_synflood" : {
47313 "default" : 0,
47314 "description" : "Enable synflood protection",
47315 "optional" : 1,
47316 "type" : "boolean"
47317 },
47318 "protection_synflood_burst" : {
47319 "default" : 1000,
47320 "description" : "Synflood protection rate burst by ip src.",
47321 "optional" : 1,
47322 "type" : "integer"
47323 },
47324 "protection_synflood_rate" : {
47325 "default" : 200,
47326 "description" : "Synflood protection rate syn/sec by ip src.",
47327 "optional" : 1,
47328 "type" : "integer"
47329 },
7aacca6f 47330 "smurf_log_level" : {
44660702 47331 "description" : "Log level for SMURFS filter.",
56122987
DM
47332 "enum" : [
47333 "emerg",
47334 "alert",
47335 "crit",
47336 "err",
47337 "warning",
47338 "notice",
47339 "info",
47340 "debug",
47341 "nolog"
7aacca6f 47342 ],
7aacca6f
DM
47343 "optional" : 1,
47344 "type" : "string"
56122987 47345 },
44660702
DM
47346 "tcp_flags_log_level" : {
47347 "description" : "Log level for illegal tcp flags filter.",
56122987
DM
47348 "enum" : [
47349 "emerg",
47350 "alert",
47351 "crit",
47352 "err",
47353 "warning",
47354 "notice",
47355 "info",
47356 "debug",
47357 "nolog"
47358 ],
44660702
DM
47359 "optional" : 1,
47360 "type" : "string"
7aacca6f 47361 },
44660702 47362 "tcpflags" : {
5c1699e5 47363 "default" : 0,
44660702 47364 "description" : "Filter illegal combinations of TCP flags.",
56122987 47365 "optional" : 1,
44660702 47366 "type" : "boolean"
56122987 47367 }
44660702
DM
47368 },
47369 "type" : "object"
7aacca6f 47370 }
56122987 47371 },
44660702 47372 "PUT" : {
e9cd3bd4 47373 "allowtoken" : 1,
44660702
DM
47374 "description" : "Set Firewall options.",
47375 "method" : "PUT",
47376 "name" : "set_options",
7aacca6f 47377 "parameters" : {
44660702 47378 "additionalProperties" : 0,
7aacca6f 47379 "properties" : {
44660702
DM
47380 "delete" : {
47381 "description" : "A list of settings you want to delete.",
47382 "format" : "pve-configid-list",
7aacca6f 47383 "optional" : 1,
013dc89f
DM
47384 "type" : "string",
47385 "typetext" : "<string>"
56122987 47386 },
44660702 47387 "digest" : {
82551b2b
TL
47388 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
47389 "maxLength" : 64,
44660702 47390 "optional" : 1,
013dc89f
DM
47391 "type" : "string",
47392 "typetext" : "<string>"
56122987 47393 },
44660702
DM
47394 "enable" : {
47395 "description" : "Enable host firewall rules.",
7aacca6f 47396 "optional" : 1,
013dc89f
DM
47397 "type" : "boolean",
47398 "typetext" : "<boolean>"
44660702
DM
47399 },
47400 "log_level_in" : {
47401 "description" : "Log level for incoming traffic.",
56122987
DM
47402 "enum" : [
47403 "emerg",
47404 "alert",
47405 "crit",
47406 "err",
47407 "warning",
47408 "notice",
47409 "info",
47410 "debug",
47411 "nolog"
44660702 47412 ],
7aacca6f 47413 "optional" : 1,
44660702 47414 "type" : "string"
7aacca6f 47415 },
44660702
DM
47416 "log_level_out" : {
47417 "description" : "Log level for outgoing traffic.",
56122987
DM
47418 "enum" : [
47419 "emerg",
47420 "alert",
47421 "crit",
47422 "err",
47423 "warning",
47424 "notice",
47425 "info",
47426 "debug",
47427 "nolog"
47428 ],
47429 "optional" : 1,
7aacca6f 47430 "type" : "string"
56122987 47431 },
95895385
TL
47432 "log_nf_conntrack" : {
47433 "default" : 0,
47434 "description" : "Enable logging of conntrack information.",
47435 "optional" : 1,
47436 "type" : "boolean",
47437 "typetext" : "<boolean>"
47438 },
44660702 47439 "ndp" : {
5c1699e5
TL
47440 "default" : 0,
47441 "description" : "Enable NDP (Neighbor Discovery Protocol).",
7aacca6f 47442 "optional" : 1,
013dc89f
DM
47443 "type" : "boolean",
47444 "typetext" : "<boolean>"
44660702 47445 },
5f26e15b
TL
47446 "nf_conntrack_allow_invalid" : {
47447 "default" : 0,
47448 "description" : "Allow invalid packets on connection tracking.",
47449 "optional" : 1,
47450 "type" : "boolean",
47451 "typetext" : "<boolean>"
47452 },
9d2e98ed
TL
47453 "nf_conntrack_helpers" : {
47454 "default" : "",
47455 "description" : "Enable conntrack helpers for specific protocols. Supported protocols: amanda, ftp, irc, netbios-ns, pptp, sane, sip, snmp, tftp",
47456 "format" : "pve-fw-conntrack-helper",
47457 "optional" : 1,
47458 "type" : "string",
47459 "typetext" : "<string>"
47460 },
44660702 47461 "nf_conntrack_max" : {
5c1699e5 47462 "default" : 262144,
44660702
DM
47463 "description" : "Maximum number of tracked connections.",
47464 "minimum" : 32768,
47465 "optional" : 1,
4bd7df8b 47466 "type" : "integer",
013dc89f 47467 "typetext" : "<integer> (32768 - N)"
44660702
DM
47468 },
47469 "nf_conntrack_tcp_timeout_established" : {
5c1699e5 47470 "default" : 432000,
44660702
DM
47471 "description" : "Conntrack established timeout.",
47472 "minimum" : 7875,
47473 "optional" : 1,
4bd7df8b 47474 "type" : "integer",
013dc89f 47475 "typetext" : "<integer> (7875 - N)"
44660702 47476 },
5c1699e5
TL
47477 "nf_conntrack_tcp_timeout_syn_recv" : {
47478 "default" : 60,
47479 "description" : "Conntrack syn recv timeout.",
47480 "maximum" : 60,
47481 "minimum" : 30,
47482 "optional" : 1,
47483 "type" : "integer",
47484 "typetext" : "<integer> (30 - 60)"
47485 },
907e4bc3
TL
47486 "nftables" : {
47487 "default" : 0,
47488 "description" : "Enable nftables based firewall (tech preview)",
47489 "optional" : 1,
47490 "type" : "boolean",
47491 "typetext" : "<boolean>"
47492 },
44660702
DM
47493 "node" : {
47494 "description" : "The cluster node name.",
47495 "format" : "pve-node",
013dc89f
DM
47496 "type" : "string",
47497 "typetext" : "<string>"
44660702
DM
47498 },
47499 "nosmurfs" : {
47500 "description" : "Enable SMURFS filter.",
47501 "optional" : 1,
013dc89f
DM
47502 "type" : "boolean",
47503 "typetext" : "<boolean>"
44660702 47504 },
5c1699e5
TL
47505 "protection_synflood" : {
47506 "default" : 0,
47507 "description" : "Enable synflood protection",
47508 "optional" : 1,
47509 "type" : "boolean",
47510 "typetext" : "<boolean>"
47511 },
47512 "protection_synflood_burst" : {
47513 "default" : 1000,
47514 "description" : "Synflood protection rate burst by ip src.",
47515 "optional" : 1,
47516 "type" : "integer",
47517 "typetext" : "<integer>"
47518 },
47519 "protection_synflood_rate" : {
47520 "default" : 200,
47521 "description" : "Synflood protection rate syn/sec by ip src.",
47522 "optional" : 1,
47523 "type" : "integer",
47524 "typetext" : "<integer>"
47525 },
44660702
DM
47526 "smurf_log_level" : {
47527 "description" : "Log level for SMURFS filter.",
56122987
DM
47528 "enum" : [
47529 "emerg",
47530 "alert",
47531 "crit",
47532 "err",
47533 "warning",
47534 "notice",
47535 "info",
47536 "debug",
47537 "nolog"
44660702
DM
47538 ],
47539 "optional" : 1,
47540 "type" : "string"
56122987 47541 },
44660702
DM
47542 "tcp_flags_log_level" : {
47543 "description" : "Log level for illegal tcp flags filter.",
56122987
DM
47544 "enum" : [
47545 "emerg",
47546 "alert",
47547 "crit",
47548 "err",
47549 "warning",
47550 "notice",
47551 "info",
47552 "debug",
47553 "nolog"
47554 ],
44660702
DM
47555 "optional" : 1,
47556 "type" : "string"
7aacca6f 47557 },
44660702 47558 "tcpflags" : {
5c1699e5 47559 "default" : 0,
44660702 47560 "description" : "Filter illegal combinations of TCP flags.",
56122987 47561 "optional" : 1,
013dc89f
DM
47562 "type" : "boolean",
47563 "typetext" : "<boolean>"
56122987 47564 }
7aacca6f 47565 }
56122987 47566 },
44660702
DM
47567 "permissions" : {
47568 "check" : [
47569 "perm",
47570 "/nodes/{node}",
47571 [
47572 "Sys.Modify"
47573 ]
47574 ]
47575 },
47576 "protected" : 1,
47577 "proxyto" : "node",
47578 "returns" : {
47579 "type" : "null"
47580 }
7aacca6f
DM
47581 }
47582 },
44660702
DM
47583 "leaf" : 1,
47584 "path" : "/nodes/{node}/firewall/options",
7aacca6f
DM
47585 "text" : "options"
47586 },
47587 {
7aacca6f
DM
47588 "info" : {
47589 "GET" : {
e9cd3bd4 47590 "allowtoken" : 1,
44660702
DM
47591 "description" : "Read firewall log",
47592 "method" : "GET",
7aacca6f 47593 "name" : "log",
56122987 47594 "parameters" : {
44660702 47595 "additionalProperties" : 0,
56122987 47596 "properties" : {
7aacca6f 47597 "limit" : {
44660702 47598 "minimum" : 0,
7aacca6f 47599 "optional" : 1,
4bd7df8b 47600 "type" : "integer",
013dc89f 47601 "typetext" : "<integer> (0 - N)"
7aacca6f 47602 },
56122987 47603 "node" : {
7aacca6f 47604 "description" : "The cluster node name.",
44660702 47605 "format" : "pve-node",
013dc89f
DM
47606 "type" : "string",
47607 "typetext" : "<string>"
44660702 47608 },
9d2e98ed
TL
47609 "since" : {
47610 "description" : "Display log since this UNIX epoch.",
47611 "minimum" : 0,
47612 "optional" : 1,
47613 "type" : "integer",
47614 "typetext" : "<integer> (0 - N)"
47615 },
44660702
DM
47616 "start" : {
47617 "minimum" : 0,
47618 "optional" : 1,
4bd7df8b 47619 "type" : "integer",
013dc89f 47620 "typetext" : "<integer> (0 - N)"
9d2e98ed
TL
47621 },
47622 "until" : {
47623 "description" : "Display log until this UNIX epoch.",
47624 "minimum" : 0,
47625 "optional" : 1,
47626 "type" : "integer",
47627 "typetext" : "<integer> (0 - N)"
56122987 47628 }
44660702 47629 }
7aacca6f 47630 },
56122987
DM
47631 "permissions" : {
47632 "check" : [
47633 "perm",
47634 "/nodes/{node}",
47635 [
47636 "Sys.Syslog"
47637 ]
47638 ]
47639 },
44660702
DM
47640 "protected" : 1,
47641 "proxyto" : "node",
56122987
DM
47642 "returns" : {
47643 "items" : {
56122987 47644 "properties" : {
56122987 47645 "n" : {
44660702
DM
47646 "description" : "Line number",
47647 "type" : "integer"
7aacca6f
DM
47648 },
47649 "t" : {
44660702
DM
47650 "description" : "Line text",
47651 "type" : "string"
56122987 47652 }
44660702
DM
47653 },
47654 "type" : "object"
56122987
DM
47655 },
47656 "type" : "array"
7aacca6f 47657 }
56122987
DM
47658 }
47659 },
44660702
DM
47660 "leaf" : 1,
47661 "path" : "/nodes/{node}/firewall/log",
7aacca6f 47662 "text" : "log"
56122987
DM
47663 }
47664 ],
47665 "info" : {
47666 "GET" : {
e9cd3bd4 47667 "allowtoken" : 1,
44660702
DM
47668 "description" : "Directory index.",
47669 "method" : "GET",
47670 "name" : "index",
56122987 47671 "parameters" : {
44660702 47672 "additionalProperties" : 0,
56122987
DM
47673 "properties" : {
47674 "node" : {
47675 "description" : "The cluster node name.",
44660702 47676 "format" : "pve-node",
013dc89f
DM
47677 "type" : "string",
47678 "typetext" : "<string>"
56122987 47679 }
44660702 47680 }
56122987 47681 },
7aacca6f
DM
47682 "permissions" : {
47683 "user" : "all"
47684 },
56122987
DM
47685 "returns" : {
47686 "items" : {
47687 "properties" : {},
47688 "type" : "object"
47689 },
56122987
DM
47690 "links" : [
47691 {
44660702
DM
47692 "href" : "{name}",
47693 "rel" : "child"
56122987 47694 }
44660702
DM
47695 ],
47696 "type" : "array"
47697 }
56122987 47698 }
7aacca6f 47699 },
44660702 47700 "leaf" : 0,
7aacca6f 47701 "path" : "/nodes/{node}/firewall",
44660702 47702 "text" : "firewall"
56122987 47703 },
5d9c884c
DM
47704 {
47705 "children" : [
47706 {
47707 "children" : [
47708 {
47709 "info" : {
47710 "GET" : {
e9cd3bd4 47711 "allowtoken" : 1,
5d9c884c
DM
47712 "description" : "Get replication job status.",
47713 "method" : "GET",
47714 "name" : "job_status",
47715 "parameters" : {
47716 "additionalProperties" : 0,
47717 "properties" : {
47718 "id" : {
47719 "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
47720 "format" : "pve-replication-job-id",
47721 "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
47722 "type" : "string"
47723 },
47724 "node" : {
47725 "description" : "The cluster node name.",
47726 "format" : "pve-node",
47727 "type" : "string",
47728 "typetext" : "<string>"
47729 }
47730 }
47731 },
47732 "permissions" : {
47733 "description" : "Requires the VM.Audit permission on /vms/<vmid>.",
47734 "user" : "all"
47735 },
47736 "protected" : 1,
47737 "proxyto" : "node",
47738 "returns" : {
5d9c884c
DM
47739 "type" : "object"
47740 }
47741 }
47742 },
47743 "leaf" : 1,
47744 "path" : "/nodes/{node}/replication/{id}/status",
47745 "text" : "status"
47746 },
47747 {
47748 "info" : {
47749 "GET" : {
e9cd3bd4 47750 "allowtoken" : 1,
5d9c884c
DM
47751 "description" : "Read replication job log.",
47752 "method" : "GET",
47753 "name" : "read_job_log",
47754 "parameters" : {
47755 "additionalProperties" : 0,
47756 "properties" : {
47757 "id" : {
47758 "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
47759 "format" : "pve-replication-job-id",
47760 "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
47761 "type" : "string"
47762 },
47763 "limit" : {
47764 "minimum" : 0,
47765 "optional" : 1,
47766 "type" : "integer",
47767 "typetext" : "<integer> (0 - N)"
47768 },
47769 "node" : {
47770 "description" : "The cluster node name.",
47771 "format" : "pve-node",
47772 "type" : "string",
47773 "typetext" : "<string>"
47774 },
47775 "start" : {
47776 "minimum" : 0,
47777 "optional" : 1,
47778 "type" : "integer",
47779 "typetext" : "<integer> (0 - N)"
47780 }
47781 }
47782 },
47783 "permissions" : {
47784 "description" : "Requires the VM.Audit permission on /vms/<vmid>, or 'Sys.Audit' on '/nodes/<node>'",
47785 "user" : "all"
47786 },
47787 "protected" : 1,
47788 "proxyto" : "node",
47789 "returns" : {
47790 "items" : {
47791 "properties" : {
47792 "n" : {
47793 "description" : "Line number",
47794 "type" : "integer"
47795 },
47796 "t" : {
47797 "description" : "Line text",
47798 "type" : "string"
47799 }
47800 },
47801 "type" : "object"
47802 },
47803 "type" : "array"
47804 }
47805 }
47806 },
47807 "leaf" : 1,
47808 "path" : "/nodes/{node}/replication/{id}/log",
47809 "text" : "log"
47810 },
47811 {
47812 "info" : {
47813 "POST" : {
e9cd3bd4 47814 "allowtoken" : 1,
5d9c884c
DM
47815 "description" : "Schedule replication job to start as soon as possible.",
47816 "method" : "POST",
47817 "name" : "schedule_now",
47818 "parameters" : {
47819 "additionalProperties" : 0,
47820 "properties" : {
47821 "id" : {
47822 "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
47823 "format" : "pve-replication-job-id",
47824 "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
47825 "type" : "string"
47826 },
47827 "node" : {
47828 "description" : "The cluster node name.",
47829 "format" : "pve-node",
47830 "type" : "string",
47831 "typetext" : "<string>"
47832 }
47833 }
47834 },
47835 "permissions" : {
47836 "check" : [
47837 "perm",
47838 "/storage",
47839 [
47840 "Datastore.Allocate"
47841 ]
47842 ]
47843 },
47844 "protected" : 1,
47845 "proxyto" : "node",
47846 "returns" : {
47847 "type" : "string"
47848 }
47849 }
47850 },
47851 "leaf" : 1,
47852 "path" : "/nodes/{node}/replication/{id}/schedule_now",
47853 "text" : "schedule_now"
47854 }
47855 ],
47856 "info" : {
47857 "GET" : {
e9cd3bd4 47858 "allowtoken" : 1,
5d9c884c
DM
47859 "description" : "Directory index.",
47860 "method" : "GET",
47861 "name" : "index",
47862 "parameters" : {
47863 "additionalProperties" : 0,
47864 "properties" : {
47865 "id" : {
47866 "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
47867 "format" : "pve-replication-job-id",
47868 "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
47869 "type" : "string"
47870 },
47871 "node" : {
47872 "description" : "The cluster node name.",
47873 "format" : "pve-node",
47874 "type" : "string",
47875 "typetext" : "<string>"
47876 }
47877 }
47878 },
47879 "permissions" : {
47880 "user" : "all"
47881 },
47882 "returns" : {
47883 "items" : {
47884 "properties" : {},
47885 "type" : "object"
47886 },
47887 "links" : [
47888 {
47889 "href" : "{name}",
47890 "rel" : "child"
47891 }
47892 ],
47893 "type" : "array"
47894 }
47895 }
47896 },
47897 "leaf" : 0,
47898 "path" : "/nodes/{node}/replication/{id}",
47899 "text" : "{id}"
47900 }
47901 ],
47902 "info" : {
47903 "GET" : {
e9cd3bd4 47904 "allowtoken" : 1,
5d9c884c
DM
47905 "description" : "List status of all replication jobs on this node.",
47906 "method" : "GET",
47907 "name" : "status",
47908 "parameters" : {
47909 "additionalProperties" : 0,
47910 "properties" : {
47911 "guest" : {
47912 "description" : "Only list replication jobs for this guest.",
47913 "format" : "pve-vmid",
8dd66e12
TL
47914 "maximum" : 999999999,
47915 "minimum" : 100,
5d9c884c
DM
47916 "optional" : 1,
47917 "type" : "integer",
8dd66e12 47918 "typetext" : "<integer> (100 - 999999999)"
5d9c884c
DM
47919 },
47920 "node" : {
47921 "description" : "The cluster node name.",
47922 "format" : "pve-node",
47923 "type" : "string",
47924 "typetext" : "<string>"
47925 }
47926 }
47927 },
47928 "permissions" : {
47929 "description" : "Requires the VM.Audit permission on /vms/<vmid>.",
47930 "user" : "all"
47931 },
47932 "protected" : 1,
47933 "proxyto" : "node",
47934 "returns" : {
47935 "items" : {
47936 "properties" : {
47937 "id" : {
47938 "type" : "string"
47939 }
47940 },
47941 "type" : "object"
47942 },
47943 "links" : [
47944 {
47945 "href" : "{id}",
47946 "rel" : "child"
47947 }
47948 ],
47949 "type" : "array"
47950 }
47951 }
47952 },
47953 "leaf" : 0,
47954 "path" : "/nodes/{node}/replication",
47955 "text" : "replication"
47956 },
a9a8e3d1
DM
47957 {
47958 "children" : [
47959 {
47960 "children" : [
47961 {
47962 "info" : {
47963 "DELETE" : {
e9cd3bd4 47964 "allowtoken" : 1,
a9a8e3d1
DM
47965 "description" : "Revoke existing certificate from CA.",
47966 "method" : "DELETE",
47967 "name" : "revoke_certificate",
47968 "parameters" : {
47969 "additionalProperties" : 0,
47970 "properties" : {
47971 "node" : {
47972 "description" : "The cluster node name.",
47973 "format" : "pve-node",
47974 "type" : "string",
47975 "typetext" : "<string>"
47976 }
47977 }
47978 },
ac70d7d1
TL
47979 "permissions" : {
47980 "check" : [
47981 "perm",
47982 "/nodes/{node}",
47983 [
47984 "Sys.Modify"
47985 ]
47986 ]
47987 },
a9a8e3d1
DM
47988 "protected" : 1,
47989 "proxyto" : "node",
47990 "returns" : {
47991 "type" : "string"
47992 }
47993 },
47994 "POST" : {
e9cd3bd4 47995 "allowtoken" : 1,
a9a8e3d1
DM
47996 "description" : "Order a new certificate from ACME-compatible CA.",
47997 "method" : "POST",
47998 "name" : "new_certificate",
47999 "parameters" : {
48000 "additionalProperties" : 0,
48001 "properties" : {
48002 "force" : {
48003 "default" : 0,
48004 "description" : "Overwrite existing custom certificate.",
48005 "optional" : 1,
48006 "type" : "boolean",
48007 "typetext" : "<boolean>"
48008 },
48009 "node" : {
48010 "description" : "The cluster node name.",
48011 "format" : "pve-node",
48012 "type" : "string",
48013 "typetext" : "<string>"
48014 }
48015 }
48016 },
ac70d7d1
TL
48017 "permissions" : {
48018 "check" : [
48019 "perm",
48020 "/nodes/{node}",
48021 [
48022 "Sys.Modify"
48023 ]
48024 ]
48025 },
a9a8e3d1
DM
48026 "protected" : 1,
48027 "proxyto" : "node",
48028 "returns" : {
48029 "type" : "string"
48030 }
48031 },
48032 "PUT" : {
e9cd3bd4 48033 "allowtoken" : 1,
a9a8e3d1
DM
48034 "description" : "Renew existing certificate from CA.",
48035 "method" : "PUT",
48036 "name" : "renew_certificate",
48037 "parameters" : {
48038 "additionalProperties" : 0,
48039 "properties" : {
48040 "force" : {
48041 "default" : 0,
48042 "description" : "Force renewal even if expiry is more than 30 days away.",
48043 "optional" : 1,
48044 "type" : "boolean",
48045 "typetext" : "<boolean>"
48046 },
48047 "node" : {
48048 "description" : "The cluster node name.",
48049 "format" : "pve-node",
48050 "type" : "string",
48051 "typetext" : "<string>"
48052 }
48053 }
48054 },
ac70d7d1
TL
48055 "permissions" : {
48056 "check" : [
48057 "perm",
48058 "/nodes/{node}",
48059 [
48060 "Sys.Modify"
48061 ]
48062 ]
48063 },
a9a8e3d1
DM
48064 "protected" : 1,
48065 "proxyto" : "node",
48066 "returns" : {
48067 "type" : "string"
48068 }
48069 }
48070 },
48071 "leaf" : 1,
48072 "path" : "/nodes/{node}/certificates/acme/certificate",
48073 "text" : "certificate"
48074 }
48075 ],
48076 "info" : {
48077 "GET" : {
e9cd3bd4 48078 "allowtoken" : 1,
a9a8e3d1
DM
48079 "description" : "ACME index.",
48080 "method" : "GET",
48081 "name" : "index",
48082 "parameters" : {
48083 "additionalProperties" : 0,
48084 "properties" : {
48085 "node" : {
48086 "description" : "The cluster node name.",
48087 "format" : "pve-node",
48088 "type" : "string",
48089 "typetext" : "<string>"
48090 }
48091 }
48092 },
48093 "permissions" : {
48094 "user" : "all"
48095 },
48096 "returns" : {
48097 "items" : {
48098 "properties" : {},
48099 "type" : "object"
48100 },
48101 "links" : [
48102 {
48103 "href" : "{name}",
48104 "rel" : "child"
48105 }
48106 ],
48107 "type" : "array"
48108 }
48109 }
48110 },
48111 "leaf" : 0,
48112 "path" : "/nodes/{node}/certificates/acme",
48113 "text" : "acme"
48114 },
48115 {
48116 "info" : {
48117 "GET" : {
e9cd3bd4 48118 "allowtoken" : 1,
a9a8e3d1
DM
48119 "description" : "Get information about node's certificates.",
48120 "method" : "GET",
48121 "name" : "info",
48122 "parameters" : {
48123 "additionalProperties" : 0,
48124 "properties" : {
48125 "node" : {
48126 "description" : "The cluster node name.",
48127 "format" : "pve-node",
48128 "type" : "string",
48129 "typetext" : "<string>"
48130 }
48131 }
48132 },
48133 "permissions" : {
48134 "user" : "all"
48135 },
48136 "proxyto" : "node",
48137 "returns" : {
48138 "items" : {
48139 "properties" : {
48140 "filename" : {
48141 "optional" : 1,
48142 "type" : "string"
48143 },
48144 "fingerprint" : {
48145 "description" : "Certificate SHA 256 fingerprint.",
48146 "optional" : 1,
48147 "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
48148 "type" : "string"
48149 },
48150 "issuer" : {
48151 "description" : "Certificate issuer name.",
48152 "optional" : 1,
48153 "type" : "string"
48154 },
48155 "notafter" : {
48156 "description" : "Certificate's notAfter timestamp (UNIX epoch).",
48157 "optional" : 1,
4d47f125 48158 "renderer" : "timestamp",
a9a8e3d1
DM
48159 "type" : "integer"
48160 },
48161 "notbefore" : {
48162 "description" : "Certificate's notBefore timestamp (UNIX epoch).",
48163 "optional" : 1,
4d47f125 48164 "renderer" : "timestamp",
a9a8e3d1
DM
48165 "type" : "integer"
48166 },
48167 "pem" : {
48168 "description" : "Certificate in PEM format",
48169 "format" : "pem-certificate",
48170 "optional" : 1,
48171 "type" : "string"
48172 },
1c532546
TL
48173 "public-key-bits" : {
48174 "description" : "Certificate's public key size",
48175 "optional" : 1,
48176 "type" : "integer"
48177 },
48178 "public-key-type" : {
48179 "description" : "Certificate's public key algorithm",
48180 "optional" : 1,
48181 "type" : "string"
48182 },
a9a8e3d1
DM
48183 "san" : {
48184 "description" : "List of Certificate's SubjectAlternativeName entries.",
48185 "items" : {
48186 "type" : "string"
48187 },
48188 "optional" : 1,
4d47f125 48189 "renderer" : "yaml",
a9a8e3d1
DM
48190 "type" : "array"
48191 },
48192 "subject" : {
48193 "description" : "Certificate subject name.",
48194 "optional" : 1,
48195 "type" : "string"
48196 }
48197 },
48198 "type" : "object"
48199 },
48200 "type" : "array"
48201 }
48202 }
48203 },
48204 "leaf" : 1,
48205 "path" : "/nodes/{node}/certificates/info",
48206 "text" : "info"
48207 },
48208 {
48209 "info" : {
48210 "DELETE" : {
e9cd3bd4 48211 "allowtoken" : 1,
a9a8e3d1
DM
48212 "description" : "DELETE custom certificate chain and key.",
48213 "method" : "DELETE",
48214 "name" : "remove_custom_cert",
48215 "parameters" : {
48216 "additionalProperties" : 0,
48217 "properties" : {
48218 "node" : {
48219 "description" : "The cluster node name.",
48220 "format" : "pve-node",
48221 "type" : "string",
48222 "typetext" : "<string>"
48223 },
48224 "restart" : {
48225 "default" : 0,
48226 "description" : "Restart pveproxy.",
48227 "optional" : 1,
48228 "type" : "boolean",
48229 "typetext" : "<boolean>"
48230 }
48231 }
48232 },
ac70d7d1
TL
48233 "permissions" : {
48234 "check" : [
48235 "perm",
48236 "/nodes/{node}",
48237 [
48238 "Sys.Modify"
48239 ]
48240 ]
48241 },
a9a8e3d1
DM
48242 "protected" : 1,
48243 "proxyto" : "node",
48244 "returns" : {
48245 "type" : "null"
48246 }
48247 },
48248 "POST" : {
e9cd3bd4 48249 "allowtoken" : 1,
a9a8e3d1
DM
48250 "description" : "Upload or update custom certificate chain and key.",
48251 "method" : "POST",
48252 "name" : "upload_custom_cert",
48253 "parameters" : {
48254 "additionalProperties" : 0,
48255 "properties" : {
48256 "certificates" : {
48257 "description" : "PEM encoded certificate (chain).",
48258 "format" : "pem-certificate-chain",
48259 "type" : "string",
48260 "typetext" : "<string>"
48261 },
48262 "force" : {
48263 "default" : 0,
48264 "description" : "Overwrite existing custom or ACME certificate files.",
48265 "optional" : 1,
48266 "type" : "boolean",
48267 "typetext" : "<boolean>"
48268 },
48269 "key" : {
48270 "description" : "PEM encoded private key.",
48271 "format" : "pem-string",
48272 "optional" : 1,
48273 "type" : "string",
48274 "typetext" : "<string>"
48275 },
48276 "node" : {
48277 "description" : "The cluster node name.",
48278 "format" : "pve-node",
48279 "type" : "string",
48280 "typetext" : "<string>"
48281 },
48282 "restart" : {
48283 "default" : 0,
48284 "description" : "Restart pveproxy.",
48285 "optional" : 1,
48286 "type" : "boolean",
48287 "typetext" : "<boolean>"
48288 }
48289 }
48290 },
ac70d7d1
TL
48291 "permissions" : {
48292 "check" : [
48293 "perm",
48294 "/nodes/{node}",
48295 [
48296 "Sys.Modify"
48297 ]
48298 ]
48299 },
a9a8e3d1
DM
48300 "protected" : 1,
48301 "proxyto" : "node",
48302 "returns" : {
48303 "properties" : {
48304 "filename" : {
48305 "optional" : 1,
48306 "type" : "string"
48307 },
48308 "fingerprint" : {
48309 "description" : "Certificate SHA 256 fingerprint.",
48310 "optional" : 1,
48311 "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
48312 "type" : "string"
48313 },
48314 "issuer" : {
48315 "description" : "Certificate issuer name.",
48316 "optional" : 1,
48317 "type" : "string"
48318 },
48319 "notafter" : {
48320 "description" : "Certificate's notAfter timestamp (UNIX epoch).",
48321 "optional" : 1,
4d47f125 48322 "renderer" : "timestamp",
a9a8e3d1
DM
48323 "type" : "integer"
48324 },
48325 "notbefore" : {
48326 "description" : "Certificate's notBefore timestamp (UNIX epoch).",
48327 "optional" : 1,
4d47f125 48328 "renderer" : "timestamp",
a9a8e3d1
DM
48329 "type" : "integer"
48330 },
48331 "pem" : {
48332 "description" : "Certificate in PEM format",
48333 "format" : "pem-certificate",
48334 "optional" : 1,
48335 "type" : "string"
48336 },
1c532546
TL
48337 "public-key-bits" : {
48338 "description" : "Certificate's public key size",
48339 "optional" : 1,
48340 "type" : "integer"
48341 },
48342 "public-key-type" : {
48343 "description" : "Certificate's public key algorithm",
48344 "optional" : 1,
48345 "type" : "string"
48346 },
a9a8e3d1
DM
48347 "san" : {
48348 "description" : "List of Certificate's SubjectAlternativeName entries.",
48349 "items" : {
48350 "type" : "string"
48351 },
48352 "optional" : 1,
4d47f125 48353 "renderer" : "yaml",
a9a8e3d1
DM
48354 "type" : "array"
48355 },
48356 "subject" : {
48357 "description" : "Certificate subject name.",
48358 "optional" : 1,
48359 "type" : "string"
48360 }
48361 },
48362 "type" : "object"
48363 }
48364 }
48365 },
48366 "leaf" : 1,
48367 "path" : "/nodes/{node}/certificates/custom",
48368 "text" : "custom"
48369 }
48370 ],
48371 "info" : {
48372 "GET" : {
e9cd3bd4 48373 "allowtoken" : 1,
a9a8e3d1
DM
48374 "description" : "Node index.",
48375 "method" : "GET",
48376 "name" : "index",
48377 "parameters" : {
48378 "additionalProperties" : 0,
48379 "properties" : {
48380 "node" : {
48381 "description" : "The cluster node name.",
48382 "format" : "pve-node",
48383 "type" : "string",
48384 "typetext" : "<string>"
48385 }
48386 }
48387 },
48388 "permissions" : {
48389 "user" : "all"
48390 },
48391 "returns" : {
48392 "items" : {
48393 "properties" : {},
48394 "type" : "object"
48395 },
48396 "links" : [
48397 {
48398 "href" : "{name}",
48399 "rel" : "child"
48400 }
48401 ],
48402 "type" : "array"
48403 }
48404 }
48405 },
48406 "leaf" : 0,
c5aa7e14
TL
48407 "path" : "/nodes/{node}/certificates",
48408 "text" : "certificates"
48409 },
48410 {
48411 "info" : {
48412 "GET" : {
48413 "allowtoken" : 1,
48414 "description" : "Get node configuration options.",
48415 "method" : "GET",
48416 "name" : "get_config",
48417 "parameters" : {
48418 "additionalProperties" : 0,
48419 "properties" : {
48420 "node" : {
48421 "description" : "The cluster node name.",
48422 "format" : "pve-node",
48423 "type" : "string",
48424 "typetext" : "<string>"
48425 },
48426 "property" : {
48427 "default" : "all",
48428 "description" : "Return only a specific property from the node configuration.",
48429 "enum" : [
48430 "acme",
48431 "acmedomain0",
48432 "acmedomain1",
48433 "acmedomain2",
48434 "acmedomain3",
48435 "acmedomain4",
48436 "acmedomain5",
48437 "description",
48438 "startall-onboot-delay",
48439 "wakeonlan"
48440 ],
48441 "optional" : 1,
48442 "type" : "string"
48443 }
48444 }
48445 },
48446 "permissions" : {
48447 "check" : [
48448 "perm",
48449 "/",
48450 [
48451 "Sys.Audit"
48452 ]
48453 ]
48454 },
48455 "proxyto" : "node",
48456 "returns" : {
c30bb419
TL
48457 "properties" : {
48458 "acme" : {
48459 "description" : "Node specific ACME settings.",
48460 "format" : {
48461 "account" : {
48462 "default" : "default",
48463 "description" : "ACME account config file name.",
48464 "format" : "pve-configid",
48465 "format_description" : "name",
48466 "optional" : 1,
48467 "type" : "string"
48468 },
48469 "domains" : {
48470 "description" : "List of domains for this node's ACME certificate",
48471 "format" : "pve-acme-domain-list",
48472 "format_description" : "domain[;domain;...]",
48473 "optional" : 1,
48474 "type" : "string"
48475 }
48476 },
48477 "optional" : 1,
48478 "type" : "string"
48479 },
48480 "acmedomain[n]" : {
48481 "description" : "ACME domain and validation plugin",
48482 "format" : {
48483 "alias" : {
48484 "description" : "Alias for the Domain to verify ACME Challenge over DNS",
48485 "format" : "pve-acme-alias",
48486 "format_description" : "domain",
48487 "optional" : 1,
48488 "type" : "string"
48489 },
48490 "domain" : {
48491 "default_key" : 1,
48492 "description" : "domain for this node's ACME certificate",
48493 "format" : "pve-acme-domain",
48494 "format_description" : "domain",
48495 "type" : "string"
48496 },
48497 "plugin" : {
48498 "default" : "standalone",
48499 "description" : "The ACME plugin ID",
48500 "format" : "pve-configid",
48501 "format_description" : "name of the plugin configuration",
48502 "optional" : 1,
48503 "type" : "string"
48504 }
48505 },
48506 "optional" : 1,
48507 "type" : "string"
48508 },
48509 "description" : {
48510 "description" : "Description for the Node. Shown in the web-interface node notes panel. This is saved as comment inside the configuration file.",
48511 "maxLength" : 65536,
48512 "optional" : 1,
48513 "type" : "string"
48514 },
48515 "digest" : {
48516 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
48517 "maxLength" : 40,
48518 "optional" : 1,
48519 "type" : "string"
48520 },
48521 "startall-onboot-delay" : {
48522 "default" : 0,
48523 "description" : "Initial delay in seconds, before starting all the Virtual Guests with on-boot enabled.",
48524 "maximum" : 300,
48525 "minimum" : 0,
48526 "optional" : 1,
48527 "type" : "integer"
48528 },
48529 "wakeonlan" : {
907e4bc3
TL
48530 "description" : "Node specific wake on LAN settings.",
48531 "format" : {
48532 "bind-interface" : {
48533 "default" : "The interface carrying the default route",
48534 "description" : "Bind to this interface when sending wake on LAN packet",
48535 "format" : "pve-iface",
48536 "format_description" : "bind interface",
48537 "optional" : 1,
48538 "type" : "string"
48539 },
48540 "broadcast-address" : {
48541 "default" : "255.255.255.255",
48542 "description" : "IPv4 broadcast address to use when sending wake on LAN packet",
48543 "format" : "ipv4",
48544 "format_description" : "IPv4 broadcast address",
48545 "optional" : 1,
48546 "type" : "string"
48547 },
48548 "mac" : {
48549 "default_key" : 1,
48550 "description" : "MAC address for wake on LAN",
48551 "format" : "mac-addr",
48552 "format_description" : "MAC address",
48553 "type" : "string"
48554 }
48555 },
c30bb419
TL
48556 "optional" : 1,
48557 "type" : "string"
48558 }
48559 },
c5aa7e14
TL
48560 "type" : "object"
48561 }
48562 },
48563 "PUT" : {
48564 "allowtoken" : 1,
48565 "description" : "Set node configuration options.",
48566 "method" : "PUT",
48567 "name" : "set_options",
48568 "parameters" : {
48569 "additionalProperties" : 0,
48570 "properties" : {
48571 "acme" : {
48572 "description" : "Node specific ACME settings.",
48573 "format" : {
48574 "account" : {
48575 "default" : "default",
48576 "description" : "ACME account config file name.",
48577 "format" : "pve-configid",
48578 "format_description" : "name",
48579 "optional" : 1,
48580 "type" : "string"
48581 },
48582 "domains" : {
48583 "description" : "List of domains for this node's ACME certificate",
48584 "format" : "pve-acme-domain-list",
48585 "format_description" : "domain[;domain;...]",
48586 "optional" : 1,
48587 "type" : "string"
48588 }
48589 },
48590 "optional" : 1,
48591 "type" : "string",
48592 "typetext" : "[account=<name>] [,domains=<domain[;domain;...]>]"
48593 },
48594 "acmedomain[n]" : {
48595 "description" : "ACME domain and validation plugin",
48596 "format" : {
48597 "alias" : {
48598 "description" : "Alias for the Domain to verify ACME Challenge over DNS",
ac70d7d1 48599 "format" : "pve-acme-alias",
c5aa7e14
TL
48600 "format_description" : "domain",
48601 "optional" : 1,
48602 "type" : "string"
48603 },
48604 "domain" : {
48605 "default_key" : 1,
48606 "description" : "domain for this node's ACME certificate",
48607 "format" : "pve-acme-domain",
48608 "format_description" : "domain",
48609 "type" : "string"
48610 },
48611 "plugin" : {
48612 "default" : "standalone",
48613 "description" : "The ACME plugin ID",
48614 "format" : "pve-configid",
48615 "format_description" : "name of the plugin configuration",
48616 "optional" : 1,
48617 "type" : "string"
48618 }
48619 },
48620 "optional" : 1,
48621 "type" : "string",
48622 "typetext" : "[domain=]<domain> [,alias=<domain>] [,plugin=<name of the plugin configuration>]"
48623 },
48624 "delete" : {
48625 "description" : "A list of settings you want to delete.",
48626 "format" : "pve-configid-list",
48627 "optional" : 1,
48628 "type" : "string",
48629 "typetext" : "<string>"
48630 },
48631 "description" : {
0695fdaf
TL
48632 "description" : "Description for the Node. Shown in the web-interface node notes panel. This is saved as comment inside the configuration file.",
48633 "maxLength" : 65536,
c5aa7e14
TL
48634 "optional" : 1,
48635 "type" : "string",
48636 "typetext" : "<string>"
48637 },
48638 "digest" : {
48639 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
48640 "maxLength" : 40,
48641 "optional" : 1,
48642 "type" : "string",
48643 "typetext" : "<string>"
48644 },
48645 "node" : {
48646 "description" : "The cluster node name.",
48647 "format" : "pve-node",
48648 "type" : "string",
48649 "typetext" : "<string>"
48650 },
48651 "startall-onboot-delay" : {
48652 "default" : 0,
48653 "description" : "Initial delay in seconds, before starting all the Virtual Guests with on-boot enabled.",
48654 "maximum" : 300,
48655 "minimum" : 0,
48656 "optional" : 1,
48657 "type" : "integer",
48658 "typetext" : "<integer> (0 - 300)"
48659 },
48660 "wakeonlan" : {
907e4bc3
TL
48661 "description" : "Node specific wake on LAN settings.",
48662 "format" : {
48663 "bind-interface" : {
48664 "default" : "The interface carrying the default route",
48665 "description" : "Bind to this interface when sending wake on LAN packet",
48666 "format" : "pve-iface",
48667 "format_description" : "bind interface",
48668 "optional" : 1,
48669 "type" : "string"
48670 },
48671 "broadcast-address" : {
48672 "default" : "255.255.255.255",
48673 "description" : "IPv4 broadcast address to use when sending wake on LAN packet",
48674 "format" : "ipv4",
48675 "format_description" : "IPv4 broadcast address",
48676 "optional" : 1,
48677 "type" : "string"
48678 },
48679 "mac" : {
48680 "default_key" : 1,
48681 "description" : "MAC address for wake on LAN",
48682 "format" : "mac-addr",
48683 "format_description" : "MAC address",
48684 "type" : "string"
48685 }
48686 },
c5aa7e14
TL
48687 "optional" : 1,
48688 "type" : "string",
907e4bc3 48689 "typetext" : "[mac=]<MAC address> [,bind-interface=<bind interface>] [,broadcast-address=<IPv4 broadcast address>]"
c5aa7e14
TL
48690 }
48691 }
48692 },
48693 "permissions" : {
48694 "check" : [
48695 "perm",
48696 "/",
48697 [
48698 "Sys.Modify"
48699 ]
48700 ]
48701 },
48702 "protected" : 1,
48703 "proxyto" : "node",
48704 "returns" : {
48705 "type" : "null"
48706 }
48707 }
48708 },
48709 "leaf" : 1,
48710 "path" : "/nodes/{node}/config",
48711 "text" : "config"
48712 },
48713 {
48714 "children" : [
48715 {
48716 "children" : [
48717 {
48718 "children" : [
48719 {
48720 "info" : {
48721 "GET" : {
48722 "allowtoken" : 1,
48723 "description" : "List zone content.",
48724 "method" : "GET",
48725 "name" : "index",
48726 "parameters" : {
48727 "additionalProperties" : 0,
48728 "properties" : {
48729 "node" : {
48730 "description" : "The cluster node name.",
48731 "format" : "pve-node",
48732 "type" : "string",
48733 "typetext" : "<string>"
48734 },
48735 "zone" : {
48736 "description" : "The SDN zone object identifier.",
48737 "format" : "pve-sdn-zone-id",
48738 "type" : "string",
48739 "typetext" : "<string>"
48740 }
48741 }
48742 },
48743 "permissions" : {
48744 "check" : [
48745 "perm",
48746 "/sdn/zones/{zone}",
48747 [
48748 "SDN.Audit"
48749 ],
48750 "any",
48751 1
48752 ]
48753 },
48754 "protected" : 1,
48755 "proxyto" : "node",
48756 "returns" : {
48757 "items" : {
48758 "properties" : {
48759 "status" : {
48760 "description" : "Status.",
48761 "optional" : 1,
48762 "type" : "string"
48763 },
48764 "statusmsg" : {
48765 "description" : "Status details",
48766 "optional" : 1,
48767 "type" : "string"
48768 },
48769 "vnet" : {
48770 "description" : "Vnet identifier.",
48771 "type" : "string"
48772 }
48773 },
48774 "type" : "object"
48775 },
48776 "links" : [
48777 {
48778 "href" : "{vnet}",
48779 "rel" : "child"
48780 }
48781 ],
48782 "type" : "array"
48783 }
48784 }
48785 },
48786 "leaf" : 1,
48787 "path" : "/nodes/{node}/sdn/zones/{zone}/content",
48788 "text" : "content"
48789 }
48790 ],
48791 "info" : {
48792 "GET" : {
48793 "allowtoken" : 1,
48794 "description" : "",
48795 "method" : "GET",
48796 "name" : "diridx",
48797 "parameters" : {
48798 "additionalProperties" : 0,
48799 "properties" : {
48800 "node" : {
48801 "description" : "The cluster node name.",
48802 "format" : "pve-node",
48803 "type" : "string",
48804 "typetext" : "<string>"
48805 },
48806 "zone" : {
48807 "description" : "The SDN zone object identifier.",
48808 "format" : "pve-sdn-zone-id",
48809 "type" : "string",
48810 "typetext" : "<string>"
48811 }
48812 }
48813 },
48814 "permissions" : {
48815 "check" : [
48816 "perm",
48817 "/sdn/zones/{zone}",
48818 [
48819 "SDN.Audit"
48820 ],
48821 "any",
48822 1
48823 ]
48824 },
48825 "returns" : {
48826 "items" : {
48827 "properties" : {
48828 "subdir" : {
48829 "type" : "string"
48830 }
48831 },
48832 "type" : "object"
48833 },
48834 "links" : [
48835 {
48836 "href" : "{subdir}",
48837 "rel" : "child"
48838 }
48839 ],
48840 "type" : "array"
48841 }
48842 }
48843 },
48844 "leaf" : 0,
48845 "path" : "/nodes/{node}/sdn/zones/{zone}",
48846 "text" : "{zone}"
48847 }
48848 ],
48849 "info" : {
48850 "GET" : {
48851 "allowtoken" : 1,
48852 "description" : "Get status for all zones.",
48853 "method" : "GET",
48854 "name" : "index",
48855 "parameters" : {
48856 "additionalProperties" : 0,
48857 "properties" : {
48858 "node" : {
48859 "description" : "The cluster node name.",
48860 "format" : "pve-node",
48861 "type" : "string",
48862 "typetext" : "<string>"
48863 }
48864 }
48865 },
48866 "permissions" : {
48867 "description" : "Only list entries where you have 'SDN.Audit'",
48868 "user" : "all"
48869 },
48870 "protected" : 1,
48871 "proxyto" : "node",
48872 "returns" : {
48873 "items" : {
48874 "properties" : {
48875 "status" : {
48876 "description" : "Status of zone",
ac70d7d1
TL
48877 "enum" : [
48878 "available",
48879 "pending",
48880 "error"
48881 ],
c5aa7e14
TL
48882 "type" : "string"
48883 },
48884 "zone" : {
48885 "description" : "The SDN zone object identifier.",
48886 "format" : "pve-sdn-zone-id",
48887 "type" : "string"
48888 }
48889 },
48890 "type" : "object"
48891 },
48892 "links" : [
48893 {
48894 "href" : "{zone}",
48895 "rel" : "child"
48896 }
48897 ],
48898 "type" : "array"
48899 }
48900 }
48901 },
48902 "leaf" : 0,
48903 "path" : "/nodes/{node}/sdn/zones",
48904 "text" : "zones"
48905 }
48906 ],
48907 "info" : {
48908 "GET" : {
48909 "allowtoken" : 1,
48910 "description" : "SDN index.",
48911 "method" : "GET",
48912 "name" : "sdnindex",
48913 "parameters" : {
48914 "additionalProperties" : 0,
48915 "properties" : {
48916 "node" : {
48917 "description" : "The cluster node name.",
48918 "format" : "pve-node",
48919 "type" : "string",
48920 "typetext" : "<string>"
48921 }
48922 }
48923 },
48924 "permissions" : {
48925 "user" : "all"
48926 },
48927 "returns" : {
48928 "items" : {
48929 "properties" : {},
48930 "type" : "object"
48931 },
48932 "links" : [
48933 {
48934 "href" : "{name}",
48935 "rel" : "child"
48936 }
48937 ],
48938 "type" : "array"
48939 }
48940 }
48941 },
48942 "leaf" : 0,
48943 "path" : "/nodes/{node}/sdn",
48944 "text" : "sdn"
a9a8e3d1 48945 },
56122987 48946 {
56122987
DM
48947 "info" : {
48948 "GET" : {
e9cd3bd4 48949 "allowtoken" : 1,
44660702
DM
48950 "description" : "API version details",
48951 "method" : "GET",
48952 "name" : "version",
56122987 48953 "parameters" : {
44660702 48954 "additionalProperties" : 0,
56122987
DM
48955 "properties" : {
48956 "node" : {
56122987 48957 "description" : "The cluster node name.",
44660702 48958 "format" : "pve-node",
013dc89f
DM
48959 "type" : "string",
48960 "typetext" : "<string>"
56122987 48961 }
44660702 48962 }
56122987 48963 },
56122987 48964 "permissions" : {
7aacca6f 48965 "user" : "all"
56122987 48966 },
56122987 48967 "proxyto" : "node",
56122987 48968 "returns" : {
56122987 48969 "properties" : {
44660702 48970 "release" : {
1e3f8156 48971 "description" : "The current installed Proxmox VE Release",
56122987
DM
48972 "type" : "string"
48973 },
44660702 48974 "repoid" : {
1e3f8156 48975 "description" : "The short git commit hash ID from which this version was build",
7aacca6f
DM
48976 "type" : "string"
48977 },
48978 "version" : {
1e3f8156 48979 "description" : "The current installed pve-manager package version",
7aacca6f
DM
48980 "type" : "string"
48981 }
44660702
DM
48982 },
48983 "type" : "object"
7aacca6f 48984 }
56122987
DM
48985 }
48986 },
56122987 48987 "leaf" : 1,
44660702
DM
48988 "path" : "/nodes/{node}/version",
48989 "text" : "version"
56122987
DM
48990 },
48991 {
56122987
DM
48992 "info" : {
48993 "GET" : {
e9cd3bd4 48994 "allowtoken" : 1,
7aacca6f 48995 "description" : "Read node status",
44660702 48996 "method" : "GET",
7aacca6f 48997 "name" : "status",
56122987 48998 "parameters" : {
44660702 48999 "additionalProperties" : 0,
56122987
DM
49000 "properties" : {
49001 "node" : {
7aacca6f 49002 "description" : "The cluster node name.",
44660702 49003 "format" : "pve-node",
013dc89f
DM
49004 "type" : "string",
49005 "typetext" : "<string>"
56122987 49006 }
44660702 49007 }
56122987 49008 },
56122987
DM
49009 "permissions" : {
49010 "check" : [
49011 "perm",
49012 "/nodes/{node}",
49013 [
49014 "Sys.Audit"
49015 ]
49016 ]
44660702
DM
49017 },
49018 "proxyto" : "node",
49019 "returns" : {
c6d5bae8
TL
49020 "additionalProperties" : 1,
49021 "properties" : {
49022 "boot-info" : {
49023 "description" : "Meta-information about the boot mode.",
49024 "properties" : {
49025 "mode" : {
49026 "description" : "Through which firmware the system got booted.",
49027 "enum" : [
49028 "efi",
49029 "legacy-bios"
49030 ],
49031 "type" : "string"
49032 },
49033 "secureboot" : {
49034 "description" : "System is booted in secure mode, only applicable for the \"efi\" mode.",
49035 "optional" : 1,
49036 "type" : "boolean"
49037 }
49038 },
49039 "type" : "object"
49040 },
49041 "current-kernel" : {
49042 "description" : "The uptime of the system in seconds.",
49043 "properties" : {
49044 "machine" : {
49045 "description" : "Hardware (architecture) type",
49046 "type" : "string"
49047 },
49048 "release" : {
49049 "description" : "OS kernel release (e.g., \"6.8.0\")",
49050 "type" : "string"
49051 },
49052 "sysname" : {
49053 "description" : "OS kernel name (e.g., \"Linux\")",
49054 "type" : "string"
49055 },
49056 "version" : {
49057 "description" : "OS kernel version with build info",
49058 "type" : "string"
49059 }
49060 },
49061 "type" : "object"
49062 }
49063 },
44660702 49064 "type" : "object"
7aacca6f
DM
49065 }
49066 },
49067 "POST" : {
e9cd3bd4 49068 "allowtoken" : 1,
44660702
DM
49069 "description" : "Reboot or shutdown a node.",
49070 "method" : "POST",
7aacca6f 49071 "name" : "node_cmd",
56122987 49072 "parameters" : {
44660702 49073 "additionalProperties" : 0,
56122987 49074 "properties" : {
7aacca6f
DM
49075 "command" : {
49076 "description" : "Specify the command.",
56122987 49077 "enum" : [
7aacca6f
DM
49078 "reboot",
49079 "shutdown"
56122987
DM
49080 ],
49081 "type" : "string"
44660702
DM
49082 },
49083 "node" : {
49084 "description" : "The cluster node name.",
49085 "format" : "pve-node",
013dc89f
DM
49086 "type" : "string",
49087 "typetext" : "<string>"
56122987 49088 }
44660702 49089 }
7aacca6f 49090 },
7aacca6f
DM
49091 "permissions" : {
49092 "check" : [
49093 "perm",
49094 "/nodes/{node}",
49095 [
49096 "Sys.PowerMgmt"
49097 ]
49098 ]
49099 },
44660702 49100 "protected" : 1,
7aacca6f 49101 "proxyto" : "node",
7aacca6f
DM
49102 "returns" : {
49103 "type" : "null"
56122987
DM
49104 }
49105 }
49106 },
7aacca6f 49107 "leaf" : 1,
44660702
DM
49108 "path" : "/nodes/{node}/status",
49109 "text" : "status"
56122987
DM
49110 },
49111 {
56122987
DM
49112 "info" : {
49113 "GET" : {
e9cd3bd4 49114 "allowtoken" : 1,
44660702
DM
49115 "description" : "Read tap/vm network device interface counters",
49116 "method" : "GET",
49117 "name" : "netstat",
49118 "parameters" : {
49119 "additionalProperties" : 0,
49120 "properties" : {
49121 "node" : {
49122 "description" : "The cluster node name.",
49123 "format" : "pve-node",
013dc89f
DM
49124 "type" : "string",
49125 "typetext" : "<string>"
44660702 49126 }
56122987
DM
49127 }
49128 },
49129 "permissions" : {
49130 "check" : [
49131 "perm",
49132 "/nodes/{node}",
49133 [
7aacca6f 49134 "Sys.Audit"
56122987
DM
49135 ]
49136 ]
49137 },
7aacca6f 49138 "proxyto" : "node",
44660702
DM
49139 "returns" : {
49140 "items" : {
49141 "properties" : {},
49142 "type" : "object"
49143 },
49144 "type" : "array"
49145 }
7aacca6f
DM
49146 }
49147 },
44660702
DM
49148 "leaf" : 1,
49149 "path" : "/nodes/{node}/netstat",
7aacca6f
DM
49150 "text" : "netstat"
49151 },
49152 {
49153 "info" : {
49154 "POST" : {
e9cd3bd4 49155 "allowtoken" : 1,
159464a9 49156 "description" : "Execute multiple commands in order, root only.",
7aacca6f 49157 "method" : "POST",
7aacca6f 49158 "name" : "execute",
56122987
DM
49159 "parameters" : {
49160 "additionalProperties" : 0,
49161 "properties" : {
7aacca6f
DM
49162 "commands" : {
49163 "description" : "JSON encoded array of commands.",
de786b48 49164 "format" : "pve-command-batch",
013dc89f 49165 "type" : "string",
de786b48 49166 "typetext" : "<string>",
4a407cfd 49167 "verbose_description" : "JSON encoded array of commands, where each command is an object with the following properties:\n args: <object>\n\t A set of parameter names and their values.\n\n method: (GET|POST|PUT|DELETE)\n\t A method related to the API endpoint (GET, POST etc.).\n\n path: <string>\n\t A relative path to an API endpoint on this node.\n\n"
56122987
DM
49168 },
49169 "node" : {
44660702 49170 "description" : "The cluster node name.",
56122987 49171 "format" : "pve-node",
013dc89f
DM
49172 "type" : "string",
49173 "typetext" : "<string>"
56122987
DM
49174 }
49175 }
44660702 49176 },
44660702
DM
49177 "protected" : 1,
49178 "proxyto" : "node",
49179 "returns" : {
de786b48
TL
49180 "items" : {
49181 "properties" : {},
49182 "type" : "object"
49183 },
44660702 49184 "type" : "array"
56122987
DM
49185 }
49186 }
49187 },
56122987 49188 "leaf" : 1,
44660702
DM
49189 "path" : "/nodes/{node}/execute",
49190 "text" : "execute"
56122987 49191 },
5f26e15b
TL
49192 {
49193 "info" : {
49194 "POST" : {
e9cd3bd4 49195 "allowtoken" : 1,
5f26e15b
TL
49196 "description" : "Try to wake a node via 'wake on LAN' network packet.",
49197 "method" : "POST",
49198 "name" : "wakeonlan",
49199 "parameters" : {
49200 "additionalProperties" : 0,
49201 "properties" : {
49202 "node" : {
49203 "description" : "target node for wake on LAN packet",
49204 "format" : "pve-node",
49205 "type" : "string",
49206 "typetext" : "<string>"
49207 }
49208 }
49209 },
49210 "permissions" : {
49211 "check" : [
49212 "perm",
49213 "/nodes/{node}",
49214 [
49215 "Sys.PowerMgmt"
49216 ]
49217 ]
49218 },
49219 "protected" : 1,
49220 "returns" : {
49221 "description" : "MAC address used to assemble the WoL magic packet.",
49222 "format" : "mac-addr",
49223 "type" : "string"
49224 }
49225 }
49226 },
49227 "leaf" : 1,
49228 "path" : "/nodes/{node}/wakeonlan",
49229 "text" : "wakeonlan"
49230 },
56122987
DM
49231 {
49232 "info" : {
7aacca6f 49233 "GET" : {
e9cd3bd4 49234 "allowtoken" : 1,
44660702
DM
49235 "description" : "Read node RRD statistics (returns PNG)",
49236 "method" : "GET",
7aacca6f 49237 "name" : "rrd",
56122987 49238 "parameters" : {
7aacca6f 49239 "additionalProperties" : 0,
56122987 49240 "properties" : {
44660702
DM
49241 "cf" : {
49242 "description" : "The RRD consolidation function",
49243 "enum" : [
49244 "AVERAGE",
49245 "MAX"
49246 ],
49247 "optional" : 1,
49248 "type" : "string"
49249 },
7aacca6f 49250 "ds" : {
7aacca6f 49251 "description" : "The list of datasources you want to display.",
44660702 49252 "format" : "pve-configid-list",
013dc89f
DM
49253 "type" : "string",
49254 "typetext" : "<string>"
44660702
DM
49255 },
49256 "node" : {
49257 "description" : "The cluster node name.",
49258 "format" : "pve-node",
013dc89f
DM
49259 "type" : "string",
49260 "typetext" : "<string>"
7aacca6f
DM
49261 },
49262 "timeframe" : {
49263 "description" : "Specify the time frame you are interested in.",
49264 "enum" : [
49265 "hour",
49266 "day",
49267 "week",
49268 "month",
49269 "year"
49270 ],
49271 "type" : "string"
56122987 49272 }
7aacca6f 49273 }
56122987 49274 },
56122987 49275 "permissions" : {
56122987
DM
49276 "check" : [
49277 "perm",
49278 "/nodes/{node}",
49279 [
7aacca6f 49280 "Sys.Audit"
56122987
DM
49281 ]
49282 ]
49283 },
7aacca6f 49284 "protected" : 1,
56122987 49285 "returns" : {
56122987 49286 "properties" : {
7aacca6f 49287 "filename" : {
56122987
DM
49288 "type" : "string"
49289 }
44660702
DM
49290 },
49291 "type" : "object"
49292 }
56122987
DM
49293 }
49294 },
44660702 49295 "leaf" : 1,
7aacca6f 49296 "path" : "/nodes/{node}/rrd",
44660702 49297 "text" : "rrd"
56122987
DM
49298 },
49299 {
49300 "info" : {
7aacca6f 49301 "GET" : {
e9cd3bd4 49302 "allowtoken" : 1,
44660702
DM
49303 "description" : "Read node RRD statistics",
49304 "method" : "GET",
7aacca6f 49305 "name" : "rrddata",
56122987 49306 "parameters" : {
44660702 49307 "additionalProperties" : 0,
56122987 49308 "properties" : {
7aacca6f 49309 "cf" : {
7aacca6f
DM
49310 "description" : "The RRD consolidation function",
49311 "enum" : [
49312 "AVERAGE",
49313 "MAX"
44660702
DM
49314 ],
49315 "optional" : 1,
49316 "type" : "string"
56122987
DM
49317 },
49318 "node" : {
44660702 49319 "description" : "The cluster node name.",
56122987 49320 "format" : "pve-node",
013dc89f
DM
49321 "type" : "string",
49322 "typetext" : "<string>"
56122987 49323 },
7aacca6f 49324 "timeframe" : {
7aacca6f
DM
49325 "description" : "Specify the time frame you are interested in.",
49326 "enum" : [
49327 "hour",
49328 "day",
49329 "week",
49330 "month",
49331 "year"
44660702
DM
49332 ],
49333 "type" : "string"
56122987 49334 }
56122987
DM
49335 }
49336 },
56122987
DM
49337 "permissions" : {
49338 "check" : [
49339 "perm",
49340 "/nodes/{node}",
49341 [
44660702 49342 "Sys.Audit"
56122987
DM
49343 ]
49344 ]
7aacca6f 49345 },
44660702 49346 "protected" : 1,
56122987 49347 "returns" : {
7aacca6f 49348 "items" : {
44660702 49349 "properties" : {},
7aacca6f
DM
49350 "type" : "object"
49351 },
49352 "type" : "array"
44660702
DM
49353 }
49354 }
49355 },
49356 "leaf" : 1,
49357 "path" : "/nodes/{node}/rrddata",
49358 "text" : "rrddata"
49359 },
49360 {
49361 "info" : {
49362 "GET" : {
e9cd3bd4 49363 "allowtoken" : 1,
44660702
DM
49364 "description" : "Read system log",
49365 "method" : "GET",
49366 "name" : "syslog",
56122987 49367 "parameters" : {
44660702 49368 "additionalProperties" : 0,
56122987 49369 "properties" : {
44660702
DM
49370 "limit" : {
49371 "minimum" : 0,
7aacca6f 49372 "optional" : 1,
4bd7df8b 49373 "type" : "integer",
013dc89f 49374 "typetext" : "<integer> (0 - N)"
7aacca6f 49375 },
56122987 49376 "node" : {
7aacca6f 49377 "description" : "The cluster node name.",
44660702 49378 "format" : "pve-node",
013dc89f
DM
49379 "type" : "string",
49380 "typetext" : "<string>"
56122987 49381 },
35a75dd3
DM
49382 "service" : {
49383 "description" : "Service ID",
49384 "maxLength" : 128,
49385 "optional" : 1,
49386 "type" : "string",
49387 "typetext" : "<string>"
49388 },
44660702
DM
49389 "since" : {
49390 "description" : "Display all log since this date-time string.",
49391 "optional" : 1,
49392 "pattern" : "^\\d{4}-\\d{2}-\\d{2}( \\d{2}:\\d{2}(:\\d{2})?)?$",
49393 "type" : "string"
49394 },
49395 "start" : {
7aacca6f
DM
49396 "minimum" : 0,
49397 "optional" : 1,
4bd7df8b 49398 "type" : "integer",
013dc89f 49399 "typetext" : "<integer> (0 - N)"
7aacca6f
DM
49400 },
49401 "until" : {
49402 "description" : "Display all log until this date-time string.",
7aacca6f 49403 "optional" : 1,
44660702 49404 "pattern" : "^\\d{4}-\\d{2}-\\d{2}( \\d{2}:\\d{2}(:\\d{2})?)?$",
56122987
DM
49405 "type" : "string"
49406 }
44660702 49407 }
56122987 49408 },
44660702
DM
49409 "permissions" : {
49410 "check" : [
49411 "perm",
49412 "/nodes/{node}",
49413 [
49414 "Sys.Syslog"
49415 ]
49416 ]
49417 },
49418 "protected" : 1,
49419 "proxyto" : "node",
49420 "returns" : {
49421 "items" : {
49422 "properties" : {
49423 "n" : {
49424 "description" : "Line number",
49425 "type" : "integer"
49426 },
49427 "t" : {
49428 "description" : "Line text",
49429 "type" : "string"
49430 }
49431 },
49432 "type" : "object"
49433 },
49434 "type" : "array"
49435 }
56122987
DM
49436 }
49437 },
44660702
DM
49438 "leaf" : 1,
49439 "path" : "/nodes/{node}/syslog",
7aacca6f 49440 "text" : "syslog"
56122987 49441 },
bb4c8cf8
TL
49442 {
49443 "info" : {
49444 "GET" : {
e9cd3bd4 49445 "allowtoken" : 1,
bb4c8cf8
TL
49446 "description" : "Read Journal",
49447 "method" : "GET",
49448 "name" : "journal",
49449 "parameters" : {
49450 "additionalProperties" : 0,
49451 "properties" : {
49452 "endcursor" : {
49453 "description" : "End before the given Cursor. Conflicts with 'until'",
49454 "optional" : 1,
49455 "type" : "string",
49456 "typetext" : "<string>"
49457 },
49458 "lastentries" : {
49459 "description" : "Limit to the last X lines. Conflicts with a range.",
49460 "minimum" : 0,
49461 "optional" : 1,
49462 "type" : "integer",
49463 "typetext" : "<integer> (0 - N)"
49464 },
49465 "node" : {
49466 "description" : "The cluster node name.",
49467 "format" : "pve-node",
49468 "type" : "string",
49469 "typetext" : "<string>"
49470 },
49471 "since" : {
49472 "description" : "Display all log since this UNIX epoch. Conflicts with 'startcursor'.",
49473 "minimum" : 0,
49474 "optional" : 1,
49475 "type" : "integer",
49476 "typetext" : "<integer> (0 - N)"
49477 },
49478 "startcursor" : {
49479 "description" : "Start after the given Cursor. Conflicts with 'since'",
49480 "optional" : 1,
49481 "type" : "string",
49482 "typetext" : "<string>"
49483 },
49484 "until" : {
49485 "description" : "Display all log until this UNIX epoch. Conflicts with 'endcursor'.",
49486 "minimum" : 0,
49487 "optional" : 1,
49488 "type" : "integer",
49489 "typetext" : "<integer> (0 - N)"
49490 }
49491 }
49492 },
49493 "permissions" : {
49494 "check" : [
49495 "perm",
49496 "/nodes/{node}",
49497 [
49498 "Sys.Syslog"
49499 ]
49500 ]
49501 },
49502 "protected" : 1,
49503 "proxyto" : "node",
49504 "returns" : {
49505 "items" : {
49506 "type" : "string"
49507 },
49508 "type" : "array"
49509 }
49510 }
49511 },
49512 "leaf" : 1,
49513 "path" : "/nodes/{node}/journal",
49514 "text" : "journal"
49515 },
56122987 49516 {
56122987
DM
49517 "info" : {
49518 "POST" : {
e9cd3bd4 49519 "allowtoken" : 1,
44660702
DM
49520 "description" : "Creates a VNC Shell proxy.",
49521 "method" : "POST",
49522 "name" : "vncshell",
49523 "parameters" : {
49524 "additionalProperties" : 0,
56122987 49525 "properties" : {
95895385
TL
49526 "cmd" : {
49527 "default" : "login",
fa22697b 49528 "description" : "Run specific command or default to login (requires 'root@pam')",
95895385 49529 "enum" : [
c6d5bae8 49530 "upgrade",
1ffb0cf5
TL
49531 "ceph_install",
49532 "login"
95895385
TL
49533 ],
49534 "optional" : 1,
49535 "type" : "string"
49536 },
4772952b
TL
49537 "cmd-opts" : {
49538 "default" : "",
49539 "description" : "Add parameters to a command. Encoded as null terminated strings.",
49540 "optional" : 1,
49541 "requires" : "cmd",
49542 "type" : "string",
49543 "typetext" : "<string>"
49544 },
5d9c884c
DM
49545 "height" : {
49546 "description" : "sets the height of the console in pixels.",
49547 "maximum" : 2160,
49548 "minimum" : 16,
49549 "optional" : 1,
49550 "type" : "integer",
49551 "typetext" : "<integer> (16 - 2160)"
49552 },
44660702
DM
49553 "node" : {
49554 "description" : "The cluster node name.",
49555 "format" : "pve-node",
013dc89f
DM
49556 "type" : "string",
49557 "typetext" : "<string>"
7aacca6f 49558 },
44660702
DM
49559 "websocket" : {
49560 "description" : "use websocket instead of standard vnc.",
49561 "optional" : 1,
013dc89f
DM
49562 "type" : "boolean",
49563 "typetext" : "<boolean>"
5d9c884c
DM
49564 },
49565 "width" : {
49566 "description" : "sets the width of the console in pixels.",
49567 "maximum" : 4096,
49568 "minimum" : 16,
49569 "optional" : 1,
49570 "type" : "integer",
49571 "typetext" : "<integer> (16 - 4096)"
56122987 49572 }
44660702 49573 }
56122987 49574 },
56122987
DM
49575 "permissions" : {
49576 "check" : [
49577 "perm",
7aacca6f 49578 "/nodes/{node}",
56122987 49579 [
7aacca6f 49580 "Sys.Console"
56122987 49581 ]
fa22697b 49582 ]
56122987 49583 },
44660702
DM
49584 "protected" : 1,
49585 "returns" : {
49586 "additionalProperties" : 0,
56122987 49587 "properties" : {
44660702
DM
49588 "cert" : {
49589 "type" : "string"
7aacca6f 49590 },
44660702
DM
49591 "port" : {
49592 "type" : "integer"
7aacca6f 49593 },
44660702
DM
49594 "ticket" : {
49595 "type" : "string"
49596 },
49597 "upid" : {
49598 "type" : "string"
49599 },
49600 "user" : {
49601 "type" : "string"
56122987 49602 }
44660702
DM
49603 }
49604 }
56122987
DM
49605 }
49606 },
7aacca6f 49607 "leaf" : 1,
44660702
DM
49608 "path" : "/nodes/{node}/vncshell",
49609 "text" : "vncshell"
56122987 49610 },
35a75dd3
DM
49611 {
49612 "info" : {
49613 "POST" : {
e9cd3bd4 49614 "allowtoken" : 1,
35a75dd3
DM
49615 "description" : "Creates a VNC Shell proxy.",
49616 "method" : "POST",
49617 "name" : "termproxy",
49618 "parameters" : {
49619 "additionalProperties" : 0,
49620 "properties" : {
95895385
TL
49621 "cmd" : {
49622 "default" : "login",
fa22697b 49623 "description" : "Run specific command or default to login (requires 'root@pam')",
95895385 49624 "enum" : [
c6d5bae8 49625 "upgrade",
1ffb0cf5
TL
49626 "ceph_install",
49627 "login"
95895385
TL
49628 ],
49629 "optional" : 1,
49630 "type" : "string"
49631 },
4772952b
TL
49632 "cmd-opts" : {
49633 "default" : "",
49634 "description" : "Add parameters to a command. Encoded as null terminated strings.",
49635 "optional" : 1,
49636 "requires" : "cmd",
49637 "type" : "string",
49638 "typetext" : "<string>"
49639 },
35a75dd3
DM
49640 "node" : {
49641 "description" : "The cluster node name.",
49642 "format" : "pve-node",
49643 "type" : "string",
49644 "typetext" : "<string>"
35a75dd3
DM
49645 }
49646 }
49647 },
49648 "permissions" : {
49649 "check" : [
49650 "perm",
49651 "/nodes/{node}",
49652 [
49653 "Sys.Console"
49654 ]
fa22697b 49655 ]
35a75dd3
DM
49656 },
49657 "protected" : 1,
49658 "returns" : {
49659 "additionalProperties" : 0,
49660 "properties" : {
49661 "port" : {
49662 "type" : "integer"
49663 },
49664 "ticket" : {
49665 "type" : "string"
49666 },
49667 "upid" : {
49668 "type" : "string"
49669 },
49670 "user" : {
49671 "type" : "string"
49672 }
49673 }
49674 }
49675 }
49676 },
49677 "leaf" : 1,
49678 "path" : "/nodes/{node}/termproxy",
49679 "text" : "termproxy"
49680 },
56122987
DM
49681 {
49682 "info" : {
49683 "GET" : {
e9cd3bd4 49684 "allowtoken" : 1,
0695fdaf 49685 "description" : "Opens a websocket for VNC traffic.",
44660702
DM
49686 "method" : "GET",
49687 "name" : "vncwebsocket",
56122987 49688 "parameters" : {
44660702 49689 "additionalProperties" : 0,
56122987
DM
49690 "properties" : {
49691 "node" : {
49692 "description" : "The cluster node name.",
44660702 49693 "format" : "pve-node",
013dc89f
DM
49694 "type" : "string",
49695 "typetext" : "<string>"
7aacca6f
DM
49696 },
49697 "port" : {
7aacca6f
DM
49698 "description" : "Port number returned by previous vncproxy call.",
49699 "maximum" : 5999,
44660702 49700 "minimum" : 5900,
4bd7df8b 49701 "type" : "integer",
013dc89f 49702 "typetext" : "<integer> (5900 - 5999)"
44660702
DM
49703 },
49704 "vncticket" : {
49705 "description" : "Ticket from previous call to vncproxy.",
49706 "maxLength" : 512,
013dc89f
DM
49707 "type" : "string",
49708 "typetext" : "<string>"
56122987 49709 }
44660702 49710 }
56122987 49711 },
56122987
DM
49712 "permissions" : {
49713 "check" : [
49714 "perm",
49715 "/nodes/{node}",
49716 [
7aacca6f 49717 "Sys.Console"
56122987 49718 ]
44660702 49719 ],
fa22697b 49720 "description" : "You also need to pass a valid ticket (vncticket)."
44660702
DM
49721 },
49722 "returns" : {
49723 "properties" : {
49724 "port" : {
49725 "type" : "string"
49726 }
49727 },
49728 "type" : "object"
7aacca6f 49729 }
56122987
DM
49730 }
49731 },
44660702 49732 "leaf" : 1,
7aacca6f 49733 "path" : "/nodes/{node}/vncwebsocket",
44660702 49734 "text" : "vncwebsocket"
56122987
DM
49735 },
49736 {
49737 "info" : {
49738 "POST" : {
e9cd3bd4 49739 "allowtoken" : 1,
44660702 49740 "description" : "Creates a SPICE shell.",
7aacca6f 49741 "method" : "POST",
44660702 49742 "name" : "spiceshell",
56122987 49743 "parameters" : {
7aacca6f 49744 "additionalProperties" : 0,
56122987 49745 "properties" : {
95895385
TL
49746 "cmd" : {
49747 "default" : "login",
fa22697b 49748 "description" : "Run specific command or default to login (requires 'root@pam')",
95895385 49749 "enum" : [
c6d5bae8 49750 "upgrade",
1ffb0cf5
TL
49751 "ceph_install",
49752 "login"
95895385
TL
49753 ],
49754 "optional" : 1,
49755 "type" : "string"
49756 },
4772952b
TL
49757 "cmd-opts" : {
49758 "default" : "",
49759 "description" : "Add parameters to a command. Encoded as null terminated strings.",
49760 "optional" : 1,
49761 "requires" : "cmd",
49762 "type" : "string",
49763 "typetext" : "<string>"
49764 },
7aacca6f 49765 "node" : {
44660702 49766 "description" : "The cluster node name.",
56122987 49767 "format" : "pve-node",
013dc89f
DM
49768 "type" : "string",
49769 "typetext" : "<string>"
7aacca6f 49770 },
44660702 49771 "proxy" : {
4d47f125 49772 "description" : "SPICE proxy server. This can be used by the client to specify the proxy server. All nodes in a cluster runs 'spiceproxy', so it is up to the client to choose one. By default, we return the node where the VM is currently running. As reasonable setting is to use same node you use to connect to the API (This is window.location.hostname for the JS GUI).",
44660702
DM
49773 "format" : "address",
49774 "optional" : 1,
013dc89f
DM
49775 "type" : "string",
49776 "typetext" : "<string>"
56122987 49777 }
7aacca6f 49778 }
56122987 49779 },
56122987
DM
49780 "permissions" : {
49781 "check" : [
49782 "perm",
7aacca6f 49783 "/nodes/{node}",
56122987 49784 [
7aacca6f 49785 "Sys.Console"
56122987 49786 ]
fa22697b 49787 ]
44660702
DM
49788 },
49789 "protected" : 1,
49790 "proxyto" : "node",
49791 "returns" : {
49792 "additionalProperties" : 1,
49793 "description" : "Returned values can be directly passed to the 'remote-viewer' application.",
49794 "properties" : {
49795 "host" : {
49796 "type" : "string"
49797 },
49798 "password" : {
49799 "type" : "string"
49800 },
49801 "proxy" : {
49802 "type" : "string"
49803 },
49804 "tls-port" : {
49805 "type" : "integer"
49806 },
49807 "type" : {
49808 "type" : "string"
49809 }
49810 }
7aacca6f 49811 }
56122987
DM
49812 }
49813 },
56122987 49814 "leaf" : 1,
44660702
DM
49815 "path" : "/nodes/{node}/spiceshell",
49816 "text" : "spiceshell"
56122987
DM
49817 },
49818 {
56122987 49819 "info" : {
7aacca6f 49820 "GET" : {
e9cd3bd4 49821 "allowtoken" : 1,
44660702 49822 "description" : "Read DNS settings.",
7aacca6f 49823 "method" : "GET",
44660702
DM
49824 "name" : "dns",
49825 "parameters" : {
7aacca6f
DM
49826 "additionalProperties" : 0,
49827 "properties" : {
44660702
DM
49828 "node" : {
49829 "description" : "The cluster node name.",
49830 "format" : "pve-node",
013dc89f
DM
49831 "type" : "string",
49832 "typetext" : "<string>"
7aacca6f
DM
49833 }
49834 }
49835 },
7aacca6f
DM
49836 "permissions" : {
49837 "check" : [
49838 "perm",
49839 "/nodes/{node}",
49840 [
49841 "Sys.Audit"
49842 ]
49843 ]
49844 },
44660702
DM
49845 "proxyto" : "node",
49846 "returns" : {
56122987
DM
49847 "additionalProperties" : 0,
49848 "properties" : {
44660702
DM
49849 "dns1" : {
49850 "description" : "First name server IP address.",
49851 "optional" : 1,
49852 "type" : "string"
49853 },
49854 "dns2" : {
49855 "description" : "Second name server IP address.",
49856 "optional" : 1,
49857 "type" : "string"
49858 },
49859 "dns3" : {
49860 "description" : "Third name server IP address.",
49861 "optional" : 1,
49862 "type" : "string"
49863 },
49864 "search" : {
49865 "description" : "Search domain for host-name lookup.",
49866 "optional" : 1,
49867 "type" : "string"
7aacca6f 49868 }
44660702
DM
49869 },
49870 "type" : "object"
49871 }
7aacca6f
DM
49872 },
49873 "PUT" : {
e9cd3bd4 49874 "allowtoken" : 1,
44660702
DM
49875 "description" : "Write DNS settings.",
49876 "method" : "PUT",
7aacca6f
DM
49877 "name" : "update_dns",
49878 "parameters" : {
49879 "additionalProperties" : 0,
49880 "properties" : {
44660702
DM
49881 "dns1" : {
49882 "description" : "First name server IP address.",
49883 "format" : "ip",
49884 "optional" : 1,
013dc89f
DM
49885 "type" : "string",
49886 "typetext" : "<string>"
7aacca6f 49887 },
44660702
DM
49888 "dns2" : {
49889 "description" : "Second name server IP address.",
49890 "format" : "ip",
7aacca6f 49891 "optional" : 1,
013dc89f
DM
49892 "type" : "string",
49893 "typetext" : "<string>"
7aacca6f 49894 },
44660702
DM
49895 "dns3" : {
49896 "description" : "Third name server IP address.",
49897 "format" : "ip",
7aacca6f 49898 "optional" : 1,
013dc89f
DM
49899 "type" : "string",
49900 "typetext" : "<string>"
7aacca6f
DM
49901 },
49902 "node" : {
44660702 49903 "description" : "The cluster node name.",
56122987 49904 "format" : "pve-node",
013dc89f
DM
49905 "type" : "string",
49906 "typetext" : "<string>"
7aacca6f 49907 },
44660702
DM
49908 "search" : {
49909 "description" : "Search domain for host-name lookup.",
013dc89f
DM
49910 "type" : "string",
49911 "typetext" : "<string>"
56122987
DM
49912 }
49913 }
49914 },
49915 "permissions" : {
49916 "check" : [
49917 "perm",
7aacca6f 49918 "/nodes/{node}",
56122987 49919 [
7aacca6f 49920 "Sys.Modify"
56122987
DM
49921 ]
49922 ]
49923 },
44660702 49924 "protected" : 1,
7aacca6f 49925 "proxyto" : "node",
56122987 49926 "returns" : {
7aacca6f
DM
49927 "type" : "null"
49928 }
56122987 49929 }
44660702
DM
49930 },
49931 "leaf" : 1,
49932 "path" : "/nodes/{node}/dns",
49933 "text" : "dns"
56122987
DM
49934 },
49935 {
49936 "info" : {
7aacca6f 49937 "GET" : {
e9cd3bd4 49938 "allowtoken" : 1,
7aacca6f 49939 "description" : "Read server time and time zone settings.",
44660702
DM
49940 "method" : "GET",
49941 "name" : "time",
56122987 49942 "parameters" : {
44660702 49943 "additionalProperties" : 0,
56122987
DM
49944 "properties" : {
49945 "node" : {
44660702 49946 "description" : "The cluster node name.",
56122987 49947 "format" : "pve-node",
013dc89f
DM
49948 "type" : "string",
49949 "typetext" : "<string>"
56122987 49950 }
44660702 49951 }
56122987
DM
49952 },
49953 "permissions" : {
49954 "check" : [
49955 "perm",
7aacca6f 49956 "/nodes/{node}",
56122987 49957 [
7aacca6f 49958 "Sys.Audit"
56122987
DM
49959 ]
49960 ]
44660702
DM
49961 },
49962 "proxyto" : "node",
49963 "returns" : {
49964 "additionalProperties" : 0,
49965 "properties" : {
49966 "localtime" : {
49967 "description" : "Seconds since 1970-01-01 00:00:00 (local time)",
49968 "minimum" : 1297163644,
4d47f125 49969 "renderer" : "timestamp_gmt",
44660702
DM
49970 "type" : "integer"
49971 },
49972 "time" : {
49973 "description" : "Seconds since 1970-01-01 00:00:00 UTC.",
49974 "minimum" : 1297163644,
4d47f125 49975 "renderer" : "timestamp",
44660702
DM
49976 "type" : "integer"
49977 },
49978 "timezone" : {
49979 "description" : "Time zone",
49980 "type" : "string"
49981 }
49982 },
49983 "type" : "object"
7aacca6f
DM
49984 }
49985 },
49986 "PUT" : {
e9cd3bd4 49987 "allowtoken" : 1,
7aacca6f 49988 "description" : "Set time zone.",
44660702
DM
49989 "method" : "PUT",
49990 "name" : "set_timezone",
49991 "parameters" : {
49992 "additionalProperties" : 0,
49993 "properties" : {
49994 "node" : {
49995 "description" : "The cluster node name.",
49996 "format" : "pve-node",
013dc89f
DM
49997 "type" : "string",
49998 "typetext" : "<string>"
44660702
DM
49999 },
50000 "timezone" : {
50001 "description" : "Time zone. The file '/usr/share/zoneinfo/zone.tab' contains the list of valid names.",
013dc89f
DM
50002 "type" : "string",
50003 "typetext" : "<string>"
44660702
DM
50004 }
50005 }
50006 },
7aacca6f
DM
50007 "permissions" : {
50008 "check" : [
50009 "perm",
50010 "/nodes/{node}",
50011 [
50012 "Sys.Modify"
50013 ]
50014 ]
56122987 50015 },
7aacca6f 50016 "protected" : 1,
44660702
DM
50017 "proxyto" : "node",
50018 "returns" : {
50019 "type" : "null"
50020 }
7aacca6f
DM
50021 }
50022 },
7aacca6f 50023 "leaf" : 1,
44660702
DM
50024 "path" : "/nodes/{node}/time",
50025 "text" : "time"
7aacca6f
DM
50026 },
50027 {
50028 "info" : {
44660702 50029 "GET" : {
e9cd3bd4 50030 "allowtoken" : 1,
44660702
DM
50031 "description" : "Get list of appliances.",
50032 "method" : "GET",
50033 "name" : "aplinfo",
7aacca6f
DM
50034 "parameters" : {
50035 "additionalProperties" : 0,
50036 "properties" : {
7aacca6f 50037 "node" : {
44660702 50038 "description" : "The cluster node name.",
7aacca6f 50039 "format" : "pve-node",
013dc89f
DM
50040 "type" : "string",
50041 "typetext" : "<string>"
7aacca6f
DM
50042 }
50043 }
56122987 50044 },
7aacca6f 50045 "permissions" : {
44660702 50046 "user" : "all"
56122987 50047 },
44660702 50048 "proxyto" : "node",
7aacca6f
DM
50049 "returns" : {
50050 "items" : {
44660702
DM
50051 "properties" : {},
50052 "type" : "object"
7aacca6f
DM
50053 },
50054 "type" : "array"
44660702
DM
50055 }
50056 },
50057 "POST" : {
e9cd3bd4 50058 "allowtoken" : 1,
44660702
DM
50059 "description" : "Download appliance templates.",
50060 "method" : "POST",
50061 "name" : "apl_download",
7aacca6f
DM
50062 "parameters" : {
50063 "additionalProperties" : 0,
50064 "properties" : {
50065 "node" : {
7aacca6f 50066 "description" : "The cluster node name.",
44660702 50067 "format" : "pve-node",
013dc89f
DM
50068 "type" : "string",
50069 "typetext" : "<string>"
44660702
DM
50070 },
50071 "storage" : {
4bd7df8b 50072 "description" : "The storage where the template will be stored",
44660702 50073 "format" : "pve-storage-id",
907e4bc3 50074 "format_description" : "storage ID",
013dc89f 50075 "type" : "string",
907e4bc3 50076 "typetext" : "<storage ID>"
44660702
DM
50077 },
50078 "template" : {
1e3f8156 50079 "description" : "The template which will downloaded",
44660702 50080 "maxLength" : 255,
013dc89f
DM
50081 "type" : "string",
50082 "typetext" : "<string>"
7aacca6f
DM
50083 }
50084 }
56122987 50085 },
7aacca6f 50086 "permissions" : {
44660702
DM
50087 "check" : [
50088 "perm",
50089 "/storage/{storage}",
50090 [
50091 "Datastore.AllocateTemplate"
50092 ]
50093 ]
50094 },
50095 "protected" : 1,
50096 "proxyto" : "node",
50097 "returns" : {
50098 "type" : "string"
7aacca6f
DM
50099 }
50100 }
50101 },
7aacca6f 50102 "leaf" : 1,
44660702
DM
50103 "path" : "/nodes/{node}/aplinfo",
50104 "text" : "aplinfo"
7aacca6f 50105 },
5370fa8c
TL
50106 {
50107 "info" : {
50108 "GET" : {
50109 "allowtoken" : 1,
50110 "description" : "Query metadata of an URL: file size, file name and mime type.",
50111 "method" : "GET",
50112 "name" : "query_url_metadata",
50113 "parameters" : {
50114 "additionalProperties" : 0,
50115 "properties" : {
50116 "node" : {
50117 "description" : "The cluster node name.",
50118 "format" : "pve-node",
50119 "type" : "string",
50120 "typetext" : "<string>"
50121 },
50122 "url" : {
50123 "description" : "The URL to query the metadata from.",
50124 "pattern" : "https?://.*",
50125 "type" : "string"
50126 },
50127 "verify-certificates" : {
50128 "default" : 1,
50129 "description" : "If false, no SSL/TLS certificates will be verified.",
50130 "optional" : 1,
50131 "type" : "boolean",
50132 "typetext" : "<boolean>"
50133 }
50134 }
50135 },
50136 "permissions" : {
50137 "check" : [
c6d5bae8 50138 "or",
5370fa8c 50139 [
c6d5bae8
TL
50140 "perm",
50141 "/",
50142 [
50143 "Sys.Audit",
50144 "Sys.Modify"
50145 ]
50146 ],
50147 [
50148 "perm",
50149 "/nodes/{node}",
50150 [
50151 "Sys.AccessNetwork"
50152 ]
5370fa8c
TL
50153 ]
50154 ]
50155 },
50156 "proxyto" : "node",
50157 "returns" : {
50158 "properties" : {
50159 "filename" : {
50160 "optional" : 1,
50161 "type" : "string"
50162 },
50163 "mimetype" : {
50164 "optional" : 1,
50165 "type" : "string"
50166 },
50167 "size" : {
50168 "optional" : 1,
50169 "renderer" : "bytes",
50170 "type" : "integer"
50171 }
50172 },
50173 "type" : "object"
50174 }
50175 }
50176 },
50177 "leaf" : 1,
50178 "path" : "/nodes/{node}/query-url-metadata",
50179 "text" : "query-url-metadata"
50180 },
7aacca6f
DM
50181 {
50182 "info" : {
50183 "GET" : {
e9cd3bd4 50184 "allowtoken" : 1,
44660702
DM
50185 "description" : "Gather various systems information about a node",
50186 "method" : "GET",
50187 "name" : "report",
7aacca6f 50188 "parameters" : {
44660702 50189 "additionalProperties" : 0,
7aacca6f
DM
50190 "properties" : {
50191 "node" : {
7aacca6f 50192 "description" : "The cluster node name.",
44660702 50193 "format" : "pve-node",
013dc89f
DM
50194 "type" : "string",
50195 "typetext" : "<string>"
7aacca6f 50196 }
44660702 50197 }
56122987 50198 },
7aacca6f
DM
50199 "permissions" : {
50200 "check" : [
50201 "perm",
50202 "/nodes/{node}",
50203 [
50204 "Sys.Audit"
50205 ]
50206 ]
56122987 50207 },
44660702 50208 "protected" : 1,
7aacca6f
DM
50209 "proxyto" : "node",
50210 "returns" : {
56122987 50211 "type" : "string"
7aacca6f
DM
50212 }
50213 }
50214 },
7aacca6f 50215 "leaf" : 1,
44660702
DM
50216 "path" : "/nodes/{node}/report",
50217 "text" : "report"
7aacca6f
DM
50218 },
50219 {
7aacca6f
DM
50220 "info" : {
50221 "POST" : {
e9cd3bd4 50222 "allowtoken" : 1,
1c532546 50223 "description" : "Start all VMs and containers located on this node (by default only those with onboot=1).",
7aacca6f 50224 "method" : "POST",
44660702 50225 "name" : "startall",
7aacca6f 50226 "parameters" : {
44660702 50227 "additionalProperties" : 0,
7aacca6f
DM
50228 "properties" : {
50229 "force" : {
1c532546
TL
50230 "default" : "off",
50231 "description" : "Issue start command even if virtual guest have 'onboot' not set or set to off.",
7aacca6f 50232 "optional" : 1,
013dc89f
DM
50233 "type" : "boolean",
50234 "typetext" : "<boolean>"
7aacca6f
DM
50235 },
50236 "node" : {
7aacca6f 50237 "description" : "The cluster node name.",
44660702 50238 "format" : "pve-node",
013dc89f
DM
50239 "type" : "string",
50240 "typetext" : "<string>"
52e44c50
FG
50241 },
50242 "vms" : {
1c532546 50243 "description" : "Only consider guests from this comma separated list of VMIDs.",
52e44c50
FG
50244 "format" : "pve-vmid-list",
50245 "optional" : 1,
50246 "type" : "string",
50247 "typetext" : "<string>"
7aacca6f 50248 }
44660702 50249 }
56122987 50250 },
7aacca6f 50251 "permissions" : {
9d2e98ed
TL
50252 "description" : "The 'VM.PowerMgmt' permission is required on '/' or on '/vms/<ID>' for each ID passed via the 'vms' parameter.",
50253 "user" : "all"
44660702
DM
50254 },
50255 "protected" : 1,
50256 "proxyto" : "node",
50257 "returns" : {
50258 "type" : "string"
7aacca6f
DM
50259 }
50260 }
50261 },
44660702 50262 "leaf" : 1,
7aacca6f 50263 "path" : "/nodes/{node}/startall",
44660702 50264 "text" : "startall"
7aacca6f
DM
50265 },
50266 {
7aacca6f
DM
50267 "info" : {
50268 "POST" : {
e9cd3bd4 50269 "allowtoken" : 1,
7aacca6f 50270 "description" : "Stop all VMs and Containers.",
44660702
DM
50271 "method" : "POST",
50272 "name" : "stopall",
7aacca6f 50273 "parameters" : {
44660702 50274 "additionalProperties" : 0,
7aacca6f 50275 "properties" : {
9d2e98ed
TL
50276 "force-stop" : {
50277 "default" : 1,
50278 "description" : "Force a hard-stop after the timeout.",
50279 "optional" : 1,
50280 "type" : "boolean",
50281 "typetext" : "<boolean>"
50282 },
7aacca6f 50283 "node" : {
44660702 50284 "description" : "The cluster node name.",
7aacca6f 50285 "format" : "pve-node",
013dc89f
DM
50286 "type" : "string",
50287 "typetext" : "<string>"
52e44c50 50288 },
9d2e98ed
TL
50289 "timeout" : {
50290 "default" : 180,
50291 "description" : "Timeout for each guest shutdown task. Depending on `force-stop`, the shutdown gets then simply aborted or a hard-stop is forced.",
50292 "maximum" : 7200,
50293 "minimum" : 0,
50294 "optional" : 1,
50295 "type" : "integer",
50296 "typetext" : "<integer> (0 - 7200)"
50297 },
52e44c50
FG
50298 "vms" : {
50299 "description" : "Only consider Guests with these IDs.",
50300 "format" : "pve-vmid-list",
50301 "optional" : 1,
50302 "type" : "string",
50303 "typetext" : "<string>"
7aacca6f 50304 }
44660702 50305 }
56122987 50306 },
7aacca6f 50307 "permissions" : {
9d2e98ed
TL
50308 "description" : "The 'VM.PowerMgmt' permission is required on '/' or on '/vms/<ID>' for each ID passed via the 'vms' parameter.",
50309 "user" : "all"
56122987 50310 },
44660702 50311 "protected" : 1,
7aacca6f 50312 "proxyto" : "node",
44660702
DM
50313 "returns" : {
50314 "type" : "string"
50315 }
50316 }
56122987 50317 },
44660702
DM
50318 "leaf" : 1,
50319 "path" : "/nodes/{node}/stopall",
50320 "text" : "stopall"
50321 },
fa22697b
TL
50322 {
50323 "info" : {
50324 "POST" : {
50325 "allowtoken" : 1,
50326 "description" : "Suspend all VMs.",
50327 "method" : "POST",
50328 "name" : "suspendall",
50329 "parameters" : {
50330 "additionalProperties" : 0,
50331 "properties" : {
50332 "node" : {
50333 "description" : "The cluster node name.",
50334 "format" : "pve-node",
50335 "type" : "string",
50336 "typetext" : "<string>"
50337 },
50338 "vms" : {
50339 "description" : "Only consider Guests with these IDs.",
50340 "format" : "pve-vmid-list",
50341 "optional" : 1,
50342 "type" : "string",
50343 "typetext" : "<string>"
50344 }
50345 }
50346 },
50347 "permissions" : {
50348 "description" : "The 'VM.PowerMgmt' permission is required on '/' or on '/vms/<ID>' for each ID passed via the 'vms' parameter. Additionally, you need 'VM.Config.Disk' on the '/vms/{vmid}' path and 'Datastore.AllocateSpace' for the configured state-storage(s)",
50349 "user" : "all"
50350 },
50351 "protected" : 1,
50352 "proxyto" : "node",
50353 "returns" : {
50354 "type" : "string"
50355 }
50356 }
50357 },
50358 "leaf" : 1,
50359 "path" : "/nodes/{node}/suspendall",
50360 "text" : "suspendall"
50361 },
44660702
DM
50362 {
50363 "info" : {
50364 "POST" : {
e9cd3bd4 50365 "allowtoken" : 1,
44660702
DM
50366 "description" : "Migrate all VMs and Containers.",
50367 "method" : "POST",
50368 "name" : "migrateall",
50369 "parameters" : {
50370 "additionalProperties" : 0,
50371 "properties" : {
50372 "maxworkers" : {
9d2e98ed 50373 "description" : "Maximal number of parallel migration job. If not set, uses'max_workers' from datacenter.cfg. One of both must be set!",
44660702
DM
50374 "minimum" : 1,
50375 "optional" : 1,
4bd7df8b 50376 "type" : "integer",
013dc89f 50377 "typetext" : "<integer> (1 - N)"
44660702
DM
50378 },
50379 "node" : {
50380 "description" : "The cluster node name.",
50381 "format" : "pve-node",
013dc89f
DM
50382 "type" : "string",
50383 "typetext" : "<string>"
44660702
DM
50384 },
50385 "target" : {
50386 "description" : "Target node.",
50387 "format" : "pve-node",
013dc89f
DM
50388 "type" : "string",
50389 "typetext" : "<string>"
52e44c50
FG
50390 },
50391 "vms" : {
50392 "description" : "Only consider Guests with these IDs.",
50393 "format" : "pve-vmid-list",
50394 "optional" : 1,
50395 "type" : "string",
50396 "typetext" : "<string>"
e9cd3bd4
TL
50397 },
50398 "with-local-disks" : {
50399 "description" : "Enable live storage migration for local disk",
50400 "optional" : 1,
50401 "type" : "boolean",
50402 "typetext" : "<boolean>"
44660702
DM
50403 }
50404 }
50405 },
50406 "permissions" : {
9d2e98ed
TL
50407 "description" : "The 'VM.Migrate' permission is required on '/' or on '/vms/<ID>' for each ID passed via the 'vms' parameter.",
50408 "user" : "all"
44660702
DM
50409 },
50410 "protected" : 1,
50411 "proxyto" : "node",
50412 "returns" : {
50413 "type" : "string"
50414 }
50415 }
56122987 50416 },
44660702
DM
50417 "leaf" : 1,
50418 "path" : "/nodes/{node}/migrateall",
50419 "text" : "migrateall"
4d47f125
TL
50420 },
50421 {
50422 "info" : {
50423 "GET" : {
e9cd3bd4 50424 "allowtoken" : 1,
4d47f125
TL
50425 "description" : "Get the content of /etc/hosts.",
50426 "method" : "GET",
50427 "name" : "get_etc_hosts",
50428 "parameters" : {
50429 "additionalProperties" : 0,
50430 "properties" : {
50431 "node" : {
50432 "description" : "The cluster node name.",
50433 "format" : "pve-node",
50434 "type" : "string",
50435 "typetext" : "<string>"
50436 }
50437 }
50438 },
50439 "permissions" : {
50440 "check" : [
50441 "perm",
50442 "/",
50443 [
50444 "Sys.Audit"
50445 ]
50446 ]
50447 },
50448 "protected" : 1,
50449 "proxyto" : "node",
50450 "returns" : {
50451 "properties" : {
50452 "data" : {
50453 "description" : "The content of /etc/hosts.",
50454 "type" : "string"
50455 },
50456 "digest" : {
82551b2b
TL
50457 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
50458 "maxLength" : 64,
4d47f125
TL
50459 "optional" : 1,
50460 "type" : "string"
50461 }
50462 },
50463 "type" : "object"
50464 }
50465 },
50466 "POST" : {
e9cd3bd4 50467 "allowtoken" : 1,
4d47f125
TL
50468 "description" : "Write /etc/hosts.",
50469 "method" : "POST",
50470 "name" : "write_etc_hosts",
50471 "parameters" : {
50472 "additionalProperties" : 0,
50473 "properties" : {
50474 "data" : {
50475 "description" : "The target content of /etc/hosts.",
50476 "type" : "string",
50477 "typetext" : "<string>"
50478 },
50479 "digest" : {
82551b2b
TL
50480 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
50481 "maxLength" : 64,
4d47f125
TL
50482 "optional" : 1,
50483 "type" : "string",
50484 "typetext" : "<string>"
50485 },
50486 "node" : {
50487 "description" : "The cluster node name.",
50488 "format" : "pve-node",
50489 "type" : "string",
50490 "typetext" : "<string>"
50491 }
50492 }
50493 },
50494 "permissions" : {
50495 "check" : [
50496 "perm",
50497 "/nodes/{node}",
50498 [
50499 "Sys.Modify"
50500 ]
50501 ]
50502 },
50503 "protected" : 1,
50504 "proxyto" : "node",
50505 "returns" : {
50506 "type" : "null"
50507 }
50508 }
50509 },
50510 "leaf" : 1,
50511 "path" : "/nodes/{node}/hosts",
50512 "text" : "hosts"
44660702
DM
50513 }
50514 ],
50515 "info" : {
50516 "GET" : {
e9cd3bd4 50517 "allowtoken" : 1,
44660702
DM
50518 "description" : "Node index.",
50519 "method" : "GET",
50520 "name" : "index",
50521 "parameters" : {
50522 "additionalProperties" : 0,
50523 "properties" : {
50524 "node" : {
50525 "description" : "The cluster node name.",
50526 "format" : "pve-node",
013dc89f
DM
50527 "type" : "string",
50528 "typetext" : "<string>"
44660702
DM
50529 }
50530 }
56122987 50531 },
44660702
DM
50532 "permissions" : {
50533 "user" : "all"
56122987 50534 },
44660702
DM
50535 "returns" : {
50536 "items" : {
50537 "properties" : {},
50538 "type" : "object"
50539 },
50540 "links" : [
50541 {
50542 "href" : "{name}",
50543 "rel" : "child"
50544 }
56122987 50545 ],
44660702 50546 "type" : "array"
7aacca6f
DM
50547 }
50548 }
50549 },
44660702
DM
50550 "leaf" : 0,
50551 "path" : "/nodes/{node}",
50552 "text" : "{node}"
50553 }
50554 ],
50555 "info" : {
7aacca6f 50556 "GET" : {
e9cd3bd4 50557 "allowtoken" : 1,
44660702 50558 "description" : "Cluster node index.",
7aacca6f 50559 "method" : "GET",
44660702 50560 "name" : "index",
7aacca6f 50561 "parameters" : {
7aacca6f
DM
50562 "additionalProperties" : 0
50563 },
50564 "permissions" : {
7aacca6f
DM
50565 "user" : "all"
50566 },
44660702
DM
50567 "returns" : {
50568 "items" : {
4d47f125
TL
50569 "properties" : {
50570 "cpu" : {
50571 "description" : "CPU utilization.",
50572 "optional" : 1,
50573 "renderer" : "fraction_as_percentage",
50574 "type" : "number"
50575 },
50576 "level" : {
50577 "description" : "Support level.",
50578 "optional" : 1,
50579 "type" : "string"
50580 },
50581 "maxcpu" : {
50582 "description" : "Number of available CPUs.",
50583 "optional" : 1,
50584 "type" : "integer"
50585 },
50586 "maxmem" : {
50587 "description" : "Number of available memory in bytes.",
50588 "optional" : 1,
50589 "renderer" : "bytes",
50590 "type" : "integer"
50591 },
50592 "mem" : {
50593 "description" : "Used memory in bytes.",
50594 "optional" : 1,
50595 "renderer" : "bytes",
1c532546 50596 "type" : "integer"
4d47f125
TL
50597 },
50598 "node" : {
50599 "description" : "The cluster node name.",
50600 "format" : "pve-node",
50601 "type" : "string"
50602 },
50603 "ssl_fingerprint" : {
50604 "description" : "The SSL fingerprint for the node certificate.",
50605 "optional" : 1,
50606 "type" : "string"
50607 },
50608 "status" : {
50609 "description" : "Node status.",
50610 "enum" : [
50611 "unknown",
50612 "online",
50613 "offline"
50614 ],
50615 "type" : "string"
50616 },
50617 "uptime" : {
50618 "description" : "Node uptime in seconds.",
50619 "optional" : 1,
50620 "renderer" : "duration",
50621 "type" : "integer"
50622 }
50623 },
44660702
DM
50624 "type" : "object"
50625 },
50626 "links" : [
50627 {
50628 "href" : "{node}",
50629 "rel" : "child"
50630 }
50631 ],
50632 "type" : "array"
50633 }
7aacca6f
DM
50634 }
50635 },
44660702
DM
50636 "leaf" : 0,
50637 "path" : "/nodes",
50638 "text" : "nodes"
50639 },
50640 {
7aacca6f
DM
50641 "children" : [
50642 {
7aacca6f 50643 "info" : {
44660702 50644 "DELETE" : {
e9cd3bd4 50645 "allowtoken" : 1,
44660702
DM
50646 "description" : "Delete storage configuration.",
50647 "method" : "DELETE",
50648 "name" : "delete",
7aacca6f
DM
50649 "parameters" : {
50650 "additionalProperties" : 0,
50651 "properties" : {
50652 "storage" : {
7aacca6f 50653 "description" : "The storage identifier.",
44660702 50654 "format" : "pve-storage-id",
907e4bc3 50655 "format_description" : "storage ID",
013dc89f 50656 "type" : "string",
907e4bc3 50657 "typetext" : "<storage ID>"
7aacca6f
DM
50658 }
50659 }
56122987 50660 },
7aacca6f
DM
50661 "permissions" : {
50662 "check" : [
50663 "perm",
50664 "/storage",
50665 [
50666 "Datastore.Allocate"
50667 ]
50668 ]
56122987 50669 },
44660702
DM
50670 "protected" : 1,
50671 "returns" : {
50672 "type" : "null"
50673 }
50674 },
50675 "GET" : {
e9cd3bd4 50676 "allowtoken" : 1,
44660702
DM
50677 "description" : "Read storage configuration.",
50678 "method" : "GET",
50679 "name" : "read",
7aacca6f
DM
50680 "parameters" : {
50681 "additionalProperties" : 0,
50682 "properties" : {
50683 "storage" : {
44660702 50684 "description" : "The storage identifier.",
7aacca6f 50685 "format" : "pve-storage-id",
907e4bc3 50686 "format_description" : "storage ID",
013dc89f 50687 "type" : "string",
907e4bc3 50688 "typetext" : "<storage ID>"
7aacca6f
DM
50689 }
50690 }
50691 },
44660702
DM
50692 "permissions" : {
50693 "check" : [
50694 "perm",
50695 "/storage/{storage}",
50696 [
50697 "Datastore.Allocate"
50698 ]
50699 ]
50700 },
5da3d723
TL
50701 "returns" : {
50702 "type" : "object"
50703 }
7aacca6f
DM
50704 },
50705 "PUT" : {
e9cd3bd4 50706 "allowtoken" : 1,
44660702
DM
50707 "description" : "Update storage configuration.",
50708 "method" : "PUT",
50709 "name" : "update",
50710 "parameters" : {
50711 "additionalProperties" : 0,
50712 "properties" : {
50713 "blocksize" : {
50714 "description" : "block size",
7aacca6f 50715 "optional" : 1,
013dc89f
DM
50716 "type" : "string",
50717 "typetext" : "<string>"
7aacca6f 50718 },
27a7acb2 50719 "bwlimit" : {
4a407cfd 50720 "description" : "Set I/O bandwidth limit for various operations (in KiB/s).",
27a7acb2
DM
50721 "format" : {
50722 "clone" : {
95895385 50723 "description" : "bandwidth limit in KiB/s for cloning disks",
27a7acb2
DM
50724 "format_description" : "LIMIT",
50725 "minimum" : "0",
50726 "optional" : 1,
50727 "type" : "number"
50728 },
50729 "default" : {
95895385 50730 "description" : "default bandwidth limit in KiB/s",
27a7acb2
DM
50731 "format_description" : "LIMIT",
50732 "minimum" : "0",
50733 "optional" : 1,
50734 "type" : "number"
50735 },
50736 "migration" : {
95895385 50737 "description" : "bandwidth limit in KiB/s for migrating guests (including moving local disks)",
27a7acb2
DM
50738 "format_description" : "LIMIT",
50739 "minimum" : "0",
50740 "optional" : 1,
50741 "type" : "number"
50742 },
50743 "move" : {
95895385 50744 "description" : "bandwidth limit in KiB/s for moving disks",
27a7acb2
DM
50745 "format_description" : "LIMIT",
50746 "minimum" : "0",
50747 "optional" : 1,
50748 "type" : "number"
50749 },
50750 "restore" : {
95895385 50751 "description" : "bandwidth limit in KiB/s for restoring guests from backups",
27a7acb2
DM
50752 "format_description" : "LIMIT",
50753 "minimum" : "0",
50754 "optional" : 1,
50755 "type" : "number"
50756 }
50757 },
50758 "optional" : 1,
50759 "type" : "string",
50760 "typetext" : "[clone=<LIMIT>] [,default=<LIMIT>] [,migration=<LIMIT>] [,move=<LIMIT>] [,restore=<LIMIT>]"
50761 },
44660702
DM
50762 "comstar_hg" : {
50763 "description" : "host group for comstar views",
50764 "optional" : 1,
013dc89f
DM
50765 "type" : "string",
50766 "typetext" : "<string>"
7aacca6f 50767 },
44660702
DM
50768 "comstar_tg" : {
50769 "description" : "target group for comstar views",
7aacca6f 50770 "optional" : 1,
013dc89f
DM
50771 "type" : "string",
50772 "typetext" : "<string>"
7aacca6f 50773 },
44660702
DM
50774 "content" : {
50775 "description" : "Allowed content types.\n\nNOTE: the value 'rootdir' is used for Containers, and value 'images' for VMs.\n",
50776 "format" : "pve-storage-content-list",
7aacca6f 50777 "optional" : 1,
013dc89f
DM
50778 "type" : "string",
50779 "typetext" : "<string>"
7aacca6f 50780 },
9d2e98ed
TL
50781 "content-dirs" : {
50782 "description" : "Overrides for default content type directories.",
50783 "format" : "pve-dir-override-list",
50784 "optional" : 1,
50785 "type" : "string",
50786 "typetext" : "<string>"
50787 },
4a407cfd
TL
50788 "create-base-path" : {
50789 "default" : "yes",
50790 "description" : "Create the base directory if it doesn't exist.",
50791 "optional" : 1,
50792 "type" : "boolean",
50793 "typetext" : "<boolean>"
50794 },
50795 "create-subdirs" : {
50796 "default" : "yes",
50797 "description" : "Populate the directory with the default structure.",
50798 "optional" : 1,
50799 "type" : "boolean",
50800 "typetext" : "<boolean>"
50801 },
c30bb419
TL
50802 "data-pool" : {
50803 "description" : "Data Pool (for erasure coding only)",
50804 "optional" : 1,
50805 "type" : "string",
50806 "typetext" : "<string>"
50807 },
44660702
DM
50808 "delete" : {
50809 "description" : "A list of settings you want to delete.",
50810 "format" : "pve-configid-list",
50811 "maxLength" : 4096,
7aacca6f 50812 "optional" : 1,
013dc89f
DM
50813 "type" : "string",
50814 "typetext" : "<string>"
7aacca6f
DM
50815 },
50816 "digest" : {
82551b2b
TL
50817 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
50818 "maxLength" : 64,
7aacca6f 50819 "optional" : 1,
013dc89f
DM
50820 "type" : "string",
50821 "typetext" : "<string>"
7aacca6f 50822 },
44660702
DM
50823 "disable" : {
50824 "description" : "Flag to disable the storage.",
50825 "optional" : 1,
013dc89f
DM
50826 "type" : "boolean",
50827 "typetext" : "<boolean>"
7aacca6f 50828 },
27a7acb2
DM
50829 "domain" : {
50830 "description" : "CIFS domain.",
50831 "maxLength" : 256,
50832 "optional" : 1,
50833 "type" : "string",
50834 "typetext" : "<string>"
50835 },
04d22a9f
TL
50836 "encryption-key" : {
50837 "description" : "Encryption key. Use 'autogen' to generate one automatically without passphrase.",
50838 "optional" : 1,
50839 "type" : "string",
50840 "typetext" : "<string>"
50841 },
c5aa7e14
TL
50842 "fingerprint" : {
50843 "description" : "Certificate SHA 256 fingerprint.",
50844 "optional" : 1,
50845 "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
50846 "type" : "string"
50847 },
7aacca6f
DM
50848 "format" : {
50849 "description" : "Default image format.",
44660702 50850 "format" : "pve-storage-format",
7aacca6f 50851 "optional" : 1,
013dc89f
DM
50852 "type" : "string",
50853 "typetext" : "<string>"
7aacca6f 50854 },
5370fa8c
TL
50855 "fs-name" : {
50856 "description" : "The Ceph filesystem name.",
50857 "format" : "pve-configid",
50858 "optional" : 1,
50859 "type" : "string",
50860 "typetext" : "<string>"
50861 },
5da3d723
TL
50862 "fuse" : {
50863 "description" : "Mount CephFS through FUSE.",
50864 "optional" : 1,
50865 "type" : "boolean",
50866 "typetext" : "<boolean>"
50867 },
2c0dde61
DM
50868 "is_mountpoint" : {
50869 "default" : "no",
2489d6df 50870 "description" : "Assume the given path is an externally managed mountpoint and consider the storage offline if it is not mounted. Using a boolean (yes/no) value serves as a shortcut to using the target path in this field.",
2c0dde61 50871 "optional" : 1,
2489d6df
WB
50872 "type" : "string",
50873 "typetext" : "<string>"
2c0dde61 50874 },
5370fa8c
TL
50875 "keyring" : {
50876 "description" : "Client keyring contents (for external clusters).",
50877 "optional" : 1,
50878 "type" : "string",
50879 "typetext" : "<string>"
50880 },
44660702 50881 "krbd" : {
e2d681b3 50882 "description" : "Always access rbd through krbd kernel module.",
7aacca6f 50883 "optional" : 1,
013dc89f
DM
50884 "type" : "boolean",
50885 "typetext" : "<boolean>"
7aacca6f 50886 },
4d47f125
TL
50887 "lio_tpg" : {
50888 "description" : "target portal group for Linux LIO targets",
50889 "optional" : 1,
50890 "type" : "string",
50891 "typetext" : "<string>"
50892 },
d2656385 50893 "master-pubkey" : {
5f4e66fe 50894 "description" : "Base64-encoded, PEM-formatted public RSA key. Used to encrypt a copy of the encryption-key which will be added to each encrypted backup.",
d2656385
TL
50895 "optional" : 1,
50896 "type" : "string",
50897 "typetext" : "<string>"
50898 },
7af2edf9
TL
50899 "max-protected-backups" : {
50900 "default" : "Unlimited for users with Datastore.Allocate privilege, 5 for other users",
50901 "description" : "Maximal number of protected backups per guest. Use '-1' for unlimited.",
50902 "minimum" : -1,
50903 "optional" : 1,
50904 "type" : "integer",
50905 "typetext" : "<integer> (-1 - N)"
50906 },
44660702 50907 "maxfiles" : {
5f4e66fe 50908 "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per VM. Use '0' for unlimited.",
44660702
DM
50909 "minimum" : 0,
50910 "optional" : 1,
4bd7df8b 50911 "type" : "integer",
013dc89f 50912 "typetext" : "<integer> (0 - N)"
4bd7df8b
DM
50913 },
50914 "mkdir" : {
50915 "default" : "yes",
4a407cfd 50916 "description" : "Create the directory if it doesn't exist and populate it with default sub-dirs. NOTE: Deprecated, use the 'create-base-path' and 'create-subdirs' options instead.",
4bd7df8b 50917 "optional" : 1,
013dc89f
DM
50918 "type" : "boolean",
50919 "typetext" : "<boolean>"
7aacca6f 50920 },
2489d6df
WB
50921 "monhost" : {
50922 "description" : "IP addresses of monitors (for external clusters).",
50923 "format" : "pve-storage-portal-dns-list",
50924 "optional" : 1,
50925 "type" : "string",
50926 "typetext" : "<string>"
50927 },
5c1699e5
TL
50928 "mountpoint" : {
50929 "description" : "mount point",
50930 "format" : "pve-storage-path",
50931 "optional" : 1,
50932 "type" : "string",
50933 "typetext" : "<string>"
50934 },
d2656385 50935 "namespace" : {
de786b48 50936 "description" : "Namespace.",
d2656385
TL
50937 "optional" : 1,
50938 "type" : "string",
50939 "typetext" : "<string>"
50940 },
5f4e66fe
TL
50941 "nocow" : {
50942 "default" : 0,
50943 "description" : "Set the NOCOW flag on files. Disables data checksumming and causes data errors to be unrecoverable from while allowing direct I/O. Only use this if data does not need to be any more safe than on a single ext4 formatted disk with no underlying raid system.",
50944 "optional" : 1,
50945 "type" : "boolean",
50946 "typetext" : "<boolean>"
50947 },
7aacca6f 50948 "nodes" : {
c6d5bae8 50949 "description" : "List of nodes for which the storage configuration applies.",
7aacca6f
DM
50950 "format" : "pve-node-list",
50951 "optional" : 1,
013dc89f
DM
50952 "type" : "string",
50953 "typetext" : "<string>"
7aacca6f 50954 },
44660702
DM
50955 "nowritecache" : {
50956 "description" : "disable write caching on the target",
7aacca6f 50957 "optional" : 1,
013dc89f
DM
50958 "type" : "boolean",
50959 "typetext" : "<boolean>"
7aacca6f
DM
50960 },
50961 "options" : {
159464a9 50962 "description" : "NFS/CIFS mount options (see 'man nfs' or 'man mount.cifs')",
44660702
DM
50963 "format" : "pve-storage-options",
50964 "optional" : 1,
013dc89f
DM
50965 "type" : "string",
50966 "typetext" : "<string>"
44660702 50967 },
27a7acb2 50968 "password" : {
04d22a9f 50969 "description" : "Password for accessing the share/datastore.",
27a7acb2
DM
50970 "maxLength" : 256,
50971 "optional" : 1,
50972 "type" : "string",
50973 "typetext" : "<string>"
50974 },
44660702
DM
50975 "pool" : {
50976 "description" : "Pool.",
50977 "optional" : 1,
013dc89f
DM
50978 "type" : "string",
50979 "typetext" : "<string>"
44660702 50980 },
4772952b 50981 "port" : {
4772952b
TL
50982 "description" : "For non default port.",
50983 "maximum" : 65535,
50984 "minimum" : 1,
50985 "optional" : 1,
50986 "type" : "integer",
50987 "typetext" : "<integer> (1 - 65535)"
50988 },
5370fa8c
TL
50989 "preallocation" : {
50990 "default" : "metadata",
50991 "description" : "Preallocation mode for raw and qcow2 images. Using 'metadata' on raw images results in preallocation=off.",
50992 "enum" : [
50993 "off",
50994 "metadata",
50995 "falloc",
50996 "full"
50997 ],
50998 "optional" : 1,
50999 "type" : "string"
51000 },
739d4d64
TL
51001 "prune-backups" : {
51002 "description" : "The retention options with shorter intervals are processed first with --keep-last being the very first one. Each option covers a specific period of time. We say that backups within this period are covered by this option. The next option does not take care of already covered backups and only considers older backups.",
51003 "format" : "prune-backups",
51004 "optional" : 1,
51005 "type" : "string",
4772952b 51006 "typetext" : "[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
739d4d64 51007 },
44660702
DM
51008 "saferemove" : {
51009 "description" : "Zero-out data when removing LVs.",
51010 "optional" : 1,
013dc89f
DM
51011 "type" : "boolean",
51012 "typetext" : "<boolean>"
7aacca6f
DM
51013 },
51014 "saferemove_throughput" : {
44660702 51015 "description" : "Wipe throughput (cstream -t parameter value).",
7aacca6f 51016 "optional" : 1,
013dc89f
DM
51017 "type" : "string",
51018 "typetext" : "<string>"
7aacca6f 51019 },
44660702
DM
51020 "server" : {
51021 "description" : "Server IP or DNS name.",
51022 "format" : "pve-storage-server",
7aacca6f 51023 "optional" : 1,
013dc89f
DM
51024 "type" : "string",
51025 "typetext" : "<string>"
7aacca6f 51026 },
44660702
DM
51027 "server2" : {
51028 "description" : "Backup volfile server IP or DNS name.",
51029 "format" : "pve-storage-server",
7aacca6f 51030 "optional" : 1,
44660702 51031 "requires" : "server",
013dc89f
DM
51032 "type" : "string",
51033 "typetext" : "<string>"
44660702
DM
51034 },
51035 "shared" : {
c6d5bae8
TL
51036 "description" : "Indicate that this is a single storage with the same contents on all nodes (or all listed in the 'nodes' option). It will not make the contents of a local storage automatically accessible to other nodes, it just marks an already shared storage as such!",
51037 "optional" : 1,
51038 "type" : "boolean",
51039 "typetext" : "<boolean>"
51040 },
51041 "skip-cert-verification" : {
51042 "default" : "false",
51043 "description" : "Disable TLS certificate verification, only enable on fully trusted networks!",
44660702 51044 "optional" : 1,
013dc89f
DM
51045 "type" : "boolean",
51046 "typetext" : "<boolean>"
44660702 51047 },
27a7acb2 51048 "smbversion" : {
5370fa8c
TL
51049 "default" : "default",
51050 "description" : "SMB protocol version. 'default' if not set, negotiates the highest SMB2+ version supported by both the client and server.",
5da3d723 51051 "enum" : [
5370fa8c 51052 "default",
5da3d723
TL
51053 "2.0",
51054 "2.1",
5370fa8c
TL
51055 "3",
51056 "3.0",
51057 "3.11"
5da3d723 51058 ],
27a7acb2 51059 "optional" : 1,
5da3d723 51060 "type" : "string"
27a7acb2 51061 },
44660702
DM
51062 "sparse" : {
51063 "description" : "use sparse volumes",
51064 "optional" : 1,
013dc89f
DM
51065 "type" : "boolean",
51066 "typetext" : "<boolean>"
44660702
DM
51067 },
51068 "storage" : {
51069 "description" : "The storage identifier.",
51070 "format" : "pve-storage-id",
907e4bc3 51071 "format_description" : "storage ID",
013dc89f 51072 "type" : "string",
907e4bc3 51073 "typetext" : "<storage ID>"
44660702 51074 },
5da3d723
TL
51075 "subdir" : {
51076 "description" : "Subdir to mount.",
51077 "format" : "pve-storage-path",
51078 "optional" : 1,
51079 "type" : "string",
51080 "typetext" : "<string>"
51081 },
4bd7df8b
DM
51082 "tagged_only" : {
51083 "description" : "Only use logical volumes tagged with 'pve-vm-ID'.",
51084 "optional" : 1,
013dc89f
DM
51085 "type" : "boolean",
51086 "typetext" : "<boolean>"
4bd7df8b 51087 },
44660702
DM
51088 "transport" : {
51089 "description" : "Gluster transport: tcp or rdma",
51090 "enum" : [
51091 "tcp",
51092 "rdma",
51093 "unix"
51094 ],
51095 "optional" : 1,
51096 "type" : "string"
7aacca6f
DM
51097 },
51098 "username" : {
51099 "description" : "RBD Id.",
44660702 51100 "optional" : 1,
013dc89f
DM
51101 "type" : "string",
51102 "typetext" : "<string>"
7aacca6f 51103 }
44660702
DM
51104 },
51105 "type" : "object"
51106 },
51107 "permissions" : {
51108 "check" : [
51109 "perm",
51110 "/storage",
51111 [
51112 "Datastore.Allocate"
51113 ]
51114 ]
51115 },
51116 "protected" : 1,
51117 "returns" : {
4772952b
TL
51118 "properties" : {
51119 "config" : {
51120 "additionalProperties" : 1,
51121 "description" : "Partial, possible server generated, configuration properties.",
51122 "optional" : 1,
51123 "properties" : {
51124 "encryption-key" : {
51125 "description" : "The, possible auto-generated, encryption-key.",
51126 "optional" : 1,
51127 "type" : "string"
51128 }
51129 },
51130 "type" : "object"
51131 },
51132 "storage" : {
51133 "description" : "The ID of the created storage.",
51134 "type" : "string"
51135 },
51136 "type" : {
51137 "description" : "The type of the created storage.",
51138 "enum" : [
5f4e66fe 51139 "btrfs",
4772952b
TL
51140 "cephfs",
51141 "cifs",
51142 "dir",
c6d5bae8 51143 "esxi",
4772952b
TL
51144 "glusterfs",
51145 "iscsi",
51146 "iscsidirect",
51147 "lvm",
51148 "lvmthin",
51149 "nfs",
51150 "pbs",
51151 "rbd",
51152 "zfs",
51153 "zfspool"
51154 ],
51155 "type" : "string"
51156 }
51157 },
51158 "type" : "object"
44660702
DM
51159 }
51160 }
51161 },
51162 "leaf" : 1,
51163 "path" : "/storage/{storage}",
51164 "text" : "{storage}"
51165 }
51166 ],
51167 "info" : {
51168 "GET" : {
e9cd3bd4 51169 "allowtoken" : 1,
44660702
DM
51170 "description" : "Storage index.",
51171 "method" : "GET",
51172 "name" : "index",
51173 "parameters" : {
51174 "additionalProperties" : 0,
51175 "properties" : {
51176 "type" : {
51177 "description" : "Only list storage of specific type",
51178 "enum" : [
5f4e66fe 51179 "btrfs",
5da3d723 51180 "cephfs",
27a7acb2 51181 "cifs",
44660702 51182 "dir",
c6d5bae8 51183 "esxi",
44660702
DM
51184 "glusterfs",
51185 "iscsi",
51186 "iscsidirect",
51187 "lvm",
51188 "lvmthin",
51189 "nfs",
c5aa7e14 51190 "pbs",
44660702 51191 "rbd",
44660702
DM
51192 "zfs",
51193 "zfspool"
51194 ],
51195 "optional" : 1,
51196 "type" : "string"
51197 }
51198 }
51199 },
51200 "permissions" : {
51201 "description" : "Only list entries where you have 'Datastore.Audit' or 'Datastore.AllocateSpace' permissions on '/storage/<storage>'",
51202 "user" : "all"
51203 },
51204 "returns" : {
51205 "items" : {
51206 "properties" : {
51207 "storage" : {
51208 "type" : "string"
7aacca6f 51209 }
56122987 51210 },
44660702
DM
51211 "type" : "object"
51212 },
51213 "links" : [
51214 {
51215 "href" : "{storage}",
51216 "rel" : "child"
51217 }
51218 ],
51219 "type" : "array"
51220 }
51221 },
51222 "POST" : {
e9cd3bd4 51223 "allowtoken" : 1,
44660702
DM
51224 "description" : "Create a new storage.",
51225 "method" : "POST",
51226 "name" : "create",
51227 "parameters" : {
51228 "additionalProperties" : 0,
51229 "properties" : {
51230 "authsupported" : {
51231 "description" : "Authsupported.",
51232 "optional" : 1,
013dc89f
DM
51233 "type" : "string",
51234 "typetext" : "<string>"
44660702
DM
51235 },
51236 "base" : {
51237 "description" : "Base volume. This volume is automatically activated.",
51238 "format" : "pve-volume-id",
51239 "optional" : 1,
013dc89f
DM
51240 "type" : "string",
51241 "typetext" : "<string>"
44660702
DM
51242 },
51243 "blocksize" : {
51244 "description" : "block size",
51245 "optional" : 1,
013dc89f
DM
51246 "type" : "string",
51247 "typetext" : "<string>"
44660702 51248 },
27a7acb2 51249 "bwlimit" : {
4a407cfd 51250 "description" : "Set I/O bandwidth limit for various operations (in KiB/s).",
27a7acb2
DM
51251 "format" : {
51252 "clone" : {
95895385 51253 "description" : "bandwidth limit in KiB/s for cloning disks",
27a7acb2
DM
51254 "format_description" : "LIMIT",
51255 "minimum" : "0",
51256 "optional" : 1,
51257 "type" : "number"
51258 },
51259 "default" : {
95895385 51260 "description" : "default bandwidth limit in KiB/s",
27a7acb2
DM
51261 "format_description" : "LIMIT",
51262 "minimum" : "0",
51263 "optional" : 1,
51264 "type" : "number"
51265 },
51266 "migration" : {
95895385 51267 "description" : "bandwidth limit in KiB/s for migrating guests (including moving local disks)",
27a7acb2
DM
51268 "format_description" : "LIMIT",
51269 "minimum" : "0",
51270 "optional" : 1,
51271 "type" : "number"
51272 },
51273 "move" : {
95895385 51274 "description" : "bandwidth limit in KiB/s for moving disks",
27a7acb2
DM
51275 "format_description" : "LIMIT",
51276 "minimum" : "0",
51277 "optional" : 1,
51278 "type" : "number"
51279 },
51280 "restore" : {
95895385 51281 "description" : "bandwidth limit in KiB/s for restoring guests from backups",
27a7acb2
DM
51282 "format_description" : "LIMIT",
51283 "minimum" : "0",
51284 "optional" : 1,
51285 "type" : "number"
51286 }
51287 },
51288 "optional" : 1,
51289 "type" : "string",
51290 "typetext" : "[clone=<LIMIT>] [,default=<LIMIT>] [,migration=<LIMIT>] [,move=<LIMIT>] [,restore=<LIMIT>]"
51291 },
44660702
DM
51292 "comstar_hg" : {
51293 "description" : "host group for comstar views",
51294 "optional" : 1,
013dc89f
DM
51295 "type" : "string",
51296 "typetext" : "<string>"
44660702
DM
51297 },
51298 "comstar_tg" : {
51299 "description" : "target group for comstar views",
51300 "optional" : 1,
013dc89f
DM
51301 "type" : "string",
51302 "typetext" : "<string>"
44660702
DM
51303 },
51304 "content" : {
51305 "description" : "Allowed content types.\n\nNOTE: the value 'rootdir' is used for Containers, and value 'images' for VMs.\n",
51306 "format" : "pve-storage-content-list",
51307 "optional" : 1,
013dc89f
DM
51308 "type" : "string",
51309 "typetext" : "<string>"
44660702 51310 },
9d2e98ed
TL
51311 "content-dirs" : {
51312 "description" : "Overrides for default content type directories.",
51313 "format" : "pve-dir-override-list",
51314 "optional" : 1,
51315 "type" : "string",
51316 "typetext" : "<string>"
51317 },
4a407cfd
TL
51318 "create-base-path" : {
51319 "default" : "yes",
51320 "description" : "Create the base directory if it doesn't exist.",
51321 "optional" : 1,
51322 "type" : "boolean",
51323 "typetext" : "<boolean>"
51324 },
51325 "create-subdirs" : {
51326 "default" : "yes",
51327 "description" : "Populate the directory with the default structure.",
51328 "optional" : 1,
51329 "type" : "boolean",
51330 "typetext" : "<boolean>"
51331 },
c30bb419
TL
51332 "data-pool" : {
51333 "description" : "Data Pool (for erasure coding only)",
51334 "optional" : 1,
51335 "type" : "string",
51336 "typetext" : "<string>"
51337 },
c5aa7e14 51338 "datastore" : {
4772952b 51339 "description" : "Proxmox Backup Server datastore name.",
c5aa7e14
TL
51340 "optional" : 1,
51341 "type" : "string",
51342 "typetext" : "<string>"
51343 },
44660702
DM
51344 "disable" : {
51345 "description" : "Flag to disable the storage.",
51346 "optional" : 1,
013dc89f
DM
51347 "type" : "boolean",
51348 "typetext" : "<boolean>"
44660702 51349 },
27a7acb2
DM
51350 "domain" : {
51351 "description" : "CIFS domain.",
51352 "maxLength" : 256,
51353 "optional" : 1,
51354 "type" : "string",
51355 "typetext" : "<string>"
51356 },
04d22a9f
TL
51357 "encryption-key" : {
51358 "description" : "Encryption key. Use 'autogen' to generate one automatically without passphrase.",
51359 "optional" : 1,
51360 "type" : "string",
51361 "typetext" : "<string>"
51362 },
44660702
DM
51363 "export" : {
51364 "description" : "NFS export path.",
51365 "format" : "pve-storage-path",
51366 "optional" : 1,
013dc89f
DM
51367 "type" : "string",
51368 "typetext" : "<string>"
44660702 51369 },
c5aa7e14
TL
51370 "fingerprint" : {
51371 "description" : "Certificate SHA 256 fingerprint.",
51372 "optional" : 1,
51373 "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
51374 "type" : "string"
51375 },
44660702
DM
51376 "format" : {
51377 "description" : "Default image format.",
51378 "format" : "pve-storage-format",
51379 "optional" : 1,
013dc89f
DM
51380 "type" : "string",
51381 "typetext" : "<string>"
44660702 51382 },
5370fa8c
TL
51383 "fs-name" : {
51384 "description" : "The Ceph filesystem name.",
51385 "format" : "pve-configid",
51386 "optional" : 1,
51387 "type" : "string",
51388 "typetext" : "<string>"
51389 },
5da3d723
TL
51390 "fuse" : {
51391 "description" : "Mount CephFS through FUSE.",
51392 "optional" : 1,
51393 "type" : "boolean",
51394 "typetext" : "<boolean>"
51395 },
2c0dde61
DM
51396 "is_mountpoint" : {
51397 "default" : "no",
2489d6df 51398 "description" : "Assume the given path is an externally managed mountpoint and consider the storage offline if it is not mounted. Using a boolean (yes/no) value serves as a shortcut to using the target path in this field.",
2c0dde61 51399 "optional" : 1,
2489d6df
WB
51400 "type" : "string",
51401 "typetext" : "<string>"
2c0dde61 51402 },
44660702
DM
51403 "iscsiprovider" : {
51404 "description" : "iscsi provider",
51405 "optional" : 1,
013dc89f
DM
51406 "type" : "string",
51407 "typetext" : "<string>"
44660702 51408 },
5370fa8c
TL
51409 "keyring" : {
51410 "description" : "Client keyring contents (for external clusters).",
51411 "optional" : 1,
51412 "type" : "string",
51413 "typetext" : "<string>"
51414 },
44660702 51415 "krbd" : {
e2d681b3 51416 "description" : "Always access rbd through krbd kernel module.",
44660702 51417 "optional" : 1,
013dc89f
DM
51418 "type" : "boolean",
51419 "typetext" : "<boolean>"
56122987 51420 },
4d47f125
TL
51421 "lio_tpg" : {
51422 "description" : "target portal group for Linux LIO targets",
51423 "optional" : 1,
51424 "type" : "string",
51425 "typetext" : "<string>"
51426 },
d2656385 51427 "master-pubkey" : {
5f4e66fe 51428 "description" : "Base64-encoded, PEM-formatted public RSA key. Used to encrypt a copy of the encryption-key which will be added to each encrypted backup.",
d2656385
TL
51429 "optional" : 1,
51430 "type" : "string",
51431 "typetext" : "<string>"
51432 },
7af2edf9
TL
51433 "max-protected-backups" : {
51434 "default" : "Unlimited for users with Datastore.Allocate privilege, 5 for other users",
51435 "description" : "Maximal number of protected backups per guest. Use '-1' for unlimited.",
51436 "minimum" : -1,
51437 "optional" : 1,
51438 "type" : "integer",
51439 "typetext" : "<integer> (-1 - N)"
51440 },
44660702 51441 "maxfiles" : {
5f4e66fe 51442 "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per VM. Use '0' for unlimited.",
44660702
DM
51443 "minimum" : 0,
51444 "optional" : 1,
4bd7df8b 51445 "type" : "integer",
013dc89f 51446 "typetext" : "<integer> (0 - N)"
4bd7df8b
DM
51447 },
51448 "mkdir" : {
51449 "default" : "yes",
4a407cfd 51450 "description" : "Create the directory if it doesn't exist and populate it with default sub-dirs. NOTE: Deprecated, use the 'create-base-path' and 'create-subdirs' options instead.",
4bd7df8b 51451 "optional" : 1,
013dc89f
DM
51452 "type" : "boolean",
51453 "typetext" : "<boolean>"
7aacca6f 51454 },
44660702 51455 "monhost" : {
2489d6df 51456 "description" : "IP addresses of monitors (for external clusters).",
4bd7df8b 51457 "format" : "pve-storage-portal-dns-list",
44660702 51458 "optional" : 1,
013dc89f
DM
51459 "type" : "string",
51460 "typetext" : "<string>"
7aacca6f 51461 },
5c1699e5
TL
51462 "mountpoint" : {
51463 "description" : "mount point",
51464 "format" : "pve-storage-path",
51465 "optional" : 1,
51466 "type" : "string",
51467 "typetext" : "<string>"
51468 },
d2656385 51469 "namespace" : {
de786b48 51470 "description" : "Namespace.",
d2656385
TL
51471 "optional" : 1,
51472 "type" : "string",
51473 "typetext" : "<string>"
51474 },
5f4e66fe
TL
51475 "nocow" : {
51476 "default" : 0,
51477 "description" : "Set the NOCOW flag on files. Disables data checksumming and causes data errors to be unrecoverable from while allowing direct I/O. Only use this if data does not need to be any more safe than on a single ext4 formatted disk with no underlying raid system.",
51478 "optional" : 1,
51479 "type" : "boolean",
51480 "typetext" : "<boolean>"
51481 },
44660702 51482 "nodes" : {
c6d5bae8 51483 "description" : "List of nodes for which the storage configuration applies.",
44660702
DM
51484 "format" : "pve-node-list",
51485 "optional" : 1,
013dc89f
DM
51486 "type" : "string",
51487 "typetext" : "<string>"
7aacca6f 51488 },
44660702
DM
51489 "nowritecache" : {
51490 "description" : "disable write caching on the target",
51491 "optional" : 1,
013dc89f
DM
51492 "type" : "boolean",
51493 "typetext" : "<boolean>"
44660702
DM
51494 },
51495 "options" : {
159464a9 51496 "description" : "NFS/CIFS mount options (see 'man nfs' or 'man mount.cifs')",
44660702
DM
51497 "format" : "pve-storage-options",
51498 "optional" : 1,
013dc89f
DM
51499 "type" : "string",
51500 "typetext" : "<string>"
44660702 51501 },
27a7acb2 51502 "password" : {
04d22a9f 51503 "description" : "Password for accessing the share/datastore.",
27a7acb2
DM
51504 "maxLength" : 256,
51505 "optional" : 1,
51506 "type" : "string",
51507 "typetext" : "<string>"
51508 },
44660702
DM
51509 "path" : {
51510 "description" : "File system path.",
51511 "format" : "pve-storage-path",
51512 "optional" : 1,
013dc89f
DM
51513 "type" : "string",
51514 "typetext" : "<string>"
44660702
DM
51515 },
51516 "pool" : {
51517 "description" : "Pool.",
51518 "optional" : 1,
013dc89f
DM
51519 "type" : "string",
51520 "typetext" : "<string>"
44660702 51521 },
4772952b 51522 "port" : {
4772952b
TL
51523 "description" : "For non default port.",
51524 "maximum" : 65535,
51525 "minimum" : 1,
51526 "optional" : 1,
51527 "type" : "integer",
51528 "typetext" : "<integer> (1 - 65535)"
51529 },
44660702
DM
51530 "portal" : {
51531 "description" : "iSCSI portal (IP or DNS name with optional port).",
51532 "format" : "pve-storage-portal-dns",
51533 "optional" : 1,
013dc89f
DM
51534 "type" : "string",
51535 "typetext" : "<string>"
44660702 51536 },
5370fa8c
TL
51537 "preallocation" : {
51538 "default" : "metadata",
51539 "description" : "Preallocation mode for raw and qcow2 images. Using 'metadata' on raw images results in preallocation=off.",
51540 "enum" : [
51541 "off",
51542 "metadata",
51543 "falloc",
51544 "full"
51545 ],
51546 "optional" : 1,
51547 "type" : "string"
51548 },
739d4d64
TL
51549 "prune-backups" : {
51550 "description" : "The retention options with shorter intervals are processed first with --keep-last being the very first one. Each option covers a specific period of time. We say that backups within this period are covered by this option. The next option does not take care of already covered backups and only considers older backups.",
51551 "format" : "prune-backups",
51552 "optional" : 1,
51553 "type" : "string",
4772952b 51554 "typetext" : "[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
739d4d64 51555 },
44660702
DM
51556 "saferemove" : {
51557 "description" : "Zero-out data when removing LVs.",
51558 "optional" : 1,
013dc89f
DM
51559 "type" : "boolean",
51560 "typetext" : "<boolean>"
44660702
DM
51561 },
51562 "saferemove_throughput" : {
51563 "description" : "Wipe throughput (cstream -t parameter value).",
51564 "optional" : 1,
013dc89f
DM
51565 "type" : "string",
51566 "typetext" : "<string>"
44660702
DM
51567 },
51568 "server" : {
51569 "description" : "Server IP or DNS name.",
51570 "format" : "pve-storage-server",
51571 "optional" : 1,
013dc89f
DM
51572 "type" : "string",
51573 "typetext" : "<string>"
44660702
DM
51574 },
51575 "server2" : {
51576 "description" : "Backup volfile server IP or DNS name.",
51577 "format" : "pve-storage-server",
51578 "optional" : 1,
51579 "requires" : "server",
013dc89f
DM
51580 "type" : "string",
51581 "typetext" : "<string>"
44660702 51582 },
27a7acb2
DM
51583 "share" : {
51584 "description" : "CIFS share.",
51585 "optional" : 1,
51586 "type" : "string",
51587 "typetext" : "<string>"
51588 },
44660702 51589 "shared" : {
c6d5bae8
TL
51590 "description" : "Indicate that this is a single storage with the same contents on all nodes (or all listed in the 'nodes' option). It will not make the contents of a local storage automatically accessible to other nodes, it just marks an already shared storage as such!",
51591 "optional" : 1,
51592 "type" : "boolean",
51593 "typetext" : "<boolean>"
51594 },
51595 "skip-cert-verification" : {
51596 "default" : "false",
51597 "description" : "Disable TLS certificate verification, only enable on fully trusted networks!",
44660702 51598 "optional" : 1,
013dc89f
DM
51599 "type" : "boolean",
51600 "typetext" : "<boolean>"
44660702 51601 },
27a7acb2 51602 "smbversion" : {
5370fa8c
TL
51603 "default" : "default",
51604 "description" : "SMB protocol version. 'default' if not set, negotiates the highest SMB2+ version supported by both the client and server.",
5da3d723 51605 "enum" : [
5370fa8c 51606 "default",
5da3d723
TL
51607 "2.0",
51608 "2.1",
5370fa8c
TL
51609 "3",
51610 "3.0",
51611 "3.11"
5da3d723 51612 ],
27a7acb2 51613 "optional" : 1,
5da3d723 51614 "type" : "string"
27a7acb2 51615 },
44660702
DM
51616 "sparse" : {
51617 "description" : "use sparse volumes",
51618 "optional" : 1,
013dc89f
DM
51619 "type" : "boolean",
51620 "typetext" : "<boolean>"
44660702
DM
51621 },
51622 "storage" : {
51623 "description" : "The storage identifier.",
51624 "format" : "pve-storage-id",
907e4bc3 51625 "format_description" : "storage ID",
013dc89f 51626 "type" : "string",
907e4bc3 51627 "typetext" : "<storage ID>"
44660702 51628 },
5da3d723
TL
51629 "subdir" : {
51630 "description" : "Subdir to mount.",
51631 "format" : "pve-storage-path",
51632 "optional" : 1,
51633 "type" : "string",
51634 "typetext" : "<string>"
51635 },
4bd7df8b
DM
51636 "tagged_only" : {
51637 "description" : "Only use logical volumes tagged with 'pve-vm-ID'.",
51638 "optional" : 1,
013dc89f
DM
51639 "type" : "boolean",
51640 "typetext" : "<boolean>"
4bd7df8b 51641 },
44660702
DM
51642 "target" : {
51643 "description" : "iSCSI target.",
51644 "optional" : 1,
013dc89f
DM
51645 "type" : "string",
51646 "typetext" : "<string>"
44660702
DM
51647 },
51648 "thinpool" : {
51649 "description" : "LVM thin pool LV name.",
51650 "format" : "pve-storage-vgname",
51651 "optional" : 1,
013dc89f
DM
51652 "type" : "string",
51653 "typetext" : "<string>"
44660702
DM
51654 },
51655 "transport" : {
51656 "description" : "Gluster transport: tcp or rdma",
51657 "enum" : [
51658 "tcp",
51659 "rdma",
51660 "unix"
7aacca6f 51661 ],
44660702
DM
51662 "optional" : 1,
51663 "type" : "string"
56122987 51664 },
44660702
DM
51665 "type" : {
51666 "description" : "Storage type.",
51667 "enum" : [
5f4e66fe 51668 "btrfs",
5da3d723 51669 "cephfs",
27a7acb2 51670 "cifs",
44660702 51671 "dir",
c6d5bae8 51672 "esxi",
44660702
DM
51673 "glusterfs",
51674 "iscsi",
51675 "iscsidirect",
51676 "lvm",
51677 "lvmthin",
51678 "nfs",
c5aa7e14 51679 "pbs",
44660702 51680 "rbd",
44660702
DM
51681 "zfs",
51682 "zfspool"
51683 ],
51684 "type" : "string"
56122987 51685 },
44660702
DM
51686 "username" : {
51687 "description" : "RBD Id.",
51688 "optional" : 1,
013dc89f
DM
51689 "type" : "string",
51690 "typetext" : "<string>"
7aacca6f 51691 },
44660702
DM
51692 "vgname" : {
51693 "description" : "Volume group name.",
51694 "format" : "pve-storage-vgname",
51695 "optional" : 1,
013dc89f
DM
51696 "type" : "string",
51697 "typetext" : "<string>"
44660702
DM
51698 },
51699 "volume" : {
51700 "description" : "Glusterfs Volume.",
51701 "optional" : 1,
013dc89f
DM
51702 "type" : "string",
51703 "typetext" : "<string>"
44660702
DM
51704 }
51705 },
51706 "type" : "object"
51707 },
51708 "permissions" : {
51709 "check" : [
51710 "perm",
51711 "/storage",
51712 [
51713 "Datastore.Allocate"
51714 ]
51715 ]
56122987 51716 },
44660702
DM
51717 "protected" : 1,
51718 "returns" : {
4772952b
TL
51719 "properties" : {
51720 "config" : {
51721 "additionalProperties" : 1,
51722 "description" : "Partial, possible server generated, configuration properties.",
51723 "optional" : 1,
51724 "properties" : {
51725 "encryption-key" : {
51726 "description" : "The, possible auto-generated, encryption-key.",
51727 "optional" : 1,
51728 "type" : "string"
51729 }
51730 },
51731 "type" : "object"
51732 },
51733 "storage" : {
51734 "description" : "The ID of the created storage.",
51735 "type" : "string"
51736 },
51737 "type" : {
51738 "description" : "The type of the created storage.",
51739 "enum" : [
5f4e66fe 51740 "btrfs",
4772952b
TL
51741 "cephfs",
51742 "cifs",
51743 "dir",
c6d5bae8 51744 "esxi",
4772952b
TL
51745 "glusterfs",
51746 "iscsi",
51747 "iscsidirect",
51748 "lvm",
51749 "lvmthin",
51750 "nfs",
51751 "pbs",
51752 "rbd",
51753 "zfs",
51754 "zfspool"
51755 ],
51756 "type" : "string"
51757 }
51758 },
51759 "type" : "object"
44660702
DM
51760 }
51761 }
51762 },
51763 "leaf" : 0,
51764 "path" : "/storage",
51765 "text" : "storage"
51766 },
51767 {
51768 "children" : [
51769 {
56122987
DM
51770 "children" : [
51771 {
bb4c8cf8
TL
51772 "children" : [
51773 {
51774 "info" : {
51775 "GET" : {
e9cd3bd4 51776 "allowtoken" : 1,
bb4c8cf8
TL
51777 "description" : "Get user TFA types (Personal and Realm).",
51778 "method" : "GET",
51779 "name" : "read_user_tfa_type",
51780 "parameters" : {
51781 "additionalProperties" : 0,
51782 "properties" : {
5370fa8c
TL
51783 "multiple" : {
51784 "default" : 0,
51785 "description" : "Request all entries as an array.",
51786 "optional" : 1,
51787 "type" : "boolean",
51788 "typetext" : "<boolean>"
51789 },
bb4c8cf8 51790 "userid" : {
9d2e98ed 51791 "description" : "Full User ID, in the `name@realm` format.",
bb4c8cf8
TL
51792 "format" : "pve-userid",
51793 "maxLength" : 64,
51794 "type" : "string",
51795 "typetext" : "<string>"
51796 }
51797 }
51798 },
51799 "permissions" : {
51800 "check" : [
51801 "or",
51802 [
51803 "userid-param",
51804 "self"
51805 ],
51806 [
51807 "userid-group",
51808 [
51809 "User.Modify",
51810 "Sys.Audit"
51811 ]
51812 ]
51813 ]
51814 },
51815 "protected" : 1,
51816 "returns" : {
51817 "additionalProperties" : 0,
51818 "properties" : {
51819 "realm" : {
51820 "description" : "The type of TFA the users realm has set, if any.",
51821 "enum" : [
51822 "oath",
51823 "yubico"
51824 ],
51825 "optional" : 1,
51826 "type" : "string"
51827 },
5370fa8c
TL
51828 "types" : {
51829 "description" : "Array of the user configured TFA types, if any. Only available if 'multiple' was not passed.",
51830 "items" : {
51831 "description" : "A TFA type.",
51832 "enum" : [
51833 "totp",
51834 "u2f",
51835 "yubico",
51836 "webauthn",
51837 "recovedry"
51838 ],
51839 "type" : "string"
51840 },
51841 "optional" : 1,
51842 "type" : "array"
51843 },
bb4c8cf8 51844 "user" : {
5370fa8c 51845 "description" : "The type of TFA the user has set, if any. Only set if 'multiple' was not passed.",
bb4c8cf8
TL
51846 "enum" : [
51847 "oath",
51848 "u2f"
51849 ],
51850 "optional" : 1,
51851 "type" : "string"
51852 }
51853 },
51854 "type" : "object"
51855 }
51856 }
51857 },
51858 "leaf" : 1,
51859 "path" : "/access/users/{userid}/tfa",
51860 "text" : "tfa"
e9cd3bd4 51861 },
4a407cfd
TL
51862 {
51863 "info" : {
51864 "PUT" : {
51865 "allowtoken" : 1,
51866 "description" : "Unlock a user's TFA authentication.",
51867 "method" : "PUT",
51868 "name" : "unlock_tfa",
51869 "parameters" : {
51870 "additionalProperties" : 0,
51871 "properties" : {
51872 "userid" : {
51873 "description" : "Full User ID, in the `name@realm` format.",
51874 "format" : "pve-userid",
51875 "maxLength" : 64,
51876 "type" : "string",
51877 "typetext" : "<string>"
51878 }
51879 }
51880 },
51881 "permissions" : {
51882 "check" : [
51883 "userid-group",
51884 [
51885 "User.Modify"
51886 ]
51887 ]
51888 },
51889 "protected" : 1,
51890 "returns" : {
51891 "type" : "boolean"
51892 }
51893 }
51894 },
51895 "leaf" : 1,
51896 "path" : "/access/users/{userid}/unlock-tfa",
51897 "text" : "unlock-tfa"
51898 },
e9cd3bd4
TL
51899 {
51900 "children" : [
51901 {
51902 "info" : {
51903 "DELETE" : {
51904 "allowtoken" : 1,
51905 "description" : "Remove API token for a specific user.",
51906 "method" : "DELETE",
51907 "name" : "remove_token",
51908 "parameters" : {
51909 "additionalProperties" : 0,
51910 "properties" : {
51911 "tokenid" : {
51912 "description" : "User-specific token identifier.",
51913 "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
51914 "type" : "string"
51915 },
51916 "userid" : {
9d2e98ed 51917 "description" : "Full User ID, in the `name@realm` format.",
e9cd3bd4
TL
51918 "format" : "pve-userid",
51919 "maxLength" : 64,
51920 "type" : "string",
51921 "typetext" : "<string>"
51922 }
51923 }
51924 },
51925 "permissions" : {
51926 "check" : [
51927 "or",
51928 [
51929 "userid-param",
51930 "self"
51931 ],
51932 [
de786b48 51933 "userid-group",
e9cd3bd4
TL
51934 [
51935 "User.Modify"
51936 ]
51937 ]
51938 ]
51939 },
51940 "protected" : 1,
51941 "returns" : {
c5aa7e14
TL
51942 "type" : "null"
51943 }
51944 },
51945 "GET" : {
51946 "allowtoken" : 1,
51947 "description" : "Get specific API token information.",
51948 "method" : "GET",
51949 "name" : "read_token",
51950 "parameters" : {
51951 "additionalProperties" : 0,
51952 "properties" : {
51953 "tokenid" : {
51954 "description" : "User-specific token identifier.",
51955 "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
51956 "type" : "string"
51957 },
51958 "userid" : {
9d2e98ed 51959 "description" : "Full User ID, in the `name@realm` format.",
c5aa7e14
TL
51960 "format" : "pve-userid",
51961 "maxLength" : 64,
51962 "type" : "string",
51963 "typetext" : "<string>"
51964 }
51965 }
51966 },
51967 "permissions" : {
51968 "check" : [
51969 "or",
51970 [
51971 "userid-param",
51972 "self"
51973 ],
51974 [
de786b48 51975 "userid-group",
c5aa7e14
TL
51976 [
51977 "User.Modify"
51978 ]
51979 ]
51980 ]
51981 },
51982 "returns" : {
51983 "properties" : {
51984 "comment" : {
51985 "optional" : 1,
51986 "type" : "string"
51987 },
51988 "expire" : {
51989 "default" : "same as user",
51990 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
51991 "minimum" : 0,
51992 "optional" : 1,
51993 "type" : "integer"
51994 },
51995 "privsep" : {
51996 "default" : 1,
51997 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
51998 "optional" : 1,
51999 "type" : "boolean"
52000 }
52001 },
52002 "type" : "object"
52003 }
52004 },
52005 "POST" : {
52006 "allowtoken" : 1,
52007 "description" : "Generate a new API token for a specific user. NOTE: returns API token value, which needs to be stored as it cannot be retrieved afterwards!",
52008 "method" : "POST",
52009 "name" : "generate_token",
52010 "parameters" : {
52011 "additionalProperties" : 0,
52012 "properties" : {
52013 "comment" : {
52014 "optional" : 1,
52015 "type" : "string",
52016 "typetext" : "<string>"
52017 },
52018 "expire" : {
52019 "default" : "same as user",
52020 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
52021 "minimum" : 0,
52022 "optional" : 1,
52023 "type" : "integer",
52024 "typetext" : "<integer> (0 - N)"
52025 },
52026 "privsep" : {
52027 "default" : 1,
52028 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
52029 "optional" : 1,
52030 "type" : "boolean",
52031 "typetext" : "<boolean>"
52032 },
52033 "tokenid" : {
52034 "description" : "User-specific token identifier.",
52035 "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
52036 "type" : "string"
52037 },
52038 "userid" : {
9d2e98ed 52039 "description" : "Full User ID, in the `name@realm` format.",
c5aa7e14
TL
52040 "format" : "pve-userid",
52041 "maxLength" : 64,
52042 "type" : "string",
52043 "typetext" : "<string>"
52044 }
52045 }
52046 },
52047 "permissions" : {
52048 "check" : [
52049 "or",
52050 [
52051 "userid-param",
52052 "self"
52053 ],
52054 [
de786b48 52055 "userid-group",
c5aa7e14
TL
52056 [
52057 "User.Modify"
52058 ]
52059 ]
52060 ]
52061 },
52062 "protected" : 1,
52063 "returns" : {
e9cd3bd4
TL
52064 "additionalProperties" : 0,
52065 "properties" : {
c5aa7e14
TL
52066 "full-tokenid" : {
52067 "description" : "The full token id.",
52068 "format_description" : "<userid>!<tokenid>",
e9cd3bd4
TL
52069 "type" : "string"
52070 },
e9cd3bd4
TL
52071 "info" : {
52072 "properties" : {
52073 "comment" : {
52074 "optional" : 1,
52075 "type" : "string"
52076 },
52077 "expire" : {
52078 "default" : "same as user",
52079 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
52080 "minimum" : 0,
52081 "optional" : 1,
52082 "type" : "integer"
52083 },
52084 "privsep" : {
52085 "default" : 1,
52086 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
52087 "optional" : 1,
52088 "type" : "boolean"
52089 }
52090 },
52091 "type" : "object"
52092 },
52093 "value" : {
52094 "description" : "API token value used for authentication.",
52095 "type" : "string"
52096 }
52097 },
52098 "type" : "object"
52099 }
52100 },
52101 "PUT" : {
52102 "allowtoken" : 1,
52103 "description" : "Update API token for a specific user.",
52104 "method" : "PUT",
52105 "name" : "update_token_info",
52106 "parameters" : {
52107 "additionalProperties" : 0,
52108 "properties" : {
52109 "comment" : {
52110 "optional" : 1,
52111 "type" : "string",
52112 "typetext" : "<string>"
52113 },
52114 "expire" : {
52115 "default" : "same as user",
52116 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
52117 "minimum" : 0,
52118 "optional" : 1,
52119 "type" : "integer",
52120 "typetext" : "<integer> (0 - N)"
52121 },
52122 "privsep" : {
52123 "default" : 1,
52124 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
52125 "optional" : 1,
52126 "type" : "boolean",
52127 "typetext" : "<boolean>"
52128 },
52129 "tokenid" : {
52130 "description" : "User-specific token identifier.",
52131 "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
52132 "type" : "string"
52133 },
52134 "userid" : {
9d2e98ed 52135 "description" : "Full User ID, in the `name@realm` format.",
e9cd3bd4
TL
52136 "format" : "pve-userid",
52137 "maxLength" : 64,
52138 "type" : "string",
52139 "typetext" : "<string>"
52140 }
52141 }
52142 },
52143 "permissions" : {
52144 "check" : [
52145 "or",
52146 [
52147 "userid-param",
52148 "self"
52149 ],
52150 [
de786b48 52151 "userid-group",
e9cd3bd4
TL
52152 [
52153 "User.Modify"
52154 ]
52155 ]
52156 ]
52157 },
52158 "protected" : 1,
52159 "returns" : {
52160 "description" : "Updated token information.",
52161 "properties" : {
52162 "comment" : {
52163 "optional" : 1,
52164 "type" : "string"
52165 },
52166 "expire" : {
52167 "default" : "same as user",
52168 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
52169 "minimum" : 0,
52170 "optional" : 1,
52171 "type" : "integer"
52172 },
52173 "privsep" : {
52174 "default" : 1,
52175 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
52176 "optional" : 1,
52177 "type" : "boolean"
52178 }
52179 },
52180 "type" : "object"
52181 }
52182 }
52183 },
52184 "leaf" : 1,
52185 "path" : "/access/users/{userid}/token/{tokenid}",
52186 "text" : "{tokenid}"
52187 }
52188 ],
52189 "info" : {
52190 "GET" : {
52191 "allowtoken" : 1,
52192 "description" : "Get user API tokens.",
52193 "method" : "GET",
52194 "name" : "token_index",
52195 "parameters" : {
52196 "additionalProperties" : 0,
52197 "properties" : {
52198 "userid" : {
9d2e98ed 52199 "description" : "Full User ID, in the `name@realm` format.",
e9cd3bd4
TL
52200 "format" : "pve-userid",
52201 "maxLength" : 64,
52202 "type" : "string",
52203 "typetext" : "<string>"
52204 }
52205 }
52206 },
52207 "permissions" : {
52208 "check" : [
52209 "or",
52210 [
52211 "userid-param",
52212 "self"
52213 ],
52214 [
de786b48 52215 "userid-group",
e9cd3bd4
TL
52216 [
52217 "User.Modify"
52218 ]
52219 ]
52220 ]
52221 },
52222 "returns" : {
52223 "items" : {
52224 "properties" : {
52225 "comment" : {
52226 "optional" : 1,
52227 "type" : "string"
52228 },
52229 "expire" : {
52230 "default" : "same as user",
52231 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
52232 "minimum" : 0,
52233 "optional" : 1,
52234 "type" : "integer"
52235 },
52236 "privsep" : {
52237 "default" : 1,
52238 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
52239 "optional" : 1,
52240 "type" : "boolean"
52241 },
52242 "tokenid" : {
52243 "description" : "User-specific token identifier.",
52244 "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
52245 "type" : "string"
52246 }
52247 },
52248 "type" : "object"
52249 },
52250 "links" : [
52251 {
52252 "href" : "{tokenid}",
52253 "rel" : "child"
52254 }
52255 ],
52256 "type" : "array"
52257 }
52258 }
52259 },
52260 "leaf" : 0,
52261 "path" : "/access/users/{userid}/token",
52262 "text" : "token"
bb4c8cf8
TL
52263 }
52264 ],
56122987 52265 "info" : {
44660702 52266 "DELETE" : {
e9cd3bd4 52267 "allowtoken" : 1,
44660702
DM
52268 "description" : "Delete user.",
52269 "method" : "DELETE",
52270 "name" : "delete_user",
56122987 52271 "parameters" : {
7aacca6f 52272 "additionalProperties" : 0,
56122987 52273 "properties" : {
56122987 52274 "userid" : {
9d2e98ed 52275 "description" : "Full User ID, in the `name@realm` format.",
56122987 52276 "format" : "pve-userid",
44660702 52277 "maxLength" : 64,
013dc89f
DM
52278 "type" : "string",
52279 "typetext" : "<string>"
56122987 52280 }
7aacca6f 52281 }
56122987 52282 },
56122987
DM
52283 "permissions" : {
52284 "check" : [
44660702 52285 "and",
56122987 52286 [
44660702
DM
52287 "userid-param",
52288 "Realm.AllocateUser"
56122987 52289 ],
44660702
DM
52290 [
52291 "userid-group",
52292 [
52293 "User.Modify"
52294 ]
52295 ]
56122987 52296 ]
7aacca6f 52297 },
44660702 52298 "protected" : 1,
56122987
DM
52299 "returns" : {
52300 "type" : "null"
44660702 52301 }
7aacca6f 52302 },
44660702 52303 "GET" : {
e9cd3bd4 52304 "allowtoken" : 1,
44660702
DM
52305 "description" : "Get user configuration.",
52306 "method" : "GET",
52307 "name" : "read_user",
56122987
DM
52308 "parameters" : {
52309 "additionalProperties" : 0,
52310 "properties" : {
52311 "userid" : {
9d2e98ed 52312 "description" : "Full User ID, in the `name@realm` format.",
56122987 52313 "format" : "pve-userid",
44660702 52314 "maxLength" : 64,
013dc89f
DM
52315 "type" : "string",
52316 "typetext" : "<string>"
56122987
DM
52317 }
52318 }
52319 },
56122987
DM
52320 "permissions" : {
52321 "check" : [
44660702 52322 "userid-group",
56122987 52323 [
44660702
DM
52324 "User.Modify",
52325 "Sys.Audit"
56122987
DM
52326 ]
52327 ]
52328 },
56122987 52329 "returns" : {
7aacca6f 52330 "additionalProperties" : 0,
56122987 52331 "properties" : {
44660702 52332 "comment" : {
c6d5bae8 52333 "maxLength" : 2048,
44660702
DM
52334 "optional" : 1,
52335 "type" : "string"
56122987 52336 },
44660702 52337 "email" : {
e2d681b3 52338 "format" : "email-opt",
c6d5bae8 52339 "maxLength" : 254,
44660702
DM
52340 "optional" : 1,
52341 "type" : "string"
7aacca6f
DM
52342 },
52343 "enable" : {
e2d681b3
TL
52344 "default" : 1,
52345 "description" : "Enable the account (default). You can set this to '0' to disable the account",
52346 "optional" : 1,
7aacca6f
DM
52347 "type" : "boolean"
52348 },
44660702 52349 "expire" : {
e2d681b3
TL
52350 "description" : "Account expiration date (seconds since epoch). '0' means no expiration date.",
52351 "minimum" : 0,
44660702
DM
52352 "optional" : 1,
52353 "type" : "integer"
52354 },
52355 "firstname" : {
c6d5bae8 52356 "maxLength" : 1024,
56122987
DM
52357 "optional" : 1,
52358 "type" : "string"
52359 },
44660702 52360 "groups" : {
e9cd3bd4
TL
52361 "items" : {
52362 "format" : "pve-groupid",
52363 "type" : "string"
52364 },
52365 "optional" : 1,
44660702 52366 "type" : "array"
56122987 52367 },
44660702 52368 "keys" : {
e2d681b3 52369 "description" : "Keys for two factor auth (yubico).",
44660702 52370 "optional" : 1,
c6d5bae8 52371 "pattern" : "[0-9a-zA-Z!=]{0,4096}",
44660702 52372 "type" : "string"
7aacca6f 52373 },
44660702 52374 "lastname" : {
c6d5bae8 52375 "maxLength" : 1024,
44660702
DM
52376 "optional" : 1,
52377 "type" : "string"
e9cd3bd4
TL
52378 },
52379 "tokens" : {
c30bb419
TL
52380 "additionalProperties" : {
52381 "properties" : {
52382 "comment" : {
52383 "optional" : 1,
52384 "type" : "string"
52385 },
52386 "expire" : {
52387 "default" : "same as user",
52388 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
52389 "minimum" : 0,
52390 "optional" : 1,
52391 "type" : "integer"
52392 },
52393 "privsep" : {
52394 "default" : 1,
52395 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
52396 "optional" : 1,
52397 "type" : "boolean"
52398 }
52399 },
52400 "type" : "object"
52401 },
e9cd3bd4
TL
52402 "optional" : 1,
52403 "type" : "object"
56122987 52404 }
e2d681b3
TL
52405 },
52406 "type" : "object"
44660702
DM
52407 }
52408 },
52409 "PUT" : {
e9cd3bd4 52410 "allowtoken" : 1,
44660702
DM
52411 "description" : "Update user configuration.",
52412 "method" : "PUT",
52413 "name" : "update_user",
56122987 52414 "parameters" : {
44660702 52415 "additionalProperties" : 0,
56122987 52416 "properties" : {
44660702
DM
52417 "append" : {
52418 "optional" : 1,
52419 "requires" : "groups",
013dc89f
DM
52420 "type" : "boolean",
52421 "typetext" : "<boolean>"
44660702
DM
52422 },
52423 "comment" : {
c6d5bae8 52424 "maxLength" : 2048,
44660702 52425 "optional" : 1,
013dc89f
DM
52426 "type" : "string",
52427 "typetext" : "<string>"
44660702
DM
52428 },
52429 "email" : {
52430 "format" : "email-opt",
c6d5bae8 52431 "maxLength" : 254,
44660702 52432 "optional" : 1,
013dc89f
DM
52433 "type" : "string",
52434 "typetext" : "<string>"
44660702
DM
52435 },
52436 "enable" : {
e2d681b3
TL
52437 "default" : 1,
52438 "description" : "Enable the account (default). You can set this to '0' to disable the account",
44660702 52439 "optional" : 1,
013dc89f
DM
52440 "type" : "boolean",
52441 "typetext" : "<boolean>"
44660702
DM
52442 },
52443 "expire" : {
52444 "description" : "Account expiration date (seconds since epoch). '0' means no expiration date.",
52445 "minimum" : 0,
52446 "optional" : 1,
4bd7df8b 52447 "type" : "integer",
013dc89f 52448 "typetext" : "<integer> (0 - N)"
44660702
DM
52449 },
52450 "firstname" : {
c6d5bae8 52451 "maxLength" : 1024,
44660702 52452 "optional" : 1,
013dc89f
DM
52453 "type" : "string",
52454 "typetext" : "<string>"
44660702
DM
52455 },
52456 "groups" : {
52457 "format" : "pve-groupid-list",
52458 "optional" : 1,
013dc89f
DM
52459 "type" : "string",
52460 "typetext" : "<string>"
44660702
DM
52461 },
52462 "keys" : {
52463 "description" : "Keys for two factor auth (yubico).",
52464 "optional" : 1,
c6d5bae8
TL
52465 "pattern" : "[0-9a-zA-Z!=]{0,4096}",
52466 "type" : "string"
44660702
DM
52467 },
52468 "lastname" : {
c6d5bae8 52469 "maxLength" : 1024,
44660702 52470 "optional" : 1,
013dc89f
DM
52471 "type" : "string",
52472 "typetext" : "<string>"
44660702 52473 },
56122987 52474 "userid" : {
9d2e98ed 52475 "description" : "Full User ID, in the `name@realm` format.",
56122987 52476 "format" : "pve-userid",
44660702 52477 "maxLength" : 64,
013dc89f
DM
52478 "type" : "string",
52479 "typetext" : "<string>"
56122987 52480 }
44660702 52481 }
56122987 52482 },
56122987
DM
52483 "permissions" : {
52484 "check" : [
52485 "userid-group",
52486 [
44660702
DM
52487 "User.Modify"
52488 ],
52489 "groups_param",
c30bb419 52490 "update"
56122987
DM
52491 ]
52492 },
44660702
DM
52493 "protected" : 1,
52494 "returns" : {
52495 "type" : "null"
52496 }
56122987
DM
52497 }
52498 },
bb4c8cf8 52499 "leaf" : 0,
44660702 52500 "path" : "/access/users/{userid}",
7aacca6f 52501 "text" : "{userid}"
56122987 52502 }
7aacca6f 52503 ],
56122987 52504 "info" : {
7aacca6f 52505 "GET" : {
e9cd3bd4 52506 "allowtoken" : 1,
44660702
DM
52507 "description" : "User index.",
52508 "method" : "GET",
7aacca6f 52509 "name" : "index",
56122987 52510 "parameters" : {
44660702
DM
52511 "additionalProperties" : 0,
52512 "properties" : {
52513 "enabled" : {
52514 "description" : "Optional filter for enable property.",
52515 "optional" : 1,
013dc89f
DM
52516 "type" : "boolean",
52517 "typetext" : "<boolean>"
e9cd3bd4
TL
52518 },
52519 "full" : {
52520 "default" : 0,
52521 "description" : "Include group and token information.",
52522 "optional" : 1,
52523 "type" : "boolean",
52524 "typetext" : "<boolean>"
44660702
DM
52525 }
52526 }
52527 },
52528 "permissions" : {
52529 "description" : "The returned list is restricted to users where you have 'User.Modify' or 'Sys.Audit' permissions on '/access/groups' or on a group the user belongs too. But it always includes the current (authenticated) user.",
52530 "user" : "all"
56122987 52531 },
4a407cfd 52532 "protected" : 1,
7aacca6f 52533 "returns" : {
7aacca6f
DM
52534 "items" : {
52535 "properties" : {
e2d681b3 52536 "comment" : {
c6d5bae8 52537 "maxLength" : 2048,
e2d681b3
TL
52538 "optional" : 1,
52539 "type" : "string"
52540 },
52541 "email" : {
52542 "format" : "email-opt",
c6d5bae8 52543 "maxLength" : 254,
e2d681b3
TL
52544 "optional" : 1,
52545 "type" : "string"
52546 },
52547 "enable" : {
52548 "default" : 1,
52549 "description" : "Enable the account (default). You can set this to '0' to disable the account",
52550 "optional" : 1,
52551 "type" : "boolean"
52552 },
52553 "expire" : {
52554 "description" : "Account expiration date (seconds since epoch). '0' means no expiration date.",
52555 "minimum" : 0,
52556 "optional" : 1,
52557 "type" : "integer"
52558 },
52559 "firstname" : {
c6d5bae8 52560 "maxLength" : 1024,
e2d681b3
TL
52561 "optional" : 1,
52562 "type" : "string"
52563 },
e9cd3bd4
TL
52564 "groups" : {
52565 "format" : "pve-groupid-list",
52566 "optional" : 1,
52567 "type" : "string"
52568 },
e2d681b3
TL
52569 "keys" : {
52570 "description" : "Keys for two factor auth (yubico).",
52571 "optional" : 1,
c6d5bae8 52572 "pattern" : "[0-9a-zA-Z!=]{0,4096}",
e2d681b3
TL
52573 "type" : "string"
52574 },
52575 "lastname" : {
c6d5bae8 52576 "maxLength" : 1024,
e2d681b3
TL
52577 "optional" : 1,
52578 "type" : "string"
52579 },
34f3e481
TL
52580 "realm-type" : {
52581 "description" : "The type of the users realm",
52582 "format" : "pve-realm",
52583 "optional" : 1,
52584 "type" : "string"
52585 },
4a407cfd
TL
52586 "tfa-locked-until" : {
52587 "description" : "Contains a timestamp until when a user is locked out of 2nd factors.",
52588 "optional" : 1,
52589 "type" : "integer"
52590 },
e9cd3bd4
TL
52591 "tokens" : {
52592 "items" : {
52593 "properties" : {
52594 "comment" : {
52595 "optional" : 1,
52596 "type" : "string"
52597 },
52598 "expire" : {
52599 "default" : "same as user",
52600 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
52601 "minimum" : 0,
52602 "optional" : 1,
52603 "type" : "integer"
52604 },
52605 "privsep" : {
52606 "default" : 1,
52607 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
52608 "optional" : 1,
52609 "type" : "boolean"
52610 },
52611 "tokenid" : {
52612 "description" : "User-specific token identifier.",
52613 "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
52614 "type" : "string"
52615 }
52616 },
52617 "type" : "object"
52618 },
52619 "optional" : 1,
52620 "type" : "array"
52621 },
4a407cfd
TL
52622 "totp-locked" : {
52623 "description" : "True if the user is currently locked out of TOTP factors.",
52624 "optional" : 1,
52625 "type" : "boolean"
52626 },
44660702 52627 "userid" : {
9d2e98ed 52628 "description" : "Full User ID, in the `name@realm` format.",
e2d681b3
TL
52629 "format" : "pve-userid",
52630 "maxLength" : 64,
7aacca6f
DM
52631 "type" : "string"
52632 }
52633 },
52634 "type" : "object"
52635 },
44660702
DM
52636 "links" : [
52637 {
52638 "href" : "{userid}",
52639 "rel" : "child"
52640 }
52641 ],
7aacca6f
DM
52642 "type" : "array"
52643 }
52644 },
52645 "POST" : {
e9cd3bd4 52646 "allowtoken" : 1,
44660702 52647 "description" : "Create new user.",
7aacca6f 52648 "method" : "POST",
44660702 52649 "name" : "create_user",
56122987 52650 "parameters" : {
7aacca6f
DM
52651 "additionalProperties" : 0,
52652 "properties" : {
44660702 52653 "comment" : {
c6d5bae8 52654 "maxLength" : 2048,
44660702 52655 "optional" : 1,
013dc89f
DM
52656 "type" : "string",
52657 "typetext" : "<string>"
7aacca6f 52658 },
44660702
DM
52659 "email" : {
52660 "format" : "email-opt",
c6d5bae8 52661 "maxLength" : 254,
44660702 52662 "optional" : 1,
013dc89f
DM
52663 "type" : "string",
52664 "typetext" : "<string>"
44660702
DM
52665 },
52666 "enable" : {
52667 "default" : 1,
e2d681b3 52668 "description" : "Enable the account (default). You can set this to '0' to disable the account",
44660702 52669 "optional" : 1,
013dc89f
DM
52670 "type" : "boolean",
52671 "typetext" : "<boolean>"
44660702
DM
52672 },
52673 "expire" : {
52674 "description" : "Account expiration date (seconds since epoch). '0' means no expiration date.",
52675 "minimum" : 0,
52676 "optional" : 1,
4bd7df8b 52677 "type" : "integer",
013dc89f 52678 "typetext" : "<integer> (0 - N)"
44660702
DM
52679 },
52680 "firstname" : {
c6d5bae8 52681 "maxLength" : 1024,
44660702 52682 "optional" : 1,
013dc89f
DM
52683 "type" : "string",
52684 "typetext" : "<string>"
44660702
DM
52685 },
52686 "groups" : {
52687 "format" : "pve-groupid-list",
52688 "optional" : 1,
013dc89f
DM
52689 "type" : "string",
52690 "typetext" : "<string>"
44660702
DM
52691 },
52692 "keys" : {
52693 "description" : "Keys for two factor auth (yubico).",
52694 "optional" : 1,
c6d5bae8
TL
52695 "pattern" : "[0-9a-zA-Z!=]{0,4096}",
52696 "type" : "string"
44660702
DM
52697 },
52698 "lastname" : {
c6d5bae8 52699 "maxLength" : 1024,
7aacca6f 52700 "optional" : 1,
013dc89f
DM
52701 "type" : "string",
52702 "typetext" : "<string>"
44660702
DM
52703 },
52704 "password" : {
52705 "description" : "Initial password.",
52706 "maxLength" : 64,
52707 "minLength" : 5,
52708 "optional" : 1,
013dc89f
DM
52709 "type" : "string",
52710 "typetext" : "<string>"
44660702
DM
52711 },
52712 "userid" : {
9d2e98ed 52713 "description" : "Full User ID, in the `name@realm` format.",
44660702
DM
52714 "format" : "pve-userid",
52715 "maxLength" : 64,
013dc89f
DM
52716 "type" : "string",
52717 "typetext" : "<string>"
56122987 52718 }
7aacca6f 52719 }
56122987 52720 },
44660702
DM
52721 "permissions" : {
52722 "check" : [
52723 "and",
52724 [
52725 "userid-param",
52726 "Realm.AllocateUser"
52727 ],
52728 [
52729 "userid-group",
52730 [
52731 "User.Modify"
52732 ],
52733 "groups_param",
c30bb419 52734 "create"
44660702
DM
52735 ]
52736 ],
52737 "description" : "You need 'Realm.AllocateUser' on '/access/realm/<realm>' on the realm of user <userid>, and 'User.Modify' permissions to '/access/groups/<group>' for any group specified (or 'User.Modify' on '/access/groups' if you pass no groups."
52738 },
52739 "protected" : 1,
52740 "returns" : {
52741 "type" : "null"
52742 }
56122987
DM
52743 }
52744 },
44660702
DM
52745 "leaf" : 0,
52746 "path" : "/access/users",
52747 "text" : "users"
52748 },
52749 {
56122987
DM
52750 "children" : [
52751 {
56122987
DM
52752 "info" : {
52753 "DELETE" : {
e9cd3bd4 52754 "allowtoken" : 1,
44660702
DM
52755 "description" : "Delete group.",
52756 "method" : "DELETE",
52757 "name" : "delete_group",
52758 "parameters" : {
52759 "additionalProperties" : 0,
52760 "properties" : {
52761 "groupid" : {
52762 "format" : "pve-groupid",
013dc89f
DM
52763 "type" : "string",
52764 "typetext" : "<string>"
44660702
DM
52765 }
52766 }
52767 },
7aacca6f
DM
52768 "permissions" : {
52769 "check" : [
52770 "perm",
52771 "/access/groups",
52772 [
52773 "Group.Allocate"
52774 ]
52775 ]
52776 },
7aacca6f 52777 "protected" : 1,
7aacca6f
DM
52778 "returns" : {
52779 "type" : "null"
44660702 52780 }
7aacca6f 52781 },
44660702 52782 "GET" : {
e9cd3bd4 52783 "allowtoken" : 1,
44660702
DM
52784 "description" : "Get group configuration.",
52785 "method" : "GET",
52786 "name" : "read_group",
52787 "parameters" : {
52788 "additionalProperties" : 0,
52789 "properties" : {
52790 "groupid" : {
52791 "format" : "pve-groupid",
013dc89f
DM
52792 "type" : "string",
52793 "typetext" : "<string>"
44660702
DM
52794 }
52795 }
56122987 52796 },
7aacca6f
DM
52797 "permissions" : {
52798 "check" : [
52799 "perm",
52800 "/access/groups",
52801 [
44660702 52802 "Sys.Audit",
7aacca6f 52803 "Group.Allocate"
44660702
DM
52804 ],
52805 "any",
52806 1
7aacca6f
DM
52807 ]
52808 },
7aacca6f 52809 "returns" : {
44660702 52810 "additionalProperties" : 0,
7aacca6f
DM
52811 "properties" : {
52812 "comment" : {
44660702
DM
52813 "optional" : 1,
52814 "type" : "string"
7aacca6f
DM
52815 },
52816 "members" : {
52817 "items" : {
9d2e98ed 52818 "description" : "Full User ID, in the `name@realm` format.",
e2d681b3
TL
52819 "format" : "pve-userid",
52820 "maxLength" : 64,
7aacca6f
DM
52821 "type" : "string"
52822 },
52823 "type" : "array"
52824 }
52825 },
44660702
DM
52826 "type" : "object"
52827 }
52828 },
52829 "PUT" : {
e9cd3bd4 52830 "allowtoken" : 1,
44660702
DM
52831 "description" : "Update group data.",
52832 "method" : "PUT",
52833 "name" : "update_group",
56122987 52834 "parameters" : {
44660702 52835 "additionalProperties" : 0,
56122987 52836 "properties" : {
44660702
DM
52837 "comment" : {
52838 "optional" : 1,
013dc89f
DM
52839 "type" : "string",
52840 "typetext" : "<string>"
44660702 52841 },
56122987
DM
52842 "groupid" : {
52843 "format" : "pve-groupid",
013dc89f
DM
52844 "type" : "string",
52845 "typetext" : "<string>"
56122987 52846 }
44660702 52847 }
56122987 52848 },
56122987
DM
52849 "permissions" : {
52850 "check" : [
52851 "perm",
52852 "/access/groups",
52853 [
52854 "Group.Allocate"
44660702 52855 ]
56122987
DM
52856 ]
52857 },
44660702
DM
52858 "protected" : 1,
52859 "returns" : {
52860 "type" : "null"
52861 }
7aacca6f
DM
52862 }
52863 },
7aacca6f 52864 "leaf" : 1,
44660702
DM
52865 "path" : "/access/groups/{groupid}",
52866 "text" : "{groupid}"
52867 }
52868 ],
52869 "info" : {
52870 "GET" : {
e9cd3bd4 52871 "allowtoken" : 1,
44660702
DM
52872 "description" : "Group index.",
52873 "method" : "GET",
52874 "name" : "index",
52875 "parameters" : {
52876 "additionalProperties" : 0
52877 },
52878 "permissions" : {
52879 "description" : "The returned list is restricted to groups where you have 'User.Modify', 'Sys.Audit' or 'Group.Allocate' permissions on /access/groups/<group>.",
52880 "user" : "all"
52881 },
52882 "returns" : {
52883 "items" : {
52884 "properties" : {
e2d681b3
TL
52885 "comment" : {
52886 "optional" : 1,
52887 "type" : "string"
52888 },
44660702 52889 "groupid" : {
e2d681b3 52890 "format" : "pve-groupid",
44660702 52891 "type" : "string"
e9cd3bd4
TL
52892 },
52893 "users" : {
52894 "description" : "list of users which form this group",
52895 "format" : "pve-userid-list",
52896 "optional" : 1,
52897 "type" : "string"
44660702
DM
52898 }
52899 },
52900 "type" : "object"
52901 },
52902 "links" : [
52903 {
52904 "href" : "{groupid}",
52905 "rel" : "child"
52906 }
52907 ],
52908 "type" : "array"
52909 }
52910 },
52911 "POST" : {
e9cd3bd4 52912 "allowtoken" : 1,
44660702
DM
52913 "description" : "Create new group.",
52914 "method" : "POST",
52915 "name" : "create_group",
52916 "parameters" : {
52917 "additionalProperties" : 0,
52918 "properties" : {
52919 "comment" : {
52920 "optional" : 1,
013dc89f
DM
52921 "type" : "string",
52922 "typetext" : "<string>"
44660702
DM
52923 },
52924 "groupid" : {
52925 "format" : "pve-groupid",
013dc89f
DM
52926 "type" : "string",
52927 "typetext" : "<string>"
44660702
DM
52928 }
52929 }
52930 },
52931 "permissions" : {
52932 "check" : [
52933 "perm",
52934 "/access/groups",
52935 [
52936 "Group.Allocate"
52937 ]
52938 ]
52939 },
52940 "protected" : 1,
52941 "returns" : {
52942 "type" : "null"
52943 }
7aacca6f 52944 }
44660702 52945 },
7aacca6f 52946 "leaf" : 0,
44660702
DM
52947 "path" : "/access/groups",
52948 "text" : "groups"
7aacca6f
DM
52949 },
52950 {
52951 "children" : [
52952 {
7aacca6f 52953 "info" : {
7aacca6f 52954 "DELETE" : {
e9cd3bd4 52955 "allowtoken" : 1,
7aacca6f 52956 "description" : "Delete role.",
44660702 52957 "method" : "DELETE",
7aacca6f 52958 "name" : "delete_role",
56122987
DM
52959 "parameters" : {
52960 "additionalProperties" : 0,
52961 "properties" : {
7aacca6f
DM
52962 "roleid" : {
52963 "format" : "pve-roleid",
013dc89f
DM
52964 "type" : "string",
52965 "typetext" : "<string>"
56122987
DM
52966 }
52967 }
52968 },
56122987
DM
52969 "permissions" : {
52970 "check" : [
52971 "perm",
7aacca6f 52972 "/access",
56122987 52973 [
7aacca6f
DM
52974 "Sys.Modify"
52975 ]
56122987 52976 ]
44660702
DM
52977 },
52978 "protected" : 1,
52979 "returns" : {
52980 "type" : "null"
56122987
DM
52981 }
52982 },
44660702 52983 "GET" : {
e9cd3bd4 52984 "allowtoken" : 1,
44660702
DM
52985 "description" : "Get role configuration.",
52986 "method" : "GET",
52987 "name" : "read_role",
52988 "parameters" : {
52989 "additionalProperties" : 0,
52990 "properties" : {
52991 "roleid" : {
52992 "format" : "pve-roleid",
013dc89f
DM
52993 "type" : "string",
52994 "typetext" : "<string>"
44660702
DM
52995 }
52996 }
52997 },
7aacca6f 52998 "permissions" : {
44660702 52999 "user" : "all"
56122987 53000 },
e2d681b3
TL
53001 "returns" : {
53002 "additionalProperties" : 0,
53003 "properties" : {
53004 "Datastore.Allocate" : {
53005 "optional" : 1,
53006 "type" : "boolean"
53007 },
53008 "Datastore.AllocateSpace" : {
53009 "optional" : 1,
53010 "type" : "boolean"
53011 },
53012 "Datastore.AllocateTemplate" : {
53013 "optional" : 1,
53014 "type" : "boolean"
53015 },
53016 "Datastore.Audit" : {
53017 "optional" : 1,
53018 "type" : "boolean"
53019 },
53020 "Group.Allocate" : {
53021 "optional" : 1,
53022 "type" : "boolean"
53023 },
159464a9
TL
53024 "Mapping.Audit" : {
53025 "optional" : 1,
53026 "type" : "boolean"
53027 },
53028 "Mapping.Modify" : {
53029 "optional" : 1,
53030 "type" : "boolean"
53031 },
53032 "Mapping.Use" : {
53033 "optional" : 1,
53034 "type" : "boolean"
53035 },
e2d681b3
TL
53036 "Permissions.Modify" : {
53037 "optional" : 1,
53038 "type" : "boolean"
53039 },
53040 "Pool.Allocate" : {
53041 "optional" : 1,
53042 "type" : "boolean"
53043 },
0695fdaf
TL
53044 "Pool.Audit" : {
53045 "optional" : 1,
53046 "type" : "boolean"
53047 },
e2d681b3
TL
53048 "Realm.Allocate" : {
53049 "optional" : 1,
53050 "type" : "boolean"
53051 },
53052 "Realm.AllocateUser" : {
53053 "optional" : 1,
53054 "type" : "boolean"
53055 },
5c1699e5
TL
53056 "SDN.Allocate" : {
53057 "optional" : 1,
53058 "type" : "boolean"
53059 },
53060 "SDN.Audit" : {
53061 "optional" : 1,
159464a9
TL
53062 "type" : "boolean"
53063 },
53064 "SDN.Use" : {
53065 "optional" : 1,
5c1699e5
TL
53066 "type" : "boolean"
53067 },
c6d5bae8
TL
53068 "Sys.AccessNetwork" : {
53069 "optional" : 1,
53070 "type" : "boolean"
53071 },
e2d681b3
TL
53072 "Sys.Audit" : {
53073 "optional" : 1,
53074 "type" : "boolean"
53075 },
53076 "Sys.Console" : {
53077 "optional" : 1,
53078 "type" : "boolean"
53079 },
81a3384d
TL
53080 "Sys.Incoming" : {
53081 "optional" : 1,
53082 "type" : "boolean"
53083 },
e2d681b3
TL
53084 "Sys.Modify" : {
53085 "optional" : 1,
53086 "type" : "boolean"
53087 },
53088 "Sys.PowerMgmt" : {
53089 "optional" : 1,
53090 "type" : "boolean"
53091 },
53092 "Sys.Syslog" : {
53093 "optional" : 1,
53094 "type" : "boolean"
53095 },
53096 "User.Modify" : {
53097 "optional" : 1,
53098 "type" : "boolean"
53099 },
53100 "VM.Allocate" : {
53101 "optional" : 1,
53102 "type" : "boolean"
53103 },
53104 "VM.Audit" : {
53105 "optional" : 1,
53106 "type" : "boolean"
53107 },
53108 "VM.Backup" : {
53109 "optional" : 1,
53110 "type" : "boolean"
53111 },
53112 "VM.Clone" : {
53113 "optional" : 1,
53114 "type" : "boolean"
53115 },
53116 "VM.Config.CDROM" : {
53117 "optional" : 1,
53118 "type" : "boolean"
53119 },
53120 "VM.Config.CPU" : {
53121 "optional" : 1,
53122 "type" : "boolean"
53123 },
ac70d7d1
TL
53124 "VM.Config.Cloudinit" : {
53125 "optional" : 1,
53126 "type" : "boolean"
53127 },
e2d681b3
TL
53128 "VM.Config.Disk" : {
53129 "optional" : 1,
53130 "type" : "boolean"
53131 },
53132 "VM.Config.HWType" : {
53133 "optional" : 1,
53134 "type" : "boolean"
53135 },
53136 "VM.Config.Memory" : {
53137 "optional" : 1,
53138 "type" : "boolean"
53139 },
53140 "VM.Config.Network" : {
53141 "optional" : 1,
53142 "type" : "boolean"
53143 },
53144 "VM.Config.Options" : {
53145 "optional" : 1,
53146 "type" : "boolean"
53147 },
53148 "VM.Console" : {
53149 "optional" : 1,
53150 "type" : "boolean"
53151 },
53152 "VM.Migrate" : {
53153 "optional" : 1,
53154 "type" : "boolean"
53155 },
53156 "VM.Monitor" : {
53157 "optional" : 1,
53158 "type" : "boolean"
53159 },
53160 "VM.PowerMgmt" : {
53161 "optional" : 1,
53162 "type" : "boolean"
53163 },
53164 "VM.Snapshot" : {
53165 "optional" : 1,
53166 "type" : "boolean"
53167 },
53168 "VM.Snapshot.Rollback" : {
53169 "optional" : 1,
53170 "type" : "boolean"
53171 }
53172 },
53173 "type" : "object"
53174 }
44660702
DM
53175 },
53176 "PUT" : {
e9cd3bd4 53177 "allowtoken" : 1,
e2d681b3 53178 "description" : "Update an existing role.",
44660702
DM
53179 "method" : "PUT",
53180 "name" : "update_role",
56122987
DM
53181 "parameters" : {
53182 "additionalProperties" : 0,
53183 "properties" : {
7aacca6f 53184 "append" : {
44660702 53185 "optional" : 1,
7aacca6f 53186 "requires" : "privs",
013dc89f
DM
53187 "type" : "boolean",
53188 "typetext" : "<boolean>"
7aacca6f
DM
53189 },
53190 "privs" : {
53191 "format" : "pve-priv-list",
e2d681b3 53192 "optional" : 1,
013dc89f
DM
53193 "type" : "string",
53194 "typetext" : "<string>"
44660702
DM
53195 },
53196 "roleid" : {
53197 "format" : "pve-roleid",
013dc89f
DM
53198 "type" : "string",
53199 "typetext" : "<string>"
56122987
DM
53200 }
53201 }
53202 },
44660702
DM
53203 "permissions" : {
53204 "check" : [
53205 "perm",
53206 "/access",
53207 [
53208 "Sys.Modify"
53209 ]
53210 ]
53211 },
56122987 53212 "protected" : 1,
7aacca6f
DM
53213 "returns" : {
53214 "type" : "null"
56122987
DM
53215 }
53216 }
53217 },
44660702 53218 "leaf" : 1,
7aacca6f 53219 "path" : "/access/roles/{roleid}",
44660702 53220 "text" : "{roleid}"
56122987
DM
53221 }
53222 ],
56122987 53223 "info" : {
7aacca6f 53224 "GET" : {
e9cd3bd4 53225 "allowtoken" : 1,
7aacca6f 53226 "description" : "Role index.",
44660702 53227 "method" : "GET",
7aacca6f 53228 "name" : "index",
56122987 53229 "parameters" : {
56122987
DM
53230 "additionalProperties" : 0
53231 },
7aacca6f
DM
53232 "permissions" : {
53233 "user" : "all"
53234 },
56122987 53235 "returns" : {
7aacca6f 53236 "items" : {
7aacca6f 53237 "properties" : {
e2d681b3
TL
53238 "privs" : {
53239 "format" : "pve-priv-list",
53240 "optional" : 1,
53241 "type" : "string"
53242 },
7aacca6f 53243 "roleid" : {
e2d681b3 53244 "format" : "pve-roleid",
7aacca6f 53245 "type" : "string"
e2d681b3
TL
53246 },
53247 "special" : {
53248 "default" : 0,
53249 "optional" : 1,
53250 "type" : "boolean"
7aacca6f 53251 }
44660702
DM
53252 },
53253 "type" : "object"
53254 },
53255 "links" : [
53256 {
53257 "href" : "{roleid}",
53258 "rel" : "child"
7aacca6f 53259 }
44660702
DM
53260 ],
53261 "type" : "array"
53262 }
7aacca6f
DM
53263 },
53264 "POST" : {
e9cd3bd4 53265 "allowtoken" : 1,
7aacca6f 53266 "description" : "Create new role.",
44660702
DM
53267 "method" : "POST",
53268 "name" : "create_role",
7aacca6f
DM
53269 "parameters" : {
53270 "additionalProperties" : 0,
53271 "properties" : {
7aacca6f
DM
53272 "privs" : {
53273 "format" : "pve-priv-list",
53274 "optional" : 1,
013dc89f
DM
53275 "type" : "string",
53276 "typetext" : "<string>"
44660702
DM
53277 },
53278 "roleid" : {
53279 "format" : "pve-roleid",
013dc89f
DM
53280 "type" : "string",
53281 "typetext" : "<string>"
7aacca6f
DM
53282 }
53283 }
53284 },
44660702
DM
53285 "permissions" : {
53286 "check" : [
53287 "perm",
53288 "/access",
53289 [
53290 "Sys.Modify"
53291 ]
53292 ]
53293 },
53294 "protected" : 1,
7aacca6f
DM
53295 "returns" : {
53296 "type" : "null"
53297 }
53298 }
53299 },
44660702 53300 "leaf" : 0,
7aacca6f 53301 "path" : "/access/roles",
44660702 53302 "text" : "roles"
7aacca6f
DM
53303 },
53304 {
53305 "info" : {
56122987 53306 "GET" : {
e9cd3bd4 53307 "allowtoken" : 1,
44660702
DM
53308 "description" : "Get Access Control List (ACLs).",
53309 "method" : "GET",
53310 "name" : "read_acl",
7aacca6f
DM
53311 "parameters" : {
53312 "additionalProperties" : 0
53313 },
44660702
DM
53314 "permissions" : {
53315 "description" : "The returned list is restricted to objects where you have rights to modify permissions.",
53316 "user" : "all"
53317 },
56122987 53318 "returns" : {
56122987 53319 "items" : {
44660702 53320 "additionalProperties" : 0,
56122987 53321 "properties" : {
7aacca6f 53322 "path" : {
e2d681b3 53323 "description" : "Access control path",
7aacca6f
DM
53324 "type" : "string"
53325 },
44660702 53326 "propagate" : {
e2d681b3
TL
53327 "default" : 1,
53328 "description" : "Allow to propagate (inherit) permissions.",
53329 "optional" : 1,
44660702
DM
53330 "type" : "boolean"
53331 },
53332 "roleid" : {
53333 "type" : "string"
53334 },
7aacca6f
DM
53335 "type" : {
53336 "enum" : [
53337 "user",
e9cd3bd4
TL
53338 "group",
53339 "token"
7aacca6f
DM
53340 ],
53341 "type" : "string"
53342 },
7aacca6f
DM
53343 "ugid" : {
53344 "type" : "string"
56122987 53345 }
7aacca6f 53346 },
44660702 53347 "type" : "object"
7aacca6f
DM
53348 },
53349 "type" : "array"
44660702 53350 }
7aacca6f
DM
53351 },
53352 "PUT" : {
e9cd3bd4 53353 "allowtoken" : 1,
44660702
DM
53354 "description" : "Update Access Control List (add or remove permissions).",
53355 "method" : "PUT",
7aacca6f
DM
53356 "name" : "update_acl",
53357 "parameters" : {
53358 "additionalProperties" : 0,
53359 "properties" : {
53360 "delete" : {
44660702 53361 "description" : "Remove permissions (instead of adding it).",
7aacca6f 53362 "optional" : 1,
013dc89f
DM
53363 "type" : "boolean",
53364 "typetext" : "<boolean>"
7aacca6f 53365 },
44660702
DM
53366 "groups" : {
53367 "description" : "List of groups.",
53368 "format" : "pve-groupid-list",
7aacca6f 53369 "optional" : 1,
013dc89f
DM
53370 "type" : "string",
53371 "typetext" : "<string>"
7aacca6f
DM
53372 },
53373 "path" : {
53374 "description" : "Access control path",
013dc89f
DM
53375 "type" : "string",
53376 "typetext" : "<string>"
7aacca6f 53377 },
7aacca6f 53378 "propagate" : {
44660702 53379 "default" : 1,
7aacca6f 53380 "description" : "Allow to propagate (inherit) permissions.",
7aacca6f 53381 "optional" : 1,
013dc89f
DM
53382 "type" : "boolean",
53383 "typetext" : "<boolean>"
7aacca6f 53384 },
44660702
DM
53385 "roles" : {
53386 "description" : "List of roles.",
53387 "format" : "pve-roleid-list",
013dc89f
DM
53388 "type" : "string",
53389 "typetext" : "<string>"
44660702 53390 },
e9cd3bd4
TL
53391 "tokens" : {
53392 "description" : "List of API tokens.",
53393 "format" : "pve-tokenid-list",
53394 "optional" : 1,
53395 "type" : "string",
53396 "typetext" : "<string>"
53397 },
44660702
DM
53398 "users" : {
53399 "description" : "List of users.",
53400 "format" : "pve-userid-list",
7aacca6f 53401 "optional" : 1,
013dc89f
DM
53402 "type" : "string",
53403 "typetext" : "<string>"
56122987
DM
53404 }
53405 }
53406 },
56122987 53407 "permissions" : {
7aacca6f
DM
53408 "check" : [
53409 "perm-modify",
53410 "{path}"
53411 ]
53412 },
7aacca6f
DM
53413 "protected" : 1,
53414 "returns" : {
53415 "type" : "null"
44660702 53416 }
56122987
DM
53417 }
53418 },
7aacca6f 53419 "leaf" : 1,
44660702
DM
53420 "path" : "/access/acl",
53421 "text" : "acl"
7aacca6f
DM
53422 },
53423 {
56122987
DM
53424 "children" : [
53425 {
c5aa7e14
TL
53426 "children" : [
53427 {
53428 "info" : {
53429 "POST" : {
53430 "allowtoken" : 1,
53431 "description" : "Syncs users and/or groups from the configured LDAP to user.cfg. NOTE: Synced groups will have the name 'name-$realm', so make sure those groups do not exist to prevent overwriting.",
53432 "method" : "POST",
53433 "name" : "sync",
53434 "parameters" : {
53435 "additionalProperties" : 0,
53436 "properties" : {
53437 "dry-run" : {
53438 "default" : 0,
53439 "description" : "If set, does not write anything.",
53440 "optional" : 1,
53441 "type" : "boolean",
53442 "typetext" : "<boolean>"
53443 },
53444 "enable-new" : {
53445 "default" : "1",
53446 "description" : "Enable newly synced users immediately.",
53447 "optional" : "1",
53448 "type" : "boolean",
53449 "typetext" : "<boolean>"
53450 },
53451 "full" : {
7af2edf9 53452 "description" : "DEPRECATED: use 'remove-vanished' instead. If set, uses the LDAP Directory as source of truth, deleting users or groups not returned from the sync and removing all locally modified properties of synced users. If not set, only syncs information which is present in the synced data, and does not delete or modify anything else.",
c5aa7e14
TL
53453 "optional" : "1",
53454 "type" : "boolean",
53455 "typetext" : "<boolean>"
53456 },
53457 "purge" : {
7af2edf9 53458 "description" : "DEPRECATED: use 'remove-vanished' instead. Remove ACLs for users or groups which were removed from the config during a sync.",
c5aa7e14
TL
53459 "optional" : "1",
53460 "type" : "boolean",
53461 "typetext" : "<boolean>"
53462 },
53463 "realm" : {
53464 "description" : "Authentication domain ID",
53465 "format" : "pve-realm",
53466 "maxLength" : 32,
53467 "type" : "string",
53468 "typetext" : "<string>"
53469 },
7af2edf9 53470 "remove-vanished" : {
9d2e98ed
TL
53471 "default" : "none",
53472 "description" : "A semicolon-seperated list of things to remove when they or the user vanishes during a sync. The following values are possible: 'entry' removes the user/group when not returned from the sync. 'properties' removes the set properties on existing user/group that do not appear in the source (even custom ones). 'acl' removes acls when the user/group is not returned from the sync. Instead of a list it also can be 'none' (the default).",
7af2edf9 53473 "optional" : "1",
9d2e98ed 53474 "pattern" : "(?:(?:(?:acl|properties|entry);)*(?:acl|properties|entry))|none",
7af2edf9 53475 "type" : "string",
9d2e98ed 53476 "typetext" : "([acl];[properties];[entry])|none"
7af2edf9 53477 },
c5aa7e14
TL
53478 "scope" : {
53479 "description" : "Select what to sync.",
53480 "enum" : [
53481 "users",
53482 "groups",
53483 "both"
53484 ],
53485 "optional" : "1",
53486 "type" : "string"
53487 }
53488 }
53489 },
53490 "permissions" : {
53491 "check" : [
53492 "and",
53493 [
c30bb419
TL
53494 "perm",
53495 "/access/realm/{realm}",
53496 [
53497 "Realm.AllocateUser"
53498 ]
c5aa7e14
TL
53499 ],
53500 [
c30bb419
TL
53501 "perm",
53502 "/access/groups",
c5aa7e14
TL
53503 [
53504 "User.Modify"
53505 ]
53506 ]
53507 ],
53508 "description" : "'Realm.AllocateUser' on '/access/realm/<realm>' and 'User.Modify' permissions to '/access/groups/'."
53509 },
53510 "protected" : 1,
53511 "returns" : {
53512 "description" : "Worker Task-UPID",
53513 "type" : "string"
53514 }
53515 }
53516 },
53517 "leaf" : 1,
53518 "path" : "/access/domains/{realm}/sync",
53519 "text" : "sync"
53520 }
53521 ],
56122987 53522 "info" : {
44660702 53523 "DELETE" : {
e9cd3bd4 53524 "allowtoken" : 1,
44660702
DM
53525 "description" : "Delete an authentication server.",
53526 "method" : "DELETE",
53527 "name" : "delete",
53528 "parameters" : {
53529 "additionalProperties" : 0,
53530 "properties" : {
53531 "realm" : {
53532 "description" : "Authentication domain ID",
53533 "format" : "pve-realm",
53534 "maxLength" : 32,
013dc89f
DM
53535 "type" : "string",
53536 "typetext" : "<string>"
56122987 53537 }
44660702 53538 }
56122987 53539 },
56122987
DM
53540 "permissions" : {
53541 "check" : [
53542 "perm",
7aacca6f 53543 "/access/realm",
56122987 53544 [
7aacca6f 53545 "Realm.Allocate"
56122987
DM
53546 ]
53547 ]
53548 },
7aacca6f 53549 "protected" : 1,
7aacca6f
DM
53550 "returns" : {
53551 "type" : "null"
44660702 53552 }
7aacca6f 53553 },
44660702 53554 "GET" : {
e9cd3bd4 53555 "allowtoken" : 1,
44660702
DM
53556 "description" : "Get auth server configuration.",
53557 "method" : "GET",
53558 "name" : "read",
56122987 53559 "parameters" : {
44660702 53560 "additionalProperties" : 0,
56122987 53561 "properties" : {
7aacca6f 53562 "realm" : {
44660702 53563 "description" : "Authentication domain ID",
7aacca6f
DM
53564 "format" : "pve-realm",
53565 "maxLength" : 32,
013dc89f
DM
53566 "type" : "string",
53567 "typetext" : "<string>"
56122987 53568 }
44660702 53569 }
7aacca6f 53570 },
7aacca6f
DM
53571 "permissions" : {
53572 "check" : [
53573 "perm",
53574 "/access/realm",
53575 [
44660702
DM
53576 "Realm.Allocate",
53577 "Sys.Audit"
53578 ],
53579 "any",
53580 1
7aacca6f 53581 ]
44660702
DM
53582 },
53583 "returns" : {}
7aacca6f 53584 },
44660702 53585 "PUT" : {
e9cd3bd4 53586 "allowtoken" : 1,
44660702
DM
53587 "description" : "Update authentication server settings.",
53588 "method" : "PUT",
53589 "name" : "update",
7aacca6f 53590 "parameters" : {
44660702 53591 "additionalProperties" : 0,
7aacca6f 53592 "properties" : {
c30bb419
TL
53593 "acr-values" : {
53594 "description" : "Specifies the Authentication Context Class Reference values that theAuthorization Server is being requested to use for the Auth Request.",
53595 "optional" : 1,
c6d5bae8
TL
53596 "pattern" : "^[^\\x00-\\x1F\\x7F <>#\"]*$",
53597 "type" : "string"
c30bb419 53598 },
34f3e481
TL
53599 "autocreate" : {
53600 "default" : 0,
53601 "description" : "Automatically create users if they do not exist.",
53602 "optional" : 1,
53603 "type" : "boolean",
53604 "typetext" : "<boolean>"
53605 },
44660702
DM
53606 "base_dn" : {
53607 "description" : "LDAP base domain name",
53608 "maxLength" : 256,
53609 "optional" : 1,
82551b2b
TL
53610 "type" : "string",
53611 "typetext" : "<string>"
44660702 53612 },
4bd7df8b
DM
53613 "bind_dn" : {
53614 "description" : "LDAP bind domain name",
53615 "maxLength" : 256,
53616 "optional" : 1,
82551b2b
TL
53617 "type" : "string",
53618 "typetext" : "<string>"
4bd7df8b 53619 },
2489d6df
WB
53620 "capath" : {
53621 "default" : "/etc/ssl/certs",
53622 "description" : "Path to the CA certificate store",
53623 "optional" : 1,
53624 "type" : "string",
53625 "typetext" : "<string>"
53626 },
4772952b
TL
53627 "case-sensitive" : {
53628 "default" : 1,
53629 "description" : "username is case-sensitive",
53630 "optional" : 1,
53631 "type" : "boolean",
53632 "typetext" : "<boolean>"
53633 },
2489d6df
WB
53634 "cert" : {
53635 "description" : "Path to the client certificate",
53636 "optional" : 1,
53637 "type" : "string",
53638 "typetext" : "<string>"
53639 },
53640 "certkey" : {
53641 "description" : "Path to the client certificate key",
53642 "optional" : 1,
53643 "type" : "string",
53644 "typetext" : "<string>"
53645 },
82551b2b
TL
53646 "check-connection" : {
53647 "default" : 0,
53648 "description" : "Check bind connection to the server.",
53649 "optional" : 1,
53650 "type" : "boolean",
53651 "typetext" : "<boolean>"
53652 },
34f3e481
TL
53653 "client-id" : {
53654 "description" : "OpenID Client ID",
53655 "maxLength" : 256,
53656 "optional" : 1,
53657 "type" : "string",
53658 "typetext" : "<string>"
53659 },
53660 "client-key" : {
53661 "description" : "OpenID Client Key",
53662 "maxLength" : 256,
53663 "optional" : 1,
53664 "type" : "string",
53665 "typetext" : "<string>"
53666 },
44660702
DM
53667 "comment" : {
53668 "description" : "Description.",
53669 "maxLength" : 4096,
53670 "optional" : 1,
013dc89f
DM
53671 "type" : "string",
53672 "typetext" : "<string>"
44660702
DM
53673 },
53674 "default" : {
53675 "description" : "Use this as default realm",
53676 "optional" : 1,
013dc89f
DM
53677 "type" : "boolean",
53678 "typetext" : "<boolean>"
44660702
DM
53679 },
53680 "delete" : {
53681 "description" : "A list of settings you want to delete.",
53682 "format" : "pve-configid-list",
53683 "maxLength" : 4096,
53684 "optional" : 1,
013dc89f
DM
53685 "type" : "string",
53686 "typetext" : "<string>"
44660702
DM
53687 },
53688 "digest" : {
82551b2b
TL
53689 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
53690 "maxLength" : 64,
44660702 53691 "optional" : 1,
013dc89f
DM
53692 "type" : "string",
53693 "typetext" : "<string>"
44660702
DM
53694 },
53695 "domain" : {
53696 "description" : "AD domain name",
53697 "maxLength" : 256,
53698 "optional" : 1,
53699 "pattern" : "\\S+",
53700 "type" : "string"
53701 },
c5aa7e14
TL
53702 "filter" : {
53703 "description" : "LDAP filter for user sync.",
53704 "maxLength" : 2048,
53705 "optional" : 1,
53706 "type" : "string",
53707 "typetext" : "<string>"
53708 },
53709 "group_classes" : {
53710 "default" : "groupOfNames, group, univentionGroup, ipausergroup",
53711 "description" : "The objectclasses for groups.",
53712 "format" : "ldap-simple-attr-list",
53713 "optional" : 1,
53714 "type" : "string",
53715 "typetext" : "<string>"
53716 },
53717 "group_dn" : {
53718 "description" : "LDAP base domain name for group sync. If not set, the base_dn will be used.",
53719 "maxLength" : 256,
53720 "optional" : 1,
82551b2b
TL
53721 "type" : "string",
53722 "typetext" : "<string>"
c5aa7e14
TL
53723 },
53724 "group_filter" : {
53725 "description" : "LDAP filter for group sync.",
53726 "maxLength" : 2048,
53727 "optional" : 1,
53728 "type" : "string",
53729 "typetext" : "<string>"
53730 },
53731 "group_name_attr" : {
53732 "description" : "LDAP attribute representing a groups name. If not set or found, the first value of the DN will be used as name.",
53733 "format" : "ldap-simple-attr",
53734 "maxLength" : 256,
53735 "optional" : 1,
53736 "type" : "string",
53737 "typetext" : "<string>"
53738 },
34f3e481
TL
53739 "issuer-url" : {
53740 "description" : "OpenID Issuer Url",
53741 "maxLength" : 256,
53742 "optional" : 1,
53743 "type" : "string",
53744 "typetext" : "<string>"
53745 },
c5aa7e14
TL
53746 "mode" : {
53747 "default" : "ldap",
53748 "description" : "LDAP protocol mode.",
53749 "enum" : [
53750 "ldap",
53751 "ldaps",
53752 "ldap+starttls"
53753 ],
53754 "optional" : 1,
53755 "type" : "string"
53756 },
53757 "password" : {
53758 "description" : "LDAP bind password. Will be stored in '/etc/pve/priv/realm/<REALM>.pw'.",
53759 "optional" : 1,
53760 "type" : "string",
53761 "typetext" : "<string>"
53762 },
44660702
DM
53763 "port" : {
53764 "description" : "Server port.",
53765 "maximum" : 65535,
53766 "minimum" : 1,
53767 "optional" : 1,
4bd7df8b 53768 "type" : "integer",
013dc89f 53769 "typetext" : "<integer> (1 - 65535)"
44660702 53770 },
c30bb419
TL
53771 "prompt" : {
53772 "description" : "Specifies whether the Authorization Server prompts the End-User for reauthentication and consent.",
53773 "optional" : 1,
53774 "pattern" : "(?:none|login|consent|select_account|\\S+)",
53775 "type" : "string"
53776 },
7aacca6f 53777 "realm" : {
7aacca6f
DM
53778 "description" : "Authentication domain ID",
53779 "format" : "pve-realm",
44660702 53780 "maxLength" : 32,
013dc89f
DM
53781 "type" : "string",
53782 "typetext" : "<string>"
44660702 53783 },
c30bb419
TL
53784 "scopes" : {
53785 "default" : "email profile",
53786 "description" : "Specifies the scopes (user details) that should be authorized and returned, for example 'email' or 'profile'.",
53787 "optional" : 1,
53788 "type" : "string",
53789 "typetext" : "<string>"
53790 },
44660702 53791 "secure" : {
c5aa7e14 53792 "description" : "Use secure LDAPS protocol. DEPRECATED: use 'mode' instead.",
44660702 53793 "optional" : 1,
013dc89f
DM
53794 "type" : "boolean",
53795 "typetext" : "<boolean>"
44660702
DM
53796 },
53797 "server1" : {
53798 "description" : "Server IP address (or DNS name)",
53799 "format" : "address",
53800 "maxLength" : 256,
53801 "optional" : 1,
013dc89f
DM
53802 "type" : "string",
53803 "typetext" : "<string>"
44660702
DM
53804 },
53805 "server2" : {
53806 "description" : "Fallback Server IP address (or DNS name)",
53807 "format" : "address",
53808 "maxLength" : 256,
53809 "optional" : 1,
013dc89f
DM
53810 "type" : "string",
53811 "typetext" : "<string>"
44660702 53812 },
1c532546
TL
53813 "sslversion" : {
53814 "description" : "LDAPS TLS/SSL version. It's not recommended to use version older than 1.2!",
53815 "enum" : [
53816 "tlsv1",
53817 "tlsv1_1",
53818 "tlsv1_2",
53819 "tlsv1_3"
53820 ],
53821 "optional" : 1,
53822 "type" : "string"
53823 },
c5aa7e14
TL
53824 "sync-defaults-options" : {
53825 "description" : "The default options for behavior of synchronizations.",
53826 "format" : "realm-sync-options",
53827 "optional" : 1,
53828 "type" : "string",
9d2e98ed 53829 "typetext" : "[enable-new=<1|0>] [,full=<1|0>] [,purge=<1|0>] [,remove-vanished=([acl];[properties];[entry])|none] [,scope=<users|groups|both>]"
c5aa7e14
TL
53830 },
53831 "sync_attributes" : {
53832 "description" : "Comma separated list of key=value pairs for specifying which LDAP attributes map to which PVE user field. For example, to map the LDAP attribute 'mail' to PVEs 'email', write 'email=mail'. By default, each PVE user field is represented by an LDAP attribute of the same name.",
53833 "optional" : 1,
53834 "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
53835 "type" : "string"
53836 },
44660702
DM
53837 "tfa" : {
53838 "description" : "Use Two-factor authentication.",
53839 "format" : "pve-tfa-config",
53840 "maxLength" : 128,
53841 "optional" : 1,
013dc89f 53842 "type" : "string",
95895385 53843 "typetext" : "type=<TFATYPE> [,digits=<COUNT>] [,id=<ID>] [,key=<KEY>] [,step=<SECONDS>] [,url=<URL>]"
44660702
DM
53844 },
53845 "user_attr" : {
53846 "description" : "LDAP user attribute name",
53847 "maxLength" : 256,
53848 "optional" : 1,
53849 "pattern" : "\\S{2,}",
53850 "type" : "string"
2489d6df 53851 },
c5aa7e14
TL
53852 "user_classes" : {
53853 "default" : "inetorgperson, posixaccount, person, user",
53854 "description" : "The objectclasses for users.",
53855 "format" : "ldap-simple-attr-list",
53856 "optional" : 1,
53857 "type" : "string",
53858 "typetext" : "<string>"
53859 },
2489d6df
WB
53860 "verify" : {
53861 "default" : 0,
53862 "description" : "Verify the server's SSL certificate",
53863 "optional" : 1,
53864 "type" : "boolean",
53865 "typetext" : "<boolean>"
7aacca6f 53866 }
56122987 53867 },
44660702 53868 "type" : "object"
56122987 53869 },
7aacca6f
DM
53870 "permissions" : {
53871 "check" : [
53872 "perm",
53873 "/access/realm",
53874 [
44660702
DM
53875 "Realm.Allocate"
53876 ]
7aacca6f
DM
53877 ]
53878 },
44660702
DM
53879 "protected" : 1,
53880 "returns" : {
53881 "type" : "null"
53882 }
56122987 53883 }
44660702 53884 },
c5aa7e14 53885 "leaf" : 0,
44660702
DM
53886 "path" : "/access/domains/{realm}",
53887 "text" : "{realm}"
56122987 53888 }
7aacca6f 53889 ],
56122987
DM
53890 "info" : {
53891 "GET" : {
e9cd3bd4 53892 "allowtoken" : 1,
44660702
DM
53893 "description" : "Authentication domain index.",
53894 "method" : "GET",
53895 "name" : "index",
53896 "parameters" : {
53897 "additionalProperties" : 0
53898 },
53899 "permissions" : {
53900 "description" : "Anyone can access that, because we need that list for the login box (before the user is authenticated).",
53901 "user" : "world"
53902 },
56122987 53903 "returns" : {
56122987
DM
53904 "items" : {
53905 "properties" : {
7aacca6f 53906 "comment" : {
52e44c50 53907 "description" : "A comment. The GUI use this text when you select a domain (Realm) on the login window.",
7aacca6f
DM
53908 "optional" : 1,
53909 "type" : "string"
53910 },
56122987
DM
53911 "realm" : {
53912 "type" : "string"
53913 },
53914 "tfa" : {
7aacca6f 53915 "description" : "Two-factor authentication provider.",
56122987
DM
53916 "enum" : [
53917 "yubico",
53918 "oath"
53919 ],
44660702
DM
53920 "optional" : 1,
53921 "type" : "string"
c5aa7e14
TL
53922 },
53923 "type" : {
53924 "type" : "string"
56122987
DM
53925 }
53926 },
53927 "type" : "object"
44660702
DM
53928 },
53929 "links" : [
53930 {
53931 "href" : "{realm}",
53932 "rel" : "child"
53933 }
53934 ],
53935 "type" : "array"
53936 }
56122987
DM
53937 },
53938 "POST" : {
e9cd3bd4 53939 "allowtoken" : 1,
7aacca6f 53940 "description" : "Add an authentication server.",
44660702 53941 "method" : "POST",
7aacca6f 53942 "name" : "create",
56122987 53943 "parameters" : {
44660702 53944 "additionalProperties" : 0,
56122987 53945 "properties" : {
c30bb419
TL
53946 "acr-values" : {
53947 "description" : "Specifies the Authentication Context Class Reference values that theAuthorization Server is being requested to use for the Auth Request.",
53948 "optional" : 1,
c6d5bae8
TL
53949 "pattern" : "^[^\\x00-\\x1F\\x7F <>#\"]*$",
53950 "type" : "string"
c30bb419 53951 },
34f3e481
TL
53952 "autocreate" : {
53953 "default" : 0,
53954 "description" : "Automatically create users if they do not exist.",
53955 "optional" : 1,
53956 "type" : "boolean",
53957 "typetext" : "<boolean>"
53958 },
44660702
DM
53959 "base_dn" : {
53960 "description" : "LDAP base domain name",
56122987 53961 "maxLength" : 256,
44660702 53962 "optional" : 1,
82551b2b
TL
53963 "type" : "string",
53964 "typetext" : "<string>"
56122987 53965 },
4bd7df8b
DM
53966 "bind_dn" : {
53967 "description" : "LDAP bind domain name",
53968 "maxLength" : 256,
53969 "optional" : 1,
82551b2b
TL
53970 "type" : "string",
53971 "typetext" : "<string>"
4bd7df8b 53972 },
2489d6df
WB
53973 "capath" : {
53974 "default" : "/etc/ssl/certs",
53975 "description" : "Path to the CA certificate store",
53976 "optional" : 1,
53977 "type" : "string",
53978 "typetext" : "<string>"
53979 },
4772952b
TL
53980 "case-sensitive" : {
53981 "default" : 1,
53982 "description" : "username is case-sensitive",
53983 "optional" : 1,
53984 "type" : "boolean",
53985 "typetext" : "<boolean>"
53986 },
2489d6df
WB
53987 "cert" : {
53988 "description" : "Path to the client certificate",
53989 "optional" : 1,
53990 "type" : "string",
53991 "typetext" : "<string>"
53992 },
53993 "certkey" : {
53994 "description" : "Path to the client certificate key",
53995 "optional" : 1,
53996 "type" : "string",
53997 "typetext" : "<string>"
53998 },
82551b2b
TL
53999 "check-connection" : {
54000 "default" : 0,
54001 "description" : "Check bind connection to the server.",
54002 "optional" : 1,
54003 "type" : "boolean",
54004 "typetext" : "<boolean>"
54005 },
34f3e481
TL
54006 "client-id" : {
54007 "description" : "OpenID Client ID",
54008 "maxLength" : 256,
54009 "optional" : 1,
54010 "type" : "string",
54011 "typetext" : "<string>"
54012 },
54013 "client-key" : {
54014 "description" : "OpenID Client Key",
54015 "maxLength" : 256,
54016 "optional" : 1,
54017 "type" : "string",
54018 "typetext" : "<string>"
54019 },
44660702
DM
54020 "comment" : {
54021 "description" : "Description.",
54022 "maxLength" : 4096,
56122987 54023 "optional" : 1,
013dc89f
DM
54024 "type" : "string",
54025 "typetext" : "<string>"
56122987 54026 },
44660702
DM
54027 "default" : {
54028 "description" : "Use this as default realm",
7aacca6f 54029 "optional" : 1,
013dc89f
DM
54030 "type" : "boolean",
54031 "typetext" : "<boolean>"
56122987 54032 },
44660702
DM
54033 "domain" : {
54034 "description" : "AD domain name",
54035 "maxLength" : 256,
7aacca6f 54036 "optional" : 1,
44660702
DM
54037 "pattern" : "\\S+",
54038 "type" : "string"
56122987 54039 },
c5aa7e14
TL
54040 "filter" : {
54041 "description" : "LDAP filter for user sync.",
54042 "maxLength" : 2048,
54043 "optional" : 1,
54044 "type" : "string",
54045 "typetext" : "<string>"
54046 },
54047 "group_classes" : {
54048 "default" : "groupOfNames, group, univentionGroup, ipausergroup",
54049 "description" : "The objectclasses for groups.",
54050 "format" : "ldap-simple-attr-list",
54051 "optional" : 1,
54052 "type" : "string",
54053 "typetext" : "<string>"
54054 },
54055 "group_dn" : {
54056 "description" : "LDAP base domain name for group sync. If not set, the base_dn will be used.",
54057 "maxLength" : 256,
54058 "optional" : 1,
82551b2b
TL
54059 "type" : "string",
54060 "typetext" : "<string>"
c5aa7e14
TL
54061 },
54062 "group_filter" : {
54063 "description" : "LDAP filter for group sync.",
54064 "maxLength" : 2048,
54065 "optional" : 1,
54066 "type" : "string",
54067 "typetext" : "<string>"
54068 },
54069 "group_name_attr" : {
54070 "description" : "LDAP attribute representing a groups name. If not set or found, the first value of the DN will be used as name.",
54071 "format" : "ldap-simple-attr",
54072 "maxLength" : 256,
54073 "optional" : 1,
54074 "type" : "string",
54075 "typetext" : "<string>"
54076 },
34f3e481
TL
54077 "issuer-url" : {
54078 "description" : "OpenID Issuer Url",
54079 "maxLength" : 256,
54080 "optional" : 1,
54081 "type" : "string",
54082 "typetext" : "<string>"
54083 },
c5aa7e14
TL
54084 "mode" : {
54085 "default" : "ldap",
54086 "description" : "LDAP protocol mode.",
54087 "enum" : [
54088 "ldap",
54089 "ldaps",
54090 "ldap+starttls"
54091 ],
54092 "optional" : 1,
54093 "type" : "string"
54094 },
54095 "password" : {
54096 "description" : "LDAP bind password. Will be stored in '/etc/pve/priv/realm/<REALM>.pw'.",
54097 "optional" : 1,
54098 "type" : "string",
54099 "typetext" : "<string>"
54100 },
7aacca6f 54101 "port" : {
44660702 54102 "description" : "Server port.",
7aacca6f 54103 "maximum" : 65535,
44660702 54104 "minimum" : 1,
7aacca6f 54105 "optional" : 1,
4bd7df8b 54106 "type" : "integer",
013dc89f 54107 "typetext" : "<integer> (1 - 65535)"
56122987 54108 },
c30bb419
TL
54109 "prompt" : {
54110 "description" : "Specifies whether the Authorization Server prompts the End-User for reauthentication and consent.",
54111 "optional" : 1,
54112 "pattern" : "(?:none|login|consent|select_account|\\S+)",
54113 "type" : "string"
54114 },
44660702
DM
54115 "realm" : {
54116 "description" : "Authentication domain ID",
54117 "format" : "pve-realm",
54118 "maxLength" : 32,
013dc89f
DM
54119 "type" : "string",
54120 "typetext" : "<string>"
44660702 54121 },
c30bb419
TL
54122 "scopes" : {
54123 "default" : "email profile",
54124 "description" : "Specifies the scopes (user details) that should be authorized and returned, for example 'email' or 'profile'.",
54125 "optional" : 1,
54126 "type" : "string",
54127 "typetext" : "<string>"
54128 },
44660702 54129 "secure" : {
c5aa7e14 54130 "description" : "Use secure LDAPS protocol. DEPRECATED: use 'mode' instead.",
7aacca6f 54131 "optional" : 1,
013dc89f
DM
54132 "type" : "boolean",
54133 "typetext" : "<boolean>"
56122987 54134 },
44660702
DM
54135 "server1" : {
54136 "description" : "Server IP address (or DNS name)",
54137 "format" : "address",
54138 "maxLength" : 256,
54139 "optional" : 1,
013dc89f
DM
54140 "type" : "string",
54141 "typetext" : "<string>"
56122987 54142 },
44660702
DM
54143 "server2" : {
54144 "description" : "Fallback Server IP address (or DNS name)",
54145 "format" : "address",
7aacca6f 54146 "maxLength" : 256,
7aacca6f 54147 "optional" : 1,
013dc89f
DM
54148 "type" : "string",
54149 "typetext" : "<string>"
7aacca6f 54150 },
1c532546
TL
54151 "sslversion" : {
54152 "description" : "LDAPS TLS/SSL version. It's not recommended to use version older than 1.2!",
54153 "enum" : [
54154 "tlsv1",
54155 "tlsv1_1",
54156 "tlsv1_2",
54157 "tlsv1_3"
54158 ],
54159 "optional" : 1,
54160 "type" : "string"
54161 },
c5aa7e14
TL
54162 "sync-defaults-options" : {
54163 "description" : "The default options for behavior of synchronizations.",
54164 "format" : "realm-sync-options",
54165 "optional" : 1,
54166 "type" : "string",
9d2e98ed 54167 "typetext" : "[enable-new=<1|0>] [,full=<1|0>] [,purge=<1|0>] [,remove-vanished=([acl];[properties];[entry])|none] [,scope=<users|groups|both>]"
c5aa7e14
TL
54168 },
54169 "sync_attributes" : {
54170 "description" : "Comma separated list of key=value pairs for specifying which LDAP attributes map to which PVE user field. For example, to map the LDAP attribute 'mail' to PVEs 'email', write 'email=mail'. By default, each PVE user field is represented by an LDAP attribute of the same name.",
54171 "optional" : 1,
54172 "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
54173 "type" : "string"
54174 },
44660702
DM
54175 "tfa" : {
54176 "description" : "Use Two-factor authentication.",
54177 "format" : "pve-tfa-config",
54178 "maxLength" : 128,
54179 "optional" : 1,
013dc89f 54180 "type" : "string",
95895385 54181 "typetext" : "type=<TFATYPE> [,digits=<COUNT>] [,id=<ID>] [,key=<KEY>] [,step=<SECONDS>] [,url=<URL>]"
44660702
DM
54182 },
54183 "type" : {
54184 "description" : "Realm type.",
54185 "enum" : [
54186 "ad",
54187 "ldap",
34f3e481 54188 "openid",
44660702
DM
54189 "pam",
54190 "pve"
54191 ],
54192 "type" : "string"
54193 },
54194 "user_attr" : {
54195 "description" : "LDAP user attribute name",
7aacca6f 54196 "maxLength" : 256,
7aacca6f 54197 "optional" : 1,
44660702
DM
54198 "pattern" : "\\S{2,}",
54199 "type" : "string"
2489d6df 54200 },
c5aa7e14
TL
54201 "user_classes" : {
54202 "default" : "inetorgperson, posixaccount, person, user",
54203 "description" : "The objectclasses for users.",
54204 "format" : "ldap-simple-attr-list",
54205 "optional" : 1,
54206 "type" : "string",
54207 "typetext" : "<string>"
54208 },
34f3e481
TL
54209 "username-claim" : {
54210 "description" : "OpenID claim used to generate the unique username.",
34f3e481 54211 "optional" : 1,
c30bb419
TL
54212 "type" : "string",
54213 "typetext" : "<string>"
34f3e481 54214 },
2489d6df
WB
54215 "verify" : {
54216 "default" : 0,
54217 "description" : "Verify the server's SSL certificate",
54218 "optional" : 1,
54219 "type" : "boolean",
54220 "typetext" : "<boolean>"
7aacca6f
DM
54221 }
54222 },
7aacca6f 54223 "type" : "object"
56122987 54224 },
7aacca6f
DM
54225 "permissions" : {
54226 "check" : [
54227 "perm",
54228 "/access/realm",
54229 [
54230 "Realm.Allocate"
54231 ]
54232 ]
44660702
DM
54233 },
54234 "protected" : 1,
54235 "returns" : {
54236 "type" : "null"
7aacca6f 54237 }
56122987 54238 }
7aacca6f 54239 },
44660702 54240 "leaf" : 0,
56122987 54241 "path" : "/access/domains",
44660702 54242 "text" : "domains"
56122987 54243 },
34f3e481
TL
54244 {
54245 "children" : [
54246 {
54247 "info" : {
54248 "POST" : {
54249 "allowtoken" : 1,
54250 "description" : "Get the OpenId Authorization Url for the specified realm.",
54251 "method" : "POST",
54252 "name" : "auth_url",
54253 "parameters" : {
54254 "additionalProperties" : 0,
54255 "properties" : {
54256 "realm" : {
54257 "description" : "Authentication domain ID",
54258 "format" : "pve-realm",
54259 "maxLength" : 32,
54260 "type" : "string",
54261 "typetext" : "<string>"
54262 },
54263 "redirect-url" : {
54264 "description" : "Redirection Url. The client should set this to the used server url (location.origin).",
54265 "maxLength" : 255,
54266 "type" : "string",
54267 "typetext" : "<string>"
54268 }
54269 }
54270 },
54271 "permissions" : {
54272 "user" : "world"
54273 },
54274 "protected" : 1,
54275 "returns" : {
54276 "description" : "Redirection URL.",
54277 "type" : "string"
54278 }
54279 }
54280 },
54281 "leaf" : 1,
54282 "path" : "/access/openid/auth-url",
54283 "text" : "auth-url"
54284 },
54285 {
54286 "info" : {
54287 "POST" : {
54288 "allowtoken" : 1,
54289 "description" : " Verify OpenID authorization code and create a ticket.",
54290 "method" : "POST",
54291 "name" : "login",
54292 "parameters" : {
54293 "additionalProperties" : 0,
54294 "properties" : {
54295 "code" : {
54296 "description" : "OpenId authorization code.",
de786b48 54297 "maxLength" : 4096,
34f3e481
TL
54298 "type" : "string",
54299 "typetext" : "<string>"
54300 },
54301 "redirect-url" : {
54302 "description" : "Redirection Url. The client should set this to the used server url (location.origin).",
54303 "maxLength" : 255,
54304 "type" : "string",
54305 "typetext" : "<string>"
54306 },
54307 "state" : {
54308 "description" : "OpenId state.",
54309 "maxLength" : 1024,
54310 "type" : "string",
54311 "typetext" : "<string>"
54312 }
54313 }
54314 },
54315 "permissions" : {
54316 "user" : "world"
54317 },
54318 "protected" : 1,
54319 "returns" : {
54320 "properties" : {
54321 "CSRFPreventionToken" : {
54322 "type" : "string"
54323 },
54324 "cap" : {
54325 "type" : "object"
54326 },
54327 "clustername" : {
54328 "optional" : 1,
54329 "type" : "string"
54330 },
54331 "ticket" : {
54332 "type" : "string"
54333 },
54334 "username" : {
54335 "type" : "string"
54336 }
54337 }
54338 }
54339 }
54340 },
54341 "leaf" : 1,
54342 "path" : "/access/openid/login",
54343 "text" : "login"
54344 }
54345 ],
54346 "info" : {
54347 "GET" : {
54348 "allowtoken" : 1,
54349 "description" : "Directory index.",
54350 "method" : "GET",
54351 "name" : "index",
54352 "parameters" : {
54353 "additionalProperties" : 0
54354 },
54355 "permissions" : {
54356 "user" : "all"
54357 },
54358 "returns" : {
54359 "items" : {
54360 "properties" : {
54361 "subdir" : {
54362 "type" : "string"
54363 }
54364 },
54365 "type" : "object"
54366 },
54367 "links" : [
54368 {
54369 "href" : "{subdir}",
54370 "rel" : "child"
54371 }
54372 ],
54373 "type" : "array"
54374 }
54375 }
54376 },
54377 "leaf" : 0,
54378 "path" : "/access/openid",
54379 "text" : "openid"
54380 },
5370fa8c
TL
54381 {
54382 "children" : [
54383 {
54384 "children" : [
54385 {
54386 "info" : {
54387 "DELETE" : {
54388 "allowtoken" : 0,
54389 "description" : "Delete a TFA entry by ID.",
54390 "method" : "DELETE",
54391 "name" : "delete_tfa",
54392 "parameters" : {
54393 "additionalProperties" : 0,
54394 "properties" : {
54395 "id" : {
54396 "description" : "A TFA entry id.",
54397 "type" : "string",
54398 "typetext" : "<string>"
54399 },
54400 "password" : {
c6d5bae8 54401 "description" : "The current password of the user performing the change.",
5370fa8c
TL
54402 "maxLength" : 64,
54403 "minLength" : 5,
54404 "optional" : 1,
54405 "type" : "string",
54406 "typetext" : "<string>"
54407 },
54408 "userid" : {
9d2e98ed 54409 "description" : "Full User ID, in the `name@realm` format.",
5370fa8c
TL
54410 "format" : "pve-userid",
54411 "maxLength" : 64,
54412 "type" : "string",
54413 "typetext" : "<string>"
54414 }
54415 }
54416 },
54417 "permissions" : {
54418 "check" : [
54419 "or",
54420 [
54421 "userid-param",
54422 "self"
54423 ],
54424 [
54425 "userid-group",
54426 [
54427 "User.Modify"
54428 ]
54429 ]
54430 ]
54431 },
54432 "protected" : 1,
54433 "returns" : {
54434 "type" : "null"
54435 }
54436 },
54437 "GET" : {
07b013aa 54438 "allowtoken" : 1,
5370fa8c
TL
54439 "description" : "Fetch a requested TFA entry if present.",
54440 "method" : "GET",
54441 "name" : "get_tfa_entry",
54442 "parameters" : {
54443 "additionalProperties" : 0,
54444 "properties" : {
54445 "id" : {
54446 "description" : "A TFA entry id.",
54447 "type" : "string",
54448 "typetext" : "<string>"
54449 },
54450 "userid" : {
9d2e98ed 54451 "description" : "Full User ID, in the `name@realm` format.",
5370fa8c
TL
54452 "format" : "pve-userid",
54453 "maxLength" : 64,
54454 "type" : "string",
54455 "typetext" : "<string>"
54456 }
54457 }
54458 },
54459 "permissions" : {
54460 "check" : [
54461 "or",
54462 [
54463 "userid-param",
54464 "self"
54465 ],
54466 [
54467 "userid-group",
54468 [
54469 "User.Modify",
54470 "Sys.Audit"
54471 ]
54472 ]
54473 ]
54474 },
54475 "protected" : 1,
54476 "returns" : {
54477 "description" : "TFA Entry.",
54478 "properties" : {
54479 "created" : {
54480 "description" : "Creation time of this entry as unix epoch.",
54481 "type" : "integer"
54482 },
54483 "description" : {
54484 "description" : "User chosen description for this entry.",
54485 "type" : "string"
54486 },
54487 "enable" : {
54488 "default" : 1,
54489 "description" : "Whether this TFA entry is currently enabled.",
54490 "optional" : 1,
54491 "type" : "boolean"
54492 },
54493 "id" : {
54494 "description" : "The id used to reference this entry.",
54495 "type" : "string"
54496 },
54497 "type" : {
54498 "description" : "TFA Entry Type.",
54499 "enum" : [
54500 "totp",
54501 "u2f",
54502 "webauthn",
54503 "recovery",
54504 "yubico"
54505 ],
54506 "type" : "string"
54507 }
54508 },
54509 "type" : "object"
54510 }
54511 },
54512 "PUT" : {
54513 "allowtoken" : 0,
54514 "description" : "Add a TFA entry for a user.",
54515 "method" : "PUT",
54516 "name" : "update_tfa_entry",
54517 "parameters" : {
54518 "additionalProperties" : 0,
54519 "properties" : {
54520 "description" : {
54521 "description" : "A description to distinguish multiple entries from one another",
54522 "maxLength" : 255,
54523 "optional" : 1,
54524 "type" : "string",
54525 "typetext" : "<string>"
54526 },
54527 "enable" : {
54528 "description" : "Whether the entry should be enabled for login.",
54529 "optional" : 1,
54530 "type" : "boolean",
54531 "typetext" : "<boolean>"
54532 },
54533 "id" : {
54534 "description" : "A TFA entry id.",
54535 "type" : "string",
54536 "typetext" : "<string>"
54537 },
54538 "password" : {
c6d5bae8 54539 "description" : "The current password of the user performing the change.",
5370fa8c
TL
54540 "maxLength" : 64,
54541 "minLength" : 5,
54542 "optional" : 1,
54543 "type" : "string",
54544 "typetext" : "<string>"
54545 },
54546 "userid" : {
9d2e98ed 54547 "description" : "Full User ID, in the `name@realm` format.",
5370fa8c
TL
54548 "format" : "pve-userid",
54549 "maxLength" : 64,
54550 "type" : "string",
54551 "typetext" : "<string>"
54552 }
54553 }
54554 },
54555 "permissions" : {
54556 "check" : [
54557 "or",
54558 [
54559 "userid-param",
54560 "self"
54561 ],
54562 [
54563 "userid-group",
54564 [
54565 "User.Modify"
54566 ]
54567 ]
54568 ]
54569 },
54570 "protected" : 1,
54571 "returns" : {
54572 "type" : "null"
54573 }
54574 }
54575 },
54576 "leaf" : 1,
54577 "path" : "/access/tfa/{userid}/{id}",
54578 "text" : "{id}"
54579 }
54580 ],
54581 "info" : {
54582 "GET" : {
07b013aa 54583 "allowtoken" : 1,
5370fa8c
TL
54584 "description" : "List TFA configurations of users.",
54585 "method" : "GET",
54586 "name" : "list_user_tfa",
54587 "parameters" : {
54588 "additionalProperties" : 0,
54589 "properties" : {
54590 "userid" : {
9d2e98ed 54591 "description" : "Full User ID, in the `name@realm` format.",
5370fa8c
TL
54592 "format" : "pve-userid",
54593 "maxLength" : 64,
54594 "type" : "string",
54595 "typetext" : "<string>"
54596 }
54597 }
54598 },
54599 "permissions" : {
54600 "check" : [
54601 "or",
54602 [
54603 "userid-param",
54604 "self"
54605 ],
54606 [
54607 "userid-group",
54608 [
54609 "User.Modify",
54610 "Sys.Audit"
54611 ]
54612 ]
54613 ]
54614 },
54615 "protected" : 1,
54616 "returns" : {
54617 "description" : "A list of the user's TFA entries.",
54618 "items" : {
54619 "description" : "TFA Entry.",
54620 "properties" : {
54621 "created" : {
54622 "description" : "Creation time of this entry as unix epoch.",
54623 "type" : "integer"
54624 },
54625 "description" : {
54626 "description" : "User chosen description for this entry.",
54627 "type" : "string"
54628 },
54629 "enable" : {
54630 "default" : 1,
54631 "description" : "Whether this TFA entry is currently enabled.",
54632 "optional" : 1,
54633 "type" : "boolean"
54634 },
54635 "id" : {
54636 "description" : "The id used to reference this entry.",
54637 "type" : "string"
54638 },
54639 "type" : {
54640 "description" : "TFA Entry Type.",
54641 "enum" : [
54642 "totp",
54643 "u2f",
54644 "webauthn",
54645 "recovery",
54646 "yubico"
54647 ],
54648 "type" : "string"
54649 }
54650 },
54651 "type" : "object"
54652 },
07b013aa
TL
54653 "links" : [
54654 {
54655 "href" : "{id}",
54656 "rel" : "child"
54657 }
54658 ],
5370fa8c
TL
54659 "type" : "array"
54660 }
54661 },
54662 "POST" : {
54663 "allowtoken" : 0,
54664 "description" : "Add a TFA entry for a user.",
54665 "method" : "POST",
54666 "name" : "add_tfa_entry",
54667 "parameters" : {
54668 "additionalProperties" : 0,
54669 "properties" : {
54670 "challenge" : {
54671 "description" : "When responding to a u2f challenge: the original challenge string",
54672 "optional" : 1,
54673 "type" : "string",
54674 "typetext" : "<string>"
54675 },
54676 "description" : {
54677 "description" : "A description to distinguish multiple entries from one another",
54678 "maxLength" : 255,
54679 "optional" : 1,
54680 "type" : "string",
54681 "typetext" : "<string>"
54682 },
54683 "password" : {
c6d5bae8 54684 "description" : "The current password of the user performing the change.",
5370fa8c
TL
54685 "maxLength" : 64,
54686 "minLength" : 5,
54687 "optional" : 1,
54688 "type" : "string",
54689 "typetext" : "<string>"
54690 },
54691 "totp" : {
54692 "description" : "A totp URI.",
54693 "optional" : 1,
54694 "type" : "string",
54695 "typetext" : "<string>"
54696 },
54697 "type" : {
54698 "description" : "TFA Entry Type.",
54699 "enum" : [
54700 "totp",
54701 "u2f",
54702 "webauthn",
54703 "recovery",
54704 "yubico"
54705 ],
54706 "type" : "string"
54707 },
54708 "userid" : {
9d2e98ed 54709 "description" : "Full User ID, in the `name@realm` format.",
5370fa8c
TL
54710 "format" : "pve-userid",
54711 "maxLength" : 64,
54712 "type" : "string",
54713 "typetext" : "<string>"
54714 },
54715 "value" : {
54716 "description" : "The current value for the provided totp URI, or a Webauthn/U2F challenge response",
54717 "optional" : 1,
54718 "type" : "string",
54719 "typetext" : "<string>"
54720 }
54721 }
54722 },
54723 "permissions" : {
54724 "check" : [
54725 "or",
54726 [
54727 "userid-param",
54728 "self"
54729 ],
54730 [
54731 "userid-group",
54732 [
54733 "User.Modify"
54734 ]
54735 ]
54736 ]
54737 },
54738 "protected" : 1,
54739 "returns" : {
54740 "properties" : {
54741 "challenge" : {
54742 "description" : "When adding u2f entries, this contains a challenge the user must respond to in order to finish the registration.",
54743 "optional" : 1,
54744 "type" : "string"
54745 },
54746 "id" : {
54747 "description" : "The id of a newly added TFA entry.",
54748 "type" : "string"
54749 },
54750 "recovery" : {
54751 "description" : "When adding recovery codes, this contains the list of codes to be displayed to the user",
54752 "items" : {
54753 "description" : "A recovery entry.",
54754 "type" : "string"
54755 },
54756 "optional" : 1,
54757 "type" : "array"
54758 }
54759 },
54760 "type" : "object"
54761 }
54762 }
54763 },
54764 "leaf" : 0,
54765 "path" : "/access/tfa/{userid}",
54766 "text" : "{userid}"
54767 }
54768 ],
54769 "info" : {
54770 "GET" : {
07b013aa 54771 "allowtoken" : 1,
5370fa8c
TL
54772 "description" : "List TFA configurations of users.",
54773 "method" : "GET",
54774 "name" : "list_tfa",
54775 "parameters" : {
54776 "additionalProperties" : 0
54777 },
54778 "permissions" : {
54779 "description" : "Returns all or just the logged-in user, depending on privileges.",
54780 "user" : "all"
54781 },
54782 "protected" : 1,
54783 "returns" : {
54784 "description" : "The list tuples of user and TFA entries.",
54785 "items" : {
54786 "properties" : {
54787 "entries" : {
54788 "items" : {
54789 "description" : "TFA Entry.",
54790 "properties" : {
54791 "created" : {
54792 "description" : "Creation time of this entry as unix epoch.",
54793 "type" : "integer"
54794 },
54795 "description" : {
54796 "description" : "User chosen description for this entry.",
54797 "type" : "string"
54798 },
54799 "enable" : {
54800 "default" : 1,
54801 "description" : "Whether this TFA entry is currently enabled.",
54802 "optional" : 1,
54803 "type" : "boolean"
54804 },
54805 "id" : {
54806 "description" : "The id used to reference this entry.",
54807 "type" : "string"
54808 },
54809 "type" : {
54810 "description" : "TFA Entry Type.",
54811 "enum" : [
54812 "totp",
54813 "u2f",
54814 "webauthn",
54815 "recovery",
54816 "yubico"
54817 ],
54818 "type" : "string"
54819 }
54820 },
54821 "type" : "object"
54822 },
54823 "type" : "array"
54824 },
4a407cfd
TL
54825 "tfa-locked-until" : {
54826 "description" : "Contains a timestamp until when a user is locked out of 2nd factors.",
54827 "optional" : 1,
54828 "type" : "integer"
54829 },
54830 "totp-locked" : {
54831 "description" : "True if the user is currently locked out of TOTP factors.",
54832 "optional" : 1,
54833 "type" : "boolean"
54834 },
5370fa8c
TL
54835 "userid" : {
54836 "description" : "User this entry belongs to.",
54837 "type" : "string"
54838 }
54839 },
54840 "type" : "object"
54841 },
07b013aa
TL
54842 "links" : [
54843 {
54844 "href" : "{userid}",
54845 "rel" : "child"
54846 }
54847 ],
5370fa8c
TL
54848 "type" : "array"
54849 }
5370fa8c
TL
54850 }
54851 },
54852 "leaf" : 0,
54853 "path" : "/access/tfa",
54854 "text" : "tfa"
54855 },
56122987 54856 {
56122987 54857 "info" : {
44660702 54858 "GET" : {
e9cd3bd4 54859 "allowtoken" : 1,
2489d6df 54860 "description" : "Dummy. Useful for formatters which want to provide a login page.",
44660702
DM
54861 "method" : "GET",
54862 "name" : "get_ticket",
54863 "parameters" : {
54864 "additionalProperties" : 0
54865 },
54866 "permissions" : {
54867 "user" : "world"
54868 },
54869 "returns" : {
54870 "type" : "null"
54871 }
54872 },
56122987 54873 "POST" : {
e9cd3bd4 54874 "allowtoken" : 0,
44660702 54875 "description" : "Create or verify authentication ticket.",
56122987 54876 "method" : "POST",
44660702
DM
54877 "name" : "create_ticket",
54878 "parameters" : {
54879 "additionalProperties" : 0,
56122987 54880 "properties" : {
5370fa8c 54881 "new-format" : {
4a407cfd
TL
54882 "default" : 1,
54883 "description" : "This parameter is now ignored and assumed to be 1.",
5370fa8c
TL
54884 "optional" : 1,
54885 "type" : "boolean",
54886 "typetext" : "<boolean>"
54887 },
44660702
DM
54888 "otp" : {
54889 "description" : "One-time password for Two-factor authentication.",
7aacca6f 54890 "optional" : 1,
013dc89f
DM
54891 "type" : "string",
54892 "typetext" : "<string>"
56122987 54893 },
7aacca6f
DM
54894 "password" : {
54895 "description" : "The secret password. This can also be a valid ticket.",
013dc89f
DM
54896 "type" : "string",
54897 "typetext" : "<string>"
7aacca6f 54898 },
44660702
DM
54899 "path" : {
54900 "description" : "Verify ticket, and check if user have access 'privs' on 'path'",
7aacca6f 54901 "maxLength" : 64,
56122987 54902 "optional" : 1,
56122987 54903 "requires" : "privs",
013dc89f
DM
54904 "type" : "string",
54905 "typetext" : "<string>"
44660702
DM
54906 },
54907 "privs" : {
7aacca6f 54908 "description" : "Verify ticket, and check if user have access 'privs' on 'path'",
44660702
DM
54909 "format" : "pve-priv-list",
54910 "maxLength" : 64,
56122987 54911 "optional" : 1,
44660702 54912 "requires" : "path",
013dc89f
DM
54913 "type" : "string",
54914 "typetext" : "<string>"
56122987
DM
54915 },
54916 "realm" : {
56122987 54917 "description" : "You can optionally pass the realm using this parameter. Normally the realm is simply added to the username <username>@<relam>.",
44660702 54918 "format" : "pve-realm",
7aacca6f 54919 "maxLength" : 32,
44660702 54920 "optional" : 1,
013dc89f
DM
54921 "type" : "string",
54922 "typetext" : "<string>"
56122987 54923 },
5370fa8c
TL
54924 "tfa-challenge" : {
54925 "description" : "The signed TFA challenge string the user wants to respond to.",
54926 "optional" : 1,
54927 "type" : "string",
54928 "typetext" : "<string>"
54929 },
56122987
DM
54930 "username" : {
54931 "description" : "User name",
44660702 54932 "maxLength" : 64,
013dc89f
DM
54933 "type" : "string",
54934 "typetext" : "<string>"
56122987 54935 }
44660702 54936 }
7aacca6f 54937 },
56122987 54938 "permissions" : {
44660702 54939 "description" : "You need to pass valid credientials.",
56122987
DM
54940 "user" : "world"
54941 },
44660702 54942 "protected" : 1,
7aacca6f 54943 "returns" : {
56122987 54944 "properties" : {
44660702
DM
54945 "CSRFPreventionToken" : {
54946 "optional" : 1,
54947 "type" : "string"
56122987 54948 },
e2d681b3
TL
54949 "clustername" : {
54950 "optional" : 1,
54951 "type" : "string"
54952 },
44660702
DM
54953 "ticket" : {
54954 "optional" : 1,
54955 "type" : "string"
54956 },
54957 "username" : {
56122987
DM
54958 "type" : "string"
54959 }
54960 },
44660702 54961 "type" : "object"
7aacca6f 54962 }
7aacca6f
DM
54963 }
54964 },
44660702
DM
54965 "leaf" : 1,
54966 "path" : "/access/ticket",
54967 "text" : "ticket"
7aacca6f 54968 },
56122987 54969 {
56122987 54970 "info" : {
7aacca6f 54971 "PUT" : {
e9cd3bd4 54972 "allowtoken" : 0,
44660702 54973 "description" : "Change user password.",
7aacca6f 54974 "method" : "PUT",
e2d681b3 54975 "name" : "change_password",
56122987
DM
54976 "parameters" : {
54977 "additionalProperties" : 0,
54978 "properties" : {
c6d5bae8
TL
54979 "confirmation-password" : {
54980 "description" : "The current password of the user performing the change.",
54981 "maxLength" : 64,
54982 "minLength" : 5,
54983 "optional" : 1,
54984 "type" : "string",
54985 "typetext" : "<string>"
54986 },
44660702
DM
54987 "password" : {
54988 "description" : "The new password.",
54989 "maxLength" : 64,
54990 "minLength" : 5,
013dc89f
DM
54991 "type" : "string",
54992 "typetext" : "<string>"
7aacca6f 54993 },
44660702 54994 "userid" : {
9d2e98ed 54995 "description" : "Full User ID, in the `name@realm` format.",
44660702
DM
54996 "format" : "pve-userid",
54997 "maxLength" : 64,
013dc89f
DM
54998 "type" : "string",
54999 "typetext" : "<string>"
56122987 55000 }
7aacca6f 55001 }
56122987
DM
55002 },
55003 "permissions" : {
55004 "check" : [
44660702 55005 "or",
56122987 55006 [
44660702
DM
55007 "userid-param",
55008 "self"
55009 ],
55010 [
55011 "and",
55012 [
55013 "userid-param",
55014 "Realm.AllocateUser"
55015 ],
55016 [
55017 "userid-group",
55018 [
55019 "User.Modify"
55020 ]
55021 ]
56122987 55022 ]
7aacca6f 55023 ],
44660702 55024 "description" : "Each user is allowed to change his own password. A user can change the password of another user if he has 'Realm.AllocateUser' (on the realm of user <userid>) and 'User.Modify' permission on /access/groups/<group> on a group where user <userid> is member of."
56122987 55025 },
44660702 55026 "protected" : 1,
7aacca6f
DM
55027 "returns" : {
55028 "type" : "null"
44660702
DM
55029 }
55030 }
55031 },
55032 "leaf" : 1,
55033 "path" : "/access/password",
55034 "text" : "password"
95895385 55035 },
e9cd3bd4
TL
55036 {
55037 "info" : {
55038 "GET" : {
55039 "allowtoken" : 1,
55040 "description" : "Retrieve effective permissions of given user/token.",
55041 "method" : "GET",
55042 "name" : "permissions",
55043 "parameters" : {
55044 "additionalProperties" : 0,
55045 "properties" : {
55046 "path" : {
55047 "description" : "Only dump this specific path, not the whole tree.",
55048 "optional" : 1,
55049 "type" : "string",
55050 "typetext" : "<string>"
55051 },
55052 "userid" : {
55053 "description" : "User ID or full API token ID",
55054 "optional" : 1,
55055 "pattern" : "(?^:^(?^:[^\\s:/]+)\\@(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)(?:!(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+))?$)",
55056 "type" : "string"
55057 }
55058 }
55059 },
55060 "permissions" : {
55061 "description" : "Each user/token is allowed to dump their own permissions. A user can dump the permissions of another user if they have 'Sys.Audit' permission on /access.",
55062 "user" : "all"
55063 },
55064 "returns" : {
55065 "description" : "Map of \"path\" => (Map of \"privilege\" => \"propagate boolean\").",
55066 "type" : "object"
55067 }
55068 }
55069 },
55070 "leaf" : 1,
55071 "path" : "/access/permissions",
55072 "text" : "permissions"
44660702
DM
55073 }
55074 ],
55075 "info" : {
55076 "GET" : {
e9cd3bd4 55077 "allowtoken" : 1,
44660702
DM
55078 "description" : "Directory index.",
55079 "method" : "GET",
55080 "name" : "index",
55081 "parameters" : {
55082 "additionalProperties" : 0
55083 },
55084 "permissions" : {
55085 "user" : "all"
55086 },
55087 "returns" : {
55088 "items" : {
55089 "properties" : {
55090 "subdir" : {
55091 "type" : "string"
55092 }
7aacca6f 55093 },
44660702
DM
55094 "type" : "object"
55095 },
55096 "links" : [
55097 {
55098 "href" : "{subdir}",
55099 "rel" : "child"
55100 }
55101 ],
55102 "type" : "array"
55103 }
55104 }
55105 },
55106 "leaf" : 0,
55107 "path" : "/access",
55108 "text" : "access"
55109 },
55110 {
55111 "children" : [
55112 {
55113 "info" : {
55114 "DELETE" : {
e9cd3bd4 55115 "allowtoken" : 1,
fa22697b 55116 "description" : "Delete pool (deprecated, no support for nested pools, use 'DELETE /pools/?poolid={poolid}').",
44660702 55117 "method" : "DELETE",
fa22697b 55118 "name" : "delete_pool_deprecated",
7aacca6f
DM
55119 "parameters" : {
55120 "additionalProperties" : 0,
55121 "properties" : {
55122 "poolid" : {
55123 "format" : "pve-poolid",
013dc89f
DM
55124 "type" : "string",
55125 "typetext" : "<string>"
7aacca6f
DM
55126 }
55127 }
55128 },
56122987
DM
55129 "permissions" : {
55130 "check" : [
55131 "perm",
55132 "/pool/{poolid}",
55133 [
55134 "Pool.Allocate"
55135 ]
44660702
DM
55136 ],
55137 "description" : "You can only delete empty pools (no members)."
55138 },
55139 "protected" : 1,
55140 "returns" : {
55141 "type" : "null"
7aacca6f
DM
55142 }
55143 },
55144 "GET" : {
e9cd3bd4 55145 "allowtoken" : 1,
fa22697b 55146 "description" : "Get pool configuration (deprecated, no support for nested pools, use 'GET /pools/?poolid={poolid}').",
44660702 55147 "method" : "GET",
7aacca6f 55148 "name" : "read_pool",
56122987 55149 "parameters" : {
44660702 55150 "additionalProperties" : 0,
56122987
DM
55151 "properties" : {
55152 "poolid" : {
44660702 55153 "format" : "pve-poolid",
013dc89f
DM
55154 "type" : "string",
55155 "typetext" : "<string>"
c30bb419
TL
55156 },
55157 "type" : {
55158 "enum" : [
55159 "qemu",
55160 "lxc",
55161 "storage"
55162 ],
55163 "optional" : 1,
55164 "type" : "string"
56122987 55165 }
44660702 55166 }
56122987 55167 },
56122987 55168 "permissions" : {
56122987
DM
55169 "check" : [
55170 "perm",
55171 "/pool/{poolid}",
55172 [
0695fdaf 55173 "Pool.Audit"
56122987
DM
55174 ]
55175 ]
55176 },
7aacca6f 55177 "returns" : {
44660702 55178 "additionalProperties" : 0,
56122987 55179 "properties" : {
44660702
DM
55180 "comment" : {
55181 "optional" : 1,
55182 "type" : "string"
55183 },
7aacca6f 55184 "members" : {
7aacca6f
DM
55185 "items" : {
55186 "additionalProperties" : 1,
7aacca6f 55187 "properties" : {
7aacca6f
DM
55188 "id" : {
55189 "type" : "string"
55190 },
55191 "node" : {
55192 "type" : "string"
55193 },
44660702
DM
55194 "storage" : {
55195 "optional" : 1,
55196 "type" : "string"
55197 },
7aacca6f 55198 "type" : {
7aacca6f
DM
55199 "enum" : [
55200 "qemu",
55201 "lxc",
55202 "openvz",
55203 "storage"
44660702
DM
55204 ],
55205 "type" : "string"
55206 },
55207 "vmid" : {
55208 "optional" : 1,
55209 "type" : "integer"
7aacca6f 55210 }
44660702
DM
55211 },
55212 "type" : "object"
55213 },
55214 "type" : "array"
55215 }
55216 },
55217 "type" : "object"
55218 }
55219 },
55220 "PUT" : {
e9cd3bd4 55221 "allowtoken" : 1,
fa22697b 55222 "description" : "Update pool data (deprecated, no support for nested pools - use 'PUT /pools/?poolid={poolid}' instead).",
44660702 55223 "method" : "PUT",
fa22697b 55224 "name" : "update_pool_deprecated",
44660702
DM
55225 "parameters" : {
55226 "additionalProperties" : 0,
55227 "properties" : {
82551b2b
TL
55228 "allow-move" : {
55229 "default" : 0,
55230 "description" : "Allow adding a guest even if already in another pool. The guest will be removed from its current pool and added to this one.",
55231 "optional" : 1,
55232 "type" : "boolean",
55233 "typetext" : "<boolean>"
55234 },
56122987
DM
55235 "comment" : {
55236 "optional" : 1,
013dc89f
DM
55237 "type" : "string",
55238 "typetext" : "<string>"
44660702
DM
55239 },
55240 "delete" : {
82551b2b
TL
55241 "default" : 0,
55242 "description" : "Remove the passed VMIDs and/or storage IDs instead of adding them.",
44660702 55243 "optional" : 1,
013dc89f
DM
55244 "type" : "boolean",
55245 "typetext" : "<boolean>"
44660702
DM
55246 },
55247 "poolid" : {
55248 "format" : "pve-poolid",
013dc89f
DM
55249 "type" : "string",
55250 "typetext" : "<string>"
44660702
DM
55251 },
55252 "storage" : {
82551b2b 55253 "description" : "List of storage IDs to add or remove from this pool.",
44660702
DM
55254 "format" : "pve-storage-id-list",
55255 "optional" : 1,
013dc89f
DM
55256 "type" : "string",
55257 "typetext" : "<string>"
44660702
DM
55258 },
55259 "vms" : {
82551b2b 55260 "description" : "List of guest VMIDs to add or remove from this pool.",
44660702
DM
55261 "format" : "pve-vmid-list",
55262 "optional" : 1,
013dc89f
DM
55263 "type" : "string",
55264 "typetext" : "<string>"
56122987 55265 }
44660702
DM
55266 }
55267 },
55268 "permissions" : {
55269 "check" : [
55270 "perm",
55271 "/pool/{poolid}",
55272 [
55273 "Pool.Allocate"
55274 ]
55275 ],
55276 "description" : "You also need the right to modify permissions on any object you add/delete."
55277 },
55278 "protected" : 1,
55279 "returns" : {
55280 "type" : "null"
56122987
DM
55281 }
55282 }
55283 },
44660702
DM
55284 "leaf" : 1,
55285 "path" : "/pools/{poolid}",
7aacca6f 55286 "text" : "{poolid}"
56122987 55287 }
7aacca6f 55288 ],
56122987 55289 "info" : {
fa22697b
TL
55290 "DELETE" : {
55291 "allowtoken" : 1,
55292 "description" : "Delete pool.",
55293 "method" : "DELETE",
55294 "name" : "delete_pool",
55295 "parameters" : {
55296 "additionalProperties" : 0,
55297 "properties" : {
55298 "poolid" : {
55299 "format" : "pve-poolid",
55300 "type" : "string",
55301 "typetext" : "<string>"
55302 }
55303 }
55304 },
55305 "permissions" : {
55306 "check" : [
55307 "perm",
55308 "/pool/{poolid}",
55309 [
55310 "Pool.Allocate"
55311 ]
55312 ],
55313 "description" : "You can only delete empty pools (no members)."
55314 },
55315 "protected" : 1,
55316 "returns" : {
55317 "type" : "null"
55318 }
55319 },
56122987 55320 "GET" : {
e9cd3bd4 55321 "allowtoken" : 1,
fa22697b 55322 "description" : "List pools or get pool configuration.",
44660702
DM
55323 "method" : "GET",
55324 "name" : "index",
55325 "parameters" : {
fa22697b
TL
55326 "additionalProperties" : 0,
55327 "properties" : {
55328 "poolid" : {
55329 "format" : "pve-poolid",
55330 "optional" : 1,
55331 "type" : "string",
55332 "typetext" : "<string>"
55333 },
55334 "type" : {
55335 "enum" : [
55336 "qemu",
55337 "lxc",
55338 "storage"
55339 ],
55340 "optional" : 1,
55341 "requires" : "poolid",
55342 "type" : "string"
55343 }
55344 }
44660702
DM
55345 },
55346 "permissions" : {
fa22697b 55347 "description" : "List all pools where you have Pool.Audit permissions on /pool/<pool>, or the pool specific with {poolid}",
44660702
DM
55348 "user" : "all"
55349 },
56122987 55350 "returns" : {
44660702
DM
55351 "items" : {
55352 "properties" : {
fa22697b
TL
55353 "comment" : {
55354 "optional" : 1,
55355 "type" : "string"
55356 },
55357 "members" : {
55358 "items" : {
55359 "additionalProperties" : 1,
55360 "properties" : {
55361 "id" : {
55362 "type" : "string"
55363 },
55364 "node" : {
55365 "type" : "string"
55366 },
55367 "storage" : {
55368 "optional" : 1,
55369 "type" : "string"
55370 },
55371 "type" : {
55372 "enum" : [
55373 "qemu",
55374 "lxc",
55375 "openvz",
55376 "storage"
55377 ],
55378 "type" : "string"
55379 },
55380 "vmid" : {
55381 "optional" : 1,
55382 "type" : "integer"
55383 }
55384 },
55385 "type" : "object"
55386 },
55387 "optional" : 1,
55388 "type" : "array"
55389 },
44660702
DM
55390 "poolid" : {
55391 "type" : "string"
55392 }
56122987 55393 },
44660702
DM
55394 "type" : "object"
55395 },
55396 "links" : [
55397 {
55398 "href" : "{poolid}",
55399 "rel" : "child"
55400 }
55401 ],
55402 "type" : "array"
55403 }
55404 },
55405 "POST" : {
e9cd3bd4 55406 "allowtoken" : 1,
44660702
DM
55407 "description" : "Create new pool.",
55408 "method" : "POST",
55409 "name" : "create_pool",
55410 "parameters" : {
55411 "additionalProperties" : 0,
55412 "properties" : {
55413 "comment" : {
55414 "optional" : 1,
013dc89f
DM
55415 "type" : "string",
55416 "typetext" : "<string>"
7aacca6f 55417 },
44660702
DM
55418 "poolid" : {
55419 "format" : "pve-poolid",
013dc89f
DM
55420 "type" : "string",
55421 "typetext" : "<string>"
56122987
DM
55422 }
55423 }
55424 },
56122987 55425 "permissions" : {
44660702
DM
55426 "check" : [
55427 "perm",
55428 "/pool/{poolid}",
55429 [
55430 "Pool.Allocate"
55431 ]
55432 ]
56122987 55433 },
44660702
DM
55434 "protected" : 1,
55435 "returns" : {
55436 "type" : "null"
55437 }
fa22697b
TL
55438 },
55439 "PUT" : {
55440 "allowtoken" : 1,
55441 "description" : "Update pool.",
55442 "method" : "PUT",
55443 "name" : "update_pool",
55444 "parameters" : {
55445 "additionalProperties" : 0,
55446 "properties" : {
55447 "allow-move" : {
55448 "default" : 0,
55449 "description" : "Allow adding a guest even if already in another pool. The guest will be removed from its current pool and added to this one.",
55450 "optional" : 1,
55451 "type" : "boolean",
55452 "typetext" : "<boolean>"
55453 },
55454 "comment" : {
55455 "optional" : 1,
55456 "type" : "string",
55457 "typetext" : "<string>"
55458 },
55459 "delete" : {
55460 "default" : 0,
55461 "description" : "Remove the passed VMIDs and/or storage IDs instead of adding them.",
55462 "optional" : 1,
55463 "type" : "boolean",
55464 "typetext" : "<boolean>"
55465 },
55466 "poolid" : {
55467 "format" : "pve-poolid",
55468 "type" : "string",
55469 "typetext" : "<string>"
55470 },
55471 "storage" : {
55472 "description" : "List of storage IDs to add or remove from this pool.",
55473 "format" : "pve-storage-id-list",
55474 "optional" : 1,
55475 "type" : "string",
55476 "typetext" : "<string>"
55477 },
55478 "vms" : {
55479 "description" : "List of guest VMIDs to add or remove from this pool.",
55480 "format" : "pve-vmid-list",
55481 "optional" : 1,
55482 "type" : "string",
55483 "typetext" : "<string>"
55484 }
55485 }
55486 },
55487 "permissions" : {
55488 "check" : [
55489 "perm",
55490 "/pool/{poolid}",
55491 [
55492 "Pool.Allocate"
55493 ]
55494 ],
55495 "description" : "You also need the right to modify permissions on any object you add/delete."
55496 },
55497 "protected" : 1,
55498 "returns" : {
55499 "type" : "null"
55500 }
44660702
DM
55501 }
55502 },
55503 "leaf" : 0,
55504 "path" : "/pools",
55505 "text" : "pools"
55506 },
55507 {
55508 "info" : {
55509 "GET" : {
e9cd3bd4 55510 "allowtoken" : 1,
5370fa8c 55511 "description" : "API version details, including some parts of the global datacenter config.",
44660702
DM
55512 "method" : "GET",
55513 "name" : "version",
7aacca6f
DM
55514 "parameters" : {
55515 "additionalProperties" : 0
55516 },
44660702
DM
55517 "permissions" : {
55518 "user" : "all"
55519 },
55520 "returns" : {
55521 "properties" : {
5370fa8c
TL
55522 "console" : {
55523 "description" : "The default console viewer to use.",
55524 "enum" : [
55525 "applet",
55526 "vv",
55527 "html5",
55528 "xtermjs"
55529 ],
55530 "optional" : 1,
55531 "type" : "string"
55532 },
44660702 55533 "release" : {
5370fa8c 55534 "description" : "The current Proxmox VE point release in `x.y` format.",
44660702
DM
55535 "type" : "string"
55536 },
55537 "repoid" : {
5370fa8c 55538 "description" : "The short git revision from which this version was build.",
4a407cfd 55539 "pattern" : "[0-9a-fA-F]{8,64}",
44660702
DM
55540 "type" : "string"
55541 },
55542 "version" : {
5370fa8c 55543 "description" : "The full pve-manager package version of this node.",
44660702
DM
55544 "type" : "string"
55545 }
55546 },
55547 "type" : "object"
55548 }
56122987
DM
55549 }
55550 },
44660702
DM
55551 "leaf" : 1,
55552 "path" : "/version",
56122987
DM
55553 "text" : "version"
55554 }
55555]
55556;
55557